/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-plot-against-you {
  background: 
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, #1a1210 50%, #0e0a08 100%),
    linear-gradient(180deg, #2a1f18 0%, #14100c 100%);
}
.scn-plot-against-you .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(135deg, #3a2e28 0%, #2a1f1a 50%, #1a1410 100%);
  animation: pag-wall 20s ease-in-out infinite alternate;
}
.scn-plot-against-you .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1410 100%);
  transform-origin: bottom center;
  animation: pag-floor 18s ease-in-out infinite;
}
.scn-plot-against-you .table {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 40%; height: 4%;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #4a3828, #3a2a1a, #4a3828);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-plot-against-you .lamp {
  position: absolute;
  bottom: 29%; left: 50%;
  width: 10px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffb060 0%, #d08030 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(200,120,40,0.5);
  animation: pag-lamp 1.5s ease-in-out infinite alternate;
}
.scn-plot-against-you .glow {
  position: absolute;
  bottom: 28%; left: 50%;
  width: 60px; height: 60px;
  transform: translate(-50%, -30%);
  background: radial-gradient(circle, rgba(200,120,40,0.25) 0%, transparent 70%);
  filter: blur(8px);
  animation: pag-glow 3s ease-in-out infinite alternate;
}
.scn-plot-against-you .elma {
  position: absolute;
  bottom: 28%; left: 38%;
  width: 16px; height: 32px;
  background: linear-gradient(180deg, #2a2220 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pag-elma 4s ease-in-out infinite;
}
.scn-plot-against-you .baron {
  position: absolute;
  bottom: 25%; left: 56%;
  width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2e28 0%, #2a1f1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pag-baron 3s ease-in-out infinite alternate;
}
.scn-plot-against-you .shadow-elma {
  position: absolute;
  bottom: 0; left: 36%;
  width: 24px; height: 28%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: pag-shadow 5s ease-in-out infinite;
}
.scn-plot-against-you .shadow-baron {
  position: absolute;
  bottom: 0; left: 54%;
  width: 30px; height: 30%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.45) 0%, transparent 70%);
  filter: blur(4px);
  animation: pag-shadow 5s ease-in-out infinite reverse;
}
@keyframes pag-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pag-floor { 0% { transform: scaleY(1); } 25% { transform: scaleY(0.98); } 50% { transform: scaleY(1); } 75% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes pag-lamp { 0% { box-shadow: 0 0 16px 4px rgba(200,120,40,0.4); transform: translateX(-50%) scaleY(1); } 50% { box-shadow: 0 0 24px 6px rgba(240,160,60,0.6); transform: translateX(-50%) scaleY(1.05); } 100% { box-shadow: 0 0 12px 3px rgba(200,120,40,0.3); transform: translateX(-50%) scaleY(0.95); } }
@keyframes pag-glow { 0% { opacity:0.5; transform: translate(-50%, -30%) scale(0.9); } 50% { opacity:0.8; transform: translate(-50%, -30%) scale(1.1); } 100% { opacity:0.6; transform: translate(-50%, -30%) scale(0.95); } }
@keyframes pag-elma { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes pag-baron { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 33% { transform: translateX(1px) translateY(-1px) rotate(1deg); } 66% { transform: translateX(-1px) translateY(0) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes pag-shadow { 0% { opacity:0.6; } 33% { opacity:0.8; } 66% { opacity:0.5; } 100% { opacity:0.6; } }

.scn-elma-departure {
  background: 
    radial-gradient(ellipse at 50% 40%, #2a2218 0%, #15100a 60%, #0a0806 100%),
    linear-gradient(180deg, #1f1814 0%, #120e0a 100%);
}
.scn-elma-departure .cabin-wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(90deg, #2a2018 0%, #3a2e26 20%, #2a2018 50%, #1a1410 80%, #2a2018 100%);
  animation: eld-wall 15s ease-in-out infinite alternate;
}
.scn-elma-departure .porthole {
  position: absolute;
  top: 15%; right: 20%;
  width: 36px; height: 36px;
  background: radial-gradient(circle, #1a2a3a 0%, #0a121a 60%);
  border-radius: 50%;
  border: 4px solid #4a3a2a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6), 0 0 6px rgba(180,160,130,0.3);
  animation: eld-porthole 8s ease-in-out infinite alternate;
}
.scn-elma-departure .bunk {
  position: absolute;
  bottom: 38%; left: 10%;
  width: 30%; height: 6%;
  background: linear-gradient(180deg, #4a3828, #3a2a1a);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-elma-departure .door {
  position: absolute;
  bottom: 30%; left: 75%;
  width: 14%; height: 50%;
  background: linear-gradient(135deg, #3a2a1a, #2a1a0a);
  border-left: 2px solid #5a4838;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.4);
}
.scn-elma-departure .elma-figure {
  position: absolute;
  bottom: 28%; left: 60%;
  width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a2220 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eld-elma 4s ease-in-out infinite;
}
.scn-elma-departure .baron-figure {
  position: absolute;
  bottom: 28%; left: 72%;
  width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a2e28 0%, #2a1f1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eld-baron 3.5s ease-in-out infinite alternate;
}
.scn-elma-departure .lantern {
  position: absolute;
  bottom: 36%; left: 50%;
  width: 8px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffb060 0%, #d08030 100%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 14px 3px rgba(200,120,40,0.5);
  animation: eld-lantern 2s ease-in-out infinite alternate;
}
.scn-elma-departure .lantern-glow {
  position: absolute;
  bottom: 34%; left: 50%;
  width: 50px; height: 50px;
  transform: translate(-50%, -20%);
  background: radial-gradient(circle, rgba(200,120,40,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: eld-glow 3s ease-in-out infinite alternate;
}
.scn-elma-departure .ship-rock {
  position: absolute;
  inset: 0;
  pointer-events: none;
  animation: eld-rock 12s ease-in-out infinite;
}
@keyframes eld-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes eld-porthole { 0% { transform: scale(1); background: radial-gradient(circle, #1a2a3a 0%, #0a121a 60%); } 50% { transform: scale(1.03); background: radial-gradient(circle, #2a3a4a 0%, #0a121a 60%); } 100% { transform: scale(1); background: radial-gradient(circle, #1a2a3a 0%, #0a121a 60%); } }
@keyframes eld-elma { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-1px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes eld-baron { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 33% { transform: translateX(1px) translateY(-1px) rotate(2deg); } 66% { transform: translateX(-1px) translateY(0) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes eld-lantern { 0% { box-shadow: 0 0 10px 2px rgba(200,120,40,0.4); transform: translateX(-50%) rotate(-5deg); } 50% { box-shadow: 0 0 18px 5px rgba(240,160,60,0.6); transform: translateX(-50%) rotate(5deg); } 100% { box-shadow: 0 0 12px 3px rgba(200,120,40,0.3); transform: translateX(-50%) rotate(-5deg); } }
@keyframes eld-glow { 0% { opacity:0.4; transform: translate(-50%, -20%) scale(0.9); } 50% { opacity:0.7; transform: translate(-50%, -20%) scale(1.1); } 100% { opacity:0.5; transform: translate(-50%, -20%) scale(0.95); } }
@keyframes eld-rock { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }

.scn-theory-of-plot { background: linear-gradient(180deg, #f5e6c8 0%, #d9c9a4 40%, #b8a886 100%), radial-gradient(ellipse at 30% 50%, #f0dbaa 0%, transparent 60%); }
.scn-theory-of-plot .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #e8dcc0 0%, #d4c6a8 100%); box-shadow: inset 0 4px 30px rgba(100,80,50,.15); }
.scn-theory-of-plot .floor { position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c4b28a 0%, #a08c6c 100%); border-radius: 10% 20% 0 0; box-shadow: inset 0 8px 20px rgba(60,40,20,.3); }
.scn-theory-of-plot .desk { position: absolute; bottom:25%; left:15%; width:30%; height:18%; background: linear-gradient(180deg, #7a6a52 0%, #554838 100%); border-radius: 2% 2% 0 0; box-shadow: 0 6px 12px rgba(30,20,10,.4); transform: perspective(300px) rotateX(5deg); }
.scn-theory-of-plot .safe { position: absolute; bottom:18%; right:10%; width:14%; height:24%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%); border-radius: 4%; border: 2px solid #665544; box-shadow: 0 0 0 4px #443322, inset 0 0 0 2px #887766; animation: top-safe 8s ease-in-out infinite; }
.scn-theory-of-plot .lamp { position: absolute; bottom:45%; left:40%; width:6%; height:8%; background: radial-gradient(circle, #ffe080 0%, #d4a050 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,150,60,.4), 0 0 60px 20px rgba(200,150,60,.2); animation: top-lamp 3s ease-in-out infinite alternate; }
.scn-theory-of-plot .figure-top { position: absolute; bottom:22%; left:22%; width:10%; height:28%; background: linear-gradient(180deg, #2a2220 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: top-figure 5s ease-in-out infinite; }
.scn-theory-of-plot .shadow-top { position: absolute; bottom:18%; left:20%; width:14%; height:6%; background: rgba(30,20,10,.5); border-radius: 50%; filter: blur(6px); animation: top-shadow 5s ease-in-out infinite; }
@keyframes top-safe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes top-lamp { 0% { opacity: 0.85; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.9; transform: scale(1) } }
@keyframes top-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-0.5deg) } 75% { transform: translateX(-3px) rotate(0.5deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes top-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-missing-consular-stamps { background: linear-gradient(180deg, #e8dcc0 0%, #d0c0a0 50%, #b8a886 100%), radial-gradient(ellipse at 50% 60%, #f0dbb0 0%, transparent 70%); }
.scn-missing-consular-stamps .floor-close { position: absolute; inset: 0; background: linear-gradient(180deg, #c8b89a 0%, #a09070 100%); }
.scn-missing-consular-stamps .safe-mcs { position: absolute; bottom:25%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -8px 20px rgba(40,30,20,.5); border: 3px solid #665544; transform: perspective(400px) rotateX(10deg); }
.scn-missing-consular-stamps .seal { position: absolute; bottom:30%; left:45%; width:10%; height:10%; background: radial-gradient(circle, #c8a86a 0%, #9a7a4a 70%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(150,110,60,.5); animation: mcs-seal 10s ease-in-out infinite; }
.scn-missing-consular-stamps .hand-mcs { position: absolute; bottom:35%; left:55%; width:8%; height:15%; background: linear-gradient(180deg, #e0c0a0 0%, #b89070 100%); border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%; transform-origin: bottom; animation: mcs-hand 7s ease-in-out infinite; }
.scn-missing-consular-stamps .documents { position: absolute; bottom:40%; left:30%; width:20%; height:6%; background: linear-gradient(180deg, #f5f0e0 0%, #ddd0b0 100%); border-radius: 2px; box-shadow: 2px 2px 4px rgba(40,30,20,.3); transform: rotate(-5deg); }
.scn-missing-consular-stamps .glint { position: absolute; bottom:33%; left:48%; width:4%; height:4%; background: radial-gradient(circle, #fff 0%, rgba(255,255,255,0) 100%); border-radius: 50%; animation: mcs-glint 4s ease-in-out infinite alternate; }
@keyframes mcs-seal { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes mcs-hand { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-6px) rotate(0deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes mcs-glint { 0% { opacity: 0.3; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.3; transform: scale(0.8) } }

.scn-train-departure-clue { background: linear-gradient(180deg, #f5e6c8 0%, #d9c9a4 50%, #b8a886 100%), radial-gradient(ellipse at 50% 70%, #f0dbaa 0%, transparent 60%); }
.scn-train-departure-clue .waiting-hall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #e8dcc0 0%, #d4c6a8 100%); box-shadow: inset 0 20px 60px rgba(100,80,50,.1); }
.scn-train-departure-clue .ticket-window { position: absolute; bottom:40%; left:10%; width:20%; height:30%; background: linear-gradient(180deg, #8a7a62 0%, #6a5a4a 100%); border-radius: 4%; box-shadow: inset 0 0 0 4px #554838; }
.scn-train-departure-clue .clock { position: absolute; top:10%; right:20%; width:12%; height:12%; background: radial-gradient(circle, #f0e8d0 0%, #c0b090 70%); border-radius: 50%; border: 4px solid #7a6a52; animation: tdc-clock 12s linear infinite; }
.scn-train-departure-clue .man-tdc { position: absolute; bottom:20%; left:35%; width:10%; height:30%; background: linear-gradient(180deg, #2a2220 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tdc-man 6s ease-in-out infinite; }
.scn-train-departure-clue .lady-tdc { position: absolute; bottom:20%; left:45%; width:10%; height:28%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tdc-lady 6s ease-in-out infinite 0.5s; }
.scn-train-departure-clue .train-silhouette { position: absolute; bottom:10%; left:60%; width:30%; height:20%; background: linear-gradient(180deg, #4a3a32 0%, #221a16 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 10px rgba(30,20,10,.5); }
.scn-train-departure-clue .platform-line { position: absolute; bottom:15%; left:0; right:0; height:1px; background: repeating-linear-gradient(90deg, #7a6a52 0px, #7a6a52 4px, transparent 4px, transparent 8px); }
@keyframes tdc-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes tdc-man { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(0deg) } 50% { transform: translateX(10px) rotate(2deg) } 75% { transform: translateX(5px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes tdc-lady { 0% { transform: translateX(0) rotate(-1.5deg) } 25% { transform: translateX(-3px) rotate(0deg) } 50% { transform: translateX(-6px) rotate(1.5deg) } 75% { transform: translateX(-3px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1.5deg) } }

.scn-police-puzzled { background: linear-gradient(180deg, #f5e6c8 0%, #d9c9a4 40%, #b8a886 100%), radial-gradient(ellipse at 60% 30%, #f0dbaa 0%, transparent 70%); }
.scn-police-puzzled .room-ppu { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #e8dcc0 0%, #d4c6a8 100%); box-shadow: inset 0 4px 40px rgba(80,60,30,.1); }
.scn-police-puzzled .table-ppu { position: absolute; bottom:20%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #7a6a52 0%, #554838 100%); border-radius: 2% 2% 0 0; box-shadow: 0 6px 20px rgba(30,20,10,.3); transform: perspective(400px) rotateX(5deg); }
.scn-police-puzzled .map-ppu { position: absolute; bottom:22%; left:30%; width:30%; height:10%; background: linear-gradient(135deg, #e0d8c0 25%, #c8b898 50%, #a09070 75%); border-radius: 2px; box-shadow: 2px 2px 8px rgba(40,30,20,.3); transform: rotate(2deg); animation: ppu-map 12s ease-in-out infinite; }
.scn-police-puzzled .figure-ppu { position: absolute; bottom:18%; left:15%; width:10%; height:28%; background: linear-gradient(180deg, #2a2220 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ppu-figure 8s ease-in-out infinite; }
.scn-police-puzzled .lamp-ppu { position: absolute; bottom:50%; left:50%; width:6%; height:10%; background: radial-gradient(circle, #ffe080 0%, #d4a050 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(200,150,60,.4), 0 0 80px 30px rgba(200,150,60,.2); animation: ppu-lamp 3s ease-in-out infinite alternate; }
.scn-police-puzzled .papers-ppu { position: absolute; bottom:22%; left:55%; width:12%; height:4%; background: linear-gradient(180deg, #f5f0e0 0%, #ddd0b0 100%); border-radius: 1px; box-shadow: 1px 1px 3px rgba(40,30,20,.2); transform: rotate(-8deg); }
.scn-police-puzzled .coffee-cup { position: absolute; bottom:21%; left:22%; width:6%; height:8%; background: linear-gradient(180deg, #d4c0a0 0%, #b09878 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 4px 8px rgba(40,30,20,.3); animation: ppu-cup 6s ease-in-out infinite; }
@keyframes ppu-map { 0% { transform: rotate(2deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(2deg) } }
@keyframes ppu-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-0.5deg) } 75% { transform: translateX(-2px) rotate(0.5deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ppu-lamp { 0% { opacity: 0.8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.03) } 100% { opacity: 0.85; transform: scale(1) } }
@keyframes ppu-cup { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-muriel-waiting {
  background: linear-gradient(180deg, #1a1816 0%, #2b2420 40%, #1f1b18 100%), radial-gradient(ellipse at 50% 60%, #3c302a 0%, transparent 70%);
}
.scn-muriel-waiting .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2c2520 0%, #1a1614 100%); }
.scn-muriel-waiting .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1410 0%, #2e2520 30%, #3c302a 100%); }
.scn-muriel-waiting .chair { position:absolute; bottom:22%; left:45%; width:80px; height:90px; background: linear-gradient(180deg, #4a3a30 0%, #2e221c 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: 0 6px 20px rgba(0,0,0,0.6); transform: perspective(400px) rotateX(5deg); }
.scn-muriel-waiting .figure-sitting { position:absolute; bottom:28%; left:47%; width:50px; height:70px; background: linear-gradient(180deg, #2a201a 0%, #140f0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: perspective(200px) rotateX(3deg); animation: mw1-breathe 4s ease-in-out infinite; }
.scn-muriel-waiting .lamp-glow { position:absolute; bottom:50%; left:65%; width:30px; height:40px; background: radial-gradient(circle, #d4a060 0%, #8a5a30 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(180,120,60,0.3), 0 0 120px 60px rgba(100,70,40,0.15); animation: mw1-flicker 2s ease-in-out infinite alternate; }
.scn-muriel-waiting .clock { position:absolute; top:15%; right:20%; width:24px; height:24px; background: radial-gradient(circle, #c8a878 0%, #8a6a48 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: mw1-tick 1s steps(1) infinite; }
.scn-muriel-waiting .shadow-bars { position:absolute; top:0; left:10%; width:40%; height:100%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.25) 40%, transparent 60%, rgba(0,0,0,0.15) 100%); pointer-events: none; }
@keyframes mw1-breathe {
  0% { transform: perspective(200px) rotateX(3deg) scaleY(1); }
  50% { transform: perspective(200px) rotateX(3.5deg) scaleY(1.02); }
  100% { transform: perspective(200px) rotateX(3deg) scaleY(1); }
}
@keyframes mw1-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 60px 30px rgba(180,120,60,0.3); }
  50% { opacity: 1; box-shadow: 0 0 100px 50px rgba(200,140,80,0.4); }
  100% { opacity: 0.85; box-shadow: 0 0 70px 35px rgba(180,120,60,0.25); }
}
@keyframes mw1-tick {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(6deg); }
  100% { transform: rotate(0deg); }
}

.scn-muriel-seeks-help {
  background: linear-gradient(180deg, #1c1715 0%, #2a221e 50%, #1e1917 100%), radial-gradient(ellipse at 70% 40%, #3a2e28 0%, transparent 70%);
}
.scn-muriel-seeks-help .doorway { position:absolute; top:10%; left:20%; width:60%; height:80%; background: #0f0c0a; border-radius: 4px 4px 0 0; box-shadow: inset 0 0 30px #0a0807; }
.scn-muriel-seeks-help .figure-standing { position:absolute; bottom:20%; left:45%; width:40px; height:100px; background: linear-gradient(180deg, #1e1814 0%, #0f0c0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: perspective(300px) rotateY(-5deg); animation: msh2-sway 3s ease-in-out infinite; }
.scn-muriel-seeks-help .gloved-hand { position:absolute; bottom:40%; left:52%; width:20px; height:30px; background: #1a120e; border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform: rotate(15deg); animation: msh2-extend 4s ease-in-out infinite; }
.scn-muriel-seeks-help .shawl { position:absolute; bottom:30%; left:42%; width:50px; height:60px; background: linear-gradient(180deg, #3a2e28 0%, #201814 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(-10deg); opacity: 0.8; }
.scn-muriel-seeks-help .hallway-light { position:absolute; top:15%; right:15%; width:20px; height:60px; background: radial-gradient(ellipse at center, #d4b080 0%, transparent 70%); box-shadow: 0 0 60px 30px rgba(180,120,60,0.2); animation: msh2-glow 3s ease-in-out infinite alternate; }
.scn-muriel-seeks-help .carpet { position:absolute; bottom:0; left:10%; width:80%; height:15%; background: linear-gradient(135deg, #2e221c 0%, #1c1410 100%); border-radius: 20% 20% 0 0; }
.scn-muriel-seeks-help .coat-rack { position:absolute; bottom:22%; right:8%; width:12px; height:80px; background: #2a201a; border-radius: 4px; transform: rotate(3deg); box-shadow: 2px 0 6px rgba(0,0,0,0.4); }
@keyframes msh2-sway {
  0% { transform: perspective(300px) rotateY(-5deg) translateY(0); }
  50% { transform: perspective(300px) rotateY(-5.5deg) translateY(-2px); }
  100% { transform: perspective(300px) rotateY(-5deg) translateY(0); }
}
@keyframes msh2-extend {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(18deg) translateX(4px); }
  100% { transform: rotate(15deg) translateX(0); }
}
@keyframes msh2-glow {
  0% { opacity: 0.6; box-shadow: 0 0 40px 20px rgba(180,120,60,0.15); }
  50% { opacity: 1; box-shadow: 0 0 70px 35px rgba(220,160,80,0.25); }
  100% { opacity: 0.7; box-shadow: 0 0 50px 25px rgba(180,120,60,0.12); }
}

.scn-private-visit {
  background: linear-gradient(135deg, #1e1916 0%, #2a221e 50%, #171310 100%), radial-gradient(ellipse at 30% 50%, #3c2e26 0%, transparent 70%);
}
.scn-private-visit .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1412 0%, #2a221e 100%); opacity: 0.6; }
.scn-private-visit .table { position:absolute; bottom:20%; left:30%; width:40%; height:5%; background: linear-gradient(90deg, #3a2e28 0%, #1e1814 100%); border-radius: 20px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-private-visit .figure-left { position:absolute; bottom:22%; left:20%; width:35px; height:90px; background: linear-gradient(180deg, #201a16 0%, #0f0c0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: perspective(400px) rotateY(10deg); animation: pv3-lean 5s ease-in-out infinite; }
.scn-private-visit .figure-right { position:absolute; bottom:22%; right:20%; width:35px; height:95px; background: linear-gradient(180deg, #1c1612 0%, #0c0907 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: perspective(400px) rotateY(-10deg); animation: pv3-lean 5s ease-in-out infinite reverse; }
.scn-private-visit .candle-double { position:absolute; bottom:25%; left:48%; width:8px; height:30px; background: linear-gradient(180deg, #d4a060 0%, #8a5a30 100%); border-radius: 2px; box-shadow: 0 0 30px 10px rgba(180,120,60,0.3); animation: pv3-flicker 2s ease-in-out infinite alternate; }
.scn-private-visit .wax-puddle { position:absolute; bottom:24%; left:47%; width:20px; height:6px; background: #6a4a30; border-radius: 50%; animation: pv3-drip 4s ease-in-out infinite; }
.scn-private-visit .picture-frame { position:absolute; top:12%; left:45%; width:40px; height:50px; background: #3a2a1e; border: 2px solid #5a3a28; box-shadow: 0 2px 8px rgba(0,0,0,0.5); transform: rotate(-2deg); }
@keyframes pv3-lean {
  0% { transform: perspective(400px) rotateY(10deg) translateY(0); }
  50% { transform: perspective(400px) rotateY(12deg) translateY(-2px); }
  100% { transform: perspective(400px) rotateY(10deg) translateY(0); }
}
@keyframes pv3-flicker {
  0% { opacity: 0.7; box-shadow: 0 0 20px 8px rgba(180,120,60,0.2); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(220,160,80,0.35); }
  100% { opacity: 0.8; box-shadow: 0 0 25px 10px rgba(180,120,60,0.15); }
}
@keyframes pv3-drip {
  0% { height: 6px; }
  50% { height: 10px; }
  100% { height: 6px; }
}

.scn-muriel-trusts-gregg {
  background: linear-gradient(180deg, #0e0c0a 0%, #1c1612 60%, #120e0c 100%), radial-gradient(ellipse at 50% 35%, #2e241e 0%, transparent 70%);
}
.scn-muriel-trusts-gregg .face-silhouette { position:absolute; bottom:20%; left:50%; width:60px; height:80px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #120e0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-muriel-trusts-gregg .eye-left { position:absolute; bottom:48%; left:44%; width:10px; height:8px; background: #1c1612; border-radius: 50%; box-shadow: 0 0 12px 4px rgba(180,140,100,0.5); animation: mtg4-blink 4s ease-in-out infinite; }
.scn-muriel-trusts-gregg .eye-right { position:absolute; bottom:48%; right:44%; width:10px; height:8px; background: #1c1612; border-radius: 50%; box-shadow: 0 0 12px 4px rgba(180,140,100,0.5); animation: mtg4-blink 4s ease-in-out infinite 0.1s; }
.scn-muriel-trusts-gregg .cheek-shadow { position:absolute; bottom:30%; left:46%; width:12%; height:20%; background: rgba(10,8,6,0.4); border-radius: 40%; filter: blur(3px); }
.scn-muriel-trusts-gregg .hair-dark { position:absolute; top:5%; left:42%; width:30%; height:30%; background: radial-gradient(ellipse, #0c0a08 0%, transparent 100%); border-radius: 50%; }
.scn-muriel-trusts-gregg .neck-scarf { position:absolute; bottom:18%; left:47%; width:20px; height:30px; background: #5e1a1d; border-radius: 10% 60% 10% 60%; transform: rotate(15deg); }
.scn-muriel-trusts-gregg .background-light { position:absolute; top:10%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse, rgba(160,120,80,0.15) 0%, transparent 100%); animation: mtg4-halo 6s ease-in-out infinite alternate; }
@keyframes mtg4-blink {
  0%, 90%, 100% { transform: scaleY(1); }
  95% { transform: scaleY(0.1); }
}
@keyframes mtg4-halo {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

/* unusual-request */
.scn-unusual-request {
  background: linear-gradient(135deg, #2a1e1e 0%, #1a1010 40%, #3a2520 100%),
              radial-gradient(ellipse at 60% 70%, #4a2a20 0%, transparent 60%);
}
.scn-unusual-request .ur-backdrop { position:absolute; inset:0 0 30% 0; background: linear-gradient(0deg, transparent 0%, #1a1010 100%); }
.scn-unusual-request .ur-wall   { position:absolute; top:0; bottom:40%; left:10%; right:10%; background: linear-gradient(180deg, #2a1e1e 0%, #1a1010 100%); border-radius:0 0 20% 20% / 0 0 10% 10%; }
.scn-unusual-request .ur-lamp   { position:absolute; top:15%; left:20%; width:24px; height:40px; background: radial-gradient(circle at 50% 80%, #d4a060 0%, #8a5020 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 30px 8px #b07030; animation: ur-lamp 2s ease-in-out infinite alternate; }
.scn-unusual-request .ur-aura   { position:absolute; top:10%; left:15%; width:80px; height:80px; background: radial-gradient(circle, rgba(180,120,60,0.3) 0%, transparent 70%); animation: ur-aura 3s ease-in-out infinite alternate; }
.scn-unusual-request .ur-figure { position:absolute; bottom:25%; left:55%; width:50px; height:100px; background: linear-gradient(180deg, #2a1e1e 0%, #1a1010 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg); animation: ur-figure 5s ease-in-out infinite; }
.scn-unusual-request .ur-hand   { position:absolute; bottom:35%; left:50%; width:20px; height:30px; background: linear-gradient(180deg, #3a2520 0%, #2a1e1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: ur-hand 4s ease-in-out infinite; }
.scn-unusual-request .ur-shadow { position:absolute; bottom:20%; left:40%; width:100px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); filter: blur(5px); animation: ur-shadow 5s ease-in-out infinite; }
@keyframes ur-lamp   { 0% { opacity:0.7; box-shadow: 0 0 20px 4px #b07030; } 50% { opacity:1; box-shadow: 0 0 40px 10px #d49050; } 100% { opacity:0.8; box-shadow: 0 0 30px 6px #b07030; } }
@keyframes ur-aura   { 0% { opacity:0.3; transform: scale(0.95); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.35; transform: scale(1); } }
@keyframes ur-figure { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-3px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes ur-hand   { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-25deg) translateX(5px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes ur-shadow { 0% { width:80px; opacity:0.4; } 50% { width:120px; opacity:0.6; } 100% { width:80px; opacity:0.4; } }

/* agreeing-to-help */
.scn-agreeing-to-help {
  background: linear-gradient(180deg, #1e1816 0%, #2a1e1a 60%, #1a1010 100%),
              radial-gradient(ellipse at 30% 50%, #3a2a20 0%, transparent 50%);
}
.scn-agreeing-to-help .ah-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #1a1010 0%, transparent 100%); }
.scn-agreeing-to-help .ah-wall  { position:absolute; top:0; bottom:25%; left:5%; right:5%; background: linear-gradient(180deg, #2a1e1a 0%, #1e1816 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; }
.scn-agreeing-to-help .ah-desk  { position:absolute; bottom:25%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #4a3a30 0%, #3a2a20 100%); border-radius:4% 4% 10% 10%; }
.scn-agreeing-to-help .ah-lamp  { position:absolute; bottom:38%; left:30%; width:18px; height:30px; background: radial-gradient(circle at 50% 70%, #d4a060 0%, #8a5020 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 50px 15px #b07030; animation: ah-lamp 2s ease-in-out infinite alternate; }
.scn-agreeing-to-help .ah-fig-left { position:absolute; bottom:25%; left:25%; width:40px; height:90px; background: linear-gradient(180deg, #2a1e1e 0%, #1a1010 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-8deg); animation: ah-fig 6s ease-in-out infinite; }
.scn-agreeing-to-help .ah-fig-right{ position:absolute; bottom:25%; right:25%; width:40px; height:90px; background: linear-gradient(180deg, #2a1e1e 0%, #1a1010 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(8deg); animation: ah-fig 6s ease-in-out infinite reverse; }
.scn-agreeing-to-help .ah-handshake{ position:absolute; bottom:33%; left:48%; width:30px; height:20px; background: linear-gradient(180deg, #3a2a20 0%, #2a1e1a 100%); border-radius:40% 40% 30% 30%; transform: translateX(-50%); animation: ah-handshake 4s ease-in-out infinite; }
@keyframes ah-lamp      { 0% { opacity:0.6; box-shadow: 0 0 30px 8px #b07030; } 50% { opacity:1; box-shadow: 0 0 60px 20px #d49050; } 100% { opacity:0.7; box-shadow: 0 0 40px 10px #b07030; } }
@keyframes ah-fig       { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes ah-handshake { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1); } 100% { transform: translateX(-50%) scale(1); } }

/* foreigner-theory */
.scn-foreigner-theory {
  background: linear-gradient(90deg, #1a1515 0%, #2a2020 30%, #1a1515 100%),
              radial-gradient(circle at 70% 40%, #3a3020 0%, transparent 60%);
}
.scn-foreigner-theory .ft-bg      { position:absolute; inset:0; background: linear-gradient(180deg, #2a2020 0%, #1a1515 100%); }
.scn-foreigner-theory .ft-window  { position:absolute; top:10%; left:60%; width:100px; height:120px; background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #1a1515 80%); border:2px solid #3a2a1a; border-radius:10% 10% 5% 5%; box-shadow: inset 0 0 30px #0a0a0a; }
.scn-foreigner-theory .ft-sill    { position:absolute; top:calc(10% + 120px); left:60%; width:100px; height:15px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:0 0 10% 10%; }
.scn-foreigner-theory .ft-silhouette { position:absolute; bottom:30%; left:45%; width:50px; height:90px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1010 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: ft-sil 5s ease-in-out infinite; }
.scn-foreigner-theory .ft-arm     { position:absolute; bottom:40%; left:40%; width:40px; height:18px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1010 100%); border-radius:40% 40% 30% 30%; transform: rotate(30deg); transform-origin: right center; animation: ft-arm 4s ease-in-out infinite; }
.scn-foreigner-theory .ft-point   { position:absolute; bottom:45%; left:38%; width:8px; height:8px; background: radial-gradient(circle, #b08060 0%, #7a4a30 100%); border-radius:50%; box-shadow: 0 0 10px 2px #b08060; animation: ft-point 2s ease-in-out infinite alternate; }
.scn-foreigner-theory .ft-shimmer { position:absolute; top:15%; left:65%; width:30px; height:30px; background: radial-gradient(circle, rgba(180,120,60,0.2) 0%, transparent 100%); animation: ft-shimmer 3s ease-in-out infinite alternate; }
@keyframes ft-sil      { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ft-arm      { 0% { transform: rotate(25deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(25deg); } }
@keyframes ft-point    { 0% { opacity:0.5; transform: scale(0.8); } 100% { opacity:1; transform: scale(1.2); } }
@keyframes ft-shimmer  { 0% { opacity:0.2; } 100% { opacity:0.5; } }

/* her-knowledge */
.scn-her-knowledge {
  background: linear-gradient(180deg, #1e1818 0%, #2a1e1e 40%, #1a1010 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 60%);
}
.scn-her-knowledge .hk-room   { position:absolute; inset:0 10% 20%; background: linear-gradient(180deg, #2a1e1e 0%, #1a1010 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; }
.scn-her-knowledge .hk-chair  { position:absolute; bottom:20%; left:30%; width:60px; height:70px; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); border-radius:20% 20% 10% 10% / 30% 30% 10% 10%; transform: rotate(3deg); animation: hk-chair 8s ease-in-out infinite; }
.scn-her-knowledge .hk-figure { position:absolute; bottom:25%; left:35%; width:40px; height:90px; background: linear-gradient(180deg, #2a1e1e 0%, #1a1010 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg) translateY(0); animation: hk-figure 6s ease-in-out infinite; }
.scn-her-knowledge .hk-arm    { position:absolute; bottom:40%; left:30%; width:30px; height:12px; background: linear-gradient(180deg, #2a1e1e 0%, #1a1010 100%); border-radius:40% 40% 30% 30%; transform: rotate(-40deg); transform-origin: right center; animation: hk-arm 4s ease-in-out infinite; }
.scn-her-knowledge .hk-lampglow { position:absolute; top:10%; right:15%; width:40px; height:50px; background: radial-gradient(circle at 50% 60%, #d4a060 0%, #8a5020 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 60px 20px #b07030; animation: hk-lamp 2s ease-in-out infinite alternate; }
.scn-her-knowledge .hk-drape  { position:absolute; top:0; right:0; width:50px; height:100px; background: linear-gradient(180deg, #3a2a20 0%, #1a1010 100%); border-radius:0 0 0 50% / 0 0 0 30%; filter: blur(2px); animation: hk-drape 7s ease-in-out infinite; }
.scn-her-knowledge .hk-float  { position:absolute; bottom:15%; left:50%; width:4px; height:4px; background: #d4a060; border-radius:50%; box-shadow: 0 0 8px 2px #b07030; animation: hk-float 5s ease-in-out infinite; }
@keyframes hk-chair  { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes hk-figure { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes hk-arm    { 0% { transform: rotate(-35deg); } 50% { transform: rotate(-45deg); } 100% { transform: rotate(-35deg); } }
@keyframes hk-lamp   { 0% { opacity:0.6; box-shadow: 0 0 30px 10px #b07030; } 50% { opacity:1; box-shadow: 0 0 80px 25px #d49050; } 100% { opacity:0.7; box-shadow: 0 0 40px 12px #b07030; } }
@keyframes hk-drape  { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes hk-float  { 0% { transform: translate(0,0); opacity:0.3; } 50% { transform: translate(8px,-10px); opacity:0.8; } 100% { transform: translate(0,0); opacity:0.3; } }

/* scene: item-revolver-surrender */
.scn-item-revolver-surrender { background: linear-gradient(135deg, #e8dcc8 0%, #c4b49a 50%, #a28a6e 100%), radial-gradient(ellipse at 30% 40%, #f5eedd 0%, transparent 60%); }
.scn-item-revolver-surrender .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 100%); }
.scn-item-revolver-surrender .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a89070 0%, #8a7658 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-item-revolver-surrender .figure { position:absolute; bottom:20%; left:35%; width:60px; height:100px; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ir-figure 3s ease-in-out infinite alternate; }
.scn-item-revolver-surrender .arm { position:absolute; bottom:55%; left:35%; width:40px; height:10px; background: linear-gradient(90deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40%; transform-origin: right center; animation: ir-arm 2.5s ease-in-out infinite; }
.scn-item-revolver-surrender .revolver { position:absolute; bottom:60%; left:30%; width:30px; height:8px; background: linear-gradient(90deg, #3a3a4e 0%, #1a1a2e 100%); border-radius: 10% 10% 30% 30% / 50% 50% 50% 50%; transform-origin: right center; animation: ir-revolver 2.5s ease-in-out infinite; box-shadow: 2px 2px 4px rgba(0,0,0,0.5); }
.scn-item-revolver-surrender .shadow { position:absolute; bottom:20%; left:30%; width:80px; height:10px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: ir-shadow 3s ease-in-out infinite; }
@keyframes ir-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ir-arm { 0% { transform: rotate(10deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(10deg); } }
@keyframes ir-revolver { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes ir-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.2); opacity: 0.9; } 100% { transform: scaleX(1); opacity: 0.6; } }

/* scene: palace-denial-sanity */
.scn-palace-denial-sanity { background: linear-gradient(135deg, #e8dcc8 0%, #c4b49a 50%, #a28a6e 100%), radial-gradient(ellipse at 50% 30%, #f5eedd 0%, transparent 70%); }
.scn-palace-denial-sanity .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #d4c4a8 0%, #a89070 100%); }
.scn-palace-denial-sanity .bg-arch { position:absolute; top:10%; left:15%; width:70%; height:60%; background: linear-gradient(180deg, #f0e6d0 0%, #e0d0b8 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,0.2); animation: pd-arch 8s ease-in-out infinite alternate; }
.scn-palace-denial-sanity .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a89070 0%, #8a7658 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-palace-denial-sanity .figure-left { position:absolute; bottom:20%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-left 4s ease-in-out infinite; }
.scn-palace-denial-sanity .figure-right { position:absolute; bottom:20%; right:20%; width:50px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-right 4s ease-in-out infinite; }
.scn-palace-denial-sanity .hand-point { position:absolute; bottom:50%; left:30%; width:30px; height:10px; background: linear-gradient(90deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: left center; animation: pd-hand 2s ease-in-out infinite alternate; }
@keyframes pd-arch { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } }
@keyframes pd-left { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pd-right { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pd-hand { 0% { transform: rotate(-20deg); } 100% { transform: rotate(20deg); } }

/* scene: palace-oberg-narrow-escape */
.scn-palace-oberg-narrow-escape { background: linear-gradient(135deg, #e8dcc8 0%, #c4b49a 50%, #a28a6e 100%), radial-gradient(ellipse at 70% 60%, #f5eedd 0%, transparent 50%); }
.scn-palace-oberg-narrow-escape .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #d4c4a8 0%, #a89070 100%); }
.scn-palace-oberg-narrow-escape .door-frame { position:absolute; bottom:20%; left:50%; width:80px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7658 0%, #6a5a40 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
.scn-palace-oberg-narrow-escape .door-open { position:absolute; bottom:20%; left:50%; width:40px; height:140px; transform:translateX(-80%); background: linear-gradient(180deg, #b8a88a 0%, #98886a 100%); border-radius: 4% 4% 0 0; box-shadow: 4px 0 10px rgba(0,0,0,0.3); animation: no-door 6s ease-in-out infinite; }
.scn-palace-oberg-narrow-escape .figure-slip { position:absolute; bottom:20%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: no-figure 3s ease-in-out infinite; }
.scn-palace-oberg-narrow-escape .shadow-floor { position:absolute; bottom:15%; left:40%; width:60px; height:8px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(5px); animation: no-shadow 3s ease-in-out infinite; }
.scn-palace-oberg-narrow-escape .glow-outside { position:absolute; bottom:20%; left:50%; width:100px; height:140px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.6) 0%, transparent 70%); animation: no-glow 4s ease-in-out infinite alternate; }
@keyframes no-door { 0% { transform: translateX(-80%) rotate(0deg); } 50% { transform: translateX(-85%) rotate(5deg); } 100% { transform: translateX(-80%) rotate(0deg); } }
@keyframes no-figure { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(5px) translateY(-5px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes no-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.3); opacity: 0.8; } 100% { transform: scaleX(1); opacity: 0.5; } }
@keyframes no-glow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

/* scene: palace-oberg-sneer */
.scn-palace-oberg-sneer { background: linear-gradient(135deg, #e8dcc8 0%, #b8a88a 50%, #8a7658 100%), radial-gradient(ellipse at 50% 40%, #f5eedd 0%, transparent 60%); }
.scn-palace-oberg-sneer .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); opacity: 0.6; }
.scn-palace-oberg-sneer .head-profile { position:absolute; bottom:40%; left:40%; width:50px; height:60px; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-head 5s ease-in-out infinite; }
.scn-palace-oberg-sneer .shoulder { position:absolute; bottom:25%; left:35%; width:70px; height:40px; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; }
.scn-palace-oberg-sneer .hand-cigarette { position:absolute; bottom:35%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%; transform-origin: bottom center; animation: ps-hand 3s ease-in-out infinite; }
.scn-palace-oberg-sneer .smoke-1 { position:absolute; bottom:55%; left:58%; width:12px; height:12px; background: radial-gradient(circle, rgba(200,200,200,0.6) 0%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: ps-smoke1 6s ease-out infinite; }
.scn-palace-oberg-sneer .smoke-2 { position:absolute; bottom:55%; left:62%; width:10px; height:10px; background: radial-gradient(circle, rgba(200,200,200,0.4) 0%, transparent 80%); border-radius: 50%; filter: blur(2px); animation: ps-smoke2 5s ease-out infinite 2s; }
@keyframes ps-head { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ps-hand { 0% { transform: rotate(10deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }
@keyframes ps-smoke1 { 0% { transform: translateY(0) scale(0.5); opacity: 0.8; } 50% { transform: translateY(-30px) scale(1.2); opacity: 0.4; } 100% { transform: translateY(-60px) scale(2); opacity: 0; } }
@keyframes ps-smoke2 { 0% { transform: translateY(0) scale(0.5); opacity: 0.6; } 50% { transform: translateY(-25px) scale(1); opacity: 0.3; } 100% { transform: translateY(-50px) scale(1.5); opacity: 0; } }

.scn-hut-police-entrance {
  background:
    linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 0%, #c08040 0%, transparent 60%);
}
.scn-hut-police-entrance .door-frame {
  position: absolute; left: 30%; right: 30%; top: 15%; bottom: 20%;
  border: 8px solid #3a2a1a;
  background: linear-gradient(135deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: hpe-door 10s ease-in-out infinite alternate;
}
.scn-hut-police-entrance .light-beam {
  position: absolute; left: 32%; right: 32%; top: 17%; bottom: 22%;
  background: linear-gradient(135deg, rgba(255,200,100,0.6) 0%, rgba(255,200,100,0) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: hpe-light 6s ease-in-out infinite alternate;
}
.scn-hut-police-entrance .shadow-police-1 {
  position: absolute; left: 18%; bottom: 22%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  transform: skewX(5deg);
  animation: hpe-shad1 8s ease-in-out infinite alternate;
}
.scn-hut-police-entrance .shadow-police-2 {
  position: absolute; right: 18%; bottom: 22%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  transform: skewX(-5deg);
  animation: hpe-shad2 9s ease-in-out infinite alternate;
}
.scn-hut-police-entrance .hut-floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-hut-police-entrance .hut-wall {
  position: absolute; left: 0; right: 0; top: 0; bottom: 20%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
}
@keyframes hpe-door { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes hpe-light { 0% { opacity: 0.7; transform: scaleX(1) } 50% { opacity: 1; transform: scaleX(1.05) } 100% { opacity: 0.8; transform: scaleX(0.95) } }
@keyframes hpe-shad1 { 0% { transform: skewX(5deg) translateX(0) } 50% { transform: skewX(0deg) translateX(4px) } 100% { transform: skewX(5deg) translateX(0) } }
@keyframes hpe-shad2 { 0% { transform: skewX(-5deg) translateX(0) } 50% { transform: skewX(0deg) translateX(-4px) } 100% { transform: skewX(-5deg) translateX(0) } }

.scn-hut-questioning {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 50%, #5a3a2a 0%, transparent 70%);
}
.scn-hut-questioning .table {
  position: absolute; left: 20%; right: 20%; bottom: 25%; height: 12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.8);
  animation: hqu-table 15s ease-in-out infinite alternate;
}
.scn-hut-questioning .candle {
  position: absolute; left: 48%; bottom: 37%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #e0c080 0%, #a08040 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 10px 4px #c08040;
  animation: hqu-candle 4s ease-in-out infinite alternate;
}
.scn-hut-questioning .candle-glow {
  position: absolute; left: 40%; right: 40%; bottom: 35%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hqu-glow 3s ease-in-out infinite alternate;
}
.scn-hut-questioning .woodcutter {
  position: absolute; left: 15%; bottom: 23%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: hqu-cutter 6s ease-in-out infinite alternate;
}
.scn-hut-questioning .officer {
  position: absolute; right: 15%; bottom: 23%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: hqu-officer 7s ease-in-out infinite alternate;
}
.scn-hut-questioning .shadow-interior {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 30%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
}
@keyframes hqu-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hqu-candle { 0% { transform: scaleY(1) rotate(0deg) } 50% { transform: scaleY(1.1) rotate(2deg) } 100% { transform: scaleY(0.95) rotate(-2deg) } }
@keyframes hqu-glow { 0%,100% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.15) } }
@keyframes hqu-cutter { 0%,100% { transform: rotate(-3deg) translateX(0) } 50% { transform: rotate(0deg) translateX(4px) } }
@keyframes hqu-officer { 0%,100% { transform: rotate(3deg) translateX(0) } 50% { transform: rotate(0deg) translateX(-4px) } }

.scn-hut-arrest-threat {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 70%);
}
.scn-hut-arrest-threat .bed {
  position: absolute; left: 15%; right: 15%; bottom: 10%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
  animation: hat-bed 20s ease-in-out infinite alternate;
}
.scn-hut-arrest-threat .blanket {
  position: absolute; left: 20%; right: 20%; bottom: 12%; height: 28%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  opacity: 0.8;
  animation: hat-blanket 12s ease-in-out infinite alternate;
}
.scn-hut-arrest-threat .pillow {
  position: absolute; left: 35%; right: 50%; bottom: 38%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50%;
  animation: hat-pillow 15s ease-in-out infinite alternate;
}
.scn-hut-arrest-threat .figure-sleeping {
  position: absolute; left: 25%; right: 25%; bottom: 15%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: hat-sleep 8s ease-in-out infinite alternate;
}
.scn-hut-arrest-threat .figure-missing {
  position: absolute; right: 20%; bottom: 15%; width: 15%; height: 28%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.4;
  filter: blur(2px);
  animation: hat-missing 6s ease-in-out infinite alternate;
}
.scn-hut-arrest-threat .floor-dark {
  position: absolute; left: 0; right: 0; bottom: 0; height: 10%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 0 0 10% 10%;
}
@keyframes hat-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hat-blanket { 0%,100% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } }
@keyframes hat-pillow { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hat-sleep { 0% { transform: rotate(10deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(0.95) } 100% { transform: rotate(10deg) scaleX(1) } }
@keyframes hat-missing { 0%,100% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.6; transform: scale(0.9) } }

.scn-hut-identity-claim {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0a0000 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, transparent 70%);
}
.scn-hut-identity-claim .lantern-glow {
  position: absolute; left: 40%; right: 40%; bottom: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,180,60,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: hic-glow 4s ease-in-out infinite alternate;
}
.scn-hut-identity-claim .figure-gordon {
  position: absolute; left: 20%; bottom: 22%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: hic-gordon 7s ease-in-out infinite alternate;
}
.scn-hut-identity-claim .figure-officer {
  position: absolute; right: 20%; bottom: 22%; width: 16%; height: 38%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
  animation: hic-officer 8s ease-in-out infinite alternate;
}
.scn-hut-identity-claim .floor-claim {
  position: absolute; left: 0; right: 0; bottom: 0; height: 18%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 10% 10% 0 0;
}
.scn-hut-identity-claim .wall-back {
  position: absolute; left: 0; right: 0; top: 0; bottom: 18%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-hut-identity-claim .shadow-claim {
  position: absolute; left: 28%; right: 28%; bottom: 20%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: hic-shadow 9s ease-in-out infinite alternate;
}
@keyframes hic-glow { 0%,100% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } }
@keyframes hic-gordon { 0%,100% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(1deg) translateX(6px) } }
@keyframes hic-officer { 0%,100% { transform: rotate(2deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(-6px) } }
@keyframes hic-shadow { 0% { opacity: 0.5; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(0.9) } 100% { opacity: 0.5; transform: scaleX(1) } }

/* Scene: waiting-alone (wa1) */
.scn-waiting-alone {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #181828 50%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, transparent 70%);
}
.scn-waiting-alone .room-dark { position:absolute; inset:0; }
.scn-waiting-alone .table { position:absolute; bottom:18%; left:40%; width:120px; height:8px; background: #3a2a1a; border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.6); }
.scn-waiting-alone .lamp-base { position:absolute; bottom:21%; left:50%; width:10px; height:30px; margin-left:-5px; background: #4a3a2a; border-radius:2px; }
.scn-waiting-alone .lamp-shade { position:absolute; bottom:42%; left:50%; width:50px; height:30px; margin-left:-25px; background: radial-gradient(ellipse at 50% 10%, #3a623a 0%, #2a4a2a 60%, #1a2a1a 100%); border-radius:30% 30% 10% 10%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.5); }
.scn-waiting-alone .lamp-glow {
  position:absolute; bottom:25%; left:50%; width:80px; height:60px; margin-left:-40px;
  background: radial-gradient(circle, rgba(180,200,100,.8) 0%, rgba(100,120,60,.3) 40%, transparent 70%);
  filter: blur(8px);
  animation: wa1-flicker 3s ease-in-out infinite alternate;
}
.scn-waiting-alone .chair { position:absolute; bottom:10%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow:0 4px 6px rgba(0,0,0,.5); }
.scn-waiting-alone .figure-sitting { position:absolute; bottom:16%; left:38%; width:34px; height:60px; background: linear-gradient(180deg, #1a1520 0%, #0e0a12 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: wa1-breathe 5s ease-in-out infinite; }
.scn-waiting-alone .shadow-fall { position:absolute; bottom:0; left:30%; width:100px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); filter: blur(6px); animation: wa1-shadow 8s ease-in-out infinite alternate; }
@keyframes wa1-flicker { 0% { opacity:.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:.8; transform:scale(0.98) } }
@keyframes wa1-breathe { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-2px) rotate(0) } 100% { transform:translateY(0) rotate(1deg) } }
@keyframes wa1-shadow { 0% { opacity:.4; transform:scaleX(1) } 50% { opacity:.7; transform:scaleX(1.1) } 100% { opacity:.5; transform:scaleX(0.95) } }

/* Scene: olinto-returns-with-news (or2) */
.scn-olinto-returns-with-news {
  background:
    linear-gradient(180deg, #12121c 0%, #1a1a2a 40%, #0e0e18 100%),
    radial-gradient(ellipse at 80% 60%, #1a1a30 0%, transparent 60%);
}
.scn-olinto-returns-with-news .room-dark { position:absolute; inset:0; }
.scn-olinto-returns-with-news .door-frame { position:absolute; right:10%; top:10%; width:80px; height:160px; border:6px solid #2a1a0a; background: #0a0a12; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-olinto-returns-with-news .door-leaf { position:absolute; right:10%; top:10%; width:70px; height:150px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-right:4px solid #2a1a0a; border-radius:0 4px 4px 0; transform-origin: right center; animation: or2-door 6s ease-in-out infinite; }
.scn-olinto-returns-with-news .olinto-figure { position:absolute; right:14%; bottom:20%; width:30px; height:65px; background: linear-gradient(180deg, #1a1520 0%, #0e0a14 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: or2-enter 10s ease-in-out infinite; }
.scn-olinto-returns-with-news .lamp-table { position:absolute; left:15%; bottom:25%; width:30px; height:6px; background:#3a2a1a; border-radius:2px; }
.scn-olinto-returns-with-news .lamp-glow { position:absolute; left:15%; bottom:28%; width:50px; height:50px; margin-left:-20px; background: radial-gradient(circle, rgba(200,160,80,.8) 0%, rgba(160,120,50,.4) 40%, transparent 70%); filter: blur(10px); animation: or2-light 4s ease-in-out infinite alternate; }
.scn-olinto-returns-with-news .rug { position:absolute; bottom:5%; left:10%; width:200px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10%; opacity:.6; }
@keyframes or2-door { 0% { transform:rotate(0) } 20% { transform:rotate(-70deg) } 40% { transform:rotate(-60deg) } 60% { transform:rotate(-65deg) } 80% { transform:rotate(-70deg) } 100% { transform:rotate(0) } }
@keyframes or2-enter { 0% { opacity:0; transform:translateX(30px) scale(0.9) } 20% { opacity:1; transform:translateX(0) scale(1) } 80% { opacity:1 } 100% { opacity:0; transform:translateX(30px) scale(0.9) } }
@keyframes or2-light { 0% { opacity:.6; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.7; transform:scale(0.95) } }

/* Scene: trap-prepared (tp3) */
.scn-trap-prepared {
  background:
    linear-gradient(180deg, #0d0d18 0%, #151526 50%, #080810 100%),
    radial-gradient(ellipse at 40% 50%, #1a1a2e 0%, transparent 70%);
}
.scn-trap-prepared .room-dark { position:absolute; inset:0; }
.scn-trap-prepared .wall-crack { position:absolute; top:15%; left:20%; width:2px; height:80px; background: #2a1a0a; border-radius:1px; transform:rotate(15deg); opacity:.3; }
.scn-trap-prepared .table { position:absolute; bottom:20%; left:25%; width:100px; height:6px; background: #3a2a1a; border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.6); }
.scn-trap-prepared .lamp-glow { position:absolute; bottom:24%; left:30%; width:60px; height:60px; background: radial-gradient(circle, rgba(180,140,70,.8) 0%, rgba(130,90,40,.3) 50%, transparent 70%); filter: blur(12px); animation: tp3-flicker 3s ease-in-out infinite; }
.scn-trap-prepared .figure-standing { position:absolute; right:20%; bottom:15%; width:35px; height:70px; background: linear-gradient(180deg, #1a1520 0%, #0a0812 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tp3-stand 7s ease-in-out infinite; }
.scn-trap-prepared .figure-seated { position:absolute; left:15%; bottom:18%; width:40px; height:55px; background: linear-gradient(180deg, #1a1520 0%, #0e0a14 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: tp3-seat 9s ease-in-out infinite; }
.scn-trap-prepared .shadow-pool { position:absolute; bottom:0; left:10%; width:150px; height:25px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); filter: blur(8px); animation: tp3-shadow 12s ease-in-out infinite alternate; }
@keyframes tp3-flicker { 0% { opacity:.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.08) } 100% { opacity:.8; transform:scale(0.95) } }
@keyframes tp3-stand { 0% { transform:translateY(0) rotate(-2deg) } 25% { transform:translateY(-3px) rotate(0) } 50% { transform:translateY(0) rotate(2deg) } 75% { transform:translateY(-2px) rotate(0) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes tp3-seat { 0% { transform:translateY(0) rotate(0) } 30% { transform:translateY(-2px) rotate(-1deg) } 60% { transform:translateY(0) rotate(1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes tp3-shadow { 0% { opacity:.4; transform:scaleX(1) } 50% { opacity:.7; transform:scaleX(1.1) } 100% { opacity:.5; transform:scaleX(0.9) } }

/* Scene: olintos-poor-fortune (of4) */
.scn-olintos-poor-fortune {
  background:
    linear-gradient(180deg, #0f0f1a 0%, #18182a 40%, #0a0a14 100%),
    radial-gradient(ellipse at 30% 40%, #1a1a2e 0%, transparent 70%);
}
.scn-olintos-poor-fortune .room-dark { position:absolute; inset:0; }
.scn-olintos-poor-fortune .wall-panels { position:absolute; top:5%; left:5%; width:90%; height:90%; border:2px solid #2a1a0a; border-radius:4px; opacity:.3; }
.scn-olintos-poor-fortune .desk { position:absolute; bottom:15%; left:20%; width:140px; height:8px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.6); }
.scn-olintos-poor-fortune .lantern { position:absolute; bottom:20%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 10% 10%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.5); }
.scn-olintos-poor-fortune .lantern-glow { position:absolute; bottom:18%; left:35%; width:60px; height:50px; margin-left:-20px; background: radial-gradient(circle, rgba(220,180,80,.9) 0%, rgba(180,130,50,.3) 40%, transparent 70%); filter: blur(12px); animation: of4-glow 4s ease-in-out infinite alternate; }
.scn-olintos-poor-fortune .figure-leaning { position:absolute; right:15%; bottom:12%; width:30px; height:70px; background: linear-gradient(180deg, #1a1520 0%, #0a0812 100%); border-radius:45% 45% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; transform:rotate(10deg); animation: of4-lean 8s ease-in-out infinite; }
.scn-olintos-poor-fortune .papers { position:absolute; bottom:15%; left:25%; width:50px; height:3px; background: #8a7a5a; border-radius:1px; box-shadow:0 2px 4px rgba(0,0,0,.5); }
@keyframes of4-glow { 0% { opacity:.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.8; transform:scale(0.95) } }
@keyframes of4-lean { 0% { transform:rotate(10deg) translateY(0) } 50% { transform:rotate(8deg) translateY(-2px) } 100% { transform:rotate(10deg) translateY(0) } }

/* london-night-calls */
.scn-london-night-calls { background: linear-gradient(180deg, #0d0d1f 0%, #1a1a33 40%, #2a2a44 100%), radial-gradient(ellipse at 50% 0%, #3a3a5a 0%, transparent 70%); }
.scn-london-night-calls .sky-night { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0f0f24 0%, #1c1c3a 100%); animation: lnc-sky 20s ease-in-out infinite alternate; }
.scn-london-night-calls .buildings-bg { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e1e38 0%, #121224 100%); clip-path: polygon(0% 100%, 0% 60%, 8% 60%, 8% 30%, 16% 30%, 16% 55%, 24% 55%, 24% 35%, 32% 35%, 32% 50%, 40% 50%, 40% 25%, 50% 25%, 50% 55%, 58% 55%, 58% 35%, 66% 35%, 66% 50%, 74% 50%, 74% 20%, 82% 20%, 82% 45%, 90% 45%, 90% 35%, 100% 35%, 100% 100%); animation: lnc-shimmer 30s ease-in-out infinite; }
.scn-london-night-calls .street { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-london-night-calls .lamp-post { position:absolute; bottom:30%; left:20%; width:6px; height:40%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 2px; transform-origin: bottom center; }
.scn-london-night-calls .lamp-glow { position:absolute; bottom:68%; left:19%; width:20px; height:20px; background: radial-gradient(circle, #ffdd88 0%, #cc8844 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 50px 20px rgba(255,200,80,.3), 0 0 100px 40px rgba(200,100,30,.1); animation: lnc-glow-pulse 3s ease-in-out infinite alternate; }
.scn-london-night-calls .phone-booth { position:absolute; bottom:20%; left:40%; width:30px; height:45px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border: 2px solid #4a3a3a; border-radius: 4px; box-shadow: 2px 4px 10px rgba(0,0,0,.7); animation: lnc-booth-breathe 8s ease-in-out infinite; }
.scn-london-night-calls .figure-call { position:absolute; bottom:22%; left:41%; width:14px; height:30px; background: linear-gradient(180deg, #1e1e1e 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lnc-call-arm 2s ease-in-out infinite alternate; }
.scn-london-night-calls .moon { position:absolute; top:10%; right:15%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #ddeeff 0%, #bbccdd 80%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(200,220,255,.2); animation: lnc-moon-drift 50s linear infinite; }

@keyframes lnc-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes lnc-shimmer { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lnc-glow-pulse { 0% { box-shadow: 0 0 30px 10px rgba(255,200,80,.2); opacity:.8 } 50% { box-shadow: 0 0 60px 25px rgba(255,200,80,.5); opacity:1 } 100% { box-shadow: 0 0 35px 12px rgba(255,200,80,.3); opacity:.9 } }
@keyframes lnc-booth-breathe { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes lnc-call-arm { 0% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-4deg) } }
@keyframes lnc-moon-drift { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }

/* london-muriel-grief */
.scn-london-muriel-grief { background: linear-gradient(180deg, #f5e8d0 0%, #e0d0b8 50%, #c8b898 100%), radial-gradient(ellipse at 50% 50%, #ede5d0 0%, transparent 80%); }
.scn-london-muriel-grief .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #daceb8 0%, #c8b89a 100%); box-shadow: inset 0 -10px 20px rgba(0,0,0,.05); }
.scn-london-muriel-grief .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a09078 0%, #8a7a62 100%); }
.scn-london-muriel-grief .window-bright { position:absolute; top:20%; left:60%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 50%, #fff0d0 0%, #e0d0b0 60%, #b0a080 100%); border: 4px solid #5a4a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.3); animation: mg-window 12s ease-in-out infinite alternate; }
.scn-london-muriel-grief .chair { position:absolute; bottom:20%; left:30%; width:25px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: rotate(-2deg); animation: mg-chair 10s ease-in-out infinite; }
.scn-london-muriel-grief .figure-grief { position:absolute; bottom:18%; left:35%; width:20px; height:45px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mg-sag 4s ease-in-out infinite alternate; }
.scn-london-muriel-grief .handkerchief { position:absolute; bottom:38%; left:36%; width:12px; height:12px; background: radial-gradient(circle at 40% 40%, #ffffff 0%, #dddddd 80%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.1); animation: mg-handkerchief 3s ease-in-out infinite; }

@keyframes mg-window { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mg-chair { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-2deg) } }
@keyframes mg-sag { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mg-handkerchief { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }

/* london-muriel-resolve */
.scn-london-muriel-resolve { background: linear-gradient(180deg, #e8dcc4 0%, #d8ccb4 50%, #c0b49a 100%), radial-gradient(ellipse at 40% 30%, #f0e8d0 0%, transparent 70%); }
.scn-london-muriel-resolve .panel-dark { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); box-shadow: inset -5px 0 15px rgba(0,0,0,.4); animation: mr-panel 15s ease-in-out infinite alternate; }
.scn-london-muriel-resolve .desk { position:absolute; bottom:15%; left:45%; width:60px; height:8px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.scn-london-muriel-resolve .lamp-desk { position:absolute; bottom:25%; left:50%; width:8px; height:25px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 2px; transform: rotate(10deg); transform-origin: bottom; animation: mr-lamp-sway 8s ease-in-out infinite; }
.scn-london-muriel-resolve .lamp-desk::after { content:''; position:absolute; top:-6px; left:-4px; width:16px; height:16px; background: radial-gradient(circle, #ffd080 0%, #cc8844 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,100,30,.3); animation: mr-lamp-glow 3s ease-in-out infinite alternate; }
.scn-london-muriel-resolve .papers { position:absolute; bottom:16%; left:48%; width:20px; height:4px; background: #f0e0c0; border-radius: 1px; box-shadow: 0 2px 2px rgba(0,0,0,.1); animation: mr-paper 12s ease-in-out infinite; }
.scn-london-muriel-resolve .figure-resolve { position:absolute; bottom:12%; left:50%; width:16px; height:45px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mr-stand 6s ease-in-out infinite; }
.scn-london-muriel-resolve .shadow-resolve { position:absolute; bottom:10%; left:48%; width:30px; height:8px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.2) 0%, transparent 80%); animation: mr-shadow 6s ease-in-out infinite; }

@keyframes mr-panel { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mr-lamp-sway { 0% { transform: rotate(10deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(10deg) } }
@keyframes mr-lamp-glow { 0% { box-shadow: 0 0 15px 4px rgba(200,100,30,.2) } 50% { box-shadow: 0 0 30px 10px rgba(200,100,30,.5) } 100% { box-shadow: 0 0 18px 5px rgba(200,100,30,.3) } }
@keyframes mr-paper { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mr-stand { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mr-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

/* london-muriel-message */
.scn-london-muriel-message { background: linear-gradient(180deg, #e8dcc4 0%, #d8ccb4 50%, #c0b49a 100%), radial-gradient(ellipse at 70% 50%, #f0e8d0 0%, transparent 80%); }
.scn-london-muriel-message .corridor-wall { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #d0c4ac 0%, #b8ac94 100%); }
.scn-london-muriel-message .corridor-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a09078 0%, #8a7a62 100%); }
.scn-london-muriel-message .door { position:absolute; bottom:25%; right:15%; width:30px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border: 2px solid #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.2); animation: mm-door-breathe 12s ease-in-out infinite; }
.scn-london-muriel-message .bench { position:absolute; bottom:20%; left:20%; width:40px; height:12px; background: linear-gradient(180deg, #7a6a52 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.2); }
.scn-london-muriel-message .figure-waiting { position:absolute; bottom:17%; left:22%; width:18px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm-sit 8s ease-in-out infinite; }
.scn-london-muriel-message .light-strip { position:absolute; top:10%; left:10%; width:20px; height:6px; background: rgba(255,240,200,.3); filter: blur(4px); animation: mm-light 4s ease-in-out infinite alternate; }

@keyframes mm-door-breathe { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mm-sit { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mm-light { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-muriel-trusts-him {
  background: 
    radial-gradient(ellipse at 50% 60%, #2a1e1a 0%, transparent 60%),
    linear-gradient(180deg, #1c1412 0%, #2a2018 40%, #1a1210 100%);
}
.scn-muriel-trusts-him .mth-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2018 0%, #1c1412 100%); animation: mth-wall 8s ease-in-out infinite alternate; }
.scn-muriel-trusts-him .mth-table { position:absolute; bottom:20%; left:25%; width:50%; height:15%; background: linear-gradient(180deg, #4a3028 0%, #2a1a12 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-muriel-trusts-him .mth-candle { position:absolute; bottom:38%; left:50%; width:8px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #e8c080 0%, #a06838 100%); border-radius: 30% 30% 10% 10%; }
.scn-muriel-trusts-him .mth-glow { position:absolute; bottom:35%; left:45%; width:10%; height:15%; background: radial-gradient(circle, #d09050 0%, transparent 70%); animation: mth-glow 2.5s ease-in-out infinite alternate; }
.scn-muriel-trusts-him .mth-figure-left { position:absolute; bottom:24%; left:20%; width:22px; height:50px; background: linear-gradient(180deg, #2a2018 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mth-lean 4s ease-in-out infinite; }
.scn-muriel-trusts-him .mth-figure-right { position:absolute; bottom:24%; right:22%; width:20px; height:48px; background: linear-gradient(180deg, #2a2018 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mth-lean 4s ease-in-out infinite reverse; }
.scn-muriel-trusts-him .mth-shadow { position:absolute; bottom:18%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%); animation: mth-shadow-pulse 3s ease-in-out infinite alternate; }
@keyframes mth-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mth-glow { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.8; transform: scale(.9) } }
@keyframes mth-lean { 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 mth-shadow-pulse { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-search-plan {
  background: 
    radial-gradient(ellipse at 30% 70%, #3a2a24 0%, transparent 70%),
    linear-gradient(180deg, #1a1412 0%, #2a201c 40%, #14100e 100%);
}
.scn-search-plan .sp-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a201c 0%, #1a1412 100%); animation: sp-wall 10s ease-in-out infinite alternate; }
.scn-search-plan .sp-desk { position:absolute; bottom:22%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, #503830 0%, #2a1a12 100%); border-radius: 8% 8% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-search-plan .sp-lamp { position:absolute; bottom:40%; left:30%; width:12px; height:30px; background: linear-gradient(180deg, #f0c080 0%, #a06838 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: sp-lamp-sway 5s ease-in-out infinite alternate; }
.scn-search-plan .sp-papers { position:absolute; bottom:28%; left:35%; width:40%; height:8%; background: linear-gradient(180deg, #d4c8a0 0%, #b8a880 100%); border-radius: 4% 4% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sp-papers 6s ease-in-out infinite alternate; }
.scn-search-plan .sp-figure { position:absolute; bottom:22%; left:45%; width:24px; height:52px; background: linear-gradient(180deg, #2a2018 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sp-bend 4s ease-in-out infinite; }
.scn-search-plan .sp-clock { position:absolute; bottom:55%; right:15%; width:20px; height:20px; background: radial-gradient(circle, #d4c8a0 0%, #a09070 100%); border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,.4); animation: sp-tick 2s steps(1) infinite; }
.scn-search-plan .sp-shadow { position:absolute; bottom:15%; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: sp-shadow-grow 7s ease-in-out infinite alternate; }
@keyframes sp-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sp-lamp-sway { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes sp-papers { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes sp-bend { 0% { transform: rotate(0deg) } 30% { transform: rotate(5deg) translateY(-2px) } 60% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes sp-tick { 0% { transform: scale(1) } 50% { transform: scale(.95) } 100% { transform: scale(1) } }
@keyframes sp-shadow-grow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-eager-to-know {
  background: 
    radial-gradient(ellipse at 50% 50%, #3a2a24 0%, transparent 80%),
    linear-gradient(180deg, #1e1816 0%, #2a201c 50%, #161210 100%);
}
.scn-eager-to-know .ek-room { position:absolute; inset:0; background: linear-gradient(180deg, #2a201c 0%, #1a1412 100%); animation: ek-room 12s ease-in-out infinite alternate; }
.scn-eager-to-know .ek-sofa { position:absolute; bottom:18%; left:10%; width:35%; height:20%; background: linear-gradient(180deg, #4a3830 0%, #2a1e18 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-eager-to-know .ek-figure-seated { position:absolute; bottom:20%; left:20%; width:20px; height:48px; background: linear-gradient(180deg, #1e1816 0%, #0e0c0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ek-seat 5s ease-in-out infinite; }
.scn-eager-to-know .ek-figure-stand { position:absolute; bottom:18%; right:25%; width:22px; height:54px; background: linear-gradient(180deg, #1e1816 0%, #0e0c0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ek-stand 6s ease-in-out infinite; }
.scn-eager-to-know .ek-lamp { position:absolute; bottom:35%; left:60%; width:10px; height:28px; background: linear-gradient(180deg, #e0b080 0%, #a06838 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: ek-lamp 4s ease-in-out infinite alternate; }
.scn-eager-to-know .ek-rug { position:absolute; bottom:5%; left:5%; width:90%; height:15%; background: linear-gradient(180deg, #4a3830 0%, #2a1e18 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 2px 8px rgba(0,0,0,.4); animation: ek-rug 8s ease-in-out infinite alternate; }
.scn-eager-to-know .ek-window { position:absolute; top:10%; right:10%; width:20%; height:30%; background: linear-gradient(180deg, #1c2834 0%, #0a1218 100%); border-radius: 4% 4% 0 0; border: 2px solid #2a2018; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: ek-window 15s ease-in-out infinite alternate; }
@keyframes ek-room { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ek-seat { 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 ek-stand { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(-4px) rotate(1deg) } 40% { transform: translateX(4px) rotate(-1deg) } 60% { transform: translateX(-2px) rotate(0deg) } 80% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ek-lamp { 0% { transform: rotate(-4deg) } 50% { transform: rotate(3deg) scaleY(1.02) } 100% { transform: rotate(-2deg) } }
@keyframes ek-rug { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) } 100% { transform: scaleY(1) } }
@keyframes ek-window { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-second-removal-theory {
  background: 
    radial-gradient(ellipse at 40% 60%, #2a1e1c 0%, transparent 60%),
    linear-gradient(180deg, #141010 0%, #221a18 40%, #0e0c0c 100%);
}
.scn-second-removal-theory .srt-hall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1412 0%, #0e0c0a 100%); animation: srt-hall 9s ease-in-out infinite alternate; }
.scn-second-removal-theory .srt-door { position:absolute; bottom:20%; right:15%; width:25%; height:50%; background: linear-gradient(180deg, #3a2a24 0%, #1a1210 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.4); }
.scn-second-removal-theory .srt-figure { position:absolute; bottom:22%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srt-figure 5s ease-in-out infinite; }
.scn-second-removal-theory .srt-floor { position:absolute; bottom:10%; left:5%; width:90%; height:12%; background: linear-gradient(180deg, #2a201c 0%, #1a1412 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 2px 6px rgba(0,0,0,.5); animation: srt-floor 7s ease-in-out infinite alternate; }
.scn-second-removal-theory .srt-lamp { position:absolute; bottom:40%; left:20%; width:8px; height:24px; background: linear-gradient(180deg, #d4b080 0%, #906030 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: srt-lamp 4.5s ease-in-out infinite alternate; }
.scn-second-removal-theory .srt-shadow { position:absolute; bottom:12%; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%); animation: srt-shadow 6s ease-in-out infinite alternate; }
.scn-second-removal-theory .srt-picture { position:absolute; top:15%; left:10%; width:15%; height:25%; background: linear-gradient(180deg, #2a2018 0%, #1a1412 100%); border-radius: 4% 4% 0 0; border: 2px solid #3a2a24; box-shadow: inset 0 0 8px rgba(0,0,0,.4); animation: srt-picture 10s ease-in-out infinite alternate; }
@keyframes srt-hall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes srt-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) translateY(-1px) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-2deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes srt-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(.97) } 100% { transform: scaleY(1) } }
@keyframes srt-lamp { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-4deg) } }
@keyframes srt-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.5 } }
@keyframes srt-picture { 0% { transform: scale(1) } 50% { transform: scale(.95) } 100% { transform: scale(1) } }

/* silence-after-revelation */
.scn-silence-after-revelation {
  background: 
    linear-gradient(180deg, #e88545 0%, #b1551e 30%, #5a1e0a 70%, #1a0a02 100%),
    radial-gradient(ellipse at 50% 0%, #ffaa66 0%, transparent 60%);
}
.scn-silence-after-revelation .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #d96a2a 0%, #b84a16 40%, transparent 100%);
  animation: sar-pulse 8s ease-in-out infinite;
}
.scn-silence-after-revelation .sun {
  position: absolute; top: 15%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffdd66 0%, #ff9933 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px #ff8844;
  animation: sar-sun 12s ease-in-out infinite alternate;
}
.scn-silence-after-revelation .figure-left {
  position: absolute; bottom: 25%; left: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0703 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: sar-figure-left 5s ease-in-out infinite alternate;
}
.scn-silence-after-revelation .figure-right {
  position: absolute; bottom: 25%; right: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0703 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: sar-figure-right 5s ease-in-out infinite alternate;
}
.scn-silence-after-revelation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-silence-after-revelation .shadow-1 {
  position: absolute; bottom: 18%; left: 22%; width: 60px; height: 8px;
  background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(4px);
  animation: sar-sway 7s ease-in-out infinite alternate;
}
.scn-silence-after-revelation .shadow-2 {
  position: absolute; bottom: 18%; right: 22%; width: 60px; height: 8px;
  background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(4px);
  animation: sar-sway 7s ease-in-out infinite alternate-reverse;
}
.scn-silence-after-revelation .dust {
  position: absolute; top: 40%; left: 10%; width: 4px; height: 4px;
  background: #ffcc77; border-radius: 50%; box-shadow: 0 0 6px 2px #ffaa44;
  animation: sar-drift 20s linear infinite;
}
@keyframes sar-pulse {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; }
}
@keyframes sar-sun {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-5px) scale(1.02); opacity: 1; }
  100% { transform: translateY(0) scale(0.98); opacity: 0.7; }
}
@keyframes sar-figure-left {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-6deg) translateX(-1px); }
}
@keyframes sar-figure-right {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(-2px); }
  100% { transform: rotate(6deg) translateX(1px); }
}
@keyframes sar-sway {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(3px) scale(1.05); }
  100% { transform: translateX(-3px) scale(0.95); }
}
@keyframes sar-drift {
  0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.8; }
  50% { transform: translateX(40vw) translateY(-10px) rotate(180deg); opacity: 0.5; }
  100% { transform: translateX(80vw) translateY(0) rotate(360deg); opacity: 0.9; }
}

/* encounter-with-hornby */
.scn-encounter-with-hornby {
  background: 
    linear-gradient(180deg, #e07a3c 0%, #a34a16 35%, #4a1a04 70%, #120804 100%),
    radial-gradient(ellipse at 30% 20%, #ff9933 0%, transparent 50%);
}
.scn-encounter-with-hornby .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #cc6222 0%, #a84410 40%, transparent 100%);
  animation: enh-sky 9s ease-in-out infinite alternate;
}
.scn-encounter-with-hornby .sun {
  position: absolute; top: 12%; left: 65%; width: 35px; height: 35px;
  background: radial-gradient(circle, #ffee66 0%, #ffaa33 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 80px 30px #ff8833;
  animation: enh-sun 10s ease-in-out infinite;
}
.scn-encounter-with-hornby .figure-left {
  position: absolute; bottom: 22%; left: 20%; width: 45px; height: 65px;
  background: linear-gradient(180deg, #2a1a0a 0%, #100805 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-3deg);
  animation: enh-fig-left 4s ease-in-out infinite alternate;
}
.scn-encounter-with-hornby .figure-right {
  position: absolute; bottom: 22%; right: 20%; width: 45px; height: 65px;
  background: linear-gradient(180deg, #2a1a0a 0%, #100805 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(3deg);
  animation: enh-fig-right 4s ease-in-out infinite alternate;
}
.scn-encounter-with-hornby .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 12px 25px rgba(0,0,0,0.7);
}
.scn-encounter-with-hornby .shadow-1 {
  position: absolute; bottom: 15%; left: 18%; width: 70px; height: 10px;
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(5px);
  animation: enh-shadow 6s ease-in-out infinite alternate;
}
.scn-encounter-with-hornby .shadow-2 {
  position: absolute; bottom: 15%; right: 18%; width: 70px; height: 10px;
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(5px);
  animation: enh-shadow 6s ease-in-out infinite alternate-reverse;
}
@keyframes enh-sky {
  0% { opacity: 0.8; } 50% { opacity: 0.6; } 100% { opacity: 0.9; }
}
@keyframes enh-sun {
  0% { transform: scale(1) translate(0,0); box-shadow: 0 0 60px 20px #ff8833; }
  33% { transform: scale(1.03) translate(3px,-3px); box-shadow: 0 0 90px 30px #ffaa55; }
  66% { transform: scale(0.97) translate(-2px,2px); box-shadow: 0 0 70px 25px #ff7733; }
  100% { transform: scale(1) translate(0,0); box-shadow: 0 0 60px 20px #ff8833; }
}
@keyframes enh-fig-left {
  0% { transform: rotate(-3deg) translateX(0) scale(1); }
  50% { transform: rotate(-1deg) translateX(3px) scale(1.02); }
  100% { transform: rotate(-4deg) translateX(-2px) scale(0.98); }
}
@keyframes enh-fig-right {
  0% { transform: rotate(3deg) translateX(0) scale(1); }
  50% { transform: rotate(1deg) translateX(-3px) scale(1.02); }
  100% { transform: rotate(4deg) translateX(2px) scale(0.98); }
}
@keyframes enh-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.7; }
  50% { transform: translateX(4px) scale(1.1); opacity: 1; }
  100% { transform: translateX(-4px) scale(0.9); opacity: 0.6; }
}

/* stunned-silence */
.scn-stunned-silence {
  background: 
    linear-gradient(180deg, #d97a3f 0%, #a14f1a 30%, #521d06 65%, #0f0602 100%),
    radial-gradient(ellipse at 40% 10%, #ffaa44 0%, transparent 55%);
}
.scn-stunned-silence .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c75d1f 0%, #9c3c0c 40%, transparent 100%);
  animation: stu-sky 7s ease-in-out infinite alternate;
}
.scn-stunned-silence .sun {
  position: absolute; top: 18%; left: 55%; width: 28px; height: 28px;
  background: radial-gradient(circle, #ffcc44 0%, #ff8822 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 50px 15px #ff7733;
  animation: stu-sun 11s ease-in-out infinite;
}
.scn-stunned-silence .figure-left {
  position: absolute; bottom: 28%; left: 30%; width: 38px; height: 58px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0703 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-4deg);
  animation: stu-fig-left 6s ease-in-out infinite alternate;
}
.scn-stunned-silence .figure-right {
  position: absolute; bottom: 28%; right: 30%; width: 38px; height: 58px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0703 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(4deg);
  animation: stu-fig-right 6s ease-in-out infinite alternate;
}
.scn-stunned-silence .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-stunned-silence .shadow-1 {
  position: absolute; bottom: 20%; left: 28%; width: 55px; height: 9px;
  background: rgba(0,0,0,0.45); border-radius: 50%; filter: blur(4px);
  animation: stu-shadow 8s ease-in-out infinite alternate;
}
.scn-stunned-silence .shadow-2 {
  position: absolute; bottom: 20%; right: 28%; width: 55px; height: 9px;
  background: rgba(0,0,0,0.45); border-radius: 50%; filter: blur(4px);
  animation: stu-shadow 8s ease-in-out infinite alternate-reverse;
}
.scn-stunned-silence .dust {
  position: absolute; top: 35%; left: 20%; width: 3px; height: 3px;
  background: #ffcc66; border-radius: 50%; box-shadow: 0 0 4px 1px #ffaa33;
  animation: stu-drift 25s linear infinite;
}
@keyframes stu-sky {
  0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.65; }
}
@keyframes stu-sun {
  0% { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 12px #ff7733; }
  33% { transform: scale(1.02) translate(2px,-2px); box-shadow: 0 0 60px 20px #ffaa55; }
  66% { transform: scale(0.98) translate(-2px,1px); box-shadow: 0 0 50px 15px #ff8833; }
  100% { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 12px #ff7733; }
}
@keyframes stu-fig-left {
  0% { transform: rotate(-4deg) translateX(0) scale(1); }
  50% { transform: rotate(-2deg) translateX(2px) scale(1.03); }
  100% { transform: rotate(-5deg) translateX(-1px) scale(0.97); }
}
@keyframes stu-fig-right {
  0% { transform: rotate(4deg) translateX(0) scale(1); }
  50% { transform: rotate(2deg) translateX(-2px) scale(1.03); }
  100% { transform: rotate(5deg) translateX(1px) scale(0.97); }
}
@keyframes stu-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  50% { transform: translateX(2px) scale(1.08); opacity: 1; }
  100% { transform: translateX(-2px) scale(0.92); opacity: 0.5; }
}
@keyframes stu-drift {
  0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.7; }
  50% { transform: translateX(30vw) translateY(-8px) rotate(180deg); opacity: 0.4; }
  100% { transform: translateX(60vw) translateY(0) rotate(360deg); opacity: 0.8; }
}

/* woodroffe-relieved */
.scn-woodroffe-relieved {
  background: 
    linear-gradient(180deg, #e68a42 0%, #b85a1e 32%, #5a2206 68%, #140903 100%),
    radial-gradient(ellipse at 60% 15%, #ffb055 0%, transparent 50%);
}
.scn-woodroffe-relieved .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d16a2a 0%, #a84a14 35%, transparent 100%);
  animation: wor-sky 10s ease-in-out infinite;
}
.scn-woodroffe-relieved .sun {
  position: absolute; top: 14%; left: 60%; width: 32px; height: 32px;
  background: radial-gradient(circle, #ffdd55 0%, #ff9933 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 70px 25px #ff8844;
  animation: wor-sun 9s ease-in-out infinite alternate;
}
.scn-woodroffe-relieved .figure-left {
  position: absolute; bottom: 24%; left: 22%; width: 42px; height: 62px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0703 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-2deg);
  animation: wor-fig-left 7s ease-in-out infinite alternate;
}
.scn-woodroffe-relieved .figure-right {
  position: absolute; bottom: 24%; right: 22%; width: 42px; height: 62px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0703 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(2deg);
  animation: wor-fig-right 7s ease-in-out infinite alternate;
}
.scn-woodroffe-relieved .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 24%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.65);
}
.scn-woodroffe-relieved .shadow-1 {
  position: absolute; bottom: 18%; left: 20%; width: 65px; height: 9px;
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px);
  animation: wor-shadow 5s ease-in-out infinite alternate;
}
.scn-woodroffe-relieved .shadow-2 {
  position: absolute; bottom: 18%; right: 20%; width: 65px; height: 9px;
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px);
  animation: wor-shadow 5s ease-in-out infinite alternate-reverse;
}
.scn-woodroffe-relieved .dust {
  position: absolute; top: 30%; left: 15%; width: 5px; height: 5px;
  background: #ffcc77; border-radius: 50%; box-shadow: 0 0 5px 2px #ffaa44;
  animation: wor-drift 22s linear infinite;
}
@keyframes wor-sky {
  0% { opacity: 0.75; } 50% { opacity: 0.9; } 100% { opacity: 0.7; }
}
@keyframes wor-sun {
  0% { transform: scale(1) translate(0,0); box-shadow: 0 0 50px 18px #ff8844; }
  50% { transform: scale(1.02) translate(2px,-4px); box-shadow: 0 0 80px 30px #ffaa55; }
  100% { transform: scale(0.98) translate(-1px,2px); box-shadow: 0 0 60px 20px #ff7733; }
}
@keyframes wor-fig-left {
  0% { transform: rotate(-2deg) translateX(0) scale(1); }
  50% { transform: rotate(-0.5deg) translateX(3px) scale(1.02); }
  100% { transform: rotate(-3deg) translateX(-1.5px) scale(0.98); }
}
@keyframes wor-fig-right {
  0% { transform: rotate(2deg) translateX(0) scale(1); }
  50% { transform: rotate(0.5deg) translateX(-3px) scale(1.02); }
  100% { transform: rotate(3deg) translateX(1.5px) scale(0.98); }
}
@keyframes wor-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.7; }
  50% { transform: translateX(5px) scale(1.12); opacity: 1; }
  100% { transform: translateX(-5px) scale(0.88); opacity: 0.5; }
}
@keyframes wor-drift {
  0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.6; }
  50% { transform: translateX(50vw) translateY(-12px) rotate(180deg); opacity: 0.3; }
  100% { transform: translateX(100vw) translateY(0) rotate(360deg); opacity: 0.7; }
}

/* moonlit-conversation – tense, moonlit interior */
.scn-moonlit-conversation {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 50%, #3a3a6e 100%),
              radial-gradient(ellipse at 30% 20%, #5a6a9e 0%, transparent 60%);
}
.scn-moonlit-conversation .mc-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1e42 0%, #12122a 100%);
  animation: mc-bg 10s ease-in-out infinite alternate;
}
.scn-moonlit-conversation .mc-window {
  position: absolute; top: 5%; left: 60%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #2a3a6a 0%, #1a2a4a 100%);
  border: 4px solid #3a4a6a; border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(100,140,220,0.2);
}
.scn-moonlit-conversation .mc-moon {
  position: absolute; top: 2%; left: 68%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0e0ff 0%, #a0b0e0 70%);
  border-radius: 50%; box-shadow: 0 0 60px #b0c0ff, 0 0 120px rgba(160,180,255,0.3);
  animation: mc-moon 8s ease-in-out infinite alternate;
}
.scn-moonlit-conversation .mc-couch {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 60%; height: 25%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 20% 20%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-moonlit-conversation .mc-figure {
  position: absolute; bottom: 25%; left: 35%; 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: mc-figure 6s ease-in-out infinite;
}
.scn-moonlit-conversation .mc-photo {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px; transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: mc-photo 4s ease-in-out infinite alternate;
}
.scn-moonlit-conversation .mc-shadow {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: mc-shadow 6s ease-in-out infinite alternate;
}
@keyframes mc-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mc-moon { 0% { transform: scale(1) translateY(0); opacity:0.9 } 50% { transform: scale(1.05) translateY(-2px); opacity:1 } 100% { transform: scale(0.98) translateY(1px); opacity:0.85 } }
@keyframes mc-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mc-photo { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-1px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes mc-shadow { 0% { transform: scaleX(1); opacity:0.7 } 50% { transform: scaleX(1.2); opacity:1 } 100% { transform: scaleX(0.9); opacity:0.6 } }

/* departure-plans – calm, moonlit sea/ship */
.scn-departure-plans {
  background: linear-gradient(180deg, #1a2a4e 0%, #0a1a3e 40%, #2a4a6e 100%),
              radial-gradient(ellipse at 70% 30%, #5a7a9e 0%, transparent 60%);
}
.scn-departure-plans .dp-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2a4e 0%, #0a1a3e 100%);
  animation: dp-sky 15s ease-in-out infinite alternate;
}
.scn-departure-plans .dp-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a3a5a 0%, #0a2a4a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-departure-plans .dp-ship {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: dp-ship 8s ease-in-out infinite;
}
.scn-departure-plans .dp-sail {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #e0e0e0 0%, #b0b0b0 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: dp-sail 6s ease-in-out infinite alternate;
}
.scn-departure-plans .dp-reflection {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  border-radius: 50%;
  animation: dp-reflection 4s ease-in-out infinite alternate;
}
.scn-departure-plans .dp-cloud {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(200,210,230,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: dp-cloud 40s linear infinite;
}
.scn-departure-plans .dp-wave {
  position: absolute; bottom: 30%; left: 0; width: 150%; height: 8px;
  background: linear-gradient(180deg, #3a5a7a 0%, transparent 100%);
  border-radius: 50%; opacity: 0.4;
  animation: dp-wave 6s ease-in-out infinite;
}
@keyframes dp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dp-ship { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } }
@keyframes dp-sail { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.1) } 100% { transform: translateX(-50%) scaleX(0.95) } }
@keyframes dp-reflection { 0% { opacity:0.2; transform: scaleY(1) } 50% { opacity:0.5; transform: scaleY(1.3) } 100% { opacity:0.3; transform: scaleY(0.8) } }
@keyframes dp-cloud { 0% { transform: translateX(-80px) } 100% { transform: translateX(120vw) } }
@keyframes dp-wave { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-20px) scaleY(1.2) } 100% { transform: translateX(0) scaleY(0.9) } }

/* view-of-sea-front – calm, moonlit view with café lights */
.scn-view-of-sea-front {
  background: linear-gradient(180deg, #1a2a5e 0%, #2a3a6e 30%, #0a1a3e 100%),
              radial-gradient(ellipse at 50% 20%, #5a7aae 0%, transparent 70%);
}
.scn-view-of-sea-front .vsf-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a2a5e 0%, #0a1a3e 100%);
  animation: vsf-sky 12s ease-in-out infinite;
}
.scn-view-of-sea-front .vsf-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a3a6a 0%, #0a2a5a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-view-of-sea-front .vsf-buildings {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  clip-path: polygon(0% 100%, 10% 40%, 15% 100%, 30% 20%, 45% 100%, 60% 50%, 70% 100%, 85% 30%, 100% 100%);
  animation: vsf-buildings 8s ease-in-out infinite alternate;
}
.scn-view-of-sea-front .vsf-lights {
  position: absolute; bottom: 30%; left: 10%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffdd88 0%, #ddaa44 70%);
  border-radius: 50%; box-shadow: 0 0 12px 2px #ffcc66, 0 0 24px 6px rgba(255,200,100,0.3);
  animation: vsf-lights 3s ease-in-out infinite alternate;
}
.scn-view-of-sea-front .vsf-balcony {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 4px; box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
}
.scn-view-of-sea-front .vsf-figure {
  position: absolute; bottom: 28%; left: 60%; 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: vsf-figure 10s ease-in-out infinite;
}
.scn-view-of-sea-front .vsf-star {
  position: absolute; top: 5%; right: 15%; width: 4px; height: 4px;
  background: #ffffff; border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.5);
  animation: vsf-star 4s ease-in-out infinite alternate;
}
@keyframes vsf-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes vsf-buildings { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes vsf-lights { 0% { opacity:0.6; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.7; transform: scale(0.9) } }
@keyframes vsf-figure { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes vsf-star { 0% { opacity:0.3; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(0.7) } }

/* chater-planting-suspicion – tense, moonlit interior with two figures */
.scn-chater-planting-suspicion {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 50%, #0a0a2a 100%),
              radial-gradient(ellipse at 50% 30%, #3a4a7a 0%, transparent 60%);
}
.scn-chater-planting-suspicion .cp-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1e42 0%, #12122a 100%);
  animation: cp-bg 8s ease-in-out infinite alternate;
}
.scn-chater-planting-suspicion .cp-table {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 40%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-chater-planting-suspicion .cp-figure1 {
  position: absolute; bottom: 25%; left: 30%; 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 center;
  animation: cp-figure1 5s ease-in-out infinite;
}
.scn-chater-planting-suspicion .cp-figure2 {
  position: absolute; bottom: 25%; left: 55%; 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: cp-figure2 6s ease-in-out infinite;
}
.scn-chater-planting-suspicion .cp-lamp {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 18px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(200,160,80,0.3);
  animation: cp-lamp 4s ease-in-out infinite alternate;
}
.scn-chater-planting-suspicion .cp-shadow {
  position: absolute; bottom: 15%; left: 40%; width: 30%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 60%);
  animation: cp-shadow 6s ease-in-out infinite alternate;
}
.scn-chater-planting-suspicion .cp-paper {
  position: absolute; bottom: 16%; left: 45%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #6a6a4a 0%, #4a4a2a 100%);
  border-radius: 2px; transform: rotate(5deg);
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  animation: cp-paper 4s ease-in-out infinite alternate;
}
@keyframes cp-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes cp-figure1 { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cp-figure2 { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cp-lamp { 0% { box-shadow: 0 0 16px 4px #b08040, 0 0 30px 8px rgba(200,160,80,0.2); opacity:0.8 } 50% { box-shadow: 0 0 28px 10px #c09050, 0 0 50px 16px rgba(200,160,80,0.4); opacity:1 } 100% { box-shadow: 0 0 20px 6px #b08040, 0 0 35px 10px rgba(200,160,80,0.25); opacity:0.85 } }
@keyframes cp-shadow { 0% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(1.3); opacity:0.8 } 100% { transform: scaleX(0.9); opacity:0.4 } }
@keyframes cp-paper { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(6deg) translateY(0) } }

.scn-london-blind-flight {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4bc94 40%, #b8a07a 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
}
.scn-london-blind-flight .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f5e0c8 0%, #dad0b8 100%);
  opacity: 0.7;
  animation: ld1-wall 8s ease-in-out infinite alternate;
}
.scn-london-blind-flight .bookshelf {
  position: absolute; left: 5%; top: 10%; width: 30%; height: 70%;
  background: linear-gradient(90deg, #8b6b4a 0%, #7a5a3a 50%, #6b4a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: ld1-shelf 6s ease-in-out infinite;
}
.scn-london-blind-flight .cupboard {
  position: absolute; right: 10%; top: 15%; width: 25%; height: 55%;
  background: linear-gradient(180deg, #6a4f3a 0%, #4d3520 100%);
  border: 2px solid #3d2a1a;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ld1-cupboard 12s ease-in-out infinite alternate;
}
.scn-london-blind-flight .lamp-light {
  position: absolute; top: 8%; left: 45%; width: 12%; height: 5%;
  background: radial-gradient(circle, #ffd68a 0%, #f0c060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #f0c060, 0 0 80px 40px rgba(240,192,96,0.3);
  animation: ld1-lamp 3s ease-in-out infinite alternate;
}
.scn-london-blind-flight .shadow-figure {
  position: absolute; bottom: 10%; left: 40%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1008 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.6);
  animation: ld1-figure 4s ease-in-out infinite;
}
.scn-london-blind-flight .carpet {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.4);
  animation: ld1-carpet 10s ease-in-out infinite alternate;
}
@keyframes ld1-wall { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes ld1-shelf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ld1-cupboard { 0% { transform: scaleX(1); box-shadow: 0 4px 12px rgba(0,0,0,0.4); } 50% { transform: scaleX(1.02); box-shadow: 0 6px 16px rgba(0,0,0,0.6); } 100% { transform: scaleX(0.98); box-shadow: 0 4px 12px rgba(0,0,0,0.4); } }
@keyframes ld1-lamp { 0% { opacity: 0.8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(1); } }
@keyframes ld1-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ld1-carpet { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-london-mystery-deepens {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b89a 50%, #a8987a 100%),
              radial-gradient(ellipse at 30% 20%, #fff4e0 0%, transparent 60%);
}
.scn-london-mystery-deepens .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #d0c0a8 100%);
  opacity: 0.6;
  animation: ld2-wall 10s ease-in-out infinite alternate;
}
.scn-london-mystery-deepens .door {
  position: absolute; left: 8%; top: 5%; width: 20%; height: 85%;
  background: linear-gradient(90deg, #b0906a 0%, #a0805a 50%, #90704a 100%);
  border-radius: 4px 12px 12px 0;
  box-shadow: 2px 0 10px rgba(0,0,0,0.3);
  animation: ld2-door 14s ease-in-out infinite;
}
.scn-london-mystery-deepens .guest-silhouette {
  position: absolute; bottom: 5%; left: 30%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.5);
  animation: ld2-guest 4s ease-in-out infinite;
}
.scn-london-mystery-deepens .shadow-hand {
  position: absolute; bottom: 30%; left: 38%; width: 10%; height: 15%;
  background: #1a1a2a;
  border-radius: 50% 50% 0 0;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: ld2-hand 3s ease-in-out infinite alternate;
}
.scn-london-mystery-deepens .pendant-light {
  position: absolute; top: 2%; left: 50%; width: 8%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, #fff0c0 0%, transparent 80%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 30px 15px #ffe0a0, 0 0 60px 30px rgba(255,224,160,0.3);
  animation: ld2-pendant 5s ease-in-out infinite alternate;
}
.scn-london-mystery-deepens .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: ld2-floor 12s ease-in-out infinite alternate;
}
@keyframes ld2-wall { 0%,100% { opacity: 0.5; } 50% { opacity: 0.7; } }
@keyframes ld2-door { 0% { transform: scaleX(1); } 33% { transform: scaleX(0.98); } 66% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes ld2-guest { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(10px) rotate(2deg); } 60% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ld2-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-4px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ld2-pendant { 0% { opacity: 0.85; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.9; transform: scale(0.98); } }
@keyframes ld2-floor { 0% { transform: translateY(0); opacity: 0.8; } 50% { transform: translateY(-2px); opacity: 1; } 100% { transform: translateY(0); opacity: 0.9; } }

.scn-london-stay-indoors {
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 40%, #c0b090 100%),
              radial-gradient(ellipse at 60% 50%, #fff8e8 0%, transparent 70%);
}
.scn-london-stay-indoors .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #e5d5b5 0%, #d5c5a5 100%);
  opacity: 0.7;
  animation: ld3-wall 6s ease-in-out infinite alternate;
}
.scn-london-stay-indoors .window-outline {
  position: absolute; right: 8%; top: 10%; width: 25%; height: 50%;
  background: linear-gradient(135deg, #c0b090 0%, #a09070 100%);
  border: 3px solid #5a4a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(40,30,20,0.3);
  animation: ld3-window 15s ease-in-out infinite;
}
.scn-london-stay-indoors .figure-with-revolver {
  position: absolute; bottom: 5%; left: 25%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1008 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 0 0 12px rgba(0,0,0,0.5);
  animation: ld3-figure 3s ease-in-out infinite;
}
.scn-london-stay-indoors .revolver-barrel {
  position: absolute; bottom: 40%; left: 32%; width: 8%; height: 6%;
  background: #1a1a2a;
  border-radius: 10% 20% 10% 20%;
  transform: rotate(-30deg);
  transform-origin: right center;
  box-shadow: 0 0 4px rgba(0,0,0,0.6);
  animation: ld3-barrel 2s ease-in-out infinite alternate;
}
.scn-london-stay-indoors .table-lamp {
  position: absolute; bottom: 10%; left: 55%; width: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #f0c060 0%, #c08040 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px #f0c060, 0 0 60px 20px rgba(240,192,96,0.2);
  animation: ld3-lamp 4s ease-in-out infinite alternate;
}
.scn-london-stay-indoors .shadow-on-wall {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%;
  background: rgba(20,10,0,0.25);
  filter: blur(8px);
  border-radius: 20%;
  animation: ld3-shadow 5s ease-in-out infinite alternate;
}
@keyframes ld3-wall { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes ld3-window { 0% { transform: scaleX(1); } 33% { transform: scaleX(0.97); } 66% { transform: scaleX(1.03); } 100% { transform: scaleX(1); } }
@keyframes ld3-figure { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(4px) rotate(2deg); } 60% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ld3-barrel { 0% { transform: rotate(-30deg) scaleX(1); } 50% { transform: rotate(-25deg) scaleX(1.1); } 100% { transform: rotate(-30deg) scaleX(1); } }
@keyframes ld3-lamp { 0% { opacity: 0.8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.9; transform: scale(0.98); } }
@keyframes ld3-shadow { 0% { transform: translateX(0); opacity: 0.2; } 50% { transform: translateX(10px); opacity: 0.4; } 100% { transform: translateX(0); opacity: 0.3; } }

.scn-london-olinto-implores {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b89a 50%, #a8987a 100%),
              radial-gradient(ellipse at 70% 40%, #fff4e0 0%, transparent 60%);
}
.scn-london-olinto-implores .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #e0d0b8 0%, #d0c0a8 100%);
  opacity: 0.7;
  animation: ld4-wall 7s ease-in-out infinite alternate;
}
.scn-london-olinto-implores .doorway {
  position: absolute; left: 2%; top: 5%; width: 18%; height: 85%;
  background: linear-gradient(180deg, #b0906a 0%, #90704a 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: 4px 0 10px rgba(0,0,0,0.3);
  animation: ld4-door 12s ease-in-out infinite;
}
.scn-london-olinto-implores .olinto-silhouette {
  position: absolute; bottom: 5%; left: 15%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 4px 0 8px rgba(0,0,0,0.5);
  animation: ld4-olinto 4s ease-in-out infinite;
}
.scn-london-olinto-implores .pleading-hand {
  position: absolute; bottom: 35%; left: 24%; width: 8%; height: 12%;
  background: #1a1a2a;
  border-radius: 50% 30% 30% 50%;
  transform: rotate(30deg);
  transform-origin: bottom left;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: ld4-hand 2.5s ease-in-out infinite alternate;
}
.scn-london-olinto-implores .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: ld4-floor 14s ease-in-out infinite alternate;
}
.scn-london-olinto-implores .overhead-light {
  position: absolute; top: 2%; left: 40%; width: 20%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #fff0c0 0%, transparent 80%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 40px 20px #ffe0a0, 0 0 80px 40px rgba(255,224,160,0.3);
  animation: ld4-light 6s ease-in-out infinite alternate;
}
@keyframes ld4-wall { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes ld4-door { 0% { transform: scaleY(1); } 33% { transform: scaleY(0.98); } 66% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes ld4-olinto { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(6px) rotate(2deg); } 60% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ld4-hand { 0% { transform: rotate(25deg) translateY(0); } 50% { transform: rotate(35deg) translateY(-3px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes ld4-floor { 0% { transform: translateY(0); opacity: 0.8; } 50% { transform: translateY(-2px); opacity: 1; } 100% { transform: translateY(0); opacity: 0.9; } }
@keyframes ld4-light { 0% { opacity: 0.85; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.9; transform: scale(0.98); } }

.scn-safe-opened-discovery {
  background:
    linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 40%, #c8b898 80%, #b8a888 100%),
    radial-gradient(ellipse at 30% 50%, #f5e8d0 0%, transparent 70%);
}
.scn-safe-opened-discovery .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4c4a8 0%, #c0b098 100%);
  animation: sod-wall 12s ease-in-out infinite alternate;
}
.scn-safe-opened-discovery .safe-body {
  position: absolute; bottom: 20%; left: 40%; width: 160px; height: 200px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: sod-safe 6s ease-in-out infinite;
}
.scn-safe-opened-discovery .safe-door {
  position: absolute; bottom: 24%; left: 41%; width: 140px; height: 170px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 8px 8px 4px 4px; border: 4px solid #4a3a2a;
  transform-origin: left center;
  animation: sod-door 10s ease-in-out infinite alternate;
}
.scn-safe-opened-discovery .safe-interior {
  position: absolute; bottom: 26%; left: 43%; width: 120px; height: 140px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4px;
}
.scn-safe-opened-discovery .documents {
  position: absolute; bottom: 30%; left: 46%; width: 50px; height: 80px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: sod-docs 3s ease-in-out infinite alternate;
}
.scn-safe-opened-discovery .figure {
  position: absolute; bottom: 18%; right: 25%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: sod-figure 4s ease-in-out infinite;
}
.scn-safe-opened-discovery .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-safe-opened-discovery .light {
  position: absolute; top: 5%; left: 50%; width: 120px; height: 120px;
  background: radial-gradient(circle, #fff8e0 0%, #f0e0c0 40%, transparent 70%);
  border-radius: 50%;
  animation: sod-light 5s ease-in-out infinite alternate;
}
@keyframes sod-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sod-safe { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes sod-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-15deg); } 100% { transform: rotateY(0deg); } }
@keyframes sod-docs { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sod-figure { 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 sod-light { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.98); } }

.scn-fearing-cipher-theft {
  background:
    linear-gradient(180deg, #e0d4c0 0%, #d0c0a8 50%, #c0b098 100%),
    radial-gradient(ellipse at 70% 30%, #f5e8d0 0%, transparent 60%);
}
.scn-fearing-cipher-theft .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4c4a8 0%, #c0b098 100%);
  animation: fct-wall 15s ease-in-out infinite alternate;
}
.scn-fearing-cipher-theft .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
}
.scn-fearing-cipher-theft .papers {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 110px;
  background: linear-gradient(135deg, #f5e8d0 0%, #e0d0b8 100%);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: fct-papers 4s ease-in-out infinite alternate;
}
.scn-fearing-cipher-theft .cipher {
  position: absolute; bottom: 25%; left: 35%; width: 60px; height: 80px;
  background: repeating-linear-gradient(0deg, #1a1a2a 0px, #1a1a2a 2px, #f5e8d0 2px, #f5e8d0 4px);
  border-radius: 2px;
  animation: fct-cipher 3s ease-in-out infinite;
}
.scn-fearing-cipher-theft .hand {
  position: absolute; bottom: 22%; right: 40%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 70%, #d4a888 0%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fct-hand 5s ease-in-out infinite;
}
.scn-fearing-cipher-theft .lamp {
  position: absolute; top: 18%; left: 48%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #b09878 0%, #8a7a5a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-fearing-cipher-theft .shadow {
  position: absolute; top: 10%; right: 20%; width: 100px; height: 200px;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: fct-shadow 8s ease-in-out infinite alternate;
}
@keyframes fct-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fct-papers { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(3deg); } 100% { transform: translateY(2px) rotate(-2deg); } }
@keyframes fct-cipher { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(0.98) rotate(-3deg); } }
@keyframes fct-hand { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-8px) translateY(-2px) rotate(10deg); } 50% { transform: translateX(-16px) translateY(0) rotate(0deg); } 75% { transform: translateX(-8px) translateY(-1px) rotate(-10deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes fct-shadow { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.4; transform: scaleX(1.1); } 100% { opacity: 0.15; transform: scaleX(0.9); } }

.scn-keys-stolen-suspicion {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #c8b898 100%),
    radial-gradient(ellipse at 20% 80%, #f5e8d0 0%, transparent 70%);
}
.scn-keys-stolen-suspicion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
}
.scn-keys-stolen-suspicion .coat {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: translateX(-50%);
  animation: kss-coat 6s ease-in-out infinite alternate;
}
.scn-keys-stolen-suspicion .pocket {
  position: absolute; bottom: 40%; left: 52%; width: 30px; height: 20px;
  background: #1a2a3a;
  border-radius: 2px;
}
.scn-keys-stolen-suspicion .hand {
  position: absolute; bottom: 33%; left: 44%; width: 25px; height: 35px;
  background: radial-gradient(ellipse at 50% 70%, #d4a888 0%, #a07050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: top left;
  animation: kss-hand 3s ease-in-out infinite;
}
.scn-keys-stolen-suspicion .keys {
  position: absolute; bottom: 15%; left: 60%; width: 30px; height: 15px;
  background: linear-gradient(90deg, #c0a050 0%, #a08030 100%);
  border-radius: 3px;
  animation: kss-keys 4s ease-in-out infinite alternate;
}
.scn-keys-stolen-suspicion .figure-legs {
  position: absolute; bottom: 0; left: 45%; width: 30px; height: 30%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-keys-stolen-suspicion .light {
  position: absolute; top: 10%; left: 60%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8e0 0%, #f0e0c0 40%, transparent 70%);
  border-radius: 50%;
  animation: kss-light 5s ease-in-out infinite alternate;
}
@keyframes kss-coat { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes kss-hand { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(10px) translateY(-2px) rotate(15deg); } 50% { transform: translateX(20px) translateY(0) rotate(0deg); } 75% { transform: translateX(10px) translateY(-1px) rotate(-15deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes kss-keys { 0% { transform: translateX(0) rotate(0deg); opacity: 0.7; } 50% { transform: translateX(5px) rotate(10deg); opacity: 1; } 100% { transform: translateX(-3px) rotate(-5deg); opacity: 0.8; } }
@keyframes kss-light { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.08); } 100% { opacity: 0.7; transform: scale(0.98); } }

.scn-yacht-vanished {
  background:
    linear-gradient(180deg, #b8c8d8 0%, #98a8b8 50%, #788898 100%),
    radial-gradient(ellipse at 30% 60%, #c0d0e0 0%, transparent 70%);
}
.scn-yacht-vanished .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #c0d0e0 0%, #a0b0c0 100%);
  animation: yv-sky 20s ease-in-out infinite alternate;
}
.scn-yacht-vanished .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #788898 0%, #586878 100%);
  animation: yv-water 8s linear infinite;
}
.scn-yacht-vanished .pier {
  position: absolute; bottom: 35%; left: 10%; width: 80%; height: 10px;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: yv-pier 6s ease-in-out infinite alternate;
}
.scn-yacht-vanished .yacht-stern {
  position: absolute; bottom: 38%; left: 20%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 80%);
  animation: yv-yacht 12s ease-in-out infinite;
}
.scn-yacht-vanished .fog {
  position: absolute; top: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0) 100%);
  filter: blur(10px);
  animation: yv-fog 30s linear infinite alternate;
}
.scn-yacht-vanished .lantern {
  position: absolute; bottom: 30%; left: 15%; width: 8px; height: 20px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #ffd680;
  animation: yv-lantern 3s ease-in-out infinite alternate;
}
.scn-yacht-vanished .ripple {
  position: absolute; bottom: 30%; left: 25%; width: 50px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,220,240,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: yv-ripple 5s ease-in-out infinite;
}
@keyframes yv-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes yv-water { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes yv-pier { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-2px); } 100% { transform: scaleX(0.98) translateY(1px); } }
@keyframes yv-yacht { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-8px) translateY(-3px) rotate(-2deg); } 50% { transform: translateX(-16px) translateY(0) rotate(0deg); } 75% { transform: translateX(-24px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-32px) translateY(0) rotate(0deg); } }
@keyframes yv-fog { 0% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.6; transform: translateX(20px); } 100% { opacity: 0.2; transform: translateX(-20px); } }
@keyframes yv-lantern { 0% { box-shadow: 0 0 15px 4px #ffd680; opacity: 0.8; } 50% { box-shadow: 0 0 30px 10px #ffd680; opacity: 1; } 100% { box-shadow: 0 0 20px 6px #ffd680; opacity: 0.9; } }
@keyframes yv-ripple { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.3); opacity: 0.2; } 100% { transform: scale(0.8); opacity: 0.6; } }

/* forest-flight-desperate - tense dark forest flight */
.scn-forest-flight-desperate {
  background: linear-gradient(180deg, #0a0a12 0%, #12141e 30%, #1a1f2a 60%, #0d0f18 100%),
              radial-gradient(ellipse at 50% 0%, #1a2030 0%, transparent 70%);
}
.scn-forest-flight-desperate .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(10,12,18,0.8) 100%); animation: ffd-fade 10s ease-in-out infinite alternate; }
.scn-forest-flight-desperate .trees { position:absolute; bottom:0; width:100%; background: linear-gradient(180deg, transparent 0%, #0e1214 100%); border-radius: 0; }
.scn-forest-flight-desperate .trees-far { height:80%; opacity:0.3; animation: ffd-sway 18s ease-in-out infinite alternate; }
.scn-forest-flight-desperate .trees-mid { height:60%; top:20%; opacity:0.5; animation: ffd-sway 12s ease-in-out infinite alternate; }
.scn-forest-flight-desperate .trees-near { height:40%; top:40%; opacity:0.7; animation: ffd-sway 8s ease-in-out infinite alternate; }
.scn-forest-flight-desperate .trees:before {
  content:''; display:block; width:100%; height:100%;
  background: repeating-linear-gradient(90deg, #1a2020 0px, #1a2020 8px, transparent 8px, transparent 40px);
  mask: linear-gradient(180deg, transparent 0%, #000 30%, #000 100%);
}
.scn-forest-flight-desperate .guide { position:absolute; bottom:25%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #1f262e 0%, #0c1014 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ffd-run 0.8s steps(2) infinite; }
.scn-forest-flight-desperate .girl { position:absolute; bottom:25%; left:50%; width:18px; height:36px; background: linear-gradient(180deg, #2a3340 0%, #14181c 100%); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ffd-run 0.9s steps(2) infinite; animation-delay: -0.4s; }
.scn-forest-flight-desperate .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1e24 0%, #0c0e12 100%); border-radius: 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-forest-flight-desperate .leaves { position:absolute; top:10%; left:0; width:100%; height:30%; background: radial-gradient(ellipse at 20% 30%, rgba(30,50,30,0.2) 0%, transparent 50%), radial-gradient(ellipse at 80% 20%, rgba(40,60,40,0.15) 0%, transparent 40%); animation: ffd-fall 4s ease-in-out infinite; }

@keyframes ffd-fade { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ffd-sway { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ffd-run { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ffd-fall { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(10px) translateX(-5px); } 100% { transform: translateY(0) translateX(0); } }

/* forest-signals-trapped - dark forest with signal gun flash */
.scn-forest-signals-trapped {
  background: linear-gradient(180deg, #020408 0%, #0a0e16 40%, #101820 70%, #080c12 100%),
              radial-gradient(ellipse at 50% 80%, #141c24 0%, transparent 70%);
}
.scn-forest-signals-trapped .bg-dark-forest { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, rgba(8,12,18,0.6) 100%); }
.scn-forest-signals-trapped .trees-dense { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #0a0e12 0px, #0a0e12 12px, transparent 12px, transparent 60px), repeating-linear-gradient(90deg, #0a0f14 0px, #0a0f14 10px, transparent 10px, transparent 80px); mix-blend-mode: multiply; opacity:0.5; }
.scn-forest-signals-trapped .gun-flash { position:absolute; top:30%; left:60%; width:20px; height:20px; background: radial-gradient(circle, #fffa80 0%, #ffaa40 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,200,80,0.6); animation: fst-flash 0.3s steps(2) infinite alternate; }
.scn-forest-signals-trapped .echo-ring { position:absolute; top:30%; left:60%; width:0; height:0; border: 2px solid rgba(150,180,200,0.5); border-radius: 50%; animation: fst-echo 6s ease-out infinite; }
.scn-forest-signals-trapped .echo-delay { animation-delay: 1.5s; }
.scn-forest-signals-trapped .ground-shadow { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, rgba(8,12,16,0) 0%, #040608 100%); }

@keyframes fst-flash { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0; transform: scale(0.8); } }
@keyframes fst-echo { 0% { width:0; height:0; opacity:0.8; } 50% { width:150px; height:150px; opacity:0.3; } 100% { width:250px; height:250px; opacity:0; } }

/* forest-turn-back - edge of bog, turn back */
.scn-forest-turn-back {
  background: linear-gradient(180deg, #0a0e14 0%, #121a24 40%, #1a2630 70%, #0c1018 100%),
              radial-gradient(ellipse at 50% 100%, #2a3a40 0%, transparent 80%);
}
.scn-forest-turn-back .sky-bog { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1c2838 0%, transparent 100%); animation: ftb-sky 12s ease-in-out infinite alternate; }
.scn-forest-turn-back .mist { position:absolute; top:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(180,200,210,0.1) 0%, rgba(160,180,190,0.2) 50%, transparent 100%); filter: blur(8px); animation: ftb-mist 15s ease-in-out infinite alternate; }
.scn-forest-turn-back .bog-surface { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a40 0%, #1c2828 100%); border-radius: 40% 60% 0 0 / 60% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); animation: ftb-bog 20s ease-in-out infinite alternate; }
.scn-forest-turn-back .figure-left { position:absolute; bottom:25%; left:30%; width:18px; height:38px; background: linear-gradient(180deg, #1e2630 0%, #0e121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ftb-turn 4s ease-in-out infinite; }
.scn-forest-turn-back .figure-right { position:absolute; bottom:25%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #222c38 0%, #10161e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ftb-turn 4s ease-in-out infinite; animation-delay: 0.5s; transform: scaleX(-1); }
.scn-forest-turn-back .path-edge { position:absolute; bottom:18%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 10%, #3a4a50 20%, #4a5a60 50%, #3a4a50 80%, transparent 90%); animation: ftb-path 5s ease-in-out infinite; }
.scn-forest-turn-back .reeds { position:absolute; bottom:40%; left:20%; width:4px; height:30px; background: linear-gradient(180deg, #4a5a40 0%, #2a3a20 100%); border-radius: 50%; transform-origin: bottom; animation: ftb-reeds 6s ease-in-out infinite alternate; }
.scn-forest-turn-back .reeds:before { content:''; position:absolute; top:0; left:0; width:100%; height:100%; background: inherit; transform: rotate(15deg); animation: ftb-reeds 6s ease-in-out infinite alternate-reverse; }

@keyframes ftb-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ftb-mist { 0% { transform: translateX(-10px) scaleY(1); } 100% { transform: translateX(10px) scaleY(1.1); } }
@keyframes ftb-bog { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.98) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ftb-turn { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(10deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ftb-path { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes ftb-reeds { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }

/* forest-chase-night - exciting chase in darkness with lantern */
.scn-forest-chase-night {
  background: linear-gradient(180deg, #020406 0%, #0a0e16 30%, #121a26 60%, #080c12 100%),
              radial-gradient(ellipse at 70% 50%, #1a2430 0%, transparent 70%);
}
.scn-forest-chase-night .bg-chase { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, rgba(10,12,16,0.5) 100%); }
.scn-forest-chase-night .trees-chase { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #0e1420 0px, #0e1420 8px, transparent 8px, transparent 50px); opacity:0.4; animation: fcn-trees 6s linear infinite; }
.scn-forest-chase-night .runner { position:absolute; bottom:25%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #1c222e 0%, #0a0e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fcn-run 0.6s steps(2) infinite; }
.scn-forest-chase-night .girl-chased { position:absolute; bottom:25%; left:40%; width:18px; height:36px; background: linear-gradient(180deg, #2a3340 0%, #14181c 100%); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fcn-run 0.7s steps(2) infinite; animation-delay: -0.3s; }
.scn-forest-chase-night .lantern-behind { position:absolute; bottom:30%; left:70%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #b07030 100%); border-radius: 30%; box-shadow: 0 0 40px 20px rgba(255,200,100,0.5); animation: fcn-lantern 2s ease-in-out infinite alternate; }
.scn-forest-chase-night .ground-chase { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1e28 0%, #0c0e14 100%); }
.scn-forest-chase-night .pitfall { position:absolute; bottom:22%; left:55%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 0%, #0a0c10 0%, #040608 100%); border-radius: 50%; transform: rotate(10deg); animation: fcn-pit 3s ease-in-out infinite alternate; }

@keyframes fcn-trees { 0% { background-position: 0 0; } 100% { background-position: -60px 0; } }
@keyframes fcn-run { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes fcn-lantern { 0% { opacity:0.7; box-shadow: 0 0 30px 15px rgba(255,200,100,0.4); } 50% { opacity:1; box-shadow: 0 0 60px 30px rgba(255,200,100,0.7); } 100% { opacity:0.8; box-shadow: 0 0 40px 20px rgba(255,200,100,0.5); } }
@keyframes fcn-pit { 0% { transform: translateX(0) rotate(5deg) scaleY(1); } 50% { transform: translateX(2px) rotate(0deg) scaleY(1.1); } 100% { transform: translateX(-2px) rotate(-5deg) scaleY(1); } }

/* forest-hungry-march: tense, dawn */
.scn-forest-hungry-march {
  background: linear-gradient(180deg, #3b4a5e 0%, #6f7a5c 40%, #9a8e6a 70%, #c4b18b 100%),
              radial-gradient(ellipse at 30% 40%, rgba(255, 220, 120, .15) 0%, transparent 70%);
}
.scn-forest-hungry-march .sky-dawn { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4e5b6b 0%, #9a8e6a 100%); animation: fhm-sky 15s ease-in-out infinite alternate; }
.scn-forest-hungry-march .mist-1  { position:absolute; inset:30% 0 20% 0; background: linear-gradient(90deg, transparent 0%, rgba(200,180,140,.4) 30%, rgba(200,180,140,.2) 70%, transparent 100%); filter: blur(12px); animation: fhm-drift 25s linear infinite; }
.scn-forest-hungry-march .mist-2  { position:absolute; inset:40% 0 15% 0; background: linear-gradient(90deg, transparent 10%, rgba(180,160,120,.3) 40%, transparent 80%); filter: blur(16px); animation: fhm-drift 30s linear infinite reverse; }
.scn-forest-hungry-march .trees-back { position:absolute; bottom:30%; left:0; right:0; height:40%; background: repeating-linear-gradient(90deg, #4b5a3a 0px, #4b5a3a 12px, transparent 12px, transparent 30px); mask-image: linear-gradient(180deg, transparent 20%, #000 80%); -webkit-mask-image: linear-gradient(180deg, transparent 20%, #000 80%); animation: fhm-trees 8s ease-in-out infinite alternate; }
.scn-forest-hungry-march .trees-fore { position:absolute; bottom:10%; left:0; right:0; height:40%; background: repeating-linear-gradient(90deg, #3a4a2a 0px, #3a4a2a 16px, transparent 16px, transparent 40px); mask-image: linear-gradient(180deg, transparent 10%, #000 90%); -webkit-mask-image: linear-gradient(180deg, transparent 10%, #000 90%); animation: fhm-trees 10s ease-in-out infinite alternate-reverse; }
.scn-forest-hungry-march .figures { position:absolute; bottom:28%; left:20%; right:20%; height:8%; background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 6px, transparent 6px, transparent 18px); mask-image: linear-gradient(180deg, #000 0%, transparent 100%); -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); animation: fhm-march 4s ease-in-out infinite; }
.scn-forest-hungry-march .spring   { position:absolute; bottom:25%; left:45%; width:20px; height:12px; background: radial-gradient(circle at 50% 100%, #a0b8c8 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: fhm-glimmer 6s ease-in-out infinite alternate; }

@keyframes fhm-sky     { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes fhm-drift   { 0% { transform: translateX(-20%); } 50% { transform: translateX(10%); } 100% { transform: translateX(20%); } }
@keyframes fhm-trees   { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes fhm-march   { 0% { transform: translateX(0) skewX(0deg); } 25% { transform: translateX(8px) skewX(-2deg); } 50% { transform: translateX(16px) skewX(0deg); } 75% { transform: translateX(24px) skewX(2deg); } 100% { transform: translateX(32px) skewX(0deg); } }
@keyframes fhm-glimmer { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.7; transform: scale(1.3); } 100% { opacity:.4; transform: scale(1); } }

/* item-elmashoe: warm, dawn */
.scn-item-elmashoe {
  background: linear-gradient(180deg, #6f6040 0%, #a08858 30%, #c4a86a 60%, #e8c888 100%),
              radial-gradient(ellipse at 70% 30%, rgba(255, 200, 100, .3) 0%, transparent 60%);
}
.scn-item-elmashoe .ground-warm      { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a50 0%, #6a5a3a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
.scn-item-elmashoe .figure-kneeling  { position:absolute; bottom:25%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ie-kneel 6s ease-in-out infinite; }
.scn-item-elmashoe .figure-standing  { position:absolute; bottom:25%; left:45%; width:22px; height:58px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ie-stand 6s ease-in-out infinite; }
.scn-item-elmashoe .shoe             { position:absolute; bottom:28%; left:34%; width:18px; height:10px; background: linear-gradient(180deg, #5a3a20 0%, #3a2a10 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(-15deg); animation: ie-shoe 4s ease-in-out infinite alternate; }
.scn-item-elmashoe .sunbeams         { position:absolute; top:10%; left:10%; right:10%; bottom:20%; background: linear-gradient(135deg, transparent 0%, rgba(255, 220, 120, .15) 30%, transparent 70%); filter: blur(8px); animation: ie-beams 12s ease-in-out infinite alternate; }
.scn-item-elmashoe .foliage-bg       { position:absolute; top:0; left:0; right:0; height:50%; background: radial-gradient(ellipse at 50% 100%, #8a8a4a 0%, transparent 70%); clip-path: ellipse(60% 70% at 50% 30%); animation: ie-foliage 10s ease-in-out infinite alternate; }

@keyframes ie-kneel   { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ie-stand   { 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 ie-shoe    { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-20deg) translateX(-1px); } }
@keyframes ie-beams   { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.2); } 100% { opacity:.4; transform: scaleX(1); } }
@keyframes ie-foliage { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

/* forest-lightheadedness: tense, overcast */
.scn-forest-lightheadedness {
  background: linear-gradient(180deg, #4a5560 0%, #6a7580 40%, #808a8a 70%, #a0a0a0 100%),
              radial-gradient(ellipse at 50% 100%, rgba(160, 160, 160, .2) 0%, transparent 70%);
}
.scn-forest-lightheadedness .overcast-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a6570 0%, #808a8a 100%); animation: flh-sky 20s ease-in-out infinite alternate; }
.scn-forest-lightheadedness .trees-barren { position:absolute; bottom:25%; left:0; right:0; height:45%; background: repeating-linear-gradient(90deg, #3a4a4a 0px, #3a4a4a 10px, transparent 10px, transparent 35px); mask-image: linear-gradient(180deg, transparent 10%, #000 80%); -webkit-mask-image: linear-gradient(180deg, transparent 10%, #000 80%); animation: flh-trees 12s ease-in-out infinite alternate; }
.scn-forest-lightheadedness .march-line  { position:absolute; bottom:30%; left:0; right:0; height:4%; background: repeating-linear-gradient(90deg, #2a3a3a 0px, #2a3a3a 5px, transparent 5px, transparent 20px); clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); animation: flh-march 3s ease-in-out infinite; }
.scn-forest-lightheadedness .sway-blur   { position:absolute; inset:20% 10% 20% 10%; background: radial-gradient(ellipse at 50% 50%, rgba(200,200,200,.1) 0%, transparent 70%); filter: blur(15px); animation: flh-sway 8s ease-in-out infinite alternate; }
.scn-forest-lightheadedness .ground-muted{ position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a7560 0%, #4a5540 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }

@keyframes flh-sky    { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes flh-trees  { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes flh-march  { 0% { transform: translateX(0) skewX(0deg); } 25% { transform: translateX(10px) skewX(-3deg); } 50% { transform: translateX(20px) skewX(0deg); } 75% { transform: translateX(30px) skewX(3deg); } 100% { transform: translateX(40px) skewX(0deg); } }
@keyframes flh-sway   { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(2deg) scale(1.05); } 50% { transform: rotate(0deg) scale(1); } 75% { transform: rotate(-2deg) scale(0.95); } 100% { transform: rotate(0deg) scale(1); } }

/* forest-road-found: warm, dusk */
.scn-forest-road-found {
  background: linear-gradient(180deg, #6a4a30 0%, #a06840 30%, #c88850 60%, #e8a868 100%),
              radial-gradient(ellipse at 70% 20%, rgba(255, 200, 100, .4) 0%, transparent 60%);
}
.scn-forest-road-found .dusk-sky      { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #7a5a3a 0%, #c88850 100%); animation: frf-sky 18s ease-in-out infinite alternate; }
.scn-forest-road-found .sunset-glow   { position:absolute; top:10%; left:20%; right:20%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(255, 180, 80, .4) 0%, transparent 70%); filter: blur(12px); animation: frf-glow 10s ease-in-out infinite alternate; }
.scn-forest-road-found .trees-parting { position:absolute; bottom:25%; left:0; right:0; height:40%; background: repeating-linear-gradient(90deg, #5a4a30 0px, #5a4a30 14px, transparent 14px, transparent 36px); mask-image: linear-gradient(180deg, transparent 15%, #000 85%); -webkit-mask-image: linear-gradient(180deg, transparent 15%, #000 85%); clip-path: polygon(0% 0%, 40% 0%, 45% 100%, 0% 100%); animation: frf-trees 8s ease-in-out infinite alternate; }
.scn-forest-road-found .road-path     { position:absolute; bottom:20%; left:30%; right:30%; height:15%; background: linear-gradient(180deg, #8a6a40 0%, #6a4a20 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.3); transform: perspective(200px) rotateX(10deg); animation: frf-road 6s ease-in-out infinite; }
.scn-forest-road-found .figures-point { position:absolute; bottom:30%; left:20%; right:20%; height:6%; background: repeating-linear-gradient(90deg, #3a3a4a 0px, #3a3a4a 6px, transparent 6px, transparent 18px); clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); animation: frf-point 2s ease-in-out infinite; }
.scn-forest-road-found .joy-sparkles  { position:absolute; top:15%; left:40%; right:40%; height:10%; background: radial-gradient(circle at 30% 50%, rgba(255, 220, 100, .6) 0%, transparent 50%), radial-gradient(circle at 70% 30%, rgba(255, 220, 100, .4) 0%, transparent 50%); filter: blur(3px); animation: frf-sparkle 5s ease-in-out infinite alternate; }

@keyframes frf-sky     { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes frf-glow    { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.4; transform: scale(1); } }
@keyframes frf-trees   { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes frf-road    { 0% { transform: perspective(200px) rotateX(10deg) translateY(0); } 50% { transform: perspective(200px) rotateX(8deg) translateY(-1px); } 100% { transform: perspective(200px) rotateX(10deg) translateY(0); } }
@keyframes frf-point   { 0% { transform: translateX(0) skewX(0deg); } 25% { transform: translateX(5px) skewX(-2deg); } 50% { transform: translateX(10px) skewX(0deg); } 75% { transform: translateX(5px) skewX(2deg); } 100% { transform: translateX(0) skewX(0deg); } }
@keyframes frf-sparkle { 0% { opacity:.2; transform: scale(1); } 50% { opacity:.7; transform: scale(1.3); } 100% { opacity:.3; transform: scale(1); } }

.scn-pressing-for-truth {
  background: linear-gradient(180deg, #e8dcc8 0%, #b8a88a 40%, #8a7a5a 100%), radial-gradient(ellipse at 30% 20%, #fff7e0 0%, transparent 60%);
}
.scn-pressing-for-truth .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c8b898 0%, #9a8a6a 100%);
}
.scn-pressing-for-truth .window {
  position: absolute; top: 10%; left: 70%; width: 30%; height: 50%; background: linear-gradient(180deg, #d4e8f0 0%, #a0c0d0 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); animation: ptr-window 6s ease-in-out infinite alternate;
}
.scn-pressing-for-truth .desk {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 12%; background: linear-gradient(180deg, #6a5230 0%, #4a3a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-pressing-for-truth .figure-a {
  position: absolute; bottom: 30%; left: 60%; width: 14%; height: 40%; background: radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ptr-figure-a 5s ease-in-out infinite;
}
.scn-pressing-for-truth .figure-b {
  position: absolute; bottom: 30%; left: 25%; width: 12%; height: 35%; background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ptr-figure-b 4.5s ease-in-out infinite;
}
.scn-pressing-for-truth .shadow {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(8px); animation: ptr-shadow 6s ease-in-out infinite alternate;
}
.scn-pressing-for-truth .sunbeam {
  position: absolute; top: 0; left: 60%; width: 20%; height: 100%; background: linear-gradient(180deg, rgba(255,240,200,0.5) 0%, transparent 80%); transform: skewX(-10deg); animation: ptr-sunbeam 8s ease-in-out infinite alternate;
}
@keyframes ptr-window {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.85; transform: scaleX(0.98); }
}
@keyframes ptr-figure-a {
  0% { transform: translate(0, 0) rotate(0deg); }
  30% { transform: translate(2px, -1px) rotate(0.5deg); }
  60% { transform: translate(-1px, 0) rotate(-0.5deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes ptr-figure-b {
  0% { transform: translate(0, 0) scaleY(1); }
  25% { transform: translate(1px, -2px) scaleY(0.98); }
  75% { transform: translate(-1px, 1px) scaleY(1.02); }
  100% { transform: translate(0, 0) scaleY(1); }
}
@keyframes ptr-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.3; }
  50% { transform: scaleX(1.2) translateX(5px); opacity: 0.5; }
  100% { transform: scaleX(0.9) translateX(-3px); opacity: 0.2; }
}
@keyframes ptr-sunbeam {
  0% { transform: skewX(-10deg) translateX(0); opacity: 0.6; }
  50% { transform: skewX(-5deg) translateX(8px); opacity: 0.9; }
  100% { transform: skewX(-15deg) translateX(-5px); opacity: 0.5; }
}

.scn-correcting-description {
  background: linear-gradient(180deg, #c8b898 0%, #8a7a5a 60%, #4a3a1a 100%), radial-gradient(ellipse at 50% 30%, #fff0c0 0%, transparent 70%);
}
.scn-correcting-description .saloon-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #b8a080 0%, #6a5230 100%);
}
.scn-correcting-description .buffet {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 30%; background: linear-gradient(180deg, #5a4220 0%, #3a2a0a 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: crd-buffet 12s ease-in-out infinite alternate;
}
.scn-correcting-description .dolphin-1 {
  position: absolute; bottom: 32%; left: 35%; width: 8%; height: 10%; background: radial-gradient(ellipse at 50% 30%, #e8c040 0%, #a08020 100%); border-radius: 50%; box-shadow: 0 0 10px #c8a030; animation: crd-dolphin 4s ease-in-out infinite alternate;
}
.scn-correcting-description .dolphin-2 {
  position: absolute; bottom: 32%; left: 48%; width: 8%; height: 10%; background: radial-gradient(ellipse at 50% 30%, #e8c040 0%, #a08020 100%); border-radius: 50%; box-shadow: 0 0 10px #c8a030; animation: crd-dolphin 4s ease-in-out infinite alternate 1s;
}
.scn-correcting-description .dolphin-3 {
  position: absolute; bottom: 32%; left: 61%; width: 8%; height: 10%; background: radial-gradient(ellipse at 50% 30%, #e8c040 0%, #a08020 100%); border-radius: 50%; box-shadow: 0 0 10px #c8a030; animation: crd-dolphin 4s ease-in-out infinite alternate 2s;
}
.scn-correcting-description .window {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 40%; background: linear-gradient(180deg, #a0c8d8 0%, #7090a8 100%); border-radius: 6px; box-shadow: inset 0 0 15px rgba(0,0,0,0.3); animation: crd-window 8s ease-in-out infinite alternate;
}
.scn-correcting-description .funnel {
  position: absolute; top: 5%; right: 15%; width: 8%; height: 20%; background: linear-gradient(180deg, #b0a030 0%, #807020 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: crd-funnel 6s ease-in-out infinite alternate;
}
@keyframes crd-buffet {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(1px) rotate(-0.3deg); }
}
@keyframes crd-dolphin {
  0% { transform: scale(1); box-shadow: 0 0 10px #c8a030; }
  50% { transform: scale(1.2); box-shadow: 0 0 20px #f0d060; }
  100% { transform: scale(1); box-shadow: 0 0 10px #c8a030; }
}
@keyframes crd-window {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.01); }
  100% { opacity: 0.8; transform: scaleX(0.99); }
}
@keyframes crd-funnel {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(-3px); opacity: 1; }
  100% { transform: translateY(1px); opacity: 0.9; }
}

.scn-identifying-captain {
  background: linear-gradient(180deg, #c0a888 0%, #806850 60%, #403020 100%), radial-gradient(ellipse at 40% 50%, #f0d8b0 0%, transparent 70%);
}
.scn-identifying-captain .cabin-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #a08060 0%, #604828 100%);
}
.scn-identifying-captain .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%; background: linear-gradient(180deg, #4a3018 0%, #2a1a08 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: icp-table 8s ease-in-out infinite alternate;
}
.scn-identifying-captain .captain {
  position: absolute; bottom: 25%; left: 50%; width: 12%; height: 30%; background: radial-gradient(ellipse at 50% 20%, #2a1a0a 0%, #100800 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: icp-captain 6s ease-in-out infinite;
}
.scn-identifying-captain .shadow {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 8%; background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(6px); animation: icp-shadow 6s ease-in-out infinite alternate;
}
.scn-identifying-captain .map {
  position: absolute; bottom: 28%; left: 20%; width: 20%; height: 15%; background: linear-gradient(180deg, #d0c090 0%, #a09070 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: icp-map 10s ease-in-out infinite alternate;
}
.scn-identifying-captain .globe {
  position: absolute; bottom: 30%; right: 15%; width: 10%; height: 15%; background: radial-gradient(circle at 40% 30%, #6080b0 0%, #204060 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: icp-globe 8s linear infinite;
}
@keyframes icp-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes icp-captain {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(1px,-2px) rotate(0.5deg); }
  75% { transform: translate(-1px,0) rotate(-0.5deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes icp-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.6; }
  100% { transform: scaleX(0.9); opacity: 0.3; }
}
@keyframes icp-map {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(2px,-1px) rotate(1deg); }
  100% { transform: translate(-1px,1px) rotate(-1deg); }
}
@keyframes icp-globe {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-refusing-to-reveal {
  background: linear-gradient(180deg, #d0c0b0 0%, #a09070 50%, #706050 100%), radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 60%);
}
.scn-refusing-to-reveal .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #b8a080 0%, #807050 100%);
}
.scn-refusing-to-reveal .safe {
  position: absolute; bottom: 20%; right: 15%; width: 20%; height: 30%; background: linear-gradient(180deg, #504030 0%, #302018 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: rtr-safe 12s ease-in-out infinite alternate;
}
.scn-refusing-to-reveal .figure-a {
  position: absolute; bottom: 30%; left: 60%; width: 14%; height: 40%; background: radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rtr-fig-a 5s ease-in-out infinite;
}
.scn-refusing-to-reveal .figure-b {
  position: absolute; bottom: 30%; left: 25%; width: 12%; height: 35%; background: radial-gradient(ellipse at 50% 20%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rtr-fig-b 4.5s ease-in-out infinite;
}
.scn-refusing-to-reveal .window-blinds {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 50%; background: repeating-linear-gradient(0deg, #d0c0b0 0px, #d0c0b0 4px, #a09070 4px, #a09070 8px); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); animation: rtr-blinds 8s ease-in-out infinite alternate;
}
.scn-refusing-to-reveal .shadow {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(8px); animation: rtr-shadow 6s ease-in-out infinite alternate;
}
@keyframes rtr-safe {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(1px) rotate(-0.3deg); }
}
@keyframes rtr-fig-a {
  0% { transform: translate(0,0) rotate(0deg); }
  30% { transform: translate(2px,-2px) rotate(0.5deg); }
  70% { transform: translate(-1px,1px) rotate(-0.5deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes rtr-fig-b {
  0% { transform: translate(0,0) scaleY(1); }
  25% { transform: translate(1px,-1px) scaleY(0.97); }
  75% { transform: translate(-1px,2px) scaleY(1.03); }
  100% { transform: translate(0,0) scaleY(1); }
}
@keyframes rtr-blinds {
  0% { opacity: 0.8; transform: skewX(0deg); }
  50% { opacity: 1; transform: skewX(-2deg); }
  100% { opacity: 0.9; transform: skewX(2deg); }
}
@keyframes rtr-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.3; }
  50% { transform: scaleX(1.2) translateX(8px); opacity: 0.5; }
  100% { transform: scaleX(0.9) translateX(-4px); opacity: 0.2; }
}

/* body-found */
.scn-body-found {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2a2a3e 100%), radial-gradient(ellipse at 50% 20%, #3a3a4e 0%, transparent 70%);
}
.scn-body-found .bg-deep {
  position: absolute; inset:0; background: linear-gradient(180deg, #05050a 0%, #101020 100%); animation: bf-pulse 6s ease-in-out infinite alternate;
}
.scn-body-found .trees {
  position: absolute; top:0; left:10%; width:30%; height:70%; background: linear-gradient(180deg, #0a0a15 0%, #151525 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); animation: bf-sway 12s ease-in-out infinite;
}
.scn-body-found .ground {
  position: absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a10 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
}
.scn-body-found .figure-prone {
  position: absolute; bottom:12%; left:30%; width:22%; height:30%; background: linear-gradient(135deg, #2a2a3e 0%, #151520 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: bf-breathe 4s ease-in-out infinite alternate;
}
.scn-body-found .hat {
  position: absolute; bottom:32%; left:26%; width:12%; height:6%; background: linear-gradient(135deg, #252530 0%, #101018 100%); border-radius: 50% 50% 30% 30%; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: bf-shift 3s ease-in-out infinite;
}
.scn-body-found .leaf-drifting {
  position: absolute; top:20%; left:60%; width:3%; height:2%; background: #2a2a3e; border-radius: 50% 0 50% 0; filter: blur(2px); opacity:.6; animation: bf-leaf-fall 15s linear infinite;
}
.scn-body-found .shadow-patch {
  position: absolute; bottom:0; left:25%; width:50%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 80%); animation: bf-patch 8s ease-in-out infinite alternate;
}
@keyframes bf-pulse { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bf-sway { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bf-breathe { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(1.02) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes bf-shift { 0% { transform: translateX(0) rotate(-15deg) } 50% { transform: translateX(4px) rotate(-12deg) } 100% { transform: translateX(0) rotate(-15deg) } }
@keyframes bf-leaf-fall { 0% { transform: translateY(-10vh) rotate(0) } 100% { transform: translateY(70vh) rotate(360deg) } }
@keyframes bf-patch { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.2 } }

/* fugitive-escape */
.scn-fugitive-escape {
  background: linear-gradient(180deg, #0a0a14 0%, #101020 40%, #1a1a2e 100%), radial-gradient(ellipse at 30% 70%, #1a1a30 0%, transparent 80%);
}
.scn-fugitive-escape .bg-wood {
  position: absolute; inset:0; background: repeating-linear-gradient(90deg, #0c0c18 0%, #0c0c18 10%, #101020 10%, #101020 20%); animation: fe-flicker 8s ease-in-out infinite;
}
.scn-fugitive-escape .thicket {
  position: absolute; top:30%; left:40%; width:35%; height:50%; background: radial-gradient(ellipse at 50% 50%, #1a1a30 0%, #0a0a14 80%); border-radius: 60% 40% 50% 50%; filter: blur(3px); box-shadow: inset 0 0 30px #000; animation: fe-pulse 6s ease-in-out infinite alternate;
}
.scn-fugitive-escape .figure-hidden {
  position: absolute; bottom:20%; left:45%; width:18%; height:35%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fe-crouch 4s ease-in-out infinite;
}
.scn-fugitive-escape .gun-barrel {
  position: absolute; bottom:35%; left:40%; width:20%; height:3%; background: linear-gradient(90deg, #2a2a3e 0%, #3a3a4e 100%); border-radius: 0 50% 50% 0; transform: rotate(-20deg); box-shadow: 0 0 6px rgba(100,100,120,.3); animation: fe-tremble 0.5s linear infinite;
}
.scn-fugitive-escape .eye-gleam {
  position: absolute; bottom:40%; left:47%; width:2%; height:2%; background: radial-gradient(circle, #5a5a7a 0%, transparent 80%); border-radius:50%; box-shadow: 0 0 10px 4px #3a3a5a; animation: fe-blink 3s step-end infinite;
}
.scn-fugitive-escape .branch-shake {
  position: absolute; top:15%; left:25%; width:20%; height:5%; background: #0a0a14; border-radius: 0 50% 50% 0; transform-origin: left center; animation: fe-shake 2s ease-in-out infinite;
}
@keyframes fe-flicker { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fe-pulse { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }
@keyframes fe-crouch { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(3deg) } 75% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fe-tremble { 0% { transform: rotate(-20deg) } 25% { transform: rotate(-18deg) } 75% { transform: rotate(-22deg) } 100% { transform: rotate(-20deg) } }
@keyframes fe-blink { 0%,90%,100% { opacity:1 } 95% { opacity:0 } }
@keyframes fe-shake { 0% { transform: rotate(0) } 50% { transform: rotate(8deg) } 100% { transform: rotate(0) } }

/* pursuit */
.scn-pursuit {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 50%, #2a2a3e 100%), radial-gradient(ellipse at 70% 10%, #1a1a2e 0%, transparent 80%);
}
.scn-pursuit .night-sky {
  position: absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #030308 0%, #0a0a14 100%); animation: p-sky 10s ease-in-out infinite alternate;
}
.scn-pursuit .rough-ground {
  position: absolute; bottom:0; left:0; right:0; height:40%; background: repeating-linear-gradient(135deg, #0c0c18 0%, #0c0c18 2%, #141420 2%, #141420 4%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.9); animation: p-ground 8s ease-in-out infinite;
}
.scn-pursuit .stone-wall {
  position: absolute; bottom:25%; left:20%; width:40%; height:20%; background: linear-gradient(135deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 15px rgba(0,0,0,.8); transform: skewY(-5deg); animation: p-wall 12s ease-in-out infinite alternate;
}
.scn-pursuit .running-figure {
  position: absolute; bottom:15%; left:50%; width:15%; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: p-run 0.8s ease-in-out infinite;
}
.scn-pursuit .footstep {
  position: absolute; bottom:20%; left:30%; width:4%; height:2%; background: #0c0c18; border-radius: 50%; opacity:.5; animation: p-step 1.2s ease-in-out infinite;
}
.scn-pursuit .gap-slit {
  position: absolute; bottom:22%; left:45%; width:2%; height:15%; background: #1a1a2e; transform: rotate(10deg); animation: p-gap 5s ease-in-out infinite alternate;
}
.scn-pursuit .moon-crack {
  position: absolute; top:8%; right:15%; width:6%; height:6%; background: radial-gradient(circle, #2a2a4e 0%, transparent 80%); border-radius: 50%; filter: blur(2px); animation: p-moon 20s linear infinite;
}
@keyframes p-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes p-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes p-wall { 0% { transform: skewY(-5deg) translateX(0) } 50% { transform: skewY(-8deg) translateX(4px) } 100% { transform: skewY(-5deg) translateX(0) } }
@keyframes p-run { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(0) rotate(5deg) } 75% { transform: translateY(-4px) rotate(-2deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes p-step { 0% { transform: translateX(0) scale(1); opacity:.3 } 50% { transform: translateX(8px) scale(1.2); opacity:.7 } 100% { transform: translateX(16px) scale(1); opacity:.3 } }
@keyframes p-gap { 0% { transform: rotate(10deg) scaleY(1) } 50% { transform: rotate(15deg) scaleY(1.1) } 100% { transform: rotate(10deg) scaleY(1) } }
@keyframes p-moon { 0% { transform: translateX(0) } 100% { transform: translateX(-40vw) } }

/* lost-in-dark */
.scn-lost-in-dark {
  background: linear-gradient(180deg, #05050a 0%, #0f0f1a 50%, #1a1a2e 100%), radial-gradient(ellipse at 20% 80%, #1a1a2e 0%, transparent 70%);
}
.scn-lost-in-dark .glen-bg {
  position: absolute; inset:0; background: linear-gradient(180deg, #010104 0%, #080812 100%); animation: lid-deep 12s ease-in-out infinite alternate;
}
.scn-lost-in-dark .cliff-left {
  position: absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(180deg, #0a0a14 0%, #141420 100%); border-radius: 0 50% 0 0 / 0 30% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.9); animation: lid-sway 10s ease-in-out infinite alternate;
}
.scn-lost-in-dark .cliff-right {
  position: absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #0a0a14 0%, #141420 100%); border-radius: 50% 0 0 0 / 30% 0 0 0; box-shadow: inset 10px 0 20px rgba(0,0,0,.9); animation: lid-sway 12s ease-in-out infinite alternate-reverse;
}
.scn-lost-in-dark .river-dark {
  position: absolute; bottom:20%; left:20%; right:20%; height:8%; background: linear-gradient(90deg, transparent, #0a0a18 30%, #0a0a18 70%, transparent); border-radius: 50%; filter: blur(4px); animation: lid-flow 15s linear infinite;
}
.scn-lost-in-dark .bridge-arch {
  position: absolute; bottom:18%; left:35%; width:30%; height:20%; border: 4px solid #1a1a2e; border-radius: 50% 50% 0 0; border-bottom: none; box-shadow: 0 0 10px rgba(0,0,0,.8); animation: lid-bridge 8s ease-in-out infinite alternate;
}
.scn-lost-in-dark .fugitive-silhouette {
  position: absolute; bottom:24%; left:50%; width:12%; height:25%; background: linear-gradient(180deg, #0a0a14 0%, #010104 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lid-walk 4s ease-in-out infinite;
}
.scn-lost-in-dark .path-winding {
  position: absolute; bottom:0; left:30%; width:40%; height:25%; background: linear-gradient(135deg, #0c0c18 0%, #141420 100%); border-radius: 30% 70% 50% 50% / 60% 40% 60% 40%; transform: skewX(-10deg); box-shadow: inset 0 5px 15px rgba(0,0,0,.5); animation: lid-path 20s ease-in-out infinite;
}
@keyframes lid-deep { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lid-sway { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes lid-flow { 0% { transform: translateX(-10%) opacity:.5 } 50% { opacity:.8 } 100% { transform: translateX(10%) opacity:.5 } }
@keyframes lid-bridge { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes lid-walk { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-3px) rotate(-3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes lid-path { 0% { transform: skewX(-10deg) translateY(0) } 50% { transform: skewX(-15deg) translateY(-4px) } 100% { transform: skewX(-10deg) translateY(0) } }

.scn-london-muriel-visits {
  background: 
    linear-gradient(180deg, #fcf5e8 0%, #e8dcc8 30%, #d4c4a8 100%),
    radial-gradient(ellipse at 30% 40%, #f0e4d4, transparent 60%);
}
.scn-london-muriel-visits .ward-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #fcf5e8, #e8dcc8); }
.scn-london-muriel-visits .ward-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #c8b894, #b09c78); box-shadow: inset 0 8px 12px rgba(0,0,0,0.15); }
.scn-london-muriel-visits .ward-window { position:absolute; top:10%; left:15%; width:20%; height:45%; background: linear-gradient(180deg, #dce8f0 0%, #b8ccd8 100%); border:4px solid #a08a6a; border-radius:4px; }
.scn-london-muriel-visits .ward-curtain { position:absolute; top:10%; left:13%; width:24%; height:50%; background: linear-gradient(90deg, #f0e4d0 0%, #e0d0b0 50%, #f0e4d0 100%); opacity:0.6; filter: blur(2px); animation: lmv-curtain 12s ease-in-out infinite alternate; }
.scn-london-muriel-visits .ward-bed { position:absolute; bottom:20%; left:20%; width:30%; height:35%; background: linear-gradient(180deg, #f0ece4 0%, #d8d0c0 100%); border-radius: 8% 8% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-london-muriel-visits .ward-patient { position:absolute; bottom:25%; left:28%; width:12%; height:25%; background: linear-gradient(180deg, #d8c8b8, #c0a890); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lmv-breath 4s ease-in-out infinite; }
.scn-london-muriel-visits .ward-visitor { position:absolute; bottom:22%; right:25%; width:10%; height:30%; background: linear-gradient(180deg, #d8c0a0, #bca480); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lmv-visit 6s ease-in-out infinite; }
.scn-london-muriel-visits .ward-lamp { position:absolute; top:15%; right:10%; width:8%; height:20%; background: radial-gradient(circle at 50% 30%, #fce8c0, #d4b080); border-radius: 20% 20% 50% 50%; box-shadow: 0 0 30px 15px rgba(240,200,120,0.6), 0 0 60px 30px rgba(240,200,120,0.3); animation: lmv-glow 3s ease-in-out infinite alternate; }

@keyframes lmv-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes lmv-breath { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } }
@keyframes lmv-visit { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes lmv-glow { 0% { opacity:0.7; box-shadow: 0 0 20px 10px rgba(240,200,120,0.4); } 100% { opacity:1; box-shadow: 0 0 40px 25px rgba(255,220,150,0.7); } }

/* ---- scene 2 ---- */
.scn-london-jack-recovery {
  background: 
    linear-gradient(180deg, #fcf8f0 0%, #ebe0d0 40%, #d6c8b4 100%),
    radial-gradient(ellipse at 60% 50%, #f8f0e0, transparent 70%);
}
.scn-london-jack-recovery .hotel-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #fcf8f0, #ebe0d0); }
.scn-london-jack-recovery .hotel-floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #d4c4a8, #beae92); }
.scn-london-jack-recovery .hotel-window { position:absolute; top:8%; left:50%; width:25%; height:50%; background: linear-gradient(180deg, #d0e0ec 0%, #b0c8d8 100%); border:4px solid #af9a78; transform:translateX(-50%); }
.scn-london-jack-recovery .hotel-curtain { position:absolute; top:5%; left:46%; width:30%; height:55%; background: linear-gradient(90deg, #f8ecdc 0%, #ece0c8 50%, #f8ecdc 100%); opacity:0.5; filter: blur(3px); animation: ljr-curtain 15s ease-in-out infinite alternate; }
.scn-london-jack-recovery .hotel-table { position:absolute; bottom:12%; left:25%; width:20%; height:18%; background: linear-gradient(180deg, #d0bc9c, #b09a78); border-radius:4% 4% 2% 2%; box-shadow: 0 3px 6px rgba(0,0,0,0.15); }
.scn-london-jack-recovery .hotel-chair { position:absolute; bottom:13%; left:10%; width:10%; height:20%; background: linear-gradient(180deg, #b8a48c, #a08c74); border-radius: 20% 20% 10% 10%; }
.scn-london-jack-recovery .hotel-figure { position:absolute; bottom:12%; left:28%; width:8%; height:22%; background: linear-gradient(180deg, #d4c0ac, #c0a890); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ljr-seat 5s ease-in-out infinite; }
.scn-london-jack-recovery .hotel-visitor { position:absolute; bottom:12%; left:55%; width:8%; height:22%; background: linear-gradient(180deg, #c8b8a4, #b4a490); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ljr-visit 7s ease-in-out infinite; }
.scn-london-jack-recovery .hotel-vase { position:absolute; bottom:20%; left:40%; width:5%; height:12%; background: linear-gradient(180deg, #d4c4a0, #bca878); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }

@keyframes ljr-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }
@keyframes ljr-seat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ljr-visit { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }

/* ---- scene 3 ---- */
.scn-london-patience {
  background: 
    linear-gradient(180deg, #fcf6ec 0%, #e8dcc8 35%, #d0c0a8 100%),
    radial-gradient(ellipse at 40% 30%, #f4ecdc, transparent 60%);
}
.scn-london-patience .wait-wall { position:absolute; inset:0 0 12% 0; background: linear-gradient(180deg, #fcf6ec, #e8dcc8); }
.scn-london-patience .wait-floor { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #c8b898, #b4a484); }
.scn-london-patience .wait-window { position:absolute; top:10%; right:8%; width:20%; height:40%; background: linear-gradient(180deg, #b8c8d8 0%, #98b0c4 100%); border:4px solid #9a8464; border-radius: 2px; }
.scn-london-patience .wait-fireplace { position:absolute; bottom:15%; left:10%; width:25%; height:35%; background: linear-gradient(180deg, #b8a088, #8a7460); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 -12px 20px rgba(0,0,0,0.3); }
.scn-london-patience .wait-clock { position:absolute; top:5%; left:10%; width:8%; height:16%; background: radial-gradient(circle at 50% 40%, #e0d0b0, #c0a880); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: lpa-tick 2s ease-in-out infinite; }
.scn-london-patience .wait-chair { position:absolute; bottom:10%; left:50%; width:12%; height:20%; background: linear-gradient(180deg, #c8b49c, #a89078); border-radius: 10% 10% 5% 5%; }
.scn-london-patience .wait-figure { position:absolute; bottom:12%; left:55%; width:8%; height:22%; background: linear-gradient(180deg, #d4c0ac, #c0a890); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lpa-fidget 6s ease-in-out infinite; }
.scn-london-patience .wait-door { position:absolute; top:20%; right:2%; width:12%; height:50%; background: linear-gradient(180deg, #b09a78, #8a7454); border-radius: 4% 4% 0 0; border: 2px solid #7a6040; }

@keyframes lpa-tick { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } }
@keyframes lpa-fidget { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(1deg); } }

/* ---- scene 4 ---- */
.scn-london-christmas-tea {
  background: 
    linear-gradient(180deg, #fcf5e8 0%, #eadcc8 30%, #d4c4a8 100%),
    radial-gradient(ellipse at 50% 40%, #f8f0e0, transparent 60%);
}
.scn-london-christmas-tea .tea-wall { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #fcf5e8, #eadcc8); }
.scn-london-christmas-tea .tea-floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #c8b898, #b4a484); }
.scn-london-christmas-tea .tea-window { position:absolute; top:8%; left:5%; width:25%; height:50%; background: linear-gradient(180deg, #c8d8e4 0%, #a8c0d0 100%); border:4px solid #a08a6a; border-radius:2px; }
.scn-london-christmas-tea .tea-tree { position:absolute; top:15%; right:10%; width:15%; height:40%; background: linear-gradient(180deg, #2a4a2a, #1a3a1a); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: lct-fade 8s ease-in-out infinite alternate; }
.scn-london-christmas-tea .tea-table { position:absolute; bottom:12%; left:30%; width:30%; height:14%; background: linear-gradient(180deg, #d0bc9c, #b8a080); border-radius: 6% 6% 3% 3%; box-shadow: 0 4px 8px rgba(0,0,0,0.15); }
.scn-london-christmas-tea .tea-chair-left { position:absolute; bottom:13%; left:15%; width:10%; height:18%; background: linear-gradient(180deg, #c8b49c, #ac9680); border-radius: 15% 15% 5% 5%; }
.scn-london-christmas-tea .tea-chair-right { position:absolute; bottom:13%; left:55%; width:10%; height:18%; background: linear-gradient(180deg, #c8b49c, #ac9680); border-radius: 15% 15% 5% 5%; }
.scn-london-christmas-tea .tea-host { position:absolute; bottom:12%; left:35%; width:8%; height:22%; background: linear-gradient(180deg, #d4c0ac, #c0a890); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lct-host 5s ease-in-out infinite; }
.scn-london-christmas-tea .tea-guest { position:absolute; bottom:12%; left:48%; width:8%; height:22%; background: linear-gradient(180deg, #c8b8a4, #b4a490); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lct-guest 6s ease-in-out infinite; }

@keyframes lct-fade { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes lct-host { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes lct-guest { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-1deg); } }

/* Scene: mention-of-yachting */
.scn-mention-of-yachting {
  background: linear-gradient(180deg, #c06030 0%, #e08040 30%, #f0a060 60%, #804020 100%), radial-gradient(ellipse at 50% 0%, #f0c080 0%, transparent 70%);
}
.scn-mention-of-yachting .sky   { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d07040 0%, #f0b070 50%, #e08030 100%); animation: my-sky 14s ease-in-out infinite alternate; }
.scn-mention-of-yachting .sun   { position:absolute; top:10%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, #ffa040 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffa040, 0 0 120px 40px rgba(255,160,64,.4); animation: my-sun 16s ease-in-out infinite alternate; }
.scn-mention-of-yachting .sea   { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a3a5a 0%, #0a2a4a 50%, #051a3a 100%); animation: my-sea 10s ease-in-out infinite; }
.scn-mention-of-yachting .hull  { position:absolute; bottom:28%; left:50%; width:80px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: my-boat 5s ease-in-out infinite; }
.scn-mention-of-yachting .sail1 { position:absolute; bottom:40%; left:46%; width:8px; height:40px; background: linear-gradient(90deg, #f0e0c0 0%, #d0b080 100%); transform-origin: bottom center; border-radius: 20% 20% 0 0; animation: my-sail1 7s ease-in-out infinite; }
.scn-mention-of-yachting .sail2 { position:absolute; bottom:40%; left:54%; width:6px; height:30px; background: linear-gradient(90deg, #e0c8a0 0%, #c0a070 100%); transform-origin: bottom center; border-radius: 20% 20% 0 0; animation: my-sail2 7s ease-in-out infinite 0.5s; }
.scn-mention-of-yachting .cloud1{ position:absolute; top:18%; left:20%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,200,150,.5) 0%, rgba(255,180,120,.1) 100%); border-radius:50%; filter: blur(5px); animation: my-cloud1 40s linear infinite; }
.scn-mention-of-yachting .cloud2{ position:absolute; top:30%; right:15%; width:50px; height:12px; background: linear-gradient(180deg, rgba(255,200,150,.4) 0%, rgba(255,180,120,.05) 100%); border-radius:50%; filter: blur(4px); animation: my-cloud2 55s linear infinite reverse; }
.scn-mention-of-yachting .bird  { position:absolute; top:22%; left:30%; width:8px; height:6px; background: #1a1a1a; border-radius:50% 0 0 50%; transform: rotate(-10deg); animation: my-bird 3s ease-in-out infinite; }
@keyframes my-sky   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes my-sun   { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes my-sea   { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes my-boat  { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-48%) rotate(2deg) } 75% { transform: translateX(-52%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes my-sail1 { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.08) } 100% { transform: scaleY(1) } }
@keyframes my-sail2 { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.06) } 100% { transform: scaleY(1) } }
@keyframes my-cloud1{ 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes my-cloud2{ 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes my-bird  { 0% { transform: translateX(0) rotate(-10deg) } 50% { transform: translateX(15px) rotate(5deg) } 100% { transform: translateX(0) rotate(-10deg) } }

/* Scene: muriels-travels */
.scn-muriels-travels {
  background: linear-gradient(180deg, #c06040 0%, #d08050 30%, #e0a060 60%, #301810 100%), radial-gradient(ellipse at 50% 100%, #e0a060 0%, transparent 70%);
}
.scn-muriels-travels .wall    { position:absolute; inset:0; background: linear-gradient(90deg, #402820 0%, #503830 50%, #402820 100%); }
.scn-muriels-travels .window  { position:absolute; top:15%; left:50%; width:120px; height:90px; transform:translateX(-50%); background: #e0b080; border: 6px solid #2a1a10; border-radius: 4px; }
.scn-muriels-travels .sunset  { position:absolute; top:15%; left:50%; width:108px; height:78px; transform:translateX(-50%); margin:-3px; background: linear-gradient(180deg, #ffb080 0%, #ff9060 40%, #603020 100%); border-radius: 2px; animation: mt-sunset 12s ease-in-out infinite alternate; }
.scn-muriels-travels .table   { position:absolute; bottom:18%; left:50%; width:100px; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 6px 10px rgba(0,0,0,.6); }
.scn-muriels-travels .globe   { position:absolute; bottom:24%; left:38%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #6090c0 0%, #306080 40%, #1a3a5a 100%); border-radius:50%; box-shadow: -4px -4px 10px rgba(0,0,0,.4); transform: rotate(20deg); animation: mt-globe 20s linear infinite; }
.scn-muriels-travels .chair   { position:absolute; bottom:20%; right:28%; width:35px; height:45px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: skewX(-5deg); }
.scn-muriels-travels .figure  { position:absolute; bottom:22%; right:30%; width:24px; 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: mt-figure 6s ease-in-out infinite; }
@keyframes mt-sunset { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes mt-globe  { 0% { transform: rotate(20deg) } 100% { transform: rotate(380deg) } }
@keyframes mt-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }

/* Scene: asking-about-lola */
.scn-asking-about-lola {
  background: linear-gradient(180deg, #c06030 0%, #d07040 30%, #b05030 60%, #2a1010 100%), radial-gradient(ellipse at 50% 100%, #a04020 0%, transparent 70%);
}
.scn-asking-about-lola .bg     { position:absolute; inset:0; background: linear-gradient(180deg, #c06030 0%, transparent 40%), linear-gradient(180deg, transparent 60%, #2a1010 100%); }
.scn-asking-about-lola .figure { position:absolute; bottom:20%; left:35%; 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: al-fig 4s ease-in-out infinite; }
.scn-asking-about-lola .arm    { position:absolute; bottom:40%; left:46%; width:18px; height:6px; background: #1a1a2a; border-radius: 0 50% 50% 0; transform-origin: left center; animation: al-arm 3s ease-in-out infinite; }
.scn-asking-about-lola .yacht  { position:absolute; bottom:32%; right:20%; width:30px; height:10px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 0 40% 40% 0; animation: al-yacht 8s ease-in-out infinite; }
.scn-asking-about-lola .yacht::before { content:''; position:absolute; bottom:90%; left:10%; width:2px; height:20px; background: #a08060; } /* mast */
.scn-asking-about-lola .wave1  { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a3a5a 0%, #0a2a4a 100%); border-radius: 60% 40% 0 0; animation: al-wave1 5s ease-in-out infinite; }
.scn-asking-about-lola .wave2  { position:absolute; bottom:15%; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a4a6a 0%, #0a2a4a 100%); border-radius: 40% 60% 0 0; animation: al-wave2 5s ease-in-out infinite 0.5s; }
.scn-asking-about-lola .cloud  { position:absolute; top:12%; left:60%; width:60px; height:14px; background: linear-gradient(180deg, rgba(255,180,120,.5) 0%, rgba(255,160,100,.1) 100%); border-radius:50%; filter: blur(5px); animation: al-cloud 45s linear infinite; }
@keyframes al-fig   { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes al-arm   { 0% { transform: rotate(0deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(0deg) } }
@keyframes al-yacht { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes al-wave1 { 0% { transform: translateY(0) } 50% { transform: translateY(-8px) } 100% { transform: translateY(0) } }
@keyframes al-wave2 { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(0) } }
@keyframes al-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* Scene: muriels-terror */
.scn-muriels-terror {
  background: linear-gradient(180deg, #402020 0%, #603030 30%, #802040 60%, #1a0a0a 100%), radial-gradient(ellipse at 50% 0%, #602030 0%, transparent 70%);
}
.scn-muriels-terror .backdrop  { position:absolute; inset:0; background: linear-gradient(180deg, #402020 0%, transparent 50%, #1a0a0a 100%); }
.scn-muriels-terror .figure    { position:absolute; bottom:10%; left:50%; width:40px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: murt-fig 5s ease-in-out infinite; }
.scn-muriels-terror .eye-left  { position:absolute; bottom:55%; left:46%; width:8px; height:8px; background: radial-gradient(circle, #ffd0a0 0%, #ffa060 70%); border-radius:50%; box-shadow: 0 0 10px 2px #ffa060; animation: murt-eye 2s ease-in-out infinite; }
.scn-muriels-terror .eye-right { position:absolute; bottom:55%; left:52%; width:8px; height:8px; background: radial-gradient(circle, #ffd0a0 0%, #ffa060 70%); border-radius:50%; box-shadow: 0 0 10px 2px #ffa060; animation: murt-eye 2s ease-in-out infinite 0.3s; }
.scn-muriels-terror .hand      { position:absolute; bottom:20%; left:38%; width:16px; height:10px; background: #1a1a2a; border-radius: 50% 50% 30% 30%; transform: rotate(-20deg); animation: murt-hand 3s ease-in-out infinite; }
.scn-muriels-terror .shadow    { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); animation: murt-shadow 8s ease-in-out infinite; }
@keyframes murt-fig   { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-10px) } 100% { transform: translateX(-50%) } }
@keyframes murt-eye   { 0% { transform: scale(1) } 50% { transform: scale(1.3) } 100% { transform: scale(1) } }
@keyframes murt-hand  { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-35deg) } 100% { transform: rotate(-20deg) } }
@keyframes murt-shadow{ 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.5 } }

.scn-palace-colonel-unbending {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #b8a080 100%),
    linear-gradient(135deg, #e0d0b0 0%, #f0e0c0 50%, #c8b898 100%);
}
.scn-palace-colonel-unbending .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.15);
}
.scn-palace-colonel-unbending .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a08868 0%, #7a6040 100%);
  border-top: 4px solid #b09878;
}
.scn-palace-colonel-unbending .shadow {
  position: absolute; bottom: 30%; left: 30%; width: 200px; height: 80px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: pc1-shadow 4s ease-in-out infinite alternate;
}
.scn-palace-colonel-unbending .figure {
  position: absolute; bottom: 30%; left: 45%; width: 60px; height: 140px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: pc1-figure 6s ease-in-out infinite;
}
.scn-palace-colonel-unbending .epaulette {
  position: absolute; bottom: 65%; left: 44%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #c8a050 0%, #a07a30 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-palace-colonel-unbending .card-hand {
  position: absolute; bottom: 45%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #d4b090 0%, #b89070 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: pc1-hand 3s ease-in-out infinite alternate;
}
.scn-palace-colonel-unbending .card {
  position: absolute; bottom: 48%; left: 58%; width: 20px; height: 28px;
  background: linear-gradient(135deg, #f8f0e0 0%, #e0d0b0 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  transform: rotate(-10deg);
  animation: pc1-card 3s ease-in-out infinite alternate;
}
.scn-palace-colonel-unbending .glint {
  position: absolute; bottom: 65%; left: 48%; width: 4px; height: 4px;
  background: #ffe0a0;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,224,160,0.6);
  animation: pc1-glint 2s ease-in-out infinite;
}
@keyframes pc1-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.8; }
  50% { transform: scaleX(1.05) translateX(5px); opacity: 1; }
  100% { transform: scaleX(0.95) translateX(-3px); opacity: 0.7; }
}
@keyframes pc1-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(0.5deg); }
  50% { transform: translateX(0) rotate(-0.5deg); }
  75% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0.5deg); }
}
@keyframes pc1-hand {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(8px) rotate(3deg); }
}
@keyframes pc1-card {
  0% { transform: rotate(-10deg) translateX(0); }
  100% { transform: rotate(-8deg) translateX(6px); }
}
@keyframes pc1-glint {
  0%, 100% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
}

.scn-palace-card-envelope {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 60%, #b8a080 100%),
    radial-gradient(ellipse at 40% 50%, #fff8e8 0%, transparent 70%);
}
.scn-palace-card-envelope .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 4px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-palace-card-envelope .paper {
  position: absolute; bottom: 30%; left: 35%; width: 40%; height: 40%;
  background: linear-gradient(135deg, #f8f0e0 0%, #e8dcc0 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  transform: rotate(2deg);
}
.scn-palace-card-envelope .envelope {
  position: absolute; bottom: 45%; left: 50%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #f0e8d8 0%, #d0c8b0 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.2);
  transform: rotate(-5deg);
  animation: pc2-envelope 5s ease-in-out infinite alternate;
}
.scn-palace-card-envelope .hand {
  position: absolute; bottom: 40%; left: 46%; width: 28px; height: 35px;
  background: linear-gradient(180deg, #d4b090 0%, #b89070 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: pc2-hand 4s ease-in-out infinite alternate;
}
.scn-palace-card-envelope .card {
  position: absolute; bottom: 50%; left: 55%; width: 18px; height: 24px;
  background: linear-gradient(135deg, #f8f0e0 0%, #e0d0b0 100%);
  border-radius: 2px;
  box-shadow: 1px 1px 4px rgba(0,0,0,0.15);
  transform: rotate(-15deg);
  animation: pc2-card 4s ease-in-out infinite alternate;
}
.scn-palace-card-envelope .seal {
  position: absolute; bottom: 48%; left: 54%; width: 10px; height: 10px;
  background: #c8553d;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,85,61,0.3);
  animation: pc2-seal 3s ease-in-out infinite;
}
.scn-palace-card-envelope .shadow-hand {
  position: absolute; bottom: 38%; left: 44%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%);
  animation: pc2-shadow 4s ease-in-out infinite alternate;
}
@keyframes pc2-envelope {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(-7deg) translateY(2px); }
}
@keyframes pc2-hand {
  0% { transform: rotate(10deg) translateX(0); }
  100% { transform: rotate(8deg) translateX(6px); }
}
@keyframes pc2-card {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-12deg) translateX(3px); }
  100% { transform: rotate(-18deg) translateX(-2px); }
}
@keyframes pc2-seal {
  0%, 100% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 1; }
}
@keyframes pc2-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  100% { transform: scaleX(1.2); opacity: 0.3; }
}

.scn-palace-audience-granted {
  background:
    linear-gradient(180deg, #e8dcc0 0%, #d0c0a0 50%, #b09878 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 80%);
}
.scn-palace-audience-granted .doorway {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 90%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-palace-audience-granted .door {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 85%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 2px;
  box-shadow: -4px 0 12px rgba(0,0,0,0.3);
  transform-origin: left center;
  animation: pc3-door 6s ease-in-out infinite alternate;
}
.scn-palace-audience-granted .crack-light {
  position: absolute; bottom: 20%; left: 68%; width: 6px; height: 60%;
  background: linear-gradient(180deg, #ffe8c0 0%, #f0d0a0 100%);
  box-shadow: 0 0 20px 8px rgba(255,224,160,0.5);
  animation: pc3-crack 4s ease-in-out infinite alternate;
}
.scn-palace-audience-granted .footman {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 15% 15%;
  transform-origin: bottom center;
  animation: pc3-footman 8s ease-in-out infinite;
}
.scn-palace-audience-granted .note {
  position: absolute; bottom: 50%; left: 48%; width: 16px; height: 22px;
  background: linear-gradient(135deg, #f8f0e0 0%, #e0d0b0 100%);
  border-radius: 1px;
  box-shadow: 1px 1px 4px rgba(0,0,0,0.2);
  transform: rotate(5deg);
  animation: pc3-note 5s ease-in-out infinite alternate;
}
.scn-palace-audience-granted .hand-receive {
  position: absolute; bottom: 45%; left: 52%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #d4b090 0%, #b89070 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: pc3-hand 5s ease-in-out infinite alternate;
}
.scn-palace-audience-granted .shadow {
  position: absolute; bottom: 15%; left: 35%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: pc3-shadow 6s ease-in-out infinite alternate;
}
@keyframes pc3-door {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(-15deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes pc3-crack {
  0% { opacity: 0.3; width: 4px; }
  50% { opacity: 1; width: 8px; }
  100% { opacity: 0.5; width: 5px; }
}
@keyframes pc3-footman {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(0.5deg); }
  50% { transform: translateX(0) rotate(-0.5deg); }
  75% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0.5deg); }
}
@keyframes pc3-note {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-6px); }
  100% { transform: rotate(3deg) translateY(2px); }
}
@keyframes pc3-hand {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(6px) rotate(2deg); }
}
@keyframes pc3-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.6; }
  100% { transform: scaleX(0.9) translateX(10px); opacity: 0.4; }
}

.scn-palace-oberg-countenance {
  background:
    linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 50%, #8098b8 100%),
    radial-gradient(ellipse at 50% 80%, #e0e8f0 0%, transparent 60%);
}
.scn-palace-oberg-countenance .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #e0e0f0 0%, #c0c8e0 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1);
}
.scn-palace-oberg-countenance .wall-left {
  position: absolute; bottom: 0; left: 0; width: 20%; height: 75%;
  background: linear-gradient(180deg, #b8c8e0 0%, #98a8c8 100%);
  border-right: 2px solid #a0b0c8;
}
.scn-palace-oberg-countenance .wall-right {
  position: absolute; bottom: 0; right: 0; width: 20%; height: 75%;
  background: linear-gradient(180deg, #b8c8e0 0%, #98a8c8 100%);
  border-left: 2px solid #a0b0c8;
}
.scn-palace-oberg-countenance .window {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #e8f0f8 0%, #d0e0f0 100%);
  border: 6px solid #c0a870;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
}
.scn-palace-oberg-countenance .curtain {
  position: absolute; top: 18%; left: 28%; width: 44%; height: 55%;
  background: linear-gradient(180deg, #b8c0d8 0%, #8898b8 100%);
  border-radius: 4px;
  opacity: 0.6;
  animation: pc4-curtain 10s ease-in-out infinite alternate;
}
.scn-palace-oberg-countenance .carpet {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #a0b8d0 0%, #8098b8 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
}
.scn-palace-oberg-countenance .canopy {
  position: absolute; top: 5%; left: 50%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #6a4060 0%, #4a2040 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: pc4-canopy 8s ease-in-out infinite alternate;
}
.scn-palace-oberg-countenance .gilt-fringe {
  position: absolute; top: 40%; left: 50%; width: 80px; height: 4px;
  background: linear-gradient(90deg, #d4a050 0%, #f0d080 50%, #d4a050 100%);
  transform: translateX(-50%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px rgba(212,160,80,0.5);
  animation: pc4-fringe 6s ease-in-out infinite alternate;
}
@keyframes pc4-curtain {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.02); opacity: 0.7; }
  100% { transform: scaleX(0.98); opacity: 0.5; }
}
@keyframes pc4-canopy {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-1deg) translateY(2px); }
}
@keyframes pc4-fringe {
  0% { transform: translateX(-50%) translateY(0); opacity: 0.8; }
  50% { transform: translateX(-50%) translateY(-3px); opacity: 1; }
  100% { transform: translateX(-50%) translateY(2px); opacity: 0.7; }
}

/* Scene 1 - london-defiance-warning */
.scn-london-defiance-warning {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a40 40%, #1c1c30 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a40 0%, transparent 70%);
}
.scn-london-defiance-warning .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%);
  animation: ldw-sky 15s ease-in-out infinite alternate;
}
.scn-london-defiance-warning .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-london-defiance-warning .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ldw-figure-left 4s ease-in-out infinite;
}
.scn-london-defiance-warning .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ldw-figure-right 4s ease-in-out infinite 1s;
}
.scn-london-defiance-warning .lamp {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 12px;
  background: #b08040;
  border-radius: 20% 20% 50% 50%;
  box-shadow: 0 0 20px 10px #b08040, 0 0 40px 20px rgba(176,128,64,0.5);
  animation: ldw-lamp 6s ease-in-out infinite alternate;
}
.scn-london-defiance-warning .glow {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(ellipse, rgba(176,128,64,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: ldw-glow 6s ease-in-out infinite alternate;
}
.scn-london-defiance-warning .fog-a {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, rgba(200,200,220,0.1) 0%, rgba(200,200,220,0.05) 100%);
  filter: blur(8px);
  animation: ldw-fog-a 30s linear infinite;
}
.scn-london-defiance-warning .fog-b {
  position: absolute; bottom: 5%; right: -20%; width: 80%; height: 30%;
  background: linear-gradient(180deg, rgba(200,200,220,0.08) 0%, transparent 100%);
  filter: blur(10px);
  animation: ldw-fog-b 40s linear infinite reverse;
}
@keyframes ldw-sky { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes ldw-figure-left { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(2deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } }
@keyframes ldw-figure-right { 0%,100% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(0) translateY(0) rotate(-2deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg) } }
@keyframes ldw-lamp { 0% { box-shadow: 0 0 15px 5px #b08040, 0 0 30px 10px rgba(176,128,64,0.4); } 50% { box-shadow: 0 0 25px 10px #d0a060, 0 0 50px 20px rgba(208,160,96,0.6); } 100% { box-shadow: 0 0 18px 6px #b08040, 0 0 35px 12px rgba(176,128,64,0.45); } }
@keyframes ldw-glow { 0%,100% { opacity:0.5; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.2) } }
@keyframes ldw-fog-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(150px) } }
@keyframes ldw-fog-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100px) } }

/* Scene 2 - london-unknown-facts */
.scn-london-unknown-facts {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a40 60%, #14142a 100%),
              radial-gradient(ellipse at 30% 50%, #2a2a40 0%, transparent 80%);
}
.scn-london-unknown-facts .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #2a2a3e 0%, #3a3a4e 50%, #2a2a3e 100%);
  border-bottom: 4px solid #1a1a2e;
}
.scn-london-unknown-facts .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-london-unknown-facts .lamp {
  position: absolute; bottom: 30%; left: 35%; width: 10px; height: 14px;
  background: #b08040;
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 15px #b08040, 0 0 60px 30px rgba(176,128,64,0.3);
  animation: luf-lamp 5s ease-in-out infinite alternate;
}
.scn-london-unknown-facts .letter {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 20px;
  background: #c8b890;
  border: 1px solid #8a7a5a;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: luf-letter 8s ease-in-out infinite;
}
.scn-london-unknown-facts .figure {
  position: absolute; bottom: 25%; right: 15%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: luf-figure 6s ease-in-out infinite;
}
.scn-london-unknown-facts .shadow {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px);
}
.scn-london-unknown-facts .smoke-a {
  position: absolute; top: 20%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: luf-smoke-a 20s linear infinite;
}
.scn-london-unknown-facts .smoke-b {
  position: absolute; top: 15%; left: 50%; width: 30px; height: 50px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.1) 0%, transparent 70%);
  filter: blur(12px);
  animation: luf-smoke-b 25s linear infinite reverse;
}
@keyframes luf-lamp { 0% { box-shadow: 0 0 20px 10px #b08040, 0 0 40px 20px rgba(176,128,64,0.2); } 50% { box-shadow: 0 0 35px 15px #d0a060, 0 0 60px 30px rgba(208,160,96,0.4); } 100% { box-shadow: 0 0 25px 12px #b08040, 0 0 45px 25px rgba(176,128,64,0.25); } }
@keyframes luf-letter { 0%,100% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(-3deg) translateX(2px); } 50% { transform: rotate(-6deg) translateX(0); } 75% { transform: rotate(-4deg) translateX(-2px); } }
@keyframes luf-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(3deg); } }
@keyframes luf-smoke-a { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 50% { transform: translate(-20px,-30px) scale(1.5); opacity:0.2; } 100% { transform: translate(-40px,-60px) scale(2); opacity:0; } }
@keyframes luf-smoke-b { 0% { transform: translate(0,0) scale(1); opacity:0.4; } 50% { transform: translate(20px,-40px) scale(1.8); opacity:0.1; } 100% { transform: translate(40px,-80px) scale(2.5); opacity:0; } }

/* Scene 3 - london-consulate-burglary */
.scn-london-consulate-burglary {
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 50%, #14142a 100%),
              radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, transparent 80%);
}
.scn-london-consulate-burglary .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-london-consulate-burglary .safe {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 60%;
  background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border: 3px solid #4a4a5a;
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.8), inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-london-consulate-burglary .safe-door {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 40%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border: 2px solid #5a5a6a;
  border-radius: 2px;
  transform: rotateY(0deg);
  animation: lcb-door 6s ease-in-out infinite;
}
.scn-london-consulate-burglary .figure {
  position: absolute; bottom: 18%; left: 15%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lcb-figure 4s ease-in-out infinite;
}
.scn-london-consulate-burglary .tool {
  position: absolute; bottom: 35%; left: 40%; width: 4px; height: 18px;
  background: #5a5a6a;
  border-radius: 2px;
  transform: rotate(30deg);
  box-shadow: 0 0 4px rgba(255,255,255,0.2);
  animation: lcb-tool 4s ease-in-out infinite 0.5s;
}
.scn-london-consulate-burglary .light-shaft {
  position: absolute; top: 0; left: 20%; right: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(200,180,140,0.08) 0%, transparent 60%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: lcb-light 8s ease-in-out infinite alternate;
}
.scn-london-consulate-burglary .glint {
  position: absolute; bottom: 42%; left: 42%; width: 6px; height: 6px;
  background: #e0d0b0;
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(224,208,176,0.6);
  animation: lcb-glint 2s ease-in-out infinite;
}
@keyframes lcb-door { 0%,100% { transform: rotateY(0deg); } 25%,75% { transform: rotateY(-15deg); } 50% { transform: rotateY(0deg); } }
@keyframes lcb-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-3deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-8px) translateY(-2px) rotate(3deg); } }
@keyframes lcb-tool { 0%,100% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(25deg) scale(1.1); } }
@keyframes lcb-light { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes lcb-glint { 0%,100% { opacity:0.4; transform: scale(1); } 50% { opacity:1; transform: scale(1.5); } }

/* Scene 4 - london-woodroffe-caution */
.scn-london-woodroffe-caution {
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a30 40%, #14142a 100%),
              radial-gradient(ellipse at 70% 100%, #1a1a30 0%, transparent 80%);
}
.scn-london-woodroffe-caution .prison-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3e 30%, #2a2a3e 70%, #1a1a2a 100%);
  border-bottom: 4px solid #0a0a1a;
}
.scn-london-woodroffe-caution .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
}
.scn-london-woodroffe-caution .window {
  position: absolute; top: 25%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #3a3a5a 0%, #1a1a2e 100%);
  border: 3px solid #4a4a5a;
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(100,120,200,0.1);
}
.scn-london-woodroffe-caution .bars {
  position: absolute; top: 25%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 7px, #3a3a4a 7px, #3a3a4a 8px);
  opacity: 0.4;
}
.scn-london-woodroffe-caution .figure {
  position: absolute; bottom: 25%; left: 40%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lwc-figure 8s ease-in-out infinite;
}
.scn-london-woodroffe-caution .letter {
  position: absolute; bottom: 30%; left: 30%; width: 25px; height: 15px;
  background: #c8b890;
  border: 1px solid #8a7a5a;
  transform: rotate(10deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: lwc-letter 6s ease-in-out infinite;
}
.scn-london-woodroffe-caution .moonlight {
  position: absolute; top: 15%; right: 10%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,200,255,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: lwc-moonlight 10s ease-in-out infinite alternate;
}
.scn-london-woodroffe-caution .shadow {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(10px);
}
@keyframes lwc-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-4px) translateY(-2px) rotate(-2deg); } }
@keyframes lwc-letter { 0%,100% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.05); } }
@keyframes lwc-moonlight { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(1.1); } }

/* leithcourt-and-murder */
.scn-leithcourt-and-murder {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2250 40%, #3a2a5e 100%), radial-gradient(ellipse at 40% 60%, #3a2a5e 0%, transparent 70%);
}
.scn-leithcourt-and-murder .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a44 0%, #1e1e32 100%);
  box-shadow: inset 0 0 60px #0a0a1a;
  animation: lm-wall 12s ease-in-out infinite alternate;
}
.scn-leithcourt-and-murder .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1e1212 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: lm-floor 8s ease-in-out infinite;
}
.scn-leithcourt-and-murder .window {
  position: absolute; top: 15%; left: 10%; width: 35%; height: 40%;
  background: linear-gradient(180deg, #4a5a7a 0%, #2a3a5a 100%);
  border: 4px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(100,140,200,0.3);
  animation: lm-window 6s ease-in-out infinite alternate;
}
.scn-leithcourt-and-murder .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: lm-table 5s ease-in-out infinite;
}
.scn-leithcourt-and-murder .figure {
  position: absolute; bottom: 22%; left: 42%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lm-figure 4s ease-in-out infinite;
}
.scn-leithcourt-and-murder .shadow {
  position: absolute; bottom: 18%; left: 38%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: lm-shadow 4s ease-in-out infinite;
}
.scn-leithcourt-and-murder .light-beam {
  position: absolute; top: 10%; left: 30%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(200,220,255,0.08) 0%, transparent 100%);
  filter: blur(8px);
  animation: lm-beam 7s ease-in-out infinite alternate;
}
@keyframes lm-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lm-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lm-window { 0% { opacity:0.7; box-shadow: inset 0 0 20px rgba(100,140,200,0.2) } 50% { opacity:1; box-shadow: inset 0 0 60px rgba(100,140,200,0.5) } 100% { opacity:0.8; box-shadow: inset 0 0 30px rgba(100,140,200,0.3) } }
@keyframes lm-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes lm-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lm-shadow { 0%,100% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.2) } }
@keyframes lm-beam { 0% { opacity:0.3; transform: rotate(-2deg) } 50% { opacity:0.6; transform: rotate(0deg) } 100% { opacity:0.4; transform: rotate(2deg) } }

/* speaking-to-police */
.scn-speaking-to-police {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #c0b090 100%), radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, transparent 60%);
}
.scn-speaking-to-police .wall-left {
  position: absolute; inset: 0 50% 0 0;
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a888 100%);
  box-shadow: inset -20px 0 30px rgba(0,0,0,0.1);
  animation: sp-wall 15s ease-in-out infinite alternate;
}
.scn-speaking-to-police .wall-right {
  position: absolute; inset: 0 0 0 50%;
  background: linear-gradient(225deg, #d4c4a8 0%, #c8b898 100%);
  box-shadow: inset 20px 0 30px rgba(0,0,0,0.1);
  animation: sp-wall 15s ease-in-out infinite alternate-reverse;
}
.scn-speaking-to-police .desk {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: sp-desk 6s ease-in-out infinite;
}
.scn-speaking-to-police .policeman {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp-policeman 4s ease-in-out infinite;
}
.scn-speaking-to-police .speaker {
  position: absolute; bottom: 20%; left: 55%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp-speaker 5s ease-in-out infinite;
}
.scn-speaking-to-police .lamp {
  position: absolute; top: 10%; left: 42%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c8b080 0%, #807060 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px rgba(240,200,120,0.6);
  animation: sp-lamp 3s ease-in-out infinite alternate;
}
.scn-speaking-to-police .window-bright {
  position: absolute; top: 8%; right: 8%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #f0f0e0 0%, #d0d0c0 100%);
  border: 4px solid #a89878;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,240,0.8);
  animation: sp-window 8s ease-in-out infinite alternate;
}
@keyframes sp-wall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes sp-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sp-policeman { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(2px) rotate(0deg) } 60% { transform: translateX(0) rotate(1deg) } 100% { transform: translateX(-2px) rotate(0deg) } }
@keyframes sp-speaker { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-1px) rotate(0deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(1px) rotate(0deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes sp-lamp { 0% { box-shadow: 0 0 15px 6px rgba(240,200,120,0.4); } 50% { box-shadow: 0 0 30px 12px rgba(240,200,120,0.8); } 100% { box-shadow: 0 0 20px 8px rgba(240,200,120,0.6); } }
@keyframes sp-window { 0% { opacity:0.85; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:0.9; transform: scaleY(0.98) } }

/* plea-to-police */
.scn-plea-to-police {
  background: linear-gradient(180deg, #e0d4c0 0%, #c8b8a0 40%, #b0a088 100%), radial-gradient(ellipse at 60% 50%, #f0e0d0 0%, transparent 70%);
}
.scn-plea-to-police .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b8a0 0%, #a89880 100%);
  animation: pp-bg 20s ease-in-out infinite alternate;
}
.scn-plea-to-police .desk-close {
  position: absolute; bottom: 12%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.4);
  animation: pp-desk 7s ease-in-out infinite;
}
.scn-plea-to-police .pleader {
  position: absolute; bottom: 15%; left: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a221a 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pp-plead 3s ease-in-out infinite;
}
.scn-plea-to-police .officer {
  position: absolute; bottom: 15%; left: 55%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pp-officer 4s ease-in-out infinite;
}
.scn-plea-to-police .spotlight {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.25) 0%, transparent 80%);
  filter: blur(10px);
  animation: pp-spotlight 5s ease-in-out infinite alternate;
}
.scn-plea-to-police .shadow-hand {
  position: absolute; bottom: 22%; left: 38%; width: 14px; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: pp-hand 3s ease-in-out infinite;
}
@keyframes pp-bg { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pp-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes pp-plead { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(0) translateY(0) rotate(2deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes pp-officer { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes pp-spotlight { 0% { opacity:0.6; transform: scaleX(1) } 50% { opacity:0.9; transform: scaleX(1.05) } 100% { opacity:0.7; transform: scaleX(0.95) } }
@keyframes pp-hand { 0%,100% { transform: translateX(0) scaleY(1); opacity:0.5 } 50% { transform: translateX(3px) scaleY(1.3); opacity:0.8 } }

/* detective-doubts */
.scn-detective-doubts {
  background: linear-gradient(180deg, #d0c8b8 0%, #b8a898 40%, #a09080 100%), radial-gradient(ellipse at 30% 40%, #e8dcc8 0%, transparent 60%);
}
.scn-detective-doubts .interior {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b8a8 0%, #a89888 100%);
  animation: dd-interior 18s ease-in-out infinite alternate;
}
.scn-detective-doubts .desk-wide {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: dd-desk 6s ease-in-out infinite;
}
.scn-detective-doubts .detective {
  position: absolute; bottom: 18%; left: 35%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dd-detective 4.5s ease-in-out infinite;
}
.scn-detective-doubts .suspect {
  position: absolute; bottom: 18%; left: 55%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dd-suspect 5s ease-in-out infinite;
}
.scn-detective-doubts .lamp-harsh {
  position: absolute; top: 5%; left: 45%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #c8b080 0%, #807060 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 10px rgba(255,220,150,0.7), 0 0 60px 20px rgba(255,220,150,0.2);
  animation: dd-lamp 3s ease-in-out infinite alternate;
}
.scn-detective-doubts .door {
  position: absolute; top: 10%; right: 5%; width: 15%; height: 70%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border: 3px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: dd-door 10s ease-in-out infinite;
}
.scn-detective-doubts .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8a898 0%, #908070 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  animation: dd-wall 12s ease-in-out infinite alternate;
}
@keyframes dd-interior { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes dd-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes dd-detective { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dd-suspect { 0% { transform: translateX(0) rotate(1deg) } 30% { transform: translateX(-1px) rotate(-1deg) } 60% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(1px) rotate(1deg) } }
@keyframes dd-lamp { 0% { box-shadow: 0 0 20px 8px rgba(255,220,150,0.5) } 50% { box-shadow: 0 0 40px 16px rgba(255,220,150,0.9) } 100% { box-shadow: 0 0 25px 10px rgba(255,220,150,0.6) } }
@keyframes dd-door { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes dd-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }

/* abo-trust-felix */
.scn-abo-trust-felix {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e8d5b8 40%, #d4bc9a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 70%);
}
.scn-abo-trust-felix .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #f0dfc8 0%, #e0c8a8 100%); }
.scn-abo-trust-felix .window-frame { position: absolute; top: 8%; left: 55%; width: 35%; height: 50%; background: linear-gradient(180deg, #b8a08a 0%, #8a7058 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 30px rgba(255,220,180,0.3); }
.scn-abo-trust-felix .sunbeam { position: absolute; top: 60%; left: 58%; width: 25%; height: 40%; background: linear-gradient(135deg, rgba(255,240,200,0.5) 0%, rgba(255,220,170,0.1) 100%); transform: skewX(-10deg); filter: blur(8px); animation: atf-beam 8s ease-in-out infinite alternate; }
.scn-abo-trust-felix .table { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 12%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-abo-trust-felix .chair-left { position: absolute; bottom: 28%; left: 28%; width: 14%; height: 22%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 4% 4%; transform-origin: bottom center; animation: atf-rock 6s ease-in-out infinite; }
.scn-abo-trust-felix .chair-right { position: absolute; bottom: 28%; right: 28%; width: 14%; height: 22%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 4% 4%; transform-origin: bottom center; animation: atf-rock 7s ease-in-out infinite 0.5s; }
.scn-abo-trust-felix .felix-figure { position: absolute; bottom: 22%; left: 33%; width: 10%; height: 26%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atf-breathe 5s ease-in-out infinite; }
.scn-abo-trust-felix .narrator-figure { position: absolute; bottom: 22%; right: 33%; width: 10%; height: 26%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atf-breathe 5s ease-in-out infinite 0.3s; }
.scn-abo-trust-felix .warm-glow { position: absolute; bottom: 15%; left: 40%; width: 20%; height: 20%; background: radial-gradient(circle, rgba(255,200,150,0.4) 0%, transparent 70%); filter: blur(20px); animation: atf-pulse 10s ease-in-out infinite alternate; }
@keyframes atf-beam { 0% { opacity: 0.6; transform: skewX(-10deg) translateX(0); } 50% { opacity: 0.9; transform: skewX(-8deg) translateX(5px); } 100% { opacity: 0.7; transform: skewX(-12deg) translateX(-3px); } }
@keyframes atf-rock { 0%, 100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 75% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes atf-breathe { 0%, 100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-2px); } }
@keyframes atf-pulse { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.95); } }

/* abo-fear-for-elma */
.scn-abo-fear-for-elma {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 30%, #3a3a4a 60%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 60%);
}
.scn-abo-fear-for-elma .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-abo-fear-for-elma .wall-dark { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 50%, #1a1a1a 100%); }
.scn-abo-fear-for-elma .door { position: absolute; bottom: 20%; left: 55%; width: 20%; height: 70%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border: 3px solid #1a0a00; border-radius: 2% 2% 0 0; }
.scn-abo-fear-for-elma .door-gap { position: absolute; bottom: 20%; left: 55%; width: 4%; height: 70%; background: #0a0a00; box-shadow: inset 0 0 20px rgba(100,50,20,0.5); animation: afe-creak 12s ease-in-out infinite alternate; }
.scn-abo-fear-for-elma .blind-shadows { position: absolute; top: 0; left: 20%; width: 40%; height: 100%; background: repeating-linear-gradient(0deg, rgba(0,0,0,0.4) 0px, rgba(0,0,0,0.4) 8px, transparent 8px, transparent 16px); filter: blur(2px); animation: afe-flicker 3s step-end infinite; }
.scn-abo-fear-for-elma .chair { position: absolute; bottom: 20%; left: 25%; width: 18%; height: 25%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%); border-radius: 6% 6% 2% 2%; box-shadow: 6px 0 12px rgba(0,0,0,0.5); transform-origin: bottom center; animation: afe-tilt 7s ease-in-out infinite; }
.scn-abo-fear-for-elma .looming-figure { position: absolute; bottom: 20%; left: 40%; width: 18%; height: 40%; background: linear-gradient(180deg, #0a0a00 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow: 0 0 40px rgba(0,0,0,0.8); transform-origin: bottom center; animation: afe-loom 4s ease-in-out infinite alternate; }
.scn-abo-fear-for-elma .elma-shadow { position: absolute; bottom: 20%; left: 30%; width: 12%; height: 30%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.7; animation: afe-cower 5s ease-in-out infinite; }
.scn-abo-fear-for-elma .harsh-light { position: absolute; top: 0; left: 30%; width: 40%; height: 60%; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.3) 0%, transparent 70%); filter: blur(30px); animation: afe-flash 8s ease-in-out infinite alternate; }
@keyframes afe-creak { 0% { transform: translateX(0); } 25% { transform: translateX(2px); } 50% { transform: translateX(0); } 75% { transform: translateX(-1px); } 100% { transform: translateX(0); } }
@keyframes afe-flicker { 0%, 100% { opacity: 0.8; } 10% { opacity: 0.5; } 20% { opacity: 0.9; } 30% { opacity: 0.4; } 40% { opacity: 0.7; } 50% { opacity: 0.3; } 60% { opacity: 0.8; } 70% { opacity: 0.6; } 80% { opacity: 0.9; } 90% { opacity: 0.5; } }
@keyframes afe-tilt { 0%, 100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(2deg) translateY(-3px); } 70% { transform: rotate(-3deg) translateY(2px); } }
@keyframes afe-loom { 0% { transform: scaleY(1) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.05) translateY(-5px); opacity: 1; } 100% { transform: scaleY(0.98) translateY(2px); opacity: 0.9; } }
@keyframes afe-cower { 0%, 100% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(-5px) scaleY(0.95); } 50% { transform: translateX(0) scaleY(1); } 75% { transform: translateX(3px) scaleY(0.97); } }
@keyframes afe-flash { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }

/* abo-hotel-phoenix */
.scn-abo-hotel-phoenix {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c8b0 40%, #c0b4a0 100%),
    radial-gradient(ellipse at 50% 0%, #f5f0e0 0%, transparent 70%);
}
.scn-abo-hotel-phoenix .lobby-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #b8a88a 0%, #908060 100%); }
.scn-abo-hotel-phoenix .lobby-wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #d8ccbe 0%, #c8bcae 50%, #b8ac9e 100%); }
.scn-abo-hotel-phoenix .reception-desk { position: absolute; bottom: 25%; left: 15%; width: 25%; height: 20%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 2% 2% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-abo-hotel-phoenix .chandelier { position: absolute; top: 2%; left: 30%; width: 40%; height: 12%; background: radial-gradient(ellipse at 50% 0%, #d4b860 0%, #b09840 50%, transparent 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: ahp-glow 6s ease-in-out infinite alternate; }
.scn-abo-hotel-phoenix .chandelier::after { content: ''; position: absolute; bottom: 0; left: 20%; width: 60%; height: 60%; background: radial-gradient(ellipse, rgba(200,180,100,0.3) 0%, transparent 100%); filter: blur(10px); animation: ahp-glow 6s ease-in-out infinite alternate 0.3s; }
.scn-abo-hotel-phoenix .staircase { position: absolute; bottom: 25%; right: 10%; width: 20%; height: 60%; background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #5a4a2a 100%); border-radius: 0 0 4% 4%; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); }
.scn-abo-hotel-phoenix .lone-figure { position: absolute; bottom: 25%; left: 48%; width: 8%; height: 24%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ahp-wander 15s ease-in-out infinite; }
.scn-abo-hotel-phoenix .plant-pot { position: absolute; bottom: 25%; left: 5%; width: 8%; height: 12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 0 0 20% 20%; }
.scn-abo-hotel-phoenix .plant-pot::before { content: ''; position: absolute; bottom: 100%; left: -10%; width: 120%; height: 60%; background: radial-gradient(ellipse at 50% 100%, #3a5a2a 0%, transparent 100%); border-radius: 50%; animation: ahp-sway 8s ease-in-out infinite; }
.scn-abo-hotel-phoenix .warm-lamp { position: absolute; top: 10%; left: 10%; width: 5%; height: 8%; background: radial-gradient(circle, #ffe0a0 0%, #d4b860 70%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(255,220,150,0.4); animation: ahp-lamp 4s ease-in-out infinite alternate; }
@keyframes ahp-glow { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.8; transform: scaleY(0.98); } }
@keyframes ahp-wander { 0% { transform: translateX(0) scaleX(1); } 20% { transform: translateX(20px) scaleX(0.95); } 40% { transform: translateX(-10px) scaleX(1.05); } 60% { transform: translateX(15px) scaleX(0.98); } 80% { transform: translateX(-20px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes ahp-sway { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes ahp-lamp { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); } }

/* abo-thoughts-conflict */
.scn-abo-thoughts-conflict {
  background:
    linear-gradient(180deg, #3a3028 0%, #4a4038 30%, #5a5048 60%, #4a4038 100%),
    radial-gradient(ellipse at 50% 0%, #6a6058 0%, transparent 70%);
}
.scn-abo-thoughts-conflict .dining-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-abo-thoughts-conflict .dining-wall { position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); }
.scn-abo-thoughts-conflict .table-1 { position: absolute; bottom: 15%; left: 10%; width: 25%; height: 8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-abo-thoughts-conflict .table-2 { position: absolute; bottom: 15%; left: 40%; width: 25%; height: 8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-abo-thoughts-conflict .table-3 { position: absolute; bottom: 15%; left: 68%; width: 25%; height: 8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-abo-thoughts-conflict .figure-1 { position: absolute; bottom: 15%; left: 15%; width: 8%; height: 18%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atc-bob 4s ease-in-out infinite; }
.scn-abo-thoughts-conflict .figure-2 { position: absolute; bottom: 15%; left: 45%; width: 8%; height: 18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atc-bob 5s ease-in-out infinite 0.3s; }
.scn-abo-thoughts-conflict .figure-3 { position: absolute; bottom: 15%; left: 73%; width: 8%; height: 18%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atc-bob 4.5s ease-in-out infinite 0.7s; }
.scn-abo-thoughts-conflict .overhead-lamp { position: absolute; top: 0; left: 35%; width: 30%; height: 20%; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.2) 0%, transparent 100%); filter: blur(30px); animation: atc-swing 10s ease-in-out infinite alternate; }
@keyframes atc-bob { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(3deg); } }
@keyframes atc-swing { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(20px) scaleX(1.05); } 50% { transform: translateX(-15px) scaleX(0.95); } 75% { transform: translateX(10px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }

/* Social Gathering */
.scn-social-gathering {
  background: linear-gradient(180deg, #ff7e40 0%, #ffb84d 30%, #ffd9a3 60%, #e8c4a0 100%),
              radial-gradient(ellipse at 70% 20%, #ffb066 0%, transparent 60%);
}
.scn-social-gathering .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ff9966 0%, #ffcc80 40%, transparent 100%);
  animation: sg-sky 12s ease-in-out infinite alternate;
}
.scn-social-gathering .sun {
  position: absolute; top: 10%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe680 0%, #ffaa33 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,170,51,0.4);
  animation: sg-sun 8s ease-in-out infinite alternate;
}
.scn-social-gathering .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
  animation: sg-hills 15s ease-in-out infinite alternate;
}
.scn-social-gathering .figures-left {
  position: absolute; bottom: 22%; left: 25%; width: 30px; 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: sg-walk-left 6s ease-in-out infinite;
}
.scn-social-gathering .figures-right {
  position: absolute; bottom: 24%; right: 25%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sg-walk-right 7s ease-in-out infinite;
}
.scn-social-gathering .shooting-box {
  position: absolute; bottom: 30%; left: 60%; width: 40px; height: 35px;
  background: linear-gradient(90deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: sg-box 5s ease-in-out infinite alternate;
}
.scn-social-gathering .tree {
  position: absolute; bottom: 30%; left: 10%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: sg-tree 20s ease-in-out infinite alternate;
}
@keyframes sg-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes sg-sun {
  0% { transform: scale(0.95); box-shadow: 0 0 60px 30px rgba(255,170,51,0.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 100px 50px rgba(255,170,51,0.5); }
  100% { transform: scale(1); box-shadow: 0 0 80px 40px rgba(255,170,51,0.4); }
}
@keyframes sg-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes sg-walk-left {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(1deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(24px) rotate(2deg); }
  100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes sg-walk-right {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-6px) rotate(-1deg); }
  50% { transform: translateX(-12px) rotate(1deg); }
  75% { transform: translateX(-18px) rotate(-2deg); }
  100% { transform: translateX(-24px) rotate(0deg); }
}
@keyframes sg-box {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.98); }
}
@keyframes sg-tree {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-0.5deg); }
}

/* Gossiping About Woodroffe */
.scn-gossiping-about-woodroffe {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 40%, #8a7a5a 100%),
              radial-gradient(ellipse at 50% 80%, #b89a70 0%, transparent 70%);
}
.scn-gossiping-about-woodroffe .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  opacity: 0.6;
  animation: gw-wall 20s ease-in-out infinite alternate;
}
.scn-gossiping-about-woodroffe .window {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #ffd9b3 0%, #e6b88a 100%);
  border: 6px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,200,150,0.5);
  animation: gw-window 4s ease-in-out infinite alternate;
}
.scn-gossiping-about-woodroffe .lady {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gw-lady 6s ease-in-out infinite;
}
.scn-gossiping-about-woodroffe .speaker {
  position: absolute; bottom: 22%; left: 45%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gw-speaker 5s ease-in-out infinite;
}
.scn-gossiping-about-woodroffe .lamp {
  position: absolute; bottom: 45%; left: 50%; width: 10px; height: 20px;
  background: radial-gradient(circle, #ffcc66 0%, #cc8833 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,204,102,0.6);
  animation: gw-lamp 3s ease-in-out infinite alternate;
}
.scn-gossiping-about-woodroffe .chair {
  position: absolute; bottom: 15%; left: 25%; width: 30px; height: 20px;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: gw-chair 7s ease-in-out infinite alternate;
}
@keyframes gw-wall {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.6; }
}
@keyframes gw-window {
  0% { box-shadow: inset 0 0 20px rgba(255,200,150,0.5); }
  50% { box-shadow: inset 0 0 40px rgba(255,220,180,0.7); }
  100% { box-shadow: inset 0 0 15px rgba(255,190,140,0.4); }
}
@keyframes gw-lady {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gw-speaker {
  0% { transform: translateX(0) rotate(1deg); }
  30% { transform: translateX(-4px) rotate(-2deg); }
  60% { transform: translateX(2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes gw-lamp {
  0% { opacity: 0.8; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes gw-chair {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.98); }
}

/* Leithcourt and Woodroffe */
.scn-leithcourt-and-woodroffe {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a2a 40%, #7a6a3a 100%),
              radial-gradient(ellipse at 40% 50%, #b89a60 0%, transparent 60%);
}
.scn-leithcourt-and-woodroffe .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 20px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 50%, #6a4a2a 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: lw-table 10s ease-in-out infinite alternate;
}
.scn-leithcourt-and-woodroffe .leithcourt {
  position: absolute; bottom: 30%; left: 25%; width: 28px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lw-leith 6s ease-in-out infinite;
}
.scn-leithcourt-and-woodroffe .woodroffe {
  position: absolute; bottom: 32%; left: 50%; width: 26px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lw-wood 5s ease-in-out infinite;
}
.scn-leithcourt-and-woodroffe .sir-ughtred {
  position: absolute; bottom: 28%; right: 15%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  transform-origin: bottom center;
  animation: lw-sir 7s ease-in-out infinite alternate;
}
.scn-leithcourt-and-woodroffe .candle {
  position: absolute; bottom: 38%; left: 38%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffd966 0%, #cc8833 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 10px rgba(255,217,102,0.5);
  animation: lw-candle 3s ease-in-out infinite alternate;
}
.scn-leithcourt-and-woodroffe .glass {
  position: absolute; bottom: 22%; left: 42%; width: 12px; height: 16px;
  background: linear-gradient(180deg, rgba(200,180,150,0.4) 0%, rgba(200,180,150,0.1) 100%);
  border-radius: 4px;
  border: 1px solid rgba(200,180,150,0.3);
  transform: rotate(-10deg);
  animation: lw-glass 4s ease-in-out infinite;
}
.scn-leithcourt-and-woodroffe .shadow {
  position: absolute; bottom: 15%; left: 30%; right: 20%; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: lw-shadow 8s ease-in-out infinite alternate;
}
@keyframes lw-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes lw-leith {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lw-wood {
  0% { transform: translateX(0) rotate(1deg); }
  30% { transform: translateX(-3px) rotate(-2deg); }
  60% { transform: translateX(2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes lw-sir {
  0% { transform: scale(0.9) rotate(-1deg); }
  50% { transform: scale(1) rotate(1deg); }
  100% { transform: scale(0.92) rotate(0deg); }
}
@keyframes lw-candle {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes lw-glass {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.02); }
  100% { transform: rotate(-12deg) scale(0.98); }
}
@keyframes lw-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

/* Leaving Rannoch */
.scn-leaving-rannoch {
  background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 30%, #5a4a4a 60%, #7a6a6a 100%),
              radial-gradient(ellipse at 50% 20%, #4a3a3a 0%, transparent 70%);
}
.scn-leaving-rannoch .road {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: lr-road 8s ease-in-out infinite alternate;
}
.scn-leaving-rannoch .carriage {
  position: absolute; bottom: 22%; left: 40%; width: 80px; height: 50px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 50%, #4a3a2a 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: lr-carriage 6s ease-in-out infinite alternate;
}
.scn-leaving-rannoch .horse {
  position: absolute; bottom: 24%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: lr-horse 4s ease-in-out infinite;
}
.scn-leaving-rannoch .figure {
  position: absolute; bottom: 26%; left: 48%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-figure 5s ease-in-out infinite alternate;
}
.scn-leaving-rannoch .lamp-post {
  position: absolute; bottom: 30%; right: 20%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 5px rgba(255,200,100,0.3);
  animation: lr-lamp 4s ease-in-out infinite alternate;
}
.scn-leaving-rannoch .fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(100,100,120,0.3) 0%, transparent 60%);
  filter: blur(8px);
  opacity: 0.5;
  animation: lr-fog 15s ease-in-out infinite alternate;
}
@keyframes lr-road {
  0% { background-position: 0 0; }
  100% { background-position: 10px 0; }
}
@keyframes lr-carriage {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-10px) rotate(-1deg); }
  100% { transform: translateX(5px) rotate(1deg); }
}
@keyframes lr-horse {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(1deg); }
  50% { transform: translateX(16px) rotate(-1deg); }
  75% { transform: translateX(24px) rotate(2deg); }
  100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes lr-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lr-lamp {
  0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(255,200,100,0.3); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(255,200,100,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(255,200,100,0.4); }
}
@keyframes lr-fog {
  0% { opacity: 0.3; filter: blur(6px); }
  50% { opacity: 0.6; filter: blur(10px); }
  100% { opacity: 0.4; filter: blur(8px); }
}

.scn-sympathy-for-olinto { background: linear-gradient(180deg, #2a1e12 0%, #3d2a1a 40%, #4a3622 70%, #2a1e12 100%); }
.scn-sympathy-for-olinto .sky { position:absolute; inset:0 0 55% 0; background: radial-gradient(ellipse at 50% 100%, #4a3622 0%, transparent 70%), linear-gradient(180deg, #1a1208 0%, #2a1e12 70%); animation: sfo-sky 20s ease-in-out infinite alternate; }
.scn-sympathy-for-olinto .street { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #1c140e 0%, #2e2016 40%, #3d2a1a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); animation: sfo-street 15s ease-in-out infinite; }
.scn-sympathy-for-olinto .lamp-pole { position:absolute; bottom:40%; left:30%; width:8px; height:60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: skewX(-2deg); }
.scn-sympathy-for-olinto .lamp-glow { position:absolute; bottom:38%; left:29%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.3); animation: sfo-lampglow 4s ease-in-out infinite alternate; }
.scn-sympathy-for-olinto .figure-one { position:absolute; bottom:18%; left:42%; width:16px; height:48px; background: linear-gradient(180deg, #2a1e12 0%, #1a1208 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sfo-walk1 5s ease-in-out infinite; }
.scn-sympathy-for-olinto .figure-two { position:absolute; bottom:18%; left:50%; width:16px; height:48px; background: linear-gradient(180deg, #2a1e12 0%, #1a1208 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sfo-walk2 5.2s ease-in-out infinite 0.5s; }
.scn-sympathy-for-olinto .shadow-street { position:absolute; bottom:15%; left:30%; right:10%; height:20px; background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,.4) 0%, transparent 70%); filter: blur(4px); animation: sfo-shadow 6s ease-in-out infinite alternate; }
@keyframes sfo-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sfo-street { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sfo-lampglow { 0% { box-shadow: 0 0 20px 5px #c08040; opacity:.8 } 50% { box-shadow: 0 0 40px 15px #ffd080; opacity:1 } 100% { box-shadow: 0 0 25px 8px #c08040; opacity:.85 } }
@keyframes sfo-walk1 { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(24px) rotate(1deg) } 100% { transform: translateX(32px) rotate(0) } }
@keyframes sfo-walk2 { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-8px) rotate(2deg) } 50% { transform: translateX(-16px) rotate(-1deg) } 75% { transform: translateX(-24px) rotate(1deg) } 100% { transform: translateX(-32px) rotate(0) } }
@keyframes sfo-shadow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.3; transform: scale(.9) } 100% { opacity:.5; transform: scale(1) } }

.scn-olinto-wants-cigars { background: linear-gradient(180deg, #1c140e 0%, #2a1e12 50%, #1c140e 100%), radial-gradient(ellipse at 50% 80%, #2a1e12 0%, transparent 80%); }
.scn-olinto-wants-cigars .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #3d2a1a 0%, #2a1e12 60%, #1a1208 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: owc-wall 12s ease-in-out infinite alternate; }
.scn-olinto-wants-cigars .table { position:absolute; bottom:20%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #4a3622 0%, #3a2a1a 100%); border-radius: 8% / 15%; box-shadow: 0 -4px 12px rgba(0,0,0,.4); animation: owc-table 8s ease-in-out infinite; }
.scn-olinto-wants-cigars .hand-cigar { position:absolute; bottom:30%; left:45%; width:20px; height:32px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: owc-hand 4s ease-in-out infinite; }
.scn-olinto-wants-cigars .cigar-tip { position:absolute; bottom:36%; left:48%; width:8px; height:12px; background: radial-gradient(circle, #ffa040 0%, #c07030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 16px 6px #c07030, 0 0 32px 12px rgba(192,112,48,.3); animation: owc-cigar 2s ease-in-out infinite alternate; }
.scn-olinto-wants-cigars .smoke { position:absolute; bottom:44%; left:46%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,160,100,.15) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); }
.scn-olinto-wants-cigars .swirl-a { animation: owc-smoke1 6s linear infinite; }
.scn-olinto-wants-cigars .swirl-b { animation: owc-smoke2 7s linear infinite 1s; bottom:40%; left:50%; width:20px; height:20px; }
.scn-olinto-wants-cigars .chair-back { position:absolute; bottom:30%; right:18%; width:12px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%); border-radius: 2px; transform: skewX(5deg); animation: owc-chair 10s ease-in-out infinite alternate; }
@keyframes owc-wall { 0% { background-position: 0% 0% } 50% { background-position: 100% 50% } 100% { background-position: 0% 0% } }
@keyframes owc-table { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes owc-hand { 0% { transform: translateY(0) rotate(-5deg) } 30% { transform: translateY(-4px) rotate(3deg) } 60% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes owc-cigar { 0% { opacity:.6; box-shadow: 0 0 12px 4px #c07030 } 50% { opacity:1; box-shadow: 0 0 24px 8px #ffa040 } 100% { opacity:.7; box-shadow: 0 0 16px 5px #c07030 } }
@keyframes owc-smoke1 { 0% { transform: translateY(0) scale(.8); opacity:.6 } 50% { transform: translateY(-40px) scale(1.2); opacity:.3 } 100% { transform: translateY(-80px) scale(1.5); opacity:0 } }
@keyframes owc-smoke2 { 0% { transform: translateY(0) scale(.8); opacity:.5 } 50% { transform: translateY(-30px) scale(1.1); opacity:.2 } 100% { transform: translateY(-60px) scale(1.3); opacity:0 } }
@keyframes owc-chair { 0% { transform: skewX(5deg) } 50% { transform: skewX(-3deg) } 100% { transform: skewX(5deg) } }

.scn-armida-illness { background: linear-gradient(180deg, #1a1208 0%, #2a1e12 40%, #1c140e 100%), radial-gradient(ellipse at 50% 100%, #2a1e12 0%, transparent 70%); }
.scn-armida-illness .room-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #3d2a1a 0%, #2a1e12 70%, #1a1208 100%); border-radius: 0 0 30% 30% / 0 0 15% 15%; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); animation: ari-wall 18s ease-in-out infinite alternate; }
.scn-armida-illness .bed-frame { position:absolute; bottom:10%; left:15%; right:25%; height:40%; background: linear-gradient(180deg, #4a3622 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.5); animation: ari-bed 12s ease-in-out infinite; }
.scn-armida-illness .figure-lying { position:absolute; bottom:14%; left:20%; right:20%; height:14%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e12 100%); border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%; transform-origin: bottom center; animation: ari-figure 8s ease-in-out infinite alternate; }
.scn-armida-illness .pillow { position:absolute; bottom:24%; left:25%; width:24px; height:14px; background: linear-gradient(180deg, #5a4a3a 0%, #4a3622 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ari-pillow 10s ease-in-out infinite; }
.scn-armida-illness .bedside-lamp { position:absolute; bottom:20%; right:12%; width:10px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; transform: skewX(-3deg); }
.scn-armida-illness .lamp-glow { position:absolute; bottom:24%; right:10%; width:24px; height:24px; background: radial-gradient(circle, #e0a060 0%, #b07030 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #b07030, 0 0 50px 20px rgba(176,112,48,.3); animation: ari-lampglow 4s ease-in-out infinite alternate; }
.scn-armida-illness .curtain { position:absolute; top:0; left:0; width:30%; height:80%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3622 50%, #3a2a1a 100%); border-radius: 0 30% 30% 0 / 0 50% 50% 0; box-shadow: 5px 0 15px rgba(0,0,0,.4); animation: ari-curtain 20s ease-in-out infinite alternate; animation-delay: -5s; }
@keyframes ari-wall { 0% { background-position: 0% 0% } 50% { background-position: 100% 50% } 100% { background-position: 0% 0% } }
@keyframes ari-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ari-figure { 0% { transform: scaleX(1) } 50% { transform: scaleX(.95) translateY(2px) } 100% { transform: scaleX(1) } }
@keyframes ari-pillow { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ari-lampglow { 0% { box-shadow: 0 0 20px 5px #b07030; opacity:.8 } 50% { box-shadow: 0 0 40px 15px #e0a060; opacity:1 } 100% { box-shadow: 0 0 25px 8px #b07030; opacity:.85 } }
@keyframes ari-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }

.scn-decision-to-visit { background: linear-gradient(180deg, #1a1208 0%, #2a1e12 50%, #1c140e 100%); }
.scn-decision-to-visit .door-frame { position:absolute; left:50%; top:5%; bottom:10%; width:40%; transform: translateX(-50%); background: linear-gradient(135deg, #4a3622 0%, #3a2a1a 60%, #2a1e12 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.6); animation: dtv-door 15s ease-in-out infinite alternate; }
.scn-decision-to-visit .door-light { position:absolute; left:50%; bottom:12%; width:20%; height:30%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #e0a060 0%, #b07030 50%, transparent 80%); box-shadow: 0 0 40px 20px rgba(176,112,48,.3); animation: dtv-light 5s ease-in-out infinite alternate; }
.scn-decision-to-visit .hand-doorknob { position:absolute; left:50%; bottom:32%; width:12px; height:18px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: dtv-hand 3s ease-in-out infinite; }
.scn-decision-to-visit .coat-peg { position:absolute; left:58%; top:5%; width:6px; height:12px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; }
.scn-decision-to-visit .hat-silhouette { position:absolute; left:56%; top:10%; width:24px; height:10px; background: radial-gradient(ellipse at 50% 100%, #2a1e12 0%, transparent 100%); border-radius: 50%; transform: rotate(10deg); animation: dtv-hat 8s ease-in-out infinite alternate; }
.scn-decision-to-visit .floor-shadow { position:absolute; bottom:0; left:10%; right:10%; height:8%; background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: dtv-shadow 10s ease-in-out infinite alternate; }
@keyframes dtv-door { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes dtv-light { 0% { opacity:.3; box-shadow: 0 0 20px 10px rgba(176,112,48,.2) } 50% { opacity:.6; box-shadow: 0 0 40px 25px rgba(176,112,48,.4) } 100% { opacity:.3; box-shadow: 0 0 20px 10px rgba(176,112,48,.2) } }
@keyframes dtv-hand { 0% { transform: translateX(-50%) translateY(0) rotate(-3deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(0) } 50% { transform: translateX(-50%) translateY(0) rotate(3deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(0) } 100% { transform: translateX(-50%) translateY(0) rotate(-3deg) } }
@keyframes dtv-hat { 0% { transform: rotate(10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(10deg) } }
@keyframes dtv-shadow { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.3; transform: scaleX(.8) } 100% { opacity:.5; transform: scaleX(1) } }

/* scene: electric-trap */
.scn-electric-trap {
  background:
    linear-gradient(90deg, #1e1a1c 0%, #2b2526 30%, #1e1a1c 70%, #151213 100%),
    radial-gradient(circle at 70% 60%, #3a2a22 0%, transparent 60%),
    linear-gradient(180deg, #0d0b0a 0%, #1a1616 100%);
}
.scn-electric-trap .wall-bg {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(135deg, #2f2829 0%, #1e1a1b 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-electric-trap .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a2220 0%, #171312 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-electric-trap .chair {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 90px;
  transform: translateX(-50%);
  background:
    linear-gradient(180deg, #3a2f2b 0%, #1a1614 100%);
  border-radius: 6% 6% 30% 30% / 8% 8% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,.7);
  animation: et-chair 8s ease-in-out infinite;
}
.scn-electric-trap .wire-left {
  position: absolute; bottom: 30%; left: 38%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #8a7050 100%);
  transform-origin: top left;
  box-shadow: 0 0 2px rgba(180,140,80,.2);
  animation: et-wire-tremble 1.5s ease-in-out infinite;
}
.scn-electric-trap .wire-right {
  position: absolute; bottom: 30%; left: 62%; width: 2px; height: 35px;
  background: linear-gradient(180deg, #5a4a3a 0%, #7a6040 100%);
  transform-origin: top right;
  box-shadow: 0 0 2px rgba(160,120,60,.2);
  animation: et-wire-tremble 1.8s ease-in-out infinite reverse;
}
.scn-electric-trap .lamp-glow {
  position: absolute; top: 20%; left: 65%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8a060 0%, #844820 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(180,120,40,.5);
  animation: et-lamp-flicker 2s ease-in-out infinite;
}
.scn-electric-trap .shadow-figure {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 130px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: et-shadow-pulse 4s ease-in-out infinite;
}
@keyframes et-chair {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(-0.5deg) translateY(-1px); }
}
@keyframes et-wire-tremble {
  0% { transform: rotate(0deg) translateX(0); }
  30% { transform: rotate(1deg) translateX(1px); }
  60% { transform: rotate(-1.5deg) translateX(-0.5px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes et-lamp-flicker {
  0% { opacity: .7; transform: scale(1); }
  20% { opacity: 1; transform: scale(1.05); }
  40% { opacity: .8; transform: scale(.95); }
  60% { opacity: .9; transform: scale(1.02); }
  100% { opacity: .7; transform: scale(1); }
}
@keyframes et-shadow-pulse {
  0%, 100% { opacity: .3; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.05); }
}

/* scene: escape-urged */
.scn-escape-urged {
  background:
    linear-gradient(135deg, #1d1a1c 0%, #2a2426 40%, #1a1618 100%),
    radial-gradient(ellipse at 50% 30%, #3a2e2a 0%, transparent 70%);
}
.scn-escape-urged .wall-bg-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #121011 0%, #1e1a1c 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.7);
}
.scn-escape-urged .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1e1a1a 0%, #0d0b0b 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
}
.scn-escape-urged .wire-hazard {
  position: absolute; bottom: 35%; left: 20%; width: 60%; height: 1px;
  background: linear-gradient(90deg, #7a6040 0%, #9a7a50 50%, #7a6040 100%);
  box-shadow: 0 0 4px #8a6a48;
  animation: eu-wire-sweep 3s ease-in-out infinite;
}
.scn-escape-urged .figure-rigid {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2224 0%, #121010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eu-figure-tremor 2s ease-in-out infinite;
}
.scn-escape-urged .door-frame {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 90%;
  border: 4px solid #3a2e2c;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  background: transparent;
  animation: eu-door-breathe 6s ease-in-out infinite;
}
.scn-escape-urged .light-leak {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,140,80,.15) 0%, transparent 70%);
  opacity: .3;
  animation: eu-light-pulse 4s ease-in-out infinite;
}
.scn-escape-urged .crack {
  position: absolute; bottom: 30%; left: 48%; width: 4px; height: 10px;
  background: #4a3a32;
  transform: rotate(15deg);
  animation: eu-crack-spark 5s ease-in-out infinite;
}
@keyframes eu-wire-sweep {
  0%, 100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
}
@keyframes eu-figure-tremor {
  0% { transform: translateY(0) rotate(-0.5deg); }
  30% { transform: translateY(-1px) rotate(0.5deg); }
  60% { transform: translateY(0.5px) rotate(-0.3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes eu-door-breathe {
  0%, 100% { transform: scaleY(1) rotate(0); }
  50% { transform: scaleY(1.01) rotate(0.2deg); }
}
@keyframes eu-light-pulse {
  0% { opacity: .2; }
  50% { opacity: .4; }
  100% { opacity: .2; }
}
@keyframes eu-crack-spark {
  0% { opacity: .5; transform: rotate(15deg) scaleY(1); }
  50% { opacity: 1; transform: rotate(13deg) scaleY(1.5); }
  100% { opacity: .5; transform: rotate(15deg) scaleY(1); }
}

/* scene: flight */
.scn-flight {
  background:
    linear-gradient(90deg, #1a1618 0%, #221e20 30%, #1a1618 70%, #100e0f 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a28 0%, transparent 70%);
}
.scn-flight .hallway-left {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, #0f0d0e 0%, #1a1617 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,.5);
}
.scn-flight .hallway-right {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, #1a1617 0%, #0f0d0e 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,.5);
}
.scn-flight .door-ajar {
  position: absolute; top: 20%; left: 35%; width: 30%; height: 50%;
  border: 6px solid #2e2426;
  border-radius: 0 8px 8px 0;
  background: #1a1415;
  transform-origin: left center;
  animation: fl-door-swing 2s ease-in-out infinite alternate;
}
.scn-flight .runner {
  position: absolute; bottom: 15%; left: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1e20 0%, #121010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fl-run 1.2s steps(6) infinite;
}
.scn-flight .revolver-flash {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #c88a40 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,138,64,.4);
  opacity: 0;
  animation: fl-flash 2s ease-in-out infinite;
}
.scn-flight .running-shadow {
  position: absolute; bottom: 5%; left: 15%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: fl-shadow 1.2s steps(6) infinite;
}
.scn-flight .exit-glow {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 80%;
  background: linear-gradient(180deg, rgba(200,170,100,.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: fl-exit 8s ease-in-out infinite;
}
@keyframes fl-door-swing {
  0% { transform: rotateY(0deg); }
  100% { transform: rotateY(-20deg); }
}
@keyframes fl-run {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  16% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  33% { transform: translateX(16px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(24px) translateY(0) rotate(0deg); }
  66% { transform: translateX(32px) translateY(-2px) rotate(-1deg); }
  83% { transform: translateX(40px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(48px) translateY(0) rotate(0deg); }
}
@keyframes fl-flash {
  0%, 90%, 100% { opacity: 0; transform: scale(1); }
  92% { opacity: 1; transform: scale(1.3); }
  96% { opacity: .8; transform: scale(1.1); }
}
@keyframes fl-shadow {
  0% { transform: translateX(0) scaleX(1); }
  16% { transform: translateX(8px) scaleX(1.05); }
  33% { transform: translateX(16px) scaleX(.95); }
  50% { transform: translateX(24px) scaleX(1); }
  66% { transform: translateX(32px) scaleX(1.05); }
  83% { transform: translateX(40px) scaleX(.95); }
  100% { transform: translateX(48px) scaleX(1); }
}
@keyframes fl-exit {
  0%, 100% { opacity: .2; transform: scaleY(1); }
  50% { opacity: .4; transform: scaleY(1.15); }
}

/* scene: escape-from-house */
.scn-escape-from-house {
  background:
    linear-gradient(90deg, #0c0a0b 0%, #1a1617 30%, #0c0a0b 100%),
    radial-gradient(ellipse at 50% 30%, #2e2224 0%, transparent 70%);
}
.scn-escape-from-house .corridor-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #080607 0%, #141112 100%);
  clip-path: polygon(0 0, 100% 5%, 100% 95%, 0 100%);
}
.scn-escape-from-house .corridor-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #141112 0%, #080607 100%);
  clip-path: polygon(0 5%, 100% 0, 100% 100%, 0 95%);
}
.scn-escape-from-house .floor-narrow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #1a1615 0%, #0d0b0a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-escape-from-house .silhouette-running {
  position: absolute; bottom: 12%; left: 25%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1e1415 0%, #0e0a0b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ef-run-fast 1s steps(5) infinite;
}
.scn-escape-from-house .attacker-shadow {
  position: absolute; bottom: 12%; right: 30%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: ef-attacker-lunge 3s ease-in-out infinite;
}
.scn-escape-from-house .gunshot-burst {
  position: absolute; bottom: 30%; left: 20%; width: 15px; height: 15px;
  background: radial-gradient(circle, #ffd080 0%, #c88a40 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,138,64,.5);
  opacity: 0;
  animation: ef-burst 2s ease-in-out infinite;
}
.scn-escape-from-house .exit-light {
  position: absolute; top: 10%; left: 40%; right: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,160,120,.12) 0%, transparent 70%);
  filter: blur(20px);
  animation: ef-exit-pulse 6s ease-in-out infinite;
}
@keyframes ef-run-fast {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  20% { transform: translateX(10px) translateY(-3px) rotate(4deg); }
  40% { transform: translateX(20px) translateY(-2px) rotate(3deg); }
  60% { transform: translateX(30px) translateY(0) rotate(2deg); }
  80% { transform: translateX(40px) translateY(-3px) rotate(4deg); }
  100% { transform: translateX(50px) translateY(0) rotate(2deg); }
}
@keyframes ef-attacker-lunge {
  0%, 100% { transform: translateX(0) scaleX(1); opacity: .3; }
  50% { transform: translateX(-15px) scaleX(1.1); opacity: .5; }
}
@keyframes ef-burst {
  0%, 80%, 100% { opacity: 0; transform: scale(1); }
  85% { opacity: 1; transform: scale(1.5); }
  90% { opacity: .6; transform: scale(1.2); }
}
@keyframes ef-exit-pulse {
  0%, 100% { opacity: .15; transform: scaleY(1); }
  50% { opacity: .3; transform: scaleY(1.1); }
}

/* detective-theory */
.scn-detective-theory {
  background: linear-gradient(180deg, #e8d8b8 0%, #d4c0a0 30%, #8a7050 100%), 
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-detective-theory .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); }
.scn-detective-theory .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #705840 0%, #4a3a2a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,0.4); }
.scn-detective-theory .desk { position:absolute; bottom:18%; left:20%; width:40%; height:8%; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-detective-theory .lamp { position:absolute; bottom:24%; left:30%; width:12px; height:16px; background: linear-gradient(180deg, #c0a060 0%, #907040 100%); border-radius: 4px 4px 2px 2px; transform: rotate(-5deg); }
.scn-detective-theory .lamp-glow { position:absolute; bottom:22%; left:28%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(255,220,140,0.6) 0%, transparent 70%); border-radius: 50%; animation: dt-glow 2s ease-in-out infinite alternate; }
.scn-detective-theory .detective { position:absolute; bottom:14%; left:15%; width:24px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dt-tremble 1.5s ease-in-out infinite; }
.scn-detective-theory .suspect { position:absolute; bottom:16%; right:20%; width:22px; height:48px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dt-tremble 1.8s ease-in-out infinite 0.3s; }
.scn-detective-theory .window { position:absolute; top:8%; right:10%; width:60px; height:70px; background: radial-gradient(ellipse at center, rgba(200,180,150,0.3) 0%, transparent 70%); border: 3px solid #5a4a3a; border-radius: 4px; animation: dt-window 6s ease-in-out infinite; }
@keyframes dt-glow { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(1.05); } }
@keyframes dt-tremble { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dt-window { 0% { opacity:0.6; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); } 50% { opacity:0.8; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } 100% { opacity:0.6; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); } }

/* querying-movements */
.scn-querying-movements {
  background: linear-gradient(180deg, #e0d0b0 0%, #c8b898 40%, #7a6240 100%), 
              radial-gradient(ellipse at 30% 100%, #5a4a2a 0%, transparent 70%);
}
.scn-querying-movements .wall { position:absolute; inset:0 0 28% 0; background: linear-gradient(180deg, #c0b090 0%, #a89878 100%); }
.scn-querying-movements .floor { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #685030 0%, #3a2a1a 100%); box-shadow: inset 0 6px 10px rgba(0,0,0,0.5); }
.scn-querying-movements .table { position:absolute; bottom:16%; left:25%; width:50%; height:10%; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%); border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-querying-movements .map { position:absolute; bottom:20%; left:30%; width:30%; height:12%; background: linear-gradient(135deg, #d4b890 0%, #b89870 100%); border-radius: 2px; transform: rotate(-4deg); box-shadow: inset 0 0 4px rgba(0,0,0,0.3); animation: qm-map 10s ease-in-out infinite alternate; }
.scn-querying-movements .rifle { position:absolute; bottom:20%; left:20%; width:40px; height:8px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 4px; transform: rotate(30deg); transform-origin: left center; animation: qm-rifle 4s ease-in-out infinite; }
.scn-querying-movements .detective { position:absolute; bottom:12%; left:18%; width:26px; height:52px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: qm-stance 2s ease-in-out infinite; }
.scn-querying-movements .chair { position:absolute; bottom:14%; right:25%; width:20px; height:15px; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; transform: scale(0.9); }
.scn-querying-movements .clock { position:absolute; top:6%; left:10%; width:24px; height:24px; background: radial-gradient(circle, #d4c0a0 30%, #8a7050 70%); border-radius: 50%; border: 2px solid #5a4a3a; animation: qm-clock 60s linear infinite; }
@keyframes qm-map { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes qm-rifle { 0% { transform: rotate(30deg); } 50% { transform: rotate(33deg); } 100% { transform: rotate(30deg); } }
@keyframes qm-stance { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes qm-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* detective-speculates */
.scn-detective-speculates {
  background: linear-gradient(180deg, #d8c8a8 0%, #c0b090 30%, #6a5a3a 100%), 
              radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-detective-speculates .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b8a888 0%, #a09078 100%); }
.scn-detective-speculates .board { position:absolute; top:12%; left:15%; width:60%; height:40%; background: linear-gradient(180deg, #b8a888 0%, #9a8878 100%); border: 3px solid #5a4a3a; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); animation: ds-board 12s ease-in-out infinite; }
.scn-detective-speculates .pin-a { position:absolute; top:20%; left:30%; width:8px; height:8px; background: radial-gradient(circle, #c85030 0%, #a04020 100%); border-radius: 50%; box-shadow: 0 0 4px rgba(200,80,48,0.6); animation: ds-pin 3s ease-in-out infinite; }
.scn-detective-speculates .pin-b { position:absolute; top:35%; left:45%; width:8px; height:8px; background: radial-gradient(circle, #c85030 0%, #a04020 100%); border-radius: 50%; box-shadow: 0 0 4px rgba(200,80,48,0.6); animation: ds-pin 3s ease-in-out infinite 1.5s; }
.scn-detective-speculates .lamp-glow { position:absolute; bottom:25%; right:10%; width:50px; height:35px; background: radial-gradient(ellipse, rgba(255,210,120,0.5) 0%, transparent 70%); border-radius: 50%; animation: ds-glow 2.5s ease-in-out infinite alternate; }
.scn-detective-speculates .detective { position:absolute; bottom:14%; left:20%; width:24px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ds-point 1.8s ease-in-out infinite; }
.scn-detective-speculates .foreigner { position:absolute; bottom:16%; right:20%; width:22px; height:48px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ds-stand 4s ease-in-out infinite; }
.scn-detective-speculates .paper { position:absolute; bottom:16%; left:35%; width:20px; height:26px; background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%); transform: rotate(6deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: ds-paper 6s ease-in-out infinite; }
@keyframes ds-board { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ds-pin { 0%,100% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.3); opacity:1; } }
@keyframes ds-glow { 0% { opacity:0.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes ds-point { 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 ds-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ds-paper { 0% { transform: rotate(6deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(6deg) translateY(0); } }

/* second-victim-mystery */
.scn-second-victim-mystery {
  background: linear-gradient(180deg, #d0c4a8 0%, #b8a888 40%, #5a4a2a 100%), 
              radial-gradient(ellipse at 50% 0%, #8a7a5a 0%, transparent 60%);
}
.scn-second-victim-mystery .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); box-shadow: inset 0 10px 15px rgba(0,0,0,0.6); }
.scn-second-victim-mystery .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8a888 0%, #9a8878 100%); }
.scn-second-victim-mystery .outline { position:absolute; bottom:12%; left:30%; width:20%; height:30%; background: rgba(0,0,0,0.15); border: 2px dashed #3a2a1a; border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; animation: sv-outline 8s ease-in-out infinite; }
.scn-second-victim-mystery .detective { position:absolute; bottom:14%; left:20%; width:26px; height:52px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sv-crouch 3s ease-in-out infinite; }
.scn-second-victim-mystery .clipboard { position:absolute; bottom:22%; left:32%; width:18px; height:24px; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); transform: rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: sv-clip 5s ease-in-out infinite; }
.scn-second-victim-mystery .window { position:absolute; top:8%; right:12%; width:50px; height:60px; background: radial-gradient(ellipse at center, rgba(200,180,150,0.4) 0%, transparent 70%); border: 3px solid #5a4a3a; border-radius: 4px; animation: sv-window 8s ease-in-out infinite; }
.scn-second-victim-mystery .lamp-glow { position:absolute; top:24%; left:10%; width:40px; height:30px; background: radial-gradient(ellipse, rgba(255,220,140,0.5) 0%, transparent 70%); border-radius: 50%; animation: sv-glow 2s ease-in-out infinite alternate; }
@keyframes sv-outline { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.02); } 100% { opacity:0.3; transform: scale(1); } }
@keyframes sv-crouch { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(2deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sv-clip { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes sv-window { 0% { opacity:0.5; box-shadow: inset 0 0 8px rgba(0,0,0,0.3); } 50% { opacity:0.7; box-shadow: inset 0 0 16px rgba(0,0,0,0.5); } 100% { opacity:0.5; box-shadow: inset 0 0 8px rgba(0,0,0,0.3); } }
@keyframes sv-glow { 0% { opacity:0.6; transform: scale(1); } 100% { opacity:1; transform: scale(1.15); } }

/* palace-oberg-face */
.scn-palace-oberg-face { background: linear-gradient(135deg, #f5e6c8 0%, #d4b896 40%, #b89a7a 100%), radial-gradient(ellipse at 70% 30%, #fff3d6 0%, transparent 60%); }
.scn-palace-oberg-face .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8d5b0 0%, #c8ae88 100%); box-shadow: inset 0 0 120px rgba(0,0,0,.15); }
.scn-palace-oberg-face .shadow-stripe { position:absolute; top:0; right:0; width:32%; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); mask-image: linear-gradient(90deg, transparent 0%, #000 40%); -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 40%); animation: pof-shadow 6s ease-in-out infinite alternate; }
.scn-palace-oberg-face .figure-profile { position:absolute; right:12%; top:18%; width:16%; height:62%; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 60%, #3a2a1a 100%); border-radius: 40% 60% 50% 30% / 60% 70% 40% 40%; transform: scaleX(-1); box-shadow: -8px 0 20px rgba(0,0,0,.3); animation: pof-breathe 4s ease-in-out infinite; }
.scn-palace-oberg-face .eye-glint { position:absolute; right:20%; top:42%; width:4px; height:4px; background: radial-gradient(circle, #fff 0%, #ccc 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,255,200,.6); animation: pof-glint 3s ease-in-out infinite; }
.scn-palace-oberg-face .jaw-shadow { position:absolute; right:14%; top:58%; width:10%; height:3px; background: rgba(20,10,0,.6); border-radius:50%; filter: blur(2px); animation: pof-jaw 4s ease-in-out infinite; }
.scn-palace-oberg-face .collar { position:absolute; right:15%; bottom:20%; width:14%; height:10%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-palace-oberg-face .lamp-glow { position:absolute; left:10%; top:15%; width:80px; height:80px; background: radial-gradient(circle, #fff0c0 0%, #d4b080 30%, transparent 70%); border-radius:50%; filter: blur(8px); animation: pof-lamp 5s ease-in-out infinite alternate; }
.scn-palace-oberg-face .lamp-arm { position:absolute; left:11%; top:18%; width:2px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); transform: rotate(-15deg); transform-origin: top center; }
@keyframes pof-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes pof-breathe { 0% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(-2px) } 100% { transform: scaleX(-1) translateY(0) } }
@keyframes pof-glint { 0% { opacity:.6; transform:scale(1) } 50% { opacity:1; transform:scale(1.3) } 100% { opacity:.7; transform:scale(.9) } }
@keyframes pof-jaw { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(1px) scaleX(1.05) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes pof-lamp { 0% { opacity:.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.8; transform:scale(.95) } }

/* palace-oberg-snap */
.scn-palace-oberg-snap { background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 40%, #b09878 100%), radial-gradient(ellipse at 30% 80%, #fff3d6 0%, transparent 50%); }
.scn-palace-oberg-snap .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8d5b8 0%, #c8b098 50%, #a89078 100%); }
.scn-palace-oberg-snap .desk-edge { position:absolute; bottom:20%; left:0; right:0; height:18%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.3); }
.scn-palace-oberg-snap .figure-oberg { position:absolute; left:15%; bottom:22%; width:20%; height:58%; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 80%, #3a2a1a 100%); border-radius: 30% 40% 20% 20% / 50% 60% 30% 30%; box-shadow: 4px 0 12px rgba(0,0,0,.3); animation: pos-fig 4s ease-in-out infinite; }
.scn-palace-oberg-snap .hand-snap { position:absolute; left:28%; top:40%; width:16px; height:10px; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: pos-snap .8s ease-in-out infinite; }
.scn-palace-oberg-snap .figure-narrator { position:absolute; right:18%; bottom:22%; width:16%; height:54%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a0a 80%, #2a1a0a 100%); border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%; box-shadow: -4px 0 10px rgba(0,0,0,.2); animation: pos-narr 4s ease-in-out infinite .5s; }
.scn-palace-oberg-snap .shadow-diagonal { position:absolute; top:0; right:0; width:100%; height:100%; background: linear-gradient(135deg, transparent 50%, rgba(0,0,0,.12) 100%); pointer-events:none; animation: pos-diag 6s ease-in-out infinite alternate; }
.scn-palace-oberg-snap .window-light { position:absolute; top:8%; right:8%; width:100px; height:130px; background: linear-gradient(135deg, #fff8e0 0%, #e8d8b0 50%, #d0c0a0 100%); border-radius: 10% 10% 40% 40%; box-shadow: 0 0 60px 20px rgba(255,248,224,.3); opacity:.3; animation: pos-window 8s ease-in-out infinite alternate; }
@keyframes pos-fig { 0% { transform:translateX(0) } 50% { transform:translateX(2px) } 100% { transform:translateX(0) } }
@keyframes pos-snap { 0% { transform: rotate(-20deg) scale(1) } 50% { transform: rotate(-35deg) scale(1.1) } 100% { transform: rotate(-20deg) scale(1) } }
@keyframes pos-narr { 0% { transform:translateX(0) translateY(0) } 50% { transform:translateX(-2px) translateY(-2px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes pos-diag { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes pos-window { 0% { opacity:.2; transform:scale(1) } 50% { opacity:.5; transform:scale(1.05) } 100% { opacity:.3; transform:scale(.98) } }

/* palace-oberg-panic */
.scn-palace-oberg-panic { background: linear-gradient(135deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0a 100%), radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, transparent 70%); }
.scn-palace-oberg-panic .panel-wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); }
.scn-palace-oberg-panic .secret-door { position:absolute; right:8%; top:12%; width:18%; height:70%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 10% 0 0 10%; box-shadow: -8px 0 20px rgba(0,0,0,.5); transform-origin: right center; animation: pop-door 6s ease-in-out infinite; }
.scn-palace-oberg-panic .door-shadow { position:absolute; right:8%; top:12%; width:18%; height:70%; background: rgba(0,0,0,.4); filter: blur(6px); transform-origin: right center; animation: pop-ds 6s ease-in-out infinite; }
.scn-palace-oberg-panic .guard-figure { position:absolute; right:12%; bottom:20%; width:14%; height:54%; background: linear-gradient(90deg, #1a1a1a 0%, #0a0a0a 50%, #1a1a1a 100%); border-radius: 30% 40% 20% 20% / 50% 60% 30% 30%; box-shadow: -4px 0 12px rgba(0,0,0,.4); animation: pop-guard 6s ease-in-out infinite .3s; }
.scn-palace-oberg-panic .chair-back { position:absolute; left:15%; bottom:24%; width:28%; height:30%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-palace-oberg-panic .button-hand { position:absolute; left:30%; top:30%; width:12px; height:8px; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-10deg); animation: pop-hand 4s ease-in-out infinite; }
.scn-palace-oberg-panic .electric-spark { position:absolute; left:31%; top:28%; width:6px; height:6px; background: radial-gradient(circle, #ffe080 0%, #d4a040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,224,128,.6); animation: pop-spark 1.5s ease-in-out infinite; }
.scn-palace-oberg-panic .floor-tile { position:absolute; bottom:18%; left:0; right:0; height:6%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 40px, #3a2a1a 40px, #3a2a1a 80px); opacity:.3; }
@keyframes pop-door { 0% { transform:scaleX(0) } 30% { transform:scaleX(.3) } 50% { transform:scaleX(.8) } 70% { transform:scaleX(1) } 100% { transform:scaleX(0) } }
@keyframes pop-ds { 0% { opacity:0 } 30% { opacity:.3 } 50% { opacity:.8 } 70% { opacity:1 } 100% { opacity:0 } }
@keyframes pop-guard { 0% { opacity:0; transform:translateX(20px) } 30% { opacity:.3; transform:translateX(5px) } 50% { opacity:.8; transform:translateX(0) } 70% { opacity:1; transform:translateX(0) } 100% { opacity:0; transform:translateX(20px) } }
@keyframes pop-hand { 0%,100% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(3px) } }
@keyframes pop-spark { 0%,100% { opacity:.3; transform:scale(1) } 50% { opacity:1; transform:scale(1.5) } }

/* palace-accusation-assassin */
.scn-palace-accusation-assassin { background: linear-gradient(135deg, #f5e8d0 0%, #d4c0a0 40%, #b89878 100%), radial-gradient(ellipse at 50% 20%, #fff8e8 0%, transparent 60%); }
.scn-palace-accusation-assassin .chamber-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8c0 0%, #c8b098 50%, #a89078 100%); }
.scn-palace-accusation-assassin .column-left { position:absolute; left:5%; top:0; width:8%; height:100%; background: linear-gradient(90deg, #b09878 0%, #d0b898 30%, #b09878 70%, #8a7058 100%); border-radius: 10% 0 0 10%; box-shadow: 4px 0 20px rgba(0,0,0,.1); }
.scn-palace-accusation-assassin .column-right { position:absolute; right:5%; top:0; width:8%; height:100%; background: linear-gradient(90deg, #8a7058 0%, #b09878 30%, #d0b898 70%, #b09878 100%); border-radius: 0 10% 10% 0; box-shadow: -4px 0 20px rgba(0,0,0,.1); }
.scn-palace-accusation-assassin .figure-accuser { position:absolute; left:22%; bottom:18%; width:18%; height:60%; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 40%, #6a5a4a 80%, #5a4a3a 100%); border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%; box-shadow: 4px 0 16px rgba(0,0,0,.2); animation: poa-accuse 5s ease-in-out infinite; }
.scn-palace-accusation-assassin .figure-accused { position:absolute; right:22%; bottom:18%; width:16%; height:56%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a0a 80%, #2a1a0a 100%); border-radius: 30% 40% 20% 20% / 50% 60% 30% 30%; box-shadow: -4px 0 12px rgba(0,0,0,.3); animation: poa-accused 5s ease-in-out infinite .5s; }
.scn-palace-accusation-assassin .desk-heavy { position:absolute; bottom:15%; left:38%; right:38%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.3); }
.scn-palace-accusation-assassin .document-scatter { position:absolute; bottom:17%; left:42%; width:60px; height:4px; background: #e8d8b0; border-radius:2px; box-shadow: 12px -6px 0 #e0d0a8, -6px 4px 0 #d8c8a0, 8px 8px 0 #e0d0a8; transform: rotate(-3deg); animation: poa-papers 8s ease-in-out infinite; }
.scn-palace-accusation-assassin .chandelier-glow { position:absolute; top:2%; left:50%; width:140px; height:100px; background: radial-gradient(ellipse, #fff8e0 0%, #f0d8b0 30%, #d0b890 60%, transparent 100%); transform:translateX(-50%); border-radius:50%; filter: blur(10px); animation: poa-chandelier 7s ease-in-out infinite alternate; }
@keyframes poa-accuse { 0% { transform:translateX(0) translateY(0) } 50% { transform:translateX(3px) translateY(-3px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes poa-accused { 0% { transform:translateX(0) translateY(0) rotate(0) } 50% { transform:translateX(-3px) translateY(-2px) rotate(-2deg) } 100% { transform:translateX(0) translateY(0) rotate(0) } }
@keyframes poa-papers { 0% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(-3deg) scale(1) } }
@keyframes poa-chandelier { 0% { opacity:.5; transform:translateX(-50%) scale(1) } 50% { opacity:.8; transform:translateX(-50%) scale(1.05) } 100% { opacity:.6; transform:translateX(-50%) scale(.98) } }

.scn-petersburg-kampf-address {
  background:
    linear-gradient(180deg, #1a1210 0%, #2d1f1a 40%, #3a2a20 70%, #1a1210 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%);
}
.scn-petersburg-kampf-address .p1-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1e18 0%, #1a1210 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-petersburg-kampf-address .p1-wall-shadow {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.4) 50%, transparent);
  animation: p1-shadow 6s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-address .p1-table {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-petersburg-kampf-address .p1-paper {
  position: absolute; bottom: 30%; left: 40%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #e8d8b8 0%, #c8b898 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: p1-paper 2s ease-in-out infinite;
}
.scn-petersburg-kampf-address .p1-hand {
  position: absolute; bottom: 24%; left: 35%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #c8a080 0%, #a07858 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: p1-hand 4s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-address .p1-lamp {
  position: absolute; top: 18%; left: 48%; width: 10%; height: 14%;
  background: radial-gradient(circle at 50% 80%, #f0c068 0%, #a06030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 10px rgba(200,120,60,0.5);
}
.scn-petersburg-kampf-address .p1-glow {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: radial-gradient(ellipse at center, rgba(200,120,60,0.2) 0%, transparent 70%);
  animation: p1-flicker 3s ease-in-out infinite;
}
.scn-petersburg-kampf-address .p1-door {
  position: absolute; right: 10%; bottom: 0; width: 18%; height: 70%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: p1-door 12s ease-in-out infinite;
}
@keyframes p1-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes p1-paper { 0%,100% { transform: rotate(4deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-2px) } }
@keyframes p1-hand { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes p1-flicker { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes p1-door { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-4px) } }

.scn-petersburg-spy-sighted {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #1a1a30 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a50 0%, transparent 60%);
}
.scn-petersburg-spy-sighted .p2-street-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #101020 0%, #1a1a30 50%, #101020 100%);
}
.scn-petersburg-spy-sighted .p2-lamp {
  position: absolute; top: 10%; left: 70%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #888 0%, #444 100%);
  border-radius: 20% 20% 0 0;
}
.scn-petersburg-spy-sighted .p2-lamp .p2-lampglow {
  position: absolute; top: 0; left: -100%; width: 300%; height: 200%;
  background: radial-gradient(circle at 50% 100%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: p2-glow 4s ease-in-out infinite alternate;
}
.scn-petersburg-spy-sighted .p2-cab {
  position: absolute; bottom: 15%; left: 5%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a10 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  animation: p2-cab-move 8s linear infinite;
}
.scn-petersburg-spy-sighted .p2-cab-horse {
  position: absolute; bottom: 20%; left: -10%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 30% 20% 20% / 40% 30% 30% 30%;
  animation: p2-horse-gallop 0.6s ease-in-out infinite;
}
.scn-petersburg-spy-sighted .p2-spy {
  position: absolute; bottom: 18%; right: 15%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: p2-spy-walk 3s ease-in-out infinite alternate;
}
.scn-petersburg-spy-sighted .p2-spy-shadow {
  position: absolute; bottom: 10%; right: 12%; width: 18%; height: 6%;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: p2-shadow 3s ease-in-out infinite alternate;
}
@keyframes p2-glow { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.3 } }
@keyframes p2-cab-move { 0% { left:-30% } 100% { left:110% } }
@keyframes p2-horse-gallop { 0%,100% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-3px) scaleY(0.95) } 50% { transform: translateY(0) scaleY(1) } 75% { transform: translateY(-2px) scaleY(0.97) } }
@keyframes p2-spy-walk { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(24px) rotate(-1deg) } }
@keyframes p2-shadow { 0% { width:18% } 50% { width:22% } 100% { width:18% } }

.scn-petersburg-countermove {
  background:
    linear-gradient(180deg, #0d0d18 0%, #151525 50%, #0d0d18 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a30 0%, transparent 60%);
}
.scn-petersburg-countermove .p3-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #12121f 0%, #1a1a2a 50%, #12121f 100%);
}
.scn-petersburg-countermove .p3-building-left {
  position: absolute; left: 0; top: 0; width: 30%; height: 80%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: p3-building 20s ease-in-out infinite;
}
.scn-petersburg-countermove .p3-building-right {
  position: absolute; right: 0; top: 0; width: 25%; height: 90%;
  background: linear-gradient(180deg, #222233 0%, #151525 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: p3-building 25s ease-in-out infinite reverse;
}
.scn-petersburg-countermove .p3-street {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-petersburg-countermove .p3-cab {
  position: absolute; bottom: 12%; left: 20%; width: 20%; height: 22%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a10 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  animation: p3-cab-race 6s ease-in-out infinite;
}
.scn-petersburg-countermove .p3-wheels {
  position: absolute; bottom: 6%; left: 22%; width: 8%; height: 8%;
  background: radial-gradient(circle, #555 0%, #222 100%);
  border-radius: 50%;
  box-shadow: 80px 0 0 0 #222;
  animation: p3-spin 1s linear infinite;
}
.scn-petersburg-countermove .p3-tail-light {
  position: absolute; bottom: 15%; left: 38%; width: 4%; height: 4%;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,85,61,0.5);
  animation: p3-tailblink 0.8s ease-in-out infinite alternate;
}
.scn-petersburg-countermove .p3-shadow {
  position: absolute; bottom: 8%; left: 18%; width: 30%; height: 6%;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(6px);
  animation: p3-shadow-move 6s ease-in-out infinite;
}
@keyframes p3-building { 0%,100% { opacity:0.8 } 50% { opacity:0.5 } }
@keyframes p3-cab-race { 0%,100% { transform: translateX(0) skewY(0) } 30% { transform: translateX(40px) skewY(2deg) } 60% { transform: translateX(-20px) skewY(-1deg) } }
@keyframes p3-spin { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes p3-tailblink { 0% { opacity:0.3 } 50% { opacity:1 } 100% { opacity:0.3 } }
@keyframes p3-shadow-move { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } }

.scn-petersburg-return-hotel {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #12122a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 40% 60%, #1a2a3a 0%, transparent 70%);
}
.scn-petersburg-return-hotel .p4-bridge {
  position: absolute; bottom: 25%; left: 0; width: 100%; height: 15%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.6);
  animation: p4-bridge 10s ease-in-out infinite;
}
.scn-petersburg-return-hotel .p4-water {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #0a1a2a 0%, #05101a 100%);
  animation: p4-water-ripple 8s ease-in-out infinite;
}
.scn-petersburg-return-hotel .p4-hotel {
  position: absolute; bottom: 35%; right: 15%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-petersburg-return-hotel .p4-lantern {
  position: absolute; bottom: 55%; right: 28%; width: 6%; height: 8%;
  background: radial-gradient(circle at 50% 60%, #f0c068 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,120,60,0.5);
  animation: p4-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-petersburg-return-hotel .p4-figure {
  position: absolute; bottom: 30%; left: 30%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: p4-figure-walk 6s ease-in-out infinite;
}
.scn-petersburg-return-hotel .p4-carriage {
  position: absolute; bottom: 28%; left: -15%; width: 20%; height: 20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a10 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  animation: p4-carriage-arrive 15s ease-in-out infinite;
}
.scn-petersburg-return-hotel .p4-mist {
  position: absolute; top: 10%; left: 0; width: 100%; height: 50%;
  background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 100%);
  filter: blur(8px);
  animation: p4-mist-drift 20s linear infinite;
}
.scn-petersburg-return-hotel .p4-spotlight {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,150,0.08) 0%, transparent 70%);
  animation: p4-spotlight 5s ease-in-out infinite alternate;
}
@keyframes p4-bridge { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes p4-water-ripple { 0%,100% { background-position: 0 0 } 50% { background-position: 10px 10px } }
@keyframes p4-lantern-glow { 0% { box-shadow: 0 0 30px 6px rgba(200,120,60,0.4); opacity:0.8 } 50% { box-shadow: 0 0 50px 15px rgba(200,120,60,0.7); opacity:1 } 100% { box-shadow: 0 0 30px 6px rgba(200,120,60,0.4); opacity:0.8 } }
@keyframes p4-figure-walk { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(10px) rotate(1deg) } 50% { transform: translateX(20px) rotate(0) } 75% { transform: translateX(10px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes p4-carriage-arrive { 0% { left:-20% } 50% { left: 30% } 100% { left: 60% } }
@keyframes p4-mist-drift { 0% { transform: translateX(-20px) } 100% { transform: translateX(100vw) } }
@keyframes p4-spotlight { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

.scn-london-musing { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #8a6a4a 100%), radial-gradient(ellipse at 30% 20%, rgba(200,180,140,0.3) 0%, transparent 60%); }
.scn-london-musing .compartment-bg { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #6a5a4a 50%, #3a2a1a 100%); }
.scn-london-musing .window-frame { position:absolute; top:5%; left:10%; width:60%; height:55%; border:6px solid #2a1a0a; border-radius:4px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a4a 50%, #1a1a2a 100%); overflow:hidden; }
.scn-london-musing .landscape { position:absolute; top:0; left:0; width:200%; height:100%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 30%, #3a4a3a 60%, #1a2a1a 100%); animation: lmu-landscape 8s linear infinite; }
.scn-london-musing .seat { position:absolute; bottom:8%; left:15%; width:45%; height:30%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:20% 20% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.5); }
.scn-london-musing .figure-seated { position:absolute; bottom:15%; left:30%; width:18%; height:35%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lmu-sway 4s ease-in-out infinite; }
.scn-london-musing .lamp { position:absolute; top:8%; right:15%; width:12px; height:20px; background: linear-gradient(180deg, #a08050 0%, #705030 100%); border-radius:4px 4px 2px 2px; box-shadow: inset 0 0 8px #c0a060; }
.scn-london-musing .lamp-glow { position:absolute; top:2%; right:12%; width:50px; height:50px; background: radial-gradient(circle, rgba(240,200,120,0.8) 0%, rgba(200,160,80,0.3) 40%, transparent 70%); filter: blur(4px); animation: lmu-glow 3s ease-in-out infinite alternate; }
.scn-london-musing .luggage-rack { position:absolute; top:0; right:5%; width:30%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:0 0 4px 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
@keyframes lmu-landscape { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes lmu-sway { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(0deg); } 50% { transform: translateX(10px) rotate(1deg); } 75% { transform: translateX(5px) rotate(0deg); } }
@keyframes lmu-glow { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }

.scn-london-return-purpose { background: linear-gradient(180deg, #2a2a3e 0%, #4a3a4e 40%, #3a2a3e 100%), radial-gradient(ellipse at 70% 30%, rgba(180,140,180,0.2) 0%, transparent 60%); }
.scn-london-return-purpose .train-interior { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a3a 0%, #5a4a5a 50%, #2a1a2a 100%); }
.scn-london-return-purpose .window-frame { position:absolute; top:10%; right:15%; width:55%; height:50%; border:6px solid #1a1a2a; border-radius:6px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a4a 50%, #1a1a2a 100%); overflow:hidden; }
.scn-london-return-purpose .moving-plains { position:absolute; top:0; left:0; width:200%; height:100%; background: linear-gradient(180deg, #2a4a3a 0%, #1a3a2a 30%, #3a5a4a 60%, #1a3a2a 100%); animation: lrp-plains 12s linear infinite; }
.scn-london-return-purpose .figure-profile { position:absolute; bottom:20%; left:20%; width:14%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lrp-turn 6s ease-in-out infinite; }
.scn-london-return-purpose .map-case { position:absolute; bottom:12%; left:8%; width:20%; height:15%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:6px; box-shadow: 2px 2px 6px rgba(0,0,0,0.5); }
.scn-london-return-purpose .compass { position:absolute; bottom:25%; left:35%; width:18px; height:18px; background: radial-gradient(circle, #c0a060 0%, #705030 60%); border-radius:50%; border:2px solid #4a3a2a; animation: lrp-compass 4s ease-in-out infinite; }
.scn-london-return-purpose .shadow-stripe { position:absolute; top:0; left:40%; width:10%; height:100%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 50%, transparent 100%); animation: lrp-stripe 5s ease-in-out infinite alternate; }
@keyframes lrp-plains { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes lrp-turn { 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 lrp-compass { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(20deg); } 60% { transform: rotate(-15deg); } }
@keyframes lrp-stripe { 0% { opacity:0.3; } 50% { opacity:0.8; } 100% { opacity:0.3; } }

.scn-london-junior-club { background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 40%, #7a6a5a 100%), radial-gradient(ellipse at 50% 20%, rgba(220,200,160,0.3) 0%, transparent 60%); }
.scn-london-junior-club .club-wall { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #6a5a4a 50%, #3a2a1a 100%); }
.scn-london-junior-club .fireplace { position:absolute; bottom:10%; left:10%; width:35%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 4% 4%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-london-junior-club .mantel { position:absolute; bottom:60%; left:10%; width:35%; height:6%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-london-junior-club .armchair { position:absolute; bottom:8%; right:10%; width:30%; height:45%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-london-junior-club .figure-reading { position:absolute; bottom:15%; right:18%; width:10%; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ljc-read 8s ease-in-out infinite; }
.scn-london-junior-club .table-lamp { position:absolute; bottom:40%; right:25%; width:12px; height:18px; background: linear-gradient(180deg, #a08050 0%, #705030 100%); border-radius:4px 4px 2px 2px; box-shadow: inset 0 0 6px #c0a060; animation: ljc-lamp 4s ease-in-out infinite alternate; }
.scn-london-junior-club .clock { position:absolute; top:10%; right:5%; width:24px; height:24px; background: radial-gradient(circle, #c0a060 0%, #8a7040 60%); border-radius:50%; border:3px solid #5a4a3a; animation: ljc-clock 60s linear infinite; }
.scn-london-junior-club .rug { position:absolute; bottom:0; left:5%; width:90%; height:8%; background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 20%, #6a4a3a 40%, #8a6a4a 60%, #6a4a3a 80%, #8a6a4a 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; opacity:0.6; }
@keyframes ljc-read { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-5px) rotate(2deg); } 60% { transform: translateX(3px) rotate(-1deg); } }
@keyframes ljc-lamp { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes ljc-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.scn-london-durnford-tan { background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 40%, #7a6a5a 100%), radial-gradient(ellipse at 80% 30%, rgba(220,200,160,0.2) 0%, transparent 60%); }
.scn-london-durnford-tan .club-bookshelves { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(135deg, #4a3a2a 0%, #6a5a4a 50%, #3a2a1a 100%); }
.scn-london-durnford-tan .window-curtained { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a4a 50%, #1a1a2a 100%); border-right:8px solid #4a3a2a; animation: ldt-drape 10s ease-in-out infinite; }
.scn-london-durnford-tan .armchair-right { position:absolute; bottom:8%; left:45%; width:40%; height:50%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-london-durnford-tan .figure-profile { position:absolute; bottom:15%; left:55%; width:12%; height:35%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ldt-profile 6s ease-in-out infinite; }
.scn-london-durnford-tan .hand-tan { position:absolute; bottom:22%; left:65%; width:14px; height:20px; background: linear-gradient(180deg, #c8a070 0%, #8a6030 100%); border-radius:50% 50% 40% 40%; transform: rotate(15deg); animation: ldt-hand 4s ease-in-out infinite alternate; }
.scn-london-durnford-tan .glass { position:absolute; bottom:18%; left:68%; width:10px; height:14px; background: linear-gradient(180deg, #a08050 0%, #705030 100%); border-radius:2px 2px 6px 6px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: ldt-glass 5s ease-in-out infinite; }
.scn-london-durnford-tan .globe { position:absolute; top:15%; right:8%; width:30px; height:30px; background: radial-gradient(circle at 30% 30%, #6a8a6a 0%, #4a6a4a 60%); border-radius:50%; border:3px solid #4a3a2a; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: ldt-globe 20s linear infinite; }
@keyframes ldt-drape { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes ldt-profile { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes ldt-hand { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(20deg) scale(1.05); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes ldt-glass { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(3deg); } }
@keyframes ldt-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.scn-advising-uncle {
  background: 
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%),
    radial-gradient(ellipse at 50% 0%, #5a4a3a 0%, #2a1a1a 80%);
  overflow: hidden;
}
.scn-advising-uncle .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); }
.scn-advising-uncle .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-advising-uncle .lamp-glow { position: absolute; bottom: 30%; left: 20%; width: 80px; height: 100px; background: radial-gradient(circle, #e8c080 0%, #c08a50 30%, transparent 60%); border-radius: 50%; filter: blur(8px); animation: au-glow 4s ease-in-out infinite; }
.scn-advising-uncle .armchair { position: absolute; bottom: 18%; left: 60%; width: 70px; height: 50px; background: linear-gradient(180deg, #5e3a2a 0%, #3a1e12 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform: rotate(3deg); box-shadow: 0 8px 12px rgba(0,0,0,0.5); animation: au-rock 6s ease-in-out infinite; }
.scn-advising-uncle .uncle { position: absolute; bottom: 20%; left: 62%; width: 28px; height: 45px; background: radial-gradient(ellipse at 50% 30%, #7a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(2deg); animation: au-breathe 5s ease-in-out infinite; }
.scn-advising-uncle .narrator { position: absolute; bottom: 18%; left: 30%; width: 22px; height: 40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-1deg); animation: au-breathe 5s ease-in-out infinite reverse; }
.scn-advising-uncle .window-night { position: absolute; top: 10%; right: 10%; width: 60px; height: 80px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,40,0.6); }
.scn-advising-uncle .curtain { position: absolute; top: 8%; right: 8%; width: 20px; height: 100px; background: linear-gradient(180deg, #5e3a2a 0%, #3a1e12 100%); border-radius: 10% 10% 0 0; transform: rotate(3deg); animation: au-sway 8s ease-in-out infinite; }
@keyframes au-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes au-rock { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes au-breathe { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes au-sway { 0% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(3deg); } }

.scn-day-with-carmichaels {
  background: 
    linear-gradient(180deg, #d4a060 0%, #b08040 40%, #8a6030 70%, #4a3018 100%),
    radial-gradient(ellipse at 50% 0%, #f0c868 0%, transparent 70%);
}
.scn-day-with-carmichaels .sky-sunset { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #e8c080 0%, #c8a050 40%, #8a6030 100%); animation: dc-fade 12s ease-in-out infinite; }
.scn-day-with-carmichaels .hills-dusk { position: absolute; bottom: 30%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.3); animation: dc-hills 15s ease-in-out infinite; }
.scn-day-with-carmichaels .trees { position: absolute; bottom: 25%; left: 10%; width: 80px; height: 100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 60% 60% 0 0; transform: skewX(-5deg); animation: dc-sway 8s ease-in-out infinite; }
.scn-day-with-carmichaels .path { position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%; background: linear-gradient(180deg, #6a4a2a 0%, #5a3a18 100%); border-radius: 50% 50% 0 0; transform: perspective(200px) rotateX(10deg); }
.scn-day-with-carmichaels .walker { position: absolute; bottom: 20%; left: 35%; width: 18px; height: 35px; background: linear-gradient(180deg, #1a2a1a 0%, #0a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dc-walk 5s ease-in-out infinite; }
.scn-day-with-carmichaels .gun { position: absolute; bottom: 22%; left: 33%; width: 8px; height: 20px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 10%; transform: rotate(-30deg); animation: dc-gun 5s ease-in-out infinite; }
.scn-day-with-carmichaels .birds { position: absolute; top: 20%; left: 60%; width: 14px; height: 10px; background: radial-gradient(ellipse, #3a3a3a 0%, transparent 80%); border-radius: 50%; filter: blur(2px); animation: dc-birds 20s linear infinite; }
.scn-day-with-carmichaels .cloud-slow { position: absolute; top: 10%; left: 5%; width: 100px; height: 20px; background: linear-gradient(180deg, rgba(200,160,100,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: dc-cloud 40s linear infinite; }
@keyframes dc-fade { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dc-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes dc-sway { 0% { transform: skewX(-5deg) rotate(0deg); } 50% { transform: skewX(-3deg) rotate(2deg); } 100% { transform: skewX(-5deg) rotate(0deg); } }
@keyframes dc-walk { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dc-gun { 0% { transform: rotate(-30deg); } 25% { transform: rotate(-25deg); } 50% { transform: rotate(-30deg); } 75% { transform: rotate(-35deg); } 100% { transform: rotate(-30deg); } }
@keyframes dc-birds { 0% { transform: translateX(0); } 100% { transform: translateX(200px); } }
@keyframes dc-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(200px); } }

.scn-voices-in-wood {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 30%, #3a3a5a 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a4a 0%, transparent 60%);
}
.scn-voices-in-wood .sky-twilight { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%); animation: vw-flicker 10s ease-in-out infinite; }
.scn-voices-in-wood .trunks { position: absolute; bottom: 0; left: 10%; width: 20px; height: 60%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-voices-in-wood .trunks::before { content: ''; position: absolute; top: -20%; left: 15%; width: 20px; height: 30%; background: inherit; border-radius: inherit; }
.scn-voices-in-wood .undergrowth { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; animation: vw-tremble 6s ease-in-out infinite; }
.scn-voices-in-wood .figures { position: absolute; bottom: 30%; left: 40%; width: 20px; height: 40px; background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 0 0 6px rgba(0,0,0,0.8); animation: vw-move 7s ease-in-out infinite; }
.scn-voices-in-wood .shadow-1 { position: absolute; bottom: 28%; left: 35%; width: 30px; height: 10px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px); animation: vw-shift 8s ease-in-out infinite; }
.scn-voices-in-wood .shadow-2 { position: absolute; bottom: 28%; left: 50%; width: 25px; height: 8px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(3px); animation: vw-shift 8s ease-in-out infinite reverse; }
.scn-voices-in-wood .moon { position: absolute; top: 15%; right: 20%; width: 30px; height: 30px; background: radial-gradient(circle, #f0e8d0 0%, #c8b8a0 40%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(240,232,208,0.3); animation: vw-glow 5s ease-in-out infinite; }
@keyframes vw-flicker { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes vw-tremble { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes vw-move { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes vw-shift { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }
@keyframes vw-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 60px 15px rgba(240,232,208,0.5); } 100% { opacity: 0.7; transform: scale(1); } }

.scn-sound-of-reproach {
  background: 
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #0a0a14 80%),
    radial-gradient(ellipse at 50% 0%, #2a2a4a 0%, transparent 70%);
}
.scn-sound-of-reproach .deep-dark { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #0a0a14 0%, #000 100%); animation: sr-pulse 8s ease-in-out infinite; }
.scn-sound-of-reproach .trees-tall { position: absolute; bottom: 0; left: 5%; width: 18px; height: 70%; background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%); border-radius: 25% 25% 0 0; transform: skewX(4deg); box-shadow: 0 8px 16px rgba(0,0,0,0.8); }
.scn-sound-of-reproach .trees-tall::after { content: ''; position: absolute; right: -30px; width: 22px; height: 60%; background: inherit; border-radius: inherit; transform: skewX(-6deg); }
.scn-sound-of-reproach .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #1a1a0e 0%, #0a0a04 100%); border-radius: 80% 20% 0 0 / 40% 10% 0 0; }
.scn-sound-of-reproach .runner { position: absolute; bottom: 20%; left: 30%; width: 20px; height: 38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: sr-run 0.8s ease-in-out infinite; }
.scn-sound-of-reproach .lantern-swing { position: absolute; bottom: 25%; left: 25%; width: 8px; height: 8px; background: radial-gradient(circle, #e8c080 0%, #c08a50 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 4px rgba(192,138,80,0.6); animation: sr-swing 0.5s ease-in-out infinite; }
.scn-sound-of-reproach .voice-ripple { position: absolute; bottom: 40%; left: 50%; width: 60px; height: 60px; border: 2px solid rgba(200,200,255,0.2); border-radius: 50%; animation: sr-ripple 3s ease-out infinite; }
.scn-sound-of-reproach .branch { position: absolute; bottom: 50%; right: 15%; width: 40px; height: 4px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 2px; transform: rotate(-30deg); animation: sr-shake 2s ease-in-out infinite; }
.scn-sound-of-reproach .fog { position: absolute; top: 30%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, rgba(100,100,130,0.1) 0%, transparent 100%); filter: blur(10px); animation: sr-drift 15s linear infinite; }
@keyframes sr-pulse { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes sr-run { 0% { transform: translateY(0) rotate(-15deg) translateX(0); } 25% { transform: translateY(-4px) rotate(-10deg) translateX(6px); } 50% { transform: translateY(0) rotate(-5deg) translateX(12px); } 75% { transform: translateY(-4px) rotate(-10deg) translateX(6px); } 100% { transform: translateY(0) rotate(-15deg) translateX(0); } }
@keyframes sr-swing { 0% { transform: rotate(-10deg) translate(0,0); } 50% { transform: rotate(10deg) translate(2px,-2px); } 100% { transform: rotate(-10deg) translate(0,0); } }
@keyframes sr-ripple { 0% { width: 20px; height: 20px; border-width: 2px; opacity: 0.6; } 100% { width: 100px; height: 100px; border-width: 0; opacity: 0; } }
@keyframes sr-shake { 0% { transform: rotate(-30deg); } 25% { transform: rotate(-25deg); } 50% { transform: rotate(-30deg); } 75% { transform: rotate(-35deg); } 100% { transform: rotate(-30deg); } }
@keyframes sr-drift { 0% { transform: translateX(-50%); opacity: 0.3; } 50% { transform: translateX(50%); opacity: 0.6; } 100% { transform: translateX(150%); opacity: 0.2; } }

.scn-body-unearthing {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #2b1f0d 40%, #0e0e0e 100%),
    radial-gradient(ellipse at 30% 50%, #1a1a1a 0%, transparent 70%);
}
.scn-body-unearthing .ground {
  position: absolute; inset: 50% 0 0 0;
  background: linear-gradient(180deg, #3b2a1a 0%, #1a1208 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 20px 30px #000;
}
.scn-body-unearthing .hole {
  position: absolute; top: 45%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 20%, #0a0804 0%, #1a1208 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 40px #00000080, 0 0 20px #0a0804;
  animation: bu-hole 12s ease-in-out infinite alternate;
}
.scn-body-unearthing .cloth {
  position: absolute; top: 55%; left: 40%; width: 15%; height: 10%;
  background: linear-gradient(135deg, #4a4030 0%, #2f2a1e 50%, #4a4030 100%);
  border-radius: 20% 80% 50% 50% / 30% 60% 40% 70%;
  filter: blur(1px);
  box-shadow: 0 0 10px #00000080;
  animation: bu-cloth 8s ease-in-out infinite alternate;
}
.scn-body-unearthing .dirt-pile {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 12%;
  background: radial-gradient(ellipse at 50% 0%, #4a3520 0%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 -10px 20px #00000080;
}
.scn-body-unearthing .hand {
  position: absolute; top: 38%; left: 45%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #2a1e10 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bu-hand 4s ease-in-out infinite;
}
.scn-body-unearthing .dirt-particle {
  position: absolute; width: 3px; height: 3px;
  background: #5a4020;
  border-radius: 50%;
  filter: blur(0.5px);
  animation: bu-dirt 5s linear infinite;
}
.scn-body-unearthing .dirt-particle.a { top: 48%; left: 32%; animation-delay: 0s; }
.scn-body-unearthing .dirt-particle.b { top: 52%; left: 38%; animation-delay: 1.5s; }
.scn-body-unearthing .dirt-particle.c { top: 46%; left: 28%; animation-delay: 3s; }

@keyframes bu-hole {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.95) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes bu-cloth {
  0% { transform: rotate(-5deg) translateX(0); opacity: 0.8; }
  50% { transform: rotate(0deg) translateX(3px); opacity: 1; }
  100% { transform: rotate(5deg) translateX(0); opacity: 0.8; }
}
@keyframes bu-hand {
  0% { transform: translateY(0) rotate(-5deg); }
  30% { transform: translateY(-4px) rotate(5deg); }
  60% { transform: translateY(2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes bu-dirt {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(30px) scale(0.3); opacity: 0; }
}

.scn-body-recovered {
  background: 
    linear-gradient(180deg, #0a0810 0%, #14101a 50%, #0a0810 100%),
    radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, transparent 70%);
}
.scn-body-recovered .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #12101e 0%, transparent 100%);
  animation: br-sky 15s ease-in-out infinite alternate;
}
.scn-body-recovered .well-wall {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #2a2020 0%, #1a1414 50%, #0a0808 100%);
  border-radius: 10% 10% 30% 30% / 10% 10% 20% 20%;
  box-shadow: inset 0 0 60px #00000080;
}
.scn-body-recovered .well-opening {
  position: absolute; top: 25%; left: 35%; width: 30%; height: 8%;
  background: radial-gradient(ellipse at 50% 0%, #0a0810 0%, transparent 100%);
  border-radius: 50%;
}
.scn-body-recovered .body-silhouette {
  position: absolute; top: 30%; left: 42%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: br-body 6s ease-in-out infinite;
}
.scn-body-recovered .arm-left {
  position: absolute; top: 32%; left: 36%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: top center;
  animation: br-arm-left 4s ease-in-out infinite;
}
.scn-body-recovered .arm-right {
  position: absolute; top: 32%; left: 56%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: top center;
  animation: br-arm-right 4.5s ease-in-out infinite;
}
.scn-body-recovered .lantern-glow {
  position: absolute; top: 20%; left: 50%; width: 12%; height: 12%;
  background: radial-gradient(circle, #f0d080 0%, #b08040 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #b0804060;
  animation: br-glow 3s ease-in-out infinite alternate;
}
.scn-body-recovered .dirt-rise {
  position: absolute; top: 28%; left: 38%; width: 24%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 100%);
  filter: blur(3px);
  animation: br-dirt 8s linear infinite;
}

@keyframes br-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes br-body { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes br-arm-left { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes br-arm-right { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } }
@keyframes br-glow { 0% { opacity: 0.7; box-shadow: 0 0 40px 15px #b0804060; } 100% { opacity: 1; box-shadow: 0 0 80px 30px #f0d08080; } }
@keyframes br-dirt { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 100% { transform: translateY(-30px) scale(2); opacity: 0; } }

.scn-identification-of-victim {
  background: 
    linear-gradient(180deg, #0e0e14 0%, #1a141c 50%, #0e0e14 100%),
    radial-gradient(ellipse at 40% 50%, #1a1a2a 0%, transparent 70%);
}
.scn-identification-of-victim .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0810 0%, #141018 100%);
  animation: iv-bg 20s ease-in-out infinite alternate;
}
.scn-identification-of-victim .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 30% 70% 0 0 / 20% 30% 0 0;
}
.scn-identification-of-victim .hand-examining {
  position: absolute; top: 25%; left: 35%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #2a201a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: iv-hand-e 5s ease-in-out infinite alternate;
}
.scn-identification-of-victim .hand-victim {
  position: absolute; top: 40%; left: 50%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #1e1812 0%, #14100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: iv-hand-v 6s ease-in-out infinite;
}
.scn-identification-of-victim .dress-fabric {
  position: absolute; top: 50%; left: 40%; width: 30%; height: 30%;
  background: linear-gradient(135deg, #3a2a22 0%, #2a1e18 50%, #1a1410 100%);
  border-radius: 20% 80% 30% 70% / 40% 60% 40% 60%;
  box-shadow: inset 0 0 30px #00000080;
}
.scn-identification-of-victim .light-spot {
  position: absolute; top: 30%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 40% 30%, #f0e0c0 0%, transparent 100%);
  mix-blend-mode: overlay;
  opacity: 0.3;
  animation: iv-light 4s ease-in-out infinite alternate;
}
.scn-identification-of-victim .shadow-accent {
  position: absolute; top: 42%; left: 48%; width: 20%; height: 20%;
  background: radial-gradient(ellipse, #000 0%, transparent 100%);
  border-radius: 50%;
  opacity: 0.6;
  animation: iv-shadow 7s ease-in-out infinite alternate;
}

@keyframes iv-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes iv-hand-e { 0% { transform: translateY(0) rotate(-10deg); } 100% { transform: translateY(-3px) rotate(10deg); } }
@keyframes iv-hand-v { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } }
@keyframes iv-light { 0% { opacity: 0.2; } 100% { opacity: 0.4; } }
@keyframes iv-shadow { 0% { transform: scale(1); opacity: 0.5; } 100% { transform: scale(1.2); opacity: 0.7; } }

.scn-examining-wound {
  background: 
    linear-gradient(180deg, #0e0e12 0%, #18141a 50%, #0e0e12 100%),
    radial-gradient(ellipse at 50% 40%, #1a1620 0%, transparent 70%);
}
.scn-examining-wound .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a0e 0%, #141018 100%);
}
.scn-examining-wound .torso {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #2a2420 0%, #1e1a18 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: inset 0 0 50px #00000080;
}
.scn-examining-wound .dress-front {
  position: absolute; top: 30%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1e16 50%, #1a1410 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 30% 30%;
}
.scn-examining-wound .wound {
  position: absolute; top: 45%; left: 44%; width: 12%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #6b2a2a 0%, #3a1a1a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 20px #1a0a0a80, 0 0 20px #6b2a2a40;
  animation: ew-wound 4s ease-in-out infinite alternate;
}
.scn-examining-wound .hand-touch {
  position: absolute; top: 40%; left: 38%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #2a201a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ew-hand 5s ease-in-out infinite;
}
.scn-examining-wound .light-spot {
  position: absolute; top: 35%; left: 40%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #e0c8a0 0%, transparent 100%);
  mix-blend-mode: overlay;
  opacity: 0.2;
  animation: ew-light 4s ease-in-out infinite alternate;
}
.scn-examining-wound .blood-drip {
  position: absolute; width: 3px; height: 6px;
  background: linear-gradient(180deg, #6b2a2a 0%, #3a1a1a 100%);
  border-radius: 50%;
  animation: ew-drip 6s linear infinite;
}
.scn-examining-wound .blood-drip.a { top: 55%; left: 46%; animation-delay: 0s; }
.scn-examining-wound .blood-drip.b { top: 56%; left: 44%; animation-delay: 2.5s; }

@keyframes ew-wound { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }
@keyframes ew-hand { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 50% { transform: translateX(-3px) translateY(-2px) rotate(5deg); } 100% { transform: translateX(0) translateY(0) rotate(-5deg); } }
@keyframes ew-light { 0% { opacity: 0.1; } 100% { opacity: 0.3; } }
@keyframes ew-drip { 0% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(20px) scale(0.5); opacity: 0; } }

/* hut-evening-comfort */
.scn-hut-evening-comfort {
  background: 
    linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 30%, #4a1a0a 70%, #2a0a00 100%),
    radial-gradient(ellipse at 50% 20%, #8a3a1a 0%, transparent 60%);
}
.scn-hut-evening-comfort .log-wall {
  position: absolute; inset: 0; 
  background: repeating-linear-gradient(90deg, #4a2a1a 0px, #5a3a2a 4px, #4a2a1a 8px);
  opacity: 0.6; animation: hec-wall 20s ease-in-out infinite alternate;
}
.scn-hut-evening-comfort .stove-glow {
  position: absolute; bottom: 15%; left: 20%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 70%, #ff6a20 0%, #8a2a0a 60%, #3a0a00 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 60px 30px #ff6a2044, 0 0 120px 60px #ff6a2022;
  animation: hec-stove 3s ease-in-out infinite alternate;
}
.scn-hut-evening-comfort .window-pane {
  position: absolute; top: 20%; right: 15%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border: 4px solid #2a1a0a; border-radius: 4px; box-shadow: inset 0 0 20px #ff8a4a33;
  animation: hec-window 6s ease-in-out infinite;
}
.scn-hut-evening-comfort .table {
  position: absolute; bottom: 12%; left: 45%; width: 100px; height: 12px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px; transform: perspective(200px) rotateX(30deg);
}
.scn-hut-evening-comfort .chair {
  position: absolute; bottom: 10%; left: 48%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 2px 2px 10px 10px; transform: perspective(100px) rotateX(20deg);
  animation: hec-chair 8s ease-in-out infinite;
}
.scn-hut-evening-comfort .fire-embers {
  position: absolute; bottom: 12%; left: 22%; width: 40px; height: 20px;
  background: radial-gradient(circle at 30% 40%, #ff6a20 0%, #cc4400 50%, transparent 100%);
  border-radius: 50%; filter: blur(3px); animation: hec-ember 2s ease-in-out infinite alternate;
}
.scn-hut-evening-comfort .smoke {
  position: absolute; top: 5%; left: 25%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,200,200,0.3) 0%, transparent 80%);
  border-radius: 50%; filter: blur(8px); animation: hec-smoke 12s ease-in-out infinite;
}
@keyframes hec-wall { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }
@keyframes hec-stove { 0% { box-shadow: 0 0 40px 20px #ff6a2044, 0 0 80px 40px #ff6a2022; } 50% { box-shadow: 0 0 60px 30px #ff8a4a66, 0 0 120px 60px #ff8a4a33; } 100% { box-shadow: 0 0 30px 15px #ff6a2044, 0 0 60px 30px #ff6a2022; } }
@keyframes hec-window { 0% { box-shadow: inset 0 0 10px #ff8a4a22; } 50% { box-shadow: inset 0 0 30px #ff8a4a55; } 100% { box-shadow: inset 0 0 15px #ff8a4a33; } }
@keyframes hec-chair { 0%,100% { transform: perspective(100px) rotateX(20deg) translateY(0); } 50% { transform: perspective(100px) rotateX(22deg) translateY(-2px); } }
@keyframes hec-ember { 0% { opacity: 0.8; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }
@keyframes hec-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-30px) scale(1.5); opacity: 0.1; } 100% { transform: translateY(-60px) scale(2); opacity: 0; } }

/* hut-charcoal-pencil */
.scn-hut-charcoal-pencil {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 70%);
}
.scn-hut-charcoal-pencil .bg-dark { position: absolute; inset: 0; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%); animation: chp-bg 15s ease-in-out infinite alternate; }
.scn-hut-charcoal-pencil .table-char { position: absolute; bottom: 20%; left: 30%; width: 120px; height: 8px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 2px; transform: perspective(300px) rotateX(20deg); }
.scn-hut-charcoal-pencil .charcoal-stick { position: absolute; bottom: 22%; left: 42%; width: 40px; height: 4px; background: #1a1a1a; border-radius: 2px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: chp-charcoal 4s ease-in-out infinite alternate; }
.scn-hut-charcoal-pencil .hand-reaching { position: absolute; bottom: 18%; left: 35%; width: 20px; height: 30px; background: linear-gradient(180deg, #d4a574 0%, #8c6239 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(20deg) scale(0.8); animation: chp-hand 6s ease-in-out infinite; }
.scn-hut-charcoal-pencil .window-dim { position: absolute; top: 15%; right: 10%; width: 50px; height: 30px; background: linear-gradient(135deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%); border: 3px solid #2a1a0a; box-shadow: inset 0 0 15px #8a4a2a33; animation: chp-window 8s ease-in-out infinite; }
.scn-hut-charcoal-pencil .silhouette-woman { position: absolute; bottom: 25%; right: 25%; width: 24px; height: 50px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: chp-woman 10s ease-in-out infinite; }
.scn-hut-charcoal-pencil .candle-glow { position: absolute; top: 30%; left: 50%; width: 10px; height: 10px; background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 15px #ffa04044; animation: chp-candle 3s ease-in-out infinite alternate; }
@keyframes chp-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes chp-charcoal { 0% { transform: rotate(12deg) scale(1); } 100% { transform: rotate(18deg) scale(1.1); } }
@keyframes chp-hand { 0%,100% { transform: rotate(15deg) scale(0.8) translateX(0); } 50% { transform: rotate(20deg) scale(0.85) translateX(5px); } }
@keyframes chp-window { 0% { box-shadow: inset 0 0 10px #8a4a2a22; } 50% { box-shadow: inset 0 0 25px #8a4a2a55; } 100% { box-shadow: inset 0 0 15px #8a4a2a33; } }
@keyframes chp-woman { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } }
@keyframes chp-candle { 0% { opacity: 0.7; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }

/* hut-dawn-raid */
.scn-hut-dawn-raid {
  background: 
    linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 30%, #6a7a8a 50%, #4a5a6a 80%, #1a2a3a 100%),
    radial-gradient(ellipse at 70% 10%, #8a9aaa 0%, transparent 60%);
}
.scn-hut-dawn-raid .dawn-sky { position: absolute; inset: 0; background: linear-gradient(180deg, #4a6a8a 0%, #6a8aaa 40%, #8a9aaa 100%); animation: hdr-sky 20s ease-in-out infinite alternate; }
.scn-hut-dawn-raid .heavy-shutter { position: absolute; top: 10%; left: 5%; width: 80px; height: 120px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 2px; box-shadow: 4px 0 8px rgba(0,0,0,0.6); transform: rotate(10deg); animation: hdr-shutter 2s ease-in-out infinite alternate; }
.scn-hut-dawn-raid .door-shaking { position: absolute; bottom: 10%; left: 40%; width: 60px; height: 100px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: hdr-door 0.5s ease-in-out infinite alternate; }
.scn-hut-dawn-raid .horse-shadow { position: absolute; top: 50%; right: 10%; width: 70px; height: 50px; background: rgba(0,0,0,0.4); border-radius: 40% 20% 30% 40% / 50% 40% 60% 50%; filter: blur(4px); animation: hdr-horse 3s ease-in-out infinite; }
.scn-hut-dawn-raid .woodcutter-silhouette { position: absolute; bottom: 8%; left: 20%; width: 30px; height: 60px; background: #1a0a00; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: hdr-woodcutter 2s ease-in-out infinite; }
.scn-hut-dawn-raid .chink-light { position: absolute; top: 15%; left: 8%; width: 10px; height: 20px; background: radial-gradient(ellipse, #fff8e0 0%, #ffe080 50%, transparent 100%); box-shadow: 0 0 20px 10px #ffe08044; animation: hdr-chink 4s ease-in-out infinite alternate; }
.scn-hut-dawn-raid .dust-motes { position: absolute; top: 30%; left: 10%; width: 100%; height: 100%; background: radial-gradient(circle at 20% 30%, rgba(255,255,200,0.2) 0%, transparent 80%); filter: blur(2px); animation: hdr-dust 8s ease-in-out infinite; }
@keyframes hdr-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes hdr-shutter { 0% { transform: rotate(8deg) scaleX(1); } 100% { transform: rotate(12deg) scaleX(1.02); } }
@keyframes hdr-door { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes hdr-horse { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(-10px) scale(0.95); } }
@keyframes hdr-woodcutter { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes hdr-chink { 0% { opacity: 0.5; transform: scale(1); } 100% { opacity: 1; transform: scale(1.5); } }
@keyframes hdr-dust { 0% { opacity: 0.1; transform: translateY(0); } 50% { opacity: 0.3; transform: translateY(-10px); } 100% { opacity: 0.1; transform: translateY(-20px); } }

/* hut-elma-gone */
.scn-hut-elma-gone {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-hut-elma-gone .room-dark { position: absolute; inset: 0; background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%); animation: heg-room 20s ease-in-out infinite alternate; }
.scn-hut-elma-gone .open-door { position: absolute; bottom: 10%; left: 45%; width: 50px; height: 100px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 2px; transform: skewY(5deg); box-shadow: -4px 0 8px rgba(0,0,0,0.6); animation: heg-door 4s ease-in-out infinite alternate; }
.scn-hut-elma-gone .empty-bed { position: absolute; bottom: 12%; left: 20%; width: 80px; height: 40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); transform: perspective(200px) rotateX(10deg); }
.scn-hut-elma-gone .window-dawn { position: absolute; top: 20%; right: 10%; width: 50px; height: 30px; background: linear-gradient(135deg, #6a8aaa 0%, #8a9aaa 50%, #6a8aaa 100%); border: 3px solid #1a1a2a; box-shadow: inset 0 0 20px #8a9aaa44; animation: heg-window 8s ease-in-out infinite; }
.scn-hut-elma-gone .felix-shadow { position: absolute; bottom: 8%; right: 30%; width: 25px; height: 55px; background: #0a0a0a; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: scaleX(-1); animation: heg-felix 3s ease-in-out infinite; }
.scn-hut-elma-gone .elma-absence { position: absolute; bottom: 15%; left: 30%; width: 20px; height: 40px; background: transparent; border: 2px dashed rgba(255,255,255,0.2); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: heg-elma 6s ease-in-out infinite; }
.scn-hut-elma-gone .doorway-light { position: absolute; bottom: 10%; left: 44%; width: 20px; height: 80px; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%); filter: blur(6px); animation: heg-light 5s ease-in-out infinite alternate; }
@keyframes heg-room { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes heg-door { 0% { transform: skewY(3deg) translateX(0); } 100% { transform: skewY(7deg) translateX(3px); } }
@keyframes heg-window { 0% { box-shadow: inset 0 0 10px #8a9aaa22; } 50% { box-shadow: inset 0 0 30px #8a9aaa55; } 100% { box-shadow: inset 0 0 15px #8a9aaa33; } }
@keyframes heg-felix { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } }
@keyframes heg-elma { 0%,100% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.1); } }
@keyframes heg-light { 0% { opacity: 0.3; } 100% { opacity: 0.6; } }

.scn-london-story-begins { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #1c1c1c 60%, #141414 100%), radial-gradient(ellipse at 50% 100%, #2a2a2a 0%, transparent 70%); }
.scn-london-story-begins .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); }
.scn-london-story-begins .doors { position: absolute; bottom: 30%; left: 10%; width: 80%; height: 70%; background: linear-gradient(90deg, #3a3a3a 0%, #2a2a2a 20%, #3a3a3a 40%, #2a2a2a 60%, #3a3a3a 80%, #2a2a2a 100%); transform: translateY(-2px); animation: li1-panel 14s ease-in-out infinite; }
.scn-london-story-begins .desk { position: absolute; bottom: 18%; left: 20%; width: 38%; height: 22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.7); }
.scn-london-story-begins .lamp { position: absolute; bottom: 38%; left: 22%; width: 8px; height: 20px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 40% 40% 0 0; box-shadow: 0 0 0 4px #c8a060, 0 0 24px 8px rgba(200,160,96,.5); animation: li1-flicker 2s ease-in-out infinite alternate; }
.scn-london-story-begins .photograph { position: absolute; bottom: 30%; left: 32%; width: 14%; height: 18%; background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 50%, #3a3a3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); transform: rotate(3deg); animation: li1-photo 8s ease-in-out infinite; }
.scn-london-story-begins .chair { position: absolute; bottom: 10%; left: 10%; width: 20%; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; }
.scn-london-story-begins .figure { position: absolute; bottom: 28%; left: 10%; width: 14%; height: 44%; background: linear-gradient(180deg, #1c1c1c 0%, #0c0c0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li1-stand 6s ease-in-out infinite; }
.scn-london-story-begins .shadow { position: absolute; bottom: 0; left: 5%; width: 40%; height: 20%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: li1-shadow 6s ease-in-out infinite; }
@keyframes li1-panel { 0%,100% { opacity: .6 } 50% { opacity: .8 } }
@keyframes li1-flicker { 0% { box-shadow: 0 0 0 4px #c8a060, 0 0 20px 6px rgba(200,160,96,.5); opacity: .9 } 50% { box-shadow: 0 0 0 6px #d8b070, 0 0 32px 12px rgba(200,160,96,.6); opacity: 1 } 100% { box-shadow: 0 0 0 4px #b89050, 0 0 16px 4px rgba(200,160,96,.4); opacity: .85 } }
@keyframes li1-photo { 0%,100% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(-1deg) scale(1.02) } }
@keyframes li1-stand { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-2deg) } }
@keyframes li1-shadow { 0%,100% { transform: scaleX(1) opacity(.6) } 50% { transform: scaleX(.9) opacity(.8) } }

.scn-london-photo-clue { background: linear-gradient(180deg, #1a1a1a 0%, #222222 40%, #1c1c1c 70%, #121212 100%), radial-gradient(ellipse at 50% 100%, #2a2a2a 0%, transparent 80%); }
.scn-london-photo-clue .wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #222222 0%, #151515 100%); }
.scn-london-photo-clue .window { position: absolute; bottom: 20%; right: 10%; width: 20%; height: 40%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border: 6px solid #3a3a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,20,40,.6); animation: li2-window 10s ease-in-out infinite; }
.scn-london-photo-clue .desk { position: absolute; bottom: 15%; left: 20%; width: 40%; height: 20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.7); }
.scn-london-photo-clue .document { position: absolute; bottom: 22%; left: 28%; width: 16%; height: 14%; background: linear-gradient(135deg, #5a5a4a 0%, #4a4a3a 50%, #3a3a2a 100%); border-radius: 2px; transform: rotate(4deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: li2-doc 9s ease-in-out infinite; }
.scn-london-photo-clue .figure { position: absolute; bottom: 22%; left: 5%; width: 16%; height: 50%; background: linear-gradient(180deg, #1c1c1c 0%, #0c0c0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li2-inspect 7s ease-in-out infinite; }
.scn-london-photo-clue .lamp { position: absolute; bottom: 34%; left: 22%; width: 6px; height: 16px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 40% 40% 0 0; box-shadow: 0 0 0 4px #b09050, 0 0 20px 6px rgba(176,144,80,.5); animation: li2-lamp 3s ease-in-out infinite alternate; }
.scn-london-photo-clue .shadow { position: absolute; bottom: 0; left: 2%; width: 30%; height: 18%; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); animation: li2-shadow 7s ease-in-out infinite; }
.scn-london-photo-clue .safe { position: absolute; bottom: 10%; right: 35%; width: 14%; height: 18%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 4px; box-shadow: inset 0 2px 6px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4); border: 2px solid #3a3a3a; animation: li2-safe 12s ease-in-out infinite; }
@keyframes li2-window { 0%,100% { opacity: .5 } 50% { opacity: .7 } }
@keyframes li2-doc { 0%,100% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) scale(1.02) } }
@keyframes li2-inspect { 0%,100% { transform: translateY(0) rotate(0) translateX(0) } 25% { transform: translateY(-2px) rotate(3deg) translateX(4px) } 50% { transform: translateY(0) rotate(0) translateX(8px) } 75% { transform: translateY(-2px) rotate(-3deg) translateX(4px) } }
@keyframes li2-lamp { 0% { box-shadow: 0 0 0 4px #b09050, 0 0 16px 4px rgba(176,144,80,.4); opacity: .85 } 50% { box-shadow: 0 0 0 6px #c8a860, 0 0 28px 10px rgba(200,168,96,.6); opacity: 1 } 100% { box-shadow: 0 0 0 4px #a88848, 0 0 20px 6px rgba(176,144,80,.5); opacity: .9 } }
@keyframes li2-shadow { 0%,100% { transform: scaleX(1) translateX(0); opacity: .7 } 50% { transform: scaleX(.9) translateX(4px); opacity: .9 } }
@keyframes li2-safe { 0%,100% { box-shadow: inset 0 2px 6px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4) } 50% { box-shadow: inset 0 2px 8px rgba(0,0,0,.6), 0 6px 12px rgba(0,0,0,.5) } }

.scn-london-olinto-alive { background: linear-gradient(180deg, #141418 0%, #1a1a22 30%, #12121a 60%, #0a0a12 100%), radial-gradient(ellipse at 50% 100%, #1a1a22 0%, transparent 70%); }
.scn-london-olinto-alive .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #1a1a22 0%, #101018 100%); }
.scn-london-olinto-alive .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); }
.scn-london-olinto-alive .chair { position: absolute; bottom: 18%; left: 25%; width: 28%; height: 40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.6); transform-origin: bottom center; animation: li3-chair 8s ease-in-out infinite; }
.scn-london-olinto-alive .figure { position: absolute; bottom: 28%; left: 30%; width: 18%; height: 48%; background: linear-gradient(180deg, #1c1c20 0%, #0c0c10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center bottom; animation: li3-seat 4s ease-in-out infinite; }
.scn-london-olinto-alive .hands { position: absolute; bottom: 36%; left: 32%; width: 14%; height: 12%; background: radial-gradient(ellipse, #3a2a1a 0%, #1a0a00 70%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: li3-grip 3s ease-in-out infinite alternate; }
.scn-london-olinto-alive .window { position: absolute; top: 10%; right: 10%; width: 24%; height: 40%; background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%); border: 8px solid #2a2a2a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,60,.4); animation: li3-moon 14s ease-in-out infinite; }
.scn-london-olinto-alive .curtain { position: absolute; top: 10%; right: 8%; width: 28%; height: 48%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 4px; opacity: .6; animation: li3-drape 10s ease-in-out infinite; }
@keyframes li3-chair { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) translateY(-2px) } }
@keyframes li3-seat { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes li3-grip { 0% { transform: scale(1) translateY(0); opacity: .8 } 50% { transform: scale(1.05) translateY(-2px); opacity: 1 } 100% { transform: scale(1) translateY(0); opacity: .85 } }
@keyframes li3-moon { 0%,100% { opacity: .5 } 50% { opacity: .7 } }
@keyframes li3-drape { 0%,100% { transform: translateY(0) } 50% { transform: translateY(4px) scaleY(1.02) } }

.scn-london-durnford-declares { background: linear-gradient(180deg, #1a1410 0%, #221a14 30%, #1a1410 60%, #120e0a 100%), radial-gradient(ellipse at 50% 100%, #2a2018 0%, transparent 70%); }
.scn-london-durnford-declares .wall { position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); }
.scn-london-durnford-declares .fireplace { position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 30%; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-london-durnford-declares .fire { position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 12%; height: 20%; background: radial-gradient(ellipse, #d08040 0%, #a05020 40%, #402010 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,120,60,.4), 0 0 80px 40px rgba(200,120,60,.2); animation: li4-flame 1.5s ease-in-out infinite alternate; }
.scn-london-durnford-declares .figure-a { position: absolute; bottom: 22%; left: 20%; width: 16%; height: 52%; background: linear-gradient(180deg, #1c1410 0%, #0c0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li4-speak-a 6s ease-in-out infinite; }
.scn-london-durnford-declares .figure-b { position: absolute; bottom: 22%; right: 20%; width: 16%; height: 50%; background: linear-gradient(180deg, #201814 0%, #100c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li4-speak-b 5s ease-in-out infinite; }
.scn-london-durnford-declares .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #1a0e08 0%, #120804 100%); }
.scn-london-durnford-declares .shadow { position: absolute; bottom: 0; left: 15%; width: 35%; height: 15%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: li4-cast 6s ease-in-out infinite; }
.scn-london-durnford-declares .door { position: absolute; bottom: 10%; right: 5%; width: 12%; height: 60%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 4px 4px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.3); transform-origin: right center; animation: li4-door 18s ease-in-out infinite; }
@keyframes li4-flame { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: .9 } 50% { transform: translateX(-50%) scaleY(1.05) scaleX(.95); opacity: 1 } 100% { transform: translateX(-50%) scaleY(.95) scaleX(1.05); opacity: .85 } }
@keyframes li4-speak-a { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(3deg) scale(1.02) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-3deg) scale(1.02) } }
@keyframes li4-speak-b { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-1px) rotate(-2deg) scale(1.01) } 60% { transform: translateY(0) rotate(0) } 85% { transform: translateY(-1px) rotate(2deg) scale(1.01) } }
@keyframes li4-cast { 0%,100% { transform: scaleX(1) translateX(0); opacity: .6 } 50% { transform: scaleX(1.1) translateX(10px); opacity: .8 } }
@keyframes li4-door { 0%,100% { transform: rotate(0) } 50% { transform: rotate(3deg) } }

/* crew-details */
.scn-crew-details { background: linear-gradient(180deg, #d4c8a8 0%, #b8a884 60%, #8a7a5e 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 80%); }
.scn-crew-details .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c4b094 0%, #a0886a 100%); background-size: cover; box-shadow: inset 0 -20px 40px rgba(60,40,20,0.3); animation: cd-wall 20s ease-in-out infinite alternate; }
.scn-crew-details .table { position:absolute; bottom:10%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 10px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-crew-details .figure-left { position:absolute; bottom:22%; left:8%; width:60px; height:100px; background: linear-gradient(180deg, #2a1e1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cd-figure-left 6s ease-in-out infinite; }
.scn-crew-details .figure-right { position:absolute; bottom:22%; right:8%; width:60px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cd-figure-right 6s ease-in-out infinite; }
.scn-crew-details .window { position:absolute; top:5%; right:10%; width:80px; height:100px; background: linear-gradient(180deg, #fff8e0 0%, #e0d0a0 100%); border: 4px solid #6a4a2a; border-radius: 4px; box-shadow: 0 0 20px 10px rgba(255,248,224,0.3); animation: cd-window 4s ease-in-out infinite alternate; }
.scn-crew-details .lamp { position:absolute; top:10%; left:10%; width:20px; height:30px; background: radial-gradient(circle at 50% 30%, #ffe080 0%, #c07020 100%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(255,224,128,0.4); animation: cd-lamp 3s ease-in-out infinite alternate; }
.scn-crew-details .chart { position:absolute; bottom:18%; left:30%; width:100px; height:70px; background: linear-gradient(135deg, #f0e8c0 0%, #d4c090 40%, #b09860 100%); border-radius: 4px; transform: rotate(3deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: cd-chart 8s ease-in-out infinite; }
@keyframes cd-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cd-figure-left { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes cd-figure-right { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-4px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes cd-window { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes cd-lamp { 0% { transform: scale(1) ; filter: brightness(0.9) } 50% { transform: scale(1.05); filter: brightness(1.1) } 100% { transform: scale(0.95); filter: brightness(0.95) } }
@keyframes cd-chart { 0% { transform: rotate(3deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(5deg) } }

/* assessing-hornby-character */
.scn-assessing-hornby-character { background: linear-gradient(180deg, #d4b87a 0%, #c0985a 50%, #a07840 100%), radial-gradient(ellipse at 70% 20%, #ffd090 0%, transparent 70%); }
.scn-assessing-hornby-character .bg-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d4a0 0%, #d0b880 100%); animation: ah-bg 15s ease-in-out infinite alternate; }
.scn-assessing-hornby-character .wainscot { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a1a 100%); border-top: 4px solid #5a3a10; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-assessing-hornby-character .chair { position:absolute; bottom:15%; left:15%; width:70px; height:90px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: ah-chair 4s ease-in-out infinite; }
.scn-assessing-hornby-character .sitter { position:absolute; bottom:25%; left:12%; width:50px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ah-sitter 6s ease-in-out infinite; }
.scn-assessing-hornby-character .window-light { position:absolute; top:5%; right:5%; width:80px; height:120px; background: linear-gradient(180deg, #fff8e0 0%, #e8d4a0 100%); border: 4px solid #6a4a2a; border-radius: 4px; box-shadow: 0 0 30px 20px rgba(255,248,224,0.3); animation: ah-window 5s ease-in-out infinite alternate; }
.scn-assessing-hornby-character .frame-shadow { position:absolute; top:-2%; right:2%; width:90px; height:130px; background: transparent; border: 6px solid #3a2a1a; border-radius: 6px; box-shadow: 0 0 0 2px rgba(0,0,0,0.1); pointer-events: none; animation: ah-shadow 7s ease-in-out infinite; }
@keyframes ah-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ah-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ah-sitter { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes ah-window { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(0.97) } }
@keyframes ah-shadow { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* arrangement-for-captain */
.scn-arrangement-for-captain { background: linear-gradient(180deg, #b0d4e8 0%, #8ab8d4 40%, #6090b0 100%), radial-gradient(ellipse at 50% 100%, #d0e8f0 0%, transparent 70%); }
.scn-arrangement-for-captain .sky { position:absolute; inset:0; background: linear-gradient(180deg, #d0e8f8 0%, #a0c8e0 60%, #78a8c8 100%); animation: afc-sky 25s ease-in-out infinite alternate; }
.scn-arrangement-for-captain .clouds { position:absolute; top:5%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 20% 50%, rgba(255,255,255,0.5) 0%, transparent 50%), radial-gradient(ellipse at 80% 50%, rgba(255,255,255,0.3) 0%, transparent 40%); filter: blur(8px); animation: afc-clouds 40s linear infinite; }
.scn-arrangement-for-captain .buildings { position:absolute; bottom:40%; left:0; right:0; height:35%; background: linear-gradient(180deg, #d4c8a0 0%, #b8a884 40%, #8a7a5e 100%); background-size: 20% 100%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.2); }
.scn-arrangement-for-captain .pavement { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8b898 0%, #a09070 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,0.15); }
.scn-arrangement-for-captain .cafe-table { position:absolute; bottom:15%; left:50%; width:120px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 10px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: afc-table 8s ease-in-out infinite; }
.scn-arrangement-for-captain .chair-left { position:absolute; bottom:20%; left:25%; width:50px; height:70px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-5deg); animation: afc-chair-left 6s ease-in-out infinite; }
.scn-arrangement-for-captain .chair-right { position:absolute; bottom:20%; right:25%; width:50px; height:70px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(5deg); animation: afc-chair-right 6s ease-in-out infinite 0.5s; }
@keyframes afc-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes afc-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(80vw) } }
@keyframes afc-table { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) } }
@keyframes afc-chair-left { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(-6deg) } }
@keyframes afc-chair-right { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(6deg) } }

/* dinner-invitation */
.scn-dinner-invitation { background: linear-gradient(180deg, #f0d8a0 0%, #d0b880 40%, #a09060 100%), radial-gradient(ellipse at 50% 80%, #ffe8c0 0%, transparent 70%); }
.scn-dinner-invitation .terrace-rail { position:absolute; bottom:40%; left:0; right:0; height:5%; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a1a 100%); border-top: 4px solid #5a3a10; box-shadow: 0 -2px 6px rgba(0,0,0,0.3); }
.scn-dinner-invitation .sea { position:absolute; bottom:45%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8ab8d4 0%, #6a98b0 100%); animation: din-sea 12s ease-in-out infinite alternate; }
.scn-dinner-invitation .bottle { position:absolute; bottom:10%; left:50%; width:30px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #4a6a2a 0%, #2a4a1a 50%, #1a3a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: din-bottle 4s ease-in-out infinite; }
.scn-dinner-invitation .glass-left { position:absolute; bottom:15%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #d0e0f0 0%, #b0c8e0 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); transform: rotate(-8deg); animation: din-glass-left 5s ease-in-out infinite; }
.scn-dinner-invitation .glass-right { position:absolute; bottom:15%; right:35%; width:20px; height:40px; background: linear-gradient(180deg, #d0e0f0 0%, #b0c8e0 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); transform: rotate(8deg); animation: din-glass-right 5s ease-in-out infinite 0.3s; }
.scn-dinner-invitation .napkin { position:absolute; bottom:8%; left:40%; right:40%; height:8%; background: linear-gradient(135deg, #f0e8d0 0%, #e8dcc0 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); animation: din-napkin 7s ease-in-out infinite; }
@keyframes din-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes din-bottle { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes din-glass-left { 0% { transform: rotate(-8deg) } 50% { transform: rotate(-4deg) } 100% { transform: rotate(-8deg) } }
@keyframes din-glass-right { 0% { transform: rotate(8deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(8deg) } }
@keyframes din-napkin { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* petersburg-princess-assurance */
.scn-petersburg-princess-assurance {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e8d5b8 40%, #d4c0a0 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 60%);
}
.scn-petersburg-princess-assurance .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e2cc 0%, #e0cba8 100%); }
.scn-petersburg-princess-assurance .window-frame { position:absolute; top:8%; left:20%; width:35%; height:45%; background: #b8a080; border-radius: 4px; box-shadow: inset 0 0 0 6px #8a7050; }
.scn-petersburg-princess-assurance .curtain-left { position:absolute; top:8%; left:17%; width:18%; height:52%; background: linear-gradient(135deg, #c8a060 0%, #b89050 50%, #a07840 100%); border-radius: 0 60% 60% 0 / 0 40% 40% 0; transform-origin: left center; animation: spa-curt 8s ease-in-out infinite alternate; }
.scn-petersburg-princess-assurance .curtain-right { position:absolute; top:8%; right:17%; width:18%; height:52%; background: linear-gradient(-135deg, #c8a060 0%, #b89050 50%, #a07840 100%); border-radius: 60% 0 0 60% / 40% 0 0 40%; transform-origin: right center; animation: spa-curt 8s ease-in-out infinite alternate-reverse; }
.scn-petersburg-princess-assurance .tea-table { position:absolute; bottom:32%; left:40%; width:22%; height:12%; background: #684828; border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-petersburg-princess-assurance .chair { position:absolute; bottom:30%; left:38%; width:14%; height:25%; background: linear-gradient(180deg, #8a6630 0%, #6a4e22 100%); border-radius: 30% 30% 10% 10%; }
.scn-petersburg-princess-assurance .figure-seated { position:absolute; bottom:26%; left:40%; width:8%; height:20%; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 60%, #8a7050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spa-bob 5s ease-in-out infinite; }
.scn-petersburg-princess-assurance .figure-standing { position:absolute; bottom:22%; left:64%; width:6%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%); border-radius: 45% 45% 35% 35% / 70% 70% 35% 35%; transform-origin: bottom center; animation: spa-stand 6s ease-in-out infinite; }
.scn-petersburg-princess-assurance .lamp-glow { position:absolute; bottom:34%; left:28%; width:4%; height:6%; background: radial-gradient(circle, #ffd080 0%, #ffe0a0 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 15px #ffd080; animation: spa-lamp 4s ease-in-out infinite alternate; }
@keyframes spa-curt { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.08) } 100% { transform: scaleX(0.95) } }
@keyframes spa-bob { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes spa-stand { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes spa-lamp { 0% { box-shadow: 0 0 20px 10px #ffd080; opacity:0.9 } 50% { box-shadow: 0 0 35px 20px #ffd080; opacity:1 } 100% { box-shadow: 0 0 25px 12px #ffd080; opacity:0.85 } }

/* petersburg-princess-revolution */
.scn-petersburg-princess-revolution {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #7a5a3a 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 80% 30%, #cc8844 0%, transparent 50%);
}
.scn-petersburg-princess-revolution .room-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3a2a 0%, #6a4a2a 100%); }
.scn-petersburg-princess-revolution .fireplace { position:absolute; bottom:20%; left:15%; width:30%; height:45%; background: #4a3020; border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 30px 10px rgba(0,0,0,0.5); }
.scn-petersburg-princess-revolution .fire { position:absolute; bottom:38%; left:20%; width:20%; height:18%; background: radial-gradient(ellipse at 50% 100%, #ff8844 0%, #cc4400 70%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: spr-fire 0.5s ease-in-out infinite alternate; box-shadow: 0 0 40px 20px #ff6600; }
.scn-petersburg-princess-revolution .desk { position:absolute; bottom:22%; right:10%; width:20%; height:10%; background: #3a2210; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-petersburg-princess-revolution .papers { position:absolute; bottom:28%; right:13%; width:12%; height:6%; background: #e0d0a0; border-radius: 2px; transform: rotate(-5deg); animation: spr-papers 3s ease-in-out infinite alternate; }
.scn-petersburg-princess-revolution .figure-arm-up { position:absolute; bottom:18%; left:20%; width:8%; height:32%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spr-figure 2s ease-in-out infinite; }
.scn-petersburg-princess-revolution .shadow-sharp { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); filter: blur(8px); }
@keyframes spr-fire { 0% { transform: scale(1) skewX(-5deg) } 50% { transform: scale(1.15) skewX(5deg) } 100% { transform: scale(1) skewX(0deg) } }
@keyframes spr-papers { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-4px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes spr-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-8px) rotate(4deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* petersburg-princess-story */
.scn-petersburg-princess-story {
  background:
    linear-gradient(180deg, #f0e4d0 0%, #e4d0b8 50%, #d0b898 100%),
    radial-gradient(ellipse at 30% 40%, #ffe8c0 0%, transparent 60%);
}
.scn-petersburg-princess-story .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-petersburg-princess-story .rocking-chair { position:absolute; bottom:20%; left:20%; width:18%; height:25%; background: #684828; border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sps-rock 6s ease-in-out infinite; }
.scn-petersburg-princess-story .lamp-topped { position:absolute; bottom:30%; right:25%; width:8%; height:14%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 20% 20% 40% 40%; }
.scn-petersburg-princess-story .cat-silhouette { position:absolute; bottom:18%; left:30%; width:6%; height:8%; background: #1a1a00; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: sps-cat 9s ease-in-out infinite; }
.scn-petersburg-princess-story .figure-sitting { position:absolute; bottom:22%; left:22%; width:10%; height:22%; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 60%, #8a7050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sps-sit 5s ease-in-out infinite; }
.scn-petersburg-princess-story .book-open { position:absolute; bottom:28%; left:24%; width:10%; height:6%; background: #c0a080; border-radius: 10%; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: sps-book 7s ease-in-out infinite alternate; }
.scn-petersburg-princess-story .drapes { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(135deg, #a08060 0%, #6a5030 100%); border-radius: 0 80% 0 0 / 0 100% 0 0; filter: blur(2px); }
@keyframes sps-rock { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(0deg) } }
@keyframes sps-cat { 0% { transform: translateY(0) scaleX(-1) } 50% { transform: translateY(-3px) scaleX(-1) scale(1.05) } 100% { transform: translateY(0) scaleX(-1) } }
@keyframes sps-sit { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sps-book { 0% { transform: rotate(8deg) scale(1) } 50% { transform: rotate(12deg) scale(1.02) } 100% { transform: rotate(8deg) scale(1) } }

/* petersburg-woodroffe-question */
.scn-petersburg-woodroffe-question {
  background:
    linear-gradient(180deg, #e8d5b8 0%, #d0b898 40%, #c0a080 100%),
    radial-gradient(ellipse at 50% 30%, #ffe0b0 0%, transparent 70%);
}
.scn-petersburg-woodroffe-question .back-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #dcc8a8 0%, #c8b090 100%); }
.scn-petersburg-woodroffe-question .desk-angled { position:absolute; bottom:25%; left:30%; width:40%; height:12%; background: #684828; transform: skewX(-10deg); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-petersburg-woodroffe-question .candle { position:absolute; bottom:40%; left:42%; width:4%; height:12%; background: linear-gradient(180deg, #e0c080 0%, #c8a060 100%); border-radius: 20%; box-shadow: 0 0 20px 10px #ffd88f; animation: spw-candle 5s ease-in-out infinite alternate; }
.scn-petersburg-woodroffe-question .figure-left { position:absolute; bottom:18%; left:25%; width:8%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spw-figL 4s ease-in-out infinite; }
.scn-petersburg-woodroffe-question .figure-right { position:absolute; bottom:18%; right:25%; width:8%; height:28%; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 60%, #8a7050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: spw-figR 5s ease-in-out infinite; }
.scn-petersburg-woodroffe-question .shadow-pool { position:absolute; bottom:0; left:20%; width:60%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%); filter: blur(10px); }
.scn-petersburg-woodroffe-question .letter-seal { position:absolute; bottom:33%; left:44%; width:4%; height:4%; background: radial-gradient(circle, #cc6600 0%, #994400 100%); border-radius: 50%; box-shadow: 0 0 8px 2px #cc6600; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
@keyframes spw-candle { 0% { transform: translateY(0) scaleY(1); box-shadow: 0 0 15px 8px #ffd88f } 50% { transform: translateY(-3px) scaleY(1.05); box-shadow: 0 0 25px 12px #ffd88f } 100% { transform: translateY(0) scaleY(1); box-shadow: 0 0 15px 8px #ffd88f } }
@keyframes spw-figL { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes spw-figR { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-returning-home {
  background:
    radial-gradient(ellipse at 50% 100%, #1e1e3a 0%, transparent 70%),
    linear-gradient(180deg, #0d0d1f 0%, #1a1a30 40%, #2a2a44 100%);
}
.scn-returning-home .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); animation: rh-wall 20s ease-in-out infinite alternate; }
.scn-returning-home .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-returning-home .table { position:absolute; bottom:18%; left:50%; transform:translateX(-50%); width:140px; height:15px; background: #3a2a1a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-returning-home .butler { position:absolute; bottom:18%; left:25%; width:25px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rh-butler 6s ease-in-out infinite; }
.scn-returning-home .figure { position:absolute; bottom:18%; left:55%; 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: rh-figure 8s ease-in-out infinite; }
.scn-returning-home .candle { position:absolute; bottom:32%; left:50%; width:4px; height:12px; background: #c8a050; border-radius: 2px 2px 4px 4px; transform:translateX(-50%); }
.scn-returning-home .candle::before { content:''; position:absolute; top:-8px; left:-1px; width:6px; height:8px; background: radial-gradient(circle, #ffd680 0%, #ff8c00 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 12px 4px #ffa030; animation: rh-flame 2s ease-in-out infinite alternate; }
.scn-returning-home .window { position:absolute; top:10%; right:10%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 50%, #0a0a1a 0%, #1a1a2a 100%); border:2px solid #2a2a3e; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.8); }
.scn-returning-home .plate { position:absolute; bottom:20%; left:46%; width:30px; height:8px; background: #4a3a2a; border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: rh-plate 10s ease-in-out infinite; }
@keyframes rh-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rh-butler { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) } }
@keyframes rh-figure { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(2px) rotate(1deg) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) } }
@keyframes rh-flame { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 50% { transform: scaleY(1.2) scaleX(.8); opacity:1 } 100% { transform: scaleY(.9) scaleX(1.1); opacity:.85 } }
@keyframes rh-plate { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) } }

.scn-who-was-the-woman {
  background:
    radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%),
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #2a2a44 100%);
}
.scn-who-was-the-woman .dark-room { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #2a2a44 0%, #0a0a1a 80%); }
.scn-who-was-the-woman .table { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:120px; height:12px; background: #2a1a0a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-who-was-the-woman .figure { position:absolute; bottom:20%; left:40%; width:28px; height:55px; background: linear-gradient(180deg, #1e1e30 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ww-figure 7s ease-in-out infinite; }
.scn-who-was-the-woman .plate-fork { position:absolute; bottom:22%; left:55%; width:40px; height:10px; background: #3a2a1a; border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: ww-plate 12s ease-in-out infinite; }
.scn-who-was-the-woman .woman-silhouette { position:absolute; bottom:10%; right:15%; width:20px; height:50px; background: #0a0a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.6; filter: blur(1px); animation: ww-woman 9s ease-in-out infinite; }
.scn-who-was-the-woman .candle { position:absolute; bottom:28%; left:50%; width:4px; height:14px; background: #c8a050; border-radius: 2px; transform:translateX(-50%); }
.scn-who-was-the-woman .candle::before { content:''; position:absolute; top:-10px; left:-1px; width:6px; height:10px; background: radial-gradient(circle, #ffe0a0 0%, #ff8c00 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 16px 6px #ffa030; animation: ww-flame 2.5s ease-in-out infinite alternate; }
.scn-who-was-the-woman .curtain { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(90deg, #1a1a2e 0%, transparent 30%, transparent 70%, #1a1a2e 100%); pointer-events:none; animation: ww-curtain 15s ease-in-out infinite alternate; }
@keyframes ww-figure { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(2deg) } 70% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) } }
@keyframes ww-plate { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ww-woman { 0% { opacity:.4; transform: translateX(0) } 50% { opacity:.7; transform: translateX(5px) } 100% { opacity:.4; transform: translateX(0) } }
@keyframes ww-flame { 0% { transform: scaleY(1) scaleX(1); opacity:.85 } 50% { transform: scaleY(1.3) scaleX(.8); opacity:1 } 100% { transform: scaleY(.8) scaleX(1.1); opacity:.9 } }
@keyframes ww-curtain { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }

.scn-trying-to-distract {
  background:
    radial-gradient(ellipse at 50% 60%, #2a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #1a1a0a 0%, #2a2a1a 50%, #3a3a2a 100%);
}
.scn-trying-to-distract .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); }
.scn-trying-to-distract .table-green { position:absolute; bottom:20%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%; box-shadow: inset 0 4px 10px rgba(0,0,0,.5), 0 6px 12px rgba(0,0,0,.4); animation: td-table 18s ease-in-out infinite alternate; }
.scn-trying-to-distract .cue-a { position:absolute; bottom:35%; left:15%; width:6px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(-20deg); transform-origin: bottom center; animation: td-cue-a 4s ease-in-out infinite; }
.scn-trying-to-distract .cue-b { position:absolute; bottom:35%; left:70%; width:6px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(15deg); transform-origin: bottom center; animation: td-cue-b 5s ease-in-out infinite; }
.scn-trying-to-distract .ball { position:absolute; bottom:32%; left:40%; width:14px; height:14px; background: radial-gradient(circle, #f0e8d0 0%, #b0a8a0 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: td-ball 3s ease-in-out infinite; }
.scn-trying-to-distract .figure-unc { position:absolute; bottom:18%; left:20%; width:30px; 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: td-figure-unc 6s ease-in-out infinite; }
.scn-trying-to-distract .figure-prot { position:absolute; bottom:18%; left:70%; width:28px; height:58px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: td-figure-prot 7s ease-in-out infinite; }
.scn-trying-to-distract .lamp { position:absolute; top:30%; left:50%; transform:translateX(-50%); width:20px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 50% 50% / 10% 10% 40% 40%; box-shadow: 0 0 20px 6px #c8a050; animation: td-lamp 3s ease-in-out infinite alternate; }
@keyframes td-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) } 100% { transform: scaleY(1) } }
@keyframes td-cue-a { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-20deg) } }
@keyframes td-cue-b { 0% { transform: rotate(15deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(15deg) } }
@keyframes td-ball { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(10px) translateY(-5px) } 50% { transform: translateX(20px) translateY(0) } 75% { transform: translateX(30px) translateY(-5px) } 100% { transform: translateX(40px) translateY(0) } }
@keyframes td-figure-unc { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes td-figure-prot { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) } }
@keyframes td-lamp { 0% { box-shadow: 0 0 15px 4px #c8a050; opacity:.9 } 50% { box-shadow: 0 0 30px 8px #e0b860; opacity:1 } 100% { box-shadow: 0 0 18px 5px #c8a050; opacity:.85 } }

.scn-sleepless-night {
  background:
    radial-gradient(ellipse at 50% 0%, #1a1a3e 0%, transparent 70%),
    linear-gradient(180deg, #0a0a1f 0%, #1a1a35 60%, #2a2a4e 100%);
}
.scn-sleepless-night .window-frame { position:absolute; top:5%; left:15%; width:70%; height:90%; border:6px solid #1a1a2e; border-radius: 8px; background: transparent; }
.scn-sleepless-night .night-sky { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(180deg, #0a0a1f 0%, #1a1a35 100%); }
.scn-sleepless-night .clouds { position:absolute; top:15%; left:0; width:100%; height:20%; background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, transparent 100%); filter: blur(4px); animation: sn-clouds 30s linear infinite; }
.scn-sleepless-night .rain { position:absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(0deg, transparent 0px, transparent 8px, rgba(255,255,255,.15) 8px, rgba(255,255,255,.15) 10px); animation: sn-rain 1s linear infinite; }
.scn-sleepless-night .woods { position:absolute; bottom:10%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); border-radius: 60% 60% 0 0 / 30% 30% 0 0; clip-path: polygon(0% 100%, 10% 40%, 20% 60%, 30% 30%, 40% 50%, 50% 20%, 60% 40%, 70% 25%, 80% 45%, 90% 35%, 100% 100%); animation: sn-woods 20s ease-in-out infinite alternate; }
.scn-sleepless-night .figure-at-window { position:absolute; bottom:5%; left:45%; width:24px; height:50px; background: #0a0a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sn-figure 6s ease-in-out infinite; }
.scn-sleepless-night .curtain-left { position:absolute; top:0; left:10%; width:8%; height:95%; background: linear-gradient(90deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 0 20px 20px 0; animation: sn-curtain-l 15s ease-in-out infinite alternate; }
.scn-sleepless-night .curtain-right { position:absolute; top:0; right:10%; width:8%; height:95%; background: linear-gradient(90deg, #0a0a1a 0%, #1a1a2e 100%); border-radius: 20px 0 0 20px; animation: sn-curtain-r 15s ease-in-out infinite alternate; }
@keyframes sn-clouds { 0% { transform: translateX(-10%) } 100% { transform: translateX(110%) } }
@keyframes sn-rain { 0% { background-position: 0 0 } 100% { background-position: 0 20px } }
@keyframes sn-woods { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(1) } }
@keyframes sn-figure { 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) } }
@keyframes sn-curtain-l { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes sn-curtain-r { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

/* petersburg-escape-plan */
.scn-petersburg-escape-plan {
  background:
    linear-gradient(180deg, #2d1d0e 0%, #4a3520 30%, #6b4f33 60%, #8b6b44 100%), 
    radial-gradient(ellipse at 30% 70%, #f0c060 0%, transparent 50%);
}
.scn-petersburg-escape-plan .pe-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #5a3e24 0%, #7a5a38 50%, #5a3e24 100%);
  border-bottom: 4px solid #3a2a18;
}
.scn-petersburg-escape-plan .pe-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a18 0%, #2a1a0c 100%);
}
.scn-petersburg-escape-plan .pe-window {
  position: absolute; top: 12%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a4a6a 100%);
  border: 6px solid #4a3520; border-radius: 4px;
  box-shadow: inset 0 0 30px #f0c060;
  animation: pe-window 10s ease-in-out infinite alternate;
}
.scn-petersburg-escape-plan .pe-city {
  position: absolute; top: 15%; left: 22%; width: 26%; height: 34%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, transparent 60%);
  clip-path: polygon(10% 100%, 20% 40%, 30% 100%, 45% 50%, 55% 100%, 70% 30%, 80% 100%);
  animation: pe-city 20s linear infinite;
  filter: blur(2px);
}
.scn-petersburg-escape-plan .pe-desk {
  position: absolute; bottom: 25%; left: 10%; width: 50%; height: 15%;
  background: linear-gradient(180deg, #6a4e30 0%, #4a3420 100%);
  border-radius: 2px; box-shadow: 0 -2px 8px rgba(0,0,0,0.5);
}
.scn-petersburg-escape-plan .pe-chair {
  position: absolute; bottom: 25%; left: 15%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a3e24 0%, #3a2a18 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-petersburg-escape-plan .pe-figure-a {
  position: absolute; bottom: 25%; left: 40%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 50%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-fig-a 4s ease-in-out infinite;
}
.scn-petersburg-escape-plan .pe-figure-b {
  position: absolute; bottom: 25%; left: 55%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-fig-b 6s ease-in-out infinite;
}
.scn-petersburg-escape-plan .pe-lamp {
  position: absolute; top: 8%; left: 45%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #c0a060 0%, #8b6b44 100%);
  border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px #f0d060, 0 0 60px 20px rgba(240,208,96,0.4);
  animation: pe-lamp 3s ease-in-out infinite alternate;
}
@keyframes pe-window {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes pe-city {
  0% { transform: translateX(0); }
  100% { transform: translateX(-10px); }
}
@keyframes pe-fig-a {
  0%,100% { transform: translate(0,0) rotate(-1deg); }
  50% { transform: translate(3px,-2px) rotate(1deg); }
}
@keyframes pe-fig-b {
  0%,100% { transform: translate(0,0) rotate(1deg); }
  50% { transform: translate(-2px,-1px) rotate(-1deg); }
}
@keyframes pe-lamp {
  0% { opacity: 0.9; box-shadow: 0 0 20px 8px #f0d060, 0 0 40px 15px rgba(240,208,96,0.3); }
  100% { opacity: 1; box-shadow: 0 0 40px 15px #f0d060, 0 0 80px 30px rgba(240,208,96,0.5); }
}

/* petersburg-woodroffe-trap */
.scn-petersburg-woodroffe-trap {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a4030 40%, #7a6050 100%),
    radial-gradient(circle at 80% 40%, #f0c060 0%, transparent 60%);
}
.scn-petersburg-woodroffe-trap .pw-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #4a3420 0%, #6a4e30 50%, #4a3420 100%);
}
.scn-petersburg-woodroffe-trap .pw-door {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #5a3e24 0%, #3a2a18 100%);
  border: 4px solid #2a1a0c;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  transform-origin: right center;
  animation: pw-door 2s ease-in-out infinite alternate;
}
.scn-petersburg-woodroffe-trap .pw-shadow {
  position: absolute; bottom: 20%; left: 5%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, transparent 70%);
  filter: blur(8px);
  animation: pw-shadow 3s ease-in-out infinite alternate;
}
.scn-petersburg-woodroffe-trap .pw-desk {
  position: absolute; bottom: 20%; left: 10%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #6a4e30 0%, #4a3420 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.6);
}
.scn-petersburg-woodroffe-trap .pw-chair {
  position: absolute; bottom: 20%; left: 25%; width: 18%; height: 28%;
  background: linear-gradient(180deg, #5a3e24 0%, #3a2a18 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
}
.scn-petersburg-woodroffe-trap .pw-figure {
  position: absolute; bottom: 20%; left: 40%; width: 12%; height: 36%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pw-fig 5s ease-in-out infinite;
}
.scn-petersburg-woodroffe-trap .pw-lamp {
  position: absolute; top: 8%; left: 35%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #c0a060 0%, #8b6b44 100%);
  border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px #f0d060, 0 0 60px 20px rgba(240,208,96,0.4);
  animation: pw-lamp 2s ease-in-out infinite alternate;
}
.scn-petersburg-woodroffe-trap .pw-paper {
  position: absolute; bottom: 22%; left: 30%; width: 8%; height: 10%;
  background: linear-gradient(135deg, #d0c0a0 0%, #f0e0c0 100%);
  transform: rotate(15deg);
  border-radius: 2px;
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
  animation: pw-paper 4s ease-in-out infinite;
}
@keyframes pw-door {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes pw-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  100% { opacity: 0.6; transform: scaleX(1.2); }
}
@keyframes pw-fig {
  0%,100% { transform: translate(0,0) rotate(-2deg); }
  50% { transform: translate(-2px,1px) rotate(2deg); }
}
@keyframes pw-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 15px 5px #f0d060; }
  100% { opacity: 1; box-shadow: 0 0 40px 15px #f0d060, 0 0 80px 30px rgba(240,208,96,0.3); }
}
@keyframes pw-paper {
  0%,100% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(18deg) translateX(2px); }
}

/* petersburg-trust-me */
.scn-petersburg-trust-me {
  background:
    linear-gradient(135deg, #4a3020 0%, #6a4a30 50%, #3a2010 100%),
    radial-gradient(circle at 50% 30%, #f0c060 0%, transparent 70%);
}
.scn-petersburg-trust-me .pt-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #5a3e24 0%, #7a5a38 50%, #5a3e24 100%);
}
.scn-petersburg-trust-me .pt-table {
  position: absolute; bottom: 30%; left: 15%; width: 70%; height: 12%;
  background: linear-gradient(180deg, #6a4e30 0%, #4a3420 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.5);
}
.scn-petersburg-trust-me .pt-chair-left {
  position: absolute; bottom: 30%; left: 20%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #5a3e24 0%, #3a2a18 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
}
.scn-petersburg-trust-me .pt-chair-right {
  position: absolute; bottom: 30%; right: 20%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #5a3e24 0%, #3a2a18 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
}
.scn-petersburg-trust-me .pt-figure-left {
  position: absolute; bottom: 30%; left: 25%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 50%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-left 5s ease-in-out infinite;
}
.scn-petersburg-trust-me .pt-figure-right {
  position: absolute; bottom: 30%; right: 25%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pt-right 4s ease-in-out infinite;
}
.scn-petersburg-trust-me .pt-hand {
  position: absolute; bottom: 40%; left: 38%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: pt-hand 3s ease-in-out infinite alternate;
}
.scn-petersburg-trust-me .pt-lamp {
  position: absolute; top: 8%; left: 45%; width: 5%; height: 12%;
  background: linear-gradient(180deg, #c0a060 0%, #8b6b44 100%);
  border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px #f0d060, 0 0 60px 20px rgba(240,208,96,0.4);
  animation: pt-lamp 2.5s ease-in-out infinite alternate;
}
@keyframes pt-left {
  0%,100% { transform: translate(0,0) rotate(-1deg); }
  50% { transform: translate(2px,-1px) rotate(1deg); }
}
@keyframes pt-right {
  0%,100% { transform: translate(0,0) rotate(1deg); }
  50% { transform: translate(-2px,-1px) rotate(-1deg); }
}
@keyframes pt-hand {
  0% { transform: translateX(0) rotate(-5deg); }
  100% { transform: translateX(10px) rotate(5deg); }
}
@keyframes pt-lamp {
  0% { opacity: 0.85; box-shadow: 0 0 20px 8px #f0d060; }
  100% { opacity: 1; box-shadow: 0 0 45px 18px #f0d060, 0 0 90px 35px rgba(240,208,96,0.4); }
}

/* item-letter-olga */
.scn-item-letter-olga {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a4030 40%, #7a6050 100%),
    radial-gradient(circle at 40% 30%, #f0d080 0%, transparent 70%);
}
.scn-item-letter-olga .lo-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #5a3e24 0%, #7a5a38 50%, #5a3e24 100%);
}
.scn-item-letter-olga .lo-desk {
  position: absolute; bottom: 25%; left: 10%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #6a4e30 0%, #4a3420 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.5);
}
.scn-item-letter-olga .lo-lamp {
  position: absolute; top: 12%; left: 35%; width: 5%; height: 14%;
  background: linear-gradient(180deg, #d0a850 0%, #a08030 100%);
  border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 0 40px 15px #f0d080, 0 0 80px 30px rgba(240,208,128,0.5);
  animation: lo-lamp 3s ease-in-out infinite alternate;
}
.scn-item-letter-olga .lo-figure {
  position: absolute; bottom: 25%; left: 25%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lo-fig 6s ease-in-out infinite;
}
.scn-item-letter-olga .lo-figure::before {
  content: '';
  position: absolute; top: 10%; left: -20%; width: 30%; height: 30%;
  background: radial-gradient(circle, #1a0e06 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-item-letter-olga .lo-letter {
  position: absolute; bottom: 30%; left: 35%; width: 12%; height: 16%;
  background: linear-gradient(135deg, #e0d0b0 0%, #f0e0c0 100%);
  transform: rotate(-5deg);
  border-radius: 2px;
  box-shadow: 1px 1px 6px rgba(0,0,0,0.2);
  animation: lo-letter 4s ease-in-out infinite alternate;
}
.scn-item-letter-olga .lo-envelope {
  position: absolute; bottom: 28%; left: 32%; width: 10%; height: 8%;
  background: linear-gradient(135deg, #c0b090 0%, #e0d0b0 100%);
  transform: rotate(10deg);
  border-radius: 2px;
  box-shadow: 1px 1px 4px rgba(0,0,0,0.15);
  animation: lo-env 5s ease-in-out infinite alternate;
}
.scn-item-letter-olga .lo-hand {
  position: absolute; bottom: 33%; left: 30%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0603 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-20deg);
  transform-origin: bottom left;
  animation: lo-hand 3s ease-in-out infinite alternate;
}
@keyframes lo-lamp {
  0% { opacity: 0.9; box-shadow: 0 0 25px 10px #f0d080; }
  100% { opacity: 1; box-shadow: 0 0 50px 20px #f0d080, 0 0 100px 40px rgba(240,208,128,0.4); }
}
@keyframes lo-fig {
  0%,100% { transform: translate(0,0) rotate(-2deg); }
  50% { transform: translate(1px,-1px) rotate(2deg); }
}
@keyframes lo-letter {
  0% { transform: rotate(-5deg) scale(1); }
  100% { transform: rotate(-3deg) scale(1.05); }
}
@keyframes lo-env {
  0% { transform: rotate(10deg) scale(1); }
  100% { transform: rotate(8deg) scale(0.95); }
}
@keyframes lo-hand {
  0% { transform: rotate(-20deg) translateX(0); }
  100% { transform: rotate(-10deg) translateX(5px); }
}

.scn-abo-boranski-justification { background: linear-gradient(180deg, #a07858 0%, #7a5a3a 40%, #5a3a2a 100%), radial-gradient(ellipse at 50% 60%, #c8a070 0%, transparent 70%); }
.scn-abo-boranski-justification .wall { position:absolute; inset:0; background: linear-gradient(135deg, #b8926a 0%, #8b6b4b 100%); }
.scn-abo-boranski-justification .window { position:absolute; top:12%; left:60%; width:28%; height:40%; background: linear-gradient(180deg, #e6e0d0 0%, #d4ccb8 100%); border:6px solid #5a3a2a; box-shadow: inset 0 0 30px rgba(200,180,150,0.5); border-radius:4% 4% 8% 8%; }
.scn-abo-boranski-justification .table { position:absolute; bottom:28%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%); border-radius:20% 20% 5% 5% / 40% 40% 10% 10%; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); }
.scn-abo-boranski-justification .figure-left { position:absolute; bottom:32%; left:30%; width:16%; 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: abj-figure-l 4s ease-in-out infinite alternate; }
.scn-abo-boranski-justification .figure-right { position:absolute; bottom:32%; right:30%; width:16%; 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: abj-figure-r 4s ease-in-out infinite alternate; }
.scn-abo-boranski-justification .plate-a { position:absolute; bottom:36%; left:38%; width:8%; height:6%; background: radial-gradient(circle, #c8b898 0%, #a89070 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-abo-boranski-justification .plate-b { position:absolute; bottom:36%; right:38%; width:8%; height:6%; background: radial-gradient(circle, #c8b898 0%, #a89070 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-abo-boranski-justification .light-shaft { position:absolute; top:0; left:60%; width:28%; height:100%; background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, rgba(255,230,180,0.05) 50%, transparent 100%); animation: abj-shaft 8s ease-in-out infinite alternate; }
@keyframes abj-figure-l { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes abj-figure-r { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(2px) rotate(1deg) } }
@keyframes abj-shaft { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.4 } }

.scn-train-journey-solitude { background: linear-gradient(180deg, #b0aaaa 0%, #8a8484 100%), radial-gradient(ellipse at 50% 80%, #c0bbb0 0%, transparent 60%); }
.scn-train-journey-solitude .compartment-wall { position:absolute; inset:0; background: linear-gradient(90deg, #7a7a7a 0%, #6a6a6a 30%, #8a8a8a 70%, #7a7a7a 100%); }
.scn-train-journey-solitude .window-frame { position:absolute; top:10%; left:15%; width:70%; height:50%; border:10px solid #5a5a5a; border-radius:8%; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
.scn-train-journey-solitude .landscape { position:absolute; top:10%; left:15%; width:70%; height:50%; background: linear-gradient(180deg, #a0c8d0 0%, #6090a0 50%, #4a7a8a 100%); border-radius:4%; animation: tjs-landscape 30s linear infinite; }
.scn-train-journey-solitude .landscape::after { content:''; position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a6a4a 0%, #2a5a3a 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; }
.scn-train-journey-solitude .seat { position:absolute; bottom:20%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius:20% 20% 5% 5%; box-shadow: 0 -2px 8px rgba(0,0,0,0.5); }
.scn-train-journey-solitude .figure-solo { position:absolute; bottom:30%; left:30%; width:20%; height:35%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tjs-figure 6s ease-in-out infinite; }
.scn-train-journey-solitude .newspaper { position:absolute; bottom:44%; left:42%; width:14%; height:10%; background: linear-gradient(135deg, #c8c0b0 0%, #b0a898 100%); border-radius:4% 4% 4% 4% / 10% 10% 10% 10%; transform: rotate(10deg); animation: tjs-paper 8s ease-in-out infinite alternate; }
.scn-train-journey-solitude .bag { position:absolute; bottom:22%; right:25%; width:12%; height:8%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
@keyframes tjs-landscape { 0% { background-position: 0 0; } 100% { background-position: -100% 0; } }
@keyframes tjs-figure { 0% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-4px) rotate(1deg); } 66% { transform: translateY(-2px) rotate(0); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tjs-paper { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(8deg) translateX(0); } }

.scn-train-love-thoughts { background: linear-gradient(180deg, #c0b8b0 0%, #a09890 100%), radial-gradient(ellipse at 50% 70%, #d0c8b0 0%, transparent 70%); }
.scn-train-love-thoughts .train-wall { position:absolute; inset:0; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%); }
.scn-train-love-thoughts .window-view { position:absolute; top:8%; left:20%; width:60%; height:45%; background: linear-gradient(180deg, #b0d0e0 0%, #6090b0 100%); border:8px solid #4a3a2a; border-radius:6%; box-shadow: inset 0 0 30px rgba(0,0,0,0.2); }
.scn-train-love-thoughts .sea { position:absolute; top:8%; left:20%; width:60%; height:45%; background: linear-gradient(180deg, transparent 60%, #3a6a8a 60%, #2a5a7a 100%); border-radius:6%; animation: tlt-sea 20s ease-in-out infinite alternate; }
.scn-train-love-thoughts .figure-sitting { position:absolute; bottom:25%; left:30%; width:22%; height:40%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tlt-figure 5s ease-in-out infinite; }
.scn-train-love-thoughts .locket { position:absolute; bottom:48%; left:42%; width:6%; height:8%; background: radial-gradient(circle, #d0b080 0%, #a08050 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(200,170,120,0.5); animation: tlt-glow 3s ease-in-out infinite alternate; }
.scn-train-love-thoughts .hand { position:absolute; bottom:45%; left:38%; width:6%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-20deg); }
@keyframes tlt-sea { 0% { background-position: 0 100%; } 100% { background-position: 0 80%; } }
@keyframes tlt-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes tlt-glow { 0% { box-shadow: 0 0 8px 2px rgba(200,170,120,0.4); } 50% { box-shadow: 0 0 20px 6px rgba(220,190,140,0.7); } 100% { box-shadow: 0 0 8px 2px rgba(200,170,120,0.4); } }

.scn-train-fellow-traveler { background: linear-gradient(180deg, #a89880 0%, #887060 100%), radial-gradient(ellipse at 50% 100%, #b0a090 0%, transparent 60%); }
.scn-train-fellow-traveler .compartment-bg { position:absolute; inset:0; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 40%, #5a4a3a 100%); }
.scn-train-fellow-traveler .big-window { position:absolute; top:10%; left:10%; width:80%; height:45%; background: linear-gradient(180deg, #90b0a0 0%, #507060 100%); border:10px solid #3a2a1a; border-radius:6%; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
.scn-train-fellow-traveler .pine-woods { position:absolute; top:10%; left:10%; width:80%; height:45%; background: repeating-linear-gradient(90deg, #2a4a3a 0px, #3a5a4a 8px, #2a4a3a 16px); border-radius:6%; animation: tft-woods 40s linear infinite; }
.scn-train-fellow-traveler .figure-passenger-a { position:absolute; bottom:25%; left:15%; width:20%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tft-fig-a 5s ease-in-out infinite alternate; }
.scn-train-fellow-traveler .figure-passenger-b { position:absolute; bottom:25%; right:15%; width:20%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tft-fig-b 5s ease-in-out infinite alternate; }
.scn-train-fellow-traveler .smoke { position:absolute; top:20%; right:30%; width:10%; height:20%; background: radial-gradient(ellipse, rgba(200,200,220,0.4) 0%, transparent 70%); filter: blur(8px); animation: tft-smoke 6s ease-in-out infinite; }
.scn-train-fellow-traveler .table-center { position:absolute; bottom:30%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 -2px 6px rgba(0,0,0,0.5); }
@keyframes tft-woods { 0% { background-position: 0 0; } 100% { background-position: -200% 0; } }
@keyframes tft-fig-a { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes tft-fig-b { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes tft-smoke { 0% { opacity:0.3; transform: translateY(0) scale(1); } 50% { opacity:0.8; transform: translateY(-10px) scale(1.2); } 100% { opacity:0.3; transform: translateY(0) scale(1); } }

/* Scene: abo-elma-sighted – tense bright interior, restaurant */
.scn-abo-elma-sighted {
  background: linear-gradient(180deg, #e8dfd0 0%, #cbc2b4 40%, #a3988a 100%),
              radial-gradient(ellipse at 50% 0%, #f5efe6 0%, transparent 60%);
}
.scn-abo-elma-sighted .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d4c9b8 0%, #b8ac9c 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.15); }
.scn-abo-elma-sighted .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #9a8e7e 0%, #7a7062 100%); border-radius: 30% 30% 0 0 / 10% 10% 0 0; }
.scn-abo-elma-sighted .restaurant-table { position:absolute; bottom:30%; left:50%; width:140px; height:12px; transform:translateX(-50%); background: linear-gradient(90deg, #6b5f4f 0%, #8c7e6c 50%, #6b5f4f 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-abo-elma-sighted .chair { position:absolute; bottom:37%; left:42%; width:30px; height:50px; background: linear-gradient(180deg, #4a4036 0%, #2e2621 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-2deg); }
.scn-abo-elma-sighted .figure-woman { position:absolute; bottom:32%; left:50%; width:28px; height:70px; margin-left:-14px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: s1-woman 6s ease-in-out infinite; }
.scn-abo-elma-sighted .window-light { position:absolute; top:8%; left:8%; width:100px; height:70px; background: linear-gradient(135deg, rgba(255,240,200,0.6) 0%, rgba(180,160,120,0.2) 100%); border-radius:4px; filter: blur(4px); animation: s1-window 8s ease-in-out infinite alternate; }
.scn-abo-elma-sighted .chandelier { position:absolute; top:4%; left:50%; width:60px; height:30px; margin-left:-30px; background: radial-gradient(ellipse at 50% 30%, #f0d080 0%, #c0a060 50%, transparent 70%); border-radius: 50% 50% 0 0; box-shadow: 0 0 40px 10px rgba(200,170,80,0.3); animation: s1-chandelier 4s ease-in-out infinite alternate; }
.scn-abo-elma-sighted .shadow-stripe { position:absolute; top:0; left:60%; width:40%; height:100%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.2) 60%, transparent 100%); pointer-events:none; }
@keyframes s1-woman { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes s1-window { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes s1-chandelier { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.9; transform: scaleY(0.98); } }

/* Scene: item-woodroffe-name – tense bright interior, desk with paper */
.scn-item-woodroffe-name {
  background: linear-gradient(180deg, #d2c7b2 0%, #b5a994 50%, #8e8370 100%),
              radial-gradient(ellipse at 70% 20%, #e6dcc8 0%, transparent 50%);
}
.scn-item-woodroffe-name .desk { position:absolute; bottom:20%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #7a6b58 0%, #5a4e3e 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.4); }
.scn-item-woodroffe-name .paper-scrap { position:absolute; bottom:45%; left:40%; width:80px; height:60px; background: #f0e0c0; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3), inset 0 0 4px #d0c0a0; transform: rotate(-5deg); animation: s2-paper 12s ease-in-out infinite; }
.scn-item-woodroffe-name .hand-holding { position:absolute; bottom:42%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #c8b090 0%, #a0846a 100%); border-radius: 40% 40% 10% 10%; transform: rotate(10deg); animation: s2-hand 5s ease-in-out infinite alternate; }
.scn-item-woodroffe-name .inkwell { position:absolute; bottom:44%; left:30%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #3a2a1a 0%, #1a0e06 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-item-woodroffe-name .desk-lamp { position:absolute; bottom:50%; left:60%; width:40px; height:60px; background: linear-gradient(180deg, #b0a080 0%, #706050 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,200,100,0.3); }
.scn-item-woodroffe-name .paper-edge { position:absolute; bottom:46%; left:38%; width:60px; height:4px; background: #d0b890; border-radius: 2px; transform: rotate(3deg); animation: s2-edge 8s ease-in-out infinite alternate; }
@keyframes s2-paper { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes s2-hand { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes s2-edge { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* Scene: abo-train-decision – tense bright interior, railway station */
.scn-abo-train-decision {
  background: linear-gradient(180deg, #e0d6c0 0%, #b8ac98 50%, #8a7e6c 100%),
              radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, transparent 60%);
}
.scn-abo-train-decision .platform-edge { position:absolute; bottom:25%; left:0; right:0; height:8%; background: linear-gradient(90deg, #6a5e4e 0%, #8a7a66 50%, #6a5e4e 100%); box-shadow: 0 -4px 10px rgba(0,0,0,0.3); }
.scn-abo-train-decision .train-body { position:absolute; bottom:25%; left:5%; width:60%; height:35%; background: linear-gradient(90deg, #3a3a3a 0%, #5a5a5a 50%, #3a3a3a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
.scn-abo-train-decision .train-window { position:absolute; bottom:32%; left:15%; width:50px; height:40px; background: radial-gradient(circle, #c0d8e8 0%, #809aae 100%); border-radius: 10px; box-shadow: inset 0 0 10px rgba(0,0,0,0.4); }
.scn-abo-train-decision .station-clock { position:absolute; top:5%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #f5efe0 0%, #c8bea8 70%); border-radius: 50%; border: 4px solid #6a5e4e; box-shadow: 0 4px 12px rgba(0,0,0,0.3); overflow:hidden; }
.scn-abo-train-decision .station-clock::after { content:''; position:absolute; top:50%; left:50%; width:2px; height:25px; background:#3a2e1e; transform-origin: bottom center; transform: translate(-50%,-100%) rotate(0deg); animation: s3-clock 60s linear infinite; }
.scn-abo-train-decision .waiting-bench { position:absolute; bottom:20%; left:50%; width:80px; height:12px; margin-left:-40px; background: linear-gradient(90deg, #5a4e3e 0%, #7a6a56 50%, #5a4e3e 100%); border-radius: 4px; }
.scn-abo-train-decision .traveler-figure { position:absolute; bottom:25%; left:55%; width:20px; height:55px; background: linear-gradient(180deg, #2a2a2a 0%, #0e0e0e 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: s3-traveler 4s ease-in-out infinite; }
.scn-abo-train-decision .timetable-board { position:absolute; top:15%; left:10%; width:40px; height:80px; background: linear-gradient(180deg, #2e2e2e 0%, #1a1a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: s3-board 12s ease-in-out infinite alternate; }
.scn-abo-train-decision .steam-puff { position:absolute; bottom:35%; left:20%; width:60px; height:40px; background: radial-gradient(circle, rgba(255,255,255,0.5) 0%, rgba(200,200,200,0.2) 100%); filter: blur(8px); animation: s3-steam 8s linear infinite; }
@keyframes s3-traveler { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes s3-board { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes s3-steam { 0% { transform: translate(0,0) scale(1); opacity:0.3; } 50% { transform: translate(-10px,-10px) scale(1.2); opacity:0.6; } 100% { transform: translate(-20px,-20px) scale(0.8); opacity:0; } }
@keyframes s3-clock { 0% { transform: translate(-50%,-100%) rotate(0deg); } 100% { transform: translate(-50%,-100%) rotate(360deg); } }

/* Scene: abo-wallet-returned – calm bright interior, police office desk */
.scn-abo-wallet-returned {
  background: linear-gradient(180deg, #e8dec8 0%, #c8bca6 50%, #a89a84 100%),
              radial-gradient(ellipse at 30% 40%, #f5ede0 0%, transparent 60%);
}
.scn-abo-wallet-returned .big-desk { position:absolute; bottom:15%; left:5%; right:5%; height:55%; background: linear-gradient(180deg, #8c7c68 0%, #6a5c4a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.3); }
.scn-abo-wallet-returned .police-chief { position:absolute; bottom:40%; left:30%; width:50px; height:80px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom center; animation: s4-chief 10s ease-in-out infinite; }
.scn-abo-wallet-returned .toying-pen { position:absolute; bottom:48%; left:25%; width:30px; height:4px; background: linear-gradient(90deg, #5a4a3a 0%, #7a664c 50%, #5a4a3a 100%); border-radius: 4px; transform-origin: 0% 50%; animation: s4-pen 4s ease-in-out infinite alternate; }
.scn-abo-wallet-returned .wallet-returned { position:absolute; bottom:40%; left:55%; width:60px; height:40px; background: linear-gradient(180deg, #6a5038 0%, #4a3628 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: s4-wallet 12s ease-in-out infinite; }
.scn-abo-wallet-returned .desk-lamp-calm { position:absolute; bottom:50%; left:65%; width:35px; height:50px; background: linear-gradient(180deg, #b0a080 0%, #706050 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 15px rgba(255,200,100,0.25); animation: s4-lamp 6s ease-in-out infinite alternate; }
.scn-abo-wallet-returned .paper-stack { position:absolute; bottom:38%; left:20%; width:70px; height:20px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
@keyframes s4-chief { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes s4-pen { 0% { transform: rotate(-10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-8deg); } }
@keyframes s4-wallet { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes s4-lamp { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }

.scn-train-fishing-tell {
  background:
    linear-gradient(180deg, #f7f4eb 0%, #e8dfcc 40%, #d9cbb0 100%),
    radial-gradient(ellipse at 30% 60%, rgba(255,235,200,0.3) 0%, transparent 70%);
}
.scn-train-fishing-tell .window {
  position: absolute;
  top: 5%;
  right: 5%;
  width: 30%;
  height: 40%;
  background: linear-gradient(180deg, #add8e6 0%, #87ceeb 50%, #b0e0e6 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.05);
  animation: ft-window 14s ease-in-out infinite alternate;
}
.scn-train-fishing-tell .seat {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 40%;
  height: 15%;
  background: linear-gradient(180deg, #8b7d6b 0%, #6b5d4b 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ft-seat 18s ease-in-out infinite;
}
.scn-train-fishing-tell .figure {
  position: absolute;
  bottom: 22%;
  left: 25%;
  width: 16%;
  height: 30%;
  background: linear-gradient(135deg, #c0a88a 0%, #a68b6e 50%, #7a644c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ft-figure 12s ease-in-out infinite;
}
.scn-train-fishing-tell .rod {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 2%;
  height: 40%;
  background: linear-gradient(180deg, #a0855a 0%, #6b5533 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  transform-origin: bottom;
  animation: ft-rod 8s ease-in-out infinite alternate;
}
.scn-train-fishing-tell .lamp {
  position: absolute;
  top: 8%;
  left: 8%;
  width: 6%;
  height: 8%;
  background: radial-gradient(circle, #fff8e0 0%, #ffe188 60%, #d4a55a 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,225,136,0.4);
  animation: ft-lamp 5s ease-in-out infinite alternate;
}
.scn-train-fishing-tell .shadow {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%);
  animation: ft-shadow 20s ease-in-out infinite;
}
@keyframes ft-window { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes ft-seat { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ft-figure { 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 ft-rod { 0% { transform: rotate(25deg); } 100% { transform: rotate(35deg); } }
@keyframes ft-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(255,225,136,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,225,136,0.6); } 100% { opacity: 0.9; box-shadow: 0 0 25px 8px rgba(255,225,136,0.4); } }
@keyframes ft-shadow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }

.scn-train-suspicion-spy {
  background:
    linear-gradient(180deg, #eae2d6 0%, #d6caba 40%, #b8a88a 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255,230,180,0.2) 0%, transparent 60%);
}
.scn-train-suspicion-spy .window {
  position: absolute;
  top: 5%;
  left: 5%;
  width: 30%;
  height: 40%;
  background: linear-gradient(180deg, #7ec8e3 0%, #4fa6c7 50%, #2e7a9e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: ss-window 10s ease-in-out infinite alternate;
}
.scn-train-suspicion-spy .seat-back {
  position: absolute;
  bottom: 8%;
  right: 10%;
  width: 35%;
  height: 12%;
  background: linear-gradient(180deg, #6b5d4b 0%, #4a3f2f 100%);
  border-radius: 8px 8px 0 0;
  animation: ss-seat 6s ease-in-out infinite;
}
.scn-train-suspicion-spy .figure-a {
  position: absolute;
  bottom: 18%;
  left: 15%;
  width: 14%;
  height: 28%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-figA 3s ease-in-out infinite alternate;
}
.scn-train-suspicion-spy .figure-b {
  position: absolute;
  bottom: 22%;
  right: 20%;
  width: 12%;
  height: 26%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-figB 4s ease-in-out infinite alternate;
}
.scn-train-suspicion-spy .lamp {
  position: absolute;
  top: 8%;
  right: 8%;
  width: 5%;
  height: 7%;
  background: radial-gradient(circle, #fff5cc 0%, #ffd84d 50%, #cc9900 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px rgba(255,216,77,0.5);
  animation: ss-lamp 3s ease-in-out infinite;
}
.scn-train-suspicion-spy .curtain {
  position: absolute;
  top: 5%;
  left: 5%;
  width: 30%;
  height: 40%;
  background: linear-gradient(90deg, rgba(120,80,60,0.6) 0%, transparent 50%);
  border-radius: 4px;
  animation: ss-curtain 8s ease-in-out infinite alternate;
}
@keyframes ss-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ss-seat { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ss-figA { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ss-figB { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-6px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ss-lamp { 0% { opacity: 0.6; box-shadow: 0 0 15px 4px rgba(255,216,77,0.3); } 50% { opacity: 1; box-shadow: 0 0 35px 12px rgba(255,216,77,0.7); } 100% { opacity: 0.7; box-shadow: 0 0 20px 6px rgba(255,216,77,0.4); } }
@keyframes ss-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }

.scn-train-spy-identity {
  background:
    linear-gradient(180deg, #dfd8cc 0%, #c8bfaf 40%, #a69782 100%),
    radial-gradient(ellipse at 40% 20%, rgba(255,220,160,0.15) 0%, transparent 50%);
}
.scn-train-spy-identity .window {
  position: absolute;
  top: 5%;
  left: 5%;
  width: 30%;
  height: 40%;
  background: linear-gradient(180deg, #6ab0d6 0%, #3d8db8 50%, #1f5d7a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 25px rgba(0,0,0,0.2);
  animation: si-window 12s ease-in-out infinite alternate;
}
.scn-train-spy-identity .seat {
  position: absolute;
  bottom: 8%;
  left: 10%;
  width: 35%;
  height: 12%;
  background: linear-gradient(180deg, #5a4d3e 0%, #3a3024 100%);
  border-radius: 8px 8px 0 0;
  animation: si-seat 7s ease-in-out infinite;
}
.scn-train-spy-identity .figure {
  position: absolute;
  bottom: 18%;
  left: 25%;
  width: 14%;
  height: 28%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-figure 4s ease-in-out infinite alternate;
}
.scn-train-spy-identity .mirror {
  position: absolute;
  bottom: 25%;
  right: 15%;
  width: 10%;
  height: 18%;
  background: linear-gradient(180deg, #b8b0a0 0%, #8a7d6b 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,0.3), inset 0 0 15px rgba(255,255,255,0.2);
  animation: si-mirror 6s ease-in-out infinite;
}
.scn-train-spy-identity .lamp {
  position: absolute;
  top: 8%;
  right: 8%;
  width: 5%;
  height: 7%;
  background: radial-gradient(circle, #fff5cc 0%, #ffd84d 50%, #cc9900 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,216,77,0.5);
  animation: si-lamp 3s ease-in-out infinite;
}
.scn-train-spy-identity .bag {
  position: absolute;
  bottom: 10%;
  right: 5%;
  width: 12%;
  height: 10%;
  background: linear-gradient(135deg, #6b5d4b 0%, #4a3f2f 100%);
  border-radius: 20%;
  animation: si-bag 9s ease-in-out infinite;
}
@keyframes si-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes si-seat { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes si-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes si-mirror { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes si-lamp { 0% { opacity: 0.6; box-shadow: 0 0 15px 4px rgba(255,216,77,0.3); } 50% { opacity: 1; box-shadow: 0 0 35px 12px rgba(255,216,77,0.7); } 100% { opacity: 0.7; box-shadow: 0 0 20px 6px rgba(255,216,77,0.4); } }
@keyframes si-bag { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }

.scn-train-plan-escape {
  background:
    linear-gradient(180deg, #e3ddd1 0%, #cbbfb0 40%, #a3917c 100%),
    radial-gradient(ellipse at 60% 50%, rgba(255,210,140,0.1) 0%, transparent 60%);
}
.scn-train-plan-escape .window {
  position: absolute;
  top: 5%;
  right: 5%;
  width: 30%;
  height: 40%;
  background: linear-gradient(180deg, #5a9ec4 0%, #2c7a9e 50%, #1a4a62 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: pe-window 8s ease-in-out infinite alternate;
}
.scn-train-plan-escape .door {
  position: absolute;
  bottom: 5%;
  left: 5%;
  width: 20%;
  height: 40%;
  background: linear-gradient(180deg, #7a6b59 0%, #4a3f2f 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: pe-door 5s ease-in-out infinite;
}
.scn-train-plan-escape .seat {
  position: absolute;
  bottom: 8%;
  left: 30%;
  width: 30%;
  height: 12%;
  background: linear-gradient(180deg, #5a4d3e 0%, #3a3024 100%);
  border-radius: 8px 8px 0 0;
  animation: pe-seat 6s ease-in-out infinite;
}
.scn-train-plan-escape .figure {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 14%;
  height: 28%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-figure 3s ease-in-out infinite alternate;
}
.scn-train-plan-escape .lamp {
  position: absolute;
  top: 8%;
  left: 8%;
  width: 5%;
  height: 7%;
  background: radial-gradient(circle, #fff5cc 0%, #ffd84d 50%, #cc9900 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px rgba(255,216,77,0.5);
  animation: pe-lamp 3s ease-in-out infinite;
}
.scn-train-plan-escape .map {
  position: absolute;
  bottom: 22%;
  right: 10%;
  width: 15%;
  height: 12%;
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a48a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: pe-map 10s ease-in-out infinite;
}
@keyframes pe-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pe-door { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes pe-seat { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pe-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pe-lamp { 0% { opacity: 0.6; box-shadow: 0 0 15px 4px rgba(255,216,77,0.3); } 50% { opacity: 1; box-shadow: 0 0 35px 12px rgba(255,216,77,0.7); } 100% { opacity: 0.7; box-shadow: 0 0 20px 6px rgba(255,216,77,0.4); } }
@keyframes pe-map { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }

.scn-fleet-impression { background: linear-gradient(180deg, #4a6a8a 0%, #6a8a9a 30%, #9ab0c0 60%, #d0d8e0 100%), radial-gradient(ellipse at 50% 30%, #ffffff20 0%, transparent 60%); }
.scn-fleet-impression .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a8a9a 0%, #b0c8d0 60%, transparent 100%); animation: fi-sky 15s ease-in-out infinite alternate; }
.scn-fleet-impression .sea    { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #306080 0%, #1a4060 100%); border-radius: 30% 20% 0 0 / 20% 10% 0 0; box-shadow: inset 0 20px 30px #0a2030; animation: fi-sea 20s ease-in-out infinite alternate; }
.scn-fleet-impression .ship-1 { position:absolute; bottom:38%; left:10%; width:100px; height:50px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 10% 10% 20% 20%; transform: translateY(0) scale(1); animation: fi-ship 30s ease-in-out infinite; }
.scn-fleet-impression .ship-2 { position:absolute; bottom:36%; left:35%; width:130px; height:60px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 10% 10% 20% 20%; transform: translateY(0) scale(1.1); animation: fi-ship 35s ease-in-out infinite 5s; }
.scn-fleet-impression .ship-3 { position:absolute; bottom:40%; right:10%; width:80px; height:40px; background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%); border-radius: 10% 10% 20% 20%; transform: translateY(0) scale(0.9); animation: fi-ship 40s ease-in-out infinite 10s; }
.scn-fleet-impression .sail-1 { position:absolute; bottom:50%; left:12%; width:20px; height:40px; background: linear-gradient(180deg, #d0d8e0 0%, #a0b0c0 100%); border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px #00000040; animation: fi-sail 8s ease-in-out infinite alternate; }
.scn-fleet-impression .sail-2 { position:absolute; bottom:48%; left:40%; width:26px; height:50px; background: linear-gradient(180deg, #c0c8d0 0%, #90a0b0 100%); border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px #00000040; animation: fi-sail 10s ease-in-out infinite alternate 2s; }
.scn-fleet-impression .flag-1 { position:absolute; bottom:55%; left:14%; width:10px; height:6px; background: linear-gradient(90deg, #b87878 0%, #a05858 100%); border-radius: 0 50% 50% 0; animation: fi-flag 4s ease-in-out infinite; }
.scn-fleet-impression .reflection { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(48,96,128,0.4) 0%, transparent 100%); animation: fi-reflect 15s ease-in-out infinite alternate; }
@keyframes fi-sky      { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes fi-sea      { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes fi-ship     { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } }
@keyframes fi-sail     { 0% { transform: rotate(-3deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(3deg) } }
@keyframes fi-flag     { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes fi-reflect  { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.4 } }

.scn-meeting-durnford { background: linear-gradient(180deg, #4a7a9a 0%, #8ab0c0 40%, #c0d8e0 70%, #e0e8f0 100%), radial-gradient(ellipse at 70% 30%, #ffffff20 0%, transparent 50%); }
.scn-meeting-durnford .deck    { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 10px 20px #1a0a00; }
.scn-meeting-durnford .sky    { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6a8a9a 0%, #b0c8d0 60%, transparent 100%); animation: md-sky 10s ease-in-out infinite alternate; }
.scn-meeting-durnford .sea    { position:absolute; bottom:30%; left:0; right:0; height:10%; background: linear-gradient(180deg, #306080 0%, #1a4060 100%); border-radius: 30% 20% 0 0; animation: md-sea 15s ease-in-out infinite alternate; }
.scn-meeting-durnford .bulwark{ position:absolute; bottom:25%; left:0; right:0; height:12%; background: linear-gradient(90deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 0 0 5% 5%; box-shadow: 0 4px 8px #00000040; }
.scn-meeting-durnford .mast   { position:absolute; bottom:35%; left:50%; width:8px; height:120px; transform: translateX(-50%); background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 2px; box-shadow: inset 0 2px 4px #00000060; animation: md-mast 12s ease-in-out infinite alternate; }
.scn-meeting-durnford .figure-left  { position:absolute; bottom:20%; left:35%; width:20px; 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: md-figure 6s ease-in-out infinite; }
.scn-meeting-durnford .figure-right { position:absolute; bottom:20%; right:35%; width:20px; 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: md-figure 7s ease-in-out infinite 2s; }
.scn-meeting-durnford .hat-left  { position:absolute; bottom:38%; left:36%; width:16px; height:6px; background: linear-gradient(180deg, #c0c8d0 0%, #a0a8b0 100%); border-radius: 50%; box-shadow: 0 2px 4px #00000030; animation: md-hat 6s ease-in-out infinite; }
.scn-meeting-durnford .hat-right { position:absolute; bottom:38%; right:36%; width:16px; height:6px; background: linear-gradient(180deg, #c0c8d0 0%, #a0a8b0 100%); border-radius: 50%; box-shadow: 0 2px 4px #00000030; animation: md-hat 7s ease-in-out infinite 2s; }
@keyframes md-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes md-sea    { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes md-mast   { 0%,100% { transform: translateX(-50%) rotate(-0.5deg) } 50% { transform: translateX(-50%) rotate(0.5deg) } }
@keyframes md-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes md-hat    { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-naval-officers-leave { background: linear-gradient(180deg, #6a8a9a 0%, #a0c0d0 40%, #d0e0e8 70%, #f0f4f8 100%), radial-gradient(ellipse at 50% 20%, #ffffff30 0%, transparent 60%); }
.scn-naval-officers-leave .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8aaac0 0%, #c0d8e0 60%, transparent 100%); animation: no-sky 12s ease-in-out infinite alternate; }
.scn-naval-officers-leave .quay   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b0a898 0%, #80786a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 20px 30px #504840; }
.scn-naval-officers-leave .building-1 { position:absolute; bottom:40%; left:5%; width:60px; height:80px; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%); border-radius: 5% 5% 0 0; box-shadow: 4px 0 8px #00000030; }
.scn-naval-officers-leave .building-2 { position:absolute; bottom:40%; right:5%; width:80px; height:100px; background: linear-gradient(180deg, #d0c0b0 0%, #b0a090 100%); border-radius: 5% 5% 0 0; box-shadow: -4px 0 8px #00000030; }
.scn-naval-officers-leave .officer-1 { position:absolute; bottom:18%; left:25%; width:18px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: no-walk 8s ease-in-out infinite; }
.scn-naval-officers-leave .officer-2 { position:absolute; bottom:18%; left:40%; width:18px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: no-walk 9s ease-in-out infinite 3s; }
.scn-naval-officers-leave .officer-3 { position:absolute; bottom:18%; right:25%; width:18px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: no-walk 10s ease-in-out infinite 6s; }
.scn-naval-officers-leave .white-cap-1 { position:absolute; bottom:35%; left:26%; width:14px; height:6px; background: linear-gradient(180deg, #f0f4f8 0%, #d0d8e0 100%); border-radius: 50%; box-shadow: 0 2px 4px #00000020; animation: no-cap 8s ease-in-out infinite; }
.scn-naval-officers-leave .white-cap-2 { position:absolute; bottom:35%; left:41%; width:14px; height:6px; background: linear-gradient(180deg, #f0f4f8 0%, #d0d8e0 100%); border-radius: 50%; box-shadow: 0 2px 4px #00000020; animation: no-cap 9s ease-in-out infinite 3s; }
@keyframes no-sky  { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes no-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-2deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0deg) } }
@keyframes no-cap  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-durnford-longing-for-home { background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 30%, #b0c0d0 60%, #d0d8e0 100%), radial-gradient(ellipse at 70% 20%, #ffd06010 0%, transparent 70%); }
.scn-durnford-longing-for-home .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a9aaa 0%, #b0c0d0 50%, transparent 100%); animation: dl-sky 20s ease-in-out infinite alternate; }
.scn-durnford-longing-for-home .sea    { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #305070 0%, #1a3048 100%); border-radius: 30% 20% 0 0 / 20% 10% 0 0; box-shadow: inset 0 20px 30px #0a1828; animation: dl-sea 25s ease-in-out infinite alternate; }
.scn-durnford-longing-for-home .bulwark{ position:absolute; bottom:35%; left:10%; right:10%; height:8%; background: linear-gradient(90deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px #00000040; }
.scn-durnford-longing-for-home .figure { position:absolute; bottom:30%; left:30%; 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 center; animation: dl-figure 12s ease-in-out infinite; }
.scn-durnford-longing-for-home .cap    { position:absolute; bottom:52%; left:31%; width:16px; height:6px; background: linear-gradient(180deg, #d0d8e0 0%, #b0b8c0 100%); border-radius: 50%; box-shadow: 0 2px 4px #00000030; animation: dl-cap 12s ease-in-out infinite; }
.scn-durnford-longing-for-home .hand   { position:absolute; bottom:35%; left:28%; width:6px; height:12px; background: #c8b8a8; border-radius: 40% 40% 20% 20%; box-shadow: 2px 0 4px #00000030; transform: rotate(20deg); animation: dl-hand 8s ease-in-out infinite alternate; }
.scn-durnford-longing-for-home .horizon-line { position:absolute; bottom:50%; left:0; right:0; height:2px; background:rgba(255,255,255,0.3); filter: blur(1px); animation: dl-horizon 15s ease-in-out infinite alternate; }
.scn-durnford-longing-for-home .sunlight { position:absolute; top:20%; left:60%; width:80px; height:80px; background: radial-gradient(circle, #ffd06040 0%, transparent 70%); border-radius: 50%; animation: dl-sun 25s ease-in-out infinite alternate; }
@keyframes dl-sky  { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dl-sea  { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes dl-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes dl-cap  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes dl-hand { 0% { transform: rotate(15deg) } 100% { transform: rotate(25deg) } }
@keyframes dl-horizon { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes dl-sun  { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.9) } }

.scn-hut-woodcutter-plea {
  background: 
    radial-gradient(ellipse at 50% 70%, #3a1e0e 0%, transparent 60%),
    linear-gradient(180deg, #0d0806 0%, #1a100a 40%, #26160e 100%);
}
.scn-hut-woodcutter-plea .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1c12 0%, #1a0e08 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
}
.scn-hut-woodcutter-plea .wall-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 70%;
  background: linear-gradient(180deg, #1a100a 0%, #0d0806 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
}
.scn-hut-woodcutter-plea .wall-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 70%;
  background: linear-gradient(180deg, #1a100a 0%, #0d0806 100%);
  clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%);
}
.scn-hut-woodcutter-plea .lantern {
  position: absolute; top: 18%; left: 50%; width: 14px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #e86830 0%, #a03a0e 60%, #3a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 12px #c05020, 0 0 80px 24px rgba(192,80,32,.3);
  animation: wcp-lantern 4s ease-in-out infinite alternate;
}
.scn-hut-woodcutter-plea .pleading-hands {
  position: absolute; bottom: 28%; left: 42%; width: 50px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #3a2218 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.5);
  animation: wcp-hands 2.5s ease-in-out infinite;
}
.scn-hut-woodcutter-plea .officer-boots {
  position: absolute; bottom: 7%; right: 20%; width: 60px; height: 24px;
  background: linear-gradient(180deg, #1a120e 0%, #0d0806 100%);
  border-radius: 30% 30% 0 0;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: wcp-boots 1.8s ease-in-out infinite alternate;
}
.scn-hut-woodcutter-plea .shadow-figure {
  position: absolute; top: 15%; left: 65%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #0d0806 0%, #000000 100%);
  opacity: 0.85;
  clip-path: polygon(30% 0, 70% 0, 100% 40%, 100% 100%, 0 100%, 0 40%);
  filter: blur(2px);
  animation: wcp-figure 3s ease-in-out infinite alternate;
}
@keyframes wcp-lantern {
  0% { box-shadow: 0 0 30px 8px #c05020, 0 0 60px 16px rgba(192,80,32,.2); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 16px #d06030, 0 0 100px 32px rgba(208,96,48,.4); opacity: 1; }
  100% { box-shadow: 0 0 35px 10px #c05020, 0 0 70px 20px rgba(192,80,32,.25); opacity: 0.85; }
}
@keyframes wcp-hands {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-8deg) scale(1.02); }
  50% { transform: translateY(-1px) rotate(4deg); }
  75% { transform: translateY(-5px) rotate(-5deg) scale(1.03); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes wcp-boots {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(2px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(-5deg); }
}
@keyframes wcp-figure {
  0% { transform: translateY(0) scale(1); opacity: 0.85; }
  50% { transform: translateY(-2px) scale(1.02); opacity: 0.95; }
  100% { transform: translateY(0) scale(1); opacity: 0.85; }
}

.scn-hut-search-futile {
  background: 
    radial-gradient(ellipse at 50% 30%, #2a140a 0%, transparent 70%),
    linear-gradient(180deg, #0f0a07 0%, #1c120c 50%, #0f0a07 100%);
}
.scn-hut-search-futile .floorboards {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: repeating-linear-gradient(90deg, #2a1c12 0px, #2a1c12 40px, #1a100a 40px, #1a100a 42px);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.7);
}
.scn-hut-search-futile .gap {
  position: absolute; bottom: 25%; left: 35%; width: 80px; height: 20px;
  background: #0f0805;
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 4px 8px #000;
}
.scn-hut-search-futile .board-lifted {
  position: absolute; bottom: 28%; left: 33%; width: 90px; height: 12px;
  background: linear-gradient(180deg, #3a2418 0%, #1a0e0a 100%);
  transform: rotate(-8deg);
  transform-origin: left center;
  border-radius: 4px;
  box-shadow: 2px -2px 6px rgba(0,0,0,.5);
  animation: sef-board 3s ease-in-out infinite;
}
.scn-hut-search-futile .search-light {
  position: absolute; top: 20%; left: 38%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 50% 0%, rgba(230,180,80,0.15) 0%, transparent 100%);
  transform: rotate(10deg);
  animation: sef-light 2s ease-in-out infinite alternate;
}
.scn-hut-search-futile .searcher-arm {
  position: absolute; top: 25%; left: 20%; width: 60px; height: 16px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: left center;
  animation: sef-arm 1.5s ease-in-out infinite;
}
.scn-hut-search-futile .corner-shadow {
  position: absolute; top: 0; right: 0; width: 60%; height: 60%;
  background: linear-gradient(225deg, #0f0805 0%, transparent 90%);
  pointer-events: none;
}
.scn-hut-search-futile .dust-motes {
  position: absolute; top: 30%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(200,160,100,0.3) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 20px 40px 0 rgba(200,160,100,0.2), -30px 20px 0 rgba(200,160,100,0.15), 40px -10px 0 rgba(200,160,100,0.1);
  animation: sef-dust 6s ease-in-out infinite;
}
@keyframes sef-board {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-4px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes sef-light {
  0% { transform: rotate(8deg) scale(1); opacity: 0.7; }
  50% { transform: rotate(12deg) scale(1.05); opacity: 1; }
  100% { transform: rotate(8deg) scale(1); opacity: 0.7; }
}
@keyframes sef-arm {
  0% { transform: rotate(-30deg) translateX(0); }
  25% { transform: rotate(-25deg) translateX(4px); }
  50% { transform: rotate(-40deg) translateX(-2px); }
  75% { transform: rotate(-20deg) translateX(6px); }
  100% { transform: rotate(-30deg) translateX(0); }
}
@keyframes sef-dust {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  33% { transform: translateY(-12px) scale(1.2); opacity: 0.6; }
  66% { transform: translateY(-6px) scale(0.9); opacity: 0.4; }
  100% { transform: translateY(0) scale(1); opacity: 0.3; }
}

.scn-hut-police-chagrin {
  background: 
    radial-gradient(ellipse at 40% 60%, #1a0e08 0%, transparent 70%),
    linear-gradient(180deg, #0a0705 0%, #1a100a 50%, #0a0705 100%);
}
.scn-hut-police-chagrin .door-frame {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 60%;
  border: 8px solid #1a120c;
  border-radius: 4px;
  background: linear-gradient(180deg, #120a08 0%, #1a0e0a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
}
.scn-hut-police-chagrin .interior-wall {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(180deg, #2a1a10 0%, transparent 100%);
  opacity: 0.3;
  pointer-events: none;
}
.scn-hut-police-chagrin .arrest-figure {
  position: absolute; bottom: 15%; left: 35%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a1a12 0%, #120a08 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(2deg);
  animation: pch-arrest 3s ease-in-out infinite;
}
.scn-hut-police-chagrin .officer-grip {
  position: absolute; bottom: 35%; left: 50%; width: 70px; height: 16px;
  background: linear-gradient(180deg, #1a120e 0%, #0d0806 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-15deg);
  transform-origin: right center;
  animation: pch-grip 2s ease-in-out infinite alternate;
}
.scn-hut-police-chagrin .chain-shadow {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 30px;
  background: repeating-linear-gradient(0deg, #0d0806 0px, #0d0806 3px, transparent 3px, transparent 6px);
  opacity: 0.6;
  animation: pch-chain 1.2s ease-in-out infinite;
}
.scn-hut-police-chagrin .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #120a08 0%, #0a0503 100%);
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
}
.scn-hut-police-chagrin .faint-light {
  position: absolute; top: 15%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,150,80,0.2) 0%, transparent 100%);
  animation: pch-light 4s ease-in-out infinite alternate;
}
@keyframes pch-arrest {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-1deg) scale(1.01); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes pch-grip {
  0% { transform: rotate(-15deg) translateX(0); }
  100% { transform: rotate(-18deg) translateX(3px); }
}
@keyframes pch-chain {
  0% { transform: translateY(0); }
  25% { transform: translateY(-2px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(1px); }
  100% { transform: translateY(0); }
}
@keyframes pch-light {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(1); }
}

.scn-hut-hope-hidden {
  background: 
    radial-gradient(ellipse at 70% 50%, #1a0e08 0%, transparent 60%),
    linear-gradient(180deg, #0f0806 0%, #1a100a 50%, #0f0806 100%);
}
.scn-hut-hope-hidden .wall-log {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(0deg, #2a1a10 0px, #2a1a10 30px, #1a0e0a 30px, #1a0e0a 32px);
  opacity: 0.5;
}
.scn-hut-hope-hidden .hidden-panel {
  position: absolute; top: 30%; left: 15%; width: 70%; height: 40%;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%);
  border: 3px solid #0d0806;
  border-radius: 6px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  transform: translateY(0);
  animation: hhi-panel 5s ease-in-out infinite;
}
.scn-hut-hope-hidden .panel-handle {
  position: absolute; top: 48%; left: 45%; width: 16px; height: 6px;
  background: #2a1a10;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: hhi-handle 5s ease-in-out infinite;
}
.scn-hut-hope-hidden .forest-glimpse {
  position: absolute; top: 35%; left: 30%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #0f3020 0%, #051208 100%);
  border-radius: 50%;
  opacity: 0;
  animation: hhi-glimpse 5s ease-in-out infinite;
}
.scn-hut-hope-hidden .inner-shadows {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background: radial-gradient(ellipse at 30% 40%, transparent 40%, #080505 100%);
  pointer-events: none;
}
.scn-hut-hope-hidden .hope-glint {
  position: absolute; top: 42%; left: 43%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(220,200,150,0.6) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 2px rgba(220,200,150,0.3);
  animation: hhi-glint 3s ease-in-out infinite alternate;
}
.scn-hut-hope-hidden .moss-edge {
  position: absolute; bottom: 10%; left: 10%; width: 40%; height: 8px;
  background: repeating-linear-gradient(90deg, #2a3a1a 0px, #2a3a1a 6px, #1a2a0a 6px, #1a2a0a 8px);
  border-radius: 20% 20% 0 0;
  opacity: 0.4;
}
@keyframes hhi-panel {
  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 hhi-handle {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(-3px); }
}
@keyframes hhi-glimpse {
  0% { opacity: 0; transform: scale(1); }
  10% { opacity: 0.6; transform: scale(1.1); }
  20% { opacity: 0; transform: scale(1); }
  100% { opacity: 0; transform: scale(1); }
}
@keyframes hhi-glint {
  0% { opacity: 0.5; box-shadow: 0 0 8px 1px rgba(220,200,150,0.2); }
  100% { opacity: 1; box-shadow: 0 0 18px 4px rgba(220,200,150,0.5); }
}

/* london-iris-lola */
.scn-london-iris-lola {
  background: linear-gradient(180deg, #c8b090 0%, #a08060 50%, #705040 100%), radial-gradient(ellipse at 60% 30%, #f0d0a0 0%, transparent 60%);
}
.scn-london-iris-lola .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #b09878 0%, #8a6a4a 100%);
  animation: lir-wall 12s ease-in-out infinite alternate;
}
.scn-london-iris-lola .window {
  position: absolute; top: 12%; left: 55%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8ab4c0 0%, #507080 40%, #304050 100%);
  border: 6px solid #6a4a2a; border-radius: 4px;
  animation: lir-sea 8s ease-in-out infinite;
}
.scn-london-iris-lola .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: lir-desk 15s ease-in-out infinite;
}
.scn-london-iris-lola .lamp {
  position: absolute; bottom: 28%; left: 20%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #b09060 0%, #806040 100%);
  border-radius: 4px 4px 2px 2px; transform-origin: bottom center;
  animation: lir-lamp 4s ease-in-out infinite;
}
.scn-london-iris-lola .lamp::after {
  content: ''; position: absolute; top: -8px; left: -8px; width: 28px; height: 18px;
  background: radial-gradient(circle, #ffe080 0%, #c09040 60%);
  border-radius: 50%; filter: blur(2px);
  animation: lir-glow 2s ease-in-out infinite alternate;
}
.scn-london-iris-lola .figure {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lir-figure 6s ease-in-out infinite;
}
.scn-london-iris-lola .shadow {
  position: absolute; bottom: 10%; left: 40%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(3px);
  animation: lir-shadow 6s ease-in-out infinite;
}
.scn-london-iris-lola .papers {
  position: absolute; bottom: 14%; left: 30%; width: 30px; height: 20px;
  background: #e8d8c0; border-radius: 2px; transform: rotate(-5deg);
  animation: lir-papers 10s ease-in-out infinite;
}
.scn-london-iris-lola .sea-motion {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, #306080 0%, #204060 50%, #306080 100%);
  background-size: 200% 100%;
  animation: lir-sea-wave 4s linear infinite;
}

@keyframes lir-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes lir-sea { 0% { background-position: 0 0; } 50% { background-position: 0 10%; } 100% { background-position: 0 0; } }
@keyframes lir-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lir-lamp { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes lir-glow { 0% { opacity: 0.7; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes lir-figure { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(4px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes lir-shadow { 0%,100% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.4; } }
@keyframes lir-papers { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes lir-sea-wave { 0% { background-position: 0% 0; } 100% { background-position: 200% 0; } }


/* london-olinto-steward */
.scn-london-olinto-steward {
  background: linear-gradient(180deg, #b09878 0%, #907050 50%, #604030 100%), radial-gradient(ellipse at 30% 50%, #f0d0a0 0%, transparent 50%);
}
.scn-london-olinto-steward .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #604030 0px, #705040 4px, #604030 8px);
  animation: los-floor 12s ease-in-out infinite;
}
.scn-london-olinto-steward .wall-bg {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(135deg, #b09878 0%, #806040 100%);
  animation: los-wall 8s ease-in-out infinite alternate;
}
.scn-london-olinto-steward .shelf {
  position: absolute; top: 20%; left: 10%; right: 10%; height: 4px;
  background: #4a2a1a; box-shadow: 0 20px 0 #4a2a1a, 0 40px 0 #4a2a1a;
  animation: los-shelf 15s ease-in-out infinite;
}
.scn-london-olinto-steward .door {
  position: absolute; right: 8%; top: 10%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #6a4a2a 0%, #503820 100%);
  border: 3px solid #3a2a1a; border-radius: 2px;
  animation: los-door 10s ease-in-out infinite;
}
.scn-london-olinto-steward .figure-half {
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: los-figure 5s ease-in-out infinite;
}
.scn-london-olinto-steward .light-flicker {
  position: absolute; top: 10%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe080 0%, #c09040 60%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: los-flicker 2s ease-in-out infinite alternate;
}
.scn-london-olinto-steward .shadow-stretch {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 10px;
  background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(3px);
  animation: los-shadow 5s ease-in-out infinite;
}
.scn-london-olinto-steward .handle {
  position: absolute; right: 14%; top: 35%; width: 6px; height: 10px;
  background: #b09060; border-radius: 2px;
  animation: los-handle 8s ease-in-out infinite;
}

@keyframes los-floor { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes los-wall { 0% { filter: brightness(0.9); } 50% { filter: brightness(1); } 100% { filter: brightness(0.95); } }
@keyframes los-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes los-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } }
@keyframes los-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes los-flicker { 0% { opacity: 0.6; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes los-shadow { 0%,100% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.5; } }
@keyframes los-handle { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }


/* london-justice-hope */
.scn-london-justice-hope {
  background: linear-gradient(180deg, #d0b8a0 0%, #b09878 50%, #705040 100%), radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-london-justice-hope .chamber {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c8b098 0%, #a08060 100%);
  animation: ljh-chamber 15s ease-in-out infinite alternate;
}
.scn-london-justice-hope .bench {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ljh-bench 20s ease-in-out infinite;
}
.scn-london-justice-hope .gavel {
  position: absolute; bottom: 25%; left: 35%; width: 8px; height: 30px;
  background: #5a3a2a; border-radius: 2px; transform-origin: bottom center;
  animation: ljh-gavel 3s ease-in-out infinite;
}
.scn-london-justice-hope .scales {
  position: absolute; bottom: 20%; right: 20%; width: 30px; height: 20px;
  background: transparent; border-left: 2px solid #b09060; border-right: 2px solid #b09060;
  border-top: 2px solid #b09060; border-radius: 50% 50% 0 0;
  animation: ljh-scales 6s ease-in-out infinite;
}
.scn-london-justice-hope .lady-figure {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ljh-lady 10s ease-in-out infinite;
}
.scn-london-justice-hope .papers-stack {
  position: absolute; bottom: 18%; left: 20%; width: 40px; height: 12px;
  background: #e8d8c0; border-radius: 2px;
  animation: ljh-papers 8s ease-in-out infinite;
}
.scn-london-justice-hope .light-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 80%);
  animation: ljh-beam 5s ease-in-out infinite alternate;
}
.scn-london-justice-hope .shadow-bars {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.1) 0px, transparent 8px, rgba(0,0,0,0.1) 16px);
  animation: ljh-bars 12s linear infinite;
}

@keyframes ljh-chamber { 0% { filter: brightness(0.9); } 100% { filter: brightness(1); } }
@keyframes ljh-bench { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ljh-gavel { 0% { transform: rotate(0); } 20% { transform: rotate(-10deg); } 40% { transform: rotate(10deg); } 60% { transform: rotate(-5deg); } 80% { transform: rotate(5deg); } 100% { transform: rotate(0); } }
@keyframes ljh-scales { 0%,100% { transform: rotate(0); } 50% { transform: rotate(5deg); } }
@keyframes ljh-lady { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ljh-papers { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes ljh-beam { 0% { opacity: 0.3; } 100% { opacity: 0.6; } }
@keyframes ljh-bars { 0% { background-position: 0 0; } 100% { background-position: 16px 0; } }


/* london-elma-russia-danger */
.scn-london-elma-russia-danger {
  background: linear-gradient(180deg, #c8b098 0%, #a08060 50%, #604030 100%), radial-gradient(ellipse at 40% 30%, #f0d0a0 0%, transparent 70%);
}
.scn-london-elma-russia-danger .study-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #b09878 0%, #806040 100%);
  animation: ler-wall 14s ease-in-out infinite alternate;
}
.scn-london-elma-russia-danger .map {
  position: absolute; top: 15%; left: 10%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%);
  border: 2px solid #5a3a2a; border-radius: 4px;
  animation: ler-map 8s ease-in-out infinite;
}
.scn-london-elma-russia-danger .figure-desk {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ler-figure 7s ease-in-out infinite;
}
.scn-london-elma-russia-danger .samovar {
  position: absolute; bottom: 22%; left: 15%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b09060 0%, #806040 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: ler-samovar 12s ease-in-out infinite;
}
.scn-london-elma-russia-danger .icon-glow {
  position: absolute; top: 12%; right: 20%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #c09040 60%, transparent 100%);
  border-radius: 4px; filter: blur(2px);
  animation: ler-icon 4s ease-in-out infinite alternate;
}
.scn-london-elma-russia-danger .wolf-shadow {
  position: absolute; bottom: 15%; right: 10%; width: 50px; height: 30px;
  background: rgba(0,0,0,0.2); border-radius: 50% 50% 40% 40%;
  filter: blur(4px);
  animation: ler-wolf 9s ease-in-out infinite;
}
.scn-london-elma-russia-danger .candle {
  position: absolute; bottom: 25%; left: 45%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c09860 100%);
  border-radius: 2px; animation: ler-candle 5s ease-in-out infinite;
}
.scn-london-elma-russia-danger .candle::after {
  content: ''; position: absolute; top: -10px; left: -2px; width: 10px; height: 12px;
  background: radial-gradient(circle, #fff0c0 0%, #f0c060 60%);
  border-radius: 50%; filter: blur(2px);
  animation: ler-flame 1.5s ease-in-out infinite alternate;
}
.scn-london-elma-russia-danger .letter {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 12px;
  background: #e8d8c0; border-radius: 2px; transform: rotate(-8deg);
  animation: ler-letter 10s ease-in-out infinite;
}

@keyframes ler-wall { 0% { filter: brightness(0.9); } 100% { filter: brightness(1); } }
@keyframes ler-map { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ler-figure { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ler-samovar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes ler-icon { 0% { opacity: 0.6; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes ler-wolf { 0%,100% { transform: scaleX(1) translateY(0); opacity: 0.2; } 50% { transform: scaleX(1.2) translateY(-2px); opacity: 0.3; } }
@keyframes ler-candle { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes ler-flame { 0% { opacity: 0.7; transform: scale(0.9) rotate(-2deg); } 100% { opacity: 1; transform: scale(1.1) rotate(2deg); } }
@keyframes ler-letter { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }

.scn-hut-woodcutter-pale {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0f0b0a 100%),
              radial-gradient(ellipse at 50% 70%, #4a3026 0%, transparent 60%);
}
.scn-hut-woodcutter-pale .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-hut-woodcutter-pale .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-hut-woodcutter-pale .table {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(5deg);
}
.scn-hut-woodcutter-pale .lantern {
  position: absolute; bottom: 28%; left: 45%; width: 12px; height: 16px;
  background: radial-gradient(circle, #f0a040 0%, #b06020 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 6px #d08030, 0 0 60px 12px rgba(208,128,48,0.3);
  animation: hwp-lantern 4s ease-in-out infinite alternate;
}
.scn-hut-woodcutter-pale .woodcutter {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hwp-shake 0.6s ease-in-out infinite;
}
.scn-hut-woodcutter-pale .shadow {
  position: absolute; bottom: 20%; right: 30%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hwp-shadow 2s ease-in-out infinite alternate;
}
.scn-hut-woodcutter-pale .door {
  position: absolute; bottom: 25%; right: 8%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2018 0%, #1a1008 100%);
  border: 1px solid #2a1a10; border-radius: 2px 2px 0 0;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.3);
}
.scn-hut-woodcutter-pale .plate {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 6px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 40%;
  transform: perspective(200px) rotateX(30deg);
  animation: hwp-plate 8s ease-in-out infinite;
}
@keyframes hwp-lantern {
  0% { box-shadow: 0 0 25px 4px #d08030, 0 0 50px 8px rgba(208,128,48,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 8px #f0a040, 0 0 70px 14px rgba(240,160,64,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 4px #d08030, 0 0 50px 8px rgba(208,128,48,0.2); opacity: 0.85; }
}
@keyframes hwp-shake {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(1px, -0.5px) rotate(1deg); }
  50% { transform: translate(-1px, 0.5px) rotate(-1deg); }
  75% { transform: translate(1px, 0px) rotate(0.5deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes hwp-shadow {
  0% { transform: translate(0, 0) scale(1); }
  100% { transform: translate(-8px, -2px) scale(1.05); }
}
@keyframes hwp-plate {
  0% { transform: perspective(200px) rotateX(30deg) translateX(0); }
  50% { transform: perspective(200px) rotateX(30deg) translateX(3px); }
  100% { transform: perspective(200px) rotateX(30deg) translateX(0); }
}

.scn-hut-legal-argument {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0f0b0a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1e 0%, transparent 70%);
}
.scn-hut-legal-argument .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}
.scn-hut-legal-argument .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%);
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.6);
}
.scn-hut-legal-argument .table {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(8deg);
}
.scn-hut-legal-argument .lantern {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 18px;
  background: radial-gradient(circle, #f0a040 0%, #b06020 70%);
  border-radius: 30% 30% 20% 20%;
  margin-left: -7px;
  box-shadow: 0 0 40px 8px #d08030, 0 0 70px 16px rgba(208,128,48,0.3);
  animation: hla-lantern 3.5s ease-in-out infinite alternate;
}
.scn-hut-legal-argument .official {
  position: absolute; bottom: 18%; right: 20%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hla-official 1.2s ease-in-out infinite alternate;
}
.scn-hut-legal-argument .narrator {
  position: absolute; bottom: 18%; left: 20%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hla-narrator 0.8s ease-in-out infinite alternate;
}
.scn-hut-legal-argument .chair {
  position: absolute; bottom: 18%; left: 8%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2018 0%, #1a1008 100%);
  border-radius: 20% 20% 10% 10%;
  transform: perspective(200px) rotateY(15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
@keyframes hla-lantern {
  0% { box-shadow: 0 0 30px 6px #d08030, 0 0 60px 12px rgba(208,128,48,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 50px 12px #f0a040, 0 0 90px 20px rgba(240,160,64,0.4); opacity: 1; }
  100% { box-shadow: 0 0 30px 6px #d08030, 0 0 60px 12px rgba(208,128,48,0.25); opacity: 0.85; }
}
@keyframes hla-official {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(-2px, -1px) rotate(-2deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes hla-narrator {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(1px, -0.5px) rotate(1deg); }
  50% { transform: translate(-1px, 0.5px) rotate(-1deg); }
  75% { transform: translate(1px, 0px) rotate(0.5deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

.scn-item-passport {
  background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 50%, #0a0a0a 100%),
              radial-gradient(circle at 50% 50%, #2a2a2a 0%, transparent 80%);
}
.scn-item-passport .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  opacity: 0.7;
}
.scn-item-passport .hand {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: ip-hand 3s ease-in-out infinite alternate;
}
.scn-item-passport .passport {
  position: absolute; bottom: 35%; left: 35%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6), inset 0 0 10px #8a6a4a;
  transform: perspective(300px) rotateY(15deg) rotateX(10deg);
  animation: ip-passport 4s ease-in-out infinite;
}
.scn-item-passport .fingers {
  position: absolute; bottom: 28%; left: 32%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #3a2a20, #1a1008);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-15deg);
  animation: ip-fingers 3s ease-in-out infinite alternate;
}
.scn-item-passport .lantern {
  position: absolute; bottom: 40%; left: 60%; width: 12px; height: 16px;
  background: radial-gradient(circle, #f0a040 0%, #b06020 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 6px #d08030, 0 0 60px 12px rgba(208,128,48,0.3);
  animation: ip-lantern 3s ease-in-out infinite alternate;
}
.scn-item-passport .doc {
  position: absolute; bottom: 38%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5038 100%);
  border-radius: 1px;
  transform: perspective(300px) rotateY(5deg) rotateX(5deg);
  opacity: 0.8;
  animation: ip-doc 2.5s ease-in-out infinite alternate;
}
.scn-item-passport .shadow-hand {
  position: absolute; bottom: 22%; left: 40%; width: 28px; height: 38px;
  background: rgba(0,0,0,0.3);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg) scaleX(-1);
  filter: blur(6px);
  animation: ip-shadow 3s ease-in-out infinite alternate;
}
@keyframes ip-hand {
  0% { transform: rotate(-10deg) translate(0, 0); }
  50% { transform: rotate(-8deg) translate(3px, -2px); }
  100% { transform: rotate(-10deg) translate(0, 0); }
}
@keyframes ip-passport {
  0% { transform: perspective(300px) rotateY(15deg) rotateX(10deg); }
  25% { transform: perspective(300px) rotateY(18deg) rotateX(8deg); }
  50% { transform: perspective(300px) rotateY(12deg) rotateX(12deg); }
  75% { transform: perspective(300px) rotateY(20deg) rotateX(6deg); }
  100% { transform: perspective(300px) rotateY(15deg) rotateX(10deg); }
}
@keyframes ip-fingers {
  0% { transform: rotate(-15deg) translate(0,0); }
  100% { transform: rotate(-12deg) translate(2px, -1px); }
}
@keyframes ip-lantern {
  0% { box-shadow: 0 0 25px 4px #d08030, 0 0 50px 8px rgba(208,128,48,0.2); opacity: 0.85; }
  50% { box-shadow: 0 0 40px 8px #f0a040, 0 0 80px 16px rgba(240,160,64,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 4px #d08030, 0 0 50px 8px rgba(208,128,48,0.2); opacity: 0.9; }
}
@keyframes ip-doc {
  0% { transform: perspective(300px) rotateY(5deg) rotateX(5deg); opacity: 0.8; }
  50% { transform: perspective(300px) rotateY(10deg) rotateX(2deg); opacity: 0.9; }
  100% { transform: perspective(300px) rotateY(5deg) rotateX(5deg); opacity: 0.8; }
}
@keyframes ip-shadow {
  0% { transform: rotate(-5deg) scaleX(-1) translate(0,0); opacity: 0.3; }
  100% { transform: rotate(-3deg) scaleX(-1) translate(4px, -2px); opacity: 0.5; }
}

.scn-hut-woodcutter-fear {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0f0b0a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1e 0%, transparent 70%);
}
.scn-hut-woodcutter-fear .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-hut-woodcutter-fear .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-hut-woodcutter-fear .table {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(5deg);
}
.scn-hut-woodcutter-fear .lantern {
  position: absolute; bottom: 28%; left: 45%; width: 12px; height: 16px;
  background: radial-gradient(circle, #f0a040 0%, #b06020 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 6px #d08030, 0 0 60px 12px rgba(208,128,48,0.3);
  animation: hwf-lantern 4s ease-in-out infinite alternate;
}
.scn-hut-woodcutter-fear .old-man {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hwf-tremble 0.4s ease-in-out infinite;
}
.scn-hut-woodcutter-fear .officer {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 54px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hwf-officer 2s ease-in-out infinite alternate;
}
.scn-hut-woodcutter-fear .door {
  position: absolute; bottom: 25%; left: 5%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2018 0%, #1a1008 100%);
  border: 1px solid #2a1a10; border-radius: 2px 2px 0 0;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.3);
}
.scn-hut-woodcutter-fear .candle {
  position: absolute; bottom: 30%; left: 35%; width: 4px; height: 10px;
  background: linear-gradient(180deg, #f0c080 0%, #d08040 50%, #6a3018 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 20px 3px #d08040, 0 0 40px 8px rgba(208,128,64,0.2);
  animation: hwf-candle 6s ease-in-out infinite alternate;
}
@keyframes hwf-lantern {
  0% { box-shadow: 0 0 25px 4px #d08030, 0 0 50px 8px rgba(208,128,48,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 8px #f0a040, 0 0 70px 14px rgba(240,160,64,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 4px #d08030, 0 0 50px 8px rgba(208,128,48,0.2); opacity: 0.85; }
}
@keyframes hwf-tremble {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(1px, -1px) rotate(2deg); }
  50% { transform: translate(-1px, 1px) rotate(-2deg); }
  75% { transform: translate(1px, 0px) rotate(1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes hwf-officer {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(-3px, -1px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes hwf-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.1) translateY(-1px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.85; }
}

/* Scene: london-silence-threat */
.scn-london-silence-threat {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a30 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 70% 60%, #2a2a3a 0%, transparent 60%);
}
.scn-london-silence-threat .street-fog {
  position:absolute; inset:0; background: linear-gradient(90deg, rgba(40,40,50,.15) 0%, rgba(20,20,30,.4) 50%, rgba(40,40,50,.15) 100%);
  animation: lst-fog 20s ease-in-out infinite alternate;
}
.scn-london-silence-threat .lamp {
  position:absolute; bottom:30%; left:35%; width:8px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a1a 100%);
  border-radius: 2px; animation: lst-lamp 1.5s ease-in-out infinite alternate;
}
.scn-london-silence-threat .lamp-glow {
  position:absolute; bottom:38%; left:34%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(200,170,100,.4) 0%, rgba(200,170,100,.1) 40%, transparent 70%);
  border-radius: 50%; filter: blur(8px); animation: lst-lamp-glow 2s ease-in-out infinite alternate;
}
.scn-london-silence-threat .threat-figure {
  position:absolute; bottom:20%; left:45%; width:32px; 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: lst-threat 0.8s ease-in-out infinite;
}
.scn-london-silence-threat .victim-figure {
  position:absolute; bottom:20%; left:30%; width:28px; height:65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: lst-victim 0.6s ease-in-out infinite alternate;
}
.scn-london-silence-threat .knife-blade {
  position:absolute; bottom:58%; left:48%; width:3px; height:30px;
  background: linear-gradient(180deg, #6a6a7a 0%, #8a8a9a 50%, #6a6a7a 100%);
  border-radius: 1px; transform: rotate(15deg);
  box-shadow: 0 0 6px 2px rgba(180,180,200,.3);
  animation: lst-knife 0.8s ease-in-out infinite;
}
@keyframes lst-fog {
  0% { opacity:.3; filter: blur(4px); }
  50% { opacity:.7; filter: blur(8px); }
  100% { opacity:.4; filter: blur(6px); }
}
@keyframes lst-lamp {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes lst-lamp-glow {
  0% { opacity:.6; transform: scale(1); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:.7; transform: scale(.95); }
}
@keyframes lst-threat {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(3deg); }
  50% { transform: translateX(-1px) rotate(-2deg); }
  75% { transform: translateX(3px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes lst-victim {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes lst-knife {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-3px); }
  100% { transform: rotate(15deg) translateY(0); }
}

/* Scene: london-seek-muriel */
.scn-london-seek-muriel {
  background: linear-gradient(180deg, #12121f 0%, #1c1c2e 50%, #26263a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 50%);
}
.scn-london-seek-muriel .room-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #1e1e2e 0%, #2a2a3a 100%);
  animation: lsm-room 10s ease-in-out infinite alternate;
}
.scn-london-seek-muriel .desk {
  position:absolute; bottom:15%; left:20%; right:20%; height:30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6);
  animation: lsm-desk 5s ease-in-out infinite;
}
.scn-london-seek-muriel .desk-lamp {
  position:absolute; bottom:40%; left:35%; width:10px; height:35px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; animation: lsm-lamp 2s ease-in-out infinite alternate;
}
.scn-london-seek-muriel .papers {
  position:absolute; bottom:30%; left:30%; width:40px; height:25px;
  background: linear-gradient(135deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  transform-origin: bottom left; animation: lsm-papers 4s ease-in-out infinite;
}
.scn-london-seek-muriel .figure-searching {
  position:absolute; bottom:15%; left:25%; width:30px; 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: lsm-search 1.5s ease-in-out infinite;
}
.scn-london-seek-muriel .shadow-figure {
  position:absolute; bottom:15%; right:20%; width:22px; height:60px;
  background: linear-gradient(180deg, #0a0a12 0%, #00000a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: .6; animation: lsm-shadow 3s ease-in-out infinite alternate;
}
@keyframes lsm-room {
  0% { opacity:.8; filter: brightness(1); }
  50% { opacity:1; filter: brightness(1.1); }
  100% { opacity:.9; filter: brightness(.95); }
}
@keyframes lsm-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes lsm-lamp {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes lsm-papers {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes lsm-search {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-3deg); }
  75% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes lsm-shadow {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-2px) scale(1.03); }
  100% { transform: translateX(2px) scale(.97); }
}

/* Scene: london-muriel-address */
.scn-london-muriel-address {
  background: linear-gradient(180deg, #1a1a28 0%, #242438 50%, #303045 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a28 0%, transparent 50%);
}
.scn-london-muriel-address .hotel-wall {
  position:absolute; inset:0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  animation: lma-wall 12s ease-in-out infinite alternate;
}
.scn-london-muriel-address .desk {
  position:absolute; bottom:20%; left:25%; right:25%; height:25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5);
}
.scn-london-muriel-address .letter {
  position:absolute; bottom:35%; left:42%; width:30px; height:20px;
  background: linear-gradient(135deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 2px; transform-origin: bottom left;
  animation: lma-letter 6s ease-in-out infinite;
}
.scn-london-muriel-address .candle {
  position:absolute; bottom:40%; left:35%; width:6px; height:25px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 1px; animation: lma-candle 2s ease-in-out infinite alternate;
}
.scn-london-muriel-address .candle-glow {
  position:absolute; bottom:45%; left:33%; width:40px; height:40px;
  background: radial-gradient(circle, rgba(220,180,120,.4) 0%, rgba(220,180,120,.1) 40%, transparent 70%);
  border-radius: 50%; filter: blur(6px); animation: lma-glow 3s ease-in-out infinite alternate;
}
.scn-london-muriel-address .figure-reading {
  position:absolute; bottom:15%; left:35%; width:28px; 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: lma-figure 1.2s ease-in-out infinite;
}
@keyframes lma-wall {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.9; }
}
@keyframes lma-letter {
  0% { transform: rotate(0) translateY(0); }
  30% { transform: rotate(8deg) translateY(-4px); }
  60% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes lma-candle {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.05); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes lma-glow {
  0% { opacity:.6; transform: scale(1); }
  50% { opacity:1; transform: scale(1.15); }
  100% { opacity:.7; transform: scale(.95); }
}
@keyframes lma-figure {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* Scene: london-ghastly-truth */
.scn-london-ghastly-truth {
  background: linear-gradient(180deg, #0f0f1a 0%, #1c1c2e 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%);
}
.scn-london-ghastly-truth .bg-deep {
  position:absolute; inset:0; background: linear-gradient(135deg, #1a1a28 0%, #2a2a3a 100%);
  animation: lgt-bg 8s ease-in-out infinite alternate;
}
.scn-london-ghastly-truth .figure-a {
  position:absolute; bottom:20%; left:30%; width:32px; height:75px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: lgt-fig-a 1.5s ease-in-out infinite;
}
.scn-london-ghastly-truth .figure-b {
  position:absolute; bottom:20%; right:28%; width:28px; height:70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: lgt-fig-b 1.8s ease-in-out infinite alternate;
}
.scn-london-ghastly-truth .truth-paper {
  position:absolute; bottom:40%; left:45%; width:40px; height:30px;
  background: linear-gradient(135deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px rgba(200,170,100,.3);
  animation: lgt-paper 3s ease-in-out infinite;
}
.scn-london-ghastly-truth .light-source {
  position:absolute; bottom:50%; left:50%; width:50px; height:50px;
  background: radial-gradient(circle, rgba(200,170,100,.3) 0%, transparent 50%);
  border-radius: 50%; filter: blur(10px);
  animation: lgt-light 2.5s ease-in-out infinite alternate;
}
.scn-london-ghastly-truth .floor-shadow {
  position:absolute; bottom:10%; left:20%; right:20%; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: lgt-shadow 4s ease-in-out infinite alternate;
}
@keyframes lgt-bg {
  0% { opacity:.7; filter: brightness(.9); }
  50% { opacity:1; filter: brightness(1.1); }
  100% { opacity:.8; filter: brightness(1); }
}
@keyframes lgt-fig-a {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(3px) rotate(2deg); }
  60% { transform: translateX(-2px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes lgt-fig-b {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes lgt-paper {
  0% { transform: rotate(0) translateY(0); box-shadow: 0 0 12px 4px rgba(200,170,100,.3); }
  50% { transform: rotate(5deg) translateY(-4px); box-shadow: 0 0 20px 8px rgba(200,170,100,.6); }
  100% { transform: rotate(0) translateY(0); box-shadow: 0 0 12px 4px rgba(200,170,100,.3); }
}
@keyframes lgt-light {
  0% { opacity:.5; transform: scale(1); }
  50% { opacity:1; transform: scale(1.2); }
  100% { opacity:.6; transform: scale(.9); }
}
@keyframes lgt-shadow {
  0% { opacity:.3; transform: scaleX(1); }
  50% { opacity:.5; transform: scaleX(1.1); }
  100% { opacity:.4; transform: scaleX(.95); }
}

.scn-alibi-for-father {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #1f1410 40%, #0e0a08 100%),
    radial-gradient(ellipse at 40% 30%, #4a2a1a 0%, transparent 60%);
}
.scn-alibi-for-father .bg-wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #3a2a22 0%, #1f1410 100%); animation:af-wall 12s ease-in-out infinite alternate; }
.scn-alibi-for-father .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a1210 0%, #0c0806 100%); box-shadow:inset 0 8px 20px rgba(0,0,0,.6); }
.scn-alibi-for-father .desk { position:absolute; bottom:18%; left:15%; width:55%; height:8%; background:linear-gradient(180deg, #4a322a 0%, #2a1a16 100%); border-radius:4% 4% 0 0; box-shadow:0 4px 12px rgba(0,0,0,.5); animation:af-desk 6s ease-in-out infinite; }
.scn-alibi-for-father .lamp { position:absolute; bottom:30%; left:50%; width:8px; height:20px; transform:translateX(-50%); background:linear-gradient(180deg, #6a4a3a, #3a2a1a); border-radius:20%; animation:af-lamp-sway 8s ease-in-out infinite; }
.scn-alibi-for-father .lamp::after { content:''; position:absolute; top:2px; left:-4px; width:16px; height:12px; background:radial-gradient(circle, #ffd080 0%, #b06030 70%); border-radius:50%; box-shadow:0 0 20px 6px #b06030, 0 0 40px 12px rgba(176,96,48,.4); animation:af-lamp-glow 3s ease-in-out infinite alternate; }
.scn-alibi-for-father .figure { position:absolute; bottom:22%; left:30%; width:20px; height:50px; background:linear-gradient(180deg, #2a1a16 0%, #0e0a08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:af-figure-typing 4s ease-in-out infinite; }
.scn-alibi-for-father .typewriter { position:absolute; bottom:18%; left:35%; width:30px; height:15px; background:linear-gradient(90deg, #5a4a3a, #3a2a1a); border-radius:10%; box-shadow:0 2px 6px rgba(0,0,0,.5); animation:af-type 0.8s steps(2) infinite; }
.scn-alibi-for-father .shadow { position:absolute; bottom:18%; left:28%; width:60%; height:2px; background:rgba(0,0,0,.4); filter:blur(4px); animation:af-shadow 6s ease-in-out infinite; }
.scn-alibi-for-father .paper { position:absolute; bottom:20%; left:45%; width:15px; height:10px; background:#f0e0c0; border-radius:5%; transform:rotate(10deg); animation:af-paper-shift 5s ease-in-out infinite alternate; }
@keyframes af-wall { 0% { opacity:.9; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.1); } 100% { opacity:.85; filter:brightness(.9); } }
@keyframes af-desk { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes af-lamp-sway { 0%,100% { transform:translateX(-50%) rotate(-2deg); } 50% { transform:translateX(-50%) rotate(2deg); } }
@keyframes af-lamp-glow { 0% { opacity:.7; box-shadow:0 0 12px 3px #b06030; } 50% { opacity:1; box-shadow:0 0 24px 8px #ffd080; } 100% { opacity:.8; box-shadow:0 0 16px 5px #b06030; } }
@keyframes af-figure-typing { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(3px) rotate(2deg) scaleY(.98); } 50% { transform:translateX(0) rotate(0) scaleY(1); } 75% { transform:translateX(-2px) rotate(-1deg) scaleY(1.02); } 100% { transform:translateX(0) rotate(0); } }
@keyframes af-type { 0% { transform:translateY(0); } 100% { transform:translateY(-1px); } }
@keyframes af-shadow { 0%,100% { transform:scaleX(1); opacity:.3; } 50% { transform:scaleX(1.1); opacity:.5; } }
@keyframes af-paper-shift { 0% { transform:rotate(8deg) translate(0,0); } 100% { transform:rotate(12deg) translate(2px,-1px); } }

.scn-second-bloodstain {
  background:
    linear-gradient(180deg, #1a1412 0%, #0f0a08 40%, #080504 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a14 0%, transparent 70%);
}
.scn-second-bloodstain .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #1a1210 0%, #0c0806 100%); box-shadow:inset 0 8px 20px rgba(0,0,0,.6); }
.scn-second-bloodstain .bg-wall { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #2a1e1a 0%, #1a1412 100%); }
.scn-second-bloodstain .pool { position:absolute; bottom:32%; left:35%; width:40px; height:30px; background:radial-gradient(ellipse, #5e1a1d 0%, #2a0a0c 70%, #1a0608 100%); border-radius:50%; box-shadow:0 0 12px 6px rgba(94,26,29,.3); animation:sb-pool 6s ease-in-out infinite alternate; }
.scn-second-bloodstain .ferns { position:absolute; bottom:28%; left:55%; width:30px; height:40px; background:linear-gradient(180deg, #3a4a2a 0%, #1a2a12 100%); border-radius:50% 50% 20% 20%; transform-origin:bottom; animation:sb-ferns 5s ease-in-out infinite alternate; }
.scn-second-bloodstain .shadow-struggle { position:absolute; bottom:30%; left:30%; width:40%; height:5%; background:rgba(0,0,0,.3); border-radius:50%; filter:blur(6px); animation:sb-shadow 4s ease-in-out infinite; }
.scn-second-bloodstain .broken-pot { position:absolute; bottom:28%; left:58%; width:12px; height:10px; background:linear-gradient(180deg, #6a4a3a, #3a2a1a); border-radius:10%; transform:rotate(-20deg); animation:sb-pot 7s ease-in-out infinite; }
@keyframes sb-pool { 0% { transform:scale(1); opacity:.8; } 50% { transform:scale(1.05) rotate(3deg); opacity:1; } 100% { transform:scale(.95) rotate(-2deg); opacity:.9; } }
@keyframes sb-ferns { 0% { transform:rotate(0); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-3deg); } }
@keyframes sb-shadow { 0%,100% { transform:scaleX(1); opacity:.2; } 50% { transform:scaleX(1.2); opacity:.4; } }
@keyframes sb-pot { 0% { transform:rotate(-15deg) translateY(0); } 50% { transform:rotate(-25deg) translateY(-3px); } 100% { transform:rotate(-15deg) translateY(0); } }

.scn-second-victim-theory {
  background:
    linear-gradient(180deg, #1e1614 0%, #120c0a 40%, #080604 100%),
    radial-gradient(ellipse at 50% 40%, #2a1a14 0%, transparent 70%);
}
.scn-second-victim-theory .bg-wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(180deg, #2a1e1a 0%, #1a1412 100%); }
.scn-second-victim-theory .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #1a1210 0%, #0c0806 100%); }
.scn-second-victim-theory .chair-left { position:absolute; bottom:18%; left:15%; width:25px; height:30px; background:linear-gradient(180deg, #4a322a, #2a1a16); border-radius:30% 30% 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,.4); animation:sv-chair-l 6s ease-in-out infinite alternate; }
.scn-second-victim-theory .chair-right { position:absolute; bottom:18%; right:15%; width:25px; height:30px; background:linear-gradient(180deg, #4a322a, #2a1a16); border-radius:30% 30% 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,.4); animation:sv-chair-r 6s ease-in-out infinite alternate; }
.scn-second-victim-theory .figure-left { position:absolute; bottom:20%; left:18%; width:18px; height:44px; background:linear-gradient(180deg, #2a1a16 0%, #0e0a08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:sv-figure-l 5s ease-in-out infinite; }
.scn-second-victim-theory .figure-right { position:absolute; bottom:20%; right:18%; width:18px; height:44px; background:linear-gradient(180deg, #2a1a16 0%, #0e0a08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:sv-figure-r 5s ease-in-out infinite; }
.scn-second-victim-theory .table-center { position:absolute; bottom:15%; left:50%; width:30px; height:6px; transform:translateX(-50%); background:linear-gradient(90deg, #3a2a22, #1a1210); border-radius:10%; box-shadow:0 2px 6px rgba(0,0,0,.5); animation:sv-table 7s ease-in-out infinite; }
.scn-second-victim-theory .candle { position:absolute; bottom:21%; left:50%; width:4px; height:12px; transform:translateX(-50%); background:linear-gradient(180deg, #f0e0c0, #c0a080); border-radius:10%; box-shadow:0 -4px 12px 4px #ffd080, 0 -8px 24px 8px rgba(255,208,128,.3); animation:sv-candle 3s ease-in-out infinite alternate; }
@keyframes sv-chair-l { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes sv-chair-r { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes sv-figure-l { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(4px) rotate(2deg); } 50% { transform:translateX(0) rotate(0); } 75% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes sv-figure-r { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(-3px) rotate(-1deg); } 50% { transform:translateX(0) rotate(0); } 75% { transform:translateX(4px) rotate(2deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes sv-table { 0%,100% { transform:translateX(-50%) scaleX(1); } 50% { transform:translateX(-50%) scaleX(1.05); } }
@keyframes sv-candle { 0% { opacity:.8; box-shadow:0 -4px 8px 2px #ffd080; } 50% { opacity:1; box-shadow:0 -6px 16px 6px #ffd080; } 100% { opacity:.9; box-shadow:0 -4px 10px 3px #ffd080; } }

.scn-muriels-plan {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #1a1412 40%, #0c0a08 100%),
    radial-gradient(ellipse at 60% 40%, #4a2a1a 0%, transparent 60%);
}
.scn-muriels-plan .bg-wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #3a2a22 0%, #1f1410 100%); animation:mp-wall 12s ease-in-out infinite alternate; }
.scn-muriels-plan .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #1a1210 0%, #0c0806 100%); }
.scn-muriels-plan .desk { position:absolute; bottom:18%; left:20%; width:60%; height:8%; background:linear-gradient(180deg, #4a322a 0%, #2a1a16 100%); border-radius:4% 4% 0 0; box-shadow:0 4px 12px rgba(0,0,0,.5); animation:mp-desk 6s ease-in-out infinite; }
.scn-muriels-plan .lamp { position:absolute; bottom:32%; left:50%; width:8px; height:18px; transform:translateX(-50%); background:linear-gradient(180deg, #6a4a3a, #3a2a1a); border-radius:20%; animation:mp-lamp-sway 8s ease-in-out infinite; }
.scn-muriels-plan .lamp::after { content:''; position:absolute; top:2px; left:-3px; width:14px; height:10px; background:radial-gradient(circle, #f0c080 0%, #a06030 70%); border-radius:50%; box-shadow:0 0 18px 5px #a06030, 0 0 36px 10px rgba(160,96,48,.4); animation:mp-lamp-glow 3s ease-in-out infinite alternate; }
.scn-muriels-plan .figure { position:absolute; bottom:22%; left:35%; width:18px; height:46px; background:linear-gradient(180deg, #3a2a22 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mp-figure 4s ease-in-out infinite; }
.scn-muriels-plan .papers { position:absolute; bottom:20%; left:45%; width:20px; height:14px; background:linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius:5%; transform:rotate(-10deg); animation:mp-papers 5s ease-in-out infinite alternate; }
.scn-muriels-plan .envelope { position:absolute; bottom:20%; left:55%; width:16px; height:12px; background:linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius:5%; transform:rotate(15deg); animation:mp-envelope 6s ease-in-out infinite; }
.scn-muriels-plan .shadow { position:absolute; bottom:18%; left:30%; width:40%; height:2px; background:rgba(0,0,0,.4); filter:blur(4px); animation:mp-shadow 6s ease-in-out infinite; }
@keyframes mp-wall { 0% { opacity:.9; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.05); } 100% { opacity:.85; filter:brightness(.95); } }
@keyframes mp-desk { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes mp-lamp-sway { 0%,100% { transform:translateX(-50%) rotate(-1deg); } 50% { transform:translateX(-50%) rotate(1deg); } }
@keyframes mp-lamp-glow { 0% { opacity:.7; box-shadow:0 0 10px 2px #a06030; } 50% { opacity:1; box-shadow:0 0 22px 7px #f0c080; } 100% { opacity:.8; box-shadow:0 0 14px 4px #a06030; } }
@keyframes mp-figure { 0%,100% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-3px) rotate(2deg); } 50% { transform:translateY(0) rotate(0); } 75% { transform:translateY(1px) rotate(-1deg); } }
@keyframes mp-papers { 0% { transform:rotate(-8deg) translate(0,0); } 100% { transform:rotate(-12deg) translate(2px,-2px); } }
@keyframes mp-envelope { 0% { transform:rotate(12deg) translateY(0); } 50% { transform:rotate(18deg) translateY(-3px); } 100% { transform:rotate(12deg) translateY(0); } }
@keyframes mp-shadow { 0%,100% { transform:scaleX(1); opacity:.3; } 50% { transform:scaleX(1.15); opacity:.5; } }

/* ---- london-chater-mystery ---- */
.scn-london-chater-mystery {
  background: linear-gradient(180deg, #0d0d2b 0%, #1a1a3a 30%, #1f1f3f 60%, #10102a 100%),
              radial-gradient(ellipse at 50% 100%, #14142e 0%, transparent 70%);
}
.scn-london-chater-mystery .sky-night { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0a1e 0%, #13132b 100%); animation: lcm-sky 8s ease-in-out infinite alternate; }
.scn-london-chater-mystery .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #0f1a2b 0%, #0a0e1a 100%); border-radius: 30% 70% 0 0 / 20% 50% 0 0; animation: lcm-sea 12s ease-in-out infinite alternate; }
.scn-london-chater-mystery .ship-hull { position:absolute; bottom:35%; left:35%; width:120px; height:40px; background: linear-gradient(135deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 10% 10% 30% 30%; clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%); transform: rotate(-2deg); }
.scn-london-chater-mystery .mast { position:absolute; bottom:55%; left:42%; width:6px; height:80px; background: #1a0e04; border-radius: 2px; transform-origin: bottom; animation: lcm-mast 6s ease-in-out infinite; }
.scn-london-chater-mystery .sail-left { position:absolute; bottom:60%; left:36%; width:40px; height:50px; background: linear-gradient(90deg, #1a1a0a 0%, #0a0a05 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform: skewX(10deg); filter: blur(1px); animation: lcm-sail 8s ease-in-out infinite alternate; }
.scn-london-chater-mystery .sail-right { position:absolute; bottom:62%; left:48%; width:35px; height:45px; background: linear-gradient(270deg, #1a1a0a 0%, #0a0a05 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform: skewX(-10deg); filter: blur(1px); animation: lcm-sail2 8s ease-in-out infinite alternate; }
.scn-london-chater-mystery .dock-post { position:absolute; bottom:38%; left:28%; width:8px; height:20px; background: #1a1008; border-radius: 20% 20% 0 0; box-shadow: 0 0 6px rgba(0,0,0,0.5); }
.scn-london-chater-mystery .lantern-glow { position:absolute; bottom:45%; left:30%; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, #cc9933 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 10px rgba(255,208,128,0.3); animation: lcm-glow 3s ease-in-out infinite alternate; }
.scn-london-chater-mystery .figure-shadow { position:absolute; bottom:40%; left:20%; width:25px; height:45px; background: #0a0a10; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: lcm-figure 5s ease-in-out infinite; }
@keyframes lcm-sky { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }
@keyframes lcm-sea { 0% { transform: translateY(0) scaleY(1) } 33% { transform: translateY(-3px) scaleY(1.02) } 66% { transform: translateY(2px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes lcm-mast { 0%,100% { transform: rotate(0) } 25% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) } }
@keyframes lcm-sail { 0% { transform: skewX(10deg) translateX(0) } 50% { transform: skewX(8deg) translateX(2px) } 100% { transform: skewX(10deg) translateX(0) } }
@keyframes lcm-sail2 { 0% { transform: skewX(-10deg) translateX(0) } 50% { transform: skewX(-8deg) translateX(-2px) } 100% { transform: skewX(-10deg) translateX(0) } }
@keyframes lcm-glow { 0% { box-shadow: 0 0 15px 8px rgba(255,208,128,0.2); opacity:0.8 } 50% { box-shadow: 0 0 25px 12px rgba(255,208,128,0.4); opacity:1 } 100% { box-shadow: 0 0 18px 10px rgba(255,208,128,0.25); opacity:0.9 } }
@keyframes lcm-figure { 0% { transform: scaleX(-1) translateX(0) } 25% { transform: scaleX(-1) translateX(4px) } 50% { transform: scaleX(-1) translateX(0) } 75% { transform: scaleX(-1) translateX(-4px) } 100% { transform: scaleX(-1) translateX(0) } }

/* ---- london-eastbourne-plan ---- */
.scn-london-eastbourne-plan {
  background: linear-gradient(180deg, #0b0b1a 0%, #12122a 40%, #1a1a2a 70%, #0e0e1e 100%),
              radial-gradient(ellipse at 50% 80%, #1c1c30 0%, transparent 70%);
}
.scn-london-eastbourne-plan .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #0e0e1a 100%); animation: leb-wall 15s ease-in-out infinite alternate; }
.scn-london-eastbourne-plan .desk-shadow { position:absolute; bottom:10%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #1f1f30 0%, #0a0a14 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-london-eastbourne-plan .telegram-paper { position:absolute; bottom:20%; left:30%; width:80px; height:50px; background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%); border-radius: 3px; transform: rotate(2deg); box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: leb-paper 4s ease-in-out infinite; }
.scn-london-eastbourne-plan .lamp-base { position:absolute; bottom:35%; left:45%; width:10px; height:20px; background: #3a2a1a; border-radius: 2px 2px 50% 50%; }
.scn-london-eastbourne-plan .lamp-light { position:absolute; bottom:48%; left:44%; width:40px; height:30px; background: radial-gradient(ellipse, #ffdd88 0%, #ffcc66 30%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: leb-lamp 5s ease-in-out infinite alternate; }
.scn-london-eastbourne-plan .chair-back { position:absolute; bottom:12%; left:50%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 20% 20% 0 0; box-shadow: inset -2px -2px 4px rgba(0,0,0,0.6); }
.scn-london-eastbourne-plan .window-night { position:absolute; top:8%; right:8%; width:50px; height:70px; background: linear-gradient(180deg, #0a0a2e 0%, #14143c 50%, #0a0a2e 100%); border-radius: 2px; border: 4px solid #1a1a24; box-shadow: inset 0 0 10px rgba(0,0,0,0.4); }
.scn-london-eastbourne-plan .curtain { position:absolute; top:6%; right:12%; width:10px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%); border-radius: 20% 20% 0 0; animation: leb-curtain 9s ease-in-out infinite alternate; }
@keyframes leb-wall { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.85 } }
@keyframes leb-paper { 0%,100% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-1px) } }
@keyframes leb-lamp { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes leb-curtain { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-2px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }

/* ---- london-no-olinto ---- */
.scn-london-no-olinto {
  background: linear-gradient(180deg, #05050e 0%, #0c0c1c 30%, #0f0f20 60%, #080812 100%),
              radial-gradient(ellipse at 50% 100%, #12122a 0%, transparent 70%);
}
.scn-london-no-olinto .street-bg { position:absolute; inset:0; background: linear-gradient(180deg, #0c0c1c 0%, #080814 100%); animation: lno-street 12s ease-in-out infinite alternate; }
.scn-london-no-olinto .building-wall { position:absolute; bottom:20%; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
.scn-london-no-olinto .door { position:absolute; bottom:22%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 10% 10% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.scn-london-no-olinto .lamp-post { position:absolute; bottom:30%; left:60%; width:8px; height:80px; background: #1a1008; border-radius: 2px; }
.scn-london-no-olinto .lamp-flare { position:absolute; bottom:42%; left:58%; width:30px; height:20px; background: radial-gradient(ellipse, #ffdd88 0%, #ccaa55 30%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: lno-flare 3s ease-in-out infinite alternate; }
.scn-london-no-olinto .figure-one { position:absolute; bottom:28%; left:45%; width:20px; height:50px; background: #0a0a12; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: lno-figure1 5s ease-in-out infinite; }
.scn-london-no-olinto .figure-two { position:absolute; bottom:26%; left:55%; width:22px; height:48px; background: #0a0a12; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-3deg); animation: lno-figure2 6s ease-in-out infinite; }
@keyframes lno-street { 0% { opacity:0.7 } 50% { opacity:0.85 } 100% { opacity:0.75 } }
@keyframes lno-flare { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lno-figure1 { 0% { transform: rotate(5deg) translateX(0) } 25% { transform: rotate(4deg) translateX(2px) } 50% { transform: rotate(5deg) translateX(0) } 75% { transform: rotate(6deg) translateX(-2px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes lno-figure2 { 0% { transform: rotate(-3deg) translateX(0) } 25% { transform: rotate(-2deg) translateX(-2px) } 50% { transform: rotate(-3deg) translateX(0) } 75% { transform: rotate(-4deg) translateX(2px) } 100% { transform: rotate(-3deg) translateX(0) } }

/* ---- item-telegram-muriel ---- */
.scn-item-telegram-muriel {
  background: linear-gradient(180deg, #0b0b1a 0%, #14142a 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 80%, #1c1c30 0%, transparent 70%);
}
.scn-item-telegram-muriel .sky-dark { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #08081a 0%, #0c0c1e 100%); animation: itm-sky 10s ease-in-out infinite alternate; }
.scn-item-telegram-muriel .buildings-silhouette { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 30% 20% 0 0 / 60% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: itm-buildings 15s ease-in-out infinite alternate; }
.scn-item-telegram-muriel .street-ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0c0c1c 0%, #070710 100%); }
.scn-item-telegram-muriel .lamp-street { position:absolute; bottom:25%; left:40%; width:10px; height:60px; background: #1a1008; border-radius: 2px; }
.scn-item-telegram-muriel .lamp-halo { position:absolute; bottom:35%; left:36%; width:50px; height:30px; background: radial-gradient(ellipse, #ffddaa 0%, #d4a86a 30%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: itm-halo 4s ease-in-out infinite alternate; }
.scn-item-telegram-muriel .figure-left { position:absolute; bottom:12%; left:35%; width:22px; height:55px; background: #0a0a12; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: itm-walk-left 7s ease-in-out infinite; }
.scn-item-telegram-muriel .figure-right { position:absolute; bottom:10%; left:50%; width:24px; height:50px; background: #0a0a12; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: itm-walk-right 8s ease-in-out infinite; }
.scn-item-telegram-muriel .telegram-envelope { position:absolute; bottom:18%; left:20%; width:30px; height:20px; background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: itm-envelope 5s ease-in-out infinite; }
@keyframes itm-sky { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }
@keyframes itm-buildings { 0% { transform: translateY(0) } 33% { transform: translateY(-2px) } 66% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes itm-halo { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes itm-walk-left { 0% { transform: scaleX(-1) translateX(0) } 25% { transform: scaleX(-1) translateX(3px) } 50% { transform: scaleX(-1) translateX(0) } 75% { transform: scaleX(-1) translateX(-3px) } 100% { transform: scaleX(-1) translateX(0) } }
@keyframes itm-walk-right { 0% { transform: translateX(0) } 25% { transform: translateX(-3px) } 50% { transform: translateX(0) } 75% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes itm-envelope { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-1px) } }

/* Scene 1: speculation-on-fabrication (tense, bright-interior) */
.scn-speculation-on-fabrication {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b098 50%, #a08060 100%), radial-gradient(ellipse at 50% 60%, #f0e0c8 0%, transparent 70%);
}
.scn-speculation-on-fabrication .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #a89878 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.15);
}
.scn-speculation-on-fabrication .desk {
  position: absolute; bottom: 10%; left: 15%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.4), inset 0 2px 6px rgba(255,255,255,.1);
}
.scn-speculation-on-fabrication .lamp {
  position: absolute; bottom: 38%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c0a080 0%, #806050 100%);
  border-radius: 20% 20% 0 0;
  transform-origin: bottom center;
  animation: sf1-lamp-sway 3s ease-in-out infinite alternate;
}
.scn-speculation-on-fabrication .lamp::after {
  content: ''; position: absolute; bottom: -10px; left: -10px;
  width: 40px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #e8b060 60%, transparent 100%);
  border-radius: 50%;
  animation: sf1-lamp-glow 2.5s ease-in-out infinite alternate;
}
.scn-speculation-on-fabrication .paper-1 {
  position: absolute; bottom: 16%; left: 20%; width: 50px; height: 40px;
  background: #f0e8d0;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  transform: rotate(-5deg);
  animation: sf1-paper-drift 4s ease-in-out infinite;
}
.scn-speculation-on-fabrication .paper-2 {
  position: absolute; bottom: 14%; left: 35%; width: 60px; height: 45px;
  background: #f0e8d0;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  transform: rotate(8deg);
  animation: sf1-paper-drift 4.5s ease-in-out infinite reverse;
}
.scn-speculation-on-fabrication .shadow-figure {
  position: absolute; bottom: 22%; right: 15%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf1-figure-breathe 6s ease-in-out infinite;
  filter: drop-shadow(0 -10px 20px rgba(0,0,0,.3));
}
.scn-speculation-on-fabrication .chair {
  position: absolute; bottom: 10%; left: 5%; width: 40px; height: 50px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,.2);
  animation: sf1-chair 8s ease-in-out infinite;
}
.scn-speculation-on-fabrication .light-beam {
  position: absolute; bottom: 40%; left: 30%; width: 40px; height: 120px;
  background: linear-gradient(180deg, rgba(255,220,150,.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: sf1-beam 5s ease-in-out infinite alternate;
}
@keyframes sf1-lamp-sway { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes sf1-lamp-glow { 0% { opacity: .7; transform: scale(.95) } 100% { opacity: 1; transform: scale(1.05) } }
@keyframes sf1-paper-drift { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(10px) rotate(3deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes sf1-figure-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sf1-chair { 0% { transform: translateY(0) } 25% { transform: translateY(-1px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes sf1-beam { 0% { opacity: .4; filter: blur(4px) } 100% { opacity: .7; filter: blur(8px) } }

/* Scene 2: detective-description-of-pair (tense, bright-interior) */
.scn-detective-description-of-pair {
  background: linear-gradient(180deg, #e0d4c0 0%, #b8a890 50%, #908070 100%), radial-gradient(ellipse at 20% 50%, #f0e8d8 0%, transparent 70%);
}
.scn-detective-description-of-pair .station-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.1);
}
.scn-detective-description-of-pair .platform {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-top: 2px solid #5a4a3a;
}
.scn-detective-description-of-pair .stranger-left {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dp2-stranger-walk 5s ease-in-out infinite;
}
.scn-detective-description-of-pair .stranger-right {
  position: absolute; bottom: 22%; left: 28%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dp2-stranger-walk 5.2s ease-in-out infinite;
  animation-delay: .5s;
}
.scn-detective-description-of-pair .detective-desk {
  position: absolute; bottom: 10%; right: 15%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-detective-description-of-pair .lamp-post {
  position: absolute; bottom: 18%; right: 25%; width: 8px; height: 60px;
  background: #4a4a3a;
  border-radius: 4px 4px 0 0;
}
.scn-detective-description-of-pair .lamp-post::after {
  content: ''; position: absolute; top: -8px; left: -6px;
  width: 20px; height: 12px;
  background: radial-gradient(circle, #f0d080 0%, #d0b060 60%, transparent 100%);
  border-radius: 50%;
  animation: dp2-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-detective-description-of-pair .train-window {
  position: absolute; top: 15%; right: 10%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #c0d8e8 0%, #a0b8c8 100%);
  border: 4px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.2);
  overflow: hidden;
  animation: dp2-train-pass 8s linear infinite;
}
.scn-detective-description-of-pair .train-window::before {
  content: ''; position: absolute; left: -30px; width: 40px; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.1) 50%, transparent 100%);
  animation: dp2-window-reflect 4s ease-in-out infinite;
}
.scn-detective-description-of-pair .clock {
  position: absolute; top: 8%; left: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0d0b0 0%, #c0b090 70%);
  border-radius: 50%;
  border: 3px solid #5a4a3a;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-detective-description-of-pair .clock::after {
  content: ''; position: absolute; top: 50%; left: 50%; width: 2px; height: 12px;
  background: #3a2a1a;
  transform-origin: bottom center; transform: translate(-50%, -100%) rotate(0deg);
  animation: dp2-clock-hand 60s linear infinite;
}
@keyframes dp2-stranger-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0deg) } }
@keyframes dp2-lamp-glow { 0% { opacity: .6; transform: scale(.9) } 100% { opacity: 1; transform: scale(1.1) } }
@keyframes dp2-train-pass { 0% { transform: translateX(0) } 100% { transform: translateX(-120px) } }
@keyframes dp2-window-reflect { 0% { left: -30px } 100% { left: 100% } }
@keyframes dp2-clock-hand { 0% { transform: translate(-50%, -100%) rotate(0deg) } 100% { transform: translate(-50%, -100%) rotate(360deg) } }

/* Scene 3: description-of-woman (tense, bright-interior) */
.scn-description-of-woman {
  background: linear-gradient(180deg, #e4d8c8 0%, #c8b8a0 50%, #a89880 100%), radial-gradient(ellipse at 30% 50%, #f0e4d0 0%, transparent 70%);
}
.scn-description-of-woman .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d0c0a8 0%, #b0a088 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.1);
}
.scn-description-of-woman .doorway {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
}
.scn-description-of-woman .woman-figure {
  position: absolute; bottom: 20%; left: 36%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw3-figure-breathe 6s ease-in-out infinite;
}
.scn-description-of-woman .veil {
  position: absolute; bottom: 68%; left: 34%; width: 40px; height: 30px;
  background: linear-gradient(180deg, rgba(30,30,30,.6) 0%, rgba(20,20,20,.2) 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 20% 20%;
  filter: blur(1px);
  animation: dw3-veil-sway 4s ease-in-out infinite;
}
.scn-description-of-woman .chair {
  position: absolute; bottom: 18%; right: 20%; width: 50px; height: 40px;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,.2);
}
.scn-description-of-woman .lamp-glare {
  position: absolute; top: 15%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,120,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: dw3-glare-pulse 3s ease-in-out infinite alternate;
}
.scn-description-of-woman .window-frame {
  position: absolute; top: 8%; left: 5%; width: 100px; height: 140px;
  border: 6px solid #5a4a3a;
  border-radius: 4px;
  background: linear-gradient(180deg, #c0d0e0 0%, #a0b8c8 100%);
  box-shadow: inset 0 0 30px rgba(255,255,255,.3);
}
.scn-description-of-woman .shadow-on-wall {
  position: absolute; bottom: 22%; left: 25%; width: 50px; height: 90px;
  background: rgba(0,0,0,.15);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(4px);
  animation: dw3-shadow 6s ease-in-out infinite;
}
@keyframes dw3-figure-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.015) } 100% { transform: scaleY(1) } }
@keyframes dw3-veil-sway { 0% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes dw3-glare-pulse { 0% { opacity: .4; transform: scale(.95) } 100% { opacity: .7; transform: scale(1.05) } }
@keyframes dw3-shadow { 0% { opacity: .1; transform: translateX(0) } 50% { opacity: .2; transform: translateX(5px) } 100% { opacity: .1; transform: translateX(0) } }

/* Scene 4: fleet-arrival (warm, sunlit) */
.scn-fleet-arrival {
  background: linear-gradient(180deg, #fce8c8 0%, #f0d8a8 30%, #c8b080 60%, #a09878 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-fleet-arrival .sky-grad {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe8c8 0%, #f0d8a0 50%, #d8c090 100%);
  box-shadow: inset 0 20px 40px rgba(255,200,100,.3);
}
.scn-fleet-arrival .sunburst {
  position: absolute; top: 8%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, #fff4d0 0%, #ffe8a0 30%, transparent 70%);
  border-radius: 50%;
  animation: fa4-sun-pulse 8s ease-in-out infinite alternate;
}
.scn-fleet-arrival .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 50%, #1a3a4a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.2);
  animation: fa4-sea-wave 12s linear infinite;
}
.scn-fleet-arrival .ship-1 {
  position: absolute; bottom: 40%; left: 10%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 40% 10% 10%;
  transform-origin: center bottom;
  animation: fa4-ship-roll 6s ease-in-out infinite;
}
.scn-fleet-arrival .ship-1::after {
  content: ''; position: absolute; top: -30px; left: 30px;
  width: 2px; height: 30px;
  background: #3a2a1a;
}
.scn-fleet-arrival .ship-2 {
  position: absolute; bottom: 38%; right: 15%; width: 100px; height: 35px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 30% 10% 10%;
  transform-origin: center bottom;
  animation: fa4-ship-roll 7s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-fleet-arrival .flag-pole {
  position: absolute; bottom: 45%; left: 5%; width: 4px; height: 60px;
  background: #5a4a3a;
  border-radius: 2px;
}
.scn-fleet-arrival .flag-cloth {
  position: absolute; bottom: 70%; left: 6%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #c85030 0%, #a83820 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: fa4-flag-wave 3s ease-in-out infinite;
}
.scn-fleet-arrival .seagull {
  position: absolute; top: 12%; left: 20%; width: 20px; height: 6px;
  background: #5a5a5a;
  border-radius: 50% 50% 0 0;
  filter: blur(1px);
  animation: fa4-gull-fly 15s linear infinite;
}
.scn-fleet-arrival .pier {
  position: absolute; bottom: 20%; left: -10%; width: 140%; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, 6a5a4a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.2);
}
@keyframes fa4-sun-pulse { 0% { transform: scale(1); opacity: .9 } 100% { transform: scale(1.05); opacity: 1 } }
@keyframes fa4-sea-wave { 0% { transform: translateX(0) } 50% { transform: translateX(15px) } 100% { transform: translateX(0) } }
@keyframes fa4-ship-roll { 0% { transform: rotate(-1deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-2px) } 50% { transform: rotate(-1deg) translateY(0) } 75% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes fa4-flag-wave { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes fa4-gull-fly { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(20vw) translateY(-5px) } 50% { transform: translateX(40vw) translateY(0) } 75% { transform: translateX(60vw) translateY(-3px) } 100% { transform: translateX(80vw) translateY(0) } }

/* teasing-about-photo */
.scn-teasing-about-photo { background: linear-gradient(135deg, #4a2a1a 0%, #6a3a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 30% 50%, #8a4a2a 0%, transparent 70%); }
.scn-teasing-about-photo .bg-fire { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #d05020 0%, transparent 60%); opacity:.6; animation: tap-glow 4s ease-in-out infinite alternate; }
.scn-teasing-about-photo .fire { position:absolute; bottom:20%; left:30%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #c04000 40%, #4a1a00 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 30px 15px #c04000, 0 0 60px 30px rgba(192,64,0,.3); animation: tap-fire 2s ease-in-out infinite; }
.scn-teasing-about-photo .mantle { position:absolute; bottom:30%; left:20%; right:20%; height:12px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-teasing-about-photo .photo-frame { position:absolute; bottom:42%; left:38%; width:40px; height:50px; background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%); border:2px solid #8a6a4a; border-radius:2px; transform:rotate(-5deg); box-shadow: 0 0 12px 2px rgba(200,100,50,.4); animation: tap-photo 3s ease-in-out infinite alternate; }
.scn-teasing-about-photo .figure { position:absolute; bottom:28%; left:50%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 40% 40% 40% / 60% 50% 50% 40%; transform:rotate(5deg); transform-origin:bottom center; animation: tap-figure 5s ease-in-out infinite; }
.scn-teasing-about-photo .shadow { position:absolute; bottom:22%; left:50%; width:80px; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 80%); transform:translateX(-30%); filter:blur(4px); animation: tap-shadow 6s ease-in-out infinite; }
.scn-teasing-about-photo .chair { position:absolute; bottom:20%; left:10%; width:80px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
@keyframes tap-glow { 0% { opacity:.5; transform:scale(1); } 50% { opacity:.8; transform:scale(1.05); } 100% { opacity:.6; transform:scale(0.95); } }
@keyframes tap-fire { 0% { transform:scaleY(1) translateY(0); } 25% { transform:scaleY(1.1) translateY(-3px); } 50% { transform:scaleY(0.9) translateY(2px); } 75% { transform:scaleY(1.05) translateY(-1px); } 100% { transform:scaleY(1) translateY(0); } }
@keyframes tap-photo { 0% { transform:rotate(-5deg) scale(1); } 50% { transform:rotate(3deg) scale(1.02); } 100% { transform:rotate(-7deg) scale(0.98); } }
@keyframes tap-figure { 0% { transform:rotate(3deg) translateY(0); } 30% { transform:rotate(-2deg) translateY(-2px); } 60% { transform:rotate(4deg) translateY(1px); } 100% { transform:rotate(2deg) translateY(0); } }
@keyframes tap-shadow { 0% { transform:translateX(-30%) scaleX(1); } 50% { transform:translateX(-20%) scaleX(1.1); } 100% { transform:translateX(-35%) scaleX(0.9); } }

/* memory-of-yacht-evening */
.scn-memory-of-yacht-evening { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 60%); }
.scn-memory-of-yacht-evening .bg-cabin { position:absolute; inset:0; background: linear-gradient(135deg, rgba(10,10,20,.6) 0%, transparent 60%); }
.scn-memory-of-yacht-evening .porthole { position:absolute; top:15%; left:10%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle, #8080a0 0%, #2a2a4e 80%); border:4px solid #4a3a2a; box-shadow: inset 0 0 20px #000, 0 0 10px rgba(0,0,0,.5); animation: mye-porthole 12s ease-in-out infinite alternate; }
.scn-memory-of-yacht-evening .table { position:absolute; bottom:25%; left:30%; right:30%; height:20px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-memory-of-yacht-evening .portrait-frame { position:absolute; bottom:45%; left:55%; width:30px; height:40px; background: #1a1a1a; border:2px solid #4a3a2a; border-radius:2px; transform:rotate(15deg); box-shadow: 0 0 8px rgba(0,0,0,.5); }
.scn-memory-of-yacht-evening .torn-paper { position:absolute; bottom:20%; left:45%; width:12px; height:8px; background: #6a5a4a; border-radius:1px; box-shadow: 2px 3px 0 #4a3a2a; animation: mye-paper 7s ease-in-out infinite; }
.scn-memory-of-yacht-evening .shadow-figure { position:absolute; bottom:20%; left:70%; width:25px; height:50px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius:50% 40% 40% 40% / 60% 50% 50% 40%; transform:rotate(-10deg); filter:blur(2px); animation: mye-shadow 8s ease-in-out infinite alternate; }
.scn-memory-of-yacht-evening .candle { position:absolute; bottom:35%; left:35%; width:4px; height:15px; background: linear-gradient(180deg, #8a7a5a 0%, #3a2a1a 100%); border-radius:1px; box-shadow: 0 0 12px 4px #c08040; animation: mye-candle 3s ease-in-out infinite alternate; }
@keyframes mye-porthole { 0% { opacity:.7; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.2); } 100% { opacity:.8; filter:brightness(0.9); } }
@keyframes mye-paper { 0% { transform:translate(0,0) rotate(0deg); } 33% { transform:translate(3px,-2px) rotate(10deg); } 66% { transform:translate(-2px,1px) rotate(-5deg); } 100% { transform:translate(0,0) rotate(3deg); } }
@keyframes mye-shadow { 0% { transform:rotate(-10deg) scale(1); } 50% { transform:rotate(-5deg) scale(1.05); } 100% { transform:rotate(-12deg) scale(0.95); } }
@keyframes mye-candle { 0% { opacity:.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.1); } 100% { opacity:.7; transform:scaleY(0.9); } }

/* parasites-at-castle */
.scn-parasites-at-castle { background: linear-gradient(180deg, #c0a080 0%, #a08060 30%, #806040 100%), radial-gradient(ellipse at 50% 0%, #f0d0a0 0%, transparent 70%); }
.scn-parasites-at-castle .bg-hall { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,230,180,.3) 0%, transparent 70%); }
.scn-parasites-at-castle .chandelier { position:absolute; top:5%; left:50%; width:60px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #f0d090 0%, #a08040 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 30px 10px #d0b070, 0 0 60px 25px rgba(200,160,80,.4); animation: pac-chandelier 6s ease-in-out infinite alternate; }
.scn-parasites-at-castle .column-left { position:absolute; top:15%; left:10%; bottom:0; width:20px; background: linear-gradient(90deg, #906040 0%, #b08060 30%, #906040 100%); border-radius:2px; }
.scn-parasites-at-castle .column-right { position:absolute; top:15%; right:10%; bottom:0; width:20px; background: linear-gradient(90deg, #906040 0%, #b08060 30%, #906040 100%); border-radius:2px; }
.scn-parasites-at-castle .figure-left { position:absolute; bottom:20%; left:25%; width:28px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 40% 40% 40% / 60% 50% 50% 40%; transform:rotate(-5deg); animation: pac-figure-l 9s ease-in-out infinite; }
.scn-parasites-at-castle .figure-right { position:absolute; bottom:20%; right:25%; width:30px; height:58px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 50% 40% 40% / 50% 60% 40% 50%; transform:rotate(3deg); animation: pac-figure-r 9s ease-in-out infinite alternate; }
.scn-parasites-at-castle .table-cards { position:absolute; bottom:12%; left:40%; right:40%; height:25px; background: linear-gradient(180deg, #705030 0%, #503010 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
@keyframes pac-chandelier { 0% { transform:translateX(-50%) rotate(-2deg); } 50% { transform:translateX(-50%) rotate(2deg) scale(1.02); } 100% { transform:translateX(-50%) rotate(-1deg); } }
@keyframes pac-figure-l { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-3px); } 100% { transform:rotate(-6deg) translateY(0); } }
@keyframes pac-figure-r { 0% { transform:rotate(3deg) translateY(0); } 50% { transform:rotate(1deg) translateY(-2px); } 100% { transform:rotate(4deg) translateY(0); } }

/* uncles-opinion */
.scn-uncles-opinion { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 80%); }
.scn-uncles-opinion .bg-dim { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.4) 0%, transparent 60%); }
.scn-uncles-opinion .card-table { position:absolute; bottom:15%; left:30%; right:30%; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:8px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-uncles-opinion .lamp { position:absolute; bottom:35%; left:30%; width:8px; height:40px; background: linear-gradient(180deg, #6a5a3a 0%, #2a1a0a 100%); border-radius:1px; box-shadow: 0 0 20px 8px #c08040; transform:rotate(-10deg); transform-origin:bottom center; animation: uop-lamp 5s ease-in-out infinite alternate; }
.scn-uncles-opinion .figure-uncle { position:absolute; bottom:18%; left:22%; width:32px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 40% 40% 40% / 60% 50% 50% 40%; transform:rotate(8deg); animation: uop-uncle 4s ease-in-out infinite; }
.scn-uncles-opinion .figure-cadby { position:absolute; bottom:18%; right:20%; width:30px; height:58px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius:40% 50% 40% 40% / 50% 60% 40% 50%; transform:rotate(-5deg); filter:blur(1px); animation: uop-cadby 6s ease-in-out infinite alternate; }
.scn-uncles-opinion .shadow-floor { position:absolute; bottom:10%; left:10%; right:10%; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 70%); filter:blur(8px); animation: uop-shadow 8s ease-in-out infinite; }
.scn-uncles-opinion .chair { position:absolute; bottom:15%; left:10%; width:70px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
@keyframes uop-lamp { 0% { transform:rotate(-10deg) scaleY(1); } 50% { transform:rotate(-5deg) scaleY(1.05); } 100% { transform:rotate(-12deg) scaleY(0.95); } }
@keyframes uop-uncle { 0% { transform:rotate(8deg) translateY(0); } 25% { transform:rotate(10deg) translateY(-2px); } 75% { transform:rotate(6deg) translateY(1px); } 100% { transform:rotate(8deg) translateY(0); } }
@keyframes uop-cadby { 0% { transform:rotate(-5deg) scale(1); opacity:.7; } 50% { transform:rotate(-3deg) scale(1.03); opacity:1; } 100% { transform:rotate(-6deg) scale(0.97); opacity:.8; } }
@keyframes uop-shadow { 0% { transform:scaleX(1) translateY(0); } 50% { transform:scaleX(1.1) translateY(2px); } 100% { transform:scaleX(0.9) translateY(-2px); } }

/* Scene 1: search-progress-slow – overcast tense */
.scn-search-progress-slow {
  background:
    linear-gradient(180deg, #6b7c8a 0%, #4a5b66 40%, #3a4b55 100%),
    radial-gradient(ellipse at 50% 120%, #4a5b66 30%, transparent 60%);
}
.scn-search-progress-slow .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7a8a96 0%, #5a6b76 100%);
  animation: sps-sky 12s ease-in-out infinite alternate;
}
.scn-search-progress-slow .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4a5a3e 0%, #2a3a2e 100%);
  border-radius: 30% 70% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-search-progress-slow .water-hole {
  position: absolute; bottom: 35%; left: 35%; width: 120px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #3a5a66 0%, #1a2a33 80%);
  border-radius: 50%;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.6);
  transform: scale(1);
  animation: sps-water 8s ease-in-out infinite alternate;
}
.scn-search-progress-slow .moss-stone {
  position: absolute; bottom: 42%; left: 28%; width: 40px; height: 25px;
  background: linear-gradient(135deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-10deg);
  animation: sps-stone 4s ease-in-out infinite;
}
.scn-search-progress-slow .figure-slip {
  position: absolute; bottom: 38%; left: 42%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sps-figure 3s ease-in-out infinite;
}
.scn-search-progress-slow .ripple {
  position: absolute; bottom: 36%; left: 37%; width: 70px; height: 30px;
  border: 2px solid rgba(150,180,190,0.3);
  border-radius: 50%;
  box-shadow: 0 0 15px rgba(150,180,190,0.2);
  animation: sps-ripple 2s ease-out infinite;
}
.scn-search-progress-slow .splash {
  position: absolute; bottom: 36%; left: 43%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(180,210,220,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: sps-splash 1.5s ease-in infinite;
}
@keyframes sps-sky { 0%{ opacity:0.8 } 50%{ opacity:0.6 } 100%{ opacity:0.9 } }
@keyframes sps-water { 0%{ transform:scale(1) } 50%{ transform:scale(1.02) translateY(-2px) } 100%{ transform:scale(1) } }
@keyframes sps-stone { 0%{ transform:rotate(-10deg) } 50%{ transform:rotate(-5deg) translateY(2px) } 100%{ transform:rotate(-10deg) } }
@keyframes sps-figure { 0%{ transform:translateY(0) rotate(0deg) } 20%{ transform:translateY(-6px) rotate(-5deg) } 40%{ transform:translateY(0) rotate(5deg) } 60%{ transform:translateY(-8px) rotate(-8deg) } 80%{ transform:translateY(2px) rotate(3deg) } 100%{ transform:translateY(0) rotate(0deg) } }
@keyframes sps-ripple { 0%{ width:70px;height:30px;opacity:1 } 100%{ width:130px;height:60px;opacity:0 } }
@keyframes sps-splash { 0%{ transform:scale(1);opacity:1 } 100%{ transform:scale(3);opacity:0 } }

/* Scene 2: search-determination – overcast determined */
.scn-search-determination {
  background:
    linear-gradient(180deg, #5a6a70 0%, #3a4a50 40%, #2a3a40 100%),
    radial-gradient(ellipse at 50% 0%, #7a8a90 0%, transparent 60%);
}
.scn-search-determination .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #7a8a90 0%, #5a6a70 100%);
  animation: sd-sky 15s ease-in-out infinite alternate;
}
.scn-search-determination .woods-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 10% 90% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 8px 25px rgba(0,0,0,0.6);
  animation: sd-woods 20s ease-in-out infinite alternate;
}
.scn-search-determination .path {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 80% 0 0 / 10% 50% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
}
.scn-search-determination .figure-walk {
  position: absolute; bottom: 15%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sd-walk 3s ease-in-out infinite;
}
.scn-search-determination .hand-point {
  position: absolute; bottom: 40%; left: 37%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: sd-point 4s ease-in-out infinite;
}
.scn-search-determination .shadow {
  position: absolute; bottom: 12%; left: 33%; width: 30px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: sd-shadow 3s ease-in-out infinite;
}
@keyframes sd-sky { 0%{ opacity:0.7 } 50%{ opacity:0.5 } 100%{ opacity:0.8 } }
@keyframes sd-woods { 0%{ transform:translateY(0) } 50%{ transform:translateY(-5px) } 100%{ transform:translateY(0) } }
@keyframes sd-walk { 0%{ transform:translateX(0) rotate(0deg);left:35% } 25%{ transform:translateX(10px) rotate(2deg);left:36% } 50%{ transform:translateX(20px) rotate(0deg);left:37% } 75%{ transform:translateX(30px) rotate(-2deg);left:38% } 100%{ transform:translateX(40px) rotate(0deg);left:39% } }
@keyframes sd-point { 0%{ transform:rotate(20deg) } 50%{ transform:rotate(25deg) } 100%{ transform:rotate(20deg) } }
@keyframes sd-shadow { 0%{ width:30px;height:12px;opacity:0.5 } 50%{ width:34px;height:14px;opacity:0.6 } 100%{ width:30px;height:12px;opacity:0.5 } }

/* Scene 3: pondering-untried-effort – overcast pensive */
.scn-pondering-untried-effort {
  background:
    linear-gradient(180deg, #5a5a60 0%, #3a3a44 50%, #2a2a34 100%),
    radial-gradient(ellipse at 50% 100%, #4a4a55 0%, transparent 70%);
}
.scn-pondering-untried-effort .wall {
  position: absolute; inset: 0 50% 0 0;
  background: linear-gradient(90deg, #4a4a55 0%, #5a5a65 100%);
  box-shadow: inset -5px 0 15px rgba(0,0,0,0.3);
}
.scn-pondering-untried-effort .desk {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-pondering-untried-effort .photograph {
  position: absolute; bottom: 32%; left: 15%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%);
  border: 2px solid #4a3a2a;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: put-photo 10s ease-in-out infinite alternate;
}
.scn-pondering-untried-effort .figure-seated {
  position: absolute; bottom: 18%; left: 10%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: put-figure 8s ease-in-out infinite;
}
.scn-pondering-untried-effort .lamp {
  position: absolute; bottom: 40%; left: 28%; width: 15px; height: 30px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 -5px 20px rgba(200,180,150,0.3);
  animation: put-lamp 12s ease-in-out infinite alternate;
}
.scn-pondering-untried-effort .envelope {
  position: absolute; bottom: 25%; left: 25%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 2px 5px rgba(0,0,0,0.3);
  animation: put-envelope 15s ease-in-out infinite alternate;
}
@keyframes put-photo { 0%{ transform:rotate(-5deg) } 50%{ transform:rotate(0deg) } 100%{ transform:rotate(-5deg) } }
@keyframes put-figure { 0%{ transform:translateY(0) rotate(0deg) } 30%{ transform:translateY(-2px) rotate(3deg) } 60%{ transform:translateY(0) rotate(-2deg) } 100%{ transform:translateY(0) rotate(0deg) } }
@keyframes put-lamp { 0%{ opacity:0.8;box-shadow:0 -5px 20px rgba(200,180,150,0.3) } 50%{ opacity:1;box-shadow:0 -10px 35px rgba(200,180,150,0.5) } 100%{ opacity:0.8;box-shadow:0 -5px 20px rgba(200,180,150,0.3) } }
@keyframes put-envelope { 0%{ transform:rotate(10deg) translateY(0) } 50%{ transform:rotate(5deg) translateY(-3px) } 100%{ transform:rotate(10deg) translateY(0) } }

/* Scene 4: admiring-companion-energy – overcast admiring */
.scn-admiring-companion-energy {
  background:
    linear-gradient(180deg, #6b7a7a 0%, #4a5a5a 40%, #3a4a4a 100%),
    radial-gradient(ellipse at 50% 0%, #8a9a9a 0%, transparent 60%);
}
.scn-admiring-companion-energy .sky {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 100%);
  animation: ace-sky 14s ease-in-out infinite alternate;
}
.scn-admiring-companion-energy .path {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.4);
}
.scn-admiring-companion-energy .figure-lead {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ace-lead 3s ease-in-out infinite;
}
.scn-admiring-companion-energy .figure-follower {
  position: absolute; bottom: 17%; left: 48%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ace-follower 3.2s ease-in-out infinite 0.5s;
}
.scn-admiring-companion-energy .energy-swirls {
  position: absolute; bottom: 30%; left: 25%; right: 40%; height: 40%;
  background: radial-gradient(circle at 35% 50%, rgba(180,200,180,0.3) 0%, transparent 50%),
              radial-gradient(circle at 55% 40%, rgba(200,200,180,0.2) 0%, transparent 50%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ace-swirl 6s ease-in-out infinite alternate;
}
.scn-admiring-companion-energy .flowers {
  position: absolute; bottom: 20%; left: 20%; width: 15px; height: 15px;
  background: radial-gradient(circle, #b0a090 0%, #7a6a5a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ace-flower 5s ease-in-out infinite;
}
.scn-admiring-companion-energy .flowers::before {
  content: '';
  position: absolute; bottom: 18%; left: 55%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b0a090 0%, #7a6a5a 100%);
  border-radius: 50%;
  animation: ace-flower 5.5s ease-in-out infinite 1s;
}
@keyframes ace-sky { 0%{ opacity:0.75 } 50%{ opacity:0.85 } 100%{ opacity:0.7 } }
@keyframes ace-lead { 0%{ transform:translateX(0) rotate(0deg) } 20%{ transform:translateX(8px) rotate(4deg) } 40%{ transform:translateX(16px) rotate(0deg) } 60%{ transform:translateX(24px) rotate(-3deg) } 80%{ transform:translateX(32px) rotate(2deg) } 100%{ transform:translateX(40px) rotate(0deg) } }
@keyframes ace-follower { 0%{ transform:translateX(0) rotate(0deg) } 20%{ transform:translateX(6px) rotate(3deg) } 40%{ transform:translateX(12px) rotate(0deg) } 60%{ transform:translateX(18px) rotate(-2deg) } 80%{ transform:translateX(24px) rotate(1deg) } 100%{ transform:translateX(30px) rotate(0deg) } }
@keyframes ace-swirl { 0%{ opacity:0.3;transform:scale(1) } 50%{ opacity:0.6;transform:scale(1.1) } 100%{ opacity:0.3;transform:scale(1) } }
@keyframes ace-flower { 0%{ transform:scale(1) } 50%{ transform:scale(1.3) } 100%{ transform:scale(1) } }

/* petersburg-escape-to-princess - tense, dark, night canal */
.scn-petersburg-escape-to-princess {
  background:
    linear-gradient(180deg, #0b0e1a 0%, #141c2c 40%, #1a2535 70%, #121822 100%),
    radial-gradient(ellipse at 30% 50%, #1a2a4a 0%, transparent 60%);
}
.scn-petersburg-escape-to-princess .night-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0a0f1f 0%, #1a2a3a 100%);
  animation: pe-sky 20s ease-in-out infinite alternate;
}
.scn-petersburg-escape-to-princess .canal {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0e1622 0%, #0e1a2a 40%, #1a2a3a 70%, #2a3a4a 100%);
  border-radius: 50% 20% 0 0 / 20% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: pe-water 8s ease-in-out infinite;
}
.scn-petersburg-escape-to-princess .house-facade {
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: -10px 0 15px rgba(0,0,0,.4), 10px 0 15px rgba(0,0,0,.3);
  transform: perspective(800px) rotateY(-5deg);
}
.scn-petersburg-escape-to-princess .lit-window {
  position: absolute; bottom: 55%; left: 45%; width: 12%; height: 15%;
  background: radial-gradient(circle at 50% 50%, #f0c040 0%, #c08020 60%, #8a5a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 6px #f0c040, 0 0 40px 12px rgba(240,192,64,.4);
  animation: pe-window 4s ease-in-out infinite alternate;
}
.scn-petersburg-escape-to-princess .iron-gate {
  position: absolute; bottom: 30%; left: 35%; width: 10%; height: 18%;
  background: linear-gradient(135deg, #1a1a1a 25%, transparent 25%, transparent 50%, #1a1a1a 50%, #1a1a1a 75%, transparent 75%);
  background-size: 8px 8px;
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-petersburg-escape-to-princess .figure-escape {
  position: absolute; bottom: 28%; left: 42%; width: 5%; 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: pe-walk 6s ease-in-out infinite;
}
.scn-petersburg-escape-to-princess .lamp-post {
  position: absolute; bottom: 30%; left: 55%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 2px;
}
@keyframes pe-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes pe-water { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pe-window { 0% { box-shadow: 0 0 15px 4px #f0c040, 0 0 30px 8px rgba(240,192,64,.3); opacity: .85 } 50% { box-shadow: 0 0 25px 8px #ffd060, 0 0 50px 16px rgba(255,208,96,.5); opacity: 1 } 100% { box-shadow: 0 0 18px 5px #f0c040, 0 0 35px 10px rgba(240,192,64,.35); opacity: .9 } }
@keyframes pe-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-2deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }

/* petersburg-princess-intro - calm, bright interior */
.scn-petersburg-princess-intro {
  background:
    linear-gradient(180deg, #fcf8f0 0%, #f0ece0 50%, #e8dcc8 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e8 0%, transparent 60%);
}
.scn-petersburg-princess-intro .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8dcc8 50%, #d8ccb8 50%);
  background-size: 40px 40px;
  opacity: .7;
}
.scn-petersburg-princess-intro .floor-parquet {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a890 0%, #a89880 100%);
  border-top: 2px solid #c0a888;
}
.scn-petersburg-princess-intro .window-daylight {
  position: absolute; top: 15%; left: 60%; width: 25%; height: 45%;
  background: linear-gradient(135deg, #e8f0ff 0%, #c0d0f0 100%);
  border: 4px solid #d8c8b0;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,.3), 0 4px 8px rgba(0,0,0,.1);
  animation: pi-light 12s ease-in-out infinite alternate;
}
.scn-petersburg-princess-intro .sofa {
  position: absolute; bottom: 15%; left: 40%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #c0a080 0%, #a08868 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,.15);
}
.scn-petersburg-princess-intro .princess-figure {
  position: absolute; bottom: 10%; left: 45%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #f0d8c0 0%, #d8b898 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi-breathe 5s ease-in-out infinite;
}
.scn-petersburg-princess-intro .elma-figure {
  position: absolute; bottom: 10%; left: 30%; width: 7%; height: 22%;
  background: linear-gradient(180deg, #e0d0c0 0%, #c8b098 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi-breathe 6s ease-in-out infinite 0.5s;
}
.scn-petersburg-princess-intro .narrator-figure {
  position: absolute; bottom: 10%; left: 55%; width: 7%; height: 24%;
  background: linear-gradient(180deg, #d0c0b0 0%, #b8a090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi-breathe 7s ease-in-out infinite 1s;
}
.scn-petersburg-princess-intro .vase-flowers {
  position: absolute; bottom: 20%; left: 25%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #d0b090 0%, #b89878 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
}
@keyframes pi-light { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes pi-breathe { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }

/* petersburg-princess-agree - calm, bright interior, desk scene */
.scn-petersburg-princess-agree {
  background:
    linear-gradient(180deg, #f8f0e8 0%, #eee0d0 100%),
    radial-gradient(ellipse at 40% 40%, #fff8ee 0%, transparent 60%);
}
.scn-petersburg-princess-agree .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #e0d0c0 0%, #d8c8b8 100%);
  opacity: .6;
}
.scn-petersburg-princess-agree .desk {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #b8a080 0%, #a08868 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.15);
  transform: perspective(600px) rotateX(10deg);
}
.scn-petersburg-princess-agree .papers {
  position: absolute; bottom: 20%; left: 35%; width: 15%; height: 8%;
  background: linear-gradient(135deg, #f0e8d8 40%, #e8dcc8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  animation: pa-papers 12s ease-in-out infinite;
}
.scn-petersburg-princess-agree .lamp {
  position: absolute; bottom: 30%; left: 30%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b8a890 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px 8px rgba(255,200,100,.4);
  animation: pa-lamp 3s ease-in-out infinite alternate;
}
.scn-petersburg-princess-agree .princess-half {
  position: absolute; bottom: 5%; left: 30%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #f0d8c0 0%, #d8b898 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: inset(0 0 0 0 round 10%);
  transform-origin: bottom center;
  animation: pa-bob 5s ease-in-out infinite;
}
.scn-petersburg-princess-agree .narrator-half {
  position: absolute; bottom: 5%; left: 55%; width: 9%; height: 28%;
  background: linear-gradient(180deg, #d0c0b0 0%, #b8a090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: inset(0 0 0 0 round 10%);
  transform-origin: bottom center;
  animation: pa-bob 6s ease-in-out infinite 0.8s;
}
.scn-petersburg-princess-agree .tea-set {
  position: absolute; bottom: 12%; left: 45%; width: 8%; height: 6%;
  background: radial-gradient(circle at 50% 30%, #f0e8d8 0%, #e0d0b8 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
}
@keyframes pa-papers { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pa-lamp { 0% { box-shadow: 0 0 15px 6px rgba(255,200,100,.3) } 100% { box-shadow: 0 0 25px 10px rgba(255,200,100,.6) } }
@keyframes pa-bob { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* petersburg-princess-question - calm, bright interior, close-up on princess and narrator */
.scn-petersburg-princess-question {
  background:
    linear-gradient(180deg, #f5efe5 0%, #e8ddc8 100%),
    radial-gradient(ellipse at 50% 50%, #fff5e6 0%, transparent 70%);
}
.scn-petersburg-princess-question .close-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d6c0 50%, #dccab0 50%);
  background-size: 20px 20px;
  opacity: .4;
}
.scn-petersburg-princess-question .princess-profile {
  position: absolute; bottom: 10%; left: 25%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #f0d8c0 0%, #d8b898 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  clip-path: polygon(0% 0%, 75% 0%, 100% 15%, 100% 85%, 75% 100%, 0% 100%);
  /* profile silhouette */
  transform-origin: right center;
  animation: pq-turn 10s ease-in-out infinite;
}
.scn-petersburg-princess-question .narrator-shoulder {
  position: absolute; bottom: 5%; right: 15%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #c8b0a0 0%, #b09888 100%);
  border-radius: 60% 30% 20% 10% / 50% 40% 30% 20%;
  box-shadow: -10px 0 20px rgba(0,0,0,.1);
}
.scn-petersburg-princess-question .candle {
  position: absolute; bottom: 25%; left: 50%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  transform: translateX(-50%);
}
.scn-petersburg-princess-question .candle-glow {
  position: absolute; bottom: 20%; left: 46%; width: 12%; height: 15%;
  background: radial-gradient(circle, #fff0c0 0%, #f0c060 40%, transparent 70%);
  border-radius: 50%;
  animation: pq-glow 4s ease-in-out infinite alternate;
}
.scn-petersburg-princess-question .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.1) 100%);
  animation: pq-shadow 6s ease-in-out infinite;
}
@keyframes pq-turn { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(5deg) } 100% { transform: rotateY(0deg) } }
@keyframes pq-glow { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes pq-shadow { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .5 } }

/* ===== petersburg-leithcourt-inquiry ===== */
.scn-petersburg-leithcourt-inquiry {
  background: linear-gradient(180deg, #f7e8c8 0%, #e6d5b5 30%, #d4c4a0 100%), radial-gradient(ellipse at 50% 100%, #c8b08a 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-petersburg-leithcourt-inquiry .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f2e0c0 0%, #e0c8a0 100%);
  animation: pli-wall 12s ease-in-out infinite alternate;
}
.scn-petersburg-leithcourt-inquiry .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 4px 15px rgba(0,0,0,0.2);
  animation: pli-floor 8s ease-in-out infinite alternate;
}
.scn-petersburg-leithcourt-inquiry .desk {
  position: absolute; bottom: 16%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4% 4% 8% 8% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pli-desk 10s ease-in-out infinite;
}
.scn-petersburg-leithcourt-inquiry .lamp {
  position: absolute; bottom: 28%; left: 60%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 100%, #ffd080 0%, #e8b060 60%, transparent 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.6);
  animation: pli-lamp 4s ease-in-out infinite alternate;
}
.scn-petersburg-leithcourt-inquiry .figure {
  position: absolute; bottom: 20%; left: 28%; width: 20px; 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: pli-figure 6s ease-in-out infinite;
}
.scn-petersburg-leithcourt-inquiry .door {
  position: absolute; bottom: 12%; right: 10%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.5), 2px 0 6px rgba(0,0,0,0.3);
  animation: pli-door 15s ease-in-out infinite alternate;
}
.scn-petersburg-leithcourt-inquiry .shadow {
  position: absolute; bottom: 18%; left: 24%; width: 30%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 100%);
  filter: blur(4px);
  animation: pli-shadow 8s ease-in-out infinite alternate;
}
@keyframes pli-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pli-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pli-desk { 0%, 100% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-1px); } }
@keyframes pli-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(255,208,128,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(255,208,128,0.7); } 100% { opacity: 0.9; box-shadow: 0 0 25px 8px rgba(255,208,128,0.5); } }
@keyframes pli-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pli-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.98); } }
@keyframes pli-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.1); opacity: 0.7; } 100% { transform: scaleX(1); opacity: 0.5; } }

/* ===== petersburg-princess-knows ===== */
.scn-petersburg-princess-knows {
  background: linear-gradient(180deg, #fae8c8 0%, #e8d4a8 40%, #d0bc90 100%), radial-gradient(ellipse at 50% 100%, #c8b08a 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-petersburg-princess-knows .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0dcc0 0%, #e0c8a0 100%);
  animation: prk-wall 14s ease-in-out infinite alternate;
}
.scn-petersburg-princess-knows .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #d4b890 0%, #b89870 100%);
  border-radius: 0 0 15% 15%;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.15);
  animation: prk-floor 10s ease-in-out infinite alternate;
}
.scn-petersburg-princess-knows .chair {
  position: absolute; bottom: 24%; left: 40%; width: 28%; height: 30%;
  background: linear-gradient(135deg, #f0d080 0%, #c8a850 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3), inset 0 2px 4px rgba(255,255,200,0.4);
  animation: prk-chair 12s ease-in-out infinite alternate;
}
.scn-petersburg-princess-knows .figure {
  position: absolute; bottom: 28%; left: 45%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #3a1a1a 0%, #5a2a1a 30%, #2a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prk-figure 6s ease-in-out infinite;
}
.scn-petersburg-princess-knows .lamp {
  position: absolute; bottom: 52%; left: 62%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 100%, #ffe080 0%, #f0c060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(255,224,128,0.5), 0 0 80px 24px rgba(255,200,80,0.3);
  animation: prk-lamp 5s ease-in-out infinite alternate;
}
.scn-petersburg-princess-knows .bookshelf {
  position: absolute; bottom: 34%; left: 8%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: prk-bookshelf 20s ease-in-out infinite alternate;
}
.scn-petersburg-princess-knows .table {
  position: absolute; bottom: 18%; left: 30%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 8% 8% 20% 20% / 40% 40% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: prk-table 10s ease-in-out infinite;
}
@keyframes prk-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes prk-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes prk-chair { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes prk-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes prk-lamp { 0% { opacity: 0.8; box-shadow: 0 0 30px 8px rgba(255,224,128,0.4); } 50% { opacity: 1; box-shadow: 0 0 50px 16px rgba(255,224,128,0.7); } 100% { opacity: 0.9; box-shadow: 0 0 35px 10px rgba(255,224,128,0.5); } }
@keyframes prk-bookshelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.015); } 100% { transform: scaleY(0.985); } }
@keyframes prk-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

/* ===== petersburg-princess-opinion ===== */
.scn-petersburg-princess-opinion {
  background: linear-gradient(180deg, #fae0c0 0%, #e8c8a0 30%, #d4b080 100%), radial-gradient(ellipse at 50% 100%, #c8a070 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-petersburg-princess-opinion .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0d8b8 0%, #e0c0a0 100%);
  animation: pro-wall 16s ease-in-out infinite alternate;
}
.scn-petersburg-princess-opinion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #d4b080 0%, #b09060 100%);
  border-radius: 0 0 12% 12%;
  box-shadow: inset 0 4px 15px rgba(0,0,0,0.15);
  animation: pro-floor 8s ease-in-out infinite alternate;
}
.scn-petersburg-princess-opinion .door-left {
  position: absolute; bottom: 10%; left: 30%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 6% 0 0 6%;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.4);
  animation: pro-door-left 14s ease-in-out infinite alternate;
}
.scn-petersburg-princess-opinion .door-right {
  position: absolute; bottom: 10%; left: 42%; width: 12%; height: 50%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 0 6% 6% 0;
  box-shadow: inset 4px 0 10px rgba(0,0,0,0.4);
  animation: pro-door-right 14s ease-in-out infinite alternate;
}
.scn-petersburg-princess-opinion .figure {
  position: absolute; bottom: 25%; left: 38%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pro-figure 7s ease-in-out infinite;
}
.scn-petersburg-princess-opinion .servant {
  position: absolute; bottom: 22%; left: 54%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pro-servant 9s ease-in-out infinite;
}
.scn-petersburg-princess-opinion .chandelier {
  position: absolute; top: 4%; left: 38%; width: 24%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #e8b060 40%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 12px rgba(255,208,128,0.4), 0 0 80px 24px rgba(255,200,80,0.2);
  animation: pro-chandelier 6s ease-in-out infinite alternate;
}
@keyframes pro-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pro-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pro-door-left { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes pro-door-right { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1.02); } }
@keyframes pro-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(6px) rotate(2deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pro-servant { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(-4px) rotate(-1deg); } 66% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pro-chandelier { 0% { opacity: 0.8; box-shadow: 0 0 30px 8px rgba(255,208,128,0.4); } 50% { opacity: 1; box-shadow: 0 0 50px 16px rgba(255,208,128,0.6); } 100% { opacity: 0.9; box-shadow: 0 0 35px 10px rgba(255,208,128,0.5); } }

/* ===== petersburg-kampf-arrives ===== */
.scn-petersburg-kampf-arrives {
  background: linear-gradient(180deg, #f5e0c0 0%, #e0c8a0 30%, #ccb080 100%), radial-gradient(ellipse at 50% 100%, #c0a070 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-petersburg-kampf-arrives .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #eedcc0 0%, #dcc8a8 100%);
  animation: pka-wall 12s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-arrives .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #d0b890 0%, #b09870 100%);
  border-radius: 0 0 18% 18%;
  box-shadow: inset 0 5px 18px rgba(0,0,0,0.12);
  animation: pka-floor 9s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-arrives .door {
  position: absolute; bottom: 10%; left: 35%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 6% 6% 8% 8%;
  box-shadow: 2px 0 10px rgba(0,0,0,0.4), -2px 0 10px rgba(0,0,0,0.3);
  animation: pka-door 18s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-arrives .figure-in {
  position: absolute; bottom: 22%; left: 36%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pka-figure-in 8s ease-in-out infinite;
}
.scn-petersburg-kampf-arrives .figure-hidden {
  position: absolute; bottom: 24%; right: 30%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0.7;
  animation: pka-figure-hidden 11s ease-in-out infinite;
}
.scn-petersburg-kampf-arrives .lamp {
  position: absolute; bottom: 56%; left: 58%; width: 10px; height: 16px;
  background: radial-gradient(circle at 50% 100%, #ffd080 0%, #e8b060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 35px 10px rgba(255,208,128,0.5), 0 0 70px 20px rgba(255,200,80,0.3);
  animation: pka-lamp 4s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-arrives .curtain {
  position: absolute; bottom: 12%; left: 8%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 60% 60% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset -4px 0 12px rgba(0,0,0,0.5);
  animation: pka-curtain 20s ease-in-out infinite alternate;
}
@keyframes pka-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pka-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pka-door { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.015) rotate(1deg); } 100% { transform: scaleY(0.985) rotate(0); } }
@keyframes pka-figure-in { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pka-figure-hidden { 0% { transform: translateX(0) rotate(0) scale(1); } 33% { transform: translateX(-3px) rotate(-1deg) scale(0.98); } 66% { transform: translateX(2px) rotate(1deg) scale(1.02); } 100% { transform: translateX(0) rotate(0) scale(1); } }
@keyframes pka-lamp { 0% { opacity: 0.8; box-shadow: 0 0 25px 6px rgba(255,208,128,0.4); } 50% { opacity: 1; box-shadow: 0 0 45px 14px rgba(255,208,128,0.7); } 100% { opacity: 0.9; box-shadow: 0 0 30px 8px rgba(255,208,128,0.5); } }
@keyframes pka-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.97); } }

/* visit-to-castle – tense, bright interior hall */
.scn-visit-to-castle {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b48c 30%, #c49a6c 70%, #8b6b4d 100%),
    radial-gradient(ellipse at 50% 20%, #ffe6b0 0%, transparent 60%);
}
.scn-visit-to-castle .hall-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3222 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-visit-to-castle .hall-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #d4b48c 0%, #c49a6c 50%, #d4b48c 100%);
  opacity: 0.8;
}
.scn-visit-to-castle .chandelier {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #ffd700 0%, #b8860b 70%, #8b6914 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.4), 0 0 80px 30px rgba(255,215,0,0.2);
  animation: vtc-chandelier 4s ease-in-out infinite alternate;
}
.scn-visit-to-castle .column-left {
  position: absolute; bottom: 15%; left: 15%; width: 20px; height: 70%;
  background: linear-gradient(90deg, #e8d8b0 0%, #c49a6c 30%, #b8864e 70%, #8b6b4d 100%);
  border-radius: 8px;
  box-shadow: 8px 0 12px rgba(0,0,0,0.2);
}
.scn-visit-to-castle .column-right {
  position: absolute; bottom: 15%; right: 15%; width: 20px; height: 70%;
  background: linear-gradient(-90deg, #e8d8b0 0%, #c49a6c 30%, #b8864e 70%, #8b6b4d 100%);
  border-radius: 8px;
  box-shadow: -8px 0 12px rgba(0,0,0,0.2);
}
.scn-visit-to-castle .door-arch {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, #8b6b4d 0%, #5a3a2a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-visit-to-castle .figure-silhouette {
  position: absolute; bottom: 30%; left: 35%; width: 24px; 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: vtc-enter 6s ease-in-out infinite alternate;
}
.scn-visit-to-castle .shadow-pool {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: vtc-shadow 6s ease-in-out infinite alternate;
}
@keyframes vtc-chandelier {
  0% { transform: translateX(-50%) rotate(-2deg); box-shadow: 0 0 30px 15px rgba(255,215,0,0.4); }
  50% { transform: translateX(-50%) rotate(0deg); box-shadow: 0 0 50px 25px rgba(255,215,0,0.6); }
  100% { transform: translateX(-50%) rotate(2deg); box-shadow: 0 0 30px 15px rgba(255,215,0,0.4); }
}
@keyframes vtc-enter {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); opacity: 0.6; }
  50% { transform: translateX(-10px) translateY(-2px) rotate(1deg); opacity: 1; }
  100% { transform: translateX(0) translateY(0) rotate(2deg); opacity: 0.8; }
}
@keyframes vtc-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* leithcourt-innocent – calm, bright interior */
.scn-leithcourt-innocent {
  background: 
    linear-gradient(180deg, #faf3e0 0%, #ece0c8 40%, #d4c4a8 100%),
    radial-gradient(ellipse at 60% 30%, #fff8e7 0%, transparent 70%);
}
.scn-leithcourt-innocent .room-background {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #f5eddc 0%, #dcccB0 100%);
}
.scn-leithcourt-innocent .sofa {
  position: absolute; bottom: 20%; left: 20%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #b8864e 0%, #8b6b4d 30%, #6a4a3a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.2);
  animation: li-sofa 10s ease-in-out infinite alternate;
}
.scn-leithcourt-innocent .lamp {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #c49a6c 0%, #8b6b4d 100%);
  border-radius: 4px;
}
.scn-leithcourt-innocent .lamp::after {
  content: ''; position: absolute; top: -15px; left: -12px; width: 32px; height: 20px;
  background: radial-gradient(ellipse, #ffeedd 0%, #ffddbb 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,238,221,0.4);
  animation: li-lamp 6s ease-in-out infinite alternate;
}
.scn-leithcourt-innocent .table-desk {
  position: absolute; bottom: 18%; left: 55%; width: 70px; height: 10px;
  background: linear-gradient(180deg, #b8864e 0%, #8b6b4d 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-leithcourt-innocent .window-light {
  position: absolute; top: 15%; right: 15%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #fff8e7 0%, #e6dcc0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,230,0.5), 0 0 30px 10px rgba(255,248,231,0.3);
  animation: li-window 8s ease-in-out infinite alternate;
}
.scn-leithcourt-innocent .figure-gregg {
  position: absolute; bottom: 22%; left: 30%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li-gregg 5s ease-in-out infinite;
}
.scn-leithcourt-innocent .book-stack {
  position: absolute; bottom: 10%; left: 52%; width: 30px; height: 20px;
  background: repeating-linear-gradient(
    0deg,
    #8b4513 0px, #8b4513 3px,
    #a0522d 3px, #a0522d 6px,
    #8b4513 6px, #8b4513 9px
  );
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
@keyframes li-sofa {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes li-lamp {
  0% { box-shadow: 0 0 15px 5px rgba(255,238,221,0.3); }
  50% { box-shadow: 0 0 25px 10px rgba(255,238,221,0.5); }
  100% { box-shadow: 0 0 15px 5px rgba(255,238,221,0.3); }
}
@keyframes li-window {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes li-gregg {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* alibi-confirmed – tense, bright interior */
.scn-alibi-confirmed {
  background: 
    linear-gradient(180deg, #e8ddd0 0%, #cebca0 40%, #a58a70 100%),
    radial-gradient(ellipse at 30% 40%, #f5edd0 0%, transparent 60%);
}
.scn-alibi-confirmed .study-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #d4c4a8 0%, #b89a7a 100%);
}
.scn-alibi-confirmed .desk {
  position: absolute; bottom: 15%; left: 40%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #8b6b4d 0%, #6a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  transform: rotate(2deg);
}
.scn-alibi-confirmed .chair {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-alibi-confirmed .clock {
  position: absolute; top: 20%; right: 15%; width: 25px; height: 25px;
  background: radial-gradient(circle, #f5edd0 0%, #c49a6c 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 5px rgba(196,154,108,0.4);
  animation: ac-clock 30s linear infinite;
}
.scn-alibi-confirmed .letter-pile {
  position: absolute; bottom: 20%; left: 42%; width: 40px; height: 12px;
  background: repeating-linear-gradient(
    0deg,
    #f5edd0 0px, #f5edd0 2px,
    #e0d0b0 2px, #e0d0b0 4px,
    #f5edd0 4px, #f5edd0 6px
  );
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-alibi-confirmed .candle {
  position: absolute; bottom: 25%; left: 55%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f5edd0 0%, #c49a6c 100%);
  border-radius: 2px;
}
.scn-alibi-confirmed .candle::after {
  content: ''; position: absolute; top: -8px; left: -6px; width: 18px; height: 10px;
  background: radial-gradient(ellipse, #ffcc66 0%, #ff9900 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 8px rgba(255,153,0,0.4);
  animation: ac-flame 2s ease-in-out infinite alternate;
}
.scn-alibi-confirmed .figure-inspector {
  position: absolute; bottom: 16%; left: 35%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-inspector 4s ease-in-out infinite alternate;
}
.scn-alibi-confirmed .shadow-long {
  position: absolute; bottom: 10%; left: 30%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: ac-shadow 4s ease-in-out infinite alternate;
}
@keyframes ac-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes ac-flame {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: scaleY(1.2) rotate(0deg); opacity: 1; }
  100% { transform: scaleY(1) rotate(2deg); opacity: 0.9; }
}
@keyframes ac-inspector {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(8px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ac-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.3); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* fear-of-suspicion – tense, dark */
.scn-fear-of-suspicion {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 50%, #1a0a05 100%),
    radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, transparent 80%);
}
.scn-fear-of-suspicion .dark-room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #1a1410 0%, #0a0a0a 100%);
  opacity: 0.9;
}
.scn-fear-of-suspicion .table-rough {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 8px;
  background: linear-gradient(90deg, #4a3222 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-4deg);
}
.scn-fear-of-suspicion .candle-glow {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffaa44 0%, #cc6600 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,170,68,0.5), 0 0 80px 30px rgba(204,102,0,0.2);
  animation: fos-candle 3s ease-in-out infinite alternate;
}
.scn-fear-of-suspicion .knife-blade {
  position: absolute; bottom: 18%; left: 45%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 50%, #606060 100%);
  border-radius: 10% 10% 2px 2px / 50% 50% 2px 2px;
  transform: rotate(25deg);
  box-shadow: 0 0 6px 2px rgba(128,128,128,0.3);
  animation: fos-knife 2s ease-in-out infinite alternate;
}
.scn-fear-of-suspicion .hand-partial {
  position: absolute; bottom: 15%; left: 42%; width: 16px; height: 24px;
  background: radial-gradient(ellipse at 50% 30%, #c89a7a 0%, #8b6b4d 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-15deg);
  animation: fos-hand 4s ease-in-out infinite alternate;
}
.scn-fear-of-suspicion .shadow-creep {
  position: absolute; bottom: 10%; left: 20%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%);
  filter: blur(10px);
  animation: fos-shadow 5s ease-in-out infinite alternate;
}
.scn-fear-of-suspicion .blood-drop {
  position: absolute; bottom: 12%; left: 48%; width: 4px; height: 6px;
  background: radial-gradient(circle, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 4px 2px rgba(94,26,29,0.5);
  animation: fos-blood 6s ease-in-out infinite;
}
@keyframes fos-candle {
  0% { box-shadow: 0 0 30px 10px rgba(255,170,68,0.4); transform: scale(1); }
  50% { box-shadow: 0 0 50px 20px rgba(255,170,68,0.6); transform: scale(1.05); }
  100% { box-shadow: 0 0 30px 10px rgba(255,170,68,0.4); transform: scale(1); }
}
@keyframes fos-knife {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-4px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes fos-hand {
  0% { transform: rotate(-12deg) translateX(0); }
  50% { transform: rotate(-20deg) translateX(-6px); }
  100% { transform: rotate(-12deg) translateX(0); }
}
@keyframes fos-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.3); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.6; }
}
@keyframes fos-blood {
  0% { transform: translateY(0); opacity: 1; }
  50% { transform: translateY(-8px); opacity: 0.8; }
  100% { transform: translateY(0); opacity: 1; }
}

.scn-asking-about-woman {
  background: linear-gradient(180deg, #f9e8c8 0%, #e6d3a3 40%, #c4a57a 100%),
              radial-gradient(ellipse at 30% 70%, #fff8e7 0%, transparent 60%);
}
.scn-asking-about-woman .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0e0c0 0%, #d8c098 100%);
  animation: aaw-wall 12s ease-in-out infinite alternate;
}
.scn-asking-about-woman .window-left {
  position: absolute; top: 10%; left: 15%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #b8d8f0 0%, #a0c8e0 100%); border: 6px solid #6a5a4a;
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,220,120,0.3);
}
.scn-asking-about-woman .window-right {
  position: absolute; top: 10%; right: 15%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #b8d8f0 0%, #a0c8e0 100%); border: 6px solid #6a5a4a;
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,220,120,0.3);
}
.scn-asking-about-woman .light-ray {
  position: absolute; top: 12%; left: 18%; width: 15%; height: 80%;
  background: linear-gradient(180deg, rgba(255,240,180,0.5) 0%, transparent 100%);
  transform: skewX(-10deg); filter: blur(4px);
  animation: aaw-light 5s ease-in-out infinite alternate;
}
.scn-asking-about-woman .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(80,50,30,0.4) 100%);
  animation: aaw-shade 8s ease-in-out infinite alternate;
}
.scn-asking-about-woman .figure-a {
  position: absolute; bottom: 8%; left: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aaw-figure-a 6s ease-in-out infinite;
}
.scn-asking-about-woman .figure-b {
  position: absolute; bottom: 10%; right: 25%; width: 38px; height: 95px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aaw-figure-b 4s ease-in-out infinite alternate;
}
.scn-asking-about-woman .eye-glow {
  position: absolute; bottom: 68%; left: 41%; width: 6px; height: 4px;
  background: radial-gradient(circle, #ffec80 0%, transparent 80%);
  border-radius: 50%;
  animation: aaw-eye 2s ease-in-out infinite alternate;
}
@keyframes aaw-wall {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01); }
  100% { opacity: 0.92; transform: scale(1); }
}
@keyframes aaw-light {
  0% { opacity: 0.4; transform: skewX(-10deg) translateX(0); }
  50% { opacity: 0.8; transform: skewX(-8deg) translateX(5px); }
  100% { opacity: 0.5; transform: skewX(-12deg) translateX(-3px); }
}
@keyframes aaw-shade {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.35; }
}
@keyframes aaw-figure-a {
  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 aaw-figure-b {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes aaw-eye {
  0% { opacity: 0.6; box-shadow: 0 0 8px 2px #ffec80; }
  50% { opacity: 1; box-shadow: 0 0 16px 6px #ffec80; }
  100% { opacity: 0.7; box-shadow: 0 0 10px 3px #ffec80; }
}

.scn-durnfords-knowledge {
  background: linear-gradient(180deg, #eedcc0 0%, #d4c0a0 40%, #b09878 100%),
              radial-gradient(ellipse at 60% 80%, #fff5e0 0%, transparent 70%);
}
.scn-durnfords-knowledge .room-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e0c8a8 0%, #c8b090 100%);
  animation: dk-wall 10s ease-in-out infinite alternate;
}
.scn-durnfords-knowledge .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #b08860 0%, #907050 100%); border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-durnfords-knowledge .chair-left {
  position: absolute; bottom: 8%; left: 15%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5040 100%); border-radius: 10% 10% 20% 20%;
  transform: rotate(-5deg); animation: dk-chair-left 6s ease-in-out infinite alternate;
}
.scn-durnfords-knowledge .chair-right {
  position: absolute; bottom: 8%; right: 15%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5040 100%); border-radius: 10% 10% 20% 20%;
  transform: rotate(5deg); animation: dk-chair-right 7s ease-in-out infinite alternate;
}
.scn-durnfords-knowledge .map-on-wall {
  position: absolute; top: 12%; left: 50%; transform: translateX(-50%); width: 30%; height: 25%;
  background: linear-gradient(135deg, #d4c090 0%, #b8a070 100%); border: 3px solid #6a5a3a;
  border-radius: 2px; animation: dk-map 15s ease-in-out infinite alternate;
}
.scn-durnfords-knowledge .figure-sitting {
  position: absolute; bottom: 12%; left: 28%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dk-sit 4s ease-in-out infinite;
}
.scn-durnfords-knowledge .figure-standing {
  position: absolute; bottom: 12%; right: 25%; width: 38px; height: 110px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dk-stand 5s ease-in-out infinite alternate;
}
.scn-durnfords-knowledge .hand-chin {
  position: absolute; bottom: 58%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, #3a2a1a 0%, transparent 80%);
  border-radius: 50%;
  animation: dk-hand 3s ease-in-out infinite;
}
@keyframes dk-wall {
  0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes dk-chair-left {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes dk-chair-right {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes dk-map {
  0% { opacity: 0.7; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.02); }
  100% { opacity: 0.75; transform: translateX(-50%) scale(1); }
}
@keyframes dk-sit {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes dk-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dk-hand {
  0% { transform: translate(0,0) scale(1); }
  50% { transform: translate(2px,-2px) scale(1.2); }
  100% { transform: translate(0,0) scale(1); }
}

.scn-urging-to-help {
  background: linear-gradient(180deg, #e8d8b8 0%, #c4b098 40%, #9a8068 100%),
              radial-gradient(ellipse at 40% 60%, #f5e8d0 0%, transparent 60%);
}
.scn-urging-to-help .cabin-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #b0a080 0%, #908060 100%);
  animation: uth-wall 12s ease-in-out infinite alternate;
}
.scn-urging-to-help .bars {
  position: absolute; top: 5%; bottom: 5%; left: 30%; width: 8px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px; box-shadow: 16px 0 0 #6a5a4a, 32px 0 0 #6a5a4a, 48px 0 0 #6a5a4a;
  animation: uth-bars 8s ease-in-out infinite alternate;
}
.scn-urging-to-help .prisoner {
  position: absolute; bottom: 8%; left: 18%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uth-prisoner 4s ease-in-out infinite;
}
.scn-urging-to-help .guard {
  position: absolute; bottom: 10%; right: 20%; width: 40px; height: 105px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uth-guard 5s ease-in-out infinite alternate;
}
.scn-urging-to-help .window {
  position: absolute; top: 10%; right: 15%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #b0d8f0 0%, #90b8d8 100%);
  border: 4px solid #5a4a3a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,220,120,0.3);
  animation: uth-window 10s ease-in-out infinite alternate;
}
.scn-urging-to-help .light-bar {
  position: absolute; top: 12%; right: 20%; width: 15%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,180,0.4) 0%, transparent 100%);
  transform: skewX(-15deg); filter: blur(3px);
  animation: uth-light 6s ease-in-out infinite alternate;
}
.scn-urging-to-help .shadow-bars-floor {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(50,30,20,0.3) 100%);
  animation: uth-shade 7s ease-in-out infinite alternate;
}
@keyframes uth-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; }
}
@keyframes uth-bars {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes uth-prisoner {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-3px) rotate(0deg); }
  60% { transform: translateY(2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes uth-guard {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes uth-window {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.75; transform: scale(1); }
}
@keyframes uth-light {
  0% { opacity: 0.3; transform: skewX(-15deg) translateX(0); }
  50% { opacity: 0.6; transform: skewX(-10deg) translateX(8px); }
  100% { opacity: 0.35; transform: skewX(-18deg) translateX(-4px); }
}
@keyframes uth-shade {
  0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; }
}

.scn-durnford-fear {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 70%);
}
.scn-durnford-fear .dark-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: df-room 10s ease-in-out infinite alternate;
}
.scn-durnford-fear .wall-shadow {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.5) 100%);
  animation: df-shadow 6s ease-in-out infinite alternate;
}
.scn-durnford-fear .figure-whisper {
  position: absolute; bottom: 8%; left: 20%; width: 40px; height: 95px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df-whisper 4s ease-in-out infinite;
}
.scn-durnford-fear .figure-listen {
  position: absolute; bottom: 10%; right: 25%; width: 42px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df-listen 3s ease-in-out infinite alternate;
}
.scn-durnford-fear .mouth-open {
  position: absolute; bottom: 68%; right: 35%; width: 8px; height: 6px;
  background: radial-gradient(circle, #3a2a2a 0%, transparent 80%);
  border-radius: 50%;
  animation: df-mouth 2s ease-in-out infinite;
}
.scn-durnford-fear .shadow-wall {
  position: absolute; top: 5%; right: 10%; width: 40%; height: 80%;
  background: rgba(0,0,0,0.3); filter: blur(10px); border-radius: 20%;
  animation: df-shadow-wall 8s ease-in-out infinite alternate;
}
.scn-durnford-fear .light-spot {
  position: absolute; top: 20%; left: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,150,0.2) 0%, transparent 100%);
  animation: df-light 5s ease-in-out infinite alternate;
}
.scn-durnford-fear .dust {
  position: absolute; top: 30%; left: 40%; width: 100%; height: 50%;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,240,0.1) 0%, transparent 50%);
  filter: blur(2px);
  animation: df-dust 12s linear infinite;
}
@keyframes df-room {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes df-shadow {
  0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.45; }
}
@keyframes df-whisper {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-3px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes df-listen {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes df-mouth {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(1); opacity: 0.7; }
}
@keyframes df-shadow-wall {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.05); opacity: 0.5; }
  100% { transform: scale(1); opacity: 0.35; }
}
@keyframes df-light {
  0% { opacity: 0.2; transform: translateX(0); }
  50% { opacity: 0.4; transform: translateX(10px); }
  100% { opacity: 0.25; transform: translateX(-5px); }
}
@keyframes df-dust {
  0% { transform: translateX(0) translateY(0); opacity: 0.1; }
  25% { transform: translateX(20vw) translateY(-10px); opacity: 0.2; }
  50% { transform: translateX(40vw) translateY(0); opacity: 0.15; }
  75% { transform: translateX(60vw) translateY(10px); opacity: 0.2; }
  100% { transform: translateX(80vw) translateY(0); opacity: 0.1; }
}

.scn-woodroffe-chat {
  background: linear-gradient(180deg, #c87a3a 0%, #8a4a2a 40%, #3a1a1a 100%), radial-gradient(ellipse at 30% 60%, #ffdd77 0%, transparent 70%);
}
.scn-woodroffe-chat .room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #6a3a22 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-woodroffe-chat .fireplace {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 60%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.5);
}
.scn-woodroffe-chat .mantel {
  position: absolute; bottom: 55%; left: 33%; width: 34%; height: 6%; background: linear-gradient(180deg, #7a4a2a 0%, #5a3a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-woodroffe-chat .fire-glow {
  position: absolute; bottom: 18%; left: 42%; width: 16%; height: 30%; background: radial-gradient(ellipse at 50% 100%, #ffaa44 0%, #cc6600 40%, #4a1a00 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 40px 20px #ff8800, 0 0 80px 30px rgba(255,136,0,0.3); animation: wc-fire 1.5s ease-in-out infinite alternate;
}
.scn-woodroffe-chat .window-sunset {
  position: absolute; top: 8%; right: 8%; width: 25%; height: 35%; background: linear-gradient(180deg, #ffaa55 0%, #cc6633 50%, #4a1a00 100%); border-radius: 6px; box-shadow: inset 0 0 30px #ffdd88; animation: wc-sunset 8s ease-in-out infinite alternate;
}
.scn-woodroffe-chat .figure {
  position: absolute; bottom: 12%; left: 48%; width: 12%; height: 45%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wc-figure 3s ease-in-out infinite;
}
.scn-woodroffe-chat .racquet {
  position: absolute; bottom: 18%; left: 56%; width: 8%; height: 28%; background: radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; transform: rotate(20deg); animation: wc-racquet 2s ease-in-out infinite alternate;
}
.scn-woodroffe-chat .shadow-sharp {
  position: absolute; bottom: 0; left: 42%; width: 20%; height: 15%; background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(4px); animation: wc-shadow 3s ease-in-out infinite;
}
@keyframes wc-fire {
  0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 30px 10px #ff8800, 0 0 60px 20px rgba(255,136,0,0.3); }
  50% { transform: scaleY(1.15) translateY(-3px); box-shadow: 0 0 50px 15px #ffaa44, 0 0 80px 30px rgba(255,170,68,0.4); }
  100% { transform: scaleY(0.9) translateY(2px); box-shadow: 0 0 35px 12px #cc6600, 0 0 70px 25px rgba(204,102,0,0.25); }
}
@keyframes wc-sunset {
  0% { opacity: 0.8; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes wc-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(12px) rotate(1deg); }
  100% { transform: translateX(16px) rotate(0deg); }
}
@keyframes wc-racquet {
  0% { transform: rotate(15deg) scale(1); }
  50% { transform: rotate(25deg) scale(1.02); }
  100% { transform: rotate(18deg) scale(0.98); }
}
@keyframes wc-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(5px) scaleX(1.15); opacity: 0.7; }
  100% { transform: translateX(10px) scaleX(0.9); opacity: 0.4; }
}

.scn-shooting-talk {
  background: linear-gradient(180deg, #dba56d 0%, #a67a4a 40%, #4a2a1a 100%), radial-gradient(ellipse at 50% 0%, #ffdd99 0%, transparent 60%);
}
.scn-shooting-talk .sky {
  position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #ffaa66 0%, #cc8855 50%, #996644 100%); animation: st-sky 20s ease-in-out infinite alternate;
}
.scn-shooting-talk .sun {
  position: absolute; top: 10%; left: 70%; width: 12%; height: 12%; background: radial-gradient(circle, #ffeeaa 0%, #ffcc66 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px #ffcc66, 0 0 120px 50px rgba(255,204,102,0.4); animation: st-sun 12s ease-in-out infinite alternate;
}
.scn-shooting-talk .hills-far {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: st-hills-far 30s ease-in-out infinite alternate;
}
.scn-shooting-talk .hills-near {
  position: absolute; bottom: 25%; left: -5%; right: -5%; height: 25%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); animation: st-hills-near 25s ease-in-out infinite alternate;
}
.scn-shooting-talk .river {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 12%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 50%, #4a2a1a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: inset 0 4px 10px rgba(0,0,0,0.3); animation: st-river 8s ease-in-out infinite alternate;
}
.scn-shooting-talk .grouse {
  position: absolute; bottom: 42%; left: 25%; width: 8%; height: 6%; background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: st-grouse 4s ease-in-out infinite;
}
.scn-shooting-talk .figure-silhouette {
  position: absolute; bottom: 22%; left: 65%; width: 12%; height: 30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-figure 6s ease-in-out infinite;
}
@keyframes st-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes st-sun {
  0% { transform: translateY(0) scale(1); opacity: 0.95; }
  50% { transform: translateY(-6px) scale(1.05); opacity: 1; }
  100% { transform: translateY(3px) scale(0.95); opacity: 0.9; }
}
@keyframes st-hills-far {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes st-hills-near {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes st-river {
  0% { transform: scaleY(1) translateX(0); opacity: 0.8; }
  50% { transform: scaleY(1.1) translateX(3px); opacity: 1; }
  100% { transform: scaleY(0.95) translateX(0); opacity: 0.85; }
}
@keyframes st-grouse {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-8px) rotate(5deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  75% { transform: translateY(-6px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes st-figure {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(2deg); }
}

.scn-glen-and-game {
  background: linear-gradient(180deg, #c8965a 0%, #8a6a3a 45%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #eebb77 0%, transparent 60%);
}
.scn-glen-and-game .sky-glen {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #ffbb77 0%, #dd9955 50%, #aa7733 100%); animation: gg-sky 22s ease-in-out infinite alternate;
}
.scn-glen-and-game .trees-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: gg-trees 18s ease-in-out infinite alternate;
}
.scn-glen-and-game .glen-slope-left {
  position: absolute; bottom: 20%; left: 0; width: 40%; height: 30%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 0 60% 0 0; box-shadow: inset -10px 0 30px rgba(0,0,0,0.4); animation: gg-slope-left 20s ease-in-out infinite alternate;
}
.scn-glen-and-game .glen-slope-right {
  position: absolute; bottom: 20%; right: 0; width: 40%; height: 30%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 60% 0 0 0; box-shadow: inset 10px 0 30px rgba(0,0,0,0.4); animation: gg-slope-right 20s ease-in-out infinite alternate;
}
.scn-glen-and-game .stream {
  position: absolute; bottom: 18%; left: 42%; width: 16%; height: 10%; background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 4px 10px rgba(0,0,0,0.3); animation: gg-stream 6s ease-in-out infinite alternate;
}
.scn-glen-and-game .fish {
  position: absolute; bottom: 20%; left: 46%; width: 8%; height: 4%; background: radial-gradient(ellipse at 60% 50%, #8a6a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 8px 2px rgba(0,0,0,0.2); animation: gg-fish 4s ease-in-out infinite;
}
.scn-glen-and-game .figure-still {
  position: absolute; bottom: 12%; left: 30%; width: 10%; height: 28%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gg-figure 9s ease-in-out infinite;
}
@keyframes gg-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gg-trees {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes gg-slope-left {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-4px) scaleY(1.02); }
  100% { transform: translateX(2px) scaleY(0.98); }
}
@keyframes gg-slope-right {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(4px) scaleY(1.02); }
  100% { transform: translateX(-2px) scaleY(0.98); }
}
@keyframes gg-stream {
  0% { transform: translateX(0) scaleY(1); opacity: 0.8; }
  50% { transform: translateX(2px) scaleY(1.08); opacity: 1; }
  100% { transform: translateX(0) scaleY(0.95); opacity: 0.85; }
}
@keyframes gg-fish {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(5deg); }
  50% { transform: translateX(16px) translateY(0) rotate(0deg); }
  75% { transform: translateX(8px) translateY(2px) rotate(-5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes gg-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}

.scn-muriel-draws-away {
  background: linear-gradient(180deg, #b87a4a 0%, #7a4a2a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #ffcc88 0%, transparent 50%);
}
.scn-muriel-draws-away .court-bg {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 70%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-muriel-draws-away .court-lines {
  position: absolute; bottom: 30%; left: 15%; width: 70%; height: 35%; border: 2px solid rgba(255,255,255,0.15); border-radius: 2px; background: transparent; box-shadow: inset 0 0 0 2px rgba(255,255,255,0.08); animation: md-lines 12s ease-in-out infinite alternate;
}
.scn-muriel-draws-away .net {
  position: absolute; bottom: 35%; left: 45%; width: 10%; height: 20%; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(200,200,200,0.1) 100%); border-radius: 2px; box-shadow: 0 0 8px rgba(255,255,255,0.15); animation: md-net 4s ease-in-out infinite;
}
.scn-muriel-draws-away .figure-a {
  position: absolute; bottom: 22%; left: 35%; width: 10%; height: 40%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-figure-a 3.5s ease-in-out infinite;
}
.scn-muriel-draws-away .figure-b {
  position: absolute; bottom: 22%; left: 55%; width: 10%; height: 40%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-figure-b 3.5s ease-in-out infinite;
}
.scn-muriel-draws-away .shadow-a {
  position: absolute; bottom: 12%; left: 30%; width: 20%; height: 10%; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(6px); animation: md-shadow-a 3.5s ease-in-out infinite;
}
.scn-muriel-draws-away .shadow-b {
  position: absolute; bottom: 12%; left: 50%; width: 20%; height: 10%; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(6px); animation: md-shadow-b 3.5s ease-in-out infinite;
}
.scn-muriel-draws-away .sunset-glow {
  position: absolute; top: 0; left: 0; width: 100%; height: 30%; background: radial-gradient(ellipse at 70% 0%, #ffcc77 0%, transparent 70%); opacity: 0.6; animation: md-glow 8s ease-in-out infinite alternate;
}
@keyframes md-lines {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes md-net {
  0% { transform: scaleY(1); opacity: 0.6; }
  50% { transform: scaleY(1.05); opacity: 0.8; }
  100% { transform: scaleY(0.95); opacity: 0.5; }
}
@keyframes md-figure-a {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(10px) rotate(2deg); }
  50% { transform: translateX(20px) rotate(-1deg); }
  75% { transform: translateX(30px) rotate(1deg); }
  100% { transform: translateX(40px) rotate(0deg); }
}
@keyframes md-figure-b {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(-8px) rotate(-2deg); }
  50% { transform: translateX(-16px) rotate(1deg); }
  75% { transform: translateX(-24px) rotate(-1deg); }
  100% { transform: translateX(-32px) rotate(0deg); }
}
@keyframes md-shadow-a {
  0% { transform: translateX(0) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(10px) scaleX(1.2); opacity: 0.6; }
  100% { transform: translateX(20px) scaleX(0.9); opacity: 0.3; }
}
@keyframes md-shadow-b {
  0% { transform: translateX(0) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(-8px) scaleX(1.2); opacity: 0.6; }
  100% { transform: translateX(-16px) scaleX(0.9); opacity: 0.3; }
}
@keyframes md-glow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

/* visitor-mr-hornby-intro */
.scn-visitor-mr-hornby-intro {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e8d5be 40%, #d4c2a8 100%),
    radial-gradient(ellipse at 70% 60%, #fff8f0 0%, transparent 60%);
}
.scn-visitor-mr-hornby-intro .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #f0e0cc 0%, #dcc8b0 100%); animation: vmh-wall 12s ease-in-out infinite alternate; }
.scn-visitor-mr-hornby-intro .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8a080 0%, #8c7058 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,0.1); }
.scn-visitor-mr-hornby-intro .desk { position:absolute; bottom:12%; left:20%; width:35%; height:18%; background: linear-gradient(180deg, #a0846c 0%, #7a5a42 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); transform: perspective(600px) rotateX(5deg); }
.scn-visitor-mr-hornby-intro .chair { position:absolute; bottom:10%; left:55%; width:12%; height:24%; background: linear-gradient(180deg, #8c735a 0%, #5a4230 100%); border-radius: 40% 40% 20% 20%; transform: perspective(400px) rotateY(15deg); animation: vmh-chair 8s ease-in-out infinite; }
.scn-visitor-mr-hornby-intro .lamp { position:absolute; bottom:30%; left:25%; width:4%; height:15%; background: linear-gradient(180deg, #d4b87a 0%, #b89a5e 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 0 20px 8px rgba(255,220,160,0.4); animation: vmh-lamp 4s ease-in-out infinite alternate; }
.scn-visitor-mr-hornby-intro .door { position:absolute; bottom:14%; right:12%; width:18%; height:70%; background: linear-gradient(180deg, #c8b098 0%, #9c8068 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 4px 0 8px rgba(0,0,0,0.15); transform-origin: right center; animation: vmh-door-open 2s ease-out 0.5s both; }
.scn-visitor-mr-hornby-intro .figure { position:absolute; bottom:10%; right:16%; width:8%; height:28%; background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; animation: vmh-figure 6s ease-in-out infinite; filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.2)); }
@keyframes vmh-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes vmh-chair { 0% { transform: perspective(400px) rotateY(15deg) translateY(0); } 50% { transform: perspective(400px) rotateY(17deg) translateY(-2px); } 100% { transform: perspective(400px) rotateY(15deg) translateY(0); } }
@keyframes vmh-lamp { 0% { box-shadow: 0 0 15px 6px rgba(255,220,160,0.3); } 50% { box-shadow: 0 0 25px 12px rgba(255,220,160,0.5); } 100% { box-shadow: 0 0 18px 8px rgba(255,220,160,0.35); } }
@keyframes vmh-door-open { 0% { transform: perspective(800px) rotateY(-30deg); opacity:0; } 100% { transform: perspective(800px) rotateY(0deg); opacity:1; } }
@keyframes vmh-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* hornby-explains-identity */
.scn-hornby-explains-identity {
  background:
    linear-gradient(180deg, #f2e3d0 0%, #e2ceb6 40%, #cfb89e 100%),
    radial-gradient(ellipse at 30% 40%, #fffaf0 0%, transparent 70%);
}
.scn-hornby-explains-identity .wall { position:absolute; inset:0 0 28% 0; background: linear-gradient(135deg, #eddcc8 0%, #d4c0a8 100%); animation: hei-wall 14s ease-in-out infinite alternate; }
.scn-hornby-explains-identity .floor { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #b4a088 0%, #8a7460 100%); box-shadow: inset 0 4px 8px rgba(0,0,0,0.08); }
.scn-hornby-explains-identity .desk { position:absolute; bottom:12%; left:15%; width:45%; height:16%; background: linear-gradient(180deg, #9e826a 0%, #765842 100%); border-radius: 3px; box-shadow: 0 4px 6px rgba(0,0,0,0.15); transform: perspective(500px) rotateX(4deg); }
.scn-hornby-explains-identity .chair { position:absolute; bottom:10%; left:50%; width:14%; height:26%; background: linear-gradient(180deg, #7a604a 0%, #4a3420 100%); border-radius: 40% 40% 20% 20%; transform: perspective(400px) rotateY(-10deg); animation: hei-chair 10s ease-in-out infinite; }
.scn-hornby-explains-identity .lamp { position:absolute; bottom:30%; left:20%; width:5%; height:18%; background: linear-gradient(180deg, #d0b478 0%, #b09654 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 0 18px 6px rgba(255,220,160,0.35); animation: hei-lamp 5s ease-in-out infinite alternate; }
.scn-hornby-explains-identity .figure { position:absolute; bottom:8%; left:20%; width:10%; height:32%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 50% 45% 35% 35% / 60% 55% 45% 45%; animation: hei-figure 7s ease-in-out infinite; filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.15)); }
.scn-hornby-explains-identity .papers { position:absolute; bottom:16%; left:22%; width:12%; height:10%; background: linear-gradient(135deg, #faf4e6 0%, #e8dcc8 100%); border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,0.1), inset 0 1px 2px rgba(255,255,255,0.5); transform: rotate(3deg); animation: hei-papers 6s ease-in-out infinite; }
.scn-hornby-explains-identity .card { position:absolute; bottom:20%; left:24%; width:8%; height:6%; background: linear-gradient(135deg, #fcf8f0 0%, #ece0d0 100%); border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,0.12); transform: rotate(-5deg); animation: hei-card 4s ease-in-out infinite alternate; }
@keyframes hei-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.92; } }
@keyframes hei-chair { 0% { transform: perspective(400px) rotateY(-10deg) translateY(0); } 50% { transform: perspective(400px) rotateY(-12deg) translateY(-1px); } 100% { transform: perspective(400px) rotateY(-10deg) translateY(0); } }
@keyframes hei-lamp { 0% { box-shadow: 0 0 15px 5px rgba(255,220,160,0.3); } 50% { box-shadow: 0 0 22px 10px rgba(255,220,160,0.45); } 100% { box-shadow: 0 0 16px 6px rgba(255,220,160,0.35); } }
@keyframes hei-figure { 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 hei-papers { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(4deg) scale(1.02); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes hei-card { 0% { transform: rotate(-6deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }

/* hornby-requests-thankyou-letters */
.scn-hornby-requests-thankyou-letters {
  background:
    linear-gradient(180deg, #f0e0cc 0%, #decab0 40%, #cbb49a 100%),
    radial-gradient(ellipse at 50% 40%, #fffcf5 0%, transparent 60%);
}
.scn-hornby-requests-thankyou-letters .wall { position:absolute; inset:0 0 32% 0; background: linear-gradient(135deg, #ebdac6 0%, #d4bea6 100%); animation: hrt-wall 10s ease-in-out infinite alternate; }
.scn-hornby-requests-thankyou-letters .floor { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #b09880 0%, #886e58 100%); box-shadow: inset 0 5px 10px rgba(0,0,0,0.08); }
.scn-hornby-requests-thankyou-letters .desk { position:absolute; bottom:12%; left:10%; width:50%; height:18%; background: linear-gradient(180deg, #a48268 0%, #7a5c44 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.15); transform: perspective(500px) rotateX(3deg); }
.scn-hornby-requests-thankyou-letters .chair { position:absolute; bottom:8%; left:45%; width:16%; height:28%; background: linear-gradient(180deg, #705a44 0%, #403020 100%); border-radius: 40% 40% 20% 20%; transform: perspective(400px) rotateY(0deg); animation: hrt-chair 9s ease-in-out infinite; }
.scn-hornby-requests-thankyou-letters .lamp { position:absolute; bottom:30%; left:18%; width:5%; height:20%; background: linear-gradient(180deg, #d4b87a 0%, #b0985a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 0 20px 8px rgba(255,220,160,0.4); animation: hrt-lamp 4s ease-in-out infinite alternate; }
.scn-hornby-requests-thankyou-letters .letters { position:absolute; bottom:20%; left:25%; width:20%; height:14%; background: linear-gradient(135deg, #faf4e6 0%, #ece0cc 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); transform: rotate(2deg); animation: hrt-letters 5s ease-in-out infinite; }
.scn-hornby-requests-thankyou-letters .inkwell { position:absolute; bottom:20%; left:40%; width:6%; height:8%; background: linear-gradient(180deg, #3a302a 0%, #1a1410 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: hrt-inkwell 3s ease-in-out infinite; }
.scn-hornby-requests-thankyou-letters .hands { position:absolute; bottom:14%; left:28%; width:14%; height:12%; background: linear-gradient(135deg, #d4b898 0%, #c09c78 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.1); animation: hrt-hands 4s ease-in-out infinite; }
@keyframes hrt-wall { 0% { opacity:0.92; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes hrt-chair { 0% { transform: perspective(400px) rotateY(0deg) translateY(0); } 50% { transform: perspective(400px) rotateY(-2deg) translateY(-1px); } 100% { transform: perspective(400px) rotateY(0deg) translateY(0); } }
@keyframes hrt-lamp { 0% { box-shadow: 0 0 15px 5px rgba(255,220,160,0.3); } 50% { box-shadow: 0 0 25px 10px rgba(255,220,160,0.5); } 100% { box-shadow: 0 0 18px 6px rgba(255,220,160,0.35); } }
@keyframes hrt-letters { 0% { transform: rotate(1deg) scale(1); } 50% { transform: rotate(3deg) scale(1.01); } 100% { transform: rotate(1deg) scale(1); } }
@keyframes hrt-inkwell { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hrt-hands { 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); } }

/* drafting-letters */
.scn-drafting-letters {
  background:
    linear-gradient(180deg, #f2e2cf 0%, #e0ceb4 40%, #cdb69a 100%),
    radial-gradient(ellipse at 70% 50%, #fffcf5 0%, transparent 60%);
}
.scn-drafting-letters .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #ecdac4 0%, #d4bca2 100%); animation: dl-wall 12s ease-in-out infinite alternate; }
.scn-drafting-letters .window { position:absolute; top:8%; right:10%; width:30%; height:45%; background: linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(255,255,255,0.2); animation: dl-window 15s ease-in-out infinite alternate; }
.scn-drafting-letters .desk { position:absolute; bottom:10%; left:5%; width:55%; height:20%; background: linear-gradient(180deg, #a08268 0%, #785a42 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.12); transform: perspective(500px) rotateX(5deg); }
.scn-drafting-letters .lamp { position:absolute; bottom:30%; left:15%; width:5%; height:18%; background: linear-gradient(180deg, #d4b87a 0%, #b0985a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 0 18px 6px rgba(255,220,160,0.35); animation: dl-lamp 4s ease-in-out infinite alternate; }
.scn-drafting-letters .letters { position:absolute; bottom:20%; left:15%; width:25%; height:15%; background: linear-gradient(135deg, #faf4e6 0%, #ece0cc 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); transform: rotate(1deg); animation: dl-letters 6s ease-in-out infinite; }
.scn-drafting-letters .inkwell { position:absolute; bottom:20%; left:35%; width:6%; height:8%; background: linear-gradient(180deg, #3a302a 0%, #1a1410 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: dl-inkwell 3s ease-in-out infinite; }
.scn-drafting-letters .hands { position:absolute; bottom:14%; left:20%; width:16%; height:12%; background: linear-gradient(135deg, #d4b898 0%, #c09c78 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.1); animation: dl-hands 5s ease-in-out infinite; }
.scn-drafting-letters .curtain { position:absolute; top:6%; right:8%; width:34%; height:48%; background: linear-gradient(180deg, #e8dccc 0%, #d4c4b0 100%); border-radius: 2% 2% 4% 4%; opacity:0.7; filter: blur(2px); animation: dl-curtain 20s ease-in-out infinite alternate; }
@keyframes dl-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.93; } }
@keyframes dl-window { 0% { opacity:0.85; background-position: 0% 0%; } 50% { opacity:0.95; background-position: 10% 10%; } 100% { opacity:0.9; background-position: 0% 0%; } }
@keyframes dl-lamp { 0% { box-shadow: 0 0 15px 5px rgba(255,220,160,0.3); } 50% { box-shadow: 0 0 22px 8px rgba(255,220,160,0.45); } 100% { box-shadow: 0 0 16px 6px rgba(255,220,160,0.35); } }
@keyframes dl-letters { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.01); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes dl-inkwell { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dl-hands { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(3deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dl-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }

/* --- scene: famous-robberies --- */
.scn-famous-robberies {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2c2a3e 40%, #1e1c2a 100%),
    radial-gradient(ellipse at 30% 80%, #3a3248 0%, transparent 70%);
}
.scn-famous-robberies .carriage-wall {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #1e1c2a 0%, #2c2a3e 50%, #1a1a2e 100%);
  border-bottom: 2px solid #2a2838;
  animation: fr-wall 12s ease-in-out infinite alternate;
}
.scn-famous-robberies .train-window {
  position: absolute; top: 10%; right: 8%; width: 35%; height: 30%;
  background: linear-gradient(135deg, #2a2a4e 0%, #3c3a5e 50%, #1a1a3e 100%);
  border: 4px solid #3a384a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: fr-window 8s ease-in-out infinite alternate;
}
.scn-famous-robberies .seat {
  position: absolute; bottom: 25%; left: 5%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #3a2c2a 0%, #2a1e1c 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-famous-robberies .jewel-case {
  position: absolute; bottom: 30%; left: 55%; width: 12%; height: 14%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6px; border: 2px solid #5a4a3a;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7); transform: rotate(-2deg);
}
.scn-famous-robberies .jewel-glow {
  position: absolute; bottom: 35%; left: 58%; width: 4%; height: 4%;
  background: radial-gradient(circle, #c8a050 0%, #8a6a30 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #c8a050, 0 0 40px 12px rgba(200,160,80,0.4);
  animation: fr-glow 3s ease-in-out infinite alternate;
}
.scn-famous-robberies .shadow-figure {
  position: absolute; bottom: 12%; left: 20%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; opacity: 0.9;
  animation: fr-shadow 5s ease-in-out infinite;
}
@keyframes fr-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fr-window { 0% { background-position: 0% 0%; opacity: 0.7; } 100% { background-position: 100% 100%; opacity: 1; } }
@keyframes fr-glow { 0% { box-shadow: 0 0 10px 2px #c8a050; opacity: 0.6; } 50% { box-shadow: 0 0 30px 8px #c8a050, 0 0 60px 16px rgba(200,160,80,0.5); opacity: 1; } 100% { box-shadow: 0 0 15px 4px #c8a050; opacity: 0.7; } }
@keyframes fr-shadow { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-2deg); } 50% { transform: translateX(-4px) rotate(1deg); } 75% { transform: translateX(6px) rotate(-1deg); } }

/* --- scene: police-frustrated --- */
.scn-police-frustrated {
  background: 
    linear-gradient(180deg, #1e1e2e 0%, #2c2a3e 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 90%, #3a3850 0%, transparent 70%);
}
.scn-police-frustrated .office-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2838 0%, #1e1c2c 100%);
}
.scn-police-frustrated .desk {
  position: absolute; bottom: 25%; left: 10%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 -2px 8px rgba(0,0,0,0.5);
}
.scn-police-frustrated .lamp-glow {
  position: absolute; bottom: 40%; left: 35%; width: 8%; height: 12%;
  background: radial-gradient(ellipse, #d8b060 0%, #b89040 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #c8a050, 0 0 60px 20px rgba(200,160,80,0.3);
  animation: pf-lamp 2s ease-in-out infinite alternate;
}
.scn-police-frustrated .chair-shadow {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%);
  border-radius: 30% 30% 10% 10%; opacity: 0.7;
  animation: pf-chair 6s ease-in-out infinite;
}
.scn-police-frustrated .blinded-window {
  position: absolute; top: 5%; right: 5%; width: 25%; height: 35%;
  background: repeating-linear-gradient(90deg, #2a2840 0px, #2a2840 8px, #3a3850 8px, #3a3850 16px);
  border: 3px solid #3a384a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: pf-blind 10s linear infinite;
}
.scn-police-frustrated .figure-silhouette {
  position: absolute; bottom: 20%; left: 50%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.9;
  transform-origin: bottom center;
  animation: pf-figure 4s ease-in-out infinite;
}
.scn-police-frustrated .papers {
  position: absolute; bottom: 28%; left: 20%; width: 15%; height: 8%;
  background: linear-gradient(135deg, #4a4030 0%, #5a5040 50%, #3a3020 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: pf-papers 8s ease-in-out infinite alternate;
}
@keyframes pf-lamp { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.98); } }
@keyframes pf-chair { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(2px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes pf-blind { 0% { background-position: 0% 0%; } 100% { background-position: 0% 100%; } }
@keyframes pf-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } }
@keyframes pf-papers { 0% { opacity: 0.8; transform: rotate(-2deg) scale(1); } 100% { opacity: 1; transform: rotate(2deg) scale(1.02); } }

/* --- scene: lapidary-workshop --- */
.scn-lapidary-workshop {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a282a 40%, #1e1c1e 100%),
    radial-gradient(ellipse at 70% 50%, #3a3030 0%, transparent 70%);
}
.scn-lapidary-workshop .cabin-wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2828 0%, #1e1c1c 100%);
  border-bottom: 2px solid #3a3838;
}
.scn-lapidary-workshop .workbench {
  position: absolute; bottom: 20%; left: 5%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 6px; box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}
.scn-lapidary-workshop .crucible-glow {
  position: absolute; bottom: 30%; left: 40%; width: 10%; height: 12%;
  background: radial-gradient(circle, #e07030 0%, #c05020 40%, #8a3010 80%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 8px #c05020, 0 0 60px 20px rgba(192,80,32,0.4);
  animation: lw-crucible 3s ease-in-out infinite alternate;
}
.scn-lapidary-workshop .gem-pile {
  position: absolute; bottom: 25%; left: 55%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #c8a060 0%, #a08040 50%, #806030 100%);
  border-radius: 4px; box-shadow: 0 0 10px 2px #a08040;
  animation: lw-gems 4s ease-in-out infinite;
}
.scn-lapidary-workshop .tools {
  position: absolute; bottom: 25%; left: 15%; width: 5%; height: 15%;
  background: linear-gradient(180deg, #6a5a50 0%, #4a3a30 100%);
  border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-lapidary-workshop .workshop-window {
  position: absolute; top: 5%; right: 8%; width: 30%; height: 25%;
  background: linear-gradient(135deg, #1a1a2e 0%, #2c2a4e 50%, #1a1a3e 100%);
  border: 4px solid #3a384a; border-radius: 3px; box-shadow: inset 0 0 15px rgba(0,0,0,0.5);
  animation: lw-window 12s ease-in-out infinite alternate;
}
.scn-lapidary-workshop .lantern-swing {
  position: absolute; top: 10%; left: 25%; width: 6%; height: 10%;
  background: radial-gradient(circle, #d8b060 0%, #b89040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 5px #c8a050, 0 0 40px 12px rgba(200,160,80,0.3);
  animation: lw-lantern 5s ease-in-out infinite;
}
@keyframes lw-crucible { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.98); } }
@keyframes lw-gems { 0%,100% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(5deg) scale(1.02); } 50% { transform: rotate(-3deg) scale(0.98); } 75% { transform: rotate(2deg) scale(1.01); } }
@keyframes lw-window { 0% { background-position: 0% 0%; opacity: 0.6; } 100% { background-position: 100% 100%; opacity: 1; } }
@keyframes lw-lantern { 0%,100% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(-4deg) translateY(1px); } 75% { transform: rotate(2deg) translateY(-1px); } }

/* --- scene: elma-fear --- */
.scn-elma-fear {
  background: 
    linear-gradient(180deg, #0a0a12 0%, #141420 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 60%, #2a2840 0%, transparent 70%);
}
.scn-elma-fear .dark-corridor {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a12 0%, #12121a 100%);
  opacity: 0.9;
}
.scn-elma-fear .door-frame {
  position: absolute; inset: 5% 20% 15% 20%;
  background: transparent;
  border: 6px solid #1a1a2a;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-elma-fear .door-crack {
  position: absolute; top: 10%; left: 48%; width: 4%; height: 65%;
  background: linear-gradient(180deg, #3a3850 0%, #2a2840 50%, #1a1a2a 100%);
  box-shadow: 0 0 20px 4px #4a4860, 0 0 40px 8px rgba(74,72,96,0.3);
  animation: ef-crack 3s ease-in-out infinite alternate;
}
.scn-elma-fear .dining-table {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 -2px 8px rgba(0,0,0,0.5);
  animation: ef-table 6s ease-in-out infinite;
}
.scn-elma-fear .figure-at-table.left {
  position: absolute; bottom: 28%; left: 35%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.8; transform-origin: bottom center;
  animation: ef-figure-left 4s ease-in-out infinite;
}
.scn-elma-fear .figure-at-table.right {
  position: absolute; bottom: 28%; right: 35%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.8; transform-origin: bottom center;
  animation: ef-figure-right 4.5s ease-in-out infinite;
}
.scn-elma-fear .chandelier {
  position: absolute; top: 12%; left: 45%; width: 10%; height: 8%;
  background: radial-gradient(circle, #c8a060 0%, #a08040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #b89040, 0 0 60px 20px rgba(184,144,64,0.2);
  animation: ef-chandelier 5s ease-in-out infinite alternate;
}
.scn-elma-fear .tablecloth {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 4%;
  background: linear-gradient(180deg, #b87878 0%, #a06060 100%);
  border-radius: 2px; opacity: 0.7;
  animation: ef-cloth 8s ease-in-out infinite;
}
@keyframes ef-crack { 0% { opacity: 0.7; box-shadow: 0 0 10px 2px #4a4860; } 50% { opacity: 1; box-shadow: 0 0 30px 8px #5a5880; } 100% { opacity: 0.8; box-shadow: 0 0 15px 4px #4a4860; } }
@keyframes ef-table { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-1px); } 50% { transform: translateY(1px); } 75% { transform: translateY(-0.5px); } }
@keyframes ef-figure-left { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes ef-figure-right { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-1deg); } 60% { transform: translateX(2px) rotate(1deg); } }
@keyframes ef-chandelier { 0% { opacity: 0.8; transform: rotate(-2deg); } 50% { opacity: 1; transform: rotate(2deg); } 100% { opacity: 0.85; transform: rotate(-1deg); } }
@keyframes ef-cloth { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.65; } }

.scn-muriel-knows {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 40%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-muriel-knows .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a1a 100%); animation: mk-wall 20s ease-in-out infinite alternate; }
.scn-muriel-knows .gaslight { position:absolute; top:20%; left:55%; width:30px; height:40px; background: radial-gradient(circle, #ffc060 0%, #d08030 50%, transparent 100%); border-radius:50%; filter: blur(6px); box-shadow: 0 0 60px 20px #ffb040, 0 0 120px 40px rgba(255,176,64,.3); animation: mk-flicker 2s ease-in-out infinite; }
.scn-muriel-knows .shadow-figure { position:absolute; bottom:15%; left:30%; width:50px; height:120px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mk-figure 5s ease-in-out infinite; }
.scn-muriel-knows .silhouette-woman { position:absolute; bottom:15%; right:25%; width:40px; height:110px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: mk-woman 6s ease-in-out infinite; }
.scn-muriel-knows .table { position:absolute; bottom:12%; left:40%; right:40%; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:6% 6% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: mk-table 8s ease-in-out infinite; }
.scn-muriel-knows .book { position:absolute; bottom:20%; left:45%; width:20px; height:26px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius:10%; transform: rotate(-12deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: mk-book 4s ease-in-out infinite; }
.scn-muriel-knows .curtain-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 80%, transparent 100%); animation: mk-curtain-l 12s ease-in-out infinite alternate; }
.scn-muriel-knows .curtain-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(270deg, #3a2a1a 0%, #2a1a0a 80%, transparent 100%); animation: mk-curtain-r 12s ease-in-out infinite alternate; }

@keyframes mk-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mk-flicker { 0% { transform: scale(.9); opacity:.8 } 25% { transform: scale(1.1); opacity:1 } 50% { transform: scale(.95); opacity:.9 } 75% { transform: scale(1.05); opacity:1 } 100% { transform: scale(.9); opacity:.8 } }
@keyframes mk-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(0) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(0) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes mk-woman { 0% { transform: rotate(-1deg); opacity:.7 } 50% { transform: rotate(1deg); opacity:.85 } 100% { transform: rotate(-1deg); opacity:.7 } }
@keyframes mk-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mk-book { 0% { transform: rotate(-12deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(2px) } 100% { transform: rotate(-12deg) translateX(0) } }
@keyframes mk-curtain-l { 0% { transform: scaleX(.9) } 50% { transform: scaleX(1) } 100% { transform: scaleX(.95) } }
@keyframes mk-curtain-r { 0% { transform: scaleX(.9) } 50% { transform: scaleX(1) } 100% { transform: scaleX(.95) } }

.scn-news-of-murder {
  background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 50%, #c0b8a8 100%),
              radial-gradient(ellipse at 50% 100%, #f0e8d8 0%, transparent 70%);
}
.scn-news-of-murder .window { position:absolute; top:5%; left:10%; right:60%; bottom:40%; background: linear-gradient(180deg, #a0c8f0 0%, #80a8d0 100%); border-radius:4%; box-shadow: inset 0 0 40px rgba(255,255,255,.3); animation: nm-window 10s ease-in-out infinite alternate; }
.scn-news-of-murder .table { position:absolute; bottom:15%; left:20%; right:20%; height:40px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:8% 8% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,.2); animation: nm-table 12s ease-in-out infinite; }
.scn-news-of-murder .figure-speaker { position:absolute; bottom:18%; left:38%; width:45px; height:130px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:45% 45% 35% 35% / 65% 65% 40% 40%; transform-origin: bottom center; animation: nm-speaker 3s ease-in-out infinite; }
.scn-news-of-murder .figure-listener { position:absolute; bottom:18%; right:35%; width:45px; height:130px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius:45% 45% 35% 35% / 65% 65% 40% 40%; transform-origin: bottom center; animation: nm-listener 4s ease-in-out infinite; }
.scn-news-of-murder .newspaper { position:absolute; bottom:22%; left:45%; width:20px; height:26px; background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b8 100%); transform: rotate(5deg); border-radius:2%; box-shadow: 0 1px 3px rgba(0,0,0,.3); animation: nm-paper 5s ease-in-out infinite; }
.scn-news-of-murder .chair { position:absolute; bottom:15%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: nm-chair 7s ease-in-out infinite; }
.scn-news-of-murder .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.1) 100%); animation: nm-shadow 15s ease-in-out infinite; }

@keyframes nm-window { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes nm-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nm-speaker { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(5px) rotate(0) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-5px) rotate(0) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes nm-listener { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes nm-paper { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes nm-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes nm-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-man-killed-not-woman {
  background: linear-gradient(180deg, #d8d0c0 0%, #c0b8a8 50%, #b0a898 100%),
              radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, transparent 80%);
}
.scn-man-killed-not-woman .counter { position:absolute; bottom:20%; left:10%; right:10%; height:40px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:6% 6% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.15); animation: mkn-counter 10s ease-in-out infinite; }
.scn-man-killed-not-woman .police-officer { position:absolute; bottom:22%; left:28%; width:40px; height:120px; background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%); border-radius:45% 45% 35% 35% / 65% 65% 40% 40%; transform-origin: bottom center; animation: mkn-officer 4s ease-in-out infinite; }
.scn-man-killed-not-woman .narrator-figure { position:absolute; bottom:22%; right:25%; width:40px; height:120px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:45% 45% 35% 35% / 65% 65% 40% 40%; transform-origin: bottom center; animation: mkn-narrator 6s ease-in-out infinite; }
.scn-man-killed-not-woman .lamp { position:absolute; top:15%; left:45%; width:20px; height:30px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%); border-radius:50%; filter: blur(4px); box-shadow: 0 0 40px 15px #c08040; animation: mkn-lamp 3s ease-in-out infinite; }
.scn-man-killed-not-woman .wall-clock { position:absolute; top:8%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #e0d8c8 40%, #8a7a6a 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: mkn-clock 30s linear infinite; }
.scn-man-killed-not-woman .notice-board { position:absolute; top:25%; left:5%; right:55%; bottom:45%; background: linear-gradient(180deg, #a09880 0%, #807060 100%); border:2px solid #6a5a4a; border-radius:4%; box-shadow: inset 0 0 20px rgba(0,0,0,.1); animation: mkn-board 12s ease-in-out infinite; }
.scn-man-killed-not-woman .floor-tile { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #b0a898 0%, #908878 100%); border-top:2px solid #a09880; animation: mkn-floor 20s ease-in-out infinite; }

@keyframes mkn-counter { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mkn-officer { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0) translateX(2px) } 100% { transform: rotate(-2deg) } }
@keyframes mkn-narrator { 0% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) translateX(-2px) } 100% { transform: rotate(1deg) } }
@keyframes mkn-lamp { 0% { transform: scale(.9) rotate(-5deg); opacity:.8 } 50% { transform: scale(1.1) rotate(0); opacity:1 } 100% { transform: scale(.9) rotate(5deg); opacity:.8 } }
@keyframes mkn-clock { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes mkn-board { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mkn-floor { 0% { background-position: 0 0 } 50% { background-position: 10px 0 } 100% { background-position: 0 0 } }

.scn-confusion-over-body {
  background: linear-gradient(180deg, #d0c8b8 0%, #c0b8a8 40%, #b8b0a0 100%),
              radial-gradient(ellipse at 50% 30%, #f0e8d8 0%, transparent 70%);
}
.scn-confusion-over-body .body-draped { position:absolute; bottom:15%; left:30%; right:30%; height:80px; background: linear-gradient(180deg, #a09890 0%, #807870 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(2deg); box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: cob-body 8s ease-in-out infinite; }
.scn-confusion-over-body .viewer-figure { position:absolute; bottom:10%; left:20%; width:45px; height:140px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius:45% 45% 35% 35% / 65% 65% 40% 40%; transform-origin: bottom center; animation: cob-viewer 5s ease-in-out infinite; }
.scn-confusion-over-body .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #a09890 0%, #807870 100%); animation: cob-floor 15s ease-in-out infinite; }
.scn-confusion-over-body .overhead-light { position:absolute; top:-5%; left:40%; right:40%; height:120px; background: radial-gradient(ellipse at 50% 100%, #f0e8d8 0%, transparent 100%); opacity:.6; animation: cob-light 4s ease-in-out infinite; }
.scn-confusion-over-body .cabinet { position:absolute; bottom:20%; left:5%; right:75%; height:70px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:6% 6% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: cob-cabinet 10s ease-in-out infinite; }
.scn-confusion-over-body .door { position:absolute; top:10%; right:5%; bottom:20%; width:50px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border:2px solid #5a4a3a; border-radius:4%; animation: cob-door 12s ease-in-out infinite; }
.scn-confusion-over-body .shadow-cast { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%); animation: cob-shadow 20s ease-in-out infinite; }

@keyframes cob-body { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(0) translateY(-3px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes cob-viewer { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(0) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-5px) rotate(0) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes cob-floor { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cob-light { 0% { transform: scaleY(.9); opacity:.5 } 50% { transform: scaleY(1.1); opacity:.7 } 100% { transform: scaleY(.9); opacity:.5 } }
@keyframes cob-cabinet { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cob-door { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes cob-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* scene: palace-oberg-hesitation */
.scn-palace-oberg-hesitation {
  background: 
    linear-gradient(180deg, #b8a780 0%, #d4c29f 40%, #e8dbbc 100%),
    radial-gradient(ellipse at 30% 40%, #fff5e0 0%, transparent 60%);
}
.scn-palace-oberg-hesitation .wall-bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #c8b892 0%, #a38c6c 100%); 
}
.scn-palace-oberg-hesitation .window-frame {
  position:absolute; top:10%; left:25%; width:40%; height:65%; border:8px solid #5a4a30; border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,.3); 
}
.scn-palace-oberg-hesitation .window-pane {
  position:absolute; top:10%; left:25%; width:40%; height:65%; background: linear-gradient(135deg, #fff8e0 0%, #e0d0b0 100%); opacity:.5; animation: oh-pane-glow 4s ease-in-out infinite alternate; 
}
.scn-palace-oberg-hesitation .oberg-silhouette {
  position:absolute; bottom:20%; left:45%; width:30%; height:55%; background: linear-gradient(180deg, #2a2218 0%, #0e0b07 100%); border-radius:60% 60% 40% 40% / 80% 80% 50% 50%; transform-origin:bottom; animation: oh-tilt 2s ease-in-out infinite; 
}
.scn-palace-oberg-hesitation .arm-hand-paper {
  position:absolute; bottom:38%; left:62%; width:12%; height:25%; background: linear-gradient(180deg, #3a2e1e 0%, #1a140e 100%); border-radius:20% 20% 40% 40% / 60% 60% 40% 40%; transform-origin: 80% 20%; animation: oh-arm-shake 0.8s ease-in-out infinite; 
}
.scn-palace-oberg-hesitation .desk-edge {
  position:absolute; bottom:10%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #7a6a50 0%, #4a3a28 100%); border-radius:0 0 8px 8px; 
}
.scn-palace-oberg-hesitation .shadow-stripe {
  position:absolute; top:0; left:30%; width:40%; height:100%; background: rgba(0,0,0,.15); filter:blur(8px); animation: oh-stripe-shift 5s ease-in-out infinite; 
}
@keyframes oh-pane-glow {
  0% { opacity:.4; transform:scaleY(1); }
  50% { opacity:.6; transform:scaleY(1.02); }
  100% { opacity:.45; transform:scaleY(.98); }
}
@keyframes oh-tilt {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes oh-arm-shake {
  0% { transform: rotate(0deg) translate(0,0); }
  25% { transform: rotate(3deg) translate(2px,-1px); }
  50% { transform: rotate(-2deg) translate(-1px,0); }
  75% { transform: rotate(4deg) translate(1px,1px); }
  100% { transform: rotate(0deg) translate(0,0); }
}
@keyframes oh-stripe-shift {
  0% { transform: translateX(0); opacity:.15; }
  50% { transform: translateX(5%); opacity:.25; }
  100% { transform: translateX(-5%); opacity:.15; }
}

/* scene: palace-threat-england */
.scn-palace-threat-england {
  background: 
    linear-gradient(180deg, #c8b080 0%, #e0ccb0 50%, #f0e0c8 100%),
    radial-gradient(ellipse at 70% 60%, #fff0d0 0%, transparent 60%);
}
.scn-palace-threat-england .room-back {
  position:absolute; inset:0; background: linear-gradient(135deg, #b8a080 0%, #907858 100%); 
}
.scn-palace-threat-england .desk-top {
  position:absolute; bottom:15%; left:10%; right:20%; height:15%; background: linear-gradient(180deg, #7a6a4e 0%, #5a4a34 100%); border-radius:4px; 
}
.scn-palace-threat-england .elma-silhouette {
  position:absolute; bottom:20%; left:60%; width:25%; height:50%; background: linear-gradient(180deg, #2a1e14 0%, #0e0a06 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; animation: te-breathe 6s ease-in-out infinite; 
}
.scn-palace-threat-england .arm-writing {
  position:absolute; bottom:32%; left:65%; width:10%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:20% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: 70% 90%; animation: te-write 2s ease-in-out infinite; 
}
.scn-palace-threat-england .paper-sheet {
  position:absolute; bottom:38%; left:68%; width:14%; height:18%; background: #f8f0d8; border-radius:2px; box-shadow:2px 2px 4px rgba(0,0,0,.3); animation: te-paper-float 8s ease-in-out infinite; 
}
.scn-palace-threat-england .inkwell {
  position:absolute; bottom:35%; left:78%; width:4%; height:6%; background: #1a1a1a; border-radius:50%; box-shadow:0 0 6px rgba(0,0,0,.4); 
}
.scn-palace-threat-england .candle-glow {
  position:absolute; bottom:45%; left:25%; width:10%; height:20%; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, transparent 70%); opacity:.7; animation: te-candle-pulse 3s ease-in-out infinite alternate; 
}
.scn-palace-threat-england .candle-flame {
  position:absolute; bottom:62%; left:29%; width:2%; height:4%; background: radial-gradient(ellipse at 50% 0%, #ffe080 0%, #ff9020 100%); border-radius:50%; box-shadow:0 0 12px #ffb040; animation: te-flame-flicker 0.5s ease-in-out infinite; 
}
@keyframes te-breathe {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes te-write {
  0% { transform: rotate(0deg) translate(0,0); }
  25% { transform: rotate(8deg) translate(3px,-2px); }
  50% { transform: rotate(-5deg) translate(-2px,1px); }
  75% { transform: rotate(10deg) translate(2px,-1px); }
  100% { transform: rotate(0deg) translate(0,0); }
}
@keyframes te-paper-float {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes te-candle-pulse {
  0% { opacity:.5; transform: scale(1); }
  50% { opacity:.8; transform: scale(1.1); }
  100% { opacity:.6; transform: scale(.95); }
}
@keyframes te-flame-flicker {
  0% { transform: scaleY(1) translateY(0); }
  25% { transform: scaleY(1.2) translateY(-2px); }
  50% { transform: scaleY(.9) translateY(1px); }
  75% { transform: scaleY(1.1) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}

/* scene: palace-oberg-rage */
.scn-palace-oberg-rage {
  background: 
    linear-gradient(180deg, #b09070 0%, #d0b898 50%, #e8d0b0 100%),
    radial-gradient(ellipse at 40% 30%, #fff0d0 0%, transparent 60%);
}
.scn-palace-oberg-rage .hall-back {
  position:absolute; inset:0; background: linear-gradient(135deg, #a09078 0%, #807060 100%); 
}
.scn-palace-oberg-rage .table-slab {
  position:absolute; bottom:12%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #6a5a42 0%, #4a3a28 100%); border-radius:4px; 
}
.scn-palace-oberg-rage .oberg-fury {
  position:absolute; bottom:18%; left:35%; width:25%; height:50%; background: linear-gradient(180deg, #1e140e 0%, #0a0604 100%); border-radius:50% 50% 30% 30% / 80% 80% 40% 40%; transform-origin:bottom; animation: or-punch 1.5s ease-in-out infinite; 
}
.scn-palace-oberg-rage .oberg-fury::before {
  content:''; position:absolute; top:-5%; left:20%; width:60%; height:10%; background: #2a1a0e; border-radius:50%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); 
}
.scn-palace-oberg-rage .gregg-calm {
  position:absolute; bottom:20%; left:60%; width:20%; height:45%; background: linear-gradient(180deg, #2a221a 0%, #0e0a06 100%); border-radius:45% 45% 35% 35% / 70% 70% 40% 40%; transform-origin:bottom; animation: or-stand-still 4s ease-in-out infinite; 
}
.scn-palace-oberg-rage .papers-flying {
  position:absolute; top:20%; left:30%; width:15%; height:20%; background: #f0e0c0; border-radius:2px; box-shadow:0 0 4px rgba(0,0,0,.3); animation: or-fly 3s ease-in-out infinite; 
}
.scn-palace-oberg-rage .papers-flying::after {
  content:''; position:absolute; top:40%; left:110%; width:80%; height:60%; background: #f0e0c0; border-radius:2px; transform:rotate(20deg); 
}
.scn-palace-oberg-rage .chair-over {
  position:absolute; bottom:8%; right:15%; width:20%; height:20%; background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30%; transform:rotate(15deg); box-shadow:0 0 6px rgba(0,0,0,.5); 
}
.scn-palace-oberg-rage .shadow-pool {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 70%); filter:blur(10px); 
}
@keyframes or-punch {
  0% { transform: rotate(-3deg) translateX(0); }
  20% { transform: rotate(8deg) translateX(8px); }
  40% { transform: rotate(-2deg) translateX(-5px); }
  60% { transform: rotate(5deg) translateX(4px); }
  80% { transform: rotate(-1deg) translateX(-2px); }
  100% { transform: rotate(0) translateX(0); }
}
@keyframes or-stand-still {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-2px) scale(1.02); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes or-fly {
  0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:1; }
  25% { transform: translate(40px,-60px) rotate(30deg) scale(1.5); opacity:.9; }
  50% { transform: translate(80px,-20px) rotate(-20deg) scale(.8); opacity:.7; }
  75% { transform: translate(120px,-50px) rotate(45deg) scale(1.2); opacity:.5; }
  100% { transform: translate(160px,-30px) rotate(10deg) scale(1); opacity:0; }
}

/* scene: palace-mysteries-listed */
.scn-palace-mysteries-listed {
  background: 
    linear-gradient(180deg, #b8a888 0%, #d8c8b0 50%, #e8dcc8 100%),
    radial-gradient(ellipse at 50% 40%, #fff8e8 0%, transparent 60%);
}
.scn-palace-mysteries-listed .study-wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #a89880 0%, #887868 100%); 
}
.scn-palace-mysteries-listed .desk-angled {
  position:absolute; bottom:15%; left:25%; right:15%; height:12%; background: linear-gradient(180deg, #6a5a42 0%, #4a3a28 100%); transform:rotate(-3deg); border-radius:4px; 
}
.scn-palace-mysteries-listed .detective-silhouette {
  position:absolute; bottom:22%; left:55%; width:22%; height:48%; background: linear-gradient(180deg, #1e1610 0%, #0a0604 100%); border-radius:50% 50% 35% 35% / 70% 70% 40% 40%; transform-origin:bottom; animation: pm-look 8s ease-in-out infinite; 
}
.scn-palace-mysteries-listed .hand-list {
  position:absolute; bottom:35%; left:60%; width:8%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius:30% 30% 50% 50% / 60% 60% 40% 40%; transform-origin: 90% 100%; animation: pm-point 5s ease-in-out infinite; 
}
.scn-palace-mysteries-listed .paper-stack {
  position:absolute; bottom:25%; left:65%; width:18%; height:20%; background: linear-gradient(180deg, #f0e0c4 0%, #d0c0a8 100%); border-radius:2px; box-shadow:2px 2px 6px rgba(0,0,0,.3); 
}
.scn-palace-mysteries-listed .paper-stack::before {
  content:''; position:absolute; top:-4%; left:2%; width:96%; height:8%; background: #f8f0d8; border-radius:2px; transform:rotate(-2deg); 
}
.scn-palace-mysteries-listed .paper-stack::after {
  content:''; position:absolute; top:-8%; left:4%; width:92%; height:8%; background: #fff8e8; border-radius:2px; transform:rotate(1deg); 
}
.scn-palace-mysteries-listed .lamp-arc {
  position:absolute; top:15%; left:70%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, transparent 70%); opacity:.6; animation: pm-lamp-pulse 4s ease-in-out infinite alternate; 
}
.scn-palace-mysteries-listed .badge-gleam {
  position:absolute; top:45%; left:85%; width:4%; height:4%; background: #c8b080; border-radius:50%; box-shadow:0 0 10px #d4c090,0 0 20px rgba(200,176,128,.4); animation: pm-badge-sparkle 2s ease-in-out infinite; 
}
@keyframes pm-look {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes pm-point {
  0% { transform: rotate(0deg) translate(0,0); }
  30% { transform: rotate(10deg) translate(5px,-3px); }
  60% { transform: rotate(-5deg) translate(-2px,2px); }
  100% { transform: rotate(0deg) translate(0,0); }
}
@keyframes pm-lamp-pulse {
  0% { opacity:.4; transform: scale(1); }
  50% { opacity:.7; transform: scale(1.1); }
  100% { opacity:.5; transform: scale(.95); }
}
@keyframes pm-badge-sparkle {
  0% { opacity:.6; transform: scale(1); }
  50% { opacity:1; transform: scale(1.2); box-shadow:0 0 14px #e0d0a0,0 0 28px rgba(200,176,128,.6); }
  100% { opacity:.6; transform: scale(1); }
}

.scn-palace-secretary-luganski {
  background: 
    linear-gradient(180deg, #e5d9c5 0%, #c8b79c 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e8 0%, #c8b79c 70%);
  perspective: 800px;
}
.scn-palace-secretary-luganski .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5a40 100%);
  transform: rotateX(25deg) scaleY(0.85);
}
.scn-palace-secretary-luganski .wall {
  position: absolute; top:0; left:0; right:0; bottom:30%;
  background: linear-gradient(180deg, #d9cfb5 0%, #b8a88a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}
.scn-palace-secretary-luganski .window-frame {
  position: absolute; top:18%; right:10%; width:30%; height:40%;
  border: 6px solid #6b5a40; background: #b8a88a; border-radius: 4px;
  box-shadow: inset 0 0 0 2px #8b7355;
}
.scn-palace-secretary-luganski .window-light {
  position: absolute; top:20%; right:11%; width:28%; height:36%;
  background: radial-gradient(ellipse at 50% 50%, #fff8e8 0%, #f0e0c0 50%, transparent 80%);
  animation: p1-glow 6s ease-in-out infinite alternate;
}
.scn-palace-secretary-luganski .servant-figure {
  position: absolute; bottom:28%; left:20%; width:12%; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: p1-servant 4s ease-in-out infinite;
}
.scn-palace-secretary-luganski .desk {
  position: absolute; bottom:20%; left:50%; width:35%; height:8%;
  margin-left: -17.5%;
  background: linear-gradient(180deg, #7a6745 0%, #4a3a2a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-palace-secretary-luganski .door {
  position: absolute; top:15%; left:5%; width:18%; height:55%;
  background: linear-gradient(180deg, #6b5a40 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
  border: 2px solid #3a2a1a;
}
.scn-palace-secretary-luganski .clock {
  position: absolute; top:10%; left:45%; width:10%; height:14%;
  background: radial-gradient(circle, #f0e0c0 0%, #c8b79c 60%, #8b7355 100%);
  border-radius: 50%; border: 3px solid #6b5a40;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: p1-clock 2s ease-in-out infinite;
}
@keyframes p1-glow {
  0% { opacity:0.6; transform: scale(0.95); }
  50% { opacity:1; transform: scale(1.02); }
  100% { opacity:0.7; transform: scale(0.98); }
}
@keyframes p1-servant {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes p1-clock {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(10deg) scale(1.02); }
  50% { transform: rotate(0deg) scale(1); }
  75% { transform: rotate(-10deg) scale(1.02); }
  100% { transform: rotate(0deg) scale(1); }
}

.scn-palace-colonel-french {
  background: 
    linear-gradient(180deg, #d9cfb5 0%, #b8a88a 100%),
    radial-gradient(ellipse at 60% 40%, #fff8e8 0%, #b8a88a 70%);
  perspective: 1000px;
}
.scn-palace-colonel-french .floor {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #7a6745 0%, #5a4a30 100%);
  transform: rotateX(30deg) scaleY(0.8);
}
.scn-palace-colonel-french .wall {
  position: absolute; top:0; left:0; right:0; bottom:25%;
  background: linear-gradient(180deg, #c8b79c 0%, #a89878 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.08);
}
.scn-palace-colonel-french .desk {
  position: absolute; bottom:20%; left:40%; width:40%; height:10%;
  margin-left: -20%;
  background: linear-gradient(180deg, #6b5a40 0%, #4a3a2a 100%);
  border-radius: 3px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-palace-colonel-french .colonel-figure {
  position: absolute; bottom:22%; left:45%; width:14%; height:45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: p2-colonel 5s ease-in-out infinite;
}
.scn-palace-colonel-french .chair {
  position: absolute; bottom:20%; left:42%; width:20%; height:15%;
  margin-left: -10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-palace-colonel-french .window-light {
  position: absolute; top:15%; right:8%; width:25%; height:35%;
  background: radial-gradient(ellipse at 50% 50%, #fff8e8 0%, #f0e0c0 50%, transparent 80%);
  animation: p2-light 7s ease-in-out infinite alternate;
}
.scn-palace-colonel-french .door {
  position: absolute; top:10%; left:5%; width:15%; height:65%;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%);
  border-radius: 3px 3px 0 0; box-shadow: inset 0 0 8px rgba(0,0,0,0.2);
  border: 2px solid #2a1a0a;
}
.scn-palace-colonel-french .candle {
  position: absolute; bottom:35%; left:60%; width:4%; height:6%;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c090 50%, #8b7355 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px #f0e0c0;
  animation: p2-candle 3s ease-in-out infinite alternate;
}
@keyframes p2-colonel {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-4px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes p2-light {
  0% { opacity:0.5; transform: scale(0.95); }
  50% { opacity:1; transform: scale(1.05); }
  100% { opacity:0.6; transform: scale(0.98); }
}
@keyframes p2-candle {
  0% { transform: scale(1); opacity:0.8; box-shadow: 0 0 15px 4px #f0e0c0; }
  50% { transform: scale(1.1); opacity:1; box-shadow: 0 0 25px 10px #f0e0c0; }
  100% { transform: scale(0.95); opacity:0.7; box-shadow: 0 0 12px 3px #f0e0c0; }
}

.scn-palace-insistence-secret {
  background: 
    linear-gradient(180deg, #d1c5ad 0%, #b09d7d 100%),
    radial-gradient(ellipse at 50% 60%, #fff8e8 0%, #b09d7d 70%);
  perspective: 900px;
}
.scn-palace-insistence-secret .floor {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #7a6745 0%, #5a4a30 100%);
  transform: rotateX(20deg) scaleY(0.9);
}
.scn-palace-insistence-secret .wall {
  position: absolute; top:0; left:0; right:0; bottom:20%;
  background: linear-gradient(180deg, #c8b79c 0%, #a89878 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.06);
}
.scn-palace-insistence-secret .carpet {
  position: absolute; bottom:0; left:10%; width:80%; height:15%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5a40 50%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0; transform: translateY(-5%);
}
.scn-palace-insistence-secret .figure-leaning {
  position: absolute; bottom:15%; left:35%; width:16%; height:50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: p3-lean 4s ease-in-out infinite;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-palace-insistence-secret .door {
  position: absolute; top:10%; right:5%; width:15%; height:70%;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%);
  border-radius: 3px 3px 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
  border: 2px solid #2a1a0a;
}
.scn-palace-insistence-secret .document {
  position: absolute; bottom:25%; left:45%; width:10%; height:12%;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c090 100%);
  border-radius: 2px; transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: p3-doc 6s ease-in-out infinite alternate;
}
.scn-palace-insistence-secret .shadow {
  position: absolute; bottom:0; left:20%; width:60%; height:30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  pointer-events: none;
  animation: p3-shadow 5s ease-in-out infinite alternate;
}
@keyframes p3-lean {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  25% { transform: translateY(-6px) rotate(3deg) scale(1.02); }
  50% { transform: translateY(0) rotate(-2deg) scale(0.98); }
  75% { transform: translateY(-3px) rotate(2deg) scale(1.01); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes p3-doc {
  0% { transform: rotate(-10deg) translateY(0); opacity:0.8; }
  50% { transform: rotate(-5deg) translateY(-2px); opacity:1; }
  100% { transform: rotate(-15deg) translateY(0); opacity:0.7; }
}
@keyframes p3-shadow {
  0% { opacity:0.3; transform: scaleX(1); }
  50% { opacity:0.6; transform: scaleX(1.1); }
  100% { opacity:0.2; transform: scaleX(0.9); }
}

.scn-palace-ruse-conspiracy {
  background: 
    linear-gradient(180deg, #c8b79c 0%, #a89878 100%),
    radial-gradient(ellipse at 40% 30%, #fff8e8 0%, #a89878 60%);
  perspective: 1100px;
}
.scn-palace-ruse-conspiracy .floor {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #6b5a40 0%, #4a3a2a 100%);
  transform: rotateX(25deg) scaleY(0.85);
}
.scn-palace-ruse-conspiracy .wall {
  position: absolute; top:0; left:0; right:0; bottom:25%;
  background: linear-gradient(180deg, #b09d7d 0%, #8b7355 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.1);
}
.scn-palace-ruse-conspiracy .curtain {
  position: absolute; top:0; left:0; width:30%; height:100%;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%);
  border-right: 4px solid #2a1a0a;
  animation: p4-curtain 8s ease-in-out infinite alternate;
}
.scn-palace-ruse-conspiracy .map {
  position: absolute; top:20%; left:40%; width:30%; height:35%;
  background: linear-gradient(180deg, #e0c090 0%, #c8a070 100%);
  border-radius: 4px; border: 3px solid #6b5a40;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  transform: rotate(2deg);
  animation: p4-map 10s ease-in-out infinite alternate;
}
.scn-palace-ruse-conspiracy .figure-hiding {
  position: absolute; bottom:20%; left:25%; width:15%; height:55%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform: skewX(-8deg);
  animation: p4-figure 4s ease-in-out infinite;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-palace-ruse-conspiracy .candle {
  position: absolute; bottom:30%; left:50%; width:3%; height:8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a070 80%, #6b5a40 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px #f0e0c0;
  animation: p4-candle 3s ease-in-out infinite alternate;
}
.scn-palace-ruse-conspiracy .shadow {
  position: absolute; bottom:0; left:20%; width:60%; height:35%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  pointer-events: none;
  animation: p4-shadow 5s ease-in-out infinite alternate;
}
.scn-palace-ruse-conspiracy .dagger {
  position: absolute; bottom:30%; left:55%; width:8%; height:10%;
  background: linear-gradient(180deg, #8b7355 0%, #4a3a2a 100%);
  clip-path: polygon(50% 0%, 40% 100%, 60% 100%);
  transform: rotate(30deg);
  animation: p4-dagger 2s ease-in-out infinite alternate;
}
@keyframes p4-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-20px); }
  100% { transform: translateX(0); }
}
@keyframes p4-map {
  0% { transform: rotate(2deg) translateY(0); opacity:0.8; }
  50% { transform: rotate(-2deg) translateY(-5px); opacity:1; }
  100% { transform: rotate(1deg) translateY(0); opacity:0.7; }
}
@keyframes p4-figure {
  0% { transform: translateX(0) skewX(-8deg); }
  25% { transform: translateX(5px) skewX(-5deg); }
  50% { transform: translateX(0) skewX(-10deg); }
  75% { transform: translateX(-5px) skewX(-6deg); }
  100% { transform: translateX(0) skewX(-8deg); }
}
@keyframes p4-candle {
  0% { transform: scale(1); opacity:0.8; box-shadow: 0 0 15px 4px #f0e0c0; }
  50% { transform: scale(1.15); opacity:1; box-shadow: 0 0 30px 12px #f0e0c0; }
  100% { transform: scale(0.95); opacity:0.7; box-shadow: 0 0 10px 2px #f0e0c0; }
}
@keyframes p4-shadow {
  0% { opacity:0.3; transform: scaleY(1); }
  50% { opacity:0.6; transform: scaleY(1.2); }
  100% { opacity:0.2; transform: scaleY(0.8); }
}
@keyframes p4-dagger {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-3px); }
  100% { transform: rotate(35deg) translateY(0); }
}

/* palace-oberg-order-arrest - tense bright interior */
.scn-palace-oberg-order-arrest {
  background: linear-gradient(180deg, #e8d5b0 0%, #c4a87a 50%, #9c7a50 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.6) 0%, transparent 60%);
}
.scn-palace-oberg-order-arrest .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4b88a 0%, #b09060 100%);
  animation: poa-bg 14s ease-in-out infinite alternate; opacity: 0.85;
}
.scn-palace-oberg-order-arrest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-palace-oberg-order-arrest .desk {
  position: absolute; bottom: 30%; left: 20%; width: 45%; height: 8%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%);
  border-radius: 4% 4% 8% 8%; transform: perspective(400px) rotateX(5deg);
  box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: poa-desk 6s ease-in-out infinite;
}
.scn-palace-oberg-order-arrest .figure {
  position: absolute; bottom: 28%; left: 35%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1512 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: poa-fig 4s ease-in-out infinite;
}
.scn-palace-oberg-order-arrest .guard {
  position: absolute; bottom: 28%; right: 20%; width: 14%; height: 44%;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0804 100%);
  border-radius: 50% 50% 30% 30% / 65% 65% 35% 35%;
  transform-origin: bottom center; animation: poa-guard 3.5s ease-in-out infinite alternate;
}
.scn-palace-oberg-order-arrest .document {
  position: absolute; bottom: 33%; left: 38%; width: 10%; height: 6%;
  background: #f0e0c0; border-radius: 2%; box-shadow: 0 0 12px 4px rgba(240,224,192,0.6);
  animation: poa-doc 6s ease-in-out infinite; opacity: 0.9;
}
.scn-palace-oberg-order-arrest .window-light {
  position: absolute; top: 5%; right: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at center, rgba(255,230,180,0.4) 0%, rgba(255,230,180,0.1) 60%, transparent 80%);
  filter: blur(8px); animation: poa-light 10s ease-in-out infinite alternate;
}
@keyframes poa-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes poa-desk { 0%,100% { transform: perspective(400px) rotateX(5deg) translateY(0); } 50% { transform: perspective(400px) rotateX(5deg) translateY(-2px); } }
@keyframes poa-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 poa-guard { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes poa-doc { 0%,100% { opacity: 0.9; box-shadow: 0 0 12px 4px rgba(240,224,192,0.6); } 50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(240,224,192,0.9); } }
@keyframes poa-light { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(0.95); } }

/* palace-wallet-stolen - tense bright interior */
.scn-palace-wallet-stolen {
  background: linear-gradient(180deg, #ecd7b0 0%, #c8a87a 50%, #a07850 100%),
              radial-gradient(ellipse at 60% 20%, rgba(255,235,190,0.5) 0%, transparent 60%);
}
.scn-palace-wallet-stolen .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #dac09a 0%, #b89870 100%);
  animation: pws-bg 12s ease-in-out infinite alternate;
}
.scn-palace-wallet-stolen .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0; box-shadow: inset 0 6px 16px rgba(0,0,0,0.6);
}
.scn-palace-wallet-stolen .figure {
  position: absolute; bottom: 28%; left: 50%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #1a1510 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pws-fig 5s ease-in-out infinite;
}
.scn-palace-wallet-stolen .shadow {
  position: absolute; bottom: 25%; left: 48%; width: 18%; height: 10%;
  background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(6px);
  animation: pws-shadow 5s ease-in-out infinite;
}
.scn-palace-wallet-stolen .wallet-gone {
  position: absolute; bottom: 35%; left: 48%; width: 4%; height: 5%;
  background: #8a6a4a; border-radius: 10%; box-shadow: 0 0 8px 2px rgba(138,106,74,0.3);
  animation: pws-wallet 4s ease-in-out infinite alternate;
}
.scn-palace-wallet-stolen .pocket-flap {
  position: absolute; bottom: 42%; left: 52%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 20% 20% 40% 40%; transform-origin: top center;
  animation: pws-flap 3s ease-in-out infinite;
}
@keyframes pws-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pws-fig { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-2deg) scale(1.02); } 60% { transform: translateX(5px) rotate(2deg) scale(0.98); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pws-shadow { 0%,100% { transform: scaleX(1) translateX(0); } 30% { transform: scaleX(1.2) translateX(-3px); } 60% { transform: scaleX(1.2) translateX(4px); } }
@keyframes pws-wallet { 0% { opacity: 0.6; transform: scale(0.8); } 50% { opacity: 0.2; transform: scale(0.5) translateY(2px); } 100% { opacity: 0.6; transform: scale(0.8); } }
@keyframes pws-flap { 0% { transform: rotateX(0deg); } 50% { transform: rotateX(40deg); } 100% { transform: rotateX(0deg); } }

/* palace-desperation-brave - tense bright interior */
.scn-palace-desperation-brave {
  background: linear-gradient(180deg, #d4c0a0 0%, #b09870 50%, #887050 100%),
              radial-gradient(ellipse at 40% 30%, rgba(230,200,160,0.4) 0%, transparent 70%);
}
.scn-palace-desperation-brave .wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #b89878 0%, #8a7050 100%);
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.3); animation: pdb-wall 9s ease-in-out infinite alternate;
}
.scn-palace-desperation-brave .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a3a20 0%, #2a1a08 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0; box-shadow: inset 0 6px 16px rgba(0,0,0,0.7);
}
.scn-palace-desperation-brave .figure {
  position: absolute; bottom: 28%; left: 40%; width: 16%; height: 48%;
  background: linear-gradient(180deg, #1e1510 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center; animation: pdb-fig 6s ease-in-out infinite;
}
.scn-palace-desperation-brave .chain {
  position: absolute; bottom: 40%; left: 38%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20%; box-shadow: 2px 0 4px rgba(0,0,0,0.4);
  animation: pdb-chain 8s ease-in-out infinite alternate;
}
.scn-palace-desperation-brave .light-beam {
  position: absolute; top: 5%; left: 5%; width: 30%; height: 70%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0.05) 100%);
  transform: rotate(15deg); filter: blur(4px); animation: pdb-beam 10s ease-in-out infinite alternate;
}
.scn-palace-desperation-brave .shadow-self {
  position: absolute; bottom: 28%; left: 55%; width: 12%; height: 40%;
  background: rgba(0,0,0,0.15); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px); animation: pdb-shadow 6s ease-in-out infinite;
}
@keyframes pdb-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pdb-fig { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(-2px) rotate(-1deg) scale(1.02); } 50% { transform: translateX(0) rotate(1deg) scale(1); } 75% { transform: translateX(2px) rotate(0deg) scale(0.98); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes pdb-chain { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes pdb-beam { 0% { opacity: 0.3; transform: rotate(15deg) scaleX(0.9); } 50% { opacity: 0.6; transform: rotate(12deg) scaleX(1.1); } 100% { opacity: 0.3; transform: rotate(15deg) scaleX(0.9); } }
@keyframes pdb-shadow { 0% { opacity: 0.15; transform: translateY(0); } 50% { opacity: 0.3; transform: translateY(-4px); } 100% { opacity: 0.15; transform: translateY(0); } }

/* palace-england-ultimatum - tense bright interior */
.scn-palace-england-ultimatum {
  background: linear-gradient(180deg, #dcc8a8 0%, #b8a080 50%, #907860 100%),
              radial-gradient(ellipse at 50% 30%, rgba(240,220,180,0.5) 0%, transparent 60%);
}
.scn-palace-england-ultimatum .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c8b090 0%, #a88a70 100%);
  animation: peu-bg 14s ease-in-out infinite alternate;
}
.scn-palace-england-ultimatum .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%);
  border-radius: 4% 4% 12% 12%; transform: perspective(400px) rotateX(8deg);
  box-shadow: 0 8px 16px rgba(0,0,0,0.5); animation: peu-table 7s ease-in-out infinite;
}
.scn-palace-england-ultimatum .figure-left {
  position: absolute; bottom: 28%; left: 25%; width: 14%; height: 44%;
  background: linear-gradient(180deg, #1a1512 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: peu-figl 4.5s ease-in-out infinite;
}
.scn-palace-england-ultimatum .figure-right {
  position: absolute; bottom: 28%; right: 25%; width: 14%; height: 44%;
  background: linear-gradient(180deg, #1a1512 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: peu-figr 4.5s ease-in-out infinite reverse;
}
.scn-palace-england-ultimatum .document {
  position: absolute; bottom: 30%; left: 46%; width: 8%; height: 6%;
  background: #f0e0c0; border-radius: 2%; box-shadow: 0 0 16px 4px rgba(240,224,192,0.7);
  animation: peu-doc 5s ease-in-out infinite alternate;
}
.scn-palace-england-ultimatum .candle {
  position: absolute; bottom: 32%; left: 48%; width: 2%; height: 14%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c0a070 100%);
  border-radius: 20% 20% 40% 40%; box-shadow: 0 0 8px 2px rgba(200,160,80,0.5);
  animation: peu-candle 6s ease-in-out infinite;
}
.scn-palace-england-ultimatum .candle-glow {
  position: absolute; bottom: 36%; left: 46%; width: 8%; height: 8%;
  background: radial-gradient(circle, rgba(255,220,150,0.6) 0%, transparent 70%);
  filter: blur(6px); animation: peu-glow 3s ease-in-out infinite alternate;
}
@keyframes peu-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes peu-table { 0%,100% { transform: perspective(400px) rotateX(8deg) translateY(0); } 50% { transform: perspective(400px) rotateX(8deg) translateY(-2px); } }
@keyframes peu-figl { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(-3px) rotate(-1deg) scale(1.03); } 50% { transform: translateX(0) rotate(0deg) scale(1); } 75% { transform: translateX(3px) rotate(1deg) scale(0.97); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes peu-figr { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(3px) rotate(1deg) scale(1.03); } 50% { transform: translateX(0) rotate(0deg) scale(1); } 75% { transform: translateX(-3px) rotate(-1deg) scale(0.97); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes peu-doc { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes peu-candle { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes peu-glow { 0% { opacity: 0.5; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.8); } }

/* scene: london-revelation-begins */
.scn-london-revelation-begins { background: linear-gradient(180deg, #f8f0e0 0%, #e8d8b8 50%, #c8b898 100%), radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 60%); }
.scn-london-revelation-begins .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #dcd0c0 0%, #b8a88a 100%); animation: lr-breath 12s ease-in-out infinite alternate; }
.scn-london-revelation-begins .window { position:absolute; top:5%; left:15%; width:30%; height:40%; background: linear-gradient(180deg, #e0f0ff 0%, #c0d8ee 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,240,0.5); animation: lr-window 8s ease-in-out infinite alternate; }
.scn-london-revelation-begins .table { position:absolute; bottom:18%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #8b7355 0%, #6b5a3e 100%); border-radius: 10% 10% 0 0 / 50% 50% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.3); }
.scn-london-revelation-begins .teacup { position:absolute; bottom:22%; width:8%; height:10%; background: radial-gradient(ellipse at 50% 20%, #f0f0f0 0%, #d0c8b8 60%, #a09080 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; }
.scn-london-revelation-begins .teacup.left  { left:35%; animation: lr-cup 6s ease-in-out infinite; }
.scn-london-revelation-begins .teacup.right { left:55%; animation: lr-cup 6s ease-in-out infinite reverse; }
.scn-london-revelation-begins .figure-1 { position:absolute; bottom:15%; left:30%; width:10%; height:40%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -5px 0 15px rgba(0,0,0,0.2); animation: lr-sit 10s ease-in-out infinite; }
.scn-london-revelation-begins .figure-2 { position:absolute; bottom:15%; left:55%; width:12%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%; animation: lr-sit 10s ease-in-out infinite 2s; }
.scn-london-revelation-begins .lamp-glow { position:absolute; bottom:30%; left:45%; width:10%; height:10%; background: radial-gradient(circle, #ffe090 0%, #d0a050 40%, transparent 70%); border-radius:50%; filter: blur(8px); animation: lr-lamp 4s ease-in-out infinite alternate; }
@keyframes lr-breath { 0%,100% { opacity:0.9; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.05); } }
@keyframes lr-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes lr-cup { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes lr-sit { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes lr-lamp { 0% { opacity:0.6; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.1); } }

/* scene: jack-begins-tale */
.scn-jack-begins-tale { background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #05050a 100%), radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 60%); }
.scn-jack-begins-tale .dark-room { position:absolute; inset:0; background: linear-gradient(135deg, #202030 0%, #101018 100%); animation: jb-dark 15s ease-in-out infinite alternate; }
.scn-jack-begins-tale .desk { position:absolute; bottom:20%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 0 0 / 30% 30% 0 0; box-shadow: 0 -5px 20px rgba(0,0,0,0.5); }
.scn-jack-begins-tale .paper { position:absolute; bottom:28%; left:30%; width:15%; height:20%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: jb-paper 12s ease-in-out infinite; }
.scn-jack-begins-tale .candle { position:absolute; bottom:35%; left:50%; width:4%; height:20%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 50%, #a08040 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform: translateX(-50%); animation: jb-candle 4s ease-in-out infinite; }
.scn-jack-begins-tale .shadow { position:absolute; bottom:5%; left:10%; width:80%; height:30%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 20%, transparent 40%, rgba(0,0,0,0.3) 60%, transparent 80%); filter: blur(8px); animation: jb-shadow 8s ease-in-out infinite alternate; }
.scn-jack-begins-tale .figure { position:absolute; bottom:15%; left:45%; width:14%; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; box-shadow: 5px 0 20px rgba(0,0,0,0.8); animation: jb-figure 6s ease-in-out infinite; }
.scn-jack-begins-tale .chair { position:absolute; bottom:18%; left:42%; width:20%; height:15%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: jb-chair 10s ease-in-out infinite; }
@keyframes jb-dark { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes jb-paper { 0%,100% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 75% { transform: rotate(-7deg) translateY(1px); } }
@keyframes jb-candle { 0%,100% { transform: translateX(-50%) scaleY(1); opacity:0.9; } 50% { transform: translateX(-50%) scaleY(0.95); opacity:1; } }
@keyframes jb-shadow { 0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(10px) scaleX(1.1); } }
@keyframes jb-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes jb-chair { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }

/* scene: malta-introduction */
.scn-malta-introduction { background: linear-gradient(180deg, #87CEEB 0%, #4A90D9 40%, #2E6BB0 100%), radial-gradient(ellipse at 70% 20%, #FFD700 0%, transparent 50%); }
.scn-malta-introduction .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d4f0 0%, #87CEEB 50%, #5ba0d0 100%); animation: mi-sky 20s ease-in-out infinite alternate; }
.scn-malta-introduction .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2E6BB0 0%, #1B4F8A 40%, #0D3B6E 100%); border-radius: 60% 40% 0 0 / 20% 30% 0 0; animation: mi-sea 10s ease-in-out infinite; }
.scn-malta-introduction .sun { position:absolute; top:10%; right:20%; width:12%; height:12%; background: radial-gradient(circle, #FFE066 0%, #FFCC00 50%, transparent 80%); border-radius:50%; filter: blur(4px); animation: mi-sun 8s ease-in-out infinite alternate; }
.scn-malta-introduction .yacht { position:absolute; bottom:30%; left:30%; width:20%; height:10%; background: linear-gradient(180deg, #f0f0f0 0%, #d0d0d0 100%); border-radius: 0 50% 20% 0 / 0 100% 40% 0; box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: mi-boat 6s ease-in-out infinite; }
.scn-malta-introduction .sail-1 { position:absolute; bottom:35%; left:32%; width:8%; height:20%; background: linear-gradient(135deg, #f8f8f8 0%, #e0e0e0 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: mi-sail 6s ease-in-out infinite; }
.scn-malta-introduction .sail-2 { position:absolute; bottom:35%; left:42%; width:8%; height:18%; background: linear-gradient(135deg, #e8e8e8 0%, #c8c8c8 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: mi-sail 6s ease-in-out infinite -1s; }
.scn-malta-introduction .figures { position:absolute; bottom:28%; left:35%; width:6%; height:14%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; animation: mi-figure 8s ease-in-out infinite; }
@keyframes mi-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes mi-sea { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-3px); } 75% { transform: translateY(2px); } }
@keyframes mi-sun { 0% { opacity:0.7; transform: scale(0.95); } 100% { opacity:1; transform: scale(1.05); } }
@keyframes mi-boat { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(2deg); } 75% { transform: translateX(2px) rotate(-2deg); } }
@keyframes mi-sail { 0%,100% { transform: scaleX(1) skewX(0deg); } 50% { transform: scaleX(0.9) skewX(2deg); } }
@keyframes mi-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

/* scene: robbery-at-malta */
.scn-robbery-at-malta { background: linear-gradient(180deg, #0a0a1e 0%, #121230 50%, #1a1a40 100%), radial-gradient(ellipse at 50% 100%, #2a2a5a 0%, transparent 60%); }
.scn-robbery-at-malta .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0d0d2b 0%, #16163a 50%, #202050 100%); animation: rm-night 25s ease-in-out infinite alternate; }
.scn-robbery-at-malta .harbor-wall { position:absolute; bottom:20%; left:0; width:100%; height:15%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; box-shadow: 0 -10px 30px rgba(0,0,0,0.8); }
.scn-robbery-at-malta .ship { position:absolute; bottom:25%; left:20%; width:40%; height:20%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); clip-path: polygon(0 40%, 20% 0, 80% 0, 100% 40%, 90% 100%, 10% 100%); animation: rm-bob 8s ease-in-out infinite; }
.scn-robbery-at-malta .mast { position:absolute; bottom:40%; left:38%; width:3%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px 2px 0 0; }
.scn-robbery-at-malta .lantern { position:absolute; bottom:38%; left:35%; width:6%; height:6%; background: radial-gradient(circle, #ffc080 0%, #d08020 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,192,128,0.5); animation: rm-lantern 4s ease-in-out infinite; }
.scn-robbery-at-malta .shadow-figure { position:absolute; bottom:18%; left:30%; width:10%; height:25%; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform: rotate(-10deg); animation: rm-figure 6s ease-in-out infinite alternate; }
.scn-robbery-at-malta .water { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a3a 0%, #0d0d2e 50%, #0a0a20 100%); animation: rm-water 10s ease-in-out infinite; }
@keyframes rm-night { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes rm-bob { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(1px) rotate(-1deg); } }
@keyframes rm-lantern { 0%,100% { transform: translateX(0) rotate(0deg); opacity:0.8; } 25% { transform: translateX(-3px) rotate(5deg); opacity:1; } 75% { transform: translateX(2px) rotate(-5deg); opacity:0.9; } }
@keyframes rm-figure { 0% { transform: translateX(0) rotate(-10deg); } 100% { transform: translateX(10px) rotate(-5deg); } }
@keyframes rm-water { 0%,100% { opacity:0.6; } 50% { opacity:0.9; } }

.scn-detective-suspicious {
  background: 
    linear-gradient(135deg, #f5e6d0 0%, #d4c4a8 50%, #b8a88a 100%),
    radial-gradient(ellipse at 70% 40%, rgba(255,235,200,0.6) 0%, transparent 60%);
}
.scn-detective-suspicious .room { position:absolute; inset:0; background:linear-gradient(180deg, #e8dcc8 0%, #c4b49a 100%); animation: sc1-room 12s ease-in-out infinite alternate; }
.scn-detective-suspicious .table { position:absolute; bottom:20%; left:25%; width:50%; height:30%; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4% 4% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: sc1-table 8s ease-in-out infinite; }
.scn-detective-suspicious .lamp { position:absolute; bottom:45%; left:42%; width:12%; height:20%; background:linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:50% 50% 10% 10%; transform-origin:bottom center; animation: sc1-lamp 3s ease-in-out infinite alternate; }
.scn-detective-suspicious .lamp::after { content:''; position:absolute; top:-20%; left:50%; width:40%; height:40%; background:radial-gradient(circle, #ffd080 0%, #c09040 70%); border-radius:50%; transform:translateX(-50%); box-shadow: 0 0 20px 8px #c09040; animation: sc1-glow 2s ease-in-out infinite alternate; }
.scn-detective-suspicious .shadow-figure { position:absolute; bottom:20%; right:18%; width:15%; height:45%; background:linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sc1-figure 5s ease-in-out infinite; }
.scn-detective-suspicious .eye-glow { position:absolute; bottom:48%; right:24%; width:4%; height:4%; background:radial-gradient(circle, #80d0ff 0%, #4080c0 70%); border-radius:50%; box-shadow: 0 0 12px 6px #4080c0, 0 0 24px 10px rgba(64,128,192,0.4); animation: sc1-eye 3s ease-in-out infinite alternate; }
.scn-detective-suspicious .chair { position:absolute; bottom:18%; left:28%; width:20%; height:20%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); animation: sc1-chair 6s ease-in-out infinite; }
@keyframes sc1-room { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sc1-table { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes sc1-lamp { 0% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(1px) rotate(2deg); } 100% { transform:translateX(-1px) rotate(-1deg); } }
@keyframes sc1-glow { 0% { opacity:0.7; box-shadow:0 0 15px 5px #c09040; } 50% { opacity:1; box-shadow:0 0 30px 12px #e0b060; } 100% { opacity:0.8; box-shadow:0 0 20px 8px #c09040; } }
@keyframes sc1-figure { 0% { transform:translateX(0) scaleY(1); } 25% { transform:translateX(-1px) scaleY(1.02) rotate(1deg); } 50% { transform:translateX(0) scaleY(1); } 75% { transform:translateX(1px) scaleY(1.02) rotate(-1deg); } 100% { transform:translateX(0) scaleY(1); } }
@keyframes sc1-eye { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.7; transform:scale(0.9); } }
@keyframes sc1-chair { 0%,100% { transform:rotate(0deg); } 50% { transform:rotate(-3deg); } }

.scn-writing-to-hutcheson {
  background: 
    linear-gradient(180deg, #f0e6d8 0%, #d8c8b0 50%, #b0a088 100%),
    radial-gradient(ellipse at 60% 30%, rgba(255,230,180,0.5) 0%, transparent 70%);
}
.scn-writing-to-hutcheson .wall { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #e0d0b8 0%, #c0b098 100%); animation: sc2-wall 15s ease-in-out infinite alternate; }
.scn-writing-to-hutcheson .desk { position:absolute; bottom:15%; left:10%; width:80%; height:30%; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:6% 6% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: sc2-desk 10s ease-in-out infinite; }
.scn-writing-to-hutcheson .letter { position:absolute; bottom:32%; left:32%; width:25%; height:20%; background:linear-gradient(135deg, #f8f0e0 0%, #e0d0b8 100%); transform:rotate(-5deg); box-shadow: 2px 2px 8px rgba(0,0,0,0.2); animation: sc2-letter 8s ease-in-out infinite; }
.scn-writing-to-hutcheson .inkwell { position:absolute; bottom:30%; left:55%; width:6%; height:8%; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: sc2-inkwell 6s ease-in-out infinite alternate; }
.scn-writing-to-hutcheson .pen { position:absolute; bottom:32%; left:50%; width:8%; height:12%; background:linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform-origin:bottom center; animation: sc2-pen 4s ease-in-out infinite; }
.scn-writing-to-hutcheson .candle { position:absolute; bottom:35%; left:15%; width:5%; height:15%; background:linear-gradient(180deg, #f0d0a0 0%, #c0a080 100%); border-radius:10% 10% 30% 30%; animation: sc2-candle 7s ease-in-out infinite alternate; }
.scn-writing-to-hutcheson .candle::after { content:''; position:absolute; top:-20%; left:50%; width:60%; height:40%; background:radial-gradient(circle, #ffd080 0%, #d09040 70%); border-radius:50%; transform:translateX(-50%); box-shadow: 0 0 16px 6px #d09040; animation: sc2-flame 2s ease-in-out infinite alternate; }
.scn-writing-to-hutcheson .shadow { position:absolute; bottom:10%; left:0; width:100%; height:30%; background:linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); animation: sc2-shadow 12s ease-in-out infinite; }
@keyframes sc2-wall { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sc2-desk { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes sc2-letter { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-4px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes sc2-inkwell { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.05); } 100% { transform:scaleY(1); } }
@keyframes sc2-pen { 0% { transform:rotate(0deg); } 25% { transform:rotate(-10deg); } 50% { transform:rotate(0deg); } 75% { transform:rotate(8deg); } 100% { transform:rotate(0deg); } }
@keyframes sc2-candle { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes sc2-flame { 0% { transform:translateX(-50%) scale(1); opacity:0.8; } 50% { transform:translateX(-50%) scale(1.2); opacity:1; } 100% { transform:translateX(-50%) scale(0.9); opacity:0.7; } }
@keyframes sc2-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-arrangement-with-detective {
  background: 
    linear-gradient(180deg, #e8dcc4 0%, #c8b89c 40%, #a89878 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,220,160,0.4) 0%, transparent 60%);
}
.scn-arrangement-with-detective .floor { position:absolute; bottom:0; left:0; width:100%; height:30%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: sc3-floor 14s ease-in-out infinite alternate; }
.scn-arrangement-with-detective .wall-bg { position:absolute; top:0; left:0; width:100%; height:70%; background:linear-gradient(180deg, #d8c8b0 0%, #b8a898 100%); animation: sc3-wall 12s ease-in-out infinite alternate; }
.scn-arrangement-with-detective .table-center { position:absolute; bottom:20%; left:20%; width:60%; height:20%; background:linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,0.4); animation: sc3-table 8s ease-in-out infinite; }
.scn-arrangement-with-detective .figure-left { position:absolute; bottom:22%; left:10%; width:20%; height:50%; background:linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sc3-figure-left 5s ease-in-out infinite; }
.scn-arrangement-with-detective .figure-right { position:absolute; bottom:22%; right:10%; width:20%; height:50%; background:linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sc3-figure-right 5s ease-in-out infinite; animation-delay: -2.5s; }
.scn-arrangement-with-detective .lamp-overhead { position:absolute; top:10%; left:45%; width:10%; height:15%; background:linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:50% 50% 10% 10%; transform-origin:bottom center; animation: sc3-lamp 3s ease-in-out infinite alternate; }
.scn-arrangement-with-detective .lamp-overhead::after { content:''; position:absolute; top:-30%; left:50%; width:60%; height:50%; background:radial-gradient(circle, #ffd080 0%, #c09040 70%); border-radius:50%; transform:translateX(-50%); box-shadow: 0 0 30px 12px #c09040; animation: sc3-glow 2s ease-in-out infinite alternate; }
.scn-arrangement-with-detective .shadow-pool { position:absolute; bottom:15%; left:15%; width:70%; height:15%; background:radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: sc3-shadow 10s ease-in-out infinite; }
@keyframes sc3-floor { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sc3-wall { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sc3-table { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes sc3-figure-left { 0% { transform:translateX(0) scaleY(1); } 25% { transform:translateX(2px) scaleY(1.03) rotate(2deg); } 50% { transform:translateX(0) scaleY(1); } 75% { transform:translateX(-2px) scaleY(1.03) rotate(-2deg); } 100% { transform:translateX(0) scaleY(1); } }
@keyframes sc3-figure-right { 0% { transform:translateX(0) scaleY(1); } 25% { transform:translateX(-2px) scaleY(1.03) rotate(-2deg); } 50% { transform:translateX(0) scaleY(1); } 75% { transform:translateX(2px) scaleY(1.03) rotate(2deg); } 100% { transform:translateX(0) scaleY(1); } }
@keyframes sc3-lamp { 0% { transform:rotate(-3deg); } 50% { transform:rotate(0deg); } 100% { transform:rotate(3deg); } }
@keyframes sc3-glow { 0% { opacity:0.6; box-shadow:0 0 20px 8px #c09040; } 50% { opacity:1; box-shadow:0 0 40px 16px #e0b060; } 100% { opacity:0.7; box-shadow:0 0 25px 10px #c09040; } }
@keyframes sc3-shadow { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.5; transform:scale(1.1); } 100% { opacity:0.3; transform:scale(1); } }

.scn-detective-agrees {
  background: 
    linear-gradient(180deg, #ebe0d0 0%, #c8b8a0 50%, #a09078 100%),
    radial-gradient(ellipse at 40% 50%, rgba(255,220,170,0.3) 0%, transparent 60%);
}
.scn-detective-agrees .bookshelf { position:absolute; top:0; left:5%; width:90%; height:40%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.4); animation: sc4-shelf 20s ease-in-out infinite alternate; }
.scn-detective-agrees .desk-wide { position:absolute; bottom:10%; left:2%; width:96%; height:40%; background:linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:8% 8% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: sc4-desk 12s ease-in-out infinite; }
.scn-detective-agrees .book-open { position:absolute; bottom:30%; left:20%; width:30%; height:20%; background:linear-gradient(135deg, #f0e8d8 0%, #d0c0a8 100%); border-radius:6% 6% 2% 2%; transform:rotate(-3deg); box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: sc4-book 9s ease-in-out infinite; }
.scn-detective-agrees .hand-writing { position:absolute; bottom:28%; left:50%; width:8%; height:10%; background:linear-gradient(180deg, #c8b8a8 0%, #a09080 100%); border-radius:40% 40% 30% 30%; transform-origin:bottom center; animation: sc4-hand 5s ease-in-out infinite; }
.scn-detective-agrees .shadow-officer { position:absolute; bottom:12%; right:8%; width:25%; height:55%; background:linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sc4-officer 6s ease-in-out infinite; }
.scn-detective-agrees .lamp-desk { position:absolute; bottom:35%; left:55%; width:8%; height:18%; background:linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:30% 30% 10% 10%; transform-origin:bottom center; animation: sc4-lamp 4s ease-in-out infinite alternate; }
.scn-detective-agrees .lamp-desk::after { content:''; position:absolute; top:-20%; left:50%; width:40%; height:40%; background:radial-gradient(circle, #ffd080 0%, #c09040 70%); border-radius:50%; transform:translateX(-50%); box-shadow: 0 0 20px 8px #c09040; animation: sc4-glow 2.5s ease-in-out infinite alternate; }
@keyframes sc4-shelf { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sc4-desk { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes sc4-book { 0% { transform:rotate(-3deg) translateY(0); } 50% { transform:rotate(-1deg) translateY(-2px); } 100% { transform:rotate(-3deg) translateY(0); } }
@keyframes sc4-hand { 0% { transform:rotate(0deg); } 25% { transform:rotate(4deg); } 50% { transform:rotate(0deg); } 75% { transform:rotate(-4deg); } 100% { transform:rotate(0deg); } }
@keyframes sc4-officer { 0% { transform:translateX(0) scaleY(1); } 25% { transform:translateX(1px) scaleY(1.02) rotate(1deg); } 50% { transform:translateX(0) scaleY(1); } 75% { transform:translateX(-1px) scaleY(1.02) rotate(-1deg); } 100% { transform:translateX(0) scaleY(1); } }
@keyframes sc4-lamp { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-1deg); } }
@keyframes sc4-glow { 0% { opacity:0.7; box-shadow:0 0 15px 5px #c09040; } 50% { opacity:1; box-shadow:0 0 30px 12px #e0b060; } 100% { opacity:0.8; box-shadow:0 0 20px 8px #c09040; } }

/* scene: pursuit-decision (tense, dark) */
.scn-pursuit-decision {
  background: linear-gradient(180deg, #0c0c1a 0%, #1a1a2e 40%, #262636 100%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%);
}
.scn-pursuit-decision .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #12122a 0%, #0a0a1a 100%);
  animation: pd-sky 8s ease-in-out infinite alternate;
}
.scn-pursuit-decision .buildings {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e20 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: pd-buildings 12s ease-in-out infinite alternate;
}
.scn-pursuit-decision .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a10 100%);
}
.scn-pursuit-decision .lamp {
  position: absolute; bottom: 32%; left: 30%; width: 8px; height: 18px;
  background: #4a3a2a;
  border-radius: 20% 20% 10% 10%;
}
.scn-pursuit-decision .light-pool {
  position: absolute; bottom: 28%; left: 25%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, #b08050 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: pd-glow 3s ease-in-out infinite alternate;
}
.scn-pursuit-decision .figure1 {
  position: absolute; bottom: 30%; left: 50%; width: 14px; 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: pd-run1 2s ease-in-out infinite;
}
.scn-pursuit-decision .figure2 {
  position: absolute; bottom: 31%; left: 60%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #20203a 0%, #12122a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pd-run2 2.3s ease-in-out infinite;
}
.scn-pursuit-decision .window {
  position: absolute; bottom: 42%; left: 70%; width: 12px; height: 16px;
  background: radial-gradient(circle, #f0c068 0%, #b08040 70%);
  border-radius: 10%;
  box-shadow: 0 0 12px 4px #c08040;
  animation: pd-window 4s ease-in-out infinite alternate;
}
@keyframes pd-sky { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 0.9; } 100% { opacity: 0.6; transform: scale(1.02); } }
@keyframes pd-buildings { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes pd-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes pd-run1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(8px) translateY(0) rotate(-2deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(16px) translateY(0) rotate(0); } }
@keyframes pd-run2 { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(-3px) translateY(-1px) rotate(1deg); } 60% { transform: translateX(-6px) translateY(0) rotate(-1deg); } 100% { transform: translateX(-9px) translateY(0) rotate(0); } }
@keyframes pd-window { 0% { box-shadow: 0 0 8px 2px #b08040; opacity: 0.8; } 50% { box-shadow: 0 0 18px 6px #f0c068; opacity: 1; } 100% { box-shadow: 0 0 10px 3px #b08040; opacity: 0.9; } }

/* scene: ascending-bank-after-fugitives (tense, dark) */
.scn-ascending-bank-after-fugitives {
  background: linear-gradient(180deg, #0a0a18 0%, #14142a 50%, #1e1e32 100%), radial-gradient(ellipse at 50% 0%, #1e1e32 0%, transparent 60%);
}
.scn-ascending-bank-after-fugitives .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0e0e22 0%, #060610 100%);
  animation: ab-sky 15s ease-in-out infinite alternate;
}
.scn-ascending-bank-after-fugitives .trees-back {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0f1a0f 0%, #050a05 100%);
  border-radius: 60% 40% 0 0 / 80% 50% 0 0;
  animation: ab-trees-b 20s ease-in-out infinite alternate;
}
.scn-ascending-bank-after-fugitives .bank {
  position: absolute; bottom: 20%; left: 10%; right: 30%; height: 25%;
  background: linear-gradient(160deg, #1a1a0a 0%, #0e0e05 100%);
  border-radius: 20% 40% 0 0 / 60% 80% 0 0;
  transform: skewX(-5deg);
  animation: ab-bank 14s ease-in-out infinite alternate;
}
.scn-ascending-bank-after-fugitives .path {
  position: absolute; bottom: 20%; left: 40%; right: 20%; height: 4%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-ascending-bank-after-fugitives .bush {
  position: absolute; bottom: 25%; left: 15%; width: 20px; height: 18px;
  background: #1a2a0a;
  border-radius: 50% 50% 40% 40%;
  filter: blur(3px);
  animation: ab-bush 8s ease-in-out infinite;
}
.scn-ascending-bank-after-fugitives .figure1 {
  position: absolute; bottom: 22%; left: 45%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ab-climb1 3s ease-in-out infinite;
}
.scn-ascending-bank-after-fugitives .figure2 {
  position: absolute; bottom: 24%; left: 55%; width: 12px; height: 26px;
  background: linear-gradient(180deg, #24243a 0%, #12122a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ab-climb2 3.5s ease-in-out infinite;
}
@keyframes ab-sky { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.8; } 100% { opacity: 0.5; transform: scaleY(1.03); } }
@keyframes ab-trees-b { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes ab-bank { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-7deg) translateY(-2px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes ab-bush { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes ab-climb1 { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 33% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 66% { transform: translateX(10px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(15px) translateY(0) rotate(0deg); } }
@keyframes ab-climb2 { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 33% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 66% { transform: translateX(-6px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-9px) translateY(0) rotate(0deg); } }

/* scene: night-forest-hunt (tense, dark) */
.scn-night-forest-hunt {
  background: linear-gradient(180deg, #030308 0%, #08081a 60%, #0a0a14 100%), radial-gradient(ellipse at 50% 100%, #0a0a14 0%, transparent 70%);
}
.scn-night-forest-hunt .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #050510 0%, #010105 100%);
  animation: nf-sky 10s ease-in-out infinite alternate;
}
.scn-night-forest-hunt .trees-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #0a140a 0%, #030803 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  filter: blur(4px);
  animation: nf-trees-b 18s ease-in-out infinite alternate;
}
.scn-night-forest-hunt .trees-front {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0f1a0f 0%, #050a05 100%);
  border-radius: 40% 60% 0 0 / 60% 70% 0 0;
  clip-path: polygon(0 100%, 10% 20%, 20% 100%, 35% 10%, 50% 100%, 65% 15%, 80% 100%, 95% 25%, 100% 100%);
  animation: nf-trees-f 12s ease-in-out infinite alternate;
}
.scn-night-forest-hunt .forest-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #0a0a05 0%, #050502 100%);
}
.scn-night-forest-hunt .figure-hunter {
  position: absolute; bottom: 16%; left: 35%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nf-hunt 4s ease-in-out infinite;
}
.scn-night-forest-hunt .night-bird {
  position: absolute; bottom: 50%; left: 60%; width: 8px; height: 6px;
  background: #0e0e1a;
  border-radius: 50%;
  filter: blur(1px);
  animation: nf-bird 5s ease-in-out infinite;
}
.scn-night-forest-hunt .falling-leaf {
  position: absolute; top: 20%; left: 25%; width: 4px; height: 4px;
  background: #1a1a0a;
  border-radius: 50%;
  filter: blur(2px);
  animation: nf-leaf 8s linear infinite;
}
@keyframes nf-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes nf-trees-b { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.03); } 100% { transform: translateY(2px) scaleX(0.97); } }
@keyframes nf-trees-f { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes nf-hunt { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(4px) translateY(-1px) rotate(3deg); } 66% { transform: translateX(8px) translateY(0) rotate(-2deg); } 100% { transform: translateX(12px) translateY(1px) rotate(0deg); } }
@keyframes nf-bird { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-10px,-5px) rotate(-10deg); } 50% { transform: translate(-20px,-10px) rotate(10deg); } 75% { transform: translate(-30px,-5px) rotate(-5deg); } 100% { transform: translate(-40px,0) rotate(0deg); } }
@keyframes nf-leaf { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(15vh) rotate(180deg) scale(0.8); } 100% { transform: translateY(30vh) rotate(360deg) scale(0.5); } }

/* scene: emerging-onto-moor (tense, starlit) */
.scn-emerging-onto-moor {
  background: linear-gradient(180deg, #06061a 0%, #0a0a2e 50%, #12123a 100%), radial-gradient(ellipse at 50% 100%, #12123a 0%, transparent 60%);
}
.scn-emerging-onto-moor .sky-starry {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(circle at 30% 20%, #ffffff 1px, transparent 1px),
              radial-gradient(circle at 60% 40%, #ffffff 1px, transparent 1px),
              radial-gradient(circle at 80% 10%, #ffffff 0.5px, transparent 0.5px),
              radial-gradient(circle at 10% 50%, #ffffff 0.8px, transparent 0.8px),
              radial-gradient(circle at 90% 60%, #ffffff 0.5px, transparent 0.5px);
  filter: blur(0.5px);
  animation: em-stars 30s linear infinite;
}
.scn-emerging-onto-moor .moon-crescent {
  position: absolute; top: 10%; right: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle at 60% 40%, #d0d0e8 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,200,230,0.3);
  animation: em-moon 12s ease-in-out infinite alternate;
}
.scn-emerging-onto-moor .moor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: em-moor 15s ease-in-out infinite alternate;
}
.scn-emerging-onto-moor .path {
  position: absolute; bottom: 20%; left: 45%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: em-path 10s ease-in-out infinite alternate;
}
.scn-emerging-onto-moor .figure1 {
  position: absolute; bottom: 18%; left: 40%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #16162a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: em-walk1 3.5s ease-in-out infinite;
}
.scn-emerging-onto-moor .figure2 {
  position: absolute; bottom: 20%; left: 50%; width: 12px; height: 26px;
  background: linear-gradient(180deg, #1e1e32 0%, #0e0e22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: em-walk2 4s ease-in-out infinite;
}
.scn-emerging-onto-moor .coat-tail {
  position: absolute; bottom: 18%; left: 53%; width: 6px; height: 10px;
  background: #0a0a1a;
  border-radius: 0 0 40% 40%;
  transform-origin: top center;
  animation: em-coat 3s ease-in-out infinite alternate;
}
@keyframes em-stars {
  0% { background-position: 0 0, 0 0, 0 0, 0 0, 0 0; }
  100% { background-position: 100vw 0, -50vw 0, 200vw 0, -100vw 0, 150vw 0; }
}
@keyframes em-moon { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes em-moor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes em-path { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.05); } 100% { opacity: 0.4; transform: scaleY(0.95); } }
@keyframes em-walk1 { 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(0deg); } }
@keyframes em-walk2 { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 30% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 60% { transform: translateX(-6px) translateY(0) rotate(1deg); } 100% { transform: translateX(-9px) translateY(0) rotate(0deg); } }
@keyframes em-coat { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(0deg); } }

.scn-fishermen-unrewarded {
  background: linear-gradient(180deg, #f4e3c0 0%, #c2a880 50%, #8b6f50 100%), radial-gradient(ellipse at 20% 60%, #f4e3c0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-fishermen-unrewarded .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #b8a080 0%, #8b7050 100%);
  animation: fu-breathe 6s ease-in-out infinite alternate;
}
.scn-fishermen-unrewarded .window {
  position: absolute; top: 10%; left: 60%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #d4c8a0 0%, #f0e0c0 50%, #fff8e0 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px #fff8e0;
  animation: fu-window 4s ease-in-out infinite alternate;
}
.scn-fishermen-unrewarded .table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
}
.scn-fishermen-unrewarded .fisherman-left {
  position: absolute; bottom: 27%; left: 25%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fu-fisherman-left 5s ease-in-out infinite;
}
.scn-fishermen-unrewarded .fisherman-right {
  position: absolute; bottom: 27%; right: 25%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fu-fisherman-right 5s ease-in-out infinite 0.5s;
}
.scn-fishermen-unrewarded .lamp {
  position: absolute; top: 15%; left: 30%; width: 8%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, #b07030 70%, #5a3010 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 40px 15px #ffc060;
  animation: fu-lamp 3s ease-in-out infinite alternate;
}
.scn-fishermen-unrewarded .shadow {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: fu-shadow 6s ease-in-out infinite alternate;
}
@keyframes fu-breathe { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes fu-window { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.02); } 100% { opacity: 0.6; transform: scaleX(0.98); } }
@keyframes fu-fisherman-left { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fu-fisherman-right { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-4px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fu-lamp { 0% { box-shadow: 0 0 30px 10px #ffc060; } 50% { box-shadow: 0 0 50px 20px #ffd080; } 100% { box-shadow: 0 0 35px 12px #ffb040; } }
@keyframes fu-shadow { 0% { transform: translateX(-5px); opacity: 0.3; } 50% { transform: translateX(5px); opacity: 0.5; } 100% { transform: translateX(0); opacity: 0.4; } }

.scn-clever-escape {
  background: linear-gradient(180deg, #d4b890 0%, #a08060 50%, #705040 100%), radial-gradient(ellipse at 80% 30%, #d4b890 0%, transparent 50%);
}
.scn-clever-escape .study-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #8a7050 0%, #5a4030 100%);
  animation: ce-bg 8s ease-in-out infinite alternate;
}
.scn-clever-escape .desk {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 6px; box-shadow: 0 8px 15px rgba(0,0,0,0.5);
}
.scn-clever-escape .lamp-glow {
  position: absolute; top: 20%; left: 35%; width: 15%; height: 20%;
  background: radial-gradient(circle, #ffe080 0%, #c09040 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 60px 30px #ffd060;
  animation: ce-lamp 4s ease-in-out infinite alternate;
}
.scn-clever-escape .figure-hornby {
  position: absolute; bottom: 30%; left: 20%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-hornby 3s ease-in-out infinite;
}
.scn-clever-escape .shadow-watcher {
  position: absolute; bottom: 30%; right: 25%; width: 8%; height: 30%;
  background: rgba(0,0,0,0.4);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: ce-shadow 5s ease-in-out infinite alternate;
}
.scn-clever-escape .door {
  position: absolute; top: 5%; right: 5%; width: 15%; height: 60%;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a2a1a 50%, #5a3a2a 100%);
  border-radius: 4px 0 0 4px; box-shadow: -4px 0 10px rgba(0,0,0,0.3);
  animation: ce-door 7s ease-in-out infinite;
}
.scn-clever-escape .paper {
  position: absolute; bottom: 28%; left: 40%; width: 12%; height: 8%;
  background: #f5edc0; border-radius: 2px; box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
  animation: ce-paper 6s ease-in-out infinite alternate;
}
@keyframes ce-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes ce-lamp { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes ce-hornby { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ce-shadow { 0% { opacity: 0.2; transform: translateY(0); } 50% { opacity: 0.5; transform: translateY(-5px); } 100% { opacity: 0.3; transform: translateY(0); } }
@keyframes ce-door { 0% { transform: rotateY(0deg); } 25% { transform: rotateY(-5deg); } 50% { transform: rotateY(0deg); } 75% { transform: rotateY(5deg); } 100% { transform: rotateY(0deg); } }
@keyframes ce-paper { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(2px); } }

.scn-hutcheson-arrival {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-hutcheson-arrival .room-dim {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  animation: ha-room 10s ease-in-out infinite alternate;
}
.scn-hutcheson-arrival .candle {
  position: absolute; top: 20%; left: 48%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 40%, #8a5a20 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 0 30px 8px #ffb040;
  animation: ha-candle 3s ease-in-out infinite alternate;
}
.scn-hutcheson-arrival .hutcheson {
  position: absolute; bottom: 20%; left: 15%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-hutcheson 4s ease-in-out infinite;
}
.scn-hutcheson-arrival .bag {
  position: absolute; bottom: 25%; left: 22%; width: 8%; height: 10%;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 10% 30% 10% 30%; box-shadow: 2px 4px 8px rgba(0,0,0,0.4);
  animation: ha-bag 2s ease-in-out infinite alternate;
}
.scn-hutcheson-arrival .narrator {
  position: absolute; bottom: 20%; right: 20%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-narrator 5s ease-in-out infinite 0.5s;
}
.scn-hutcheson-arrival .table-small {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-hutcheson-arrival .sparkle {
  position: absolute; top: 25%; left: 42%; width: 2%; height: 2%;
  background: #ffd080; border-radius: 50%; box-shadow: 0 0 10px 2px #ffd080;
  animation: ha-sparkle 1.5s ease-in-out infinite;
}
@keyframes ha-room { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes ha-candle { 0% { transform: scaleY(0.95) rotate(-1deg); box-shadow: 0 0 20px 5px #ffb040; } 50% { transform: scaleY(1.05) rotate(1deg); box-shadow: 0 0 35px 10px #ffc060; } 100% { transform: scaleY(1) rotate(0); box-shadow: 0 0 25px 8px #ffa030; } }
@keyframes ha-hutcheson { 0% { transform: translateX(0) rotate(-2deg); } 20% { transform: translateX(5px) rotate(1deg); } 40% { transform: translateX(0) rotate(-1deg); } 60% { transform: translateX(-5px) rotate(2deg); } 80% { transform: translateX(0) rotate(0); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ha-bag { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes ha-narrator { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ha-sparkle { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.5); } }

.scn-hutcheson-theory {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 70% 40%, #4a3a2a 0%, transparent 60%);
}
.scn-hutcheson-theory .study-calm {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0a 0%, #1a0a00 100%);
  animation: ht-bg 12s ease-in-out infinite alternate;
}
.scn-hutcheson-theory .desk-wood {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-hutcheson-theory .lamp-soft {
  position: absolute; top: 15%; left: 45%; width: 10%; height: 15%;
  background: radial-gradient(circle, #ffd080 0%, #a07030 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 20px #c09040;
  animation: ht-lamp 6s ease-in-out infinite alternate;
}
.scn-hutcheson-theory .books {
  position: absolute; bottom: 26%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(90deg, #6a4a2a 0%, #4a2a1a 25%, #5a3a1a 50%, #3a1a0a 75%, #6a4a2a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ht-books 15s ease-in-out infinite alternate;
}
.scn-hutcheson-theory .figure-seated {
  position: absolute; bottom: 26%; left: 15%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ht-figure 8s ease-in-out infinite;
}
.scn-hutcheson-theory .window-night {
  position: absolute; top: 5%; right: 8%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px #1a1a3a, 0 0 5px rgba(0,0,0,0.5);
  animation: ht-window 20s ease-in-out infinite alternate;
}
.scn-hutcheson-theory .curtain {
  position: absolute; top: 5%; right: 6%; width: 4%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 2px; box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  animation: ht-curtain 6s ease-in-out infinite alternate;
}
@keyframes ht-bg { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.85; } }
@keyframes ht-lamp { 0% { transform: scale(0.95); opacity: 0.7; box-shadow: 0 0 30px 15px #c09040; } 50% { transform: scale(1.05); opacity: 0.9; box-shadow: 0 0 50px 25px #d0a050; } 100% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 40px 20px #c09040; } }
@keyframes ht-books { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ht-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ht-window { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes ht-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }

.scn-petersburg-arrival {
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 40%, #1a120c 100%),
              radial-gradient(ellipse at 30% 60%, #d4b896 0%, transparent 60%);
}
.scn-petersburg-arrival .train {
  position: absolute; bottom: 8%; left: -10%; width: 55%; height: 38%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a120c 50%, #0a0806 100%);
  border-radius: 20% 40% 10% 10% / 60% 30% 40% 40%;
  box-shadow: inset -10px -5px 20px rgba(0,0,0,0.6);
  animation: pa-train 10s ease-in-out infinite;
}
.scn-petersburg-arrival .arch {
  position: absolute; top: 0; left: 15%; width: 70%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #6a5a4a 0%, #3a2a1e 70%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.4);
  animation: pa-arch 15s ease-in-out infinite alternate;
}
.scn-petersburg-arrival .platform {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
  animation: pa-platform 8s ease-in-out infinite;
}
.scn-petersburg-arrival .figure1 {
  position: absolute; bottom: 10%; left: 50%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a120c 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: pa-figure 5s ease-in-out infinite alternate;
}
.scn-petersburg-arrival .bag {
  position: absolute; bottom: 6%; left: 48%; width: 22px; height: 14px;
  background: #3a2a1a;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: pa-bag 5s ease-in-out infinite alternate;
}
.scn-petersburg-arrival .light-shaft {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(212,184,150,0.15) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: pa-light 3s ease-in-out infinite alternate;
}
.scn-petersburg-arrival .neva-gleam {
  position: absolute; bottom: 35%; right: 5%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #b8a88a 0%, #6a5a4a 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: pa-gleam 4s ease-in-out infinite alternate;
}
@keyframes pa-train {
  0% { transform: translateX(-5%) scale(1); }
  50% { transform: translateX(3%) scale(0.98); }
  100% { transform: translateX(-5%) scale(1); }
}
@keyframes pa-arch {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.95; transform: scaleY(1); }
}
@keyframes pa-platform {
  0% { background-position: 0% 0%; }
  50% { background-position: 10% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes pa-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-48%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes pa-bag {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}
@keyframes pa-light {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pa-gleam {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

.scn-petersburg-hotel-europe {
  background: linear-gradient(180deg, #3a2a1e 0%, #1a120c 50%, #0a0806 100%),
              radial-gradient(ellipse at 50% 40%, #d4b896 0%, transparent 70%);
}
.scn-petersburg-hotel-europe .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2e 0%, #2a1e14 100%);
  animation: he-wall 12s ease-in-out infinite alternate;
}
.scn-petersburg-hotel-europe .window {
  position: absolute; top: 10%; left: 15%; width: 55%; height: 55%;
  background: linear-gradient(180deg, #6a8a9e 0%, #8aaabe 40%, #b8c8d4 100%);
  border: 6px solid #2a1e14;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: he-window 8s ease-in-out infinite alternate;
}
.scn-petersburg-hotel-europe .curtain-left {
  position: absolute; top: 8%; left: 13%; width: 18%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #8a7a6a 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  animation: he-curtain 6s ease-in-out infinite alternate;
}
.scn-petersburg-hotel-europe .curtain-right {
  position: absolute; top: 8%; right: 13%; width: 18%; height: 60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #8a7a6a 100%);
  border-radius: 40% 0 0 40% / 60% 0 0 60%;
  animation: he-curtain 6s ease-in-out infinite alternate;
  animation-delay: 3s;
}
.scn-petersburg-hotel-europe .figure-watch {
  position: absolute; bottom: 12%; left: 40%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a120c 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: he-figure 4s ease-in-out infinite alternate;
}
.scn-petersburg-hotel-europe .street-lamp {
  position: absolute; bottom: 30%; left: 25%; width: 6px; height: 30px;
  background: #2a1e14;
  box-shadow: 0 0 20px 8px rgba(212,184,150,0.6);
  border-radius: 2px;
  animation: he-lamp 5s ease-in-out infinite alternate;
}
.scn-petersburg-hotel-europe .desk {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 6px rgba(0,0,0,0.5);
  animation: he-desk 7s ease-in-out infinite;
}
@keyframes he-wall {
  0% { background-position: 0 0; }
  50% { background-position: 5% 0; }
  100% { background-position: 0 0; }
}
@keyframes he-window {
  0% { opacity: 0.85; background-position: 0 0; }
  50% { opacity: 1; background-position: 2% 2%; }
  100% { opacity: 0.9; background-position: 0 0; }
}
@keyframes he-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
@keyframes he-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-48%) translateY(-3px) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes he-lamp {
  0% { opacity: 0.7; box-shadow: 0 0 15px 5px rgba(212,184,150,0.5); }
  50% { opacity: 1; box-shadow: 0 0 25px 10px rgba(212,184,150,0.8); }
  100% { opacity: 0.75; box-shadow: 0 0 15px 5px rgba(212,184,150,0.5); }
}
@keyframes he-desk {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}

.scn-petersburg-spy-watch {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120c 60%, #0a0806 100%),
              radial-gradient(ellipse at 50% 30%, #d4b896 0%, transparent 60%);
}
.scn-petersburg-spy-watch .window-frame {
  position: absolute; inset: 5% 10% 15% 10%;
  border: 8px solid #4a3a2e;
  border-radius: 6px;
  background: linear-gradient(180deg, #4a6a7a 0%, #6a8a9a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: sw-frame 10s ease-in-out infinite alternate;
}
.scn-petersburg-spy-watch .figure-silhouette {
  position: absolute; bottom: 12%; left: 40%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #0a0806 0%, #1a120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sw-fig 4s ease-in-out infinite alternate;
}
.scn-petersburg-spy-watch .spy-street {
  position: absolute; bottom: 10%; left: 60%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: sw-spy 6s ease-in-out infinite alternate;
}
.scn-petersburg-spy-watch .lamp-glow {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(212,184,150,0.8) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: sw-glow 4s ease-in-out infinite alternate;
}
.scn-petersburg-spy-watch .railings {
  position: absolute; bottom: 8%; left: 0; right: 0; height: 6%;
  background: repeating-linear-gradient(90deg, #1a120c 0px, #1a120c 8px, transparent 8px, transparent 16px);
  animation: sw-rail 12s linear infinite;
}
.scn-petersburg-spy-watch .pavement {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 100%);
  animation: sw-pave 8s ease-in-out infinite alternate;
}
.scn-petersburg-spy-watch .shadow-bar {
  position: absolute; top: 0; left: 30%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: sw-shadow 5s ease-in-out infinite alternate;
}
@keyframes sw-frame {
  0% { border-color: #4a3a2e; }
  50% { border-color: #5a4a3a; }
  100% { border-color: #4a3a2e; }
}
@keyframes sw-fig {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-48%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes sw-spy {
  0% { transform: translateX(-50%) translateX(0); }
  50% { transform: translateX(-48%) translateY(1px); }
  100% { transform: translateX(-50%) translateX(0); }
}
@keyframes sw-glow {
  0% { opacity: 0.5; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes sw-rail {
  0% { background-position: 0 0; }
  100% { background-position: -16px 0; }
}
@keyframes sw-pave {
  0% { background-position: 0 0; }
  50% { background-position: 2% 0; }
  100% { background-position: 0 0; }
}
@keyframes sw-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

.scn-petersburg-bribe-waiter {
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 60%, #1a120c 100%),
              radial-gradient(ellipse at 50% 20%, #d4b896 0%, transparent 70%);
}
.scn-petersburg-bribe-waiter .tablecloth {
  position: absolute; bottom: 2%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 50%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  animation: bw-table 10s ease-in-out infinite alternate;
}
.scn-petersburg-bribe-waiter .plate {
  position: absolute; bottom: 12%; left: 40%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #b8a88a 0%, #6a5a4a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: bw-plate 6s ease-in-out infinite alternate;
}
.scn-petersburg-bribe-waiter .waiter-torso {
  position: absolute; bottom: 15%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: bw-waiter 5s ease-in-out infinite alternate;
}
.scn-petersburg-bribe-waiter .waiter-hand {
  position: absolute; bottom: 25%; left: 68%; width: 14px; height: 10px;
  background: #3a2a1e;
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-20deg);
  animation: bw-hand-w 4s ease-in-out infinite alternate;
}
.scn-petersburg-bribe-waiter .hand-bribe {
  position: absolute; bottom: 22%; left: 45%; width: 14px; height: 10px;
  background: #2a1e14;
  border-radius: 30% 30% 20% 20%;
  transform: rotate(10deg);
  animation: bw-hand-b 4s ease-in-out infinite alternate;
}
.scn-petersburg-bribe-waiter .coin {
  position: absolute; bottom: 24%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d4b896 0%, #8a7a6a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(212,184,150,0.5);
  animation: bw-coin 3s ease-in-out infinite alternate;
}
.scn-petersburg-bribe-waiter .chandelier {
  position: absolute; top: 2%; left: 30%; width: 40%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, #b8a88a 0%, transparent 70%);
  /* simplified chandelier shape */
  clip-path: polygon(40% 0%, 60% 0%, 70% 40%, 80% 50%, 60% 60%, 50% 100%, 40% 60%, 20% 50%, 30% 40%);
  background-color: #4a3a2e;
  animation: bw-chandelier 8s ease-in-out infinite alternate;
}
.scn-petersburg-bribe-waiter .wall-panel {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2e 30%, #6a5a4a 50%, #4a3a2e 70%, #5a4a3a 100%);
  opacity: 0.3;
  animation: bw-panel 12s ease-in-out infinite alternate;
}
@keyframes bw-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes bw-plate {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bw-waiter {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-48%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes bw-hand-w {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-15deg) translateX(2px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes bw-hand-b {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(-2px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes bw-coin {
  0% { transform: scale(1) translateX(0); opacity: 0.8; }
  50% { transform: scale(1.1) translateX(1px); opacity: 1; }
  100% { transform: scale(1) translateX(0); opacity: 0.9; }
}
@keyframes bw-chandelier {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes bw-panel {
  0% { background-position: 0 0; }
  50% { background-position: 10% 0; }
  100% { background-position: 0 0; }
}

.scn-captain-mackintosh-report {
  background: linear-gradient(180deg, #cfc2a4 0%, #a8926e 40%, #79634a 100%), radial-gradient(circle at 50% 70%, rgba(200,180,150,.3) 0%, transparent 70%);
}
.scn-captain-mackintosh-report .cmr-wall { position:absolute; inset:0; background: linear-gradient(90deg, #9d8a6f 0%, #b5a282 40%, #9d8a6f 100%); }
.scn-captain-mackintosh-report .cmr-window { position:absolute; top:8%; left:55%; width:30%; height:45%; background: linear-gradient(180deg, #5f7a8c 0%, #3a4f5e 50%, #2b3a45 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(20,30,40,.6); animation: cmr-sea 12s ease-in-out infinite alternate; }
.scn-captain-mackintosh-report .cmr-desk { position:absolute; bottom:10%; left:20%; width:60%; height:28%; background: linear-gradient(180deg, #6a4d36 0%, #4d3524 100%); border-radius:8% 8% 4% 4% / 40% 40% 20% 20%; box-shadow: 0 -10px 20px rgba(0,0,0,.3); }
.scn-captain-mackintosh-report .cmr-captain { position:absolute; bottom:28%; left:40%; width:12%; height:35%; background: linear-gradient(180deg, #2c241a 0%, #1a140e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cmr-breathe 4s ease-in-out infinite; }
.scn-captain-mackintosh-report .cmr-scar { position:absolute; bottom:44%; left:45%; width:8%; height:1.5%; background: #8a6b4a; border-radius:50%; transform: rotate(-15deg); opacity:0.7; animation: cmr-scar 6s ease-in-out infinite; }
.scn-captain-mackintosh-report .cmr-report { position:absolute; bottom:22%; left:35%; width:15%; height:10%; background: linear-gradient(180deg, #f5edd6 0%, #d9cfb4 100%); border-radius:4% 4% 2% 2%; transform: rotate(2deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: cmr-paper 8s ease-in-out infinite; }
.scn-captain-mackintosh-report .cmr-lamp { position:absolute; top:12%; left:20%; width:4%; height:8%; background: radial-gradient(circle at 50% 20%, #ffeb9e 0%, #d4a84a 60%, #8a6d2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,235,158,.5); animation: cmr-lamp 3s ease-in-out infinite alternate; }
.scn-captain-mackintosh-report .cmr-shadow { position:absolute; bottom:0; left:0; width:100%; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.2) 100%); pointer-events:none; animation: cmr-shadow 5s ease-in-out infinite alternate; }

@keyframes cmr-sea  { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes cmr-breathe  { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cmr-scar  { 0%,100% { opacity:.5 } 50% { opacity:.9 } }
@keyframes cmr-paper  { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes cmr-lamp  { 0% { box-shadow: 0 0 20px 5px rgba(255,235,158,.4); } 50% { box-shadow: 0 0 40px 15px rgba(255,235,158,.6); } 100% { box-shadow: 0 0 25px 8px rgba(255,235,158,.5); } }
@keyframes cmr-shadow  { 0% { opacity:1 } 50% { opacity:.7 } 100% { opacity:.9 } }

.scn-captain-lame-excuse {
  background: linear-gradient(180deg, #cfc2a4 0%, #a8926e 40%, #79634a 100%), radial-gradient(circle at 30% 50%, rgba(220,200,170,.2) 0%, transparent 70%);
}
.scn-captain-lame-excuse .cle-wall { position:absolute; inset:0; background: linear-gradient(90deg, #9d8a6f 0%, #b5a282 40%, #9d8a6f 100%); }
.scn-captain-lame-excuse .cle-window { position:absolute; top:8%; right:10%; width:25%; height:40%; background: linear-gradient(180deg, #6f8a9d 0%, #4a5f6e 100%); border-radius:4px; box-shadow: inset 0 0 15px rgba(20,30,40,.5); animation: cle-sea 10s ease-in-out infinite alternate; }
.scn-captain-lame-excuse .cle-desk { position:absolute; bottom:10%; left:15%; width:55%; height:30%; background: linear-gradient(180deg, #6a4d36 0%, #4d3524 100%); border-radius:8% 8% 4% 4% / 40% 40% 20% 20%; box-shadow: 0 -10px 20px rgba(0,0,0,.3); }
.scn-captain-lame-excuse .cle-captain { position:absolute; bottom:30%; left:45%; width:14%; height:38%; background: linear-gradient(180deg, #2c241a 0%, #1a140e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cle-breathe 4s ease-in-out infinite; }
.scn-captain-lame-excuse .cle-map { position:absolute; bottom:22%; left:25%; width:22%; height:14%; background: linear-gradient(135deg, #e6dcc8 0%, #c8bca5 50%, #e6dcc8 100%); border-radius:2%; transform: rotate(-3deg); box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: cle-map 7s ease-in-out infinite; }
.scn-captain-lame-excuse .cle-shoal { position:absolute; bottom:25%; left:32%; width:6%; height:4%; background: radial-gradient(circle, #5f4a3a 0%, transparent 70%); border-radius:50%; animation: cle-shoal 8s ease-in-out infinite alternate; }
.scn-captain-lame-excuse .cle-spyglass { position:absolute; bottom:28%; left:20%; width:2%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 40% 40%; transform: rotate(-15deg); transform-origin: bottom center; animation: cle-spyglass 6s ease-in-out infinite; }

@keyframes cle-sea  { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cle-breathe  { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cle-map  { 0% { transform: rotate(-3deg) } 50% { transform: rotate(-1deg) scale(1.01) } 100% { transform: rotate(-3deg) } }
@keyframes cle-shoal  { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.5; transform: scale(1) } }
@keyframes cle-spyglass  { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-15deg) } }

.scn-suspicion-mounts {
  background: linear-gradient(180deg, #c4b8a0 0%, #a8926e 40%, #79634a 100%), radial-gradient(circle at 60% 30%, rgba(180,160,130,.2) 0%, transparent 70%);
}
.scn-suspicion-mounts .sm-wall { position:absolute; inset:0; background: linear-gradient(90deg, #9d8a6f 0%, #b5a282 40%, #9d8a6f 100%); }
.scn-suspicion-mounts .sm-clock { position:absolute; top:10%; left:10%; width:12%; height:15%; background: radial-gradient(circle, #e6dcc8 0%, #b5a282 80%); border-radius:50%; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: sm-clock 2s ease-in-out infinite alternate; }
.scn-suspicion-mounts .sm-pendulum { position:absolute; top:22%; left:16%; width:0.5%; height:12%; background: #4a3a2a; transform-origin: top center; animation: sm-pendulum 1.5s ease-in-out infinite; }
.scn-suspicion-mounts .sm-desk { position:absolute; bottom:12%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #6a4d36 0%, #4d3524 100%); border-radius:8% 8% 4% 4% / 40% 40% 20% 20%; box-shadow: 0 -10px 20px rgba(0,0,0,.3); }
.scn-suspicion-mounts .sm-captain { position:absolute; bottom:28%; left:45%; width:10%; height:30%; background: linear-gradient(180deg, #2c241a 0%, #1a140e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sm-breathe 4s ease-in-out infinite; }
.scn-suspicion-mounts .sm-hand { position:absolute; bottom:32%; left:48%; width:2%; height:8%; background: #3a2a1a; border-radius:50% 50% 40% 40% / 30% 30% 70% 70%; transform: rotate(30deg); transform-origin: 50% 100%; animation: sm-hand 5s ease-in-out infinite; }
.scn-suspicion-mounts .sm-lamp { position:absolute; top:15%; right:20%; width:3%; height:7%; background: radial-gradient(circle at 50% 20%, #ffeb9e 0%, #d4a84a 60%, #8a6d2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 25px 8px rgba(255,235,158,.5); animation: sm-lamp 3s ease-in-out infinite alternate; }
.scn-suspicion-mounts .sm-shadow { position:absolute; bottom:0; left:20%; width:60%; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.25) 100%); pointer-events:none; animation: sm-shadow 6s ease-in-out infinite alternate; }

@keyframes sm-clock  { 0% { filter: brightness(1) } 50% { filter: brightness(1.1) } 100% { filter: brightness(0.95) } }
@keyframes sm-pendulum  { 0% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }
@keyframes sm-breathe  { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sm-hand  { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-1px) } 100% { transform: rotate(30deg) translateY(0) } }
@keyframes sm-lamp  { 0% { box-shadow: 0 0 20px 5px rgba(255,235,158,.4); } 50% { box-shadow: 0 0 35px 12px rgba(255,235,158,.6); } 100% { box-shadow: 0 0 25px 8px rgba(255,235,158,.5); } }
@keyframes sm-shadow  { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }

.scn-questioning-captains-past {
  background: linear-gradient(180deg, #d1c4ac 0%, #a8926e 40%, #79634a 100%), radial-gradient(circle at 40% 50%, rgba(210,190,160,.2) 0%, transparent 70%);
}
.scn-questioning-captains-past .qcp-wall { position:absolute; inset:0; background: linear-gradient(90deg, #a08d72 0%, #b8a585 40%, #a08d72 100%); }
.scn-questioning-captains-past .qcp-frames { position:absolute; top:8%; left:5%; width:90%; height:40%; display:flex; flex-direction:row; justify-content:space-around; align-items:flex-start; }
.scn-questioning-captains-past .qcp-frames { /* override for actual shapes: use multiple divs? easier to use pseudo but can't. we'll use one container? we can't have sub-flex, but we can place three rectangles manually */ }
/* Actually, let's define separate frame divs manually to keep structure flat. We'll change approach: use three frame children, but we already have fixed number. We'll just use one frame container div with gradient borders representing frames. */
.scn-questioning-captains-past .qcp-frames { position:absolute; top:8%; left:5%; width:90%; height:30%; background: repeating-linear-gradient(90deg, #b5a282 0px, #b5a282 2px, transparent 2px, transparent 30%), repeating-linear-gradient(180deg, #b5a282 0px, #b5a282 2px, transparent 2px, transparent 100%); border-radius:2px; animation: qcp-frames 8s ease-in-out infinite alternate; }
.scn-questioning-captains-past .qcp-desk { position:absolute; bottom:10%; left:15%; width:55%; height:28%; background: linear-gradient(180deg, #6a4d36 0%, #4d3524 100%); border-radius:8% 8% 4% 4% / 40% 40% 20% 20%; box-shadow: 0 -10px 20px rgba(0,0,0,.3); }
.scn-questioning-captains-past .qcp-captain { position:absolute; bottom:28%; left:50%; width:12%; height:35%; background: linear-gradient(180deg, #2c241a 0%, #1a140e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qcp-breathe 4s ease-in-out infinite; }
.scn-questioning-captains-past .qcp-books { position:absolute; bottom:20%; left:8%; width:15%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 2% 2% / 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: qcp-books 10s ease-in-out infinite; }
.scn-questioning-captains-past .qcp-decanter { position:absolute; bottom:22%; right:10%; width:4%; height:12%; background: linear-gradient(180deg, #c8b8a0 0%, #8a7a62 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 10px rgba(200,180,140,.5); animation: qcp-decanter 6s ease-in-out infinite alternate; }
.scn-questioning-captains-past .qcp-lamp { position:absolute; top:12%; right:20%; width:3%; height:7%; background: radial-gradient(circle at 50% 20%, #ffeb9e 0%, #d4a84a 60%, #8a6d2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 25px 8px rgba(255,235,158,.5); animation: qcp-lamp 3s ease-in-out infinite alternate; }

@keyframes qcp-frames  { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes qcp-breathe  { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes qcp-books  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes qcp-decanter  { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(0) scale(1) } }
@keyframes qcp-lamp  { 0% { box-shadow: 0 0 20px 5px rgba(255,235,158,.4); } 50% { box-shadow: 0 0 35px 12px rgba(255,235,158,.6); } 100% { box-shadow: 0 0 25px 8px rgba(255,235,158,.5); } }

.scn-heat-of-london { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%), radial-gradient(ellipse at 50% 20%, #ffd080 0%, transparent 70%); }
.scn-heat-of-london .wall    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); }
.scn-heat-of-london .window  { position:absolute; top:10%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #ffcc66 0%, #ff9944 50%, #b06020 100%); border:4px solid #3a2a1a; box-shadow:0 0 20px 10px rgba(255,204,102,.4); animation: hl-window 3s ease-in-out infinite alternate; }
.scn-heat-of-london .floor   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-heat-of-london .desk    { position:absolute; bottom:28%; left:20%; width:35%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; }
.scn-heat-of-london .lamp    { position:absolute; top:2%; left:50%; transform:translateX(-50%); width:20px; height:40px; background: radial-gradient(circle at 50% 20%, #ffdd88 0%, #cc8844 70%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 40px 15px rgba(255,200,80,.5); animation: hl-lamp 1.5s ease-in-out infinite alternate; }
.scn-heat-of-london .figure  { position:absolute; bottom:22%; left:55%; width:24px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hl-figure 2s ease-in-out infinite; }
.scn-heat-of-london .shadow  { position:absolute; bottom:20%; left:52%; width:40px; height:6px; background:rgba(0,0,0,.5); border-radius:50%; filter:blur(4px); animation: hl-shadow 2s ease-in-out infinite; }
@keyframes hl-window  { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hl-lamp    { 0% { transform:translateX(-50%) rotate(-5deg) } 50% { transform:translateX(-50%) rotate(5deg) } 100% { transform:translateX(-50%) rotate(-3deg) } }
@keyframes hl-figure  { 0% { transform:translateX(0) } 30% { transform:translateX(4px) translateY(-1px) rotate(1deg) } 60% { transform:translateX(-4px) translateY(1px) rotate(-1deg) } 100% { transform:translateX(0) } }
@keyframes hl-shadow  { 0% { width:40px;opacity:.4 } 50% { width:32px;opacity:.6 } 100% { width:36px;opacity:.5 } }

.scn-dumfries-visit { background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 100%), radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 70%); }
.scn-dumfries-visit .wall       { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a0 100%); }
.scn-dumfries-visit .window     { position:absolute; top:8%; left:25%; width:50%; height:55%; background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 100%); border:6px solid #b8a080; box-shadow: inset 0 0 20px rgba(255,255,200,.2); animation: dv-window 10s ease-in-out infinite alternate; }
.scn-dumfries-visit .fireplace  { position:absolute; bottom:30%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 0 30px 10px #d08030; animation: dv-fire 2s ease-in-out infinite alternate; }
.scn-dumfries-visit .armchair   { position:absolute; bottom:20%; left:50%; width:28%; height:45%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.2); }
.scn-dumfries-visit .figure     { position:absolute; bottom:22%; left:60%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: dv-sit 4s ease-in-out infinite; }
.scn-dumfries-visit .curtains   { position:absolute; top:8%; left:20%; width:8%; height:55%; background: linear-gradient(180deg, #b87858 0%, #8a5030 100%); border-radius:4px; opacity:.8; animation: dv-curtain 6s ease-in-out infinite alternate; }
.scn-dumfries-visit .rug        { position:absolute; bottom:0; left:10%; width:80%; height:10%; background: linear-gradient(90deg, #c8a888 0%, #b89878 25%, #a88868 50%, #b89878 75%, #c8a888 100%); border-radius:20% 20% 0 0; }
@keyframes dv-window  { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dv-fire    { 0% { box-shadow: 0 0 20px 6px #d08030 } 50% { box-shadow: 0 0 40px 15px #f0a040 } 100% { box-shadow: 0 0 25px 8px #d08030 } }
@keyframes dv-sit     { 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 dv-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(-2px) } }

.scn-tennis-invitation { background: linear-gradient(180deg, #f0f0e8 0%, #d8d8c8 100%), radial-gradient(ellipse at 50% 30%, #fff8f0 0%, transparent 70%); }
.scn-tennis-invitation .wall    { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e8e0d8 0%, #d0c8b8 100%); }
.scn-tennis-invitation .doorway { position:absolute; top:5%; left:25%; width:50%; height:55%; background: linear-gradient(180deg, #c0b098 0%, #a09078 100%); border:8px solid #8a7a62; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,.1); }
.scn-tennis-invitation .figure  { position:absolute; bottom:20%; left:30%; width:22px; height:55px; background: linear-gradient(180deg, #f8f0e0 0%, #d8c8b0 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ti-turn 3s ease-in-out infinite; }
.scn-tennis-invitation .racket  { position:absolute; bottom:25%; left:32%; width:30px; height:10px; background: #c8b898; border-radius:50% 50% 0 0; transform:rotate(20deg); animation: ti-swing 2s ease-in-out infinite alternate; }
.scn-tennis-invitation .chair   { position:absolute; bottom:15%; left:55%; width:30%; height:20%; background: linear-gradient(180deg, #b8a888 0%, #988868 100%); border-radius:10% 10% 0 0; }
.scn-tennis-invitation .window  { position:absolute; top:10%; left:5%; width:20%; height:30%; background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 100%); border:4px solid #8a7a62; box-shadow: 0 0 15px rgba(255,248,200,.3); animation: ti-light 12s ease-in-out infinite alternate; }
.scn-tennis-invitation .clock   { position:absolute; top:2%; right:10%; width:30px; height:30px; background: radial-gradient(circle, #f0e8d0 0%, #b8a888 70%); border-radius:50%; border:3px solid #7a6a52; animation: ti-pendulum 2s ease-in-out infinite alternate; transform-origin:50% 0; }
@keyframes ti-turn     { 0% { transform: rotate(0) } 25% { transform: rotate(3deg) } 50% { transform: rotate(0) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0) } }
@keyframes ti-swing    { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(15deg) } }
@keyframes ti-light    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ti-pendulum { 0% { transform: rotate(-10deg) } 30% { transform: rotate(10deg) } 60% { transform: rotate(-5deg) } 100% { transform: rotate(10deg) } }

.scn-rannoch-castle { background: linear-gradient(180deg, #87CEEB 0%, #4a8cad 50%, #2a6a8a 100%), radial-gradient(ellipse at 50% 0%, #c0e8ff 0%, transparent 70%); }
.scn-rannoch-castle .sky         { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0d8f0 0%, #70a8c8 100%); animation: rc-sky 15s ease-in-out infinite alternate; }
.scn-rannoch-castle .hill        { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a8a4a 0%, #2a5a2a 100%); border-radius:40% 60% 0 0 / 80% 70% 0 0; }
.scn-rannoch-castle .castle-tower-a { position:absolute; bottom:30%; left:25%; width:12%; height:45%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:8% 8% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.3); animation: rc-tower 8s ease-in-out infinite alternate; }
.scn-rannoch-castle .castle-tower-b { position:absolute; bottom:30%; right:25%; width:12%; height:45%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:8% 8% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.3); animation: rc-tower 8s ease-in-out infinite alternate-reverse; }
.scn-rannoch-castle .castle-body { position:absolute; bottom:30%; left:28%; width:44%; height:35%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:4% 4% 0 0; }
.scn-rannoch-castle .figures     { position:absolute; bottom:18%; left:35%; width:30%; height:12%; background: radial-gradient(ellipse at 30% 50%, #f0e8d0 0%, transparent 70%), radial-gradient(ellipse at 70% 50%, #e0d0b0 0%, transparent 70%); animation: rc-figures 4s ease-in-out infinite; }
.scn-rannoch-castle .flag        { position:absolute; top:0; left:30%; width:4%; height:20%; background: #5a3a2a; animation: rc-flag 3s ease-in-out infinite; }
.scn-rannoch-castle .flag::after { content:''; position:absolute; top:0; left:100%; width:200%; height:60%; background: #c8553d; clip-path: polygon(0 0,100% 50%,0 100%); }
.scn-rannoch-castle .cloud-a     { position:absolute; top:8%; left:10%; width:80px; height:20px; background: rgba(255,255,255,.6); border-radius:50%; filter:blur(6px); animation: rc-drift 40s linear infinite; }
.scn-rannoch-castle .cloud-b     { position:absolute; top:15%; right:5%; width:60px; height:15px; background: rgba(255,255,255,.4); border-radius:50%; filter:blur(5px); animation: rc-drift 50s linear infinite reverse; }
@keyframes rc-sky     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes rc-tower   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rc-figures { 0% { transform: translateX(0) } 25% { transform: translateX(2px) } 50% { transform: translateX(0) } 75% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes rc-flag    { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes rc-drift   { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }

.scn-burglars-theory {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1f3a 40%, #1e0f2a 100%),
    radial-gradient(ellipse at 70% 80%, #3a2040 0%, transparent 60%);
}
.scn-burglars-theory .wall-back {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  animation: bt-wall 16s ease-in-out infinite alternate;
}
.scn-burglars-theory .window {
  position: absolute;
  top: 12%;
  right: 8%;
  width: 120px;
  height: 160px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 6% 6% 4% 4% / 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px 10px rgba(100,140,180,0.2), 0 0 20px 4px rgba(80,120,160,0.3);
  animation: bt-window 8s ease-in-out infinite alternate;
}
.scn-burglars-theory .figure-left {
  position: absolute;
  bottom: 22%;
  left: 14%;
  width: 30px;
  height: 72px;
  background: linear-gradient(180deg, #0a0a15 0%, #151525 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bt-figure-l 5s ease-in-out infinite;
}
.scn-burglars-theory .figure-right {
  position: absolute;
  bottom: 18%;
  right: 18%;
  width: 28px;
  height: 68px;
  background: linear-gradient(180deg, #0a0a15 0%, #10101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bt-figure-r 6s ease-in-out infinite;
}
.scn-burglars-theory .table {
  position: absolute;
  bottom: 15%;
  left: 10%;
  right: 10%;
  height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
  animation: bt-table 12s ease-in-out infinite;
}
.scn-burglars-theory .shadow {
  position: absolute;
  bottom: 12%;
  left: 12%;
  right: 20%;
  height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 60%);
  animation: bt-shadow 7s ease-in-out infinite alternate;
}
.scn-burglars-theory .glow {
  position: absolute;
  top: 14%;
  right: 12%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, rgba(180,200,220,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: bt-glow 9s ease-in-out infinite alternate;
}
@keyframes bt-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes bt-window { 0% { box-shadow: inset 0 0 20px 6px rgba(100,140,180,0.15), 0 0 10px 2px rgba(80,120,160,0.2); transform: scale(1) } 50% { box-shadow: inset 0 0 40px 14px rgba(100,140,180,0.3), 0 0 30px 6px rgba(80,120,160,0.4); transform: scale(1.02) } 100% { box-shadow: inset 0 0 25px 8px rgba(100,140,180,0.2), 0 0 15px 3px rgba(80,120,160,0.25); transform: scale(0.98) } }
@keyframes bt-figure-l { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(14px) rotate(-2deg) } 75% { transform: translateX(6px) rotate(2deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes bt-figure-r { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 30% { transform: translateX(-10px) translateY(-4px) rotate(-1deg) } 60% { transform: translateX(-5px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(2deg) } }
@keyframes bt-table { 0% { transform: translateY(0); box-shadow: 0 -6px 12px rgba(0,0,0,0.6) } 50% { transform: translateY(-2px); box-shadow: 0 -8px 18px rgba(0,0,0,0.7) } 100% { transform: translateY(0); box-shadow: 0 -6px 12px rgba(0,0,0,0.6) } }
@keyframes bt-shadow { 0% { opacity: 0.7; transform: scaleX(1) } 50% { opacity: 0.5; transform: scaleX(1.1) } 100% { opacity: 0.8; transform: scaleX(0.9) } }
@keyframes bt-glow { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.4 } }

.scn-checking-safe-contents {
  background:
    linear-gradient(180deg, #f5efe0 0%, #e8d8c0 100%),
    radial-gradient(ellipse at 60% 30%, #fff5e0 0%, transparent 50%);
}
.scn-checking-safe-contents .room-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #e0d0b0 0%, #c8b8a0 100%);
  animation: csc-room 20s ease-in-out infinite alternate;
}
.scn-checking-safe-contents .desk {
  position: absolute;
  bottom: 8%;
  left: 5%;
  right: 5%;
  height: 30%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4a3a 100%);
  border-radius: 4% 4% 0 0 / 8% 8% 0 0;
  box-shadow: 0 -12px 24px rgba(0,0,0,0.2);
  animation: csc-desk 15s ease-in-out infinite alternate;
}
.scn-checking-safe-contents .papers {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 30%;
  height: 12%;
  background: linear-gradient(0deg, #f0e0c0 0%, #fff8e8 100%);
  border-radius: 2% 4% 8% 6% / 4% 6% 10% 8%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.15);
  filter: blur(1px);
  animation: csc-papers 7s ease-in-out infinite alternate;
}
.scn-checking-safe-contents .hand {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 20px;
  height: 28px;
  background: linear-gradient(180deg, #d4b090 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: csc-hand 4s ease-in-out infinite;
}
.scn-checking-safe-contents .safe {
  position: absolute;
  bottom: 15%;
  right: 8%;
  width: 80px;
  height: 90px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5), inset 0 0 20px rgba(0,0,0,0.6);
  animation: csc-safe 12s ease-in-out infinite;
}
.scn-checking-safe-contents .lamp {
  position: absolute;
  top: 10%;
  left: 25%;
  width: 30px;
  height: 50px;
  background: radial-gradient(circle at 50% 80%, #ffe080 0%, #c8a040 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  filter: blur(4px);
  animation: csc-lamp 8s ease-in-out infinite alternate;
}
.scn-checking-safe-contents .shadow-fall {
  position: absolute;
  top: 40%;
  left: 20%;
  right: 30%;
  height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 100%);
  animation: csc-shadow 9s ease-in-out infinite;
}
@keyframes csc-room { 0% { opacity: 0.9; filter: brightness(1) } 50% { opacity: 1; filter: brightness(1.05) } 100% { opacity: 0.95; filter: brightness(0.98) } }
@keyframes csc-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes csc-papers { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(4px,-2px) rotate(3deg) } 100% { transform: translate(2px,1px) rotate(-1deg) } }
@keyframes csc-hand { 0% { transform: rotate(10deg) translateY(0) } 25% { transform: rotate(12deg) translateY(-6px) } 50% { transform: rotate(8deg) translateY(-2px) } 75% { transform: rotate(14deg) translateY(-5px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes csc-safe { 0% { box-shadow: 0 8px 16px rgba(0,0,0,0.5); transform: scale(1) } 50% { box-shadow: 0 12px 24px rgba(0,0,0,0.6); transform: scale(1.01) } 100% { box-shadow: 0 6px 12px rgba(0,0,0,0.45); transform: scale(0.99) } }
@keyframes csc-lamp { 0% { opacity: 0.8; filter: blur(4px) } 50% { opacity: 1; filter: blur(6px) } 100% { opacity: 0.7; filter: blur(3px) } }
@keyframes csc-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.4 } 100% { opacity: 0.7 } }

.scn-stamps-missing {
  background:
    linear-gradient(180deg, #fcf8e8 0%, #efe0c0 100%),
    radial-gradient(ellipse at 30% 70%, #ffe0a0 0%, transparent 60%);
}
.scn-stamps-missing .studio-bg {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8d8c0 0%, #d0c0a8 100%);
  animation: sm-bg 18s ease-in-out infinite alternate;
}
.scn-stamps-missing .table {
  position: absolute;
  bottom: 6%;
  left: 8%;
  right: 8%;
  height: 22%;
  background: linear-gradient(180deg, #9a8060 0%, #6a5040 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 -10px 18px rgba(0,0,0,0.15);
  animation: sm-table 14s ease-in-out infinite;
}
.scn-stamps-missing .envelope {
  position: absolute;
  bottom: 22%;
  left: 20%;
  width: 90px;
  height: 60px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 4% 6% 8% 6% / 6% 8% 10% 8%;
  box-shadow: 2px 4px 10px rgba(0,0,0,0.1);
  transform: rotate(-5deg);
  animation: sm-envelope 10s ease-in-out infinite alternate;
}
.scn-stamps-missing .stamp {
  position: absolute;
  bottom: 30%;
  left: 22%;
  width: 18px;
  height: 22px;
  background: linear-gradient(135deg, #c8a080 0%, #a08060 100%);
  border: 2px solid #8a6a50;
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(0,0,0,0.2);
  animation: sm-stamp 6s ease-in-out infinite;
}
.scn-stamps-missing .hand {
  position: absolute;
  bottom: 26%;
  right: 18%;
  width: 22px;
  height: 34px;
  background: linear-gradient(180deg, #d4b090 0%, #b09070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: sm-hand 5s ease-in-out infinite;
}
.scn-stamps-missing .letter-pile {
  position: absolute;
  bottom: 18%;
  right: 10%;
  width: 50px;
  height: 36px;
  background: linear-gradient(0deg, #e0d0b8 0%, #f0e8d8 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.1);
  animation: sm-pile 13s ease-in-out infinite alternate;
}
.scn-stamps-missing .lens {
  position: absolute;
  bottom: 34%;
  left: 40%;
  width: 28px;
  height: 28px;
  background: radial-gradient(circle, #e8f0f8 0%, #a0b8c8 100%);
  border-radius: 50%;
  border: 2px solid #8a9a9a;
  box-shadow: 0 0 12px rgba(100,140,180,0.3), inset 0 0 8px rgba(255,255,255,0.4);
  animation: sm-lens 9s ease-in-out infinite alternate;
}
.scn-stamps-missing .shadow {
  position: absolute;
  bottom: 6%;
  left: 10%;
  right: 10%;
  height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: sm-shadow 11s ease-in-out infinite;
}
@keyframes sm-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.92 } }
@keyframes sm-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes sm-envelope { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-4px) } 100% { transform: rotate(-6deg) translateY(2px) } }
@keyframes sm-stamp { 0% { transform: rotate(0deg) scale(1) } 25% { transform: rotate(8deg) scale(1.05) } 50% { transform: rotate(-6deg) scale(0.95) } 75% { transform: rotate(4deg) scale(1.02) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes sm-hand { 0% { transform: rotate(-15deg) translateX(0) } 30% { transform: rotate(-12deg) translateX(-8px) } 60% { transform: rotate(-18deg) translateX(-4px) } 100% { transform: rotate(-15deg) translateX(0) } }
@keyframes sm-pile { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sm-lens { 0% { box-shadow: 0 0 8px rgba(100,140,180,0.2); transform: scale(1) } 50% { box-shadow: 0 0 16px rgba(100,140,180,0.5); transform: scale(1.04) } 100% { box-shadow: 0 0 10px rgba(100,140,180,0.3); transform: scale(0.98) } }
@keyframes sm-shadow { 0% { opacity: 0.6; transform: scaleX(1) } 50% { opacity: 0.4; transform: scaleX(1.1) } 100% { opacity: 0.7; transform: scaleX(0.9) } }

.scn-seal-used {
  background:
    linear-gradient(180deg, #fcf0e0 0%, #eed8c0 100%),
    radial-gradient(ellipse at 50% 80%, #f8e0c0 0%, transparent 60%);
}
.scn-seal-used .office-bg {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(135deg, #e0d0b8 0%, #c8b8a0 100%);
  animation: su-bg 22s ease-in-out infinite alternate;
}
.scn-seal-used .desk {
  position: absolute;
  bottom: 8%;
  left: 6%;
  right: 6%;
  height: 28%;
  background: linear-gradient(180deg, #9a8060 0%, #7a6040 100%);
  border-radius: 6% 6% 0 0 / 10% 10% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.2);
  animation: su-desk 16s ease-in-out infinite alternate;
}
.scn-seal-used .seal {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 26px;
  height: 30px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(15deg);
  animation: su-seal 8s ease-in-out infinite;
}
.scn-seal-used .inkpad {
  position: absolute;
  bottom: 16%;
  left: 45%;
  width: 40px;
  height: 16px;
  background: linear-gradient(180deg, #5a3a4a 0%, #3a2028 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.4);
  animation: su-inkpad 11s ease-in-out infinite alternate;
}
.scn-seal-used .hand {
  position: absolute;
  bottom: 28%;
  right: 22%;
  width: 22px;
  height: 36px;
  background: linear-gradient(180deg, #d4b090 0%, #b09070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(8deg);
  animation: su-hand 6s ease-in-out infinite;
}
.scn-seal-used .document {
  position: absolute;
  bottom: 14%;
  left: 15%;
  width: 100px;
  height: 70px;
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 100%);
  border-radius: 4% 6% 8% 6% / 8% 10% 12% 10%;
  transform: rotate(-3deg);
  box-shadow: 2px 4px 10px rgba(0,0,0,0.1);
  animation: su-document 12s ease-in-out infinite alternate;
}
.scn-seal-used .stain {
  position: absolute;
  bottom: 24%;
  left: 35%;
  width: 10px;
  height: 12px;
  background: radial-gradient(circle, #704060 0%, transparent 80%);
  filter: blur(2px);
  animation: su-stain 7s ease-in-out infinite;
}
@keyframes su-bg { 0% { opacity: 0.9; filter: brightness(1) } 50% { opacity: 1; filter: brightness(1.03) } 100% { opacity: 0.92; filter: brightness(0.98) } }
@keyframes su-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes su-seal { 0% { transform: rotate(15deg) translateY(0) } 25% { transform: rotate(18deg) translateY(-4px) } 50% { transform: rotate(12deg) translateY(-2px) } 75% { transform: rotate(20deg) translateY(-5px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes su-inkpad { 0% { opacity: 0.9; transform: scaleY(1) } 50% { opacity: 0.7; transform: scaleY(1.1) } 100% { opacity: 1; transform: scaleY(0.95) } }
@keyframes su-hand { 0% { transform: rotate(8deg) translateX(0) } 30% { transform: rotate(5deg) translateX(-10px) } 60% { transform: rotate(12deg) translateX(-5px) } 100% { transform: rotate(8deg) translateX(0) } }
@keyframes su-document { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-4px) } 100% { transform: rotate(-4deg) translateY(2px) } }
@keyframes su-stain { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.3) } 100% { opacity: 0.4; transform: scale(0.9) } }

/* leithcourts-patience */
.scn-leithcourts-patience {
  background: 
    linear-gradient(180deg, #fdf5e6 0%, #e8dcc8 40%, #d4c4a4 100%),
    radial-gradient(ellipse at 70% 20%, #fff9e6 0%, transparent 60%);
}
.scn-leithcourts-patience .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #f0e4cc 0%, #d9cba8 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
  animation: lp1-shimmer 12s ease-in-out infinite alternate;
}
.scn-leithcourts-patience .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a88a 0%, #8a7a5e 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-leithcourts-patience .window {
  position: absolute; top: 12%; left: 20%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #c8d8e6 0%, #b0c4d6 100%);
  border: 4px solid #8a7a5e;
  border-radius: 4%;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: lp1-window 8s ease-in-out infinite alternate;
}
.scn-leithcourts-patience .figure {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lp1-pace 3s ease-in-out infinite;
}
.scn-leithcourts-patience .lamp {
  position: absolute; top: 25%; right: 20%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #d4a854 0%, #b8923a 100%);
  border-radius: 4px;
  box-shadow: 0 0 60px 20px rgba(255,200,100,0.4);
  animation: lp1-global 4s ease-in-out infinite alternate;
}
.scn-leithcourts-patience .chair {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a2210 100%);
  border-radius: 4px 4px 10px 10px;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
  animation: lp1-chair 10s ease-in-out infinite;
}
.scn-leithcourts-patience .cigarette {
  position: absolute; bottom: 25%; left: 48%; width: 2px; height: 8px;
  background: #c8c0b0;
  border-radius: 2px;
  box-shadow: 0 0 6px 2px rgba(200,180,140,0.5);
  animation: lp1-smoke 2s ease-out infinite;
}
@keyframes lp1-shimmer {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; box-shadow: inset 0 0 80px rgba(0,0,0,0.05); }
}
@keyframes lp1-window {
  0%,100% { filter: brightness(0.9); }
  50% { filter: brightness(1.1); }
}
@keyframes lp1-pace {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(10px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(20px) translateY(0) rotate(0deg); }
  75% { transform: translateX(30px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(40px) translateY(0) rotate(0deg); }
}
@keyframes lp1-global {
  0% { box-shadow: 0 0 40px 10px rgba(255,200,100,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 70px 25px rgba(255,220,140,0.6); opacity: 1; }
  100% { box-shadow: 0 0 50px 15px rgba(255,200,100,0.4); opacity: 0.85; }
}
@keyframes lp1-chair {
  0%,100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(0.98) rotate(2deg); }
}
@keyframes lp1-smoke {
  0% { opacity: 0.7; transform: translateY(0) scale(1); }
  100% { opacity: 0; transform: translateY(-30px) scale(1.5); }
}

/* asking-muriel-about-father */
.scn-asking-muriel-about-father {
  background: 
    linear-gradient(180deg, #f8f0e0 0%, #e0d0b8 50%, #c8b89a 100%),
    radial-gradient(ellipse at 60% 30%, #fff8e8 0%, transparent 70%);
}
.scn-asking-muriel-about-father .backdrop {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #efe4d0 0%, #dac8b0 100%);
  box-shadow: inset 0 -30px 50px rgba(0,0,0,0.08);
  animation: amf2-haze 15s ease-in-out infinite alternate;
}
.scn-asking-muriel-about-father .table {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 8px;
  background: linear-gradient(180deg, #6a4e3a 0%, #4a3220 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: amf2-table 6s ease-in-out infinite;
}
.scn-asking-muriel-about-father .chair-left {
  position: absolute; bottom: 20%; left: 25%; width: 25px; height: 40px;
  background: linear-gradient(180deg, #5a3e2e 0%, #3a2a1a 100%);
  border-radius: 6px 6px 12px 12px;
  transform: rotate(-5deg);
  box-shadow: 2px 6px 10px rgba(0,0,0,0.4);
  animation: amf2-chair 8s ease-in-out infinite;
}
.scn-asking-muriel-about-father .chair-right {
  position: absolute; bottom: 20%; right: 25%; width: 25px; height: 40px;
  background: linear-gradient(180deg, #5a3e2e 0%, #3a2a1a 100%);
  border-radius: 6px 6px 12px 12px;
  transform: rotate(3deg);
  box-shadow: 2px 6px 10px rgba(0,0,0,0.4);
  animation: amf2-chair 8s ease-in-out infinite reverse;
}
.scn-asking-muriel-about-father .figure-muriel {
  position: absolute; bottom: 28%; left: 28%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: amf2-sit 4s ease-in-out infinite;
}
.scn-asking-muriel-about-father .figure-speaker {
  position: absolute; bottom: 28%; right: 28%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #2e2e3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: amf2-speak 3s ease-in-out infinite;
}
.scn-asking-muriel-about-father .window-light {
  position: absolute; top: 15%; left: 40%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #d8e6f0 0%, #c0d4e0 100%);
  border: 3px solid #a09070;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.2);
  animation: amf2-light 10s ease-in-out infinite alternate;
}
.scn-asking-muriel-about-father .shadow-sway {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%);
  filter: blur(10px);
  animation: amf2-shadow 7s ease-in-out infinite alternate;
}
@keyframes amf2-haze {
  0%,100% { opacity: 0.95; }
  50% { opacity: 1; }
}
@keyframes amf2-table {
  0%,100% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(0.98) rotate(2deg); }
}
@keyframes amf2-chair {
  0%,100% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(6deg) scale(1.02); }
}
@keyframes amf2-sit {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px) rotate(-2deg); }
}
@keyframes amf2-speak {
  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 amf2-light {
  0%,100% { filter: brightness(0.85); }
  50% { filter: brightness(1.1); }
}
@keyframes amf2-shadow {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.5; transform: translateY(5px); }
  100% { opacity: 0.3; transform: translateY(0); }
}

/* deepening-mystery */
.scn-deepening-mystery {
  background: 
    linear-gradient(180deg, #c0b8a8 0%, #a89880 50%, #8a7a66 100%),
    radial-gradient(ellipse at 80% 40%, #e8dcc8 0%, transparent 70%);
}
.scn-deepening-mystery .bg-castle {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b0a490 0%, #9a8a76 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.2);
  animation: dm3-stone 20s ease-in-out infinite alternate;
}
.scn-deepening-mystery .desk {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 10px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: dm3-desk 8s ease-in-out infinite;
}
.scn-deepening-mystery .letter {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 16px;
  background: #e8dcc8;
  border-radius: 2px;
  box-shadow: 1px 1px 3px rgba(0,0,0,0.3);
  transform: rotate(-10deg);
  animation: dm3-risp 6s ease-in-out infinite;
}
.scn-deepening-mystery .figure-standing {
  position: absolute; bottom: 18%; left: 45%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dm3-stand 5s ease-in-out infinite;
}
.scn-deepening-mystery .window-arch {
  position: absolute; top: 8%; left: 15%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #a0b8c8 0%, #889aaa 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  border: 4px solid #6a5a4a;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
  animation: dm3-arch 12s ease-in-out infinite alternate;
}
.scn-deepening-mystery .candle {
  position: absolute; bottom: 30%; left: 60%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0d8a0 0%, #d4b878 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.4);
  animation: dm3-candle 3s ease-in-out infinite alternate;
}
.scn-deepening-mystery .map {
  position: absolute; bottom: 22%; left: 25%; width: 40px; height: 30px;
  background: #d4c8b0;
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: dm3-map 15s ease-in-out infinite;
}
@keyframes dm3-stone {
  0%,100% { filter: brightness(0.9); }
  50% { filter: brightness(1.05); }
}
@keyframes dm3-desk {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes dm3-risp {
  0%,100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
}
@keyframes dm3-stand {
  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 dm3-arch {
  0%,100% { filter: brightness(0.8); }
  50% { filter: brightness(1.1); }
}
@keyframes dm3-candle {
  0% { box-shadow: 0 0 15px 5px rgba(255,200,100,0.3); }
  50% { box-shadow: 0 0 30px 12px rgba(255,220,140,0.6); }
  100% { box-shadow: 0 0 18px 6px rgba(255,200,100,0.3); }
}
@keyframes dm3-map {
  0%,100% { transform: rotate(5deg) scale(1); }
  50% { transform: rotate(8deg) scale(0.95); }
}

/* muriel-helps-with-mud */
.scn-muriel-helps-with-mud {
  background: 
    linear-gradient(180deg, #3a1a0a 0%, #2a1000 40%, #4a2a12 100%),
    radial-gradient(ellipse at 40% 70%, #6a3a1a 0%, transparent 70%);
}
.scn-muriel-helps-with-mud .hearth-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a2a12 0%, #2a1000 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
  animation: mhm4-wall 15s ease-in-out infinite alternate;
}
.scn-muriel-helps-with-mud .fireplace {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 40%;
  background: linear-gradient(180deg, #2a1000 0%, #1a0800 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.8), 0 10px 20px rgba(0,0,0,0.5);
}
.scn-muriel-helps-with-mud .fire-glow {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 25%;
  background: radial-gradient(circle, #ff8c42 0%, #ff6600 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(20px);
  opacity: 0.7;
  animation: mhm4-fire 2s ease-in-out infinite alternate;
}
.scn-muriel-helps-with-mud .figure-gregg {
  position: absolute; bottom: 12%; left: 20%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mhm4-gregg 5s ease-in-out infinite;
}
.scn-muriel-helps-with-mud .figure-muriel {
  position: absolute; bottom: 15%; right: 25%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mhm4-muriel 4s ease-in-out infinite;
}
.scn-muriel-helps-with-mud .bucket {
  position: absolute; bottom: 8%; left: 40%; width: 16px; height: 14px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: mhm4-bucket 7s ease-in-out infinite;
}
.scn-muriel-helps-with-mud .rug {
  position: absolute; bottom: 5%; left: 15%; width: 70%; height: 10px;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6040 30%, #6a4a3a 100%);
  border-radius: 4px;
  opacity: 0.6;
  animation: mhm4-rug 12s ease-in-out infinite;
}
.scn-muriel-helps-with-mud .steam {
  position: absolute; bottom: 40%; left: 45%; width: 8px; height: 12px;
  background: radial-gradient(circle, rgba(255,255,200,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: mhm4-steam 3s ease-out infinite;
}
@keyframes mhm4-wall {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; box-shadow: inset 0 0 100px rgba(0,0,0,0.5); }
}
@keyframes mhm4-fire {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.65; transform: scale(0.97); }
}
@keyframes mhm4-gregg {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mhm4-muriel {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(5px) rotate(2deg); }
  40% { transform: translateX(0) rotate(0deg); }
  60% { transform: translateX(-5px) rotate(-2deg); }
  80% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mhm4-bucket {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes mhm4-rug {
  0%,100% { opacity: 0.5; }
  50% { opacity: 0.7; }
}
@keyframes mhm4-steam {
  0% { opacity: 0.4; transform: translateY(0) scale(1); }
  100% { opacity: 0; transform: translateY(-20px) scale(2); }
}

.scn-london-olinto-evasive { background: linear-gradient(180deg, #f5f0e0 0%, #d4c8a8 30%, #b8a88a 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%); }
.scn-london-olinto-evasive .room { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #ebe3d2 0%, #c9b99b 100%); }
.scn-london-olinto-evasive .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a7a66 0%, #5a4a3a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-london-olinto-evasive .desk { position:absolute; bottom:22%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #6a5a44 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-london-olinto-evasive .figure1 { position:absolute; bottom:28%; left:35%; width:16%; height:30%; background: radial-gradient(ellipse 60% 70% at 50% 30%, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: io-fig1 3s ease-in-out infinite; }
.scn-london-olinto-evasive .figure2 { position:absolute; bottom:26%; left:55%; width:14%; height:36%; background: radial-gradient(ellipse 50% 80% at 50% 20%, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: io-fig2 4s ease-in-out infinite; }
.scn-london-olinto-evasive .lamp { position:absolute; bottom:28%; left:45%; width:6%; height:4%; background: radial-gradient(circle, #ffe080 0%, #d4a040 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,224,128,.5), 0 0 80px 40px rgba(255,224,128,.2); animation: io-lamp 2s ease-in-out infinite alternate; }
.scn-london-olinto-evasive .window { position:absolute; top:10%; right:10%; width:25%; height:40%; background: linear-gradient(180deg, #d0c8b0 0%, #b8a888 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 0 40px rgba(255,255,200,.2); animation: io-window 6s ease-in-out infinite alternate; }
@keyframes io-fig1 { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(1%); } }
@keyframes io-fig2 { 0%,100% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(-3deg) scale(1.02); } 75% { transform: rotate(3deg) scale(0.98); } }
@keyframes io-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 10px rgba(255,224,128,.3); } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(255,224,128,.7); } 100% { opacity: 0.85; box-shadow: 0 0 30px 15px rgba(255,224,128,.4); } }
@keyframes io-window { 0% { opacity: 0.7; filter: brightness(1); } 50% { opacity: 1; filter: brightness(1.1); } 100% { opacity: 0.8; filter: brightness(0.95); } }

.scn-london-olinto-accident { background: linear-gradient(180deg, #3a3a4a 0%, #1e1e2e 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 100%, #2e2e3e 0%, transparent 70%); }
.scn-london-olinto-accident .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #2e2e3e 0%, #0e0e1a 100%); }
.scn-london-olinto-accident .stair { position:absolute; bottom:0; left:30%; width:40%; height:100%; background: repeating-linear-gradient(0deg, #4a4a5a 0px, #4a4a5a 20px, #3a3a4a 20px, #3a3a4a 40px); animation: oa-stair 10s linear infinite; }
.scn-london-olinto-accident .figure-top { position:absolute; top:15%; left:38%; width:12%; height:24%; background: radial-gradient(ellipse 60% 70% at 50% 30%, #0a0a0a 0%, #1e1e2e 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%; transform-origin: center bottom; animation: oa-fall 4s ease-in-out infinite; }
.scn-london-olinto-accident .figure-bot { position:absolute; bottom:10%; left:42%; width:10%; height:20%; background: radial-gradient(ellipse 50% 60% at 50% 30%, #1a1a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%; animation: oa-reach 3s ease-in-out infinite alternate; }
.scn-london-olinto-accident .beam { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0) 100%); animation: oa-beam 5s ease-in-out infinite alternate; }
.scn-london-olinto-accident .mist { position:absolute; bottom:0; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(200,200,220,0.15) 0%, transparent 70%); filter: blur(10px); animation: oa-mist 8s ease-in-out infinite alternate; }
.scn-london-olinto-accident .shadow-vert { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 50%, transparent 100%); animation: oa-shadow 6s ease-in-out infinite; }
@keyframes oa-stair { 0% { background-position: 0 0; } 100% { background-position: 0 80px; } }
@keyframes oa-fall { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(5%) rotate(5deg); } 50% { transform: translateY(10%) rotate(-3deg); } 75% { transform: translateY(5%) rotate(2deg); } }
@keyframes oa-reach { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.05) translateX(5%); } 100% { transform: scale(0.95) translateX(-5%); } }
@keyframes oa-beam { 0% { opacity: 0.3; transform: rotate(0deg); } 50% { opacity: 0.6; transform: rotate(2deg); } 100% { opacity: 0.4; transform: rotate(-2deg); } }
@keyframes oa-mist { 0% { opacity: 0.2; transform: scaleY(1); } 50% { opacity: 0.5; transform: scaleY(1.2); } 100% { opacity: 0.3; transform: scaleY(0.9); } }
@keyframes oa-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

.scn-london-chater-london { background: linear-gradient(180deg, #e8dcc8 0%, #c4b89a 30%, #a09078 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 50%); }
.scn-london-chater-london .window-frame { position:absolute; inset:5% 10% 10% 10%; border: 8px solid #5a4a3a; border-radius: 12px; background: transparent; box-shadow: inset 0 0 60px rgba(0,0,0,.2); animation: cl-frame 8s ease-in-out infinite; }
.scn-london-chater-london .skyline { position:absolute; bottom:20%; left:18%; right:18%; height:40%; background: linear-gradient(180deg, #b8b0a0 0%, #8a7a6a 100%); border-radius: 20% 20% 0 0; }
.scn-london-chater-london .city { position:absolute; bottom:25%; left:18%; right:18%; height:35%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); clip-path: polygon(0% 100%, 5% 60%, 10% 100%, 15% 50%, 20% 100%, 25% 65%, 30% 100%, 35% 45%, 40% 100%, 45% 70%, 50% 100%, 55% 55%, 60% 100%, 65% 60%, 70% 100%, 75% 40%, 80% 100%, 85% 70%, 90% 100%, 95% 50%, 100% 100%); animation: cl-city 12s ease-in-out infinite alternate; }
.scn-london-chater-london .figure { position:absolute; bottom:20%; left:35%; width:12%; height:30%; background: radial-gradient(ellipse 60% 70% at 50% 30%, #1a1008 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: cl-fig 4s ease-in-out infinite; }
.scn-london-chater-london .curtain { position:absolute; top:5%; left:10%; width:20%; height:90%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 0 8px 8px 0; animation: cl-curtain 6s ease-in-out infinite alternate; }
.scn-london-chater-london .desk { position:absolute; bottom:12%; left:30%; width:40%; height:6%; background: linear-gradient(180deg, #8a7a66 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-london-chater-london .letter { position:absolute; bottom:16%; left:45%; width:8%; height:5%; background: #d4c8a8; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: cl-letter 5s ease-in-out infinite; }
@keyframes cl-frame { 0%,100% { box-shadow: inset 0 0 40px rgba(0,0,0,.15), 0 0 20px rgba(255,255,200,.1); } 50% { box-shadow: inset 0 0 80px rgba(0,0,0,.3), 0 0 40px rgba(255,255,200,.2); } }
@keyframes cl-city { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2%) scale(1.02); } 100% { transform: translateY(2%) scale(0.98); } }
@keyframes cl-fig { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(2deg) translateX(1%); } 75% { transform: rotate(-2deg) translateX(-1%); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes cl-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5%); } 100% { transform: translateX(3%); } }
@keyframes cl-letter { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } }

.scn-london-leithcourt-flight { background: linear-gradient(180deg, #e4dcc4 0%, #c8b89a 30%, #a09078 100%), radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 60%); }
.scn-london-leithcourt-flight .doorway { position:absolute; left:35%; right:35%; top:0; bottom:0; border: 6px solid #5a4a3a; border-top: none; border-radius: 0 0 8px 8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.4); }
.scn-london-leithcourt-flight .door { position:absolute; left:35%; right:35%; top:5%; height:85%; background: linear-gradient(180deg, #6a5a44 0%, #3a2a1a 100%); border-radius: 0 0 4px 4px; transform-origin: left center; animation: lf-door 3s ease-in-out infinite alternate; }
.scn-london-leithcourt-flight .figure { position:absolute; bottom:20%; left:42%; width:12%; height:35%; background: radial-gradient(ellipse 60% 70% at 50% 30%, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: lf-fig 4s ease-in-out infinite; }
.scn-london-leithcourt-flight .shadow { position:absolute; bottom:0; left:40%; width:20%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%); filter: blur(6px); animation: lf-shadow 4s ease-in-out infinite; }
.scn-london-leithcourt-flight .footstep { position:absolute; bottom:10%; left:45%; width:6%; height:3%; background: #8a7a66; border-radius: 50%; opacity: 0.5; animation: lf-step1 3s ease-in-out infinite; }
.scn-london-leithcourt-flight .footstep2 { position:absolute; bottom:8%; left:50%; width:6%; height:3%; background: #8a7a66; border-radius: 50%; opacity: 0.4; animation: lf-step2 3s ease-in-out infinite 1.5s; }
.scn-london-leithcourt-flight .lamp { position:absolute; top:10%; left:48%; width:4%; height:6%; background: radial-gradient(circle, #ffe080 0%, #d4a040 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,224,128,.5); animation: lf-lamp 2s ease-in-out infinite alternate; }
@keyframes lf-door { 0% { transform: skewY(0deg) scaleX(1); } 50% { transform: skewY(-3deg) scaleX(0.95); } 100% { transform: skewY(3deg) scaleX(1.02); } }
@keyframes lf-fig { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5%) rotate(5deg); } 75% { transform: translateX(-5%) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lf-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes lf-step1 { 0%,100% { transform: translateX(0); opacity: 0.4; } 50% { transform: translateX(10%); opacity: 0.6; } }
@keyframes lf-step2 { 0%,100% { transform: translateX(0); opacity: 0.3; } 50% { transform: translateX(8%); opacity: 0.5; } }
@keyframes lf-lamp { 0% { opacity: 0.7; box-shadow: 0 0 15px 5px rgba(255,224,128,.3); } 50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(255,224,128,.7); } 100% { opacity: 0.8; box-shadow: 0 0 20px 10px rgba(255,224,128,.4); } }

/* hut-defiance-dismiss – tense, dim interior */
.scn-hut-defiance-dismiss { background: linear-gradient(180deg, #2a1a12 0%, #3a2a1a 40%, #1a0e08 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-hut-defiance-dismiss .wall-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-hut-defiance-dismiss .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a12 0%, #0e0805 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-hut-defiance-dismiss .table { position:absolute; bottom:18%; left:35%; width:40%; height:6%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 2%/4%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: hdd-table 9s ease-in-out infinite; }
.scn-hut-defiance-dismiss .figure { position:absolute; bottom:20%; left:50%; width:12%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 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.4); animation: hdd-figure 2s ease-in-out infinite; }
.scn-hut-defiance-dismiss .lantern { position:absolute; bottom:24%; left:48%; width:4%; height:5%; background: radial-gradient(circle, #d08040 0%, #a06030 70%); border-radius: 20%; box-shadow: 0 0 18px 6px #d08040, 0 0 36px 12px rgba(208,128,64,0.4); animation: hdd-lantern 1.5s ease-in-out infinite alternate; }
.scn-hut-defiance-dismiss .window { position:absolute; top:8%; left:70%; width:10%; height:15%; background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%); border: 2px solid #5a3a2a; border-radius: 10%; box-shadow: inset 0 0 8px rgba(0,0,0,0.8); animation: hdd-window 6s ease-in-out infinite; }
.scn-hut-defiance-dismiss .shadow { position:absolute; bottom:15%; left:20%; width:60%; height:18%; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: hdd-shadow 2.2s ease-in-out infinite; }
@keyframes hdd-table { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-1px); } }
@keyframes hdd-figure { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-3deg); } 75% { transform: translateX(4px) rotate(1deg); } }
@keyframes hdd-lantern { 0% { opacity:0.7; box-shadow: 0 0 14px 4px #d08040; } 50% { opacity:1; box-shadow: 0 0 28px 10px #e09050, 0 0 48px 16px rgba(224,144,80,0.3); } 100% { opacity:0.8; box-shadow: 0 0 18px 5px #d08040; } }
@keyframes hdd-window { 0%,100% { opacity:0.6; } 50% { opacity:0.9; } }
@keyframes hdd-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } }

/* hut-departure-gloom – dark, overcast exterior */
.scn-hut-departure-gloom { background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 40%, #1a2a2a 100%), radial-gradient(ellipse at 50% 0%, #5a6a6a 0%, transparent 60%); }
.scn-hut-departure-gloom .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a6a6a 0%, #2a3a3a 100%); animation: hdg-sky 15s ease-in-out infinite alternate; }
.scn-hut-departure-gloom .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-hut-departure-gloom .hut { position:absolute; bottom:28%; left:30%; width:20%; height:25%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0e 100%); border-radius: 10% 10% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-hut-departure-gloom .door { position:absolute; bottom:28%; left:36%; width:6%; height:16%; background: #1a1a0e; border-radius: 5%; animation: hdg-door 4s ease-in-out infinite; }
.scn-hut-departure-gloom .figure { position:absolute; bottom:28%; left:46%; width:6%; height:14%; background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hdg-figure 8s ease-in-out infinite; }
.scn-hut-departure-gloom .tree { position:absolute; bottom:30%; left:12%; width:8%; height:40%; background: linear-gradient(180deg, #0e1a0e 0%, #060e06 100%); border-radius: 20% 20% 10% 10%; animation: hdg-tree 12s ease-in-out infinite; }
.scn-hut-departure-gloom .mist { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(90,106,106,0.3) 0%, transparent 100%); filter: blur(8px); animation: hdg-mist 20s ease-in-out infinite alternate; }
@keyframes hdg-sky { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes hdg-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } }
@keyframes hdg-figure { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(4px) translateY(0) rotate(-1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(0); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes hdg-tree { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes hdg-mist { 0% { opacity:0.3; } 100% { opacity:0.6; } }

/* forest-march-arrest – tense, overcast march */
.scn-forest-march-arrest { background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 40%, #0a1a0a 100%), radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 70%); }
.scn-forest-march-arrest .bg-trees { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0%, #0a1a0a 3%, transparent 6%); opacity:0.4; animation: fma-trees 30s linear infinite; }
.scn-forest-march-arrest .path { position:absolute; bottom:20%; left:0; right:0; height:12%; background: linear-gradient(90deg, transparent 0%, #2a3a2a 20%, #1a2a1a 50%, #2a3a2a 80%, transparent 100%); border-radius: 30% 30% 0 0; }
.scn-forest-march-arrest .prisoner { position:absolute; bottom:22%; left:35%; width:8%; height:18%; background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fma-walk 2s ease-in-out infinite; }
.scn-forest-march-arrest .guard1 { position:absolute; bottom:22%; left:45%; width:8%; height:20%; background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fma-walk 2s ease-in-out 0.3s infinite; }
.scn-forest-march-arrest .guard2 { position:absolute; bottom:22%; left:55%; width:8%; height:20%; background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fma-walk 2s ease-in-out 0.6s infinite; }
.scn-forest-march-arrest .shackles { position:absolute; bottom:25%; left:38%; width:4%; height:2%; background: #3a3a4a; border-radius: 20%; animation: fma-shackles 2s ease-in-out infinite; }
.scn-forest-march-arrest .shadow-path { position:absolute; bottom:20%; left:0; right:0; height:10%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 20%, rgba(0,0,0,0.6) 50%, rgba(0,0,0,0.4) 80%, transparent 100%); animation: fma-shadow 4s ease-in-out infinite; }
@keyframes fma-trees { 0% { background-position: 0 0; } 100% { background-position: 100vw 0; } }
@keyframes fma-walk { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes fma-shackles { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(1px) rotate(10deg); } }
@keyframes fma-shadow { 0%,100% { opacity:0.5; } 50% { opacity:1; } }

/* forest-search-confidence – tense, overcast search */
.scn-forest-search-confidence { background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 40%, #1a2a1a 100%), radial-gradient(ellipse at 50% 20%, #5a6a5a 0%, transparent 60%); }
.scn-forest-search-confidence .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a6a5a 0%, #2a3a2a 100%); animation: fsc-sky 12s ease-in-out infinite alternate; }
.scn-forest-search-confidence .lake { position:absolute; bottom:20%; left:10%; width:80%; height:10%; background: linear-gradient(90deg, #2a3a3a 0%, #1a2a2a 50%, #2a3a3a 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; animation: fsc-lake 8s ease-in-out infinite; }
.scn-forest-search-confidence .trees-back { position:absolute; bottom:20%; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, transparent 0%, #1a2a1a 4%, transparent 8%); opacity:0.5; animation: fsc-trees-back 20s linear infinite; }
.scn-forest-search-confidence .trees-fore { position:absolute; bottom:10%; left:5%; width:20%; height:40%; background: linear-gradient(180deg, #0e1a0e 0%, #060e06 100%); border-radius: 30% 30% 0 0; animation: fsc-trees-fore 15s ease-in-out infinite; }
.scn-forest-search-confidence .leader { position:absolute; bottom:12%; left:50%; width:8%; height:16%; background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom left; animation: fsc-leader 3s ease-in-out infinite; }
.scn-forest-search-confidence .party { position:absolute; bottom:12%; left:60%; width:6%; height:14%; background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fsc-party 4s ease-in-out 0.5s infinite; }
@keyframes fsc-sky { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes fsc-lake { 0%,100% { opacity:0.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } }
@keyframes fsc-trees-back { 0% { background-position: 0 0; } 100% { background-position: 100vw 0; } }
@keyframes fsc-trees-fore { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes fsc-leader { 0%,100% { transform: rotate(0); } 25% { transform: rotate(-5deg); } 50% { transform: rotate(0); } 75% { transform: rotate(5deg); } }
@keyframes fsc-party { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }

.scn-methods-of-theft { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0d0d1d 100%), radial-gradient(ellipse at 50% 80%, #1a1a3a 0%, transparent 80%); }
.scn-methods-of-theft .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1f 0%, #1a1a2a 40%, #0a0a1a 100%); animation: mot-bg 12s ease-in-out infinite alternate; }
.scn-methods-of-theft .table { position:absolute; bottom:20%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-methods-of-theft .safe { position:absolute; bottom:30%; left:10%; width:30%; height:24%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:6px; border:2px solid #2a2a3a; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: mot-safe 8s ease-in-out infinite; }
.scn-methods-of-theft .jewel { position:absolute; bottom:25%; left:48%; width:12px; height:12px; background: radial-gradient(circle, #d4a050 0%, #b08040 50%, #8a6020 100%); border-radius:50%; box-shadow: 0 0 18px 6px rgba(212,160,80,.5); animation: mot-jewel 4s ease-in-out infinite alternate; }
.scn-methods-of-theft .hand { position:absolute; bottom:22%; left:70%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mot-hand 6s ease-in-out infinite; }
.scn-methods-of-theft .lamp { position:absolute; top:20%; right:15%; width:10px; height:14px; background: radial-gradient(circle, #e0b060 0%, #c08040 50%, transparent 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 24px 8px rgba(192,128,64,.4); animation: mot-lamp 3s ease-in-out infinite alternate; }
.scn-methods-of-theft .shadow { position:absolute; bottom:20%; left:65%; width:40px; height:6px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%); filter: blur(4px); animation: mot-shadow 6s ease-in-out infinite; }
@keyframes mot-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mot-safe { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(1px) rotate(-1deg) } }
@keyframes mot-jewel { 0% { opacity:.7; transform: scale(.85) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(.95) } }
@keyframes mot-hand { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(-10px) translateY(-3px) rotate(2deg) } 50% { transform: translateX(-5px) translateY(0) rotate(-1deg) } 75% { transform: translateX(-15px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes mot-lamp { 0% { opacity:.6; box-shadow: 0 0 12px 2px rgba(192,128,64,.3) } 50% { opacity:1; box-shadow: 0 0 30px 10px rgba(192,128,64,.6) } 100% { opacity:.7; box-shadow: 0 0 16px 4px rgba(192,128,64,.4) } }
@keyframes mot-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } }

.scn-crew-ignorant { background: linear-gradient(180deg, #12121f 0%, #1e1e2e 50%, #0c0c18 100%), radial-gradient(ellipse at 30% 70%, #2a2a3a 0%, transparent 70%); }
.scn-crew-ignorant .cabin-bg { position:absolute; inset:0; background: linear-gradient(135deg, #18182a 0%, #0f0f1a 50%, #1a1a2a 100%); animation: ci-bg 15s ease-in-out infinite alternate; }
.scn-crew-ignorant .porthole { position:absolute; top:15%; left:15%; width:60px; height:60px; background: radial-gradient(circle, #2a3a4a 0%, #0f1a2a 60%, transparent 100%); border-radius:50%; border:4px solid #3a3a4a; box-shadow: inset 0 0 30px rgba(0,0,0,.8); animation: ci-porthole 6s ease-in-out infinite; }
.scn-crew-ignorant .table { position:absolute; bottom:18%; left:20%; right:20%; height:6%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:8px; box-shadow: 0 6px 16px rgba(0,0,0,.5); }
.scn-crew-ignorant .wheel { position:absolute; bottom:32%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #4a4a5a 0%, #2a2a3a 60%, transparent 100%); border-radius:50%; border:2px solid #5a5a6a; box-shadow: 0 0 20px rgba(0,0,0,.4); animation: ci-wheel 12s linear infinite; }
.scn-crew-ignorant .figure { position:absolute; bottom:18%; 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: ci-figure 5s ease-in-out infinite alternate; }
.scn-crew-ignorant .chair { position:absolute; bottom:16%; left:28%; width:16px; height:20px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-crew-ignorant .map { position:absolute; bottom:24%; left:20%; width:30px; height:20px; background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius:4px; transform: rotate(-10deg); animation: ci-map 8s ease-in-out infinite; }
@keyframes ci-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ci-porthole { 0%,100% { transform: scale(1) } 30% { transform: scale(1.05) } 60% { transform: scale(.95) } }
@keyframes ci-wheel { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes ci-figure { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ci-map { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } }

.scn-oberg-spies { background: linear-gradient(180deg, #0a0a1a 0%, #151525 50%, #0d0d1d 100%), radial-gradient(ellipse at 50% 30%, #1a1a3a 0%, transparent 80%); }
.scn-oberg-spies .curtain-l { position:absolute; top:0; left:0; right:50%; bottom:0; background: linear-gradient(90deg, #1a1a2a 0%, #0f0f1f 50%, transparent 100%); animation: os-curtain 10s ease-in-out infinite alternate; }
.scn-oberg-spies .curtain-r { position:absolute; top:0; left:50%; right:0; bottom:0; background: linear-gradient(270deg, #1a1a2a 0%, #0f0f1f 50%, transparent 100%); animation: os-curtain 10s ease-in-out infinite alternate-reverse; }
.scn-oberg-spies .window { position:absolute; top:10%; left:35%; right:35%; bottom:40%; background: radial-gradient(ellipse, #2a3a4a 0%, #0f1a2a 60%, transparent 100%); border-radius:40% 40% 10% 10%; box-shadow: inset 0 0 40px rgba(0,0,0,.9); }
.scn-oberg-spies .spy { position:absolute; bottom:25%; left:45%; width:22px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: os-spy 7s ease-in-out infinite; }
.scn-oberg-spies .telescope { position:absolute; bottom:30%; left:52%; width:30px; height:6px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:4px; transform: rotate(-20deg); transform-origin: right center; animation: os-telescope 6s ease-in-out infinite alternate; }
.scn-oberg-spies .beam { position:absolute; top:12%; left:40%; right:40%; bottom:50%; background: linear-gradient(180deg, rgba(192,128,64,.15) 0%, transparent 100%); filter: blur(8px); animation: os-beam 5s ease-in-out infinite alternate; }
.scn-oberg-spies .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:0 0 30% 30% / 0 0 100% 100%; }
@keyframes os-curtain { 0% { width:50% } 50% { width:45% } 100% { width:50% } }
@keyframes os-spy { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes os-telescope { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-25deg) } 100% { transform: rotate(-15deg) } }
@keyframes os-beam { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.3 } }

.scn-attempts-on-dockyards { background: linear-gradient(180deg, #0a0a1a 0%, #121224 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 140%, #1a2a3a 0%, transparent 80%); }
.scn-attempts-on-dockyards .sky { position:absolute; top:0; left:0; right:0; bottom:50%; background: linear-gradient(180deg, #0a0a1a 0%, #151525 70%, #1a1a2a 100%); animation: aod-sky 20s ease-in-out infinite alternate; }
.scn-attempts-on-dockyards .water { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); animation: aod-water 8s ease-in-out infinite; }
.scn-attempts-on-dockyards .hull { position:absolute; bottom:40%; left:20%; right:50%; height:30%; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:20% 30% 10% 10% / 40% 60% 10% 10%; box-shadow: -4px 0 12px rgba(0,0,0,.5); animation: aod-hull 12s ease-in-out infinite alternate; }
.scn-attempts-on-dockyards .pylon { position:absolute; bottom:30%; left:65%; width:8px; height:50%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:4px 4px 0 0; transform-origin: bottom center; animation: aod-pylon 10s ease-in-out infinite; }
.scn-attempts-on-dockyards .crane { position:absolute; bottom:60%; left:60%; right:10%; height:6px; background: linear-gradient(90deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:4px; transform-origin: left center; animation: aod-crane 15s ease-in-out infinite alternate; }
.scn-attempts-on-dockyards .figure { position:absolute; bottom:36%; left:50%; width:18px; 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: aod-figure 6s ease-in-out infinite; }
.scn-attempts-on-dockyards .document { position:absolute; bottom:38%; left:55%; width:10px; height:14px; background: radial-gradient(circle, #e0c080 0%, #b08040 100%); border-radius:2px; box-shadow: 0 0 18px 4px rgba(192,128,64,.3); animation: aod-document 5s ease-in-out infinite alternate; }
.scn-attempts-on-dockyards .light { position:absolute; bottom:35%; left:70%; width:6px; height:6px; background: radial-gradient(circle, #ffd060 0%, #c08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 24px 6px rgba(192,128,64,.5); animation: aod-light 4s ease-in-out infinite alternate; }
@keyframes aod-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes aod-water { 0%,100% { transform: translateY(0) } 50% { transform: translateY(3px) } }
@keyframes aod-hull { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes aod-pylon { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } }
@keyframes aod-crane { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-2deg) } }
@keyframes aod-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes aod-document { 0% { opacity:.6; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(1) } }
@keyframes aod-light { 0% { opacity:.5; box-shadow: 0 0 16px 2px rgba(192,128,64,.3) } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(192,128,64,.6) } 100% { opacity:.6; box-shadow: 0 0 20px 4px rgba(192,128,64,.4) } }

.scn-london-elma-letter {
  background:
    linear-gradient(180deg, #f0e6d8 0%, #d9c8b0 50%, #b8a08a 100%),
    radial-gradient(ellipse at 30% 60%, #fff8f0 0%, transparent 60%);
}
.scn-london-elma-letter .wall     { position:absolute; inset:0; background: linear-gradient(180deg, #e8dccc 0%, #d5c5b5 100%); }
.scn-london-elma-letter .window   { position:absolute; top:10%; left:60%; width:30%; height:40%; background: linear-gradient(180deg, #c8e0ff 0%, #e0f0ff 100%); border: 2px solid #8a7a6a; border-radius:4px; box-shadow: inset 0 0 30px rgba(255,255,255,0.5); }
.scn-london-elma-letter .curtain-l{ position:absolute; top:8%; left:60%; width:16%; height:44%; background: linear-gradient(135deg, #b8a08a 30%, #9a8a70 70%); border-radius:0 4px 4px 0; transform-origin: top left; animation: lem-curtain 12s ease-in-out infinite alternate; }
.scn-london-elma-letter .curtain-r{ position:absolute; top:8%; left:74%; width:16%; height:44%; background: linear-gradient(225deg, #b8a08a 30%, #9a8a70 70%); border-radius:4px 0 0 4px; transform-origin: top right; animation: lem-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-london-elma-letter .desk     { position:absolute; bottom:15%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px 2px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-london-elma-letter .letter   { position:absolute; bottom:25%; left:38%; width:20%; height:12%; background: linear-gradient(135deg, #f5eedd 0%, #e8dcc5 100%); transform: rotate(-3deg); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: lem-float 6s ease-in-out infinite; }
.scn-london-elma-letter .candle   { position:absolute; bottom:22%; left:55%; width:6%; height:16%; background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 8px rgba(255,200,100,0.4); animation: lem-flicker 4s ease-in-out infinite; }
.scn-london-elma-letter .figure   { position:absolute; bottom:22%; left:30%; width:12%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lem-breathe 8s ease-in-out infinite; }
@keyframes lem-curtain { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.05); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes lem-float   { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes lem-flicker { 0% { opacity:0.8; box-shadow: 0 0 12px 6px rgba(255,200,100,0.3); } 50% { opacity:1; box-shadow: 0 0 24px 12px rgba(255,200,100,0.6); } 100% { opacity:0.85; box-shadow: 0 0 14px 8px rgba(255,200,100,0.35); } }
@keyframes lem-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }

.scn-london-muriel-woodroffe {
  background:
    linear-gradient(180deg, #f5ead0 0%, #e0d0b8 50%, #c8b8a0 100%),
    radial-gradient(ellipse at 70% 40%, #fffcf0 0%, transparent 60%);
}
.scn-london-muriel-woodroffe .wall    { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #d1c3b0 100%); }
.scn-london-muriel-woodroffe .window  { position:absolute; top:8%; left:65%; width:25%; height:35%; background: linear-gradient(180deg, #c0d8f0 0%, #d8ecff 100%); border:2px solid #7a6a5a; border-radius:4px; }
.scn-london-muriel-woodroffe .curtain{ position:absolute; top:6%; left:63%; width:29%; height:39%; background: linear-gradient(135deg, #b8a08a 30%, #9a8a70 70%); border-radius:4px; transform-origin: top center; animation: lmw-curtain 15s ease-in-out infinite alternate; }
.scn-london-muriel-woodroffe .sofa   { position:absolute; bottom:20%; left:10%; right:20%; height:25%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); }
.scn-london-muriel-woodroffe .figure-a{ position:absolute; bottom:30%; left:15%; width:12%; height:45%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lmw-breathe 9s ease-in-out infinite; }
.scn-london-muriel-woodroffe .figure-b{ position:absolute; bottom:30%; left:45%; width:13%; height:48%; background: linear-gradient(180deg, #1a2a1a 0%, #001000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lmw-breathe 9s ease-in-out infinite 1s; }
.scn-london-muriel-woodroffe .lamp   { position:absolute; bottom:35%; right:8%; width:8%; height:20%; background: linear-gradient(180deg, #d4b880 0%, #b09860 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,200,120,0.5); animation: lmw-glow 6s ease-in-out infinite; }
.scn-london-muriel-woodroffe .rug    { position:absolute; bottom:8%; left:5%; right:15%; height:8%; background: linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 30%, #7a6a5a 70%, #5a4a3a 100%); border-radius: 50% / 100% 100% 0 0; opacity:0.6; }
@keyframes lmw-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(1); } }
@keyframes lmw-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes lmw-glow    { 0% { opacity:0.7; box-shadow: 0 0 20px 8px rgba(255,200,120,0.3); } 50% { opacity:1; box-shadow: 0 0 40px 16px rgba(255,200,120,0.6); } 100% { opacity:0.75; box-shadow: 0 0 24px 10px rgba(255,200,120,0.35); } }

.scn-london-police-inquiry {
  background:
    linear-gradient(180deg, #d0c0b0 0%, #b0a090 40%, #908070 100%),
    radial-gradient(ellipse at 50% 20%, #f0e8e0 0%, transparent 70%);
}
.scn-london-police-inquiry .wall    { position:absolute; inset:0; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%); }
.scn-london-police-inquiry .table   { position:absolute; bottom:25%; left:15%; right:15%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 -4px 8px rgba(0,0,0,0.4); }
.scn-london-police-inquiry .chair   { position:absolute; bottom:15%; right:20%; width:12%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%; transform-origin: bottom center; animation: lpi-tilt 7s ease-in-out infinite; }
.scn-london-police-inquiry .lamp    { position:absolute; bottom:30%; left:20%; width:8%; height:18%; background: radial-gradient(circle at 50% 100%, #ffd080 0%, #b08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,200,100,0.5), 0 -10px 40px 20px rgba(255,200,100,0.2); animation: lpi-flash 3s ease-in-out infinite; }
.scn-london-police-inquiry .police  { position:absolute; bottom:20%; left:30%; width:14%; height:55%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lpi-lean 5s ease-in-out infinite; }
.scn-london-police-inquiry .document{ position:absolute; bottom:30%; left:40%; width:15%; height:8%; background: linear-gradient(135deg, #f5eedd 0%, #e0d4c0 100%); transform: rotate(2deg); box-shadow: 0 1px 4px rgba(0,0,0,0.2); animation: lpi-shake 4s ease-in-out infinite; }
.scn-london-police-inquiry .clock   { position:absolute; top:10%; right:10%; width:10%; height:10%; background: radial-gradient(circle, #f0e8d0 0%, #c0b090 100%); border-radius: 50%; border: 2px solid #6a5a4a; box-shadow: 0 0 8px rgba(0,0,0,0.2); animation: lpi-tick 2s steps(60) infinite; }
@keyframes lpi-tilt  { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes lpi-flash { 0% { opacity:0.75; box-shadow: 0 0 20px 6px rgba(255,200,100,0.3); } 50% { opacity:1; box-shadow: 0 0 50px 20px rgba(255,200,100,0.6); } 100% { opacity:0.8; box-shadow: 0 0 24px 8px rgba(255,200,100,0.35); } }
@keyframes lpi-lean  { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lpi-shake { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes lpi-tick  { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.scn-london-durnford-convalesce {
  background:
    linear-gradient(180deg, #f5ecd8 0%, #e0d0b8 50%, #c8b8a0 100%),
    radial-gradient(ellipse at 50% 60%, #fffcf0 0%, transparent 60%);
}
.scn-london-durnford-convalesce .wall    { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #d1c3b0 100%); }
.scn-london-durnford-convalesce .window  { position:absolute; top:10%; left:60%; width:30%; height:40%; background: linear-gradient(180deg, #c0d8f0 0%, #d8ecff 100%); border:2px solid #7a6a5a; border-radius:4px; }
.scn-london-durnford-convalesce .curtain{ position:absolute; top:8%; left:58%; width:34%; height:44%; background: linear-gradient(135deg, #c8b8a8 30%, #a89888 70%); border-radius:4px; transform-origin: top center; animation: ldc-curtain 14s ease-in-out infinite alternate; }
.scn-london-durnford-convalesce .bed    { position:absolute; bottom:20%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 -4px 10px rgba(0,0,0,0.2); }
.scn-london-durnford-convalesce .patient{ position:absolute; bottom:22%; left:15%; width:20%; height:18%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center bottom; animation: ldc-breathe 8s ease-in-out infinite; }
.scn-london-durnford-convalesce .visitor{ position:absolute; bottom:24%; right:15%; width:14%; height:45%; background: linear-gradient(180deg, #1a2a1a 0%, #001000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ldc-breathe 8s ease-in-out infinite 1.5s; }
.scn-london-durnford-convalesce .lamp   { position:absolute; bottom:35%; left:5%; width:8%; height:20%; background: linear-gradient(180deg, #d4b880 0%, #b09860 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,200,120,0.5); animation: ldc-glow 6s ease-in-out infinite; }
.scn-london-durnford-convalesce .bottle { position:absolute; bottom:28%; left:35%; width:5%; height:12%; background: linear-gradient(135deg, #c8e0d0 0%, #90b8a0 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px rgba(0,0,0,0.2); animation: ldc-float 7s ease-in-out infinite; }
@keyframes ldc-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes ldc-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.015) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ldc-glow    { 0% { opacity:0.8; box-shadow: 0 0 20px 8px rgba(255,200,120,0.3); } 50% { opacity:1; box-shadow: 0 0 40px 16px rgba(255,200,120,0.6); } 100% { opacity:0.85; box-shadow: 0 0 24px 10px rgba(255,200,120,0.35); } }
@keyframes ldc-float   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-excavation-begins {
  background: linear-gradient(180deg, #2a1a3a 0%, #1a1a2e 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 40% 60%, #3a2a4a 0%, transparent 70%);
}
.scn-excavation-begins .sky-dusk {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a3a5e 0%, #2a1a3a 60%, #1a0a2e 100%);
  animation: eb-sky 12s ease-in-out infinite alternate;
}
.scn-excavation-begins .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1a12 40%, #2a2a1a 100%);
  border-radius: 40% 60% 0 0 / 20% 20% 0 0;
  animation: eb-ground 18s ease-in-out infinite alternate;
}
.scn-excavation-begins .boulder {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 90px;
  background: radial-gradient(ellipse at 35% 25%, #4a3a2a, #2a1a12);
  border-radius: 60% 40% 30% 50% / 70% 50% 60% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: eb-boulder 9s ease-in-out infinite;
}
.scn-excavation-begins .figure-left {
  position: absolute; bottom: 28%; left: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eb-figureL 4s ease-in-out infinite;
}
.scn-excavation-begins .figure-right {
  position: absolute; bottom: 28%; left: 50%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eb-figureR 4s ease-in-out infinite 0.5s;
}
.scn-excavation-begins .stake-tool {
  position: absolute; bottom: 32%; left: 42%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a, #1a120a);
  border-radius: 20% 20% 40% 40%;
  transform-origin: 50% 100%;
  animation: eb-stake 3s ease-in-out infinite;
}
.scn-excavation-begins .lantern-glow {
  position: absolute; bottom: 38%; left: 15%; width: 8px; height: 8px;
  background: radial-gradient(circle, #e0b060 0%, #c09040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #c09040, 0 0 40px 16px rgba(192,144,64,0.3);
  animation: eb-lantern 2s ease-in-out infinite alternate;
}
.scn-excavation-begins .shadow-cast {
  position: absolute; bottom: 28%; left: 18%; width: 60px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: eb-shadow 4s ease-in-out infinite;
}
@keyframes eb-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes eb-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes eb-boulder { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } }
@keyframes eb-figureL { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-2deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(-1deg); } }
@keyframes eb-figureR { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(-6px) translateY(0) rotate(1deg); } 75% { transform: translateX(-9px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-12px) translateY(0) rotate(0deg); } }
@keyframes eb-stake { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg) translateY(2px); } }
@keyframes eb-lantern { 0% { box-shadow: 0 0 15px 5px #c09040, 0 0 30px 10px rgba(192,144,64,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 25px 10px #e0b060, 0 0 50px 20px rgba(224,176,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 18px 6px #c09040, 0 0 35px 12px rgba(192,144,64,0.35); opacity: 0.85; } }
@keyframes eb-shadow { 0%,100% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.2); opacity: 0.8; } }

.scn-digging-with-stake {
  background: linear-gradient(180deg, #1a1a3a 0%, #0e0e2a 40%, #050510 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a4a 0%, transparent 70%);
}
.scn-digging-with-stake .sky-dusk-2 {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #3a2a5e 0%, #1a1a3a 50%, #0a0a1a 100%);
  animation: dw-sky 14s ease-in-out infinite alternate;
}
.scn-digging-with-stake .ground-2 {
  position: absolute; bottom: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(0deg, #0a0a0a 0%, #151510 40%, #1a1a12 100%);
  border-radius: 20% 80% 0 0 / 10% 20% 0 0;
}
.scn-digging-with-stake .hole-dark {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, #000000 0%, #050505 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.8), 0 0 10px 2px rgba(0,0,0,0.5);
  animation: dw-hole 7s ease-in-out infinite alternate;
}
.scn-digging-with-stake .leaves-scatter {
  position: absolute; bottom: 40%; left: 35%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #1a1a0a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: dw-leaves 12s ease-in-out infinite alternate;
}
.scn-digging-with-stake .stake-placed {
  position: absolute; bottom: 22%; left: 42%; width: 5px; height: 35px;
  background: linear-gradient(180deg, #3a2a1a, #1a120a);
  border-radius: 10% 10% 30% 30%;
  transform-origin: 50% 100%;
  animation: dw-stake 4s ease-in-out infinite;
}
.scn-digging-with-stake .figure-bending {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: dw-figure 5s ease-in-out infinite;
}
.scn-digging-with-stake .hand-reach {
  position: absolute; bottom: 28%; left: 38%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #1a1a2e, #0a0a1a);
  border-radius: 40% 40% 20% 20%;
  transform-origin: 50% 100%;
  animation: dw-hand 3s ease-in-out infinite;
}
@keyframes dw-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dw-hole { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.85; } }
@keyframes dw-leaves { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 50% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-3px) translateY(1px) rotate(-1deg); } }
@keyframes dw-stake { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes dw-figure { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(4deg); } }
@keyframes dw-hand { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(10deg); } }

.scn-strenuous-excavation {
  background: linear-gradient(180deg, #050510 0%, #0a0a1a 40%, #151520 100%),
              radial-gradient(ellipse at 50% 90%, #1a1a2e 0%, transparent 70%);
}
.scn-strenuous-excavation .sky-dark {
  position: absolute; inset: 0 0 70% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  animation: se-sky 20s linear infinite alternate;
}
.scn-strenuous-excavation .hole-deep {
  position: absolute; bottom: 10%; left: 35%; width: 100px; height: 60px;
  background: radial-gradient(ellipse, #000 0%, #0a0a0a 60%, transparent 100%);
  border-radius: 40% 60% 50% 50% / 30% 30% 60% 60%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.9);
  animation: se-hole 9s ease-in-out infinite alternate;
}
.scn-strenuous-excavation .figure-left-dig {
  position: absolute; bottom: 12%; left: 22%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #151520 0%, #0a0a10 100%);
  border-radius: 50% 50% 30% 40% / 70% 60% 30% 40%;
  transform-origin: bottom center;
  animation: se-figL 5s ease-in-out infinite;
}
.scn-strenuous-excavation .figure-right-dig {
  position: absolute; bottom: 14%; left: 52%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #151520 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 30% / 60% 70% 40% 30%;
  transform-origin: bottom center;
  animation: se-figR 5s ease-in-out infinite 0.7s;
}
.scn-strenuous-excavation .earth-pile {
  position: absolute; bottom: 2%; left: 20%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, #1a1a12 0%, #0a0a05 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  animation: se-earth 8s ease-in-out infinite alternate;
}
.scn-strenuous-excavation .stake-wood {
  position: absolute; bottom: 8%; left: 44%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #2a1a12, #0a0505);
  border-radius: 10% 10% 20% 20%;
  transform-origin: 50% 100%;
  animation: se-stake 3.5s ease-in-out infinite;
}
.scn-strenuous-excavation .candle-light {
  position: absolute; bottom: 38%; left: 30%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #e0a050 0%, #c08030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px #c08030, 0 0 24px 8px rgba(192,128,48,0.4);
  animation: se-candle 2s ease-in-out infinite alternate;
}
@keyframes se-sky { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes se-hole { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes se-figL { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-3deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes se-figR { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes se-earth { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.03) translateY(-2px); } 100% { transform: scaleX(0.97) translateY(0); } }
@keyframes se-stake { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-1px); } }
@keyframes se-candle { 0% { box-shadow: 0 0 10px 3px #c08030, 0 0 20px 6px rgba(192,128,48,0.3); opacity: 0.9; } 50% { box-shadow: 0 0 20px 8px #e0a050, 0 0 40px 16px rgba(224,160,80,0.5); opacity: 1; } 100% { box-shadow: 0 0 12px 4px #c08030, 0 0 24px 8px rgba(192,128,48,0.35); opacity: 0.85; } }

.scn-discovery-of-cloth {
  background: linear-gradient(180deg, #0a0a0f 0%, #050508 40%, #000000 100%),
              radial-gradient(ellipse at 60% 70%, #151520 0%, transparent 70%);
}
.scn-discovery-of-cloth .bg-darkness {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #000000 0%, #050510 60%, #0a0a1a 100%);
  animation: dc-bg 16s ease-in-out infinite alternate;
}
.scn-discovery-of-cloth .hole-opening {
  position: absolute; bottom: 15%; left: 30%; width: 90px; height: 50px;
  background: radial-gradient(ellipse, #000 0%, #050505 60%, transparent 100%);
  border-radius: 40% 60% 50% 50% / 30% 30% 60% 60%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.8);
  animation: dc-hole 8s ease-in-out infinite alternate;
}
.scn-discovery-of-cloth .cloth-emerge {
  position: absolute; bottom: 16%; left: 35%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #b0a090 0%, #706050 100%);
  border-radius: 10% 20% 30% 40% / 20% 20% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6), inset 0 0 10px rgba(255,255,255,0.1);
  animation: dc-cloth 5s ease-in-out infinite alternate;
}
.scn-discovery-of-cloth .hand-muriel {
  position: absolute; bottom: 22%; left: 32%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #151520 0%, #0a0a10 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: 50% 100%;
  animation: dc-hand 3s ease-in-out infinite;
}
.scn-discovery-of-cloth .stake-held {
  position: absolute; bottom: 10%; left: 40%; width: 5px; height: 40px;
  background: linear-gradient(180deg, #2a1a12, #0a0505);
  border-radius: 10% 10% 20% 20%;
  transform-origin: 50% 100%;
  animation: dc-stake 4s ease-in-out infinite;
}
.scn-discovery-of-cloth .dust-sparkle {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,255,200,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: dc-dust 6s ease-in-out infinite alternate;
}
.scn-discovery-of-cloth .shadow-fall {
  position: absolute; bottom: 20%; left: 28%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: dc-shadow 4s ease-in-out infinite;
}
@keyframes dc-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes dc-hole { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.08); opacity: 1; } 100% { transform: scaleY(0.92); opacity: 0.85; } }
@keyframes dc-cloth { 0% { transform: translateY(0) scale(1); opacity: 0.7; } 50% { transform: translateY(-4px) scale(1.03); opacity: 1; } 100% { transform: translateY(0) scale(0.98); opacity: 0.8; } }
@keyframes dc-hand { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(8deg); } }
@keyframes dc-stake { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes dc-dust { 0% { transform: scale(0.8) translate(0,0); opacity: 0.3; } 50% { transform: scale(1.2) translate(5px, -5px); opacity: 0.6; } 100% { transform: scale(0.9) translate(-3px, 2px); opacity: 0.4; } }
@keyframes dc-shadow { 0%,100% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.3); opacity: 0.8; } }

/* palace-private-confrontation */
.scn-palace-private-confrontation {
  background: 
    linear-gradient(180deg, #d4b87a 0%, #b8945a 40%, #8a6a3a 100%),
    radial-gradient(ellipse at 70% 60%, rgba(255,230,180,0.4) 0%, transparent 50%);
}
.scn-palace-private-confrontation .wall-bg {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(135deg, #c8a86e 0%, #a8875a 100%);
  animation: ppc-wall 14s ease-in-out infinite alternate;
}
.scn-palace-private-confrontation .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 100% 100%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-palace-private-confrontation .window-light {
  position:absolute; top:10%; right:20%; width:30%; height:50%;
  background: radial-gradient(ellipse, rgba(255,240,200,0.6) 0%, transparent 60%);
  filter: blur(8px);
  animation: ppc-light 3s ease-in-out infinite alternate;
}
.scn-palace-private-confrontation .figure-left {
  position:absolute; bottom:20%; left:18%; width:16%; height:55%;
  background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ppc-figL 6s ease-in-out infinite;
}
.scn-palace-private-confrontation .figure-right {
  position:absolute; bottom:20%; right:18%; width:16%; height:58%;
  background: radial-gradient(ellipse at 50% 30%, #1c140e 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ppc-figR 4s ease-in-out infinite;
}
.scn-palace-private-confrontation .table {
  position:absolute; bottom:22%; left:50%; width:20%; height:8%;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-palace-private-confrontation .shadow-sharp {
  position:absolute; bottom:20%; left:30%; width:40%; height:10%;
  background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.3) 100%);
  filter: blur(2px);
  animation: ppc-shadow 8s ease-in-out infinite;
}
@keyframes ppc-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ppc-light { 0% { opacity:0.7; transform:scale(0.95) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:0.8; transform:scale(1) } }
@keyframes ppc-figL { 0% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(-4px) rotate(1deg) } 50% { transform:translateX(2px) rotate(-0.5deg) } 75% { transform:translateX(-2px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes ppc-figR { 0% { transform:translateX(0) rotate(0) scale(1) } 30% { transform:translateX(3px) rotate(1deg) scale(1.02) } 60% { transform:translateX(-2px) rotate(-0.5deg) scale(0.98) } 100% { transform:translateX(0) rotate(0) scale(1) } }
@keyframes ppc-shadow { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* palace-oberg-justification */
.scn-palace-oberg-justification {
  background: 
    linear-gradient(180deg, #d4c49a 0%, #b8a87a 30%, #9a8a5a 100%),
    radial-gradient(ellipse at 50% 80%, rgba(255,235,200,0.5) 0%, transparent 70%);
}
.scn-palace-oberg-justification .room-depth {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #a8946a 0%, transparent 30%, transparent 70%, #a8946a 100%);
  animation: poj-depth 12s ease-in-out infinite alternate;
}
.scn-palace-oberg-justification .desk {
  position:absolute; bottom:20%; left:35%; width:30%; height:15%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  transform: perspective(800px) rotateX(10deg);
}
.scn-palace-oberg-justification .chair {
  position:absolute; bottom:22%; left:42%; width:12%; height:20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
  animation: poj-chair 5s ease-in-out infinite;
}
.scn-palace-oberg-justification .chandelier {
  position:absolute; top:5%; left:50%; width:20%; height:12%;
  transform:translateX(-50%);
  background: radial-gradient(ellipse, #c8a040 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,160,64,0.5);
  animation: poj-light 3s ease-in-out infinite alternate;
}
.scn-palace-oberg-justification .door {
  position:absolute; top:10%; right:10%; width:20%; height:60%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 0 0 8% 8% / 0 0 20% 20%;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
  animation: poj-door 8s ease-in-out infinite;
}
.scn-palace-oberg-justification .figure-standing {
  position:absolute; bottom:15%; left:20%; width:15%; height:55%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: poj-fig 4s ease-in-out infinite;
}
.scn-palace-oberg-justification .wainscot {
  position:absolute; bottom:10%; left:0; right:0; height:40%;
  background: repeating-linear-gradient(90deg, #a0805a 0px, #a0805a 8px, #8a6a4a 8px, #8a6a4a 16px);
  border-radius: 0 0 20% 20% / 0 0 100% 100%;
  opacity:0.3;
  animation: poj-wain 20s linear infinite;
}
@keyframes poj-depth { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes poj-chair { 0% { transform:translateY(0) rotate(0) } 30% { transform:translateY(-2px) rotate(1deg) } 60% { transform:translateY(0) rotate(-0.5deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes poj-light { 0% { opacity:0.8; transform:scale(0.95) translateX(-50%) } 50% { opacity:1; transform:scale(1.05) translateX(-50%) } 100% { opacity:0.9; transform:scale(1) translateX(-50%) } }
@keyframes poj-door { 0% { transform:scaleX(1) } 25% { transform:scaleX(0.98) } 50% { transform:scaleX(1.02) } 75% { transform:scaleX(0.99) } 100% { transform:scaleX(1) } }
@keyframes poj-fig { 0% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-3px) rotate(1deg) } 50% { transform:translateY(0) rotate(-0.5deg) } 75% { transform:translateY(-2px) rotate(0.5deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes poj-wain { 0% { background-position:0 0 } 100% { background-position:100px 0 } }

/* palace-oberg-cold */
.scn-palace-oberg-cold {
  background: 
    linear-gradient(180deg, #c0b090 0%, #a89878 30%, #8a7a5a 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,245,230,0.3) 0%, transparent 60%);
}
.scn-palace-oberg-cold .corridor-far {
  position:absolute; top:0; left:0; right:0; height:100%;
  background: linear-gradient(90deg, #a89070 0%, transparent 20%, transparent 80%, #a89070 100%);
  animation: poc-corridor 15s ease-in-out infinite alternate;
}
.scn-palace-oberg-cold .column-left {
  position:absolute; top:0; left:10%; width:8%; height:100%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: poc-colL 10s ease-in-out infinite;
}
.scn-palace-oberg-cold .column-right {
  position:absolute; top:0; right:10%; width:8%; height:100%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: poc-colR 10s ease-in-out infinite;
  animation-delay: -5s;
}
.scn-palace-oberg-cold .figure-oberg {
  position:absolute; bottom:15%; left:30%; width:14%; height:55%;
  background: linear-gradient(180deg, #1a120a 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: poc-oberg 4s ease-in-out infinite;
}
.scn-palace-oberg-cold .figure-hero {
  position:absolute; bottom:15%; right:30%; width:14%; height:56%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: poc-hero 5s ease-in-out infinite;
}
.scn-palace-oberg-cold .floor-path {
  position:absolute; bottom:0; left:20%; right:20%; height:20%;
  background: linear-gradient(90deg, transparent, #5a4a2a 30%, #5a4a2a 70%, transparent);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  opacity:0.4;
}
.scn-palace-oberg-cold .ceiling-arch {
  position:absolute; top:0; left:15%; right:15%; height:10%;
  background: radial-gradient(ellipse at 50% 100%, #a89878 0%, transparent 70%);
  filter: blur(4px);
}
@keyframes poc-corridor { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes poc-colL { 0% { transform:scaleY(1) } 30% { transform:scaleY(1.02) } 60% { transform:scaleY(0.98) } 100% { transform:scaleY(1) } }
@keyframes poc-colR { 0% { transform:scaleY(1) } 30% { transform:scaleY(1.02) } 60% { transform:scaleY(0.98) } 100% { transform:scaleY(1) } }
@keyframes poc-oberg { 0% { transform:translateY(0) rotate(0) } 20% { transform:translateY(-3px) rotate(1deg) } 40% { transform:translateY(0) rotate(-0.5deg) } 60% { transform:translateY(-2px) rotate(0.5deg) } 80% { transform:translateY(-1px) rotate(-0.2deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes poc-hero { 0% { transform:translateY(0) rotate(0) scale(1) } 25% { transform:translateY(-2px) rotate(-0.5deg) scale(1.01) } 50% { transform:translateY(0) rotate(0.3deg) scale(0.99) } 75% { transform:translateY(-1px) rotate(-0.2deg) scale(1) } 100% { transform:translateY(0) rotate(0) scale(1) } }

/* palace-defiance-threat */
.scn-palace-defiance-threat {
  background: 
    linear-gradient(180deg, #d0be90 0%, #b8a470 40%, #8a6a3a 100%),
    radial-gradient(ellipse at 30% 50%, rgba(255,240,210,0.5) 0%, transparent 50%);
}
.scn-palace-defiance-threat .window-frame {
  position:absolute; top:5%; left:50%; width:40%; height:55%;
  transform:translateX(-50%);
  border: 8px solid #6a4a2a;
  border-radius: 4px;
  background: radial-gradient(ellipse, #ffe8c0 0%, #c8a870 100%);
  box-shadow: 0 0 40px rgba(200,168,112,0.6);
  animation: pdt-window 8s ease-in-out infinite alternate;
}
.scn-palace-defiance-threat .figure-baron {
  position:absolute; bottom:10%; left:20%; width:18%; height:60%;
  background: linear-gradient(180deg, #1a1008 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pdt-baron 3s ease-in-out infinite;
}
.scn-palace-defiance-threat .figure-elma {
  position:absolute; bottom:12%; right:20%; width:16%; height:55%;
  background: linear-gradient(180deg, #2a1a0a 0%, #100804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pdt-elma 4s ease-in-out infinite;
}
.scn-palace-defiance-threat .curtain-left {
  position:absolute; top:0; left:0; width:12%; height:70%;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a2a1a 100%);
  border-radius: 0 40% 40% 0 / 0 100% 100% 0;
  filter: drop-shadow(4px 0 6px rgba(0,0,0,0.5));
  animation: pdt-curl 6s ease-in-out infinite;
}
.scn-palace-defiance-threat .curtain-right {
  position:absolute; top:0; right:0; width:12%; height:70%;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a2a1a 100%);
  border-radius: 40% 0 0 40% / 100% 0 0 100%;
  filter: drop-shadow(-4px 0 6px rgba(0,0,0,0.5));
  animation: pdt-curR 6s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-palace-defiance-threat .ledge {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.4);
}
.scn-palace-defiance-threat .floor-tile {
  position:absolute; bottom:0; left:25%; right:25%; height:8%;
  background: repeating-conic-gradient(#6a4a2a 0% 25%, transparent 0% 50%) 0 0 / 20px 20px;
  opacity:0.3;
  animation: pdt-tile 30s linear infinite;
}
@keyframes pdt-window { 0% { opacity:0.7; transform:scale(0.98) translateX(-50%) } 50% { opacity:1; transform:scale(1.02) translateX(-50%) } 100% { opacity:0.8; transform:scale(1) translateX(-50%) } }
@keyframes pdt-baron { 0% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-4px) rotate(1.5deg) } 50% { transform:translateY(0) rotate(-0.5deg) } 75% { transform:translateY(-2px) rotate(0.5deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes pdt-elma { 0% { transform:translateY(0) rotate(0) scale(1) } 30% { transform:translateY(-3px) rotate(-1deg) scale(1.02) } 60% { transform:translateY(0) rotate(0.3deg) scale(0.98) } 100% { transform:translateY(0) rotate(0) scale(1) } }
@keyframes pdt-curl { 0% { transform:scaleX(1) } 30% { transform:scaleX(1.05) } 60% { transform:scaleX(0.95) } 100% { transform:scaleX(1) } }
@keyframes pdt-curR { 0% { transform:scaleX(1) } 30% { transform:scaleX(1.05) } 60% { transform:scaleX(0.95) } 100% { transform:scaleX(1) } }
@keyframes pdt-tile { 0% { background-position:0 0 } 100% { background-position:40px 40px } }

/* === abo-boranski-pledge === */
.scn-abo-boranski-pledge { background: linear-gradient(180deg, #f5e6c8 0%, #d4b89a 40%, #b8967a 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%); }

.scn-abo-boranski-pledge .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d5b8 0%, #c8aa8a 100%); }
.scn-abo-boranski-pledge .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b6f50 0%, #5a4030 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-abo-boranski-pledge .desk { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: abp-desk 6s ease-in-out infinite; }
.scn-abo-boranski-pledge .document { position:absolute; bottom:25%; left:38%; width:16%; height:6%; background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%); border-radius: 2px; box-shadow: 0 0 8px rgba(0,0,0,.2); animation: abp-doc 4s ease-in-out infinite; }
.scn-abo-boranski-pledge .candle { position:absolute; bottom:27%; left:28%; width:2%; height:10%; background: linear-gradient(180deg, #f5e6c8 0%, #d4b89a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 -8px 20px #ffd080, 0 -16px 40px rgba(255,208,128,.4); animation: abp-flame 2s ease-in-out infinite; }
.scn-abo-boranski-pledge .figure-left { position:absolute; bottom:12%; left:12%; width:14%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: abp-fig-l 8s ease-in-out infinite; }
.scn-abo-boranski-pledge .figure-right { position:absolute; bottom:12%; right:12%; width:14%; height:42%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: abp-fig-r 9s ease-in-out infinite; }
.scn-abo-boranski-pledge .shadow { position:absolute; bottom:18%; left:18%; right:18%; height:5%; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(8px); animation: abp-shad 6s ease-in-out infinite; }
.scn-abo-boranski-pledge .window-bars { position:absolute; top:5%; left:5%; right:5%; bottom:45%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 18px, #5a4030 18px, #5a4030 22px); border: 6px solid #5a4030; border-radius: 8px; opacity: 0.6; animation: abp-bars 10s linear infinite; }

@keyframes abp-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes abp-doc { 0%,100% { opacity: 0.9; transform: translate(0,0) rotate(0deg); } 25% { opacity: 1; transform: translate(2px,-1px) rotate(0.5deg); } 75% { opacity: 0.85; transform: translate(-1px,1px) rotate(-0.3deg); } }
@keyframes abp-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 25% { transform: scaleY(1.1) translateY(-2px); opacity: 1; } 50% { transform: scaleY(0.9) translateY(1px); opacity: 0.8; } 75% { transform: scaleY(1.2) translateY(-3px); opacity: 1; } 100% { transform: scaleY(1) translateY(0); opacity: 0.9; } }
@keyframes abp-fig-l { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(-2deg); } 60% { transform: translateX(-2px) rotate(1deg); } }
@keyframes abp-fig-r { 0%,100% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-3px) rotate(1.5deg); } 70% { transform: translateX(2px) rotate(-1deg); } }
@keyframes abp-shad { 0%,100% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.1); opacity: 0.2; } }
@keyframes abp-bars { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

/* === abo-intuition-wonder === */
.scn-abo-intuition-wonder { background: linear-gradient(180deg, #f5e6c8 0%, #dfc8a8 50%, #c8a888 100%), radial-gradient(ellipse at 80% 20%, #fff5e0 0%, transparent 60%); }

.scn-abo-intuition-wonder .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e8d5b8 0%, #c8aa8a 100%); }
.scn-abo-intuition-wonder .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8b6f50 0%, #5a4030 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-abo-intuition-wonder .bed { position:absolute; bottom:20%; left:10%; width:30%; height:18%; background: linear-gradient(180deg, #b09880 0%, #806050 100%); border-radius: 8px 8px 20px 20px; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: abw-bed 8s ease-in-out infinite; }
.scn-abo-intuition-wonder .figure-running { position:absolute; bottom:10%; left:50%; width:12%; height:35%; background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: abw-run 3s ease-in-out infinite; }
.scn-abo-intuition-wonder .door { position:absolute; bottom:15%; right:10%; width:18%; height:35%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 4px 4px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.3); animation: abw-door 6s ease-in-out infinite; }
.scn-abo-intuition-wonder .window { position:absolute; top:10%; left:38%; width:24%; height:30%; background: linear-gradient(180deg, #e0d0b8 0%, #c0a888 100%); border: 6px solid #5a4030; border-radius: 6px; box-shadow: inset 0 0 20px rgba(255,255,200,.3); animation: abw-window 12s ease-in-out infinite; }
.scn-abo-intuition-wonder .rug { position:absolute; bottom:8%; left:25%; right:25%; height:8%; background: repeating-linear-gradient(90deg, #7a5a3a 0px, #7a5a3a 20px, #9a7a5a 20px, #9a7a5a 40px); border-radius: 50%; transform: scaleY(0.3); opacity: 0.7; animation: abw-rug 10s linear infinite; }
.scn-abo-intuition-wonder .lamp { position:absolute; top:15%; left:15%; width:6%; height:12%; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #e0b060 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,208,128,.5); animation: abw-lamp 3s ease-in-out infinite alternate; }

@keyframes abw-bed { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } }
@keyframes abw-run { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-10px) rotate(-5deg); } 40% { transform: translateX(-20px) rotate(2deg); } 60% { transform: translateX(10px) rotate(-3deg); } 80% { transform: translateX(20px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes abw-door { 0%,100% { transform: rotateY(0deg); } 25% { transform: rotateY(-10deg); } 75% { transform: rotateY(5deg); } }
@keyframes abw-window { 0%,100% { opacity: 0.6; } 50% { opacity: 1; } }
@keyframes abw-rug { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes abw-lamp { 0% { box-shadow: 0 0 20px 5px rgba(255,208,128,.4); opacity: 0.8; } 100% { box-shadow: 0 0 40px 15px rgba(255,208,128,.7); opacity: 1; } }

/* === abo-boranski-motive === */
.scn-abo-boranski-motive { background: linear-gradient(180deg, #e8d5b8 0%, #c8aa8a 40%, #a08060 100%), radial-gradient(ellipse at 30% 50%, #fff5e0 0%, transparent 60%); }

.scn-abo-boranski-motive .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d4b89a 0%, #b8967a 100%); }
.scn-abo-boranski-motive .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-abo-boranski-motive .table { position:absolute; bottom:12%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #8b6f50 0%, #5a4030 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: abm-table 7s ease-in-out infinite; }
.scn-abo-boranski-motive .coin { position:absolute; bottom:16%; left:35%; width:5%; height:5%; background: radial-gradient(circle at 40% 40%, #ffd080 0%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 10px 2px #ffd080; animation: abm-coin 4s ease-in-out infinite; }
.scn-abo-boranski-motive .hand { position:absolute; bottom:10%; left:42%; width:8%; height:14%; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: abm-hand 6s ease-in-out infinite; }
.scn-abo-boranski-motive .guard { position:absolute; bottom:4%; right:8%; width:14%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: abm-guard 8s ease-in-out infinite; }
.scn-abo-boranski-motive .shadow { position:absolute; bottom:8%; left:10%; right:10%; height:6%; background: rgba(0,0,0,.25); border-radius: 50%; filter: blur(10px); animation: abm-shad 5s ease-in-out infinite; }
.scn-abo-boranski-motive .letter { position:absolute; bottom:15%; left:48%; width:8%; height:6%; background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,.15); animation: abm-letter 4s ease-in-out infinite; }

@keyframes abm-table { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.01); } }
@keyframes abm-coin { 0%,100% { transform: scale(1) rotate(0deg); opacity: 1; } 50% { transform: scale(1.3) rotate(180deg); opacity: 0.8; } }
@keyframes abm-hand { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-4px) rotate(-5deg); } 70% { transform: translateX(4px) rotate(3deg); } }
@keyframes abm-guard { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(1px) rotate(-1deg); } }
@keyframes abm-shad { 0%,100% { opacity: 0.25; transform: scaleX(1); } 50% { opacity: 0.4; transform: scaleX(1.2); } }
@keyframes abm-letter { 0%,100% { opacity: 0.9; transform: translate(0,0) rotate(0deg); } 50% { opacity: 1; transform: translate(1px,-1px) rotate(0.5deg); } }

/* === abo-distrust-friendliness === */
.scn-abo-distrust-friendliness { background: linear-gradient(180deg, #f0dcc0 0%, #d4b89a 40%, #b8967a 100%), radial-gradient(ellipse at 60% 30%, #fff5e0 0%, transparent 70%); }

.scn-abo-distrust-friendliness .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e8d5b8 0%, #c8aa8a 100%); }
.scn-abo-distrust-friendliness .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8b6f50 0%, #5a4030 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-abo-distrust-friendliness .chair { position:absolute; bottom:12%; left:20%; width:14%; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: abd-chair 7s ease-in-out infinite; }
.scn-abo-distrust-friendliness .figure-sitting { position:absolute; bottom:8%; left:22%; width:12%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: abd-fig 8s ease-in-out infinite; }
.scn-abo-distrust-friendliness .document { position:absolute; bottom:18%; left:36%; width:10%; height:6%; background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%); border-radius: 2px; box-shadow: 0 0 8px rgba(0,0,0,.2); animation: abd-doc 4s ease-in-out infinite; }
.scn-abo-distrust-friendliness .candle { position:absolute; bottom:20%; left:50%; width:2%; height:10%; background: linear-gradient(180deg, #f5e6c8 0%, #d4b89a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 -8px 20px #ffd080, 0 -16px 40px rgba(255,208,128,.4); animation: abd-flame 2.5s ease-in-out infinite; }
.scn-abo-distrust-friendliness .shadow-hand { position:absolute; bottom:15%; right:20%; width:12%; height:18%; background: rgba(0,0,0,.2); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(6px); transform-origin: bottom center; animation: abd-shad-hand 6s ease-in-out infinite; }
.scn-abo-distrust-friendliness .clock { position:absolute; top:10%; right:10%; width:10%; height:10%; background: radial-gradient(circle at 50% 50%, #c0a888 0%, #8b6f50 100%); border-radius: 50%; border: 4px solid #5a4030; box-shadow: 0 0 8px rgba(0,0,0,.3); animation: abd-clock 12s linear infinite; }

@keyframes abd-chair { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes abd-fig { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(1.5deg); } }
@keyframes abd-doc { 0%,100% { opacity: 0.9; transform: translate(0,0) rotate(0deg); } 50% { opacity: 1; transform: translate(1px,-1px) rotate(0.5deg); } }
@keyframes abd-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 25% { transform: scaleY(1.2) translateY(-3px); opacity: 1; } 50% { transform: scaleY(0.8) translateY(2px); opacity: 0.7; } 75% { transform: scaleY(1.3) translateY(-4px); opacity: 1; } 100% { transform: scaleY(1) translateY(0); opacity: 0.9; } }
@keyframes abd-shad-hand { 0%,100% { transform: translateX(0) scaleX(1); opacity: 0.2; } 50% { transform: translateX(8px) scaleX(1.3); opacity: 0.4; } }
@keyframes abd-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* Scene: probing-about-woodroffe (tense + sunlit, yacht) */
.scn-probing-about-woodroffe {
  background: linear-gradient(180deg, #f5e6c8 0%, #c2a57a 30%, #6b8e9c 60%, #2b4a5c 100%),
              radial-gradient(ellipse at 70% 30%, #f0d5a0 0%, transparent 50%);
}
.scn-probing-about-woodroffe .sea {
  position: absolute; inset: 55% 0 0 0;
  background: linear-gradient(180deg, #3b6b7a 0%, #1f3a44 50%, #0d1e26 100%);
  animation: si2-sea 6s ease-in-out infinite alternate;
}
.scn-probing-about-woodroffe .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffe6a0 0%, #d4b87a 50%, #9b8a6c 100%);
  animation: si2-sky 8s ease-in-out infinite alternate;
}
.scn-probing-about-woodroffe .sun {
  position: absolute; top: 10%; left: 75%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #fffbe6 0%, #ffe066 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,224,102,0.5), 0 0 120px 40px rgba(255,224,102,0.2);
  animation: si2-sun 4s ease-in-out infinite alternate;
}
.scn-probing-about-woodroffe .hull {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 30% 30%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: si2-hull 5s ease-in-out infinite;
}
.scn-probing-about-woodroffe .sail {
  position: absolute; bottom: 40%; left: 42%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #f5dcc0 0%, #d4b89a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  transform: skewX(-5deg);
  box-shadow: -2px 0 6px rgba(0,0,0,0.2);
  animation: si2-sail 6s ease-in-out infinite alternate;
}
.scn-probing-about-woodroffe .mast {
  position: absolute; bottom: 35%; left: 47%; width: 6px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 2px;
  animation: si2-mast 5s ease-in-out infinite;
}
.scn-probing-about-woodroffe .figure {
  position: absolute; bottom: 30%; left: 40%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: si2-figure 3s ease-in-out infinite;
}
.scn-probing-about-woodroffe .shadow {
  position: absolute; bottom: 30%; left: 38%; width: 20px; height: 6px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: si2-shadow 3s ease-in-out infinite;
}
@keyframes si2-sea {
  0% { opacity:0.8; transform: translateY(0); }
  50% { opacity:1; transform: translateY(-3px); }
  100% { opacity:0.9; transform: translateY(2px); }
}
@keyframes si2-sky {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes si2-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 si2-hull {
  0%,100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}
@keyframes si2-sail {
  0% { transform: skewX(-5deg) rotate(-1deg); }
  50% { transform: skewX(-3deg) rotate(2deg); }
  100% { transform: skewX(-6deg) rotate(-2deg); }
}
@keyframes si2-mast {
  0%,100% { transform: rotate(0); }
  50% { transform: rotate(1deg); }
}
@keyframes si2-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(4px) rotate(2deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes si2-shadow {
  0%,100% { transform: scaleX(1); opacity:0.3; }
  50% { transform: scaleX(1.3); opacity:0.5; }
}

/* Scene: muriels-apathy (tense + sunlit, interior with window) */
.scn-muriels-apathy {
  background: linear-gradient(180deg, #d4c4a0 0%, #b09a7a 30%, #8a7056 60%, #5a4a3a 100%),
              radial-gradient(ellipse at 50% 20%, #f5e0b0 0%, transparent 60%);
}
.scn-muriels-apathy .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #9a8a6e 0%, #b8a88a 40%, #a09074 100%);
  animation: si3-wall 12s ease-in-out infinite alternate;
}
.scn-muriels-apathy .window-frame {
  position: absolute; top: 20%; left: 25%; width: 50%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: si3-frame 8s ease-in-out infinite alternate;
}
.scn-muriels-apathy .window-pane {
  position: absolute; top: 22%; left: 27%; width: 46%; height: 56%;
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b8a0 40%, #b0a088 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: si3-pane 6s ease-in-out infinite alternate;
}
.scn-muriels-apathy .curtain-left {
  position: absolute; top: 20%; left: 24%; width: 15%; height: 60%;
  background: linear-gradient(180deg, #c89a7a 0%, #a0785a 100%);
  border-radius: 0 20% 0 20% / 0 10% 0 10%;
  transform-origin: top left;
  animation: si3-curtain-l 10s ease-in-out infinite;
}
.scn-muriels-apathy .curtain-right {
  position: absolute; top: 20%; right: 24%; width: 15%; height: 60%;
  background: linear-gradient(180deg, #c89a7a 0%, #a0785a 100%);
  border-radius: 20% 0 20% 0 / 10% 0 10% 0;
  transform-origin: top right;
  animation: si3-curtain-r 10s ease-in-out infinite reverse;
}
.scn-muriels-apathy .figure {
  position: absolute; bottom: 30%; left: 40%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: si3-figure 4s ease-in-out infinite;
}
.scn-muriels-apathy .letter {
  position: absolute; bottom: 28%; left: 46%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #f5e0b0 0%, #d4b87a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: si3-letter 6s ease-in-out infinite alternate;
}
.scn-muriels-apathy .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: si3-shadow 4s ease-in-out infinite;
}
@keyframes si3-wall {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes si3-frame {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.98); }
}
@keyframes si3-pane {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.75; }
}
@keyframes si3-curtain-l {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-8px) rotate(-3deg); }
}
@keyframes si3-curtain-r {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(8px) rotate(3deg); }
}
@keyframes si3-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 si3-letter {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes si3-shadow {
  0%,100% { transform: scaleX(1); opacity:0.2; }
  50% { transform: scaleX(1.2); opacity:0.4; }
}

/* Scene: muriels-fear (tense + sunlit, silhouette against bright sky) */
.scn-muriels-fear {
  background: linear-gradient(180deg, #ffe6a0 0%, #d4b87a 30%, #a09074 70%, #6b5a4a 100%),
              radial-gradient(ellipse at 50% 15%, #fff0c0 0%, transparent 50%);
}
.scn-muriels-fear .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe6b0 0%, #d4c09a 50%, #a09070 100%);
  animation: si4-sky 10s ease-in-out infinite alternate;
}
.scn-muriels-fear .sun {
  position: absolute; top: 5%; left: 80%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #fffbe6 0%, #ffe066 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,224,102,0.6), 0 0 150px 60px rgba(255,224,102,0.2);
  animation: si4-sun 5s ease-in-out infinite alternate;
}
.scn-muriels-fear .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a5e 0%, #5a4a3a 100%);
  animation: si4-ground 12s ease-in-out infinite alternate;
}
.scn-muriels-fear .figure {
  position: absolute; bottom: 10%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: si4-figure 4s ease-in-out infinite;
}
.scn-muriels-fear .hands {
  position: absolute; bottom: 40%; left: 47%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: si4-hands 3s ease-in-out infinite;
}
.scn-muriels-fear .shadow {
  position: absolute; bottom: 8%; left: 40%; width: 50px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(5px);
  animation: si4-shadow 4s ease-in-out infinite;
}
.scn-muriels-fear .tear {
  position: absolute; bottom: 35%; left: 50%; width: 4px; height: 6px;
  background: rgba(200,200,255,0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: si4-tear 2s ease-in-out infinite;
}
@keyframes si4-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes si4-sun {
  0% { transform: scale(0.95); opacity:0.8; }
  50% { transform: scale(1.05); opacity:1; }
  100% { transform: scale(0.98); opacity:0.9; }
}
@keyframes si4-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(-1px); }
}
@keyframes si4-figure {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-3px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-2px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes si4-hands {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-5px) rotate(-5deg); }
  60% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes si4-shadow {
  0%,100% { transform: scaleX(1); opacity:0.3; }
  50% { transform: scaleX(1.4); opacity:0.6; }
}
@keyframes si4-tear {
  0% { transform: translateY(0) scaleY(1); opacity:0.6; }
  25% { transform: translateY(4px) scaleY(1.5); opacity:0.4; }
  50% { transform: translateY(2px) scaleY(0.8); opacity:0.5; }
  75% { transform: translateY(6px) scaleY(1.2); opacity:0.3; }
  100% { transform: translateY(0) scaleY(1); opacity:0.6; }
}

/* Scene: tragedy-in-muriel (tense + sunlit, bride silhouette) */
.scn-tragedy-in-muriel {
  background: linear-gradient(180deg, #f5e6c8 0%, #c2a57a 30%, #8a7056 70%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 30%, #f0d5a0 0%, transparent 60%);
}
.scn-tragedy-in-muriel .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b8a0 40%, #a09074 100%);
  animation: si5-bg 12s ease-in-out infinite alternate;
}
.scn-tragedy-in-muriel .veil {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  filter: blur(2px);
  animation: si5-veil 8s ease-in-out infinite alternate;
}
.scn-tragedy-in-muriel .dress {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 50%;
  background: linear-gradient(180deg, #f0e0d0 0%, #d4c0b0 60%, #c0a898 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: si5-dress 6s ease-in-out infinite;
}
.scn-tragedy-in-muriel .bouquet {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 24px;
  background: radial-gradient(circle, #f0d0c0 0%, #d0a898 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(240,208,192,0.4);
  animation: si5-bouquet 4s ease-in-out infinite;
}
.scn-tragedy-in-muriel .arm-left {
  position: absolute; bottom: 28%; left: 35%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 40% 20% / 30% 30% 50% 50%;
  transform: rotate(25deg);
  transform-origin: top center;
  animation: si5-arm-l 5s ease-in-out infinite;
}
.scn-tragedy-in-muriel .arm-right {
  position: absolute; bottom: 28%; right: 35%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 40% / 30% 30% 50% 50%;
  transform: rotate(-25deg);
  transform-origin: top center;
  animation: si5-arm-r 5s ease-in-out infinite reverse;
}
.scn-tragedy-in-muriel .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 12px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(6px);
  animation: si5-shadow 6s ease-in-out infinite;
}
@keyframes si5-bg {
  0% { opacity:0.85; }
  50% { opacity:1; }
  100% { opacity:0.75; }
}
@keyframes si5-veil {
  0% { transform: translateY(0) scale(1); opacity:0.5; }
  50% { transform: translateY(-8px) scale(1.05); opacity:0.7; }
  100% { transform: translateY(0) scale(0.98); opacity:0.4; }
}
@keyframes si5-dress {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes si5-bouquet {
  0% { transform: rotate(0) scale(0.95); }
  30% { transform: rotate(10deg) scale(1.05); }
  60% { transform: rotate(-5deg) scale(0.98); }
  100% { transform: rotate(0) scale(1); }
}
@keyframes si5-arm-l {
  0% { transform: rotate(25deg) translateY(0); }
  50% { transform: rotate(30deg) translateY(-2px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes si5-arm-r {
  0% { transform: rotate(-25deg) translateY(0); }
  50% { transform: rotate(-30deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes si5-shadow {
  0%,100% { transform: scaleX(1); opacity:0.2; }
  50% { transform: scaleX(1.3); opacity:0.4; }
}

.scn-chater-greeting { background: linear-gradient(180deg, #f4a261 0%, #e76f51 30%, #264653 70%, #1a1a2e 100%), radial-gradient(ellipse at 70% 20%, #f4a261 0%, transparent 60%); }
.scn-chater-greeting .sky-cg { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #e9c46a 0%, #f4a261 50%, transparent 100%); animation: cg-sky 20s ease-in-out infinite alternate; }
.scn-chater-greeting .sun-cg { position:absolute; top:15%; left:60%; width:80px; height:80px; background: radial-gradient(circle, #ffd166 0%, #f4a261 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(244,162,97,.5); animation: cg-sun 8s ease-in-out infinite; }
.scn-chater-greeting .sea-cg { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #2a9d8f 0%, #1a5a4a 100%); animation: cg-sea 10s ease-in-out infinite alternate; }
.scn-chater-greeting .ship-cg { position:absolute; bottom:35%; left:20%; width:140px; height:50px; background: linear-gradient(180deg, #6b4c3b 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30% / 20% 20% 50% 50%; box-shadow: 0 4px 15px rgba(0,0,0,.4); animation: cg-ship 6s ease-in-out infinite; }
.scn-chater-greeting .figure1-cg { position:absolute; bottom:38%; left:25%; width:14px; height:32px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cg-figure1 4s ease-in-out infinite; }
.scn-chater-greeting .figure2-cg { position:absolute; bottom:38%; left:30%; width:14px; height:32px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cg-figure2 5s ease-in-out infinite 1s; }
.scn-chater-greeting .lantern-cg { position:absolute; bottom:50%; left:22%; width:8px; height:12px; background: radial-gradient(circle, #ffd166 0%, #f4a261 60%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 20px 5px #f4a261; animation: cg-lantern 2s ease-in-out infinite alternate; }
@keyframes cg-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes cg-sun { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.95); opacity:.8 } }
@keyframes cg-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes cg-ship { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cg-figure1 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(2px) translateY(-1px) rotate(2deg) } 70% { transform: translateX(-1px) translateY(0) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes cg-figure2 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 40% { transform: translateX(-2px) translateY(-2px) rotate(-3deg) } 80% { transform: translateX(1px) translateY(0) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes cg-lantern { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(0.95) } }

.scn-chater-teasing-hornby { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 40%, #8a5a2a 100%), radial-gradient(ellipse at 50% 30%, #8a5a2a 0%, transparent 70%); }
.scn-chater-teasing-hornby .cabin-bg-cth { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: cth-bg 12s ease-in-out infinite alternate; }
.scn-chater-teasing-hornby .lamp-cth { position:absolute; top:15%; left:45%; width:24px; height:30px; background: radial-gradient(circle, #ffd166 0%, #f4a261 80%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 10px #f4a261; animation: cth-lamp 3s ease-in-out infinite alternate; }
.scn-chater-teasing-hornby .desk-cth { position:absolute; bottom:30%; left:10%; right:10%; height:20px; background: linear-gradient(180deg, #6b4c3b 0%, #4a301a 100%); border-radius:5px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-chater-teasing-hornby .paper-cth { position:absolute; bottom:32%; left:25%; width:40px; height:15px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius:2px; transform:rotate(-5deg); animation: cth-paper 4s ease-in-out infinite; }
.scn-chater-teasing-hornby .figure1-cth { position:absolute; bottom:25%; left:20%; width:16px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cth-fig1 3s ease-in-out infinite; }
.scn-chater-teasing-hornby .figure2-cth { position:absolute; bottom:25%; right:20%; width:16px; height:36px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cth-fig2 3.5s ease-in-out infinite 0.5s; }
.scn-chater-teasing-hornby .bottle-cth { position:absolute; bottom:30%; left:50%; width:12px; height:24px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:40% 40% 20% 20%; transform:rotate(10deg); animation: cth-bottle 5s ease-in-out infinite; }
@keyframes cth-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cth-lamp { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.1) } 100% { transform: rotate(-5deg) scaleY(0.9) } }
@keyframes cth-paper { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes cth-fig1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(5px) translateY(-1px) rotate(3deg) } 70% { transform: translateX(-3px) translateY(0) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes cth-fig2 { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 30% { transform: translateX(-4px) translateY(-2px) rotate(-4deg) } 70% { transform: translateX(2px) translateY(0) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(2deg) } }
@keyframes cth-bottle { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }

.scn-discussion-of-itinerary { background: linear-gradient(180deg, #264653 0%, #2a9d8f 40%, #e9c46a 100%), radial-gradient(ellipse at 50% 100%, #e9c46a 0%, transparent 60%); }
.scn-discussion-of-itinerary .sky-di { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f4a261 0%, #264653 100%); animation: di-sky 25s ease-in-out infinite alternate; }
.scn-discussion-of-itinerary .sea-di { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a9d8f 0%, #1a5a4a 100%); animation: di-sea 12s ease-in-out infinite alternate; }
.scn-discussion-of-itinerary .deck-di { position:absolute; bottom:35%; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #6b4c3b 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.3); }
.scn-discussion-of-itinerary .railing-di { position:absolute; bottom:45%; left:5%; right:5%; height:4px; background: #4a301a; box-shadow: 0 6px 0 #4a301a, 0 12px 0 #4a301a; animation: di-railing 8s ease-in-out infinite; }
.scn-discussion-of-itinerary .figure1-di { position:absolute; bottom:40%; left:25%; width:16px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: di-fig1 6s ease-in-out infinite; }
.scn-discussion-of-itinerary .figure2-di { position:absolute; bottom:40%; left:45%; width:16px; height:38px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: di-fig2 7s ease-in-out infinite 1s; }
.scn-discussion-of-itinerary .distant-land-di { position:absolute; bottom:30%; right:10%; width:60px; height:30px; background: linear-gradient(180deg, #8a5a2a 0%, #5a3a1a 100%); border-radius:60% 40% 0 0 / 80% 60% 0 0; animation: di-land 20s ease-in-out infinite alternate; }
.scn-discussion-of-itinerary .cloud-di { position:absolute; top:20%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(5px); animation: di-cloud 40s linear infinite; }
@keyframes di-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes di-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-8px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes di-railing { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes di-fig1 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 40% { transform: translateX(3px) translateY(-2px) rotate(2deg) } 80% { transform: translateX(-2px) translateY(0) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes di-fig2 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 40% { transform: translateX(-2px) translateY(-1px) rotate(-2deg) } 80% { transform: translateX(4px) translateY(0) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes di-land { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }
@keyframes di-cloud { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }

.scn-secret-commissions-talk { background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 40%, #8a3a2a 100%), radial-gradient(ellipse at 50% 40%, #8a3a2a 0%, transparent 70%); }
.scn-secret-commissions-talk .bg-room-sc { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); animation: sc-bg 15s ease-in-out infinite alternate; }
.scn-secret-commissions-talk .table-sc { position:absolute; bottom:30%; left:20%; right:20%; height:15px; background: linear-gradient(180deg, #6b4c3b 0%, #4a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-secret-commissions-talk .candle-sc { position:absolute; bottom:40%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%); border-radius:2px 2px 4px 4px; box-shadow: 0 -4px 12px 2px #f4a261; animation: sc-candle 2s ease-in-out infinite alternate; }
.scn-secret-commissions-talk .figure1-sc { position:absolute; bottom:20%; left:15%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: sc-fig1 5s ease-in-out infinite; }
.scn-secret-commissions-talk .figure2-sc { position:absolute; bottom:20%; right:15%; width:18px; height:40px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: sc-fig2 6s ease-in-out infinite 0.5s; }
.scn-secret-commissions-talk .bottle-sc { position:absolute; bottom:35%; left:40%; width:14px; height:28px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:40% 40% 10% 10%; transform:rotate(-15deg); animation: sc-bottle 7s ease-in-out infinite; }
.scn-secret-commissions-talk .shadow-sc { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,.4) 0%, transparent 70%); animation: sc-shadow 8s ease-in-out infinite alternate; }
@keyframes sc-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes sc-candle { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 50% { transform: scaleY(1.1) scaleX(0.95); opacity:1 } 100% { transform: scaleY(0.9) scaleX(1.05); opacity:.8 } }
@keyframes sc-fig1 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(4px) translateY(-2px) rotate(3deg) } 70% { transform: translateX(-2px) translateY(0) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes sc-fig2 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(-3px) translateY(-1px) rotate(-3deg) } 70% { transform: translateX(2px) translateY(0) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes sc-bottle { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-1px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes sc-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-moment-alone-in-boudoir {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 40%, #3a3048 100%),
    radial-gradient(ellipse at 30% 50%, #2a2a4e 0%, transparent 70%);
}
.scn-moment-alone-in-boudoir .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #3a3048 0%, #4a3a40 50%, #3a3048 100%);
  animation: tb1-wall 15s ease-in-out infinite alternate;
}
.scn-moment-alone-in-boudoir .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: tb1-floor 20s ease-in-out infinite;
}
.scn-moment-alone-in-boudoir .couch {
  position: absolute; bottom: 30%; left: 25%; width: 45%; height: 20%;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,.7);
  animation: tb1-couch 8s ease-in-out infinite;
}
.scn-moment-alone-in-boudoir .lamp {
  position: absolute; bottom: 55%; left: 60%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: tb1-lamp 4s ease-in-out infinite alternate;
}
.scn-moment-alone-in-boudoir .glow {
  position: absolute; bottom: 60%; left: 58%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd680 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  animation: tb1-glow 3s ease-in-out infinite alternate;
}
.scn-moment-alone-in-boudoir .cupboard {
  position: absolute; bottom: 30%; right: 10%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  animation: tb1-cupboard 12s ease-in-out infinite;
}
.scn-moment-alone-in-boudoir .shadow-figure {
  position: absolute; bottom: 30%; left: 15%; 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: tb1-figure 6s ease-in-out infinite;
}
.scn-moment-alone-in-boudoir .port-hole {
  position: absolute; top: 20%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #0a0a2a 20%, #2a2a4a 40%, #3a3a5a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 20px #0a0a1a, 0 0 30px rgba(0,0,0,.5);
  animation: tb1-port 25s linear infinite;
}
@keyframes tb1-wall {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes tb1-floor {
  0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); }
}
@keyframes tb1-couch {
  0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); }
}
@keyframes tb1-lamp {
  0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); }
}
@keyframes tb1-glow {
  0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes tb1-cupboard {
  0% { transform: translateX(0); } 50% { transform: translateX(1px); } 100% { transform: translateX(0); }
}
@keyframes tb1-figure {
  0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); }
}
@keyframes tb1-port {
  0% { background-position: 0 0; } 50% { background-position: 5px 5px; } 100% { background-position: 0 0; }
}

.scn-torn-photograph-discovery {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a4e 0%, transparent 60%);
}
.scn-torn-photograph-discovery .table {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
  animation: tb2-table 20s ease-in-out infinite;
}
.scn-torn-photograph-discovery .piece {
  position: absolute; width: 30px; height: 40px;
  background: linear-gradient(135deg, #c8b898 0%, #a08868 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-torn-photograph-discovery .piece-1 {
  bottom: 35%; left: 30%; transform: rotate(15deg);
  animation: tb2-piece1 6s ease-in-out infinite;
}
.scn-torn-photograph-discovery .piece-2 {
  bottom: 30%; left: 38%; transform: rotate(-10deg);
  animation: tb2-piece2 7s ease-in-out infinite reverse;
}
.scn-torn-photograph-discovery .piece-3 {
  bottom: 33%; left: 46%; transform: rotate(5deg);
  animation: tb2-piece3 5s ease-in-out infinite;
}
.scn-torn-photograph-discovery .piece-4 {
  bottom: 28%; left: 54%; transform: rotate(-20deg);
  animation: tb2-piece4 8s ease-in-out infinite alternate;
}
.scn-torn-photograph-discovery .lamp {
  position: absolute; top: 10%; right: 20%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: tb2-lamp 4s ease-in-out infinite alternate;
}
.scn-torn-photograph-discovery .hand-shadow {
  position: absolute; bottom: 40%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, rgba(20,20,30,0.8) 0%, rgba(10,10,15,0.9) 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: tb2-hand 5s ease-in-out infinite;
}
@keyframes tb2-table {
  0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); }
}
@keyframes tb2-piece1 {
  0% { transform: rotate(15deg) translate(0,0); } 50% { transform: rotate(18deg) translate(1px,-1px); } 100% { transform: rotate(15deg) translate(0,0); }
}
@keyframes tb2-piece2 {
  0% { transform: rotate(-10deg) translate(0,0); } 50% { transform: rotate(-8deg) translate(-1px,1px); } 100% { transform: rotate(-10deg) translate(0,0); }
}
@keyframes tb2-piece3 {
  0% { transform: rotate(5deg) translate(0,0); } 50% { transform: rotate(3deg) translate(1px,1px); } 100% { transform: rotate(5deg) translate(0,0); }
}
@keyframes tb2-piece4 {
  0% { transform: rotate(-20deg) translate(0,0); } 50% { transform: rotate(-22deg) translate(-1px,-1px); } 100% { transform: rotate(-20deg) translate(0,0); }
}
@keyframes tb2-lamp {
  0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); }
}
@keyframes tb2-hand {
  0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(5deg); } 50% { transform: translateX(10px) rotate(0); } 75% { transform: translateX(5px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0); }
}

.scn-mystery-of-torn-photo {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 70% 60%, #3a3a4a 0%, transparent 70%);
}
.scn-mystery-of-torn-photo .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a3048 0%, #4a3a50 50%, #3a3048 100%);
  animation: tb3-wall 18s ease-in-out infinite alternate;
}
.scn-mystery-of-torn-photo .couch {
  position: absolute; bottom: 20%; left: 20%; width: 50%; height: 25%;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,.7);
  animation: tb3-couch 9s ease-in-out infinite;
}
.scn-mystery-of-torn-photo .port-hole {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #0a0a2a 20%, #2a2a4a 40%, #3a3a5a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 30px #0a0a1a, 0 0 40px rgba(0,0,0,.6);
  animation: tb3-port 30s linear infinite;
}
.scn-mystery-of-torn-photo .torn-photo {
  position: absolute; bottom: 35%; left: 35%; width: 25px; height: 35px;
  background: linear-gradient(135deg, #c8b898 0%, #a08868 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: tb3-photo 7s ease-in-out infinite;
}
.scn-mystery-of-torn-photo .frame-empty {
  position: absolute; bottom: 30%; right: 10%; width: 40px; height: 50px;
  border: 4px solid #5a4a2a;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  transform: rotateY(180deg);
  animation: tb3-frame 12s ease-in-out infinite;
}
.scn-mystery-of-torn-photo .shadow {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, rgba(20,20,30,0.8) 0%, rgba(10,10,15,0.9) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tb3-shadow 5s ease-in-out infinite;
}
.scn-mystery-of-torn-photo .glow {
  position: absolute; top: 10%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd680 0%, transparent 70%);
  border-radius: 50%;
  animation: tb3-glow 4s ease-in-out infinite alternate;
}
@keyframes tb3-wall {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes tb3-couch {
  0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); }
}
@keyframes tb3-port {
  0% { background-position: 0 0; } 50% { background-position: 5px 5px; } 100% { background-position: 0 0; }
}
@keyframes tb3-photo {
  0% { transform: rotate(0) translate(0,0); } 50% { transform: rotate(2deg) translate(1px,1px); } 100% { transform: rotate(0) translate(0,0); }
}
@keyframes tb3-frame {
  0% { transform: rotateY(180deg) translateX(0); } 50% { transform: rotateY(190deg) translateX(2px); } 100% { transform: rotateY(180deg) translateX(0); }
}
@keyframes tb3-shadow {
  0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(3deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); }
}
@keyframes tb3-glow {
  0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); }
}

.scn-hiding-fragments {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 40% 70%, #3a3a4a 0%, transparent 60%);
}
.scn-hiding-fragments .panelling {
  position: absolute; inset: 0 0 40% 0;
  background: 
    linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 20%, #3a2a1a 40%, #4a3a2a 60%, #3a2a1a 80%, #4a3a2a 100%);
  background-size: 15% 100%;
  animation: tb4-panel 25s linear infinite;
}
.scn-hiding-fragments .frame-back {
  position: absolute; bottom: 35%; right: 20%; width: 50px; height: 60px;
  border: 5px solid #5a4a2a;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: 0 10px 20px rgba(0,0,0,.6);
  animation: tb4-frame 10s ease-in-out infinite;
}
.scn-hiding-fragments .hidden-fragment {
  position: absolute; bottom: 40%; right: 23%; width: 20px; height: 28px;
  background: linear-gradient(135deg, #c8b898 0%, #a08868 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: tb4-hidden 8s ease-in-out infinite;
}
.scn-hiding-fragments .shelf {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 5px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: tb4-shelf 20s ease-in-out infinite;
}
.scn-hiding-fragments .lamp {
  position: absolute; top: 10%; left: 15%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: tb4-lamp 5s ease-in-out infinite alternate;
}
.scn-hiding-fragments .shadow {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, rgba(20,20,30,0.7) 0%, rgba(10,10,15,0.9) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tb4-shadow 6s ease-in-out infinite;
}
.scn-hiding-fragments .glow {
  position: absolute; top: 12%; left: 12%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd680 0%, transparent 70%);
  border-radius: 50%;
  animation: tb4-glow 3s ease-in-out infinite alternate;
}
@keyframes tb4-panel {
  0% { background-position: 0 0; } 50% { background-position: 10% 0; } 100% { background-position: 0 0; }
}
@keyframes tb4-frame {
  0% { transform: rotateY(180deg) translateX(0); } 50% { transform: rotateY(185deg) translateX(2px); } 100% { transform: rotateY(180deg) translateX(0); }
}
@keyframes tb4-hidden {
  0% { transform: rotate(15deg) translate(0,0); } 50% { transform: rotate(20deg) translate(1px,-1px); } 100% { transform: rotate(15deg) translate(0,0); }
}
@keyframes tb4-shelf {
  0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); }
}
@keyframes tb4-lamp {
  0% { transform: rotate(-3deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-2deg); }
}
@keyframes tb4-shadow {
  0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); }
}
@keyframes tb4-glow {
  0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } 100% { opacity: 0.7; transform: scale(0.95); }
}

.scn-petersburg-sighting-elma {
  background: 
    linear-gradient(180deg, #0c0e1f 0%, #1a1c3a 60%, #2a2e4a 100%),
    radial-gradient(ellipse at 20% 80%, #2a3a5a 0%, transparent 70%);
}
.scn-petersburg-sighting-elma .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0e102a 0%, transparent 100%); animation: pse-sky 25s ease-in-out infinite alternate; }
.scn-petersburg-sighting-elma .buildings { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a3040 0%, #1a1e2a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6); animation: pse-build 6s ease-in-out infinite alternate; }
.scn-petersburg-sighting-elma .gangway { position:absolute; bottom:15%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); clip-path: polygon(0 10%, 100% 0, 100% 80%, 0 100%); box-shadow: 0 -4px 6px rgba(0,0,0,0.5); animation: pse-gang 4s ease-in-out infinite; }
.scn-petersburg-sighting-elma .figure-a { position:absolute; bottom:20%; left:35%; width:16px; 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: pse-walk-a 6s ease-in-out infinite; }
.scn-petersburg-sighting-elma .figure-b { position:absolute; bottom:18%; left:45%; width:18px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pse-walk-b 6s ease-in-out infinite 1s; }
.scn-petersburg-sighting-elma .lamppost { position:absolute; bottom:25%; left:25%; width:4px; height:50px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 10%; transform: rotate(-5deg); animation: pse-lamp 3s ease-in-out infinite alternate; }
.scn-petersburg-sighting-elma .window-light { position:absolute; bottom:45%; left:20%; width:20px; height:30px; background: radial-gradient(circle at 50% 50%, #f0d090 0%, #b08040 80%); border-radius: 10%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,0.3); animation: pse-window 4s ease-in-out infinite alternate; }
.scn-petersburg-sighting-elma .moon { position:absolute; top:8%; right:20%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #c0c8e0 0%, #8090b0 100%); border-radius: 50%; box-shadow: 0 0 40px 8px #8090b0; animation: pse-moon 30s ease-in-out infinite; }
@keyframes pse-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes pse-build { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes pse-gang { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } }
@keyframes pse-walk-a { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-2deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0deg) } }
@keyframes pse-walk-b { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-8px) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(-16px) translateY(0) rotate(2deg) } 75% { transform: translateX(-24px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-32px) translateY(0) rotate(0deg) } }
@keyframes pse-lamp { 0% { box-shadow: 0 0 8px 2px #d0b060; } 50% { box-shadow: 0 0 20px 6px #f0d080; } 100% { box-shadow: 0 0 12px 3px #d0b060; } }
@keyframes pse-window { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.98); } }
@keyframes pse-moon { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(-10px) translateY(5px) scale(1.02); } 100% { transform: translateX(0) translateY(0) scale(1); } }

.scn-petersburg-following-woodroffe {
  background: 
    linear-gradient(180deg, #0e1020 0%, #1c1e3a 40%, #2a2e48 100%),
    radial-gradient(ellipse at 80% 20%, #2a3a5a 0%, transparent 60%);
}
.scn-petersburg-following-woodroffe .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #101228 0%, transparent 100%); animation: pf-sky 20s ease-in-out infinite alternate; }
.scn-petersburg-following-woodroffe .wall { position:absolute; bottom:20%; left:10%; width:30%; height:60%; background: linear-gradient(180deg, #1a1e2a 0%, #2a2e3a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); animation: pf-wall 8s ease-in-out infinite alternate; }
.scn-petersburg-following-woodroffe .ground { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); animation: pf-ground 6s ease-in-out infinite; }
.scn-petersburg-following-woodroffe .figure-front { position:absolute; bottom:12%; left:55%; width:18px; 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: pf-walk-front 5s ease-in-out infinite; }
.scn-petersburg-following-woodroffe .figure-back { position:absolute; bottom:14%; left:40%; width:16px; 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: pf-walk-back 5s ease-in-out infinite 1.5s; }
.scn-petersburg-following-woodroffe .lamppost { position:absolute; bottom:15%; left:50%; width:3px; height:55px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 10%; animation: pf-lamp 4s ease-in-out infinite alternate; }
.scn-petersburg-following-woodroffe .shadow { position:absolute; bottom:13%; left:58%; width:12px; height:6px; background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 50%; animation: pf-shadow 5s ease-in-out infinite; }
.scn-petersburg-following-woodroffe .window-glow { position:absolute; bottom:35%; left:70%; width:20px; height:30px; background: radial-gradient(circle at 50% 50%, #d0b070 0%, #a08040 80%); border-radius: 10%; box-shadow: 0 0 30px 10px #a08040; animation: pf-glow 3s ease-in-out infinite alternate; }
@keyframes pf-sky { 0% { opacity:0.5 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes pf-wall { 0% { filter:brightness(0.8); } 50% { filter:brightness(1); } 100% { filter:brightness(0.85); } }
@keyframes pf-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes pf-walk-front { 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(-1px) rotate(-1deg) } 100% { transform: translateX(24px) translateY(0) rotate(0deg) } }
@keyframes pf-walk-back { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 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 pf-lamp { 0% { box-shadow: 0 0 10px 3px #c0a060; } 50% { box-shadow: 0 0 25px 8px #e0c080; } 100% { box-shadow: 0 0 15px 4px #c0a060; } }
@keyframes pf-shadow { 0% { opacity:0.3; transform: scaleX(0.8); } 50% { opacity:0.6; transform: scaleX(1); } 100% { opacity:0.4; transform: scaleX(0.9); } }
@keyframes pf-glow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-petersburg-hotel-de-paris {
  background: 
    linear-gradient(180deg, #f0e8d8 0%, #e0d4c0 40%, #c8b898 100%),
    radial-gradient(ellipse at 50% 90%, #d8c8a8 0%, transparent 60%);
}
.scn-petersburg-hotel-de-paris .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8ddd0 0%, #d6c9b8 100%); }
.scn-petersburg-hotel-de-paris .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-petersburg-hotel-de-paris .window { position:absolute; top:15%; left:5%; width:35%; height:45%; background: linear-gradient(180deg, #c0d8f0 0%, #a0b8d0 100%); border: 6px solid #a09080; border-radius: 5%; box-shadow: inset 0 0 30px rgba(255,255,255,0.2); animation: ph-window 8s ease-in-out infinite alternate; }
.scn-petersburg-hotel-de-paris .curtain { position:absolute; top:12%; left:3%; width:15%; height:50%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 0 20% 20% 0; opacity:0.7; animation: ph-curtain 6s ease-in-out infinite; }
.scn-petersburg-hotel-de-paris .sofa { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:40%; height:15%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.2); animation: ph-sofa 4s ease-in-out infinite; }
.scn-petersburg-hotel-de-paris .table { position:absolute; bottom:35%; left:25%; width:15%; height:10%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.15); }
.scn-petersburg-hotel-de-paris .lamp { position:absolute; bottom:40%; left:30%; width:6px; height:20px; background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius: 10%; box-shadow: 0 0 20px 6px #f0d090; animation: ph-lamp 3s ease-in-out infinite alternate; }
.scn-petersburg-hotel-de-paris .figure-elma { position:absolute; bottom:20%; left:45%; width:18px; height:40px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1414 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ph-elma 5s ease-in-out infinite; }
.scn-petersburg-hotel-de-paris .figure-woodroffe { position:absolute; bottom:22%; left:60%; width:20px; height:44px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ph-woodroffe 7s ease-in-out infinite 2s; }
@keyframes ph-window { 0% { filter: brightness(0.9) } 50% { filter: brightness(1.1) } 100% { filter: brightness(0.95) } }
@keyframes ph-curtain { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } }
@keyframes ph-sofa { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ph-lamp { 0% { box-shadow: 0 0 15px 4px #f0d090; opacity:0.8 } 50% { box-shadow: 0 0 30px 8px #ffd890; opacity:1 } 100% { box-shadow: 0 0 20px 5px #f0d090; opacity:0.9 } }
@keyframes ph-elma { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes ph-woodroffe { 0% { transform: translateX(0) translateY(0) } 33% { transform: translateX(3px) translateY(-1px) } 66% { transform: translateX(-3px) translateY(1px) } 100% { transform: translateX(0) translateY(0) } }

.scn-petersburg-waiter-info {
  background: 
    linear-gradient(180deg, #e8ddc8 0%, #d4c8b0 40%, #bcb098 100%),
    radial-gradient(ellipse at 30% 80%, #d8ccb8 0%, transparent 60%);
}
.scn-petersburg-waiter-info .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e0d4c0 0%, #c8bca8 100%); }
.scn-petersburg-waiter-info .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; }
.scn-petersburg-waiter-info .desk { position:absolute; bottom:30%; left:20%; width:25%; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.2); animation: pw-desk 6s ease-in-out infinite alternate; }
.scn-petersburg-waiter-info .chair { position:absolute; bottom:25%; left:45%; width:12%; height:18%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.15); }
.scn-petersburg-waiter-info .figure-waiter { position:absolute; bottom:18%; left:30%; width:16px; height:42px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pw-waiter 5s ease-in-out infinite; }
.scn-petersburg-waiter-info .figure-englishman { position:absolute; bottom:20%; left:55%; width:20px; height:44px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1414 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pw-englishman 7s ease-in-out infinite 1s; }
.scn-petersburg-waiter-info .window { position:absolute; top:10%; right:8%; width:30%; height:50%; background: linear-gradient(180deg, #b0c8e0 0%, #90a8c0 100%); border: 5px solid #b0a890; border-radius: 5%; box-shadow: inset 0 0 20px rgba(255,255,255,0.3); animation: pw-window 10s ease-in-out infinite alternate; }
.scn-petersburg-waiter-info .lamp-light { position:absolute; top:30%; left:15%; width:8px; height:12px; background: radial-gradient(circle at 50% 50%, #fff0d0 0%, #d0b080 80%); border-radius: 50%; box-shadow: 0 0 40px 12px #d0b080; animation: pw-lamp 4s ease-in-out infinite alternate; }
@keyframes pw-desk { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes pw-waiter { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-4px) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(0) translateY(0) rotate(1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes pw-englishman { 0% { transform: translateX(0) translateY(0) } 33% { transform: translateX(2px) translateY(-1px) } 66% { transform: translateX(-2px) translateY(1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes pw-window { 0% { filter: brightness(0.85); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.9); } }
@keyframes pw-lamp { 0% { box-shadow: 0 0 30px 8px #d0b080; opacity:0.7 } 50% { box-shadow: 0 0 50px 15px #f0d090; opacity:1 } 100% { box-shadow: 0 0 35px 10px #d0b080; opacity:0.8 } }

/* petersburg-kitchen-escape */
.scn-petersburg-kitchen-escape {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e30 100%), radial-gradient(ellipse at 50% 60%, #3a2a3e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-petersburg-kitchen-escape .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2e2530 0%, #1a1520 100%);
}
.scn-petersburg-kitchen-escape .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1e1414 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-petersburg-kitchen-escape .table {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: pke-table 10s ease-in-out infinite;
}
.scn-petersburg-kitchen-escape .chair {
  position: absolute; bottom: 22%; left: 50%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 10% 10% 4% 4%;
  transform: translateX(-50%);
  box-shadow: 2px 0 8px rgba(0,0,0,0.4);
  animation: pke-chair 12s ease-in-out infinite alternate;
}
.scn-petersburg-kitchen-escape .doorway {
  position: absolute; bottom: 35%; left: 10%; width: 20%; height: 50%;
  background: #0a0a1a;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  border: 2px solid #2a1e18;
}
.scn-petersburg-kitchen-escape .figure {
  position: absolute; bottom: 28%; left: 15%; width: 8%; 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: pke-figure-move 6s ease-in-out infinite;
}
.scn-petersburg-kitchen-escape .lantern {
  position: absolute; bottom: 40%; left: 35%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffcc66 0%, #cc8800 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffaa33, 0 0 60px 20px rgba(255,170,51,0.4);
  animation: pke-lantern 2s ease-in-out infinite alternate;
}
.scn-petersburg-kitchen-escape .window {
  position: absolute; bottom: 40%; right: 20%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border: 2px solid #2a2018;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: pke-window 8s ease-in-out infinite alternate;
}
.scn-petersburg-kitchen-escape .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
  animation: pke-shadow 5s ease-in-out infinite alternate;
}

@keyframes pke-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes pke-chair {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes pke-figure-move {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(8px) rotate(2deg); }
  70% { transform: translateX(16px) rotate(-2deg); }
  100% { transform: translateX(24px) rotate(0deg); }
}
@keyframes pke-lantern {
  0% { opacity: 0.8; box-shadow: 0 0 20px 5px #ffaa33, 0 0 40px 10px rgba(255,170,51,0.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px #ffcc66, 0 0 80px 25px rgba(255,204,102,0.5); }
  100% { opacity: 0.85; box-shadow: 0 0 25px 8px #ffaa33, 0 0 50px 15px rgba(255,170,51,0.35); }
}
@keyframes pke-window {
  0% { background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); }
  50% { background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); }
  100% { background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); }
}
@keyframes pke-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

/* petersburg-disguise-shop */
.scn-petersburg-disguise-shop {
  background: linear-gradient(135deg, #f5e6d0 0%, #e8d4b8 50%, #dcc4a8 100%), radial-gradient(circle at 30% 40%, #fff5e6 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-petersburg-disguise-shop .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-petersburg-disguise-shop .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e0c8 0%, #e0c8a8 100%);
}
.scn-petersburg-disguise-shop .counter {
  position: absolute; bottom: 30%; left: 15%; width: 25%; height: 10%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a5030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-petersburg-disguise-shop .mirror {
  position: absolute; bottom: 40%; right: 10%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #c0d0e0 0%, #a0b0c0 100%);
  border: 4px solid #8a6a4a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3), 0 4px 12px rgba(0,0,0,0.3);
  animation: pds-mirror 12s ease-in-out infinite alternate;
}
.scn-petersburg-disguise-shop .coat-rack {
  position: absolute; bottom: 30%; left: 50%; width: 6%; height: 35%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 10% 10% 4% 4%;
  transform: translateX(-50%);
  animation: pds-rack 10s ease-in-out infinite;
}
.scn-petersburg-disguise-shop .hat {
  position: absolute; bottom: 60%; left: 52%; width: 10%; height: 8%;
  background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #2a1e18 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 50% 60%;
  transform: rotate(5deg);
  animation: pds-hat 8s ease-in-out infinite alternate;
}
.scn-petersburg-disguise-shop .figure {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pds-figure 5s ease-in-out infinite;
}
.scn-petersburg-disguise-shop .coats {
  position: absolute; bottom: 30%; left: 60%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 2px 0 12px rgba(0,0,0,0.3);
  animation: pds-coats 14s ease-in-out infinite alternate;
}

@keyframes pds-mirror {
  0% { opacity: 0.8; box-shadow: inset 0 0 10px rgba(255,255,255,0.2), 0 4px 12px rgba(0,0,0,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,255,0.5), 0 4px 12px rgba(0,0,0,0.3); }
  100% { opacity: 0.85; box-shadow: inset 0 0 15px rgba(255,255,255,0.3), 0 4px 12px rgba(0,0,0,0.3); }
}
@keyframes pds-rack {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes pds-hat {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes pds-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(2deg); }
  50% { transform: translateX(20px) rotate(-2deg); }
  75% { transform: translateX(30px) rotate(1deg); }
  100% { transform: translateX(40px) rotate(0deg); }
}
@keyframes pds-coats {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

/* petersburg-quay-wait */
.scn-petersburg-quay-wait {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 40%, #1a2a3a 100%), radial-gradient(ellipse at 30% 60%, #d4a868 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-petersburg-quay-wait .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #4a5a6a 50%, #2a3a4a 100%);
  animation: pqw-sky 15s ease-in-out infinite alternate;
}
.scn-petersburg-quay-wait .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.5);
  animation: pqw-water 8s ease-in-out infinite alternate;
}
.scn-petersburg-quay-wait .quay {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.4);
}
.scn-petersburg-quay-wait .sun-glow {
  position: absolute; bottom: 50%; left: 30%; width: 15%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, #e0a040 40%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: pqw-sun 10s ease-in-out infinite alternate;
}
.scn-petersburg-quay-wait .dock-post {
  position: absolute; bottom: 42%; left: 20%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e10 100%);
  border-radius: 4px;
}
.scn-petersburg-quay-wait .laborer {
  position: absolute; bottom: 38%; left: 60%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pqw-laborer 6s ease-in-out infinite;
}
.scn-petersburg-quay-wait .figure {
  position: absolute; bottom: 38%; left: 40%; width: 5%; height: 16%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pqw-figure 7s ease-in-out infinite;
}
.scn-petersburg-quay-wait .ripple-1,
.scn-petersburg-quay-wait .ripple-2 {
  position: absolute; bottom: 25%; left: 10%; width: 20%; height: 2%;
  background: rgba(200,200,220,0.15);
  border-radius: 50%;
  filter: blur(3px);
}
.scn-petersburg-quay-wait .ripple-1 {
  animation: pqw-ripple1 6s ease-in-out infinite;
}
.scn-petersburg-quay-wait .ripple-2 {
  bottom: 20%; left: 50%;
  animation: pqw-ripple2 8s ease-in-out infinite reverse;
}

@keyframes pqw-sky {
  0% { background: linear-gradient(180deg, #7a8a9a 0%, #4a5a6a 50%, #2a3a4a 100%); }
  50% { background: linear-gradient(180deg, #9aaaba 0%, #5a6a7a 50%, #3a4a5a 100%); }
  100% { background: linear-gradient(180deg, #7a8a9a 0%, #4a5a6a 50%, #2a3a4a 100%); }
}
@keyframes pqw-water {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes pqw-sun {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes pqw-laborer {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(10px) rotate(2deg); }
  70% { transform: translateX(20px) rotate(-2deg); }
  100% { transform: translateX(30px) rotate(0deg); }
}
@keyframes pqw-figure {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(5px) translateY(-2px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes pqw-ripple1 {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(2); opacity: 0.1; }
  100% { transform: scaleX(1); opacity: 0.3; }
}
@keyframes pqw-ripple2 {
  0% { transform: scaleX(1); opacity: 0.2; }
  50% { transform: scaleX(2.5); opacity: 0.05; }
  100% { transform: scaleX(1); opacity: 0.2; }
}

/* petersburg-steamer-arrival */
.scn-petersburg-steamer-arrival {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0a0a1a 100%), radial-gradient(ellipse at 70% 60%, #1a2a3a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-petersburg-steamer-arrival .sky-dark {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
  animation: psa-sky 12s ease-in-out infinite alternate;
}
.scn-petersburg-steamer-arrival .water-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0a0a1a 0%, #05050a 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.8);
}
.scn-petersburg-steamer-arrival .quay-dark {
  position: absolute; bottom: 43%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.6);
}
.scn-petersburg-steamer-arrival .steamer-light {
  position: absolute; bottom: 55%; right: 20%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffdd66 0%, #ffaa00 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #ffaa00, 0 0 100px 40px rgba(255,170,0,0.5);
  animation: psa-light 2s ease-in-out infinite alternate;
}
.scn-petersburg-steamer-arrival .steamer-hull {
  position: absolute; bottom: 50%; right: 15%; width: 18%; height: 10%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: psa-hull 10s ease-in-out infinite;
}
.scn-petersburg-steamer-arrival .pier-post {
  position: absolute; bottom: 40%; left: 30%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e10 100%);
  border-radius: 4px;
  animation: psa-post 8s ease-in-out infinite alternate;
}
.scn-petersburg-steamer-arrival .porters {
  position: absolute; bottom: 38%; left: 50%; width: 12%; height: 10%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: psa-porters 5s ease-in-out infinite;
}
.scn-petersburg-steamer-arrival .figure-wait {
  position: absolute; bottom: 35%; left: 40%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: psa-figure 6s ease-in-out infinite;
}
.scn-petersburg-steamer-arrival .wave-dark {
  position: absolute; bottom: 20%; left: 0; width: 100%; height: 8%;
  background: rgba(255,255,255,0.03);
  border-radius: 50%;
  filter: blur(5px);
  animation: psa-wave 7s ease-in-out infinite alternate;
}

@keyframes psa-sky {
  0% { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); }
  50% { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 100%); }
  100% { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); }
}
@keyframes psa-light {
  0% { opacity: 0.7; transform: scale(0.9); box-shadow: 0 0 30px 10px #ffaa00, 0 0 60px 20px rgba(255,170,0,0.3); }
  50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 60px 25px #ffcc33, 0 0 120px 50px rgba(255,204,51,0.6); }
  100% { opacity: 0.8; transform: scale(0.95); box-shadow: 0 0 40px 15px #ffaa00, 0 0 80px 30px rgba(255,170,0,0.4); }
}
@keyframes psa-hull {
  0%,100% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
}
@keyframes psa-post {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes psa-porters {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(8px) rotate(2deg); }
  70% { transform: translateX(16px) rotate(-2deg); }
  100% { transform: translateX(24px) rotate(0deg); }
}
@keyframes psa-figure {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(4px) translateY(-3px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes psa-wave {
  0% { transform: scaleX(1) translateX(0); opacity: 0.1; }
  50% { transform: scaleX(2) translateX(20px); opacity: 0.2; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.1; }
}

.scn-hornby-regrets-captain {
  background: linear-gradient(180deg, #2a1a3a 0%, #4a2a4a 30%, #6a4a3a 60%, #8a6a4a 100%),
              radial-gradient(ellipse at 50% 0%, #b08050 0%, transparent 70%);
}
.scn-hornby-regrets-captain .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #6a3a4a 0%, #b06040 50%, #d09050 100%);
  animation: hrc-sky 10s ease-in-out infinite alternate;
}
.scn-hornby-regrets-captain .sea {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  animation: hrc-sea 4s ease-in-out infinite;
}
.scn-hornby-regrets-captain .sun {
  position:absolute; top:20%; left:60%; width:60px; height:60px;
  background: radial-gradient(circle, #ffd080 0%, #b06020 70%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 80px 30px rgba(255,200,100,0.6);
  animation: hrc-sun 8s ease-in-out infinite alternate;
}
.scn-hornby-regrets-captain .wheel {
  position:absolute; bottom:15%; left:50%; width:80px; height:80px;
  margin-left:-40px;
  background: radial-gradient(circle, #6a4a3a 0%, #3a2a1a 100%);
  border-radius:50%;
  border: 6px solid #2a1a1a;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: hrc-wheel 6s linear infinite;
}
.scn-hornby-regrets-captain .figure {
  position:absolute; bottom:18%; left:40%; width:24px; height:48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: hrc-figure 4s ease-in-out infinite;
}
.scn-hornby-regrets-captain .lantern {
  position:absolute; bottom:22%; left:38%; width:8px; height:8px;
  background: radial-gradient(circle, #ffd080 0%, #b06020 100%);
  border-radius:50%;
  box-shadow: 0 0 20px 6px #b06020, 0 0 40px 12px rgba(176,96,32,0.4);
  animation: hrc-lantern 2s ease-in-out infinite alternate;
}
.scn-hornby-regrets-captain .cloud-c {
  position:absolute; top:10%; left:20%; width:100px; height:20px;
  background: linear-gradient(180deg, rgba(180,120,80,0.6) 0%, rgba(180,120,80,0.1) 100%);
  border-radius:50%;
  filter: blur(8px);
  animation: hrc-cloud 40s linear infinite;
}
@keyframes hrc-sky {
  0% { opacity:0.8; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.02); }
  100% { opacity:0.7; transform: scaleY(0.98); }
}
@keyframes hrc-sea {
  0% { transform: translateY(0); }
  33% { transform: translateY(-3px); }
  66% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes hrc-sun {
  0% { transform: translate(0,0) scale(1); opacity:0.9; }
  50% { transform: translate(-10px,-8px) scale(1.02); opacity:1; }
  100% { transform: translate(5px,5px) scale(0.95); opacity:0.8; }
}
@keyframes hrc-wheel {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes hrc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-3deg); }
  50% { transform: translateX(8px) rotate(2deg); }
  75% { transform: translateX(4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hrc-lantern {
  0% { box-shadow: 0 0 15px 4px #b06020, 0 0 30px 8px rgba(176,96,32,0.3); opacity:0.8; }
  50% { box-shadow: 0 0 25px 8px #ffd080, 0 0 50px 16px rgba(255,208,128,0.5); opacity:1; }
  100% { box-shadow: 0 0 18px 5px #b06020, 0 0 35px 10px rgba(176,96,32,0.35); opacity:0.85; }
}
@keyframes hrc-cloud {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}

.scn-captain-wound-questions {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 100%, #2a1a1a 0%, transparent 60%);
}
.scn-captain-wound-questions .bg-cabin {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: cwq-bg 12s ease-in-out infinite alternate;
}
.scn-captain-wound-questions .window {
  position:absolute; top:15%; left:10%; width:50px; height:70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #8a5a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 30px 8px rgba(200,150,100,0.3);
  animation: cwq-window 6s ease-in-out infinite alternate;
}
.scn-captain-wound-questions .figure-left {
  position:absolute; bottom:20%; left:25%; width:22px; height:44px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: cwq-figure-l 4s ease-in-out infinite;
}
.scn-captain-wound-questions .figure-right {
  position:absolute; bottom:18%; right:20%; width:20px; height:40px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: cwq-figure-r 5s ease-in-out infinite;
}
.scn-captain-wound-questions .captain {
  position:absolute; bottom:22%; left:48%; width:28px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: cwq-captain 5s ease-in-out infinite;
}
.scn-captain-wound-questions .lantern {
  position:absolute; top:30%; left:55%; width:10px; height:14px;
  background: radial-gradient(circle, #ffc060 0%, #b08030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px #b08030, 0 0 60px 20px rgba(176,128,48,0.4);
  animation: cwq-lantern 2.5s ease-in-out infinite alternate;
}
.scn-captain-wound-questions .wound-glow {
  position:absolute; bottom:60%; left:48%; width:8px; height:4px;
  background: radial-gradient(circle, #c0553d 0%, transparent 100%);
  border-radius:50%;
  filter: blur(2px);
  animation: cwq-wound 3s ease-in-out infinite alternate;
}
@keyframes cwq-bg {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes cwq-window {
  0% { box-shadow: inset 0 0 15px rgba(0,0,0,0.5), 0 0 20px 5px rgba(200,150,100,0.2); }
  50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 40px 10px rgba(200,150,100,0.5); }
  100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 25px 6px rgba(200,150,100,0.3); }
}
@keyframes cwq-figure-l {
  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 cwq-figure-r {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(-2px) rotate(3deg); }
  40% { transform: translateX(-5px) rotate(1deg); }
  60% { transform: translateX(-2px) rotate(-2deg); }
  80% { transform: translateX(1px) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cwq-captain {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-2deg); }
  60% { transform: translateY(0) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cwq-lantern {
  0% { box-shadow: 0 0 20px 6px #b08030, 0 0 40px 12px rgba(176,128,48,0.3); transform: scaleY(1); }
  50% { box-shadow: 0 0 35px 12px #ffc060, 0 0 70px 24px rgba(255,192,96,0.6); transform: scaleY(1.1); }
  100% { box-shadow: 0 0 25px 8px #b08030, 0 0 50px 16px rgba(176,128,48,0.35); transform: scaleY(0.95); }
}
@keyframes cwq-wound {
  0% { transform: scale(0.8); opacity:0.3; }
  50% { transform: scale(1.2); opacity:0.6; }
  100% { transform: scale(0.9); opacity:0.4; }
}

.scn-tour-of-yacht {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #7a5a3a 70%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 0%, #b09060 0%, transparent 70%);
}
.scn-tour-of-yacht .wall {
  position:absolute; inset:10% 15% 15% 15%;
  background: linear-gradient(135deg, #6a4a2a 0%, #8a6a4a 50%, #6a4a2a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
  animation: toy-wall 20s ease-in-out infinite alternate;
}
.scn-tour-of-yacht .floor {
  position:absolute; bottom:5%; left:15%; right:15%; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  animation: toy-floor 15s ease-in-out infinite alternate;
}
.scn-tour-of-yacht .porthole-l {
  position:absolute; top:40%; left:20%; width:24px; height:24px;
  background: radial-gradient(circle, #c0a070 0%, #6a4a2a 100%);
  border-radius:50%;
  border: 4px solid #4a2a1a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5), 0 0 20px 5px rgba(200,180,120,0.2);
  animation: toy-porthole 8s ease-in-out infinite alternate;
}
.scn-tour-of-yacht .porthole-r {
  position:absolute; top:40%; right:20%; width:24px; height:24px;
  background: radial-gradient(circle, #c0a070 0%, #6a4a2a 100%);
  border-radius:50%;
  border: 4px solid #4a2a1a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5), 0 0 20px 5px rgba(200,180,120,0.2);
  animation: toy-porthole 8s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-tour-of-yacht .chandelier {
  position:absolute; top:15%; left:50%; width:30px; height:40px;
  margin-left:-15px;
  background: radial-gradient(ellipse at 50% 0%, #d0b080 0%, #a08050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px #d0b080, 0 0 60px 20px rgba(208,176,128,0.3);
  animation: toy-chandelier 6s ease-in-out infinite alternate;
}
.scn-tour-of-yacht .curtain {
  position:absolute; top:20%; width:12%; height:60%;
  background: linear-gradient(180deg, #8a4a3a 0%, #6a2a1a 100%);
  border-radius: 10px;
  animation: toy-curtain 12s ease-in-out infinite alternate;
}
.scn-tour-of-yacht .curtain.left { left:18%; transform-origin: left top; }
.scn-tour-of-yacht .curtain.right { right:18%; transform-origin: right top; }
.scn-tour-of-yacht .figure-tour {
  position:absolute; bottom:15%; left:45%; width:22px; height:46px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: toy-figure 7s ease-in-out infinite;
}
@keyframes toy-wall {
  0% { opacity:0.95; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes toy-floor {
  0% { opacity:0.8; }
  50% { opacity:0.95; }
  100% { opacity:0.85; }
}
@keyframes toy-porthole {
  0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.5), 0 0 15px 3px rgba(200,180,120,0.1); }
  50% { box-shadow: inset 0 0 15px rgba(0,0,0,0.6), 0 0 25px 8px rgba(200,180,120,0.4); }
  100% { box-shadow: inset 0 0 12px rgba(0,0,0,0.5), 0 0 18px 4px rgba(200,180,120,0.2); }
}
@keyframes toy-chandelier {
  0% { transform: rotate(-2deg) scaleY(1); }
  25% { transform: rotate(0deg) scaleY(1.02); }
  50% { transform: rotate(3deg) scaleY(1); }
  75% { transform: rotate(0deg) scaleY(0.98); }
  100% { transform: rotate(-2deg) scaleY(1); }
}
@keyframes toy-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(0.98); }
}
@keyframes toy-figure {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(5px) rotate(-3deg); }
  40% { transform: translateX(10px) rotate(0deg); }
  60% { transform: translateX(15px) rotate(2deg); }
  80% { transform: translateX(20px) rotate(-1deg); }
  100% { transform: translateX(25px) rotate(0deg); }
}

.scn-armory-discovery {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 70%);
}
.scn-armory-discovery .bg-vault {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 60% 50%, #2a2a3a 0%, #0a0a1a 100%);
  animation: ady-bg 20s ease-in-out infinite alternate;
}
.scn-armory-discovery .light-beam {
  position:absolute; top:0; left:30%; width:40%; height:100%;
  background: linear-gradient(135deg, rgba(200,180,100,0.2) 0%, rgba(200,180,100,0.05) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ady-beam 8s ease-in-out infinite alternate;
}
.scn-armory-discovery .weapon-rack {
  position:absolute; bottom:10%; right:15%; width:60px; height:120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: ady-rack 15s ease-in-out infinite alternate;
}
.scn-armory-discovery .shadow-figure {
  position:absolute; bottom:5%; 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: center bottom;
  animation: ady-figure 6s ease-in-out infinite;
}
.scn-armory-discovery .crate {
  position:absolute; bottom:10%; left:15%; width:40px; height:30px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ady-crate 20s ease-in-out infinite alternate;
}
.scn-armory-discovery .glint-a {
  position:absolute; top:40%; left:50%; width:4px; height:4px;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 10px 2px rgba(255,208,128,0.6);
  animation: ady-glint 4s ease-in-out infinite alternate;
}
.scn-armory-discovery .glint-b {
  position:absolute; top:55%; left:40%; width:3px; height:3px;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 8px 1px rgba(255,208,128,0.4);
  animation: ady-glint 5s ease-in-out infinite alternate;
  animation-delay: -2.5s;
}
@keyframes ady-bg {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes ady-beam {
  0% { transform: skewX(0deg) scaleX(1); opacity:0.3; }
  50% { transform: skewX(5deg) scaleX(1.1); opacity:0.6; }
  100% { transform: skewX(-2deg) scaleX(0.9); opacity:0.2; }
}
@keyframes ady-rack {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ady-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 ady-crate {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.98); }
}
@keyframes ady-glint {
  0% { transform: scale(0.5); opacity:0.2; }
  50% { transform: scale(1.5); opacity:1; }
  100% { transform: scale(0.8); opacity:0.3; }
}

/* Scene: consulate-mystery-report (calm interior) */
.scn-consulate-mystery-report {
  background: linear-gradient(180deg, #f5f0e0 0%, #e8dcc8 60%, #d4c4a8 100%),
              radial-gradient(ellipse at 30% 20%, #fff8f0 0%, transparent 70%);
}
.scn-consulate-mystery-report .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #edebd8 0%, #cbb99b 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.06); animation: cmr-wall 20s ease-in-out infinite alternate;
}
.scn-consulate-mystery-report .window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #b0d0f0 0%, #c8e0ff 100%);
  border-radius: 8px; box-shadow: inset 0 0 30px rgba(255,255,200,0.5), 0 0 20px rgba(200,220,255,0.3);
  animation: cmr-window 12s ease-in-out infinite alternate;
}
.scn-consulate-mystery-report .desk {
  position: absolute; bottom: 15%; left: 20%; width: 55%; height: 12%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b3a 100%);
  border-radius: 4px; box-shadow: 0 4px 15px rgba(0,0,0,0.3); animation: cmr-desk 8s ease-in-out infinite alternate;
}
.scn-consulate-mystery-report .chair {
  position: absolute; bottom: 12%; left: 55%; width: 20%; height: 20%;
  background: linear-gradient(135deg, #7a6a50 0%, #4a3a28 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform: rotate(5deg);
  animation: cmr-chair 10s ease-in-out infinite alternate;
}
.scn-consulate-mystery-report .clerk {
  position: absolute; bottom: 27%; left: 48%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #d4b898 0%, #a08060 100%);
  border-radius: 50% 40% 30% 30% / 80% 70% 40% 40%; transform-origin: bottom center;
  animation: cmr-clerk 18s ease-in-out infinite alternate;
}
.scn-consulate-mystery-report .papers {
  position: absolute; bottom: 17%; left: 28%; width: 14%; height: 6%;
  background: linear-gradient(135deg, #f0ead6 0%, #dcd0b0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2), 0 0 6px rgba(200,180,120,0.3);
  animation: cmr-papers 6s ease-in-out infinite alternate;
}
.scn-consulate-mystery-report .globe {
  position: absolute; bottom: 17%; left: 72%; width: 10%; height: 10%;
  background: radial-gradient(circle at 40% 40%, #a0c0e0 0%, #4878a0 60%, #2a5a7a 100%);
  border-radius: 50%; box-shadow: 0 4px 10px rgba(0,0,0,0.3), inset 0 -4px 8px rgba(0,0,0,0.2);
  animation: cmr-globe 25s linear infinite;
}
.scn-consulate-mystery-report .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.08) 100%);
  animation: cmr-shadow 15s ease-in-out infinite alternate;
}
@keyframes cmr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cmr-window { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes cmr-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cmr-chair { 0% { transform: rotate(4deg); } 50% { transform: rotate(6deg); } 100% { transform: rotate(3deg); } }
@keyframes cmr-clerk { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes cmr-papers { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cmr-globe { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes cmr-shadow { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

/* Scene: suspicion-of-fraud (tense interior) */
.scn-suspicion-of-fraud {
  background: linear-gradient(135deg, #f5f2e8 0%, #d4cdbc 50%, #b8a898 100%),
              radial-gradient(ellipse at 40% 30%, #fff0e0 0%, transparent 60%);
}
.scn-suspicion-of-fraud .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #e8dfd0 0%, #b8a898 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.15); animation: sof-wall 4s ease-in-out infinite alternate;
}
.scn-suspicion-of-fraud .lamp {
  position: absolute; top: 5%; left: 45%; width: 8%; height: 15%;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #c89040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; box-shadow: 0 0 40px 15px #e8b060, 0 0 80px 30px rgba(220,160,80,0.3);
  animation: sof-lamp 2s ease-in-out infinite alternate;
}
.scn-suspicion-of-fraud .desk {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #7a684a 0%, #4a3828 100%);
  border-radius: 2px; box-shadow: 0 6px 20px rgba(0,0,0,0.5); animation: sof-desk 3s ease-in-out infinite alternate;
}
.scn-suspicion-of-fraud .document {
  position: absolute; bottom: 22%; left: 35%; width: 20%; height: 8%;
  background: linear-gradient(135deg, #f5ecd0 0%, #d4c090 100%);
  border-radius: 1px; box-shadow: 0 2px 8px rgba(0,0,0,0.4), 0 0 12px rgba(200,180,120,0.3);
  animation: sof-document 1.5s ease-in-out infinite alternate;
}
.scn-suspicion-of-fraud .figure {
  position: absolute; bottom: 25%; left: 45%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%);
  border-radius: 40% 30% 20% 20% / 70% 60% 30% 30%; transform-origin: bottom center;
  animation: sof-figure 2s ease-in-out infinite alternate;
}
.scn-suspicion-of-fraud .hand {
  position: absolute; bottom: 27%; left: 52%; width: 6%; height: 6%;
  background: linear-gradient(135deg, #c8a080 0%, #907060 100%);
  border-radius: 50% 40% 20% 20% / 60% 50% 20% 20%; transform: rotate(-20deg);
  animation: sof-hand 0.8s ease-in-out infinite alternate;
}
.scn-suspicion-of-fraud .shadow-sharp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.25) 100%);
  animation: sof-shadow 3s ease-in-out infinite alternate;
}
.scn-suspicion-of-fraud .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.3) 100%);
  animation: sof-vignette 4s ease-in-out infinite alternate;
}
@keyframes sof-wall { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.85); } }
@keyframes sof-lamp { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 10px #e8b060; } 50% { transform: translateY(-4px) scale(1.05); box-shadow: 0 0 60px 20px #f0c080; } 100% { transform: translateY(2px) scale(0.95); box-shadow: 0 0 40px 15px #d09850; } }
@keyframes sof-desk { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(1px); } }
@keyframes sof-document { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(0.98); } }
@keyframes sof-figure { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(3deg) translateX(5px); } 100% { transform: rotate(-2deg) translateX(-3px); } }
@keyframes sof-hand { 0% { transform: rotate(-25deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes sof-shadow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sof-vignette { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* Scene: consul-duties-listing (funny interior) */
.scn-consul-duties-listing {
  background: linear-gradient(180deg, #f8f4e8 0%, #e0d8c0 50%, #c8c0a8 100%),
              radial-gradient(ellipse at 70% 20%, #fffcf0 0%, transparent 60%);
}
.scn-consul-duties-listing .bg {
  position: absolute; inset: 0; background: repeating-linear-gradient(45deg, #f0e8d8 0px, #f0e8d8 15px, #e8dec8 15px, #e8dec8 30px);
  opacity: 0.3; animation: cdl-bg 10s linear infinite;
}
.scn-consul-duties-listing .papers-stack1 {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #f5ecd0 0%, #d4c090 100%);
  border-radius: 4px; box-shadow: 0 8px 30px rgba(0,0,0,0.2), inset 0 -60px 30px rgba(0,0,0,0.1);
  animation: cdl-papers1 5s ease-in-out infinite alternate;
}
.scn-consul-duties-listing .papers-stack2 {
  position: absolute; bottom: 15%; left: 55%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #f0e8c0 0%, #d0c098 100%);
  border-radius: 4px; box-shadow: 0 8px 30px rgba(0,0,0,0.2), inset 0 -40px 20px rgba(0,0,0,0.1);
  transform: rotate(-15deg); animation: cdl-papers2 7s ease-in-out infinite alternate;
}
.scn-consul-duties-listing .inkwell {
  position: absolute; bottom: 12%; left: 48%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 30%, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: cdl-inkwell 3s ease-in-out infinite alternate;
}
.scn-consul-duties-listing .tiny-clerk {
  position: absolute; bottom: 18%; left: 22%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #d4b898 0%, #a08060 100%);
  border-radius: 50% 40% 30% 30% / 80% 70% 40% 40%; transform-origin: bottom center;
  animation: cdl-clerk 1s ease-in-out infinite alternate;
}
.scn-consul-duties-listing .arrow {
  position: absolute; bottom: 35%; left: 30%; width: 12%; height: 4%;
  background: linear-gradient(90deg, #e07040 0%, #c05030 100%);
  clip-path: polygon(0 40%, 80% 40%, 80% 0, 100% 50%, 80% 100%, 80% 60%, 0 60%);
  animation: cdl-arrow 0.8s ease-in-out infinite alternate;
}
.scn-consul-duties-listing .dots {
  position: absolute; top: 20%; left: 15%; width: 8%; height: 8%;
  background: radial-gradient(circle, #4070c0 0%, transparent 70%);
  box-shadow: 0 0 20px 5px rgba(64,112,192,0.5), 80px 40px 0 0 #4070c0, -60px -20px 0 0 #40c070;
  border-radius: 50%; animation: cdl-dots 4s linear infinite;
}
@keyframes cdl-bg { 0% { transform: translateX(0); } 100% { transform: translateX(30px); } }
@keyframes cdl-papers1 { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(0.98); } }
@keyframes cdl-papers2 { 0% { transform: rotate(-17deg) translateX(0); } 50% { transform: rotate(-13deg) translateX(5px); } 100% { transform: rotate(-16deg) translateX(-3px); } }
@keyframes cdl-inkwell { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cdl-clerk { 0% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } 100% { transform: rotate(-2deg) scaleY(0.95); } }
@keyframes cdl-arrow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes cdl-dots { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-10px) rotate(180deg); } 100% { transform: translateY(0) rotate(360deg); } }

/* Scene: francesco-character-intro (warm interior) */
.scn-francesco-character-intro {
  background: linear-gradient(180deg, #f0e8d0 0%, #d4c090 50%, #b8a070 100%),
              radial-gradient(ellipse at 60% 30%, #fffde0 0%, transparent 60%);
}
.scn-francesco-character-intro .wall-warm {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8d8b8 0%, #c8b090 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.08); animation: fci-wall 15s ease-in-out infinite alternate;
}
.scn-francesco-character-intro .doorway {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #6a5840 0%, #3a2a18 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.4);
  animation: fci-doorway 20s ease-in-out infinite alternate;
}
.scn-francesco-character-intro .francesco {
  position: absolute; bottom: 22%; left: 38%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #b89878 0%, #8a7050 100%);
  border-radius: 40% 30% 20% 20% / 70% 60% 30% 30%; transform-origin: bottom center;
  animation: fci-francesco 8s ease-in-out infinite alternate;
}
.scn-francesco-character-intro .mustache {
  position: absolute; bottom: 40%; left: 35%; width: 16%; height: 4%;
  background: linear-gradient(90deg, #605040 0%, #8a7050 30%, #a08060 50%, #8a7050 70%, #605040 100%);
  border-radius: 40% 50% 20% 30% / 100% 100% 50% 50%; transform: rotate(-5deg);
  animation: fci-mustache 4s ease-in-out infinite alternate;
}
.scn-francesco-character-intro .cap {
  position: absolute; bottom: 44%; left: 39%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #806050 0%, #604030 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: fci-cap 6s ease-in-out infinite alternate;
}
.scn-francesco-character-intro .anchor {
  position: absolute; bottom: 10%; left: 70%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #5a4838 0%, #2a1a10 100%);
  clip-path: polygon(30% 0, 70% 0, 70% 20%, 90% 20%, 90% 50%, 70% 50%, 70% 80%, 90% 80%, 90% 100%, 10% 100%, 10% 80%, 30% 80%, 30% 50%, 10% 50%, 10% 20%, 30% 20%);
  animation: fci-anchor 12s ease-in-out infinite alternate;
}
.scn-francesco-character-intro .light-ray {
  position: absolute; top: 5%; left: 20%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  transform: rotate(-30deg); filter: blur(15px); animation: fci-light 10s ease-in-out infinite alternate;
}
@keyframes fci-wall { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.05); } 100% { filter: brightness(1); } }
@keyframes fci-doorway { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes fci-francesco { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.01); } 100% { transform: rotate(-1deg) scaleY(0.99); } }
@keyframes fci-mustache { 0% { transform: rotate(-7deg) scaleX(1); } 50% { transform: rotate(-3deg) scaleX(1.1); } 100% { transform: rotate(-5deg) scaleX(1); } }
@keyframes fci-cap { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes fci-anchor { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes fci-light { 0% { opacity: 0.7; transform: rotate(-30deg) translateX(0); } 50% { opacity: 1; transform: rotate(-25deg) translateX(10px); } 100% { opacity: 0.8; transform: rotate(-35deg) translateX(-5px); } }

.scn-mad-stoker-incident {
  background:
    linear-gradient(180deg, #2b1a1a 0%, #1f1210 40%, #0e0807 100%),
    radial-gradient(ellipse at 60% 40%, #3a1a1a 0%, transparent 60%);
}

.scn-mad-stoker-incident .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(135deg, #3a2522 0%, #1f1412 100%);
  animation: msi-wall 8s ease-in-out infinite alternate;
}

.scn-mad-stoker-incident .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2b1d1a 0%, #1a100e 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.5);
}

.scn-mad-stoker-incident .figure {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 28px;
  height: 70px;
  background: linear-gradient(180deg, #1e1312 0%, #0d0807 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msi-figure 3s ease-in-out infinite;
}

.scn-mad-stoker-incident .lantern {
  position: absolute;
  bottom: 22%;
  left: 24%;
  width: 10px;
  height: 16px;
  background: radial-gradient(circle, #d08a40 0%, #a06028 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 6px #a06028, 0 0 48px 12px rgba(160,96,40,0.4);
  animation: msi-lantern 2s ease-in-out infinite alternate;
}

.scn-mad-stoker-incident .window {
  position: absolute;
  top: 12%;
  right: 18%;
  width: 40px;
  height: 60px;
  background: radial-gradient(ellipse at center, #1a1a3a 0%, #0e0e1e 100%);
  border: 2px solid #3a2a22;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: msi-window 6s ease-in-out infinite alternate;
}

.scn-mad-stoker-incident .table {
  position: absolute;
  bottom: 10%;
  left: 40%;
  width: 90px;
  height: 18px;
  background: linear-gradient(180deg, #4a3228 0%, #2a1e18 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: msi-table 5s ease-in-out infinite alternate;
}

.scn-mad-stoker-incident .shadow {
  position: absolute;
  bottom: 0;
  left: 10%;
  width: 80%;
  height: 20%;
  background: radial-gradient(ellipse at 30% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: msi-shadow 4s ease-in-out infinite alternate;
}

@keyframes msi-wall {
  0%, 100% { opacity: 0.9; }
  50% { opacity: 0.7; }
}

@keyframes msi-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

@keyframes msi-lantern {
  0% { box-shadow: 0 0 18px 2px #a06028, 0 0 36px 6px rgba(160,96,40,0.3); }
  50% { box-shadow: 0 0 32px 10px #d08a40, 0 0 64px 18px rgba(208,138,64,0.5); }
  100% { box-shadow: 0 0 22px 4px #a06028, 0 0 40px 8px rgba(160,96,40,0.4); }
}

@keyframes msi-window {
  0%, 100% { background: radial-gradient(ellipse at center, #1a1a3a 0%, #0e0e1e 100%); }
  50% { background: radial-gradient(ellipse at center, #2a2a4a 0%, #1a1a2e 100%); }
}

@keyframes msi-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

@keyframes msi-shadow {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 0.8; }
}

/* --- */

.scn-acting-consul-duty {
  background:
    linear-gradient(180deg, #f4efe4 0%, #ebe3d5 40%, #d4cabb 100%),
    radial-gradient(ellipse at 50% 30%, #fff8ee 0%, transparent 70%);
}

.scn-acting-consul-duty .back-wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 100%);
  animation: acd-wall 12s ease-in-out infinite alternate;
}

.scn-acting-consul-duty .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #c8bca8 0%, #a89880 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
}

.scn-acting-consul-duty .desk {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 120px;
  height: 30px;
  background: linear-gradient(180deg, #8a7a5e 0%, #6a5a42 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: acd-desk 10s ease-in-out infinite alternate;
}

.scn-acting-consul-duty .chair {
  position: absolute;
  bottom: 25%;
  left: 18%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #5a4a38 0%, #3a2e20 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: acd-chair 8s ease-in-out infinite alternate;
}

.scn-acting-consul-duty .figure {
  position: absolute;
  bottom: 30%;
  left: 22%;
  width: 24px;
  height: 52px;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acd-figure 6s ease-in-out infinite alternate;
}

.scn-acting-consul-duty .window {
  position: absolute;
  top: 8%;
  right: 12%;
  width: 50px;
  height: 70px;
  background: radial-gradient(ellipse at center, #d4e8ee 0%, #b0c8d4 100%);
  border: 3px solid #8a7a5e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(180,200,220,0.3);
  animation: acd-window 14s ease-in-out infinite alternate;
}

.scn-acting-consul-duty .papers {
  position: absolute;
  bottom: 33%;
  left: 30%;
  width: 20px;
  height: 14px;
  background: linear-gradient(135deg, #f4f0e0 0%, #e8dcc8 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.1);
  animation: acd-papers 12s ease-in-out infinite alternate;
}

@keyframes acd-wall {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.95; }
}

@keyframes acd-desk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}

@keyframes acd-chair {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}

@keyframes acd-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes acd-window {
  0%, 100% { background: radial-gradient(ellipse at center, #d4e8ee 0%, #b0c8d4 100%); }
  50% { background: radial-gradient(ellipse at center, #e4f0f4 0%, #c0d4de 100%); }
}

@keyframes acd-papers {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
}

/* --- */

.scn-leghorn-heat-description {
  background:
    linear-gradient(180deg, #fcedd8 0%, #f5d8b0 40%, #e8c090 100%),
    radial-gradient(ellipse at 50% 100%, #ffddaa 0%, transparent 70%);
}

.scn-leghorn-heat-description .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fce8cc 0%, #f0d0a0 100%);
  animation: lhd-sky 18s ease-in-out infinite alternate;
}

.scn-leghorn-heat-description .sun {
  position: absolute;
  top: 8%;
  left: 45%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #f0c040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #f0c040;
  animation: lhd-sun 10s ease-in-out infinite alternate;
}

.scn-leghorn-heat-description .building {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 60%;
  height: 55%;
  background: linear-gradient(135deg, #d4b888 0%, #b89868 50%, #a08050 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.2);
  animation: lhd-building 20s ease-in-out infinite alternate;
}

.scn-leghorn-heat-description .escutcheon {
  position: absolute;
  top: 20%;
  left: 40%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #c8a870 0%, #a88850 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: lhd-escutcheon 8s ease-in-out infinite alternate;
}

.scn-leghorn-heat-description .door {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 24px;
  height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3e22 100%);
  border-radius: 4px 4px 0 0;
  animation: lhd-door 6s ease-in-out infinite alternate;
}

.scn-leghorn-heat-description .street {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #d8c090 0%, #b89860 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
  animation: lhd-street 15s ease-in-out infinite alternate;
}

.scn-leghorn-heat-description .shadow {
  position: absolute;
  bottom: 0;
  left: 30%;
  width: 40%;
  height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: lhd-shadow 12s ease-in-out infinite alternate;
}

@keyframes lhd-sky {
  0%, 100% { background: linear-gradient(180deg, #fce8cc 0%, #f0d0a0 100%); }
  50% { background: linear-gradient(180deg, #ffe0b0 0%, #f5c880 100%); }
}

@keyframes lhd-sun {
  0%, 100% { transform: scale(0.95); opacity: 0.9; }
  50% { transform: scale(1.05); opacity: 1; }
}

@keyframes lhd-building {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

@keyframes lhd-escutcheon {
  0%, 100% { background: linear-gradient(180deg, #c8a870 0%, #a88850 100%); }
  50% { background: linear-gradient(180deg, #d4b080 0%, #b89860 100%); }
}

@keyframes lhd-door {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}

@keyframes lhd-street {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}

@keyframes lhd-shadow {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.5; }
}

/* --- */

.scn-lazy-afternoon-smoke {
  background:
    linear-gradient(180deg, #f2ede0 0%, #e6ddcc 40%, #d4cbb8 100%),
    radial-gradient(ellipse at 50% 20%, #fffaf0 0%, transparent 60%);
}

.scn-lazy-afternoon-smoke .bg {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8e0cc 0%, #d0c8b0 100%);
  animation: las-bg 14s ease-in-out infinite alternate;
}

.scn-lazy-afternoon-smoke .table {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 70%;
  height: 22px;
  background: linear-gradient(180deg, #8a7a5e 0%, #6a5a42 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: las-table 10s ease-in-out infinite alternate;
}

.scn-lazy-afternoon-smoke .chair {
  position: absolute;
  bottom: 18%;
  right: 20%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3e2e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: las-chair 12s ease-in-out infinite alternate;
}

.scn-lazy-afternoon-smoke .figure {
  position: absolute;
  bottom: 25%;
  right: 22%;
  width: 30px;
  height: 55px;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: las-figure 8s ease-in-out infinite alternate;
}

.scn-lazy-afternoon-smoke .cigarette {
  position: absolute;
  bottom: 32%;
  right: 26%;
  width: 16px;
  height: 4px;
  background: linear-gradient(90deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 2px;
  animation: las-cigarette 3s ease-in-out infinite alternate;
}

.scn-lazy-afternoon-smoke .smoke-1 {
  position: absolute;
  bottom: 36%;
  right: 25%;
  width: 8px;
  height: 20px;
  background: radial-gradient(ellipse at top, rgba(200,190,170,0.4) 0%, transparent 70%);
  filter: blur(2px);
  animation: las-smoke1 6s ease-out infinite;
}

.scn-lazy-afternoon-smoke .smoke-2 {
  position: absolute;
  bottom: 38%;
  right: 27%;
  width: 6px;
  height: 16px;
  background: radial-gradient(ellipse at top, rgba(200,190,170,0.3) 0%, transparent 70%);
  filter: blur(2px);
  animation: las-smoke2 5s ease-out infinite 2s;
}

.scn-lazy-afternoon-smoke .window-light {
  position: absolute;
  top: 10%;
  left: 12%;
  width: 50px;
  height: 70px;
  background: radial-gradient(ellipse at center, #f4e8c0 0%, #d4c090 100%);
  border: 3px solid #8a7a5e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(240,220,160,0.3);
  animation: las-window 16s ease-in-out infinite alternate;
}

@keyframes las-bg {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.95; }
}

@keyframes las-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}

@keyframes las-chair {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}

@keyframes las-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes las-cigarette {
  0% { box-shadow: 0 0 4px 1px #d0b080; }
  50% { box-shadow: 0 0 8px 2px #e0c090; }
  100% { box-shadow: 0 0 4px 1px #d0b080; }
}

@keyframes las-smoke1 {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-30px) scale(1.5); opacity: 0.3; }
  100% { transform: translateY(-60px) scale(2); opacity: 0; }
}

@keyframes las-smoke2 {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-25px) scale(1.3); opacity: 0.2; }
  100% { transform: translateY(-50px) scale(1.8); opacity: 0; }
}

@keyframes las-window {
  0%, 100% { background: radial-gradient(ellipse at center, #f4e8c0 0%, #d4c090 100%); }
  50% { background: radial-gradient(ellipse at center, #fcf0d0 0%, #e0c8a0 100%); }
}

.scn-durnford-naval-expert {
  background: linear-gradient(180deg, #f5e6c8 0%, #e6d4b0 60%, #d4bf98 100%),
              radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-durnford-naval-expert .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d4bf98 0%, #e6d4b0 40%, #f0e0c0 70%, #d4bf98 100%); animation: dne-wall 20s ease-in-out infinite alternate; }
.scn-durnford-naval-expert .window { position:absolute; top:10%; right:20%; width:20%; height:35%; background: linear-gradient(180deg, #fff8e0 0%, #f5e6c8 100%); border:6px solid #b8976a; border-radius:4px; box-shadow:inset 0 0 40px #fff8e0, 0 0 60px rgba(255,248,224,0.3); animation: dne-window 8s ease-in-out infinite alternate; }
.scn-durnford-naval-expert .desk { position:absolute; bottom:15%; left:10%; width:50%; height:15%; background: linear-gradient(180deg, #8b6f4a 0%, #6a5030 100%); border-radius:4px; box-shadow:0 8px 12px rgba(0,0,0,0.3); }
.scn-durnford-naval-expert .books { position:absolute; bottom:28%; left:12%; width:20%; height:12%; background: linear-gradient(180deg, #5e4230 0%, #3a2810 100%); border-radius:2px; box-shadow:4px 4px 8px rgba(0,0,0,0.2); animation: dne-books 12s ease-in-out infinite; }
.scn-durnford-naval-expert .figure { position:absolute; bottom:15%; left:30%; width:18%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin:bottom center; animation: dne-figure 6s ease-in-out infinite alternate; }
.scn-durnford-naval-expert .ship { position:absolute; bottom:22%; left:45%; width:8%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(10% 60%, 30% 20%, 60% 20%, 80% 60%, 70% 80%, 30% 80%, 10% 60%); animation: dne-ship 15s ease-in-out infinite; }
.scn-durnford-naval-expert .light-beam { position:absolute; top:8%; left:38%; width:25%; height:80%; background: linear-gradient(180deg, rgba(255,248,224,0.15) 0%, transparent 100%); transform: rotate(10deg); animation: dne-light 9s ease-in-out infinite alternate; }
@keyframes dne-wall { 0% { opacity:0.9; filter: brightness(1) } 50% { opacity:1; filter: brightness(1.1) } 100% { opacity:0.85; filter: brightness(0.95) } }
@keyframes dne-window { 0% { opacity:0.8; box-shadow:inset 0 0 30px #fff8e0, 0 0 40px rgba(255,248,224,0.2) } 50% { opacity:1; box-shadow:inset 0 0 60px #fff8e0, 0 0 80px rgba(255,248,224,0.4) } 100% { opacity:0.85; box-shadow:inset 0 0 40px #fff8e0, 0 0 50px rgba(255,248,224,0.25) } }
@keyframes dne-books { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes dne-figure { 0% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(1deg) translateX(3px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes dne-ship { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes dne-light { 0% { opacity:0.3; transform: rotate(8deg) } 50% { opacity:0.6; transform: rotate(12deg) } 100% { opacity:0.3; transform: rotate(8deg) } }

.scn-asking-about-hutcheson {
  background: linear-gradient(180deg, #fdf6e3 0%, #f5e6c8 40%, #e6d4a8 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
}
.scn-asking-about-hutcheson .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #d4bf98 0%, #b8976a 100%); animation: ah-floor 15s ease-in-out infinite alternate; }
.scn-asking-about-hutcheson .window { position:absolute; top:5%; left:10%; width:30%; height:45%; background: linear-gradient(180deg, #fff8e0 0%, #f5e6c8 100%); border:6px solid #8b6f4a; border-radius:4px; box-shadow:inset 0 0 30px #fff8e0, 0 0 50px rgba(255,248,224,0.25); animation: ah-window 10s ease-in-out infinite alternate; }
.scn-asking-about-hutcheson .table { position:absolute; bottom:15%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius:4px; box-shadow:0 6px 10px rgba(0,0,0,0.2); }
.scn-asking-about-hutcheson .figure-left { position:absolute; bottom:15%; left:28%; width:14%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ah-figure-left 5s ease-in-out infinite alternate; }
.scn-asking-about-hutcheson .figure-right { position:absolute; bottom:15%; right:28%; width:14%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ah-figure-right 5s ease-in-out infinite alternate; }
.scn-asking-about-hutcheson .glass-left { position:absolute; bottom:22%; left:33%; width:3%; height:4%; background: radial-gradient(circle, #fff8e0 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,248,224,0.4); animation: ah-glass 4s ease-in-out infinite; }
.scn-asking-about-hutcheson .glass-right { position:absolute; bottom:22%; right:33%; width:3%; height:4%; background: radial-gradient(circle, #fff8e0 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,248,224,0.4); animation: ah-glass 4s ease-in-out infinite reverse; }
.scn-asking-about-hutcheson .fan { position:absolute; top:2%; left:50%; width:20%; height:12%; background: repeating-linear-gradient(90deg, transparent 0%, transparent 45%, #8b6f4a 45%, #8b6f4a 55%, transparent 55%, transparent 100%); border-radius:50%; transform: translateX(-50%); animation: ah-fan 3s linear infinite; }
@keyframes ah-floor { 0% { opacity:0.9; filter: brightness(1) } 50% { opacity:1; filter: brightness(1.05) } 100% { opacity:0.85; filter: brightness(0.95) } }
@keyframes ah-window { 0% { opacity:0.75; box-shadow:inset 0 0 20px #fff8e0, 0 0 30px rgba(255,248,224,0.15) } 50% { opacity:1; box-shadow:inset 0 0 50px #fff8e0, 0 0 70px rgba(255,248,224,0.35) } 100% { opacity:0.8; box-shadow:inset 0 0 25px #fff8e0, 0 0 40px rgba(255,248,224,0.2) } }
@keyframes ah-figure-left { 0% { transform: rotate(-3deg) translateX(-2px) } 50% { transform: rotate(2deg) translateX(1px) } 100% { transform: rotate(-3deg) translateX(-2px) } }
@keyframes ah-figure-right { 0% { transform: rotate(3deg) translateX(2px) } 50% { transform: rotate(-2deg) translateX(-1px) } 100% { transform: rotate(3deg) translateX(2px) } }
@keyframes ah-glass { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:0.7; transform: scale(1) } }
@keyframes ah-fan { 0% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(360deg) } }

.scn-telling-mystery-to-durnford {
  background: linear-gradient(180deg, #f5e6c8 0%, #e6d4a8 60%, #d4bf88 100%),
              radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 50%),
              linear-gradient(180deg, rgba(80,60,40,0.1) 0%, transparent 100%);
}
.scn-telling-mystery-to-durnford .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4bf98 0%, #b8976a 100%); animation: tm-wall 6s ease-in-out infinite alternate; }
.scn-telling-mystery-to-durnford .table { position:absolute; bottom:20%; left:20%; width:60%; height:6%; background: linear-gradient(180deg, #5e4230 0%, #3a2810 100%); border-radius:4px; box-shadow:0 8px 12px rgba(0,0,0,0.3); }
.scn-telling-mystery-to-durnford .map { position:absolute; bottom:24%; left:25%; width:50%; height:10%; background: linear-gradient(180deg, #c8b080 0%, #a89060 100%); clip-path: polygon(0% 30%, 20% 0%, 80% 0%, 100% 30%, 80% 100%, 20% 100%); animation: tm-map 8s ease-in-out infinite; }
.scn-telling-mystery-to-durnford .ship-model { position:absolute; bottom:26%; left:48%; width:10%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(20% 60%, 40% 20%, 60% 20%, 80% 60%, 70% 80%, 30% 80%, 20% 60%); animation: tm-ship 3s ease-in-out infinite alternate; }
.scn-telling-mystery-to-durnford .figure-left { position:absolute; bottom:20%; left:22%; width:16%; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: tm-figure-left 4s ease-in-out infinite alternate; }
.scn-telling-mystery-to-durnford .figure-right { position:absolute; bottom:20%; right:22%; width:16%; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: tm-figure-right 4s ease-in-out infinite alternate; }
.scn-telling-mystery-to-durnford .lamp { position:absolute; top:15%; left:45%; width:6%; height:8%; background: radial-gradient(circle, #ffe080 0%, #d4a050 60%, transparent 100%); border-radius:50%; box-shadow:0 0 40px 15px rgba(255,224,128,0.4); animation: tm-lamp 2s ease-in-out infinite alternate; }
.scn-telling-mystery-to-durnford .shadow-intense { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 100%); animation: tm-shadow 5s ease-in-out infinite alternate; }
@keyframes tm-wall { 0% { filter: brightness(0.9) } 50% { filter: brightness(1.1) } 100% { filter: brightness(0.85) } }
@keyframes tm-map { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) translateY(-2px) } 100% { transform: scaleX(1) } }
@keyframes tm-ship { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-8deg) translateY(-3px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes tm-figure-left { 0% { transform: rotate(-5deg) translateX(-2px) } 50% { transform: rotate(3deg) translateX(3px) } 100% { transform: rotate(-5deg) translateX(-2px) } }
@keyframes tm-figure-right { 0% { transform: rotate(5deg) translateX(2px) } 50% { transform: rotate(-3deg) translateX(-3px) } 100% { transform: rotate(5deg) translateX(2px) } }
@keyframes tm-lamp { 0% { opacity:0.8; box-shadow:0 0 30px 10px rgba(255,224,128,0.3) } 50% { opacity:1; box-shadow:0 0 50px 20px rgba(255,224,128,0.5) } 100% { opacity:0.85; box-shadow:0 0 35px 12px rgba(255,224,128,0.35) } }
@keyframes tm-shadow { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.25 } }

.scn-recounting-yacht-story {
  background: linear-gradient(180deg, #b8d8f0 0%, #e0f0ff 30%, #90c8e0 100%),
              radial-gradient(ellipse at 30% 80%, #f5e6c8 0%, transparent 60%);
}
.scn-recounting-yacht-story .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8d8f0 0%, #d0e8ff 100%); animation: ry-sky 12s ease-in-out infinite alternate; }
.scn-recounting-yacht-story .awning { position:absolute; top:0; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #d4bf88 0%, #b8975a 100%); clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); box-shadow: 0 8px 20px rgba(0,0,0,0.3); animation: ry-awning 10s ease-in-out infinite alternate; }
.scn-recounting-yacht-story .pillar-left { position:absolute; bottom:20%; left:15%; width:4%; height:55%; background: linear-gradient(180deg, #8b6f4a 0%, #6a5030 100%); box-shadow: -4px 0 8px rgba(0,0,0,0.2); }
.scn-recounting-yacht-story .pillar-right { position:absolute; bottom:20%; right:15%; width:4%; height:55%; background: linear-gradient(180deg, #8b6f4a 0%, #6a5030 100%); box-shadow: 4px 0 8px rgba(0,0,0,0.2); }
.scn-recounting-yacht-story .figure-inner { position:absolute; bottom:20%; left:40%; width:12%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ry-figure-inner 6s ease-in-out infinite alternate; }
.scn-recounting-yacht-story .figure-outer { position:absolute; bottom:20%; right:40%; width:12%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ry-figure-outer 6s ease-in-out infinite alternate; }
.scn-recounting-yacht-story .deck-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 100%); animation: ry-deck-shadow 8s ease-in-out infinite alternate; }
.scn-recounting-yacht-story .distant-ship { position:absolute; bottom:35%; left:75%; width:6%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(20% 60%, 40% 20%, 60% 20%, 80% 60%, 70% 80%, 30% 80%, 20% 60%); animation: ry-ship 15s ease-in-out infinite; }
@keyframes ry-sky { 0% { opacity:0.8; filter: brightness(1) } 50% { opacity:1; filter: brightness(1.1) } 100% { opacity:0.85; filter: brightness(0.95) } }
@keyframes ry-awning { 0% { transform: translateY(0) skewX(0) } 50% { transform: translateY(-3px) skewX(2deg) } 100% { transform: translateY(0) skewX(0) } }
@keyframes ry-figure-inner { 0% { transform: rotate(-2deg) translateX(-2px) } 50% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(-2deg) translateX(-2px) } }
@keyframes ry-figure-outer { 0% { transform: rotate(2deg) translateX(2px) } 50% { transform: rotate(-1deg) translateX(-2px) } 100% { transform: rotate(2deg) translateX(2px) } }
@keyframes ry-deck-shadow { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.25 } }
@keyframes ry-ship { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }

/* Scene: inquiry-about-leithcourts (tense, bright-interior) */
.scn-inquiry-about-leithcourts {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 30%, #4a3a3a 70%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 20%, #6a4a3a 0%, transparent 70%);
}
.scn-inquiry-about-leithcourts .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2a2a 0%, #2a1a1a 100%);
  animation: iql-wall 12s ease-in-out infinite alternate;
}
.scn-inquiry-about-leithcourts .window-frame {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: inset 0 0 0 6px #5a4a3a;
  animation: iql-frame 8s ease-in-out infinite alternate;
}
.scn-inquiry-about-leithcourts .window-light {
  position: absolute; top: 12%; left: 32%; width: 36%; height: 31%;
  background: radial-gradient(circle at 50% 50%, #fff8e0 0%, #e0d0b0 50%, #c0b090 100%);
  box-shadow: 0 0 40px 20px rgba(255, 248, 224, 0.5);
  animation: iql-light 4s ease-in-out infinite alternate;
}
.scn-inquiry-about-leithcourts .desk {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-inquiry-about-leithcourts .lamp {
  position: absolute; bottom: 25%; left: 25%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 8px #c0a060, inset 0 0 10px #c0a060;
  animation: iql-lamp 3s ease-in-out infinite alternate;
}
.scn-inquiry-about-leithcourts .figure-seated {
  position: absolute; bottom: 20%; left: 50%; 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 center;
  animation: iql-figure 6s ease-in-out infinite;
}
.scn-inquiry-about-leithcourts .shadow-flicker {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: iql-shadow 2s steps(4) infinite;
}
.scn-inquiry-about-leithcourts .curtain-left {
  position: absolute; top: 10%; left: 28%; width: 8%; height: 35%;
  background: linear-gradient(90deg, #6a4a3a 0%, #5a3a2a 50%, #4a2a1a 100%);
  border-radius: 0 10px 10px 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.4);
  animation: iql-curtain-left 12s ease-in-out infinite alternate;
}
.scn-inquiry-about-leithcourts .curtain-right {
  position: absolute; top: 10%; right: 28%; width: 8%; height: 35%;
  background: linear-gradient(270deg, #6a4a3a 0%, #5a3a2a 50%, #4a2a1a 100%);
  border-radius: 10px 0 0 10px; box-shadow: inset 4px 0 8px rgba(0,0,0,0.4);
  animation: iql-curtain-right 12s ease-in-out infinite alternate;
}
@keyframes iql-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes iql-frame { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes iql-light { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(0.98); } 100% { opacity: 0.9; transform: scale(1); } }
@keyframes iql-lamp { 0% { box-shadow: 0 0 15px 5px #c0a060; } 50% { box-shadow: 0 0 30px 12px #ffd080; } 100% { box-shadow: 0 0 20px 8px #c0a060; } }
@keyframes iql-figure { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes iql-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes iql-curtain-left { 0% { width: 8%; } 50% { width: 10%; } 100% { width: 8%; } }
@keyframes iql-curtain-right { 0% { width: 8%; } 50% { width: 10%; } 100% { width: 8%; } }

/* Scene: next-day-party (warm, sunlit) */
.scn-next-day-party {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 70%, #d2b48c 100%),
    radial-gradient(ellipse at 50% 100%, #ffdab9 0%, transparent 80%);
}
.scn-next-day-party .sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: ndp-sky 20s ease-in-out infinite alternate;
}
.scn-next-day-party .lawn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7ccd7c 0%, #3cb371 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-next-day-party .table {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 40%; height: 6%;
  background: linear-gradient(180deg, #deb887 0%, #d2b48c 100%);
  border-radius: 30px; box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: ndp-table 8s ease-in-out infinite alternate;
}
.scn-next-day-party .parasol {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 35%; height: 30%;
  background: linear-gradient(135deg, #ffefd5 0%, #ffdead 50%, #f5deb3 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 -10px 20px rgba(255,255,200,0.5);
  animation: ndp-parasol 12s ease-in-out infinite alternate;
}
.scn-next-day-party .chair-left {
  position: absolute; bottom: 20%; left: 25%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 100%);
  border-radius: 10px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ndp-chair 10s ease-in-out infinite;
}
.scn-next-day-party .chair-right {
  position: absolute; bottom: 20%; right: 25%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 100%);
  border-radius: 10px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ndp-chair 10s ease-in-out infinite;
  animation-delay: -5s;
}
.scn-next-day-party .figure-standing {
  position: absolute; bottom: 22%; left: 40%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ndp-figure 6s ease-in-out infinite;
}
.scn-next-day-party .flower-bush {
  position: absolute; bottom: 15%; left: 15%; width: 20%; height: 20%;
  background: radial-gradient(circle at 30% 40%, #ff69b4 0%, #ff1493 30%, transparent 70%);
  filter: blur(3px);
  animation: ndp-bush 15s ease-in-out infinite alternate;
}
.scn-next-day-party .butterfly {
  position: absolute; top: 20%; left: 30%; width: 4%; height: 4%;
  background: radial-gradient(circle, #ffa500 0%, #ff6347 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ndp-butterfly 8s linear infinite;
}
@keyframes ndp-sky { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes ndp-table { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.98); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ndp-parasol { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ndp-chair { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ndp-figure { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ndp-bush { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes ndp-butterfly { 0% { transform: translate(0, 0); } 25% { transform: translate(30px, -20px); } 50% { transform: translate(60px, 10px); } 75% { transform: translate(30px, 20px); } 100% { transform: translate(0, 0); } }

/* Scene: woodroffe-absent (warm, sunlit) */
.scn-woodroffe-absent {
  background:
    linear-gradient(180deg, #f5deb3 0%, #e6c280 30%, #d2b48c 60%, #b8860b 100%),
    radial-gradient(ellipse at 50% 100%, #ffd700 0%, transparent 70%);
}
.scn-woodroffe-absent .sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 50%;
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%);
  animation: woa-sky 25s ease-in-out infinite alternate;
}
.scn-woodroffe-absent .lawn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #9acd32 0%, #6b8e23 100%);
  border-radius: 30% 70% 0 0 / 40% 50% 0 0;
}
.scn-woodroffe-absent .table-single {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 30%; height: 5%;
  background: linear-gradient(180deg, #deb887 0%, #cd853f 100%);
  border-radius: 20px; box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  animation: woa-table 10s ease-in-out infinite;
}
.scn-woodroffe-absent .vacant-chair {
  position: absolute; bottom: 22%; left: 60%; width: 10%; height: 16%;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 100%);
  border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: woa-chair 12s ease-in-out infinite alternate;
}
.scn-woodroffe-absent .figure-seated {
  position: absolute; bottom: 22%; left: 35%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: woa-figure 8s ease-in-out infinite;
}
.scn-woodroffe-absent .teacup {
  position: absolute; bottom: 30%; left: 48%; width: 4%; height: 4%;
  background: radial-gradient(circle, #f5f5dc 0%, #e8d8b0 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 0 #b8860b;
  animation: woa-cup 5s ease-in-out infinite alternate;
}
.scn-woodroffe-absent .tree-trunk {
  position: absolute; bottom: 20%; right: 10%; width: 8%; height: 40%;
  background: linear-gradient(90deg, #8b5a2b 0%, #5c3a1e 50%, #8b5a2b 100%);
  border-radius: 10px;
  animation: woa-tree 20s ease-in-out infinite alternate;
}
.scn-woodroffe-absent .fallen-leaf {
  position: absolute; bottom: 15%; left: 20%; width: 4%; height: 3%;
  background: #daa520;
  border-radius: 50% 0 50% 0;
  animation: woa-leaf 10s linear infinite;
}
@keyframes woa-sky { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes woa-table { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(0.97); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes woa-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes woa-figure { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes woa-cup { 0% { transform: translate(0, 0); } 50% { transform: translate(2px, -1px); } 100% { transform: translate(0, 0); } }
@keyframes woa-tree { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes woa-leaf { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(20px, 10px) rotate(45deg); } 50% { transform: translate(40px, 5px) rotate(90deg); } 75% { transform: translate(60px, 15px) rotate(135deg); } 100% { transform: translate(80px, 0) rotate(180deg); } }

/* Scene: congratulations-to-muriel (tense, sunlit) */
.scn-congratulations-to-muriel {
  background:
    linear-gradient(180deg, #f0e68c 0%, #ffe4b5 30%, #ffdead 60%, #d2b48c 100%),
    radial-gradient(ellipse at 50% 20%, #ffffe0 0%, transparent 80%);
}
.scn-congratulations-to-muriel .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f5deb3 0%, #e6c280 50%, #d2b48c 100%);
  animation: ctm-wall 15s ease-in-out infinite alternate;
}
.scn-congratulations-to-muriel .window {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(circle at 50% 50%, #fff8dc 0%, #f0e68c 70%, #deb887 100%);
  box-shadow: 0 0 30px 10px rgba(255, 248, 220, 0.6);
  animation: ctm-window 6s ease-in-out infinite alternate;
}
.scn-congratulations-to-muriel .figure-left {
  position: absolute; bottom: 18%; left: 25%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ctm-figure-left 8s ease-in-out infinite;
}
.scn-congratulations-to-muriel .figure-right {
  position: absolute; bottom: 18%; right: 25%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ctm-figure-right 8s ease-in-out infinite;
}
.scn-congratulations-to-muriel .handshake {
  position: absolute; bottom: 38%; left: 43%; width: 14%; height: 8%;
  background: linear-gradient(90deg, #8b4513 0%, #a0522d 50%, #8b4513 100%);
  border-radius: 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ctm-handshake 4s ease-in-out infinite alternate;
}
.scn-congratulations-to-muriel .shadow-line {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 2%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 30%, transparent 70%);
  animation: ctm-shadow 5s linear infinite;
}
.scn-congratulations-to-muriel .dust-particles {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(circle at 50% 50%, rgba(255,255,200,0.2) 0%, transparent 60%);
  filter: blur(4px);
  animation: ctm-dust 12s ease-in-out infinite alternate;
}
@keyframes ctm-wall { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes ctm-window { 0% { opacity: 0.7; transform: scale(1); box-shadow: 0 0 20px 5px rgba(255,248,220,0.5); } 50% { opacity: 1; transform: scale(0.98); box-shadow: 0 0 40px 15px rgba(255,248,220,0.8); } 100% { opacity: 0.8; transform: scale(1); box-shadow: 0 0 20px 5px rgba(255,248,220,0.5); } }
@keyframes ctm-figure-left { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(1deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ctm-figure-right { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ctm-handshake { 0% { transform: scale(1); } 50% { transform: scale(0.95); } 100% { transform: scale(1); } }
@keyframes ctm-shadow { 0% { transform: translateX(-10%); opacity: 0.3; } 50% { transform: translateX(10%); opacity: 0.6; } 100% { transform: translateX(-10%); opacity: 0.3; } }
@keyframes ctm-dust { 0% { opacity: 0.3; transform: translate(0, 0); } 50% { opacity: 0.6; transform: translate(5px, -5px); } 100% { opacity: 0.3; transform: translate(0, 0); } }

/* man-assassin-doubt (mad) */
.scn-man-assassin-doubt {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a1e2a 40%, #3a2a1e 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 60%);
}
.scn-man-assassin-doubt .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-man-assassin-doubt .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1210 0%, #2a1e18 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,.6); }
.scn-man-assassin-doubt .window { position:absolute; top:18%; right:28%; width:60px; height:90px; background: linear-gradient(135deg, #2a3e5a 0%, #1a2a3e 100%); border: 4px solid #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 10px #2a4a6a, 0 4px 8px rgba(0,0,0,.5); animation: mad-window 8s ease-in-out infinite alternate; }
.scn-man-assassin-doubt .table { position:absolute; bottom:22%; left:40%; width:80px; height:16px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,.5); transform: perspective(200px) rotateX(4deg); }
.scn-man-assassin-doubt .candle { position:absolute; bottom:24%; left:45%; width:10px; height:24px; background: linear-gradient(180deg, #c8a060 0%, #8a6a30 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px #d0a050, 0 0 40px 16px rgba(200,160,80,.4); animation: mad-candle 2s ease-in-out infinite alternate; }
.scn-man-assassin-doubt .figure { position:absolute; bottom:20%; left:25%; width:40px; height:150px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mad-figure 6s ease-in-out infinite; }
.scn-man-assassin-doubt .shadow { position:absolute; bottom:0; left:20%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: mad-shadow 6s ease-in-out infinite; }
.scn-man-assassin-doubt .dust { position:absolute; top:10%; left:30%; width:4px; height:4px; background: rgba(200,180,160,.3); border-radius:50%; filter: blur(2px); animation: mad-dust 15s linear infinite; }
@keyframes mad-window { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes mad-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity:.8; } 50% { transform: scaleY(1.05) rotate(2deg); opacity:1; } 100% { transform: scaleY(.95) rotate(-1deg); opacity:.9; } }
@keyframes mad-figure { 0% { transform: translateX(0) rotate(0); } 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 mad-shadow { 0% { transform: scaleX(1) translateX(0); opacity:.6; } 50% { transform: scaleX(1.1) translateX(-4px); opacity:.8; } 100% { transform: scaleX(1) translateX(0); opacity:.6; } }
@keyframes mad-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 20% { opacity:.5; } 80% { opacity:.3; } 100% { transform: translate(60px, -30px) scale(2); opacity:0; } }

/* search-in-wood (sw) */
.scn-search-in-wood {
  background: linear-gradient(180deg, #6a8aaa 0%, #b0a080 40%, #9a7a5a 100%),
              radial-gradient(ellipse at 30% 20%, #d0b050 0%, transparent 50%);
}
.scn-search-in-wood .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a9abb 0%, #b0c0d0 100%); animation: sw-sky 20s ease-in-out infinite alternate; }
.scn-search-in-wood .sun { position:absolute; top:8%; left:20%; width:60px; height:60px; background: radial-gradient(circle, #ffe080 0%, #d0a030 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,224,128,.4); animation: sw-sun 12s ease-in-out infinite alternate; }
.scn-search-in-wood .tree-left { position:absolute; bottom:25%; left:8%; width:30px; height:200px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:6px; box-shadow: -4px 0 8px rgba(0,0,0,.3); transform-origin: bottom center; animation: sw-tree 20s ease-in-out infinite; }
.scn-search-in-wood .tree-right { position:absolute; bottom:25%; right:15%; width:40px; height:220px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:8px; box-shadow: 4px 0 10px rgba(0,0,0,.3); animation: sw-tree 24s ease-in-out infinite reverse; }
.scn-search-in-wood .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #5a4a30 0%, #7a6a48 40%, #8a7a5a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-search-in-wood .figure-a { position:absolute; bottom:22%; left:25%; width:24px; height:50px; background: #2a2a3a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sw-figure 4s ease-in-out infinite; }
.scn-search-in-wood .figure-b { position:absolute; bottom:24%; right:32%; width:22px; height:48px; background: #3a2a2a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sw-figure 4.5s ease-in-out infinite -1.5s; }
.scn-search-in-wood .leaf { position:absolute; top:30%; left:60%; width:12px; height:8px; background: #c87030; border-radius: 50% 0 50% 0 / 60% 20% 60% 20%; filter: blur(1px); animation: sw-leaf 8s linear infinite; }
@keyframes sw-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes sw-sun { 0% { transform: scale(.9) rotate(-5deg); box-shadow: 0 0 40px 20px rgba(255,224,128,.3); } 50% { transform: scale(1.05) rotate(2deg); box-shadow: 0 0 80px 40px rgba(255,224,128,.5); } 100% { transform: scale(.95) rotate(-3deg); box-shadow: 0 0 50px 25px rgba(255,224,128,.35); } }
@keyframes sw-tree { 0% { transform: rotate(0); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes sw-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(-1px) rotate(1deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sw-leaf { 0% { transform: translate(0,0) rotate(0) scale(1); opacity:1; } 50% { transform: translate(-30px, 40px) rotate(120deg) scale(.8); opacity:.7; } 100% { transform: translate(-80px, 100px) rotate(240deg) scale(.5); opacity:0; } }

/* beginning-search (bs) */
.scn-beginning-search {
  background: linear-gradient(180deg, #8aaaae 0%, #b0a080 40%, #7a6a48 100%),
              radial-gradient(ellipse at 70% 30%, #d0b060 0%, transparent 50%);
}
.scn-beginning-search .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #9abbc8 0%, #c0d0d8 60%, #d8e0e0 100%); }
.scn-beginning-search .path { position:absolute; bottom:25%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); }
.scn-beginning-search .tree-back { position:absolute; bottom:30%; left:50%; width:50px; height:180px; background: #3a2a1a; border-radius: 12px; transform: translateX(-50%) scale(.9); box-shadow: 0 0 20px rgba(0,0,0,.3); animation: bs-tree 18s ease-in-out infinite; }
.scn-beginning-search .bush { position:absolute; bottom:18%; right:5%; width:80px; height:40px; background: radial-gradient(ellipse, #5a7a3a 0%, #3a5a2a 60%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: bs-bush 12s ease-in-out infinite alternate; }
.scn-beginning-search .figure { position:absolute; bottom:28%; left:35%; width:28px; height:55px; background: #2a2a3a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bs-figure 5s ease-in-out infinite; }
.scn-beginning-search .arm { position:absolute; bottom:32%; left:38%; width:20px; height:8px; background: #1a1a2a; border-radius: 0 50% 50% 0; transform-origin: left center; animation: bs-arm 3.5s ease-in-out infinite alternate; }
.scn-beginning-search .leaf-pile { position:absolute; bottom:5%; left:20%; width:60px; height:12px; background: radial-gradient(ellipse, #b08040 0%, #8a5a20 100%); border-radius: 50%; filter: blur(2px); animation: bs-leaf 8s linear infinite; }
@keyframes bs-tree { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(1deg) scale(.95); } 100% { transform: translateX(-50%) rotate(-1deg) scale(1); } }
@keyframes bs-bush { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(-5px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes bs-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bs-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-25deg); } }
@keyframes bs-leaf { 0% { transform: translate(0,0) scale(1); opacity:.5; } 50% { transform: translate(15px, -8px) scale(1.2); opacity:.7; } 100% { transform: translate(30px, -16px) scale(.9); opacity:.4; } }

/* searching-thickets (st) */
.scn-searching-thickets {
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 40%, #0a1a0a 100%),
              radial-gradient(ellipse at 40% 50%, #4a6a3a 0%, transparent 60%);
}
.scn-searching-thickets .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #1a2a1a 0%, #0a1a0a 50%, #1a1a0a 100%); animation: st-bg 25s ease-in-out infinite alternate; }
.scn-searching-thickets .branch-left { position:absolute; top:10%; left:-10%; width:50%; height:8px; background: #3a2a1a; border-radius: 4px; transform: rotate(-20deg); transform-origin: right center; animation: st-branch 7s ease-in-out infinite; }
.scn-searching-thickets .branch-right { position:absolute; top:20%; right:-5%; width:40%; height:6px; background: #2a1a0a; border-radius: 3px; transform: rotate(15deg); transform-origin: left center; animation: st-branch 8s ease-in-out infinite alternate; }
.scn-searching-thickets .figure { position:absolute; bottom:30%; left:35%; width:30px; height:60px; background: #2a2a3a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-figure 6s ease-in-out infinite; }
.scn-searching-thickets .stick { position:absolute; bottom:35%; left:45%; width:60px; height:4px; background: #5a4a2a; border-radius: 2px; transform-origin: right center; animation: st-stick 1.2s ease-in-out infinite alternate; }
.scn-searching-thickets .leaf-particle { position:absolute; top:40%; left:20%; width:6px; height:6px; background: #7a6a3a; border-radius: 50%; filter: blur(2px); animation: st-leaf 10s linear infinite; }
@keyframes st-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes st-branch { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.05); } 100% { transform: rotate(-22deg) scaleX(.95); } }
@keyframes st-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(1px) rotate(1deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes st-stick { 0% { transform: rotate(-40deg); } 100% { transform: rotate(30deg); } }
@keyframes st-leaf { 0% { transform: translate(0,0) scale(1) rotate(0); opacity:0; } 20% { opacity:.6; } 80% { opacity:.4; } 100% { transform: translate(50px, 80px) scale(1.5) rotate(360deg); opacity:0; } }

/* palace-oberg-responsibility */
.scn-palace-oberg-responsibility {
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 40%, #9a8a72 100%),
              radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, transparent 60%);
}
.scn-palace-oberg-responsibility .wall {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(90deg, #d4c8b4 0%, #e0d4bc 50%, #c8bca4 100%);
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.12);
}
.scn-palace-oberg-responsibility .floor {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(0deg, #7a6a5a 0%, #9a8a72 30%, #b8a890 100%);
}
.scn-palace-oberg-responsibility .window {
  position:absolute; top:12%; left:60%; width:120px; height:160px;
  background: linear-gradient(180deg, #d0e0f0 0%, #b0c8e0 100%);
  border: 8px solid #8a7a6a; border-radius:4px;
  box-shadow: inset 0 0 20px #ffffffaa, 0 0 30px #ffffff60;
}
.scn-palace-oberg-responsibility .desk {
  position:absolute; bottom:28%; left:20%; width:180px; height:40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-palace-oberg-responsibility .figure-sit {
  position:absolute; bottom:30%; left:18%; width:60px; height:90px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pob-fig-sit 6s ease-in-out infinite;
}
.scn-palace-oberg-responsibility .figure-stand {
  position:absolute; bottom:30%; left:58%; width:50px; height:100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pob-fig-stand 4s ease-in-out infinite;
}
.scn-palace-oberg-responsibility .lamp {
  position:absolute; bottom:36%; left:36%; width:16px; height:50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius:2px;
}
.scn-palace-oberg-responsibility .lamp::after {
  content:''; position:absolute; top:-10px; left:-8px; width:32px; height:20px;
  background: radial-gradient(circle, #ffe0a0 0%, #f0c060 100%);
  border-radius:50%;
  box-shadow: 0 0 30px 10px #f0c06080, 0 0 60px 20px #f0c06040;
  animation: pob-glow 2s ease-in-out infinite alternate;
}
.scn-palace-oberg-responsibility .rug {
  position:absolute; bottom:2%; left:10%; width:80%; height:12%;
  background: linear-gradient(135deg, #a08060 0%, #806040 50%, #705030 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
}
.scn-palace-oberg-responsibility .shadow {
  position:absolute; bottom:30%; left:20%; width:60%; height:10%;
  background: radial-gradient(ellipse, #00000022 0%, transparent 70%);
  animation: pob-shadow 5s ease-in-out infinite;
}
@keyframes pob-fig-sit {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes pob-fig-stand {
  0% { transform: rotate(1deg) translateX(0); }
  30% { transform: rotate(-3deg) translateX(-3px); }
  60% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(1deg) translateX(0); }
}
@keyframes pob-glow {
  0% { opacity:0.7; box-shadow: 0 0 20px 6px #f0c06080, 0 0 40px 12px #f0c06040; }
  100% { opacity:1; box-shadow: 0 0 40px 12px #ffd080c0, 0 0 80px 24px #ffd08060; }
}
@keyframes pob-shadow {
  0% { opacity:0.3; transform: scaleX(1); }
  50% { opacity:0.6; transform: scaleX(1.2); }
  100% { opacity:0.3; transform: scaleX(1); }
}

/* palace-defiance-laugh */
.scn-palace-defiance-laugh {
  background: linear-gradient(180deg, #dfd0b8 0%, #c0b098 50%, #a09078 100%),
              radial-gradient(ellipse at 50% 20%, #f0e4cc 0%, transparent 60%);
}
.scn-palace-defiance-laugh .curtain {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(90deg, #8a7a6a 0%, #b8a890 30%, #8a7a6a 70%, #6a5a4a 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.15);
}
.scn-palace-defiance-laugh .figure {
  position:absolute; bottom:15%; left:50%; transform:translateX(-50%);
  width:120px; height:200px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pdl-fig 3s ease-in-out infinite;
}
.scn-palace-defiance-laugh .figure::before {
  content:''; position:absolute; top:-20%; left:50%; transform:translateX(-50%);
  width:60px; height:50px;
  background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-palace-defiance-laugh .figure::after {
  content:''; position:absolute; top:-10%; left:70%; width:40px; height:12px;
  background: #1a1a2a; border-radius:50%; transform:rotate(20deg);
  animation: pdl-arm 1.5s ease-in-out infinite alternate;
}
.scn-palace-defiance-laugh .chair {
  position:absolute; bottom:15%; left:20%; width:80px; height:100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:10% 10% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-palace-defiance-laugh .candelabra {
  position:absolute; bottom:30%; left:70%; width:30px; height:80px;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 100%);
  border-radius:4px;
}
.scn-palace-defiance-laugh .candelabra::before {
  content:''; position:absolute; top:-15px; left:-5px; width:40px; height:20px;
  background: radial-gradient(circle, #ffe0a0 0%, #f0c060 100%);
  border-radius:50%;
  box-shadow: 0 0 20px 6px #f0c06080;
  animation: pdl-flame 2s ease-in-out infinite alternate;
}
.scn-palace-defiance-laugh .glow {
  position:absolute; top:5%; left:50%; transform:translateX(-50%);
  width:300px; height:300px;
  background: radial-gradient(circle, #fff8e080 0%, transparent 70%);
  animation: pdl-glow 4s ease-in-out infinite alternate;
}
.scn-palace-defiance-laugh .shadow {
  position:absolute; bottom:0; left:20%; width:60%; height:8%;
  background: radial-gradient(ellipse, #00000030 0%, transparent 70%);
  animation: pdl-shadow 5s ease-in-out infinite;
}
@keyframes pdl-fig {
  0% { transform:translateX(-50%) rotate(-3deg) scale(1); }
  50% { transform:translateX(-52%) rotate(5deg) scale(1.02); }
  100% { transform:translateX(-50%) rotate(-3deg) scale(1); }
}
@keyframes pdl-arm {
  0% { transform:rotate(20deg) translateY(0); }
  100% { transform:rotate(40deg) translateY(-10px); }
}
@keyframes pdl-flame {
  0% { opacity:0.7; transform:scale(0.9) rotate(-2deg); }
  100% { opacity:1; transform:scale(1.1) rotate(2deg); }
}
@keyframes pdl-glow {
  0% { opacity:0.5; transform:translateX(-50%) scale(0.9); }
  100% { opacity:0.8; transform:translateX(-50%) scale(1.1); }
}
@keyframes pdl-shadow {
  0% { opacity:0.2; transform:scaleX(1); }
  50% { opacity:0.6; transform:scaleX(1.3); }
  100% { opacity:0.2; transform:scaleX(1); }
}

/* palace-empty-threat */
.scn-palace-empty-threat {
  background: linear-gradient(180deg, #cfc4b0 0%, #b8a898 50%, #a09080 100%),
              radial-gradient(ellipse at 40% 50%, #e0d8c8 0%, transparent 60%);
}
.scn-palace-empty-threat .door-frame {
  position:absolute; top:0; left:30%; width:40%; height:100%;
  border: 12px solid #5a4a3a; box-sizing:border-box;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius:4px 4px 0 0;
}
.scn-palace-empty-threat .figure-fore {
  position:absolute; bottom:25%; left:25%; width:80px; height:140px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pet-fig-fore 4s ease-in-out infinite;
}
.scn-palace-empty-threat .figure-back {
  position:absolute; bottom:25%; left:55%; width:60px; height:120px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pet-fig-back 5s ease-in-out infinite;
}
.scn-palace-empty-threat .table {
  position:absolute; bottom:20%; left:40%; width:120px; height:30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-palace-empty-threat .vase {
  position:absolute; bottom:25%; left:44%; width:20px; height:40px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius:0 0 40% 40%; transform:rotate(-5deg);
  animation: pet-vase 8s ease-in-out infinite;
}
.scn-palace-empty-threat .clock {
  position:absolute; top:12%; right:12%; width:40px; height:60px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-palace-empty-threat .clock::after {
  content:''; position:absolute; top:50%; left:50%; width:4px; height:20px;
  background: #2a2a1a; border-radius:2px; transform-origin:bottom center;
  animation: pet-hand 6s linear infinite;
}
.scn-palace-empty-threat .shadow {
  position:absolute; bottom:20%; left:20%; width:60%; height:10%;
  background: radial-gradient(ellipse, #00000030 0%, transparent 70%);
  animation: pet-shadow 7s ease-in-out infinite;
}
@keyframes pet-fig-fore {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes pet-fig-back {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes pet-vase {
  0% { transform:rotate(-5deg); }
  50% { transform:rotate(5deg); }
  100% { transform:rotate(-5deg); }
}
@keyframes pet-hand {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes pet-shadow {
  0% { opacity:0.3; transform:scaleX(1); }
  50% { opacity:0.7; transform:scaleX(1.2); }
  100% { opacity:0.3; transform:scaleX(1); }
}

/* palace-bluff-success */
.scn-palace-bluff-success {
  background: linear-gradient(180deg, #e0d4c0 0%, #c8bca8 50%, #b0a490 100%),
              radial-gradient(ellipse at 60% 70%, #f0e8d8 0%, transparent 50%);
}
.scn-palace-bluff-success .armchair {
  position:absolute; bottom:20%; left:30%; width:160px; height:160px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius:30% 30% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-palace-bluff-success .armchair::after {
  content:''; position:absolute; top:0; left:20%; width:60%; height:40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20%;
}
.scn-palace-bluff-success .figure {
  position:absolute; bottom:25%; left:40%; width:70px; height:130px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbs-fig 3s ease-in-out infinite;
}
.scn-palace-bluff-success .figure::after {
  content:''; position:absolute; top:-10%; left:80%; width:30px; height:10px;
  background: #1a1a2a; border-radius:50%; transform:rotate(-30deg);
  animation: pbs-leg 2s ease-in-out infinite alternate;
}
.scn-palace-bluff-success .footstool {
  position:absolute; bottom:18%; left:55%; width:70px; height:20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius:10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-palace-bluff-success .fireplace {
  position:absolute; bottom:10%; left:5%; width:40%; height:50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
}
.scn-palace-bluff-success .fireplace::before {
  content:''; position:absolute; bottom:0; left:10%; width:80%; height:30%;
  background: radial-gradient(circle, #ffa060 0%, #c06020 100%);
  border-radius:50% 50% 0 0;
  box-shadow: 0 0 40px 20px #ff804060;
  animation: pbs-fire 3s ease-in-out infinite alternate;
}
.scn-palace-bluff-success .mantel {
  position:absolute; top:15%; left:8%; width:34%; height:6%;
  background: linear-gradient(90deg, #7a6a5a 0%, #9a8a7a 50%, #7a6a5a 100%);
  border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-palace-bluff-success .painting {
  position:absolute; top:22%; left:10%; width:28%; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border:6px solid #6a5a4a; border-radius:4px;
}
.scn-palace-bluff-success .carpet {
  position:absolute; bottom:0; left:5%; width:90%; height:10%;
  background: linear-gradient(90deg, #a08060 0%, #c0a080 20%, #a08060 80%, #806050 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
}
@keyframes pbs-fig {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(-5px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes pbs-leg {
  0% { transform:rotate(-30deg) translateY(0); }
  100% { transform:rotate(-50deg) translateY(-5px); }
}
@keyframes pbs-fire {
  0% { opacity:0.7; transform:scale(0.9) rotate(-3deg); }
  50% { opacity:1; transform:scale(1.1) rotate(3deg); }
  100% { opacity:0.8; transform:scale(0.95) rotate(-1deg); }
}

.scn-promise-of-help {
  background:
    linear-gradient(180deg, #1a1210 0%, #2c1e18 40%, #3a2a1e 100%),
    radial-gradient(ellipse at 25% 40%, rgba(200,160,80,0.15) 0%, transparent 60%);
}
.scn-promise-of-help .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #2a2018 0%, #1a1410 100%);
  border-radius: 0 0 10% 10%;
  animation: ph-bg 18s ease-in-out infinite alternate;
}
.scn-promise-of-help .desk {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(135deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-promise-of-help .lamp-glow {
  position: absolute; bottom: 40%; left: 20%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 100%, #e8c050 0%, #b08a30 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 10px rgba(200,160,80,0.5), 0 0 80px 20px rgba(200,160,80,0.2);
  animation: ph-lamp 3s ease-in-out infinite alternate;
}
.scn-promise-of-help .figure-sitting {
  position: absolute; bottom: 22%; left: 35%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ph-sit 5s ease-in-out infinite;
}
.scn-promise-of-help .figure-standing {
  position: absolute; bottom: 22%; left: 55%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a100e 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 45% 45%;
  transform-origin: bottom center;
  animation: ph-stand 7s ease-in-out infinite;
}
.scn-promise-of-help .shadow-floor {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: ph-shadow 6s ease-in-out infinite alternate;
}
@keyframes ph-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ph-lamp { 0% { opacity: 0.9; transform: scale(1) } 30% { opacity: 1; transform: scale(1.05) } 60% { opacity: 0.95; transform: scale(0.98) } 100% { opacity: 0.85; transform: scale(1) } }
@keyframes ph-sit { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(0deg) } }
@keyframes ph-stand { 0%,100% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-1px) rotate(1.5deg) } 40% { transform: translateY(0) rotate(-1deg) } 60% { transform: translateY(-2px) rotate(0deg) } 80% { transform: translateY(-1px) rotate(1deg) } }
@keyframes ph-shadow { 0% { opacity: 0.6; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(1.05) } 100% { opacity: 0.5; transform: scaleX(0.95) } }

/* --- */

.scn-olinto-reveals-danger {
  background:
    linear-gradient(180deg, #121018 0%, #1a1620 50%, #221c28 100%),
    radial-gradient(ellipse at 70% 30%, rgba(60,50,90,0.3) 0%, transparent 60%);
}
.scn-olinto-reveals-danger .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #1a1620 0%, #0e0c14 100%);
  border-radius: 0 0 15% 15%;
}
.scn-olinto-reveals-danger .armchair {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #2a2228 0%, #1a141a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
  animation: od-chair 4s ease-in-out infinite;
}
.scn-olinto-reveals-danger .figure-sitting {
  position: absolute; bottom: 25%; left: 33%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #201a22 0%, #100c14 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: od-sit-jerk 1.5s ease-in-out infinite;
}
.scn-olinto-reveals-danger .figure-standing {
  position: absolute; bottom: 22%; left: 52%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #201a22 0%, #100c14 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 45% 45%;
  transform-origin: bottom center;
  animation: od-stand-lean 3s ease-in-out infinite;
}
.scn-olinto-reveals-danger .hands-grasping {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 14px;
  background: radial-gradient(ellipse, #3a2e3e 0%, #1a141a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(40,30,50,0.6);
  animation: od-grasp 0.8s ease-in-out infinite alternate;
}
.scn-olinto-reveals-danger .light-streak {
  position: absolute; top: 10%; left: 60%; width: 4px; height: 80%;
  background: linear-gradient(180deg, rgba(180,160,220,0.3) 0%, transparent 100%);
  filter: blur(2px);
  animation: od-streak 2s ease-in-out infinite alternate;
}
.scn-olinto-reveals-danger .shadow-cast {
  position: absolute; bottom: 12%; left: 40%; right: 20%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: od-shadow 2.5s ease-in-out infinite alternate;
}
@keyframes od-chair { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(1px) } 75% { transform: translateY(-1px) } }
@keyframes od-sit-jerk { 0% { transform: translate(0,0) rotate(0deg) scale(1) } 15% { transform: translate(6px, -4px) rotate(5deg) scale(0.95) } 30% { transform: translate(-2px, 2px) rotate(-3deg) scale(1.02) } 50% { transform: translate(0,0) rotate(0deg) scale(1) } 100% { transform: translate(0,0) rotate(0deg) scale(1) } }
@keyframes od-stand-lean { 0%,100% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-1px) rotate(3deg) } 40% { transform: translateY(0) rotate(-2deg) } 60% { transform: translateY(-2px) rotate(1deg) } 80% { transform: translateY(0) rotate(-1deg) } }
@keyframes od-grasp { 0% { transform: scale(1) opacity(1) } 50% { transform: scale(1.2) opacity(0.8) } 100% { transform: scale(0.9) opacity(1) } }
@keyframes od-streak { 0% { opacity: 0.2; transform: scaleY(0.8) } 50% { opacity: 0.8; transform: scaleY(1.2) } 100% { opacity: 0.3; transform: scaleY(0.9) } }
@keyframes od-shadow { 0% { opacity: 0.5; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(1.1) } 100% { opacity: 0.4; transform: scaleX(0.95) } }

/* --- */

.scn-revelation-of-trap {
  background:
    linear-gradient(180deg, #0c0a10 0%, #18141c 50%, #201c24 100%),
    radial-gradient(ellipse at 50% 60%, rgba(30,20,50,0.4) 0%, transparent 70%);
}
.scn-revelation-of-trap .bg-dark {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #0a0810 0%, #14101a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-revelation-of-trap .wall-light {
  position: absolute; top: 15%; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(100,80,120,0.15) 0%, transparent 60%);
  animation: rt-wall 5s ease-in-out infinite alternate;
}
.scn-revelation-of-trap .hand-on-gun {
  position: absolute; bottom: 30%; left: 42%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #1a1422 0%, #0e0a14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: rt-hand 2s ease-in-out infinite;
}
.scn-revelation-of-trap .gun {
  position: absolute; bottom: 28%; left: 46%; width: 30px; height: 10px;
  background: linear-gradient(135deg, #2a2230 0%, #14101a 100%);
  border-radius: 2px 4px 2px 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  transform: rotate(-10deg);
  animation: rt-gun 1.8s ease-in-out infinite alternate;
}
.scn-revelation-of-trap .shadow-arm {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: rt-arm-shadow 2.5s ease-in-out infinite alternate;
}
.scn-revelation-of-trap .eye-gleam {
  position: absolute; top: 35%; left: 55%; width: 6px; height: 4px;
  background: radial-gradient(circle, #c0b8d0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(180,160,200,0.3);
  animation: rt-eye 1.2s ease-in-out infinite;
}
@keyframes rt-wall { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.9; transform: scale(1.05) } 100% { opacity: 0.6; transform: scale(0.95) } }
@keyframes rt-hand { 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 rt-gun { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-5deg) scale(1.05) } 100% { transform: rotate(-12deg) scale(0.95) } }
@keyframes rt-arm-shadow { 0% { opacity: 0.3; transform: scaleX(1) } 50% { opacity: 0.7; transform: scaleX(1.1) } 100% { opacity: 0.4; transform: scaleX(0.9) } }
@keyframes rt-eye { 0%,100% { opacity: 0; transform: scale(1) } 20% { opacity: 1; transform: scale(1.5) } 40% { opacity: 0; transform: scale(0.5) } 60% { opacity: 1; transform: scale(1) } 80% { opacity: 0; transform: scale(0.8) } }

/* --- */

.scn-ominous-warning {
  background:
    linear-gradient(180deg, #0e0c12 0%, #1a161e 40%, #221e28 100%),
    radial-gradient(ellipse at 30% 80%, rgba(140,80,30,0.15) 0%, transparent 60%);
}
.scn-ominous-warning .bg-room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #12101a 0%, #0a0810 100%);
  border-radius: 0 0 10% 10%;
}
.scn-ominous-warning .fireplace {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #2a2228 0%, #1a141a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-ominous-warning .fire {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #e06030 0%, #c05020 40%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 0 30px 8px rgba(200,80,30,0.5), 0 0 60px 20px rgba(200,80,30,0.2);
  animation: ow-fire 2s ease-in-out infinite alternate;
}
.scn-ominous-warning .armchair {
  position: absolute; bottom: 12%; left: 40%; width: 80px; height: 55px;
  background: linear-gradient(180deg, #2a1e22 0%, #1a1016 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.7);
  animation: ow-chair 6s ease-in-out infinite;
}
.scn-ominous-warning .tongs {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #3a2a2e 0%, #1a141a 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ow-tongs 1.2s ease-in-out infinite;
}
.scn-ominous-warning .tongs-shadow {
  position: absolute; bottom: 10%; left: 55%; width: 2px; height: 40px;
  background: rgba(0,0,0,0.4);
  filter: blur(3px);
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: ow-shadow 1.5s ease-in-out infinite;
}
.scn-ominous-warning .watcher {
  position: absolute; bottom: 20%; left: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a12 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ow-watcher 5s ease-in-out infinite;
}
@keyframes ow-fire { 0% { transform: scale(1) translateY(0); opacity: 0.9 } 30% { transform: scale(1.1) translateY(-2px); opacity: 1 } 60% { transform: scale(0.95) translateY(2px); opacity: 0.85 } 100% { transform: scale(1) translateY(0); opacity: 0.9 } }
@keyframes ow-chair { 0%,100% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-1px) rotate(-1deg) } 50% { transform: translateY(1px) rotate(1deg) } 80% { transform: translateY(-2px) rotate(0deg) } }
@keyframes ow-tongs { 0%,100% { transform: rotate(5deg) } 20% { transform: rotate(8deg) } 40% { transform: rotate(3deg) } 60% { transform: rotate(7deg) } 80% { transform: rotate(4deg) } }
@keyframes ow-shadow { 0% { opacity: 0.3; transform: rotate(10deg) scaleY(1) } 50% { opacity: 0.6; transform: rotate(12deg) scaleY(1.1) } 100% { opacity: 0.2; transform: rotate(8deg) scaleY(0.9) } }
@keyframes ow-watcher { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(1.5deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(0.5deg) } }

/* Scene 1: london-durnford-reaction – tense bright interior, Durnford turning quickly */
.scn-london-durnford-reaction {
  background: 
    linear-gradient(180deg, #f5eed9 0%, #e5d7b0 40%, #c8ac7a 100%),
    radial-gradient(ellipse at 30% 80%, #ead9b8 0%, transparent 70%);
}
.scn-london-durnford-reaction .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fcf5e6 0%, #ebdfc0 100%);
}
.scn-london-durnford-reaction .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8b6f4a 0%, #5e4428 100%);
}
.scn-london-durnford-reaction .window {
  position: absolute; top: 8%; right: 12%; width: 28%; height: 50%;
  background: linear-gradient(180deg, #d4eaf7 0%, #b0d0e8 100%);
  border: 6px solid #4a3520; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(180,200,220,0.4);
  animation: ldr-windowglow 4s ease-in-out infinite alternate;
}
.scn-london-durnford-reaction .curtain {
  position: absolute; top: 8%; right: 12%; width: 32%; height: 50%;
  background: linear-gradient(90deg, rgba(120,80,50,0.3) 0%, rgba(150,110,70,0.6) 50%, rgba(120,80,50,0.3) 100%);
  border-radius: 0 20px 20px 0;
  animation: ldr-curtain 6s ease-in-out infinite alternate;
}
.scn-london-durnford-reaction .table {
  position: absolute; bottom: 20%; left: 15%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #6b4c30 0%, #4a3420 100%);
  border-radius: 4px; transform: perspective(400px) rotateX(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-london-durnford-reaction .lamp {
  position: absolute; bottom: 32%; left: 20%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 20%, #ffeca0 0%, #c8a850 70%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 30px 10px rgba(200,168,80,0.6), 0 0 60px 20px rgba(200,168,80,0.2);
  animation: ldr-lamp 2s ease-in-out infinite alternate;
}
.scn-london-durnford-reaction .figure-durnford {
  position: absolute; bottom: 18%; left: 48%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ldr-turn 3s ease-in-out infinite alternate;
}
.scn-london-durnford-reaction .figure-hanbury {
  position: absolute; bottom: 18%; left: 60%; width: 20px; height: 58px;
  background: linear-gradient(180deg, #3a3a3a 0%, #222 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ldr-stand 4s ease-in-out infinite;
}
@keyframes ldr-windowglow {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(180,200,220,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(180,200,220,0.6); }
  100% { opacity: 0.85; box-shadow: inset 0 0 15px rgba(180,200,220,0.4); }
}
@keyframes ldr-curtain {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-4px) scaleX(1.02); }
  100% { transform: translateX(2px) scaleX(0.98); }
}
@keyframes ldr-lamp {
  0% { box-shadow: 0 0 25px 8px rgba(200,168,80,0.5); }
  50% { box-shadow: 0 0 40px 15px rgba(200,168,80,0.8); }
  100% { box-shadow: 0 0 20px 5px rgba(200,168,80,0.4); }
}
@keyframes ldr-turn {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-8px) rotate(-15deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes ldr-stand {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(3deg); }
  75% { transform: translateX(-2px) rotate(-2deg); }
}

/* Scene 2: london-iris-yacht – tense discussion about yacht, two figures at table */
.scn-london-iris-yacht {
  background: 
    linear-gradient(180deg, #f0e6d0 0%, #d9c8a8 40%, #b89a70 100%),
    radial-gradient(ellipse at 70% 30%, #e0d0b0 0%, transparent 60%);
}
.scn-london-iris-yacht .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f7f0e0 0%, #e8dac0 100%);
}
.scn-london-iris-yacht .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5e3e 0%, #4f3a22 100%);
}
.scn-london-iris-yacht .painting {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #6a9ab5 0%, #3a6a85 100%);
  border: 5px solid #4a3520; border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: liy-painting 5s ease-in-out infinite alternate;
}
.scn-london-iris-yacht .table {
  position: absolute; bottom: 18%; left: 20%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #73614a 0%, #534434 100%);
  border-radius: 6px; transform: perspective(600px) rotateX(8deg);
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-london-iris-yacht .chair-major {
  position: absolute; bottom: 10%; left: 25%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 6px;
}
.scn-london-iris-yacht .chair-bartlett {
  position: absolute; bottom: 10%; left: 48%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 6px;
  transform: scale(0.9);
}
.scn-london-iris-yacht .lamp {
  position: absolute; bottom: 20%; left: 15%; width: 10px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #ffe4a0 0%, #c8a060 70%);
  box-shadow: 0 0 20px 6px rgba(200,160,96,0.5);
  animation: liy-lamp 2.5s ease-in-out infinite alternate;
}
.scn-london-iris-yacht .letter {
  position: absolute; bottom: 20%; left: 42%; width: 18px; height: 14px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 1px; transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: liy-letter 6s ease-in-out infinite;
}
@keyframes liy-painting {
  0% { transform: rotate(0deg); opacity: 0.9; }
  50% { transform: rotate(1deg); opacity: 1; }
  100% { transform: rotate(0deg); opacity: 0.95; }
}
@keyframes liy-lamp {
  0% { box-shadow: 0 0 15px 4px rgba(200,160,96,0.4); }
  50% { box-shadow: 0 0 28px 10px rgba(200,160,96,0.7); }
  100% { box-shadow: 0 0 18px 5px rgba(200,160,96,0.45); }
}
@keyframes liy-letter {
  0%,100% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-2px) rotate(-7deg); }
  75% { transform: translateY(1px) rotate(-3deg); }
}

/* Scene 3: london-bartlett-rannoch – tense retelling of Rannoch shoot, fireplace lighting */
.scn-london-bartlett-rannoch {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 30%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #a56a3a 0%, transparent 60%);
}
.scn-london-bartlett-rannoch .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #8a7050 0%, #5a4830 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
}
.scn-london-bartlett-rannoch .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3420 0%, #2a1a0e 100%);
}
.scn-london-bartlett-rannoch .fireplace {
  position: absolute; bottom: 25%; left: 12%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-london-bartlett-rannoch .fire {
  position: absolute; bottom: 22%; left: 16%; width: 32%; height: 25%;
  background: radial-gradient(ellipse at 50% 80%, #ff8a40 0%, #ff5a20 40%, #a03010 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: lbr-fire 1.5s ease-in-out infinite alternate;
}
.scn-london-bartlett-rannoch .trophy {
  position: absolute; top: 12%; left: 15%; width: 15%; height: 25%;
  background: radial-gradient(ellipse, #6a5040 0%, #4a3020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: lbr-trophy 4s ease-in-out infinite alternate;
}
.scn-london-bartlett-rannoch .chair {
  position: absolute; bottom: 18%; left: 60%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px;
}
.scn-london-bartlett-rannoch .figure-bartlett {
  position: absolute; bottom: 18%; left: 62%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lbr-bartlett-talk 3.5s ease-in-out infinite alternate;
}
.scn-london-bartlett-rannoch .figure-woodroffe {
  position: absolute; bottom: 18%; left: 48%; width: 20px; height: 56px;
  background: linear-gradient(180deg, #2a2a2a 0%, #101010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lbr-woodroffe-idle 5s ease-in-out infinite;
}
@keyframes lbr-fire {
  0% { transform: scaleX(0.9) scaleY(0.8); opacity: 0.7; }
  50% { transform: scaleX(1.1) scaleY(1.2); opacity: 1; }
  100% { transform: scaleX(0.95) scaleY(0.85); opacity: 0.8; }
}
@keyframes lbr-trophy {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lbr-bartlett-talk {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-8deg); }
  100% { transform: translateX(2px) rotate(4deg); }
}
@keyframes lbr-woodroffe-idle {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(1deg); }
  75% { transform: translateX(-1px) rotate(-1deg); }
}

/* Scene 4: london-woodroffe-departure – sudden rising figure, tense atmosphere */
.scn-london-woodroffe-departure {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c8b090 40%, #a08060 100%),
    radial-gradient(ellipse at 30% 60%, #d0b898 0%, transparent 70%);
}
.scn-london-woodroffe-departure .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5eed9 0%, #dfd0b5 100%);
}
.scn-london-woodroffe-departure .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a603e 0%, #4a3420 100%);
}
.scn-london-woodroffe-departure .door {
  position: absolute; top: 5%; right: 15%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%);
  border-radius: 4px;
  border: 4px solid #2a1a0e;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
  animation: lwd-door 7s ease-in-out infinite alternate;
}
.scn-london-woodroffe-departure .chair-durnford {
  position: absolute; bottom: 18%; left: 30%; width: 28px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px;
  animation: lwd-chair-d 2s ease-in-out infinite alternate;
}
.scn-london-woodroffe-departure .chair-bartlett {
  position: absolute; bottom: 18%; left: 55%; width: 28px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px;
  transform: scale(0.9);
}
.scn-london-woodroffe-departure .figure-durnford-rising {
  position: absolute; bottom: 12%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lwd-rise 2.5s ease-in-out infinite alternate;
}
.scn-london-woodroffe-departure .figure-bartlett-seated {
  position: absolute; bottom: 16%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #101010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lwd-seated 4s ease-in-out infinite;
}
.scn-london-woodroffe-departure .clock {
  position: absolute; top: 10%; left: 10%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: lwd-clock 2s ease-in-out infinite;
}
@keyframes lwd-door {
  0% { transform: scaleX(1); opacity: 0.9; }
  50% { transform: scaleX(1.02); opacity: 1; }
  100% { transform: scaleX(0.98); opacity: 0.95; }
}
@keyframes lwd-chair-d {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lwd-rise {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-10px) rotate(-10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lwd-seated {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(2deg); }
  75% { transform: translateX(1px) rotate(-1deg); }
}
@keyframes lwd-clock {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}

.scn-fleet-departure-and-london { background: linear-gradient(180deg, #f9e5c0 0%, #a8c8e0 40%, #4a7a9a 70%, #1a3a4a 100%), radial-gradient(ellipse at 30% 100%, #6a9aba 0%, transparent 70%); }
.scn-fleet-departure-and-london .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #f9dba0 0%, #e0c480 30%, #a8c8e0 70%, transparent 100%); animation: fd-sky 20s ease-in-out infinite alternate; }
.scn-fleet-departure-and-london .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a5a7a 0%, #0a2a4a 100%); border-top: 2px solid #6a9aba; animation: fd-sea 12s ease-in-out infinite; }
.scn-fleet-departure-and-london .sun { position:absolute; top:18%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #fff5c0 0%, #f0c860 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 12px #f0c860; animation: fd-sun 8s ease-in-out infinite alternate; }
.scn-fleet-departure-and-london .ship { position:absolute; bottom:40%; width:60px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 20% 20%; }
.scn-fleet-departure-and-london .ship1 { left:20%; animation: fd-ship1 10s ease-in-out infinite; }
.scn-fleet-departure-and-london .ship2 { left:60%; width:50px; height:16px; animation: fd-ship2 14s ease-in-out infinite reverse; }
.scn-fleet-departure-and-london .sail { position:absolute; bottom:42%; width:0; height:0; border-left: 18px solid transparent; border-right: 18px solid transparent; border-bottom: 30px solid #f5f0e0; opacity:0.85; }
.scn-fleet-departure-and-london .sail1 { left:22%; animation: fd-sail1 10s ease-in-out infinite; }
.scn-fleet-departure-and-london .sail2 { left:62%; border-bottom-color: #e8dcc8; animation: fd-sail2 14s ease-in-out infinite reverse; }
.scn-fleet-departure-and-london .cloud { position:absolute; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,220,240,0.2) 100%); border-radius:50%; filter: blur(8px); }
.scn-fleet-departure-and-london .cloud-a { top:12%; left:-10%; width:100px; height:24px; animation: fd-cloud-a 50s linear infinite; }
.scn-fleet-departure-and-london .cloud-b { top:20%; right:-15%; width:70px; height:18px; animation: fd-cloud-b 60s linear infinite reverse; }
@keyframes fd-sky { 0% { opacity:0.7; transform:translateY(0); } 50% { opacity:1; transform:translateY(-3px); } 100% { opacity:0.8; transform:translateY(0); } }
@keyframes fd-sea { 0% { background-position:0% 0%; } 50% { background-position:5% 2%; } 100% { background-position:0% 0%; } }
@keyframes fd-sun { 0% { transform:scale(0.95) translateY(0); } 50% { transform:scale(1.05) translateY(-4px); } 100% { transform:scale(0.95) translateY(0); } }
@keyframes fd-ship1 { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(8px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes fd-ship2 { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-6px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes fd-sail1 { 0% { transform:skewX(0deg) translateY(0); } 50% { transform:skewX(2deg) translateY(-2px); } 100% { transform:skewX(0deg) translateY(0); } }
@keyframes fd-sail2 { 0% { transform:skewX(0deg) translateY(0); } 50% { transform:skewX(-3deg) translateY(1px); } 100% { transform:skewX(0deg) translateY(0); } }
@keyframes fd-cloud-a { 0% { transform:translateX(-20px); } 100% { transform:translateX(120vw); } }
@keyframes fd-cloud-b { 0% { transform:translateX(0); } 100% { transform:translateX(-120vw); } }

.scn-london-in-summer { background: linear-gradient(180deg, #e8d4b0 0%, #d4b894 30%, #b8986e 70%, #8a7050 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-london-in-summer .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d4b894 0%, #e0c8a0 40%, #c8a878 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.15); }
.scn-london-in-summer .window-frame { position:absolute; top:5%; left:20%; width:60%; height:40%; border: 6px solid #5a3a2a; border-radius:4px; background: linear-gradient(180deg, #b8d8f0 0%, #90b8d0 100%); box-shadow: inset 0 0 24px rgba(255,230,180,0.5); }
.scn-london-in-summer .sunray { position:absolute; top:5%; left:20%; width:60%; height:40%; background: linear-gradient(135deg, transparent 0%, rgba(255,240,200,0.4) 40%, transparent 80%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: ls-sunray 18s ease-in-out infinite alternate; }
.scn-london-in-summer .dust { position:absolute; width:4px; height:4px; background: radial-gradient(circle, rgba(255,240,200,0.8) 0%, transparent 100%); border-radius:50%; filter: blur(1px); }
.scn-london-in-summer .d1 { top:15%; left:30%; animation: ls-dust1 6s ease-in-out infinite; }
.scn-london-in-summer .d2 { top:25%; left:45%; width:6px; height:6px; animation: ls-dust2 8s ease-in-out infinite reverse; }
.scn-london-in-summer .d3 { top:10%; left:55%; width:3px; height:3px; animation: ls-dust3 10s linear infinite; }
.scn-london-in-summer .chair { position:absolute; bottom:28%; left:35%; width:30px; height:40px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius:4px 4px 8px 8px; box-shadow: 2px 4px 8px rgba(0,0,0,0.3); }
.scn-london-in-summer .table { position:absolute; bottom:28%; left:60%; width:50px; height:14px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-london-in-summer .vase { position:absolute; bottom:30%; left:52%; width:12px; height:24px; background: linear-gradient(180deg, #c8a070 0%, #a07850 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; }
@keyframes ls-sunray { 0% { opacity:0.3; transform:rotate(0deg); } 100% { opacity:0.7; transform:rotate(5deg); } }
@keyframes ls-dust1 { 0% { transform:translate(0,0) scale(1); } 50% { transform:translate(20px,-10px) scale(1.2); } 100% { transform:translate(0,0) scale(1); } }
@keyframes ls-dust2 { 0% { transform:translate(0,0) scale(1); } 50% { transform:translate(-15px,8px) scale(0.8); } 100% { transform:translate(0,0) scale(1); } }
@keyframes ls-dust3 { 0% { transform:translate(0,0) scale(1); } 33% { transform:translate(25px,-5px) scale(1.1); } 66% { transform:translate(10px,5px) scale(0.9); } 100% { transform:translate(0,0) scale(1); } }

.scn-meeting-olinto { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 70%, #3a2a3a 100%), radial-gradient(ellipse at 80% 100%, #2a2a4a 0%, transparent 70%); }
.scn-meeting-olinto .night-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 60%, transparent 100%); }
.scn-meeting-olinto .buildings { position:absolute; bottom:40%; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); clip-path: polygon(0% 100%, 5% 60%, 12% 100%, 20% 50%, 28% 100%, 35% 70%, 45% 100%, 55% 60%, 65% 100%, 75% 75%, 85% 100%, 95% 65%, 100% 100%); }
.scn-meeting-olinto .lamp-post { position:absolute; bottom:40%; left:45%; width:6px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:2px; transform-origin: bottom; }
.scn-meeting-olinto .lamp-glow { position:absolute; bottom:55%; left:44%; width:16px; height:16px; background: radial-gradient(circle, #ffd080 0%, #ffaa40 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 10px #ffaa40, 0 0 60px 20px rgba(255,170,64,0.3); animation: mo-lamp 3s ease-in-out infinite alternate; }
.scn-meeting-olinto .figure-main { position:absolute; bottom:38%; left:30%; width:20px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mo-walk1 6s ease-in-out infinite; }
.scn-meeting-olinto .figure-olinto { position:absolute; bottom:38%; left:55%; width:16px; height:34px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mo-walk2 7s ease-in-out infinite reverse; }
.scn-meeting-olinto .cobblestone { position:absolute; bottom:30%; left:0; right:0; height:12%; background: repeating-linear-gradient(90deg, #2a2a3a 0px, #1a1a2a 4px, #3a3a4a 6px); opacity:0.3; }
.scn-meeting-olinto .mist { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(100,120,160,0.15) 50%, transparent 100%); filter: blur(8px); animation: mo-mist 20s ease-in-out infinite alternate; }
@keyframes mo-lamp { 0% { opacity:0.7; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.8; transform:scale(0.95); } }
@keyframes mo-walk1 { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(8px) rotate(2deg); } 50% { transform:translateX(16px) rotate(0deg); } 75% { transform:translateX(24px) rotate(-2deg); } 100% { transform:translateX(32px) rotate(0deg); } }
@keyframes mo-walk2 { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-6px) rotate(-1deg); } 50% { transform:translateX(-12px) rotate(0deg); } 75% { transform:translateX(-18px) rotate(1deg); } 100% { transform:translateX(-24px) rotate(0deg); } }
@keyframes mo-mist { 0% { opacity:0.1; transform:translateX(0); } 50% { opacity:0.4; transform:translateX(10px); } 100% { opacity:0.1; transform:translateX(0); } }

.scn-olinto-news { background: linear-gradient(180deg, #1a1210 0%, #2a1a15 30%, #3a221a 70%, #2a1812 100%), radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 70%); }
.scn-olinto-news .room-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #2a1a15 0%, #3a221a 40%, #2a1a15 100%); box-shadow: inset 0 0 50px rgba(0,0,0,0.4); }
.scn-olinto-news .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a100e 0%, #0a0503 100%); }
.scn-olinto-news .bed { position:absolute; bottom:20%; left:30%; width:40%; height:18%; background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-olinto-news .blanket { position:absolute; bottom:22%; left:32%; width:36%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%); border-radius:0 0 10px 10px; animation: on-blanket 9s ease-in-out infinite; }
.scn-olinto-news .figure-sick { position:absolute; bottom:24%; left:45%; width:14px; height:28px; background: linear-gradient(180deg, #2a1a15 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-10deg); animation: on-figure 12s ease-in-out infinite alternate; }
.scn-olinto-news .candle { position:absolute; bottom:38%; left:20%; width:4px; height:16px; background: linear-gradient(180deg, #e8c880 0%, #8a6030 100%); border-radius:2px; }
.scn-olinto-news .candle-glow { position:absolute; bottom:50%; left:19%; width:12px; height:12px; background: radial-gradient(circle, #ffc860 0%, #ffaa30 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 10px #ffaa30, 0 0 60px 20px rgba(255,170,48,0.3); animation: on-glow 4s ease-in-out infinite alternate; }
.scn-olinto-news .window-shape { position:absolute; top:8%; right:10%; width:20%; height:25%; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border: 3px solid #2a1a15; border-radius:2px; opacity:0.6; }
@keyframes on-blanket { 0% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(2px) scaleX(1.02); } 100% { transform:translateY(0) scaleX(1); } }
@keyframes on-figure { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(-8deg) translateY(-2px); } 100% { transform:rotate(-10deg) translateY(0); } }
@keyframes on-glow { 0% { opacity:0.7; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.8; transform:scale(0.9); } }

.scn-going-to-lambeth {
  background:
    linear-gradient(180deg, #2a1e14 0%, #1f140e 40%, #0f0a07 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%);
}
.scn-going-to-lambeth .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e14 0%, #1f140e 100%); animation: gtl-breath 12s ease-in-out infinite alternate; }
.scn-going-to-lambeth .lamp-glow { position:absolute; bottom:40%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #ffd070 0%, #c08040 30%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: gtl-flicker 3s ease-in-out infinite alternate; }
.scn-going-to-lambeth .doorway { position:absolute; bottom:25%; left:20%; width:80px; height:120px; background: linear-gradient(135deg, #0f0a07 0%, #1a1210 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); border: 2px solid #3a2a1a; animation: gtl-door 20s ease-in-out infinite; }
.scn-going-to-lambeth .figure-standing { position:absolute; bottom:26%; left:28%; width:22px; height:50px; background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gtl-stand 8s ease-in-out infinite; }
.scn-going-to-lambeth .figure-seated { position:absolute; bottom:28%; left:55%; width:26px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1f140e 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: gtl-seat 6s ease-in-out infinite alternate; }
.scn-going-to-lambeth .table { position:absolute; bottom:30%; left:52%; width:60px; height:20px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-going-to-lambeth .chair { position:absolute; bottom:28%; left:48%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1f140e 100%); border-radius: 20% 20% 10% 10%; }
.scn-going-to-lambeth .rug { position:absolute; bottom:22%; left:15%; right:15%; height:10px; background: linear-gradient(90deg, #5e4a3a 0%, #3a2a1a 50%, #5e4a3a 100%); border-radius: 50%; filter: blur(4px); opacity: 0.7; animation: gtl-rug 24s ease-in-out infinite; }
@keyframes gtl-breath { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes gtl-flicker { 0% { opacity: 0.7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.98); } }
@keyframes gtl-door { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes gtl-stand { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(0); } 50% { transform: translateX(8px) rotate(1deg); } 75% { transform: translateX(4px) rotate(0); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes gtl-seat { 0% { transform: translateX(0) rotate(0) scaleY(1); } 50% { transform: translateX(2px) rotate(2deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(0) scaleY(1); } }
@keyframes gtl-rug { 0%,100% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.02); } }

.scn-gloomy-house {
  background:
    linear-gradient(180deg, #0c0b1a 0%, #1a1628 40%, #2a2538 100%),
    radial-gradient(ellipse at 50% 0%, #3a3350 0%, transparent 70%);
}
.scn-gloomy-house .sky-dark { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0c0b1a 0%, #1a1628 100%); animation: gh-sky 15s ease-in-out infinite alternate; }
.scn-gloomy-house .building-front { position:absolute; bottom:20%; left:10%; right:10%; height:70%; background: linear-gradient(135deg, #1a1628 0%, #2a2538 50%, #1a1628 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.8); }
.scn-gloomy-house .doorway { position:absolute; bottom:18%; left:50%; width:50px; height:80px; transform:translateX(-50%); background: #0a0815; border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.9); border: 2px solid #3a3350; animation: gh-door 10s ease-in-out infinite; }
.scn-gloomy-house .figure-evil { position:absolute; bottom:24%; left:45%; width:20px; height:46px; background: linear-gradient(180deg, #0a0815 0%, #0c0b1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gh-figure 6s ease-in-out infinite; }
.scn-gloomy-house .window-dim { position:absolute; bottom:50%; left:55%; width:30px; height:40px; background: radial-gradient(ellipse at center, #1c2a33 0%, #0a0815 70%); border: 2px solid #2a2538; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.7); }
.scn-gloomy-house .street-lamp { position:absolute; bottom:15%; left:20%; width:10px; height:20px; background: #3a4a5a; border-radius: 20% 20% 40% 40%; box-shadow: 0 -20px 40px rgba(90,130,180,0.3); animation: gh-lamp 4s ease-in-out infinite alternate; }
.scn-gloomy-house .puddle { position:absolute; bottom:12%; left:25%; right:40%; height:8px; background: linear-gradient(90deg, transparent, #3a4a6a 20%, transparent 80%); border-radius: 50%; filter: blur(3px); animation: gh-puddle 12s ease-in-out infinite; }
.scn-gloomy-house .fog { position:absolute; top:20%; left:-10%; right:-10%; height:60%; background: linear-gradient(180deg, rgba(60,70,90,0.2) 0%, transparent 100%); filter: blur(10px); animation: gh-fog 30s linear infinite; }
@keyframes gh-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes gh-door { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.97); } }
@keyframes gh-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes gh-lamp { 0% { opacity: 0.6; box-shadow: 0 -15px 30px rgba(90,130,180,0.2); } 50% { opacity: 1; box-shadow: 0 -25px 50px rgba(90,130,180,0.5); } 100% { opacity: 0.7; box-shadow: 0 -18px 35px rgba(90,130,180,0.3); } }
@keyframes gh-puddle { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes gh-fog { 0% { transform: translateX(-20%); } 100% { transform: translateX(20%); } }

.scn-sinister-entrance {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #1a1410 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1e 0%, transparent 60%);
}
.scn-sinister-entrance .room-back { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410 0%, #2a1e18 100%); animation: se-room 18s ease-in-out infinite alternate; }
.scn-sinister-entrance .walls { position:absolute; bottom:30%; left:5%; right:5%; height:50%; background: linear-gradient(135deg, #2a1e18 0%, #3a2a1e 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7); }
.scn-sinister-entrance .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1410 0%, #0f0a07 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-sinister-entrance .lamp-table { position:absolute; bottom:35%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 20%, #e8c070 0%, #c08040 40%, transparent 70%); border-radius: 50%; filter: blur(5px); animation: se-lamp 2.5s ease-in-out infinite alternate; }
.scn-sinister-entrance .table { position:absolute; bottom:30%; left:50%; width:70px; height:18px; transform:translateX(-50%); background: linear-gradient(135deg, #3a2a1e 0%, #2a1e18 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-sinister-entrance .chair-empty { position:absolute; bottom:28%; left:40%; width:24px; height:32px; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: se-chair 10s ease-in-out infinite alternate; }
.scn-sinister-entrance .shadow-on-wall { position:absolute; bottom:40%; left:20%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.6) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: se-shadow 8s ease-in-out infinite; }
.scn-sinister-entrance .curtain { position:absolute; top:10%; left:15%; width:20px; height:70%; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius: 30% 30% 0 0; box-shadow: -5px 0 15px rgba(0,0,0,.5); animation: se-curtain 14s ease-in-out infinite alternate; }
@keyframes se-room { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes se-lamp { 0% { opacity: 0.6; transform: translateX(-50%) scale(0.95); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.7; transform: translateX(-50%) scale(0.98); } }
@keyframes se-chair { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes se-shadow { 0% { transform: scale(1) rotate(0); } 25% { transform: scale(1.05) rotate(3deg); } 50% { transform: scale(0.95) rotate(-2deg); } 75% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes se-curtain { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }

.scn-armida-absent {
  background:
    linear-gradient(180deg, #1a1614 0%, #2a221e 40%, #1a1614 100%),
    radial-gradient(ellipse at 50% 70%, #3a2e28 0%, transparent 60%);
}
.scn-armida-absent .room-fore { position:absolute; inset:0; background: linear-gradient(135deg, #1a1614 0%, #2a221e 100%); animation: aa-fore 20s ease-in-out infinite alternate; }
.scn-armida-absent .room-back { position:absolute; bottom:25%; left:35%; right:5%; top:25%; background: linear-gradient(135deg, #2a221e 0%, #3a2e28 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-armida-absent .doorway { position:absolute; bottom:25%; left:30%; width:30px; height:90px; background: #0f0c0a; border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); border: 2px solid #3a2e28; animation: aa-door 12s ease-in-out infinite; }
.scn-armida-absent .figure-olinto { position:absolute; bottom:28%; left:38%; width:24px; height:50px; background: linear-gradient(180deg, #1a1614 0%, #0f0c0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aa-figure 7s ease-in-out infinite; }
.scn-armida-absent .lamp-dim { position:absolute; bottom:40%; left:60%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 20%, #c09050 0%, #8a6a3a 40%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: aa-lamp 3s ease-in-out infinite alternate; }
.scn-armida-absent .chair { position:absolute; bottom:30%; left:55%; width:22px; height:28px; background: linear-gradient(180deg, #2a221e 0%, #1a1614 100%); border-radius: 20% 20% 10% 10%; }
.scn-armida-absent .table { position:absolute; bottom:32%; left:57%; width:50px; height:16px; background: linear-gradient(135deg, #3a2e28 0%, #2a221e 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-armida-absent .window-slit { position:absolute; top:15%; right:8%; width:20px; height:60px; background: radial-gradient(ellipse at 50% 40%, #2a3a3a 0%, #0f0c0a 70%); border: 2px solid #2a221e; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.7); animation: aa-window 8s ease-in-out infinite alternate; }
@keyframes aa-fore { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes aa-door { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes aa-figure { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(6px) rotate(2deg); } 40% { transform: translateX(12px) rotate(-1deg); } 60% { transform: translateX(6px) rotate(0); } 80% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes aa-lamp { 0% { opacity: 0.5; transform: scale(0.95); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(0.98); } }
@keyframes aa-window { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-london-durnford-nostalgia {
  background: linear-gradient(180deg, #e8dcc4 0%, #d4c4a8 60%, #b8a88c 100%),
              radial-gradient(ellipse at 30% 70%, #f0e8d8 0%, transparent 60%);
}
.scn-london-durnford-nostalgia .window {
  position: absolute; inset: 5% 10% 50% 10%; background: linear-gradient(180deg, #87CEEB 0%, #6daac0 50%, #3f7a8c 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,240,0.3); animation: ln1-window 20s ease-in-out infinite alternate;
}
.scn-london-durnford-nostalgia .table {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 18%; background: linear-gradient(180deg, #8b6f47 0%, #6a5030 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: ln1-table 12s ease-in-out infinite;
}
.scn-london-durnford-nostalgia .lamp {
  position: absolute; bottom: 28%; left: 48%; width: 12px; height: 20px; background: linear-gradient(180deg, #c0a060 0%, #8c7040 100%); border-radius: 4px 4px 2px 2px; transform: translateX(-50%); animation: ln1-lamp 4s ease-in-out infinite alternate;
}
.scn-london-durnford-nostalgia .lamp::before {
  content: ''; position: absolute; top: -8px; left: -6px; width: 24px; height: 12px; background: radial-gradient(ellipse, #ffdd88 0%, #f0c060 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #ffdd88; animation: ln1-glow 3s ease-in-out infinite alternate;
}
.scn-london-durnford-nostalgia .chair {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 50px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 6px 6px 3px 3px; transform-origin: bottom center; animation: ln1-chair 15s ease-in-out infinite;
}
.scn-london-durnford-nostalgia .figure {
  position: absolute; bottom: 12%; left: 34%; width: 20px; height: 30px; background: linear-gradient(180deg, #403020 0%, #201810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ln1-figure 5s ease-in-out infinite;
}
.scn-london-durnford-nostalgia .carpet {
  position: absolute; bottom: 2%; left: 15%; width: 70%; height: 12%; background: linear-gradient(135deg, #5a4a3a 0%, #4a3a2a 25%, #3a2a1a 50%, #4a3a2a 75%, #5a4a3a 100%); border-radius: 20%; box-shadow: 0 -2px 10px rgba(0,0,0,0.2); animation: ln1-carpet 30s linear infinite;
}
.scn-london-durnford-nostalgia .curtain-a, .scn-london-durnford-nostalgia .curtain-b {
  position: absolute; top: 0; width: 10%; height: 60%; background: linear-gradient(180deg, #8c7050 0%, #604020 100%); border-radius: 0 0 8px 8px; box-shadow: 2px 0 6px rgba(0,0,0,0.2);
}
.scn-london-durnford-nostalgia .curtain-a { left: 0; animation: ln1-curtain 14s ease-in-out infinite alternate; }
.scn-london-durnford-nostalgia .curtain-b { right: 0; animation: ln1-curtain 14s ease-in-out infinite alternate-reverse; }
@keyframes ln1-window { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ln1-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ln1-lamp { 0% { opacity:0.7 } 100% { opacity:1 } }
@keyframes ln1-glow { 0% { box-shadow:0 0 10px 2px #ffdd88 } 50% { box-shadow:0 0 30px 10px #ffcc66 } 100% { box-shadow:0 0 15px 4px #ffdd88 } }
@keyframes ln1-chair { 0%,100% { transform: rotate(0) } 25% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) } }
@keyframes ln1-figure { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes ln1-carpet { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }
@keyframes ln1-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }

.scn-london-durnford-recruiting {
  background: linear-gradient(180deg, #e0d0b0 0%, #c8b89a 40%, #a89878 100%),
              radial-gradient(ellipse at 60% 30%, #f0e0c0 0%, transparent 50%);
}
.scn-london-durnford-recruiting .fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 30%; height: 35%; background: linear-gradient(180deg, #6a5040 0%, #4a3424 100%); border-radius: 12px 12px 4px 4px; box-shadow: 0 6px 20px rgba(0,0,0,0.4); animation: ln2-fireplace 10s ease-in-out infinite alternate;
}
.scn-london-durnford-recruiting .mantel {
  position: absolute; bottom: 48%; left: 50%; transform: translateX(-50%); width: 32%; height: 4%; background: linear-gradient(180deg, #8b6f47 0%, #6a5030 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-london-durnford-recruiting .clock {
  position: absolute; bottom: 46%; left: 50%; transform: translateX(-50%); width: 8%; height: 12%; background: radial-gradient(circle at 50% 40%, #f0e0a0 0%, #c0a060 80%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(192,160,96,0.5); animation: ln2-clock 8s ease-in-out infinite;
}
.scn-london-durnford-recruiting .chair-a, .scn-london-durnford-recruiting .chair-b {
  position: absolute; bottom: 15%; width: 15%; height: 22%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 6px 6px 3px 3px; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-london-durnford-recruiting .chair-a { left: 15%; animation: ln2-chair-a 16s ease-in-out infinite; }
.scn-london-durnford-recruiting .chair-b { right: 15%; animation: ln2-chair-b 14s ease-in-out infinite; }
.scn-london-durnford-recruiting .rug {
  position: absolute; bottom: 2%; left: 10%; width: 80%; height: 12%; background: linear-gradient(135deg, #8a7050 0%, #6a5030 25%, #5a4020 50%, #6a5030 75%, #8a7050 100%); border-radius: 30%; box-shadow: 0 -4px 15px rgba(0,0,0,0.15); animation: ln2-rug 25s linear infinite;
}
.scn-london-durnford-recruiting .painting {
  position: absolute; top: 10%; left: 25%; width: 20%; height: 25%; background: linear-gradient(180deg, #6a8a6a 0%, #4a6a4a 50%, #2a4a2a 100%); border: 4px solid #8b6f47; border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: ln2-painting 30s ease-in-out infinite alternate;
}
@keyframes ln2-fireplace { 0% { background: linear-gradient(180deg, #6a5040, #4a3424); } 50% { background: linear-gradient(180deg, #7a6050, #4a3424); } 100% { background: linear-gradient(180deg, #6a5040, #4a3424); } }
@keyframes ln2-clock { 0%,100% { transform: rotate(0) } 30% { transform: rotate(2deg) } 60% { transform: rotate(-2deg) } }
@keyframes ln2-chair-a { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes ln2-chair-b { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes ln2-rug { 0% { background-position: 0 0; } 50% { background-position: 100% 0; } 100% { background-position: 0 0; } }
@keyframes ln2-painting { 0% { opacity:0.9; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:0.95; transform: scale(1); } }

.scn-london-major-bartlett {
  background: linear-gradient(180deg, #d8c8b0 0%, #c0b098 40%, #a09078 100%),
              radial-gradient(ellipse at 40% 80%, #e8d8c0 0%, transparent 60%);
}
.scn-london-major-bartlett .arch {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%); width: 40%; height: 45%; background: linear-gradient(180deg, #8b6f47 0%, #6a5030 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3); animation: ln3-arch 20s ease-in-out infinite alternate;
}
.scn-london-major-bartlett .door-left, .scn-london-major-bartlett .door-right {
  position: absolute; top: 35%; width: 16%; height: 45%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 2px; box-shadow: 0 0 10px rgba(0,0,0,0.3);
}
.scn-london-major-bartlett .door-left { left: 30%; animation: ln3-door 12s ease-in-out infinite; }
.scn-london-major-bartlett .door-right { right: 30%; animation: ln3-door 12s ease-in-out infinite reverse; }
.scn-london-major-bartlett .figure-a, .scn-london-major-bartlett .figure-b {
  position: absolute; bottom: 8%; width: 12px; height: 30px; background: linear-gradient(180deg, #403020 0%, #201810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
}
.scn-london-major-bartlett .figure-a { left: 36%; animation: ln3-figure-a 5s ease-in-out infinite; }
.scn-london-major-bartlett .figure-b { right: 36%; animation: ln3-figure-b 4.5s ease-in-out infinite 0.5s; }
.scn-london-major-bartlett .table {
  position: absolute; bottom: 8%; left: 38%; width: 24%; height: 10%; background: linear-gradient(180deg, #8b6f47 0%, #6a5030 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: ln3-table 14s ease-in-out infinite;
}
.scn-london-major-bartlett .chair {
  position: absolute; bottom: 8%; left: 44%; width: 8%; height: 18%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 4px; transform-origin: bottom center; animation: ln3-chair 10s ease-in-out infinite;
}
.scn-london-major-bartlett .chandelier {
  position: absolute; top: 2%; left: 50%; transform: translateX(-50%); width: 20%; height: 8%; background: radial-gradient(ellipse at 50% 100%, #c0a060 0%, transparent 100%); border-radius: 4px; box-shadow: 0 0 30px 10px rgba(192,160,96,0.3); animation: ln3-chandelier 6s ease-in-out infinite alternate;
}
@keyframes ln3-arch { 0% { opacity:0.9; transform:translateX(-50%) scaleY(1); } 50% { opacity:1; transform:translateX(-50%) scaleY(1.02); } 100% { opacity:0.95; transform:translateX(-50%) scaleY(1); } }
@keyframes ln3-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } }
@keyframes ln3-figure-a { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes ln3-figure-b { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes ln3-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ln3-chair { 0%,100% { transform: rotate(0); } 50% { transform: rotate(3deg); } }
@keyframes ln3-chandelier { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }

.scn-london-bartlett-laugh {
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 40%, #c0b098 100%),
              radial-gradient(ellipse at 70% 50%, #ffe0a0 0%, transparent 60%);
}
.scn-london-bartlett-laugh .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 15%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 6px; box-shadow: 0 6px 15px rgba(0,0,0,0.3); animation: ln4-table 8s ease-in-out infinite;
}
.scn-london-bartlett-laugh .figure {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 24px; height: 40px; background: linear-gradient(180deg, #3a3020 0%, #1a1000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ln4-figure 2s ease-in-out infinite alternate;
}
.scn-london-bartlett-laugh .cup {
  position: absolute; bottom: 38%; left: 35%; width: 16px; height: 18px; background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: ln4-cup 3s ease-in-out infinite;
}
.scn-london-bartlett-laugh .napkin {
  position: absolute; bottom: 40%; left: 60%; width: 20px; height: 10px; background: linear-gradient(135deg, #f0f0e0 0%, #d0d0c0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); transform-origin: bottom left; animation: ln4-napkin 4s ease-in-out infinite;
}
.scn-london-bartlett-laugh .chair-tilt {
  position: absolute; bottom: 15%; right: 20%; width: 30px; height: 40px; background: linear-gradient(180deg, #6a5030 0%, #4a3424 100%); border-radius: 4px; transform-origin: bottom left; animation: ln4-chair 1.5s ease-in-out infinite alternate;
}
.scn-london-bartlett-laugh .flying-paper {
  position: absolute; top: 10%; left: 20%; width: 16px; height: 20px; background: linear-gradient(180deg, #f0f0e0 0%, #e0e0d0 100%); border-radius: 1px; box-shadow: 0 0 6px rgba(0,0,0,0.1); transform-origin: center; animation: ln4-paper 5s linear infinite;
}
.scn-london-bartlett-laugh .lamp {
  position: absolute; top: 5%; left: 15%; width: 30px; height: 40px; background: radial-gradient(ellipse at 50% 20%, #ffdd88 0%, #c0a060 80%); border-radius: 4px; box-shadow: 0 0 30px 10px rgba(255,220,136,0.5); animation: ln4-lamp 4s ease-in-out infinite alternate;
}
.scn-london-bartlett-laugh .glasses {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 8px; background: transparent; border: 2px solid #a08060; border-radius: 4px; box-shadow: 0 0 4px rgba(0,0,0,0.2); animation: ln4-glasses 2.5s ease-in-out infinite;
}
@keyframes ln4-table { 0%,100% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-4px) rotate(2deg); } 60% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes ln4-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 50% { transform: translateX(-50%) translateY(-5px) rotate(5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes ln4-cup { 0%,100% { transform: translate(0,0) rotate(0); } 30% { transform: translate(10px,-5px) rotate(20deg); } 60% { transform: translate(-5px,3px) rotate(-10deg); } }
@keyframes ln4-napkin { 0%,100% { transform: rotate(0); } 50% { transform: rotate(30deg); } }
@keyframes ln4-chair { 0% { transform: rotate(0); } 100% { transform: rotate(-25deg); } }
@keyframes ln4-paper { 0% { transform: translate(0,0) rotate(0); } 25% { transform: translate(40px,-20px) rotate(90deg); } 50% { transform: translate(80px,-50px) rotate(180deg); } 75% { transform: translate(120px,-30px) rotate(270deg); } 100% { transform: translate(160px,-60px) rotate(360deg); } }
@keyframes ln4-lamp { 0% { opacity:0.7; box-shadow:0 0 15px 5px rgba(255,220,136,0.4); } 100% { opacity:1; box-shadow:0 0 40px 15px rgba(255,220,136,0.7); } }
@keyframes ln4-glasses { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(10deg); } }

/* oberg-connection */
.scn-oberg-connection { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 30% 70%, #2a3a4a 0%, transparent 60%); }
.scn-oberg-connection .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 100%); }
.scn-oberg-connection .desk { position:absolute; bottom:10%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 16px rgba(0,0,0,0.6); animation: obf-desk 12s ease-in-out infinite; }
.scn-oberg-connection .lamp { position:absolute; bottom:38%; left:35%; width:20px; height:30px; background: radial-gradient(circle, #c8a060 0%, #8a6a30 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 10px #a07840, 0 0 80px 20px rgba(160,120,64,0.3); animation: obf-lamp 4s ease-in-out infinite alternate; }
.scn-oberg-connection .papers { position:absolute; bottom:22%; left:28%; width:40px; height:30px; background: linear-gradient(180deg, #e0d0a0 0%, #c0b080 100%); border-radius: 4% 8% 8% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: obf-papers 8s ease-in-out infinite; }
.scn-oberg-connection .figure { position:absolute; bottom:20%; left:48%; width:24px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: obf-figure 5s ease-in-out infinite; }
.scn-oberg-connection .map { position:absolute; bottom:22%; left:60%; width:50px; height:40px; background: linear-gradient(135deg, #c8b080 0%, #a08860 100%); border-radius: 10% 20% 20% 10%; transform: rotate(-10deg); box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: obf-map 10s ease-in-out infinite alternate; }
.scn-oberg-connection .chair { position:absolute; bottom:8%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 10% 10%; transform: translateX(-50%); box-shadow: 0 -4px 8px rgba(0,0,0,0.5); animation: obf-chair 15s ease-in-out infinite; }
@keyframes obf-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes obf-lamp { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-1px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes obf-papers { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes obf-figure { 0% { transform: rotate(-2deg); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg); } }
@keyframes obf-map { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(-12deg) scale(1); } }
@keyframes obf-chair { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }

/* jack-reveals-truth */
.scn-jack-reveals-truth { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-jack-reveals-truth .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%); }
.scn-jack-reveals-truth .fireplace { position:absolute; bottom:20%; left:35%; width:80px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 8% 8%; box-shadow: 0 0 40px 15px #c06020, 0 0 80px 30px rgba(192,96,32,0.3); animation: jrt-fireplace 6s ease-in-out infinite alternate; }
.scn-jack-reveals-truth .figure-left { position:absolute; bottom:30%; left:30%; width:22px; 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: jrt-fig-l 8s ease-in-out infinite; }
.scn-jack-reveals-truth .figure-right { position:absolute; bottom:30%; right:30%; width:22px; 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: jrt-fig-r 8s ease-in-out infinite; }
.scn-jack-reveals-truth .embrace { position:absolute; bottom:32%; left:50%; width:30px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30%; transform: translateX(-50%); box-shadow: 0 0 20px 5px rgba(192,96,32,0.2); animation: jrt-embrace 4s ease-in-out infinite alternate; }
.scn-jack-reveals-truth .hearth { position:absolute; bottom:18%; left:38%; width:30px; height:10px; background: radial-gradient(ellipse at 50% 50%, #c06020 0%, #8a4010 60%, transparent 80%); filter: blur(4px); animation: jrt-hearth 2s ease-in-out infinite alternate; }
@keyframes jrt-fireplace { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.85; transform: scale(1); } }
@keyframes jrt-fig-l { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes jrt-fig-r { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes jrt-embrace { 0% { opacity: 0.6; transform: translateX(-50%) scaleX(0.9); } 50% { opacity: 1; transform: translateX(-50%) scaleX(1.1); } 100% { opacity: 0.7; transform: translateX(-50%) scaleX(0.95); } }
@keyframes jrt-hearth { 0% { opacity: 0.5; transform: scaleY(0.8); } 50% { opacity: 1; transform: scaleY(1.2); } 100% { opacity: 0.6; transform: scaleY(0.9); } }

/* leithcourt-catspaw */
.scn-leithcourt-catspaw { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 40% 60%, #3a2a4a 0%, transparent 70%); }
.scn-leithcourt-catspaw .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 100%); }
.scn-leithcourt-catspaw .desk { position:absolute; bottom:12%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.6); animation: lcc-desk 10s ease-in-out infinite; }
.scn-leithcourt-catspaw .figure-left { position:absolute; bottom:24%; left:28%; width:22px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lcc-fig-l 6s ease-in-out infinite; }
.scn-leithcourt-catspaw .figure-right { position:absolute; bottom:24%; right:28%; width:22px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lcc-fig-r 7s ease-in-out infinite; }
.scn-leithcourt-catspaw .coins { position:absolute; bottom:28%; left:42%; width:20px; height:10px; background: radial-gradient(circle, #c8a060 0%, #a08040 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(200,160,96,0.4); animation: lcc-coins 3s ease-in-out infinite alternate; }
.scn-leithcourt-catspaw .contract { position:absolute; bottom:28%; right:42%; width:30px; height:20px; background: linear-gradient(180deg, #e0d0a0 0%, #c0b080 100%); border-radius: 4%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: lcc-contract 12s ease-in-out infinite; }
.scn-leithcourt-catspaw .shadow { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: lcc-shadow 8s ease-in-out infinite alternate; }
@keyframes lcc-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes lcc-fig-l { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes lcc-fig-r { 0% { transform: rotate(1deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-2px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes lcc-coins { 0% { opacity: 0.7; transform: translateY(0) scale(0.9); } 50% { opacity: 1; transform: translateY(-3px) scale(1.1); } 100% { opacity: 0.8; transform: translateY(0) scale(1); } }
@keyframes lcc-contract { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(-6deg) translateX(-2px); } }
@keyframes lcc-shadow { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

/* yacht-for-thieves */
.scn-yacht-for-thieves { background: linear-gradient(180deg, #1a2a3a 0%, #0f1f2f 50%, #1a2a3a 100%), radial-gradient(ellipse at 60% 50%, #2a3a4a 0%, transparent 70%); }
.scn-yacht-for-thieves .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0f1a2a 0%, #1a2a3a 50%, #0f1a2a 100%); }
.scn-yacht-for-thieves .table { position:absolute; bottom:15%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); animation: yft-table 14s ease-in-out infinite; }
.scn-yacht-for-thieves .chest { position:absolute; bottom:22%; left:40%; width:30px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: yft-chest 5s ease-in-out infinite alternate; }
.scn-yacht-for-thieves .map { position:absolute; bottom:26%; right:38%; width:40px; height:30px; background: linear-gradient(135deg, #c8b080 0%, #a08860 100%); border-radius: 10% 20% 20% 10%; transform: rotate(15deg); box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: yft-map 9s ease-in-out infinite; }
.scn-yacht-for-thieves .figure { position:absolute; bottom:28%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yft-figure 6s ease-in-out infinite; }
.scn-yacht-for-thieves .lamp { position:absolute; top:30%; left:45%; width:14px; height:20px; background: radial-gradient(circle, #c09050 0%, #8a6a30 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px #a07840, 0 0 60px 15px rgba(160,120,64,0.3); animation: yft-lamp 4s ease-in-out infinite alternate; }
.scn-yacht-for-thieves .porthole { position:absolute; top:15%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #2a4a6a 0%, #1a2a3a 100%); border-radius: 50%; border: 2px solid #2a2a2a; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: yft-porthole 12s ease-in-out infinite; }
@keyframes yft-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes yft-chest { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.05); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes yft-map { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(18deg) translateX(2px); } 100% { transform: rotate(13deg) translateX(-2px); } }
@keyframes yft-figure { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes yft-lamp { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-1px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes yft-porthole { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }

/* speculation-on-man-and-woman */
.scn-speculation-on-man-and-woman {
  background: 
    linear-gradient(180deg, #1a1520 0%, #2a1e2a 50%, #1a1220 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-speculation-on-man-and-woman .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1e2a 0%, #1a1220 100%);
}
.scn-speculation-on-man-and-woman .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1510 0%, #0e0a08 100%);
}
.scn-speculation-on-man-and-woman .window {
  position: absolute; top: 15%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 3px solid #4a3a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 10px rgba(200,180,150,0.2);
  animation: smw-window 8s ease-in-out infinite alternate;
}
.scn-speculation-on-man-and-woman .table {
  position: absolute; bottom: 35%; left: 25%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-speculation-on-man-and-woman .chair {
  position: absolute; bottom: 37%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
}
.scn-speculation-on-man-and-woman .lamp {
  position: absolute; bottom: 42%; left: 50%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 20%, #f0c090 0%, #b08050 60%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #f0c090, 0 0 60px 20px rgba(240,192,144,0.3);
  animation: smw-lamp 2s ease-in-out infinite alternate;
}
.scn-speculation-on-man-and-woman .figure-one {
  position: absolute; bottom: 35%; left: 32%; 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: smw-figure1 4s ease-in-out infinite;
}
.scn-speculation-on-man-and-woman .figure-two {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smw-figure2 5s ease-in-out infinite;
}
.scn-speculation-on-man-and-woman .clock {
  position: absolute; top: 10%; right: 15%; width: 24px; height: 24px;
  background: radial-gradient(circle, #c0a080 0%, #8a6a4a 100%);
  border-radius: 50%;
  border: 2px solid #4a3a2a;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: smw-clock 12s linear infinite;
}
@keyframes smw-window {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(1.02); }
  100% { opacity: 0.8; transform: scaleY(0.98); }
}
@keyframes smw-lamp {
  0% { box-shadow: 0 0 20px 5px #f0c090, 0 0 40px 10px rgba(240,192,144,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 15px #ffd0a0, 0 0 80px 25px rgba(255,208,160,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #f0c090, 0 0 50px 15px rgba(240,192,144,0.3); opacity: 0.85; }
}
@keyframes smw-figure1 {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes smw-figure2 {
  0% { transform: translateX(0) translateY(0) rotate(1deg) scaleX(1); }
  50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) scaleX(0.98); }
  100% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes smw-clock {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}

/* hutcheson-reflects */
.scn-hutcheson-reflects {
  background: 
    linear-gradient(180deg, #1e1e2a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 40% 60%, #3a3a4a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-hutcheson-reflects .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
}
.scn-hutcheson-reflects .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1818 0%, #100e0e 100%);
}
.scn-hutcheson-reflects .desk {
  position: absolute; bottom: 35%; left: 20%; width: 140px; height: 25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-hutcheson-reflects .chair {
  position: absolute; bottom: 38%; left: 25%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
}
.scn-hutcheson-reflects .figure {
  position: absolute; bottom: 38%; left: 28%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hutch-figure 6s ease-in-out infinite alternate;
}
.scn-hutcheson-reflects .lamp {
  position: absolute; bottom: 45%; left: 60%; width: 25px; height: 35px;
  background: radial-gradient(circle at 50% 30%, #d0c0a0 0%, #a09070 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 25px 8px #d0c0a0, 0 0 50px 15px rgba(208,192,160,0.2);
  animation: hutch-lamp 3s ease-in-out infinite alternate;
}
.scn-hutcheson-reflects .window {
  position: absolute; top: 12%; right: 10%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 2px solid #4a3a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.7);
  animation: hutch-window 10s ease-in-out infinite alternate;
}
.scn-hutcheson-reflects .bookshelf {
  position: absolute; top: 20%; right: 20%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: hutch-bookshelf 15s linear infinite;
}
@keyframes hutch-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hutch-lamp {
  0% { box-shadow: 0 0 15px 3px #d0c0a0, 0 0 30px 8px rgba(208,192,160,0.1); opacity: 0.8; }
  50% { box-shadow: 0 0 35px 12px #e0d0b0, 0 0 60px 20px rgba(224,208,176,0.3); opacity: 1; }
  100% { box-shadow: 0 0 20px 5px #d0c0a0, 0 0 40px 12px rgba(208,192,160,0.15); opacity: 0.85; }
}
@keyframes hutch-window {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.01); }
  100% { opacity: 0.7; transform: scaleX(0.99); }
}
@keyframes hutch-bookshelf {
  0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.6); }
  50% { box-shadow: inset 0 0 15px rgba(0,0,0,0.8); }
  100% { box-shadow: inset 0 0 10px rgba(0,0,0,0.6); }
}

/* armory-mention */
.scn-armory-mention {
  background: 
    linear-gradient(180deg, #1a1a18 0%, #2a2a28 50%, #1a1a18 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a32 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-armory-mention .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a28 0%, #1a1a18 100%);
}
.scn-armory-mention .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1810 0%, #100e08 100%);
}
.scn-armory-mention .crate {
  position: absolute; bottom: 35%; left: 10%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6), inset 0 0 10px rgba(0,0,0,0.4);
  animation: arm-crate 6s ease-in-out infinite;
}
.scn-armory-mention .gunrack {
  position: absolute; top: 20%; left: 60%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.8);
}
.scn-armory-mention .figure {
  position: absolute; bottom: 35%; left: 50%; 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: arm-figure 4s ease-in-out infinite alternate;
}
.scn-armory-mention .shadow {
  position: absolute; bottom: 35%; left: 48%; width: 30px; height: 50px;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: arm-shadow 4s ease-in-out infinite;
}
.scn-armory-mention .light-source {
  position: absolute; top: 5%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d0a050 0%, #a08030 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #d0a050, 0 0 80px 30px rgba(208,160,80,0.2);
  animation: arm-light 2s ease-in-out infinite alternate;
}
@keyframes arm-crate {
  0% { transform: translateY(0); box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
  50% { transform: translateY(-2px); box-shadow: 0 6px 12px rgba(0,0,0,0.8); }
  100% { transform: translateY(0); box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
}
@keyframes arm-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes arm-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.6; transform: scaleX(1); }
}
@keyframes arm-light {
  0% { box-shadow: 0 0 30px 10px #d0a050, 0 0 60px 20px rgba(208,160,80,0.15); opacity: 0.9; }
  50% { box-shadow: 0 0 50px 20px #e0b060, 0 0 100px 35px rgba(224,176,96,0.35); opacity: 1; }
  100% { box-shadow: 0 0 35px 12px #d0a050, 0 0 70px 25px rgba(208,160,80,0.2); opacity: 0.85; }
}

/* regret-not-keeping-photo */
.scn-regret-not-keeping-photo {
  background: 
    linear-gradient(180deg, #1a1a24 0%, #2a2a36 50%, #1a1a24 100%),
    radial-gradient(ellipse at 60% 50%, #3a3a48 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-regret-not-keeping-photo .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a36 0%, #1a1a24 100%);
}
.scn-regret-not-keeping-photo .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a181c 0%, #100e12 100%);
}
.scn-regret-not-keeping-photo .desk {
  position: absolute; bottom: 35%; left: 30%; width: 130px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-regret-not-keeping-photo .chair {
  position: absolute; bottom: 38%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
}
.scn-regret-not-keeping-photo .figure {
  position: absolute; bottom: 38%; left: 38%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rege-figure 5s ease-in-out infinite alternate;
}
.scn-regret-not-keeping-photo .frame {
  position: absolute; top: 15%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border: 2px solid #8a7a6a;
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,0.6);
  animation: rege-frame 7s ease-in-out infinite;
}
.scn-regret-not-keeping-photo .lamp {
  position: absolute; bottom: 45%; left: 55%; width: 25px; height: 35px;
  background: radial-gradient(circle at 50% 30%, #c0b0a0 0%, #a09080 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 5px #c0b0a0, 0 0 40px 10px rgba(192,176,160,0.2);
  animation: rege-lamp 2.5s ease-in-out infinite alternate;
}
.scn-regret-not-keeping-photo .shadow {
  position: absolute; bottom: 38%; left: 36%; width: 28px; height: 45px;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: rege-shadow 5s ease-in-out infinite;
}
@keyframes rege-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg) scaleX(0.98); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rege-frame {
  0% { opacity: 0.8; transform: scale(1); filter: brightness(1); }
  50% { opacity: 1; transform: scale(1.01); filter: brightness(1.1); }
  100% { opacity: 0.85; transform: scale(0.99); filter: brightness(0.95); }
}
@keyframes rege-lamp {
  0% { box-shadow: 0 0 15px 3px #c0b0a0, 0 0 30px 8px rgba(192,176,160,0.1); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px #d0c0b0, 0 0 60px 20px rgba(208,192,176,0.3); opacity: 1; }
  100% { box-shadow: 0 0 20px 5px #c0b0a0, 0 0 40px 12px rgba(192,176,160,0.15); opacity: 0.85; }
}
@keyframes rege-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.08); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

/* Scene 1: abo-decision-helsingfors — tense bright-interior train compartment */
.scn-abo-decision-helsingfors {
  background: linear-gradient(180deg, #c8a060 0%, #8a6030 30%, #4a2a10 100%),
              radial-gradient(circle at 40% 50%, #f0d090 0%, transparent 60%);
}
.scn-abo-decision-helsingfors .s1-bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #b89060 0%, #704830 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: s1-breathe 8s ease-in-out infinite;
}
.scn-abo-decision-helsingfors .s1-window {
  position: absolute; top: 12%; left: 8%; width: 35%; height: 45%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 0 0 0 4px #5a3a1a;
  animation: s1-window-pulse 9s ease-in-out infinite alternate;
}
.scn-abo-decision-helsingfors .s1-seat {
  position: absolute; bottom: 8%; left: 20%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: 0 0 10px rgba(0,0,0,0.4);
  animation: s1-rock 6s ease-in-out infinite;
}
.scn-abo-decision-helsingfors .s1-figure {
  position: absolute; bottom: 15%; left: 30%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 60% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure-roam 5s ease-in-out infinite;
}
.scn-abo-decision-helsingfors .s1-lamp {
  position: absolute; top: 10%; right: 15%; width: 8%; height: 14%;
  background: radial-gradient(circle at 50% 80%, #ffe080 0%, #c89030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #e0b060, 0 0 60px 15px rgba(224,176,96,0.4);
  animation: s1-lamp-swing 3s ease-in-out infinite alternate;
}
.scn-abo-decision-helsingfors .s1-shadow {
  position: absolute; bottom: 8%; left: 32%; width: 30%; height: 10%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: s1-shadow-move 5s ease-in-out infinite;
}
@keyframes s1-breathe {
  0%, 100% { opacity: 0.85; }
  50% { opacity: 1; }
}
@keyframes s1-window-pulse {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 0 0 0 4px #5a3a1a; }
  50% { box-shadow: inset 0 0 10px rgba(0,0,0,0.5), 0 0 0 4px #6a4a2a; }
  100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 0 4px #4a2a10; }
}
@keyframes s1-rock {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
}
@keyframes s1-figure-roam {
  0% { transform: translateX(0) translateY(0) rotate(-0.5deg); }
  25% { transform: translateX(8px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(16px) translateY(0) rotate(0.5deg); }
  75% { transform: translateX(8px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-0.5deg); }
}
@keyframes s1-lamp-swing {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(8deg); }
}
@keyframes s1-shadow-move {
  0%, 100% { transform: translateX(0); opacity: 0.6; }
  50% { transform: translateX(15px); opacity: 0.8; }
}

/* Scene 2: helsingfors-hotel-kamps — calm bright-interior hotel lobby */
.scn-helsingfors-hotel-kamps {
  background: linear-gradient(180deg, #f0e4d0 0%, #d8c8b0 40%, #b8a490 100%),
              radial-gradient(ellipse at 50% 90%, #fff8f0 0%, transparent 70%);
}
.scn-helsingfors-hotel-kamps .s2-ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #f5efe0 0%, #e0d0c0 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1);
  animation: s2-ceiling-glow 10s ease-in-out infinite alternate;
}
.scn-helsingfors-hotel-kamps .s2-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-helsingfors-hotel-kamps .s2-desk {
  position: absolute; bottom: 20%; left: 15%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: s2-desk-breath 8s ease-in-out infinite;
}
.scn-helsingfors-hotel-kamps .s2-clerk {
  position: absolute; bottom: 22%; left: 22%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: s2-clerk-nod 6s ease-in-out infinite;
}
.scn-helsingfors-hotel-kamps .s2-chandelier {
  position: absolute; top: 8%; left: 50%; width: 12%; height: 20%;
  background: radial-gradient(circle at 50% 30%, #ffe8b0 0%, #d0a060 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 10px #d0a060, 0 0 80px 20px rgba(208,160,96,0.3);
  animation: s2-chandelier-sway 4s ease-in-out infinite alternate;
}
.scn-helsingfors-hotel-kamps .s2-doorway {
  position: absolute; bottom: 5%; right: 12%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #e0d0c0 0%, #c8b8a8 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3), 0 0 0 4px #8a6a4a;
  animation: s2-door-open 12s ease-in-out infinite alternate;
}
@keyframes s2-ceiling-glow {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes s2-desk-breath {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes s2-clerk-nod {
  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 s2-chandelier-sway {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(3deg); }
}
@keyframes s2-door-open {
  0% { transform: scaleX(1); opacity: 1; }
  50% { transform: scaleX(1.05); opacity: 0.9; }
  100% { transform: scaleX(1); opacity: 1; }
}

/* Scene 3: palace-entrance — tense bright-interior entrance hall */
.scn-palace-entrance {
  background: linear-gradient(180deg, #7a7a8a 0%, #4a4a5a 40%, #2a2a3a 100%),
              radial-gradient(ellipse at 30% 40%, #c0b080 0%, transparent 60%);
}
.scn-palace-entrance .s3-bg-hall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.6);
  animation: s3-hall-pulse 9s ease-in-out infinite alternate;
}
.scn-palace-entrance .s3-column-left {
  position: absolute; top: 0; left: 10%; width: 6%; height: 100%;
  background: linear-gradient(180deg, #d0c0a0 0%, #8a7a5a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 5px 0 15px rgba(0,0,0,0.4);
}
.scn-palace-entrance .s3-column-right {
  position: absolute; top: 0; right: 10%; width: 6%; height: 100%;
  background: linear-gradient(180deg, #d0c0a0 0%, #8a7a5a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: -5px 0 15px rgba(0,0,0,0.4);
}
.scn-palace-entrance .s3-doorway {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 0 0 8px #b08050, inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-palace-entrance .s3-protagonist {
  position: absolute; bottom: 8%; left: 45%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 60% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: s3-enter 5s ease-in-out infinite;
}
.scn-palace-entrance .s3-concierge {
  position: absolute; bottom: 8%; left: 15%; width: 8%; height: 45%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: s3-guard 4s ease-in-out infinite alternate;
}
.scn-palace-entrance .s3-escutcheon {
  position: absolute; top: 25%; left: 42%; width: 16%; height: 10%;
  background: radial-gradient(circle at 50% 50%, #d0a050 0%, #b08030 70%, transparent 100%);
  border-radius: 30%;
  box-shadow: 0 0 20px 4px #c09040, 0 0 40px 8px rgba(192,144,64,0.4);
  animation: s3-escutcheon-glow 3s ease-in-out infinite alternate;
}
@keyframes s3-hall-pulse {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.9; filter: brightness(1); }
}
@keyframes s3-enter {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-5px) scale(0.98); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes s3-guard {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(1deg); }
}
@keyframes s3-escutcheon-glow {
  0% { box-shadow: 0 0 20px 4px #c09040, 0 0 40px 8px rgba(192,144,64,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 30px 8px #e0b060, 0 0 60px 15px rgba(224,176,96,0.6); opacity: 1; }
  100% { box-shadow: 0 0 20px 4px #c09040, 0 0 40px 8px rgba(192,144,64,0.4); opacity: 0.9; }
}

/* Scene 4: palace-secretary-refusal — tense bright-interior office */
.scn-palace-secretary-refusal {
  background: linear-gradient(180deg, #a08870 0%, #6a5040 40%, #3a2818 100%),
              radial-gradient(ellipse at 50% 40%, #d0b090 0%, transparent 70%);
}
.scn-palace-secretary-refusal .s4-room-bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: s4-room-shimmer 10s ease-in-out infinite;
}
.scn-palace-secretary-refusal .s4-desk {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 6px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-palace-secretary-refusal .s4-secretary {
  position: absolute; bottom: 20%; left: 70%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: s4-secretary-shake 3s ease-in-out infinite;
}
.scn-palace-secretary-refusal .s4-visitor {
  position: absolute; bottom: 20%; left: 25%; width: 11%; height: 45%;
  background: linear-gradient(180deg, #2a1a0a 0%, #100a05 100%);
  border-radius: 50% 60% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: s4-visitor-step 4s ease-in-out infinite;
}
.scn-palace-secretary-refusal .s4-chair {
  position: absolute; bottom: 16%; left: 72%; width: 14%; height: 10%;
  background: linear-gradient(180deg, #3a2818 0%, #1a0a05 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-palace-secretary-refusal .s4-desk-lamp {
  position: absolute; bottom: 30%; left: 45%; width: 8%; height: 15%;
  background: radial-gradient(circle at 50% 80%, #ffe090 0%, #d0a050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px #d0a050, 0 0 60px 12px rgba(208,160,80,0.4);
  animation: s4-lamp-flicker 2s ease-in-out infinite alternate;
}
@keyframes s4-room-shimmer {
  0%, 100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes s4-secretary-shake {
  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 s4-visitor-step {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(5px) translateY(-1px); }
  50% { transform: translateX(10px) translateY(0); }
  75% { transform: translateX(5px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes s4-lamp-flicker {
  0% { box-shadow: 0 0 30px 6px #d0a050, 0 0 60px 12px rgba(208,160,80,0.4); }
  50% { box-shadow: 0 0 20px 4px #b08030, 0 0 40px 8px rgba(176,128,48,0.3); }
  100% { box-shadow: 0 0 30px 6px #d0a050, 0 0 60px 12px rgba(208,160,80,0.4); }
}

/* muriel-wants-to-confide */
.scn-muriel-wants-to-confide {
  background: linear-gradient(180deg, #f9e8d0 0%, #e1c9a8 50%, #c8a882 100%),
              radial-gradient(ellipse at 30% 20%, #ffeac0 0%, transparent 70%);
}
.scn-muriel-wants-to-confide .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f9e8d0 0%, #e1c9a8 100%);
}
.scn-muriel-wants-to-confide .window-frame {
  position: absolute; top: 10%; left: 25%; width: 40%; height: 50%;
  background: #d4b68a; border-radius: 4px; box-shadow: inset 0 0 0 4px #b8956a;
  animation: mu-window 8s ease-in-out infinite alternate;
}
.scn-muriel-wants-to-confide .sunbeam {
  position: absolute; top: 12%; left: 28%; width: 34%; height: 46%;
  background: linear-gradient(135deg, rgba(255,235,180,0.4) 0%, rgba(255,235,180,0) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: mu-beam 12s ease-in-out infinite alternate;
}
.scn-muriel-wants-to-confide .curtain-left {
  position: absolute; top: 10%; left: 22%; width: 6%; height: 55%;
  background: linear-gradient(90deg, #b28a6a 0%, #c9a47e 50%, #b28a6a 100%);
  border-radius: 4px; animation: mu-curtain 6s ease-in-out infinite alternate;
}
.scn-muriel-wants-to-confide .curtain-right {
  position: absolute; top: 10%; right: 22%; width: 6%; height: 55%;
  background: linear-gradient(270deg, #b28a6a 0%, #c9a47e 50%, #b28a6a 100%);
  border-radius: 4px; animation: mu-curtain 6s ease-in-out infinite alternate-reverse;
}
.scn-muriel-wants-to-confide .desk {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #6b4a2e 0%, #4d331e 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-muriel-wants-to-confide .figure-muriel {
  position: absolute; bottom: 20%; left: 40%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #d4a373 0%, #b8875e 40%, #8c603a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mu-figure-m 4s ease-in-out infinite alternate;
}
.scn-muriel-wants-to-confide .figure-listener {
  position: absolute; bottom: 20%; right: 38%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #b89a7a 0%, #9a7c5c 40%, #6b5232 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mu-figure-l 4.5s ease-in-out infinite alternate;
}
.scn-muriel-wants-to-confide .shadow-pool {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 6%;
  background: radial-gradient(ellipse at 50% 0%, rgba(60,40,20,0.3) 0%, transparent 80%);
  animation: mu-shadow 6s ease-in-out infinite alternate;
}
@keyframes mu-window {
  0% { box-shadow: inset 0 0 0 4px #b8956a, 0 0 0 0 rgba(0,0,0,0); }
  50% { box-shadow: inset 0 0 0 4px #b8956a, 0 0 20px 10px rgba(255,220,150,0.3); }
  100% { box-shadow: inset 0 0 0 4px #b8956a, 0 0 0 0 rgba(0,0,0,0); }
}
@keyframes mu-beam {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.05); }
  100% { opacity: 0.4; transform: scaleX(0.95); }
}
@keyframes mu-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.9); }
  100% { transform: scaleX(1.05); }
}
@keyframes mu-figure-m {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes mu-figure-l {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes mu-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}

/* social-observations */
.scn-social-observations {
  background: linear-gradient(180deg, #fdf3e3 0%, #f5e3c8 50%, #ecd5b0 100%),
              radial-gradient(ellipse at 50% 30%, #fff5dc 0%, transparent 60%);
}
.scn-social-observations .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fdf3e3 0%, #f5e3c8 100%);
}
.scn-social-observations .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #8b6b46 0%, #6a4e30 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
.scn-social-observations .chair-left {
  position: absolute; bottom: 30%; left: 18%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3c20 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: so-chair 10s ease-in-out infinite alternate;
}
.scn-social-observations .chair-right {
  position: absolute; bottom: 30%; right: 18%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3c20 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: so-chair 10s ease-in-out infinite alternate-reverse;
}
.scn-social-observations .candle {
  position: absolute; bottom: 34%; left: 48%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #e8d5b0 0%, #c9ae8a 100%);
  border-radius: 2px;
}
.scn-social-observations .flame {
  position: absolute; bottom: 41%; left: 48.8%; width: 2.4%; height: 5%;
  background: radial-gradient(ellipse at 50% 100%, #ffd54f 0%, #ffb300 40%, #ff8f00 70%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: so-flame 0.8s ease-in-out infinite alternate;
}
.scn-social-observations .guest-left {
  position: absolute; bottom: 30%; left: 22%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #d4a373 0%, #b8875e 40%, #8c603a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: so-guest 6s ease-in-out infinite alternate;
}
.scn-social-observations .guest-right {
  position: absolute; bottom: 30%; right: 22%; width: 11%; height: 32%;
  background: linear-gradient(180deg, #b89a7a 0%, #9a7c5c 40%, #6b5232 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: so-guest 5s ease-in-out infinite alternate-reverse;
}
.scn-social-observations .chandelier {
  position: absolute; top: 4%; left: 30%; width: 40%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, #c9a86a 0%, #b08a50 40%, transparent 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: so-chandelier 12s ease-in-out infinite alternate;
}
@keyframes so-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes so-flame {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: scaleY(1.1) rotate(1deg); opacity: 1; }
  100% { transform: scaleY(0.95) rotate(0deg); opacity: 0.9; }
}
@keyframes so-guest {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes so-chandelier {
  0% { opacity: 0.6; filter: blur(2px); }
  50% { opacity: 1; filter: blur(1px); }
  100% { opacity: 0.7; filter: blur(3px); }
}

/* leithcourts-suspicion */
.scn-leithcourts-suspicion {
  background: linear-gradient(135deg, #e8ded0 0%, #d4c4b0 50%, #c0b0a0 100%),
              radial-gradient(ellipse at 30% 40%, #fff4e0 0%, transparent 70%);
}
.scn-leithcourts-suspicion .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8ded0 0%, #d4c4b0 100%);
}
.scn-leithcourts-suspicion .doorway {
  position: absolute; top: 10%; right: 15%; width: 20%; height: 60%;
  background: #3a3a2a; border-radius: 0 0 4px 4px;
  animation: ls-door 20s ease-in-out infinite alternate;
}
.scn-leithcourts-suspicion .window-blind {
  position: absolute; top: 8%; left: 10%; width: 35%; height: 50%;
  background: repeating-linear-gradient(0deg, #a08a70 0px, #a08a70 4px, #c0b0a0 4px, #c0b0a0 8px);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
  animation: ls-blind 8s ease-in-out infinite alternate;
}
.scn-leithcourts-suspicion .clock {
  position: absolute; top: 15%; right: 10%; width: 12%; height: 14%;
  background: radial-gradient(circle at 50% 50%, #f5e3c8 0%, #c9b69a 60%, #6a5a4a 100%);
  border-radius: 50%; border: 3px solid #4a3a2a;
}
.scn-leithcourts-suspicion .hand-hour {
  position: absolute; top: 20%; right: 15.5%; width: 2%; height: 6%;
  background: #2a1a0a; border-radius: 1px;
  transform-origin: 50% 100%;
  animation: ls-hour 60s linear infinite;
}
.scn-leithcourts-suspicion .hand-minute {
  position: absolute; top: 20%; right: 15.5%; width: 1.5%; height: 8%;
  background: #4a3a2a; border-radius: 1px;
  transform-origin: 50% 100%;
  animation: ls-minute 5s linear infinite;
}
.scn-leithcourts-suspicion .figure-leithcourt {
  position: absolute; bottom: 20%; left: 25%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-leith 4s ease-in-out infinite alternate;
}
.scn-leithcourts-suspicion .figure-narrator {
  position: absolute; bottom: 20%; left: 45%; width: 14%; height: 43%;
  background: linear-gradient(180deg, #b89a7a 0%, #9a7c5c 40%, #6b5232 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-narr 5s ease-in-out infinite alternate;
}
.scn-leithcourts-suspicion .shadow-bar {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 30%, rgba(0,0,0,0.15) 70%, transparent 100%);
  animation: ls-shadow 6s ease-in-out infinite alternate;
}
@keyframes ls-door {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
  50% { box-shadow: inset 0 0 10px rgba(0,0,0,0.2); }
  100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.6); }
}
@keyframes ls-blind {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(0.97); }
  100% { opacity: 0.8; transform: scaleY(1.02); }
}
@keyframes ls-hour {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes ls-minute {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes ls-leith {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes ls-narr {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes ls-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.05); }
  100% { opacity: 0.4; transform: scaleX(0.95); }
}

/* leithcourts-secret-tryst */
.scn-leithcourts-secret-tryst {
  background: linear-gradient(180deg, #fdf4e0 0%, #edddc0 40%, #dcc5a0 100%),
              radial-gradient(ellipse at 80% 40%, #fff8e8 0%, transparent 60%);
}
.scn-leithcourts-secret-tryst .room-interior {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fdf4e0 0%, #edddc0 100%);
}
.scn-leithcourts-secret-tryst .window {
  position: absolute; top: 8%; left: 35%; width: 30%; height: 50%;
  background: #2a3a4a; border-radius: 4px;
  box-shadow: inset 0 0 0 4px #8a7a6a;
  animation: lt-window 12s ease-in-out infinite alternate;
}
.scn-leithcourts-secret-tryst .wood-outside {
  position: absolute; top: 10%; left: 37%; width: 26%; height: 46%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 2px;
  animation: lt-wood 20s ease-in-out infinite alternate;
}
.scn-leithcourts-secret-tryst .tree-trunk {
  position: absolute; top: 15%; left: 48%; width: 4%; height: 40%;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 2px;
  animation: lt-tree 15s ease-in-out infinite alternate;
}
.scn-leithcourts-secret-tryst .figure-watchman {
  position: absolute; bottom: 20%; left: 20%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-watch 4s ease-in-out infinite alternate;
}
.scn-leithcourts-secret-tryst .figure-arriving {
  position: absolute; bottom: 20%; right: 22%; width: 13%; height: 38%;
  background: linear-gradient(180deg, #b89a7a 0%, #9a7c5c 40%, #6b5232 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-arrive 4.5s ease-in-out infinite alternate-reverse;
}
.scn-leithcourts-secret-tryst .clock-dial {
  position: absolute; top: 12%; right: 15%; width: 8%; height: 10%;
  background: radial-gradient(circle at 50% 50%, #f5e3c8 0%, #c9b69a 60%, #6a5a4a 100%);
  border-radius: 50%; border: 2px solid #4a3a2a;
}
.scn-leithcourts-secret-tryst .hand-five {
  position: absolute; top: 16%; right: 18.5%; width: 1.5%; height: 5%;
  background: #2a1a0a; border-radius: 1px;
  transform-origin: 50% 100%;
  animation: lt-hand 60s linear infinite;
}
@keyframes lt-window {
  0% { box-shadow: inset 0 0 0 4px #8a7a6a, 0 0 0 0 rgba(0,0,0,0.2); }
  50% { box-shadow: inset 0 0 0 4px #8a7a6a, 0 0 20px 10px rgba(255,220,150,0.3); }
  100% { box-shadow: inset 0 0 0 4px #8a7a6a, 0 0 0 0 rgba(0,0,0,0.2); }
}
@keyframes lt-wood {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.9; transform: scaleY(0.97); }
  100% { opacity: 0.7; transform: scaleY(1.03); }
}
@keyframes lt-tree {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(0.95) translateX(2px); }
  100% { transform: scaleY(1.02) translateX(-1px); }
}
@keyframes lt-watch {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes lt-arrive {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes lt-hand {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-no-body-found-yet { background: linear-gradient(180deg, #6a5a4a 0%, #c8a878 40%, #e0c090 100%), radial-gradient(ellipse at 50% 0%, #e0c090 0%, transparent 60%); }
.scn-no-body-found-yet .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #8a8a78 0%, #b8a888 40%, #d8c098 100%); animation: nbfy-sky 14s ease-in-out infinite alternate; }
.scn-no-body-found-yet .mist { position:absolute; inset:30% 0 20% 0; background: linear-gradient(180deg, rgba(200,180,160,.4) 0%, transparent 100%); filter: blur(12px); animation: nbfy-mist 20s ease-in-out infinite alternate; }
.scn-no-body-found-yet .trees-bg { position:absolute; bottom:40%; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 40% 0 0 / 60% 80% 0 0; opacity:.7; animation: nbfy-trees 10s ease-in-out infinite; }
.scn-no-body-found-yet .trunk { position:absolute; bottom:20%; left:20%; width:28px; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; box-shadow: -4px 0 10px rgba(0,0,0,.5); animation: nbfy-trunk 8s ease-in-out infinite; }
.scn-no-body-found-yet .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-no-body-found-yet .figure { position:absolute; bottom:22%; left:45%; width:20px; height:42px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nbfy-figure 6s ease-in-out infinite; }
.scn-no-body-found-yet .lamp { position:absolute; bottom:24%; left:52%; width:8px; height:10px; background: radial-gradient(circle, #e0c070 0%, #b09840 70%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 20px 6px rgba(224,192,112,.5); animation: nbfy-lamp 4s ease-in-out infinite alternate; }
@keyframes nbfy-sky { 0% { opacity:.8; transform: scale(1.02) } 50% { opacity:1; transform: scale(1) } 100% { opacity:.9; transform: scale(1.01) } }
@keyframes nbfy-mist { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.7; transform: translateY(-4px) } 100% { opacity:.5; transform: translateY(-2px) } }
@keyframes nbfy-trees { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes nbfy-trunk { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes nbfy-figure { 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 nbfy-lamp { 0% { opacity:.6; box-shadow: 0 0 10px 3px rgba(224,192,112,.3) } 50% { opacity:1; box-shadow: 0 0 30px 10px rgba(224,192,112,.7) } 100% { opacity:.8; box-shadow: 0 0 20px 6px rgba(224,192,112,.5) } }

.scn-wood-search-ravine { background: linear-gradient(180deg, #3a4a4a 0%, #4a5a5a 30%, #2a3a3a 100%), radial-gradient(ellipse at 50% 100%, #2a3a3a 0%, transparent 70%); }
.scn-wood-search-ravine .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 40%, #3a4a4a 100%); animation: wsr-sky 16s ease-in-out infinite alternate; }
.scn-wood-search-ravine .cliff-left { position:absolute; bottom:25%; left:0; width:35%; height:50%; background: linear-gradient(135deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 0 30% 0 0; box-shadow: 4px 0 10px rgba(0,0,0,.6); animation: wsr-cliffs 12s ease-in-out infinite; }
.scn-wood-search-ravine .cliff-right { position:absolute; bottom:25%; right:0; width:30%; height:55%; background: linear-gradient(225deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 30% 0 0 0; box-shadow: -4px 0 10px rgba(0,0,0,.6); animation: wsr-cliffs 12s ease-in-out infinite reverse; }
.scn-wood-search-ravine .trees { position:absolute; top:20%; left:10%; width:60%; height:30%; background: linear-gradient(180deg, #2a4a2a 0%, #0a1a0a 100%); border-radius: 40% 60% 0 0; opacity:.8; animation: wsr-trees 10s ease-in-out infinite; }
.scn-wood-search-ravine .undergrowth { position:absolute; bottom:20%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius: 30% 30% 0 0; filter: blur(2px); animation: wsr-undergrowth 8s ease-in-out infinite; }
.scn-wood-search-ravine .figure-descend { position:absolute; bottom:30%; left:48%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: wsr-descend 5s ease-in-out infinite; }
.scn-wood-search-ravine .rock { position:absolute; bottom:18%; left:30%; width:40px; height:24px; background: linear-gradient(135deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 40% 30% 20% 30%; transform: rotate(10deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: wsr-rock 14s ease-in-out infinite; }
.scn-wood-search-ravine .stream { position:absolute; bottom:15%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #3a5a5a 0%, #2a4a4a 100%); border-radius: 50% 50% 0 0; filter: blur(3px); animation: wsr-stream 6s ease-in-out infinite alternate; }
@keyframes wsr-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes wsr-cliffs { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes wsr-trees { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.03) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes wsr-undergrowth { 0% { opacity:.6; transform: translateY(0) } 50% { opacity:.8; transform: translateY(-2px) } 100% { opacity:.7; transform: translateY(0) } }
@keyframes wsr-descend { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(5px) rotate(2deg) } 50% { transform: translateY(10px) rotate(-1deg) } 75% { transform: translateY(15px) rotate(3deg) } 100% { transform: translateY(20px) rotate(0) } }
@keyframes wsr-rock { 0% { transform: rotate(10deg) translateY(0) } 33% { transform: rotate(12deg) translateY(-1px) } 66% { transform: rotate(8deg) translateY(1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes wsr-stream { 0% { opacity:.4; background-position: 0 0 } 50% { opacity:.7; background-position: 10px 0 } 100% { opacity:.5; background-position: 20px 0 } }

.scn-ravine-search-begins { background: linear-gradient(180deg, #4a5a4a 0%, #5a6a5a 40%, #3a4a3a 100%), radial-gradient(ellipse at 50% 0%, #6a7a5a 0%, transparent 60%); }
.scn-ravine-search-begins .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #6a7a6a 0%, #5a6a5a 40%, #4a5a4a 100%); animation: rsb-sky 18s ease-in-out infinite alternate; }
.scn-ravine-search-begins .glen-left { position:absolute; bottom:20%; left:0; width:40%; height:60%; background: linear-gradient(135deg, #3a5a3a 0%, #1a2a1a 100%); border-radius: 0 50% 0 0; opacity:.8; animation: rsb-glen 14s ease-in-out infinite; }
.scn-ravine-search-begins .glen-right { position:absolute; bottom:20%; right:0; width:35%; height:65%; background: linear-gradient(225deg, #3a5a3a 0%, #1a2a1a 100%); border-radius: 50% 0 0 0; opacity:.8; animation: rsb-glen 14s ease-in-out infinite reverse; }
.scn-ravine-search-begins .stream { position:absolute; bottom:18%; left:20%; right:20%; height:6%; background: linear-gradient(90deg, #4a7a6a, #5a8a7a, #4a7a6a); border-radius: 50%; filter: blur(4px); animation: rsb-stream 8s ease-in-out infinite alternate; }
.scn-ravine-search-begins .trees-old-a { position:absolute; bottom:30%; left:15%; width:40px; height:35%; background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rsb-tree-old 12s ease-in-out infinite; }
.scn-ravine-search-begins .trees-old-b { position:absolute; bottom:25%; right:10%; width:50px; height:45%; background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rsb-tree-old 12s ease-in-out infinite 6s; }
.scn-ravine-search-begins .undergrowth { position:absolute; bottom:5%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%); border-radius: 30% 30% 0 0; filter: blur(3px); animation: rsb-undergrowth 10s ease-in-out infinite; }
.scn-ravine-search-begins .figure-walk { position:absolute; bottom:20%; left:40%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rsb-walk 4s ease-in-out infinite; }
@keyframes rsb-sky { 0% { opacity:.7; transform: scale(1.02) } 50% { opacity:.9; transform: scale(1) } 100% { opacity:.8; transform: scale(1.01) } }
@keyframes rsb-glen { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes rsb-stream { 0% { opacity:.5; width:50% } 50% { opacity:.8; width:60% } 100% { opacity:.6; width:55% } }
@keyframes rsb-tree-old { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes rsb-undergrowth { 0% { opacity:.6; transform: translateY(0) } 50% { opacity:.8; transform: translateY(-2px) } 100% { opacity:.7; transform: translateY(0) } }
@keyframes rsb-walk { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 20% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 40% { transform: translateX(10px) translateY(0) rotate(-2deg) } 60% { transform: translateX(15px) translateY(-1px) rotate(2deg) } 80% { transform: translateX(20px) translateY(0) rotate(-1deg) } 100% { transform: translateX(25px) translateY(0) rotate(0) } }

.scn-girl-enthusiastic-search { background: linear-gradient(180deg, #5a6a5a 0%, #6a7a6a 30%, #4a5a4a 100%), radial-gradient(ellipse at 50% 100%, #4a5a4a 0%, transparent 70%); }
.scn-girl-enthusiastic-search .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #7a8a7a 0%, #6a7a6a 40%, #5a6a5a 100%); animation: ges-sky 20s ease-in-out infinite alternate; }
.scn-girl-enthusiastic-search .bracken-bg { position:absolute; bottom:20%; left:0; right:0; height:60%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 30% 30% 0 0; opacity:.8; animation: ges-bracken 14s ease-in-out infinite; }
.scn-girl-enthusiastic-search .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a5a2a 0%, #1a2a0a 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.5); }
.scn-girl-enthusiastic-search .girl-body { position:absolute; bottom:22%; left:45%; width:30px; height:56px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ges-girl 6s ease-in-out infinite; }
.scn-girl-enthusiastic-search .girl-hat { position:absolute; bottom:64%; left:44%; width:34px; height:14px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 30% 30%; transform: rotate(-5deg); animation: ges-hat 6s ease-in-out infinite; }
.scn-girl-enthusiastic-search .girl-arm { position:absolute; bottom:40%; left:56%; width:14px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: 0 20%; transform: rotate(30deg); animation: ges-arm 4s ease-in-out infinite alternate; }
.scn-girl-enthusiastic-search .grass-fg { position:absolute; bottom:10%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 30% 30% 0 0; filter: blur(2px); animation: ges-grass 8s ease-in-out infinite; }
.scn-girl-enthusiastic-search .butterfly { position:absolute; top:25%; left:30%; width:12px; height:10px; background: radial-gradient(circle, #7a8a8a 0%, #4a5a5a 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-20deg); animation: ges-butterfly 5s ease-in-out infinite; }
@keyframes ges-sky { 0% { opacity:.7; transform: scale(1.01) } 50% { opacity:.9; transform: scale(1) } 100% { opacity:.8; transform: scale(1.01) } }
@keyframes ges-bracken { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ges-girl { 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 ges-hat { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes ges-arm { 0% { transform: rotate(30deg) } 50% { transform: rotate(50deg) } 100% { transform: rotate(30deg) } }
@keyframes ges-grass { 0% { opacity:.6; transform: translateY(0) } 50% { opacity:.8; transform: translateY(-2px) } 100% { opacity:.7; transform: translateY(0) } }
@keyframes ges-butterfly { 0% { transform: rotate(-20deg) translateX(0) } 25% { transform: rotate(10deg) translateX(8px) translateY(-4px) } 50% { transform: rotate(-30deg) translateX(16px) translateY(0) } 75% { transform: rotate(20deg) translateX(24px) translateY(-6px) } 100% { transform: rotate(-20deg) translateX(32px) translateY(0) } }

/* dim-interior tense: deep browns, amber glows, low saturation */
.scn-petersburg-kampf-identity {
  background: 
    linear-gradient(135deg, #1c1525 0%, #2d1b30 40%, #423045 100%),
    radial-gradient(ellipse at 40% 60%, #5a3a4a 0%, transparent 70%);
}
.scn-petersburg-kampf-identity .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1f2e 0%, #1a1220 100%);
  box-shadow: inset 0 0 80px #0d0a12;
  animation: pi-id-wall 30s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-identity .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2e35 0%, #1f181e 100%);
  border-radius: 60% 40% 0 0 / 20% 10% 0 0;
}
.scn-petersburg-kampf-identity .lamp-glow {
  position: absolute; bottom: 50%; left: 50%; width: 40px; height: 40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #ffd27a 0%, #b8824a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255, 210, 122, 0.3), 0 0 120px 60px rgba(255, 210, 122, 0.1);
  animation: pi-id-lamp 3s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-identity .figure-left {
  position: absolute; bottom: 22%; left: 28%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #1a1220 0%, #0d0a12 100%);
  border-radius: 40% 50% 30% 30% / 60% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset -5px 0 15px rgba(0,0,0,0.6);
  animation: pi-id-figure-left 6s ease-in-out infinite;
}
.scn-petersburg-kampf-identity .figure-right {
  position: absolute; bottom: 22%; right: 28%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #2a1a28 0%, #120e18 100%);
  border-radius: 50% 40% 30% 30% / 60% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset 5px 0 15px rgba(0,0,0,0.6);
  animation: pi-id-figure-right 7s ease-in-out infinite;
}
.scn-petersburg-kampf-identity .desk {
  position: absolute; bottom: 18%; left: 35%; right: 35%; height: 20px;
  background: linear-gradient(180deg, #4a3530 0%, #2a1a18 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-petersburg-kampf-identity .paper {
  position: absolute; bottom: 22%; left: 44%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #e8e0c8 0%, #c8b89a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-8deg);
  animation: pi-id-paper 12s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-identity .shadow-arch {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(15px);
  animation: pi-id-shadow-arch 18s ease-in-out infinite alternate;
}
@keyframes pi-id-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes pi-id-lamp { 0% { transform: translate(-50%,-50%) scale(0.9); box-shadow:0 0 40px 20px rgba(255,210,122,0.2); } 50% { transform: translate(-50%,-50%) scale(1.1); box-shadow:0 0 80px 40px rgba(255,210,122,0.4); } 100% { transform: translate(-50%,-50%) scale(0.95); box-shadow:0 0 50px 25px rgba(255,210,122,0.25); } }
@keyframes pi-id-figure-left { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes pi-id-figure-right { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-4px) rotate(-3deg); } 100% { transform: translateX(2px) rotate(0deg); } }
@keyframes pi-id-paper { 0% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(-12deg) scale(1.02); } 100% { transform: rotate(-6deg) scale(0.98); } }
@keyframes pi-id-shadow-arch { 0% { opacity:0.6; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.5; transform: scaleY(1); } }

/* ------------------------------------------------------------------ */
.scn-petersburg-kampf-power {
  background: 
    linear-gradient(45deg, #1a1220 0%, #2a2035 40%, #191528 100%),
    radial-gradient(ellipse at 30% 50%, #3d2a3a 0%, transparent 70%);
}
.scn-petersburg-kampf-power .wall-shadow {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #241e2e 0%, #0f0c14 100%);
  box-shadow: inset 0 0 100px #050308;
  animation: pi-po-wall 25s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-power .chair-throne {
  position: absolute; bottom: 15%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2e35 0%, #1a1218 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7), inset 0 0 30px #0d0a0d;
}
.scn-petersburg-kampf-power .figure-seated {
  position: absolute; bottom: 19%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1220 0%, #0d0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: inset -4px 0 12px rgba(0,0,0,0.5);
  animation: pi-po-figure 8s ease-in-out infinite;
}
.scn-petersburg-kampf-power .hand-cane {
  position: absolute; bottom: 20%; left: 58%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1a18 0%, #1a0e0c 100%);
  border-radius: 20% 20% 10% 10% / 10% 10% 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: pi-po-cane 5s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-power .light-spot {
  position: absolute; top: 10%; left: 60%; width: 100px; height: 100px;
  background: radial-gradient(circle, #ffd27a 0%, #b8824a 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  opacity: 0.4;
  animation: pi-po-light 9s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-power .ember-coals {
  position: absolute; bottom: 5%; left: 20%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #ff7a30 0%, #8a4020 40%, #1a0a08 80%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(255,122,48,0.15);
  animation: pi-po-ember 4s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-power .curtain-dark {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, #0d0a12 60%);
  filter: blur(8px);
  animation: pi-po-curtain 30s ease-in-out infinite alternate;
}
@keyframes pi-po-wall { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes pi-po-figure { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes pi-po-cane { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(18deg) translateX(2px); } 100% { transform: rotate(12deg) translateX(-1px); } }
@keyframes pi-po-light { 0% { opacity:0.3; transform: scale(0.9); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.35; transform: scale(0.95); } }
@keyframes pi-po-ember { 0% { box-shadow:0 0 30px 15px rgba(255,122,48,0.1); } 50% { box-shadow:0 0 60px 30px rgba(255,122,48,0.25); } 100% { box-shadow:0 0 40px 20px rgba(255,122,48,0.12); } }
@keyframes pi-po-curtain { 0% { transform: translateX(10px); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }

/* ------------------------------------------------------------------ */
.scn-petersburg-kampf-surprise {
  background: 
    linear-gradient(180deg, #1c1525 0%, #2d1b30 50%, #1a1220 100%),
    radial-gradient(ellipse at 60% 40%, #4a3345 0%, transparent 60%);
}
.scn-petersburg-kampf-surprise .alcove-bg {
  position: absolute; inset: 0 20% 0 0;
  background: linear-gradient(135deg, #241e2e 0%, #0f0c14 100%);
  border-radius: 0 30% 30% 0 / 0 10% 10% 0;
  animation: pi-su-alcove 20s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-surprise .old-man-cloak {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a1a28 0%, #0d0a12 100%);
  border-radius: 40% 50% 30% 30% / 60% 70% 20% 20%;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
  transform: rotate(-5deg);
  animation: pi-su-cloak 10s ease-in-out infinite;
}
.scn-petersburg-kampf-surprise .old-man-head {
  position: absolute; bottom: 73%; left: 32%; width: 40px; height: 45px;
  background: linear-gradient(180deg, #4a3a38 0%, #2a1a18 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pi-su-head 4s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-surprise .hand-raised {
  position: absolute; bottom: 45%; left: 38%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #4a3a38 0%, #2a1a18 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  transform: rotate(30deg);
  animation: pi-su-hand 6s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-surprise .candle-flame {
  position: absolute; top: 25%; right: 25%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 0%, #ffd27a 0%, #ff8a3a 40%, transparent 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(255,138,58,0.3);
  animation: pi-su-flame 1.5s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-surprise .candle-wax {
  position: absolute; top: 46%; right: 28%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b89a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
}
.scn-petersburg-kampf-surprise .shadow-pool {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 80%);
  filter: blur(10px);
  animation: pi-su-shadow 15s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-surprise .dust-motes {
  position: absolute; top: 30%; left: 0; right: 0; height: 50%;
  background: radial-gradient(circle at 20% 40%, rgba(255,210,122,0.05) 0%, transparent 50%);
  filter: blur(4px);
  animation: pi-su-dust 20s linear infinite;
}
@keyframes pi-su-alcove { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes pi-su-cloak { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(1px); } }
@keyframes pi-su-head { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(2px) rotate(8deg); } }
@keyframes pi-su-hand { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(45deg) scale(1.05); } 100% { transform: rotate(25deg) scale(0.95); } }
@keyframes pi-su-flame { 0% { transform: scaleY(0.8) translateX(0); } 50% { transform: scaleY(1.2) translateX(2px); } 100% { transform: scaleY(0.9) translateX(-1px); } }
@keyframes pi-su-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes pi-su-dust { 0% { background-position: 0% 0%; } 100% { background-position: 100% 50%; } }

/* ------------------------------------------------------------------ */
.scn-petersburg-kampf-trust {
  background: 
    linear-gradient(90deg, #1a1220 0%, #2d1b30 50%, #1c1525 100%),
    radial-gradient(ellipse at 50% 70%, #3d2a3a 0%, transparent 60%);
}
.scn-petersburg-kampf-trust .wall-texture {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #241e2e 0%, #120e18 100%);
  box-shadow: inset 0 0 60px #0a0810;
  animation: pi-tr-wall 35s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-trust .table-top {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 25px;
  background: linear-gradient(180deg, #4a3530 0%, #2a1a18 100%);
  border-radius: 10px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(10deg);
}
.scn-petersburg-kampf-trust .hand-left {
  position: absolute; bottom: 28%; left: 32%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #4a3a38 0%, #2a1a18 100%);
  border-radius: 40% 50% 30% 30% / 50% 50% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: bottom right;
  animation: pi-tr-hand-left 7s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-trust .hand-right {
  position: absolute; bottom: 28%; right: 32%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #4a3a38 0%, #2a1a18 100%);
  border-radius: 50% 40% 30% 30% / 50% 50% 20% 20%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: pi-tr-hand-right 8s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-trust .document-scroll {
  position: absolute; bottom: 22%; left: 44%; width: 50px; height: 35px;
  background: linear-gradient(135deg, #e8d8b8 0%, #c8b89a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(5deg);
  animation: pi-tr-scroll 15s ease-in-out infinite;
}
.scn-petersburg-kampf-trust .inkwell {
  position: absolute; bottom: 21%; right: 38%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #2a2035 0%, #1a1220 100%);
  border-radius: 40% 40% 10% 10% / 30% 30% 5% 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-petersburg-kampf-trust .candle-stick {
  position: absolute; bottom: 20%; left: 38%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b89a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
}
.scn-petersburg-kampf-trust .glow-aura {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #ffd27a 0%, #b8824a 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  opacity: 0.6;
  animation: pi-tr-glow 4s ease-in-out infinite alternate;
}
@keyframes pi-tr-wall { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes pi-tr-hand-left { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(3px); } 100% { transform: rotate(-25deg) translateX(-1px); } }
@keyframes pi-tr-hand-right { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(15deg) translateX(-3px); } 100% { transform: rotate(25deg) translateX(1px); } }
@keyframes pi-tr-scroll { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(8deg) scale(1.01); } 100% { transform: rotate(2deg) scale(0.99); } }
@keyframes pi-tr-glow { 0% { opacity:0.4; transform:translate(-50%,-50%) scale(0.9); } 50% { opacity:0.7; transform:translate(-50%,-50%) scale(1.1); } 100% { opacity:0.5; transform:translate(-50%,-50%) scale(0.95); } }

.scn-dawn-landing {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 30%, #c06040 70%, #f0c080 90%, #ffe0a0 100%),
    radial-gradient(ellipse at 50% 80%, #ffd070 0%, transparent 60%);
}
.scn-dawn-landing .sky {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 50% 0%, #6a6a9a 0%, transparent 100%);
  animation: dawn-sky 12s ease-in-out infinite alternate;
}
.scn-dawn-landing .sun {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd060 0%, #ffb040 40%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(255, 200, 100, 0.6);
  animation: dawn-sun 8s ease-in-out infinite;
}
.scn-dawn-landing .horizon {
  position: absolute; bottom: 15%; left: -5%; right: -5%; height: 20%;
  background: linear-gradient(0deg, #3a4a3a 0%, #4a5a4a 50%, #5a6a4a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: dawn-horizon 15s ease-in-out infinite alternate;
}
.scn-dawn-landing .figure {
  position: absolute; bottom: 12%; left: 40%; 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: dawn-figure 6s ease-in-out infinite;
  filter: blur(0.5px);
}
.scn-dawn-landing .bird {
  position: absolute; width: 30px; height: 12px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 0 50%;
  animation: dawn-bird 20s linear infinite;
}
.scn-dawn-landing .bird-a { top: 20%; left: -30px; }
.scn-dawn-landing .bird-b { top: 30%; left: -60px; animation-delay: -10s; }
.scn-dawn-landing .cloud {
  position: absolute; top: 10%; right: 10%; width: 100px; height: 20px;
  background: rgba(255,255,255,0.3); border-radius: 50%;
  filter: blur(8px);
  animation: dawn-cloud 40s linear infinite reverse;
}
@keyframes dawn-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes dawn-sun { 0% { transform: translateX(-50%) scale(1); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.1); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.85; } }
@keyframes dawn-horizon { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes dawn-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-3deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dawn-bird { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(30vw) translateY(-10px); } 50% { transform: translateX(60vw) translateY(5px); } 75% { transform: translateX(90vw) translateY(-5px); } 100% { transform: translateX(120vw) translateY(0); } }
@keyframes dawn-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-forest-morning-mist {
  background:
    linear-gradient(180deg, #4a5a5a 0%, #6a7a6a 40%, #8a9a7a 70%, #aabaa0 100%),
    radial-gradient(ellipse at 50% 100%, #5a6a5a 0%, transparent 70%);
}
.scn-forest-morning-mist .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0c0b0 0%, #a0b0a0 40%, transparent 100%);
  animation: mist-sky 15s ease-in-out infinite alternate;
}
.scn-forest-morning-mist .mist-back {
  position: absolute; inset: 10% 0 0 0;
  background: linear-gradient(180deg, rgba(200,210,200,0.4) 0%, transparent 100%);
  filter: blur(15px);
  animation: mist-back 20s ease-in-out infinite alternate;
}
.scn-forest-morning-mist .mist-fore {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, transparent 0%, rgba(160,180,160,0.3) 100%);
  filter: blur(10px);
  animation: mist-fore 25s ease-in-out infinite alternate;
}
.scn-forest-morning-mist .pines-back {
  position: absolute; bottom: 20%; left: -10%; right: -10%; height: 60%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 0% 0% 30% 30% / 0% 0% 20% 20%;
  clip-path: polygon(10% 0%, 30% 0%, 50% 0%, 70% 0%, 90% 0%, 100% 50%, 80% 100%, 60% 40%, 40% 100%, 20% 40%, 0% 100%);
  animation: mist-pines 18s ease-in-out infinite alternate;
}
.scn-forest-morning-mist .pines-mid {
  position: absolute; bottom: 15%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 0% 0% 20% 20%;
  clip-path: polygon(0% 100%, 10% 0%, 30% 0%, 40% 100%, 50% 20%, 70% 0%, 90% 0%, 100% 100%);
  animation: mist-pines2 22s ease-in-out infinite alternate;
}
.scn-forest-morning-mist .pines-fore {
  position: absolute; bottom: 10%; right: 5%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 0% 0% 10% 10%;
  clip-path: polygon(0% 100%, 5% 0%, 15% 0%, 25% 100%, 30% 10%, 50% 0%, 65% 0%, 75% 100%, 85% 0%, 95% 0%, 100% 100%);
  animation: mist-pines3 25s ease-in-out infinite alternate;
}
.scn-forest-morning-mist .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-forest-morning-mist .light {
  position: absolute; top: 0; left: 20%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, transparent 100%);
  filter: blur(20px);
  animation: mist-light 12s ease-in-out infinite alternate;
}
@keyframes mist-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mist-back { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes mist-fore { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes mist-pines { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(2px) scaleX(0.98); } }
@keyframes mist-pines2 { 0% { transform: translateY(0); } 50% { transform: translateY(-6px); } 100% { transform: translateY(-3px); } }
@keyframes mist-pines3 { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.03); } 100% { transform: translateY(-4px) scale(0.97); } }
@keyframes mist-light { 0% { opacity: 0.3; transform: rotate(-3deg); } 50% { opacity: 0.7; transform: rotate(3deg); } 100% { opacity: 0.4; transform: rotate(-1deg); } }

.scn-forest-lost-path {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #5a5a4a 70%, #4a4a3a 100%),
    radial-gradient(ellipse at 50% 100%, #5a5a4a 0%, transparent 70%);
}
.scn-forest-lost-path .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #5a5a6a 40%, transparent 100%);
  animation: lost-sky 10s ease-in-out infinite alternate;
}
.scn-forest-lost-path .tree-back {
  position: absolute; bottom: 30%; left: -20%; right: -20%; height: 60%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 0% 0% 40% 40%;
  clip-path: polygon(0% 0%, 20% 0%, 40% 0%, 60% 0%, 80% 0%, 100% 0%, 100% 100%, 0% 100%);
  filter: blur(5px);
  animation: lost-trees 15s ease-in-out infinite alternate;
}
.scn-forest-lost-path .tree-mid {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 0% 0% 20% 20%;
  clip-path: polygon(0% 100%, 5% 0%, 15% 0%, 25% 100%, 30% 0%, 50% 0%, 55% 100%, 70% 0%, 80% 100%, 85% 0%, 95% 0%, 100% 100%);
  animation: lost-trees2 18s ease-in-out infinite alternate;
}
.scn-forest-lost-path .tree-fore {
  position: absolute; bottom: 10%; left: -10%; right: 0%; height: 60%;
  background: linear-gradient(180deg, #0a1a0a 0%, #000a00 100%);
  border-radius: 0% 0% 10% 10%;
  clip-path: polygon(0% 100%, 8% 0%, 15% 0%, 22% 100%, 30% 0%, 45% 0%, 50% 100%, 60% 0%, 75% 0%, 80% 100%, 90% 0%, 100% 0%, 100% 100%);
  animation: lost-trees3 20s ease-in-out infinite alternate;
}
.scn-forest-lost-path .path {
  position: absolute; bottom: 20%; left: 30%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #6a5a3a 0%, #5a4a2a 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  opacity: 0.6;
  animation: lost-path 8s ease-in-out infinite alternate;
}
.scn-forest-lost-path .spring {
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 15px;
  background: radial-gradient(ellipse, #5a8a8a 0%, #3a6a6a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(90,138,138,0.4);
  animation: lost-spring 3s ease-in-out infinite alternate;
}
.scn-forest-lost-path .figures {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 50%;
}
.scn-forest-lost-path .figure-walker {
  position: absolute; 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: lost-walk 4s linear infinite;
}
.scn-forest-lost-path .figure-walker:nth-child(1) { left: 10%; animation-delay: 0s; }
.scn-forest-lost-path .figure-walker:nth-child(2) { left: 40%; animation-delay: -1.3s; }
.scn-forest-lost-path .figure-walker:nth-child(3) { left: 70%; animation-delay: -2.6s; }
@keyframes lost-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes lost-trees { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.05); } 100% { transform: translateY(3px) scaleX(0.95); } }
@keyframes lost-trees2 { 0% { transform: translateY(0); } 50% { transform: translateY(-8px); } 100% { transform: translateY(4px); } }
@keyframes lost-trees3 { 0% { transform: translateY(0); } 50% { transform: translateY(-12px); } 100% { transform: translateY(6px); } }
@keyframes lost-path { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.3; } }
@keyframes lost-spring { 0% { transform: scaleY(1); box-shadow: 0 0 6px 2px rgba(90,138,138,0.3); } 50% { transform: scaleY(1.2); box-shadow: 0 0 14px 4px rgba(90,138,138,0.6); } 100% { transform: scaleY(1); box-shadow: 0 0 6px 2px rgba(90,138,138,0.3); } }
@keyframes lost-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(15px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(30px) translateY(0) rotate(-2deg); } 75% { transform: translateX(45px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(60px) translateY(0) rotate(0); } }

.scn-forest-starvation-fear {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a3a2a 60%, #5a4a2a 100%),
    radial-gradient(ellipse at 50% 20%, #d0a030 0%, transparent 60%);
}
.scn-forest-starvation-fear .sky-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 30%, transparent 100%);
  animation: starve-sky 12s ease-in-out infinite alternate;
}
.scn-forest-starvation-fear .sun-glow {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, #d0a040 0%, #b08020 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 120px 40px rgba(180, 120, 30, 0.5);
  animation: starve-sun 6s ease-in-out infinite alternate;
}
.scn-forest-starvation-fear .pines-dense {
  position: absolute; bottom: 10%; left: -30%; right: -30%; height: 70%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 0% 0% 30% 30%;
  clip-path: polygon(0% 0%, 10% 0%, 15% 100%, 20% 0%, 30% 0%, 35% 100%, 40% 0%, 50% 0%, 55% 100%, 60% 0%, 70% 0%, 75% 100%, 80% 0%, 90% 0%, 95% 100%, 100% 0%, 100% 100%, 0% 100%);
  filter: blur(3px);
  animation: starve-pines 18s ease-in-out infinite alternate;
}
.scn-forest-starvation-fear .rays {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(200,160,60,0.2) 0%, transparent 60%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  filter: blur(10px);
  animation: starve-rays 8s ease-in-out infinite alternate;
}
.scn-forest-starvation-fear .figures {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 40%;
}
.scn-forest-starvation-fear .figure-shadow {
  position: absolute; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: starve-shadow 3s ease-in-out infinite alternate;
  filter: blur(0.5px);
}
.scn-forest-starvation-fear .figure-shadow:nth-child(1) { left: 5%; animation-delay: 0s; }
.scn-forest-starvation-fear .figure-shadow:nth-child(2) { left: 35%; animation-delay: -1s; }
.scn-forest-starvation-fear .figure-shadow:nth-child(3) { left: 65%; animation-delay: -2s; }
.scn-forest-starvation-fear .ground-leaves {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  animation: starve-leaves 5s ease-in-out infinite alternate;
}
@keyframes starve-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes starve-sun { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.7; } 50% { transform: translateX(-50%) scale(1.15); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 0.8; } }
@keyframes starve-pines { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.03); } 100% { transform: translateY(3px) scaleX(0.97); } }
@keyframes starve-rays { 0% { opacity: 0.2; transform: rotate(-5deg); } 50% { opacity: 0.6; transform: rotate(5deg); } 100% { opacity: 0.3; transform: rotate(-2deg); } }
@keyframes starve-shadow { 0% { transform: translateY(0) rotate(-3deg); opacity: 0.8; } 30% { transform: translateY(-2px) rotate(2deg); opacity: 1; } 70% { transform: translateY(1px) rotate(-1deg); opacity: 0.7; } 100% { transform: translateY(0) rotate(0); opacity: 0.9; } }
@keyframes starve-leaves { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(0.95); } }

.scn-peering-over-boulder {
  background:
    linear-gradient(180deg, #2a1a3e 0%, #4a2a4e 40%, #6a4a5e 70%, #8a6a6e 100%),
    radial-gradient(ellipse at 50% 0%, #6a4a5e 0%, transparent 60%);
}
.scn-peering-over-boulder .sky { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a4e 0%, #5a3a5e 50%, #7a5a6e 100%); animation: pob-sky 15s ease-in-out infinite alternate; }
.scn-peering-over-boulder .cloud-a { position:absolute; top:12%; left:10%; width:100px; height:24px; background: linear-gradient(90deg, rgba(200,180,200,0.3), rgba(200,180,200,0.05)); border-radius:50%; filter: blur(8px); animation: pob-drift-a 40s linear infinite; }
.scn-peering-over-boulder .cloud-b { position:absolute; top:18%; right:8%; width:80px; height:18px; background: linear-gradient(90deg, rgba(200,180,200,0.4), rgba(200,180,200,0.1)); border-radius:50%; filter: blur(6px); animation: pob-drift-b 50s linear infinite reverse; }
.scn-peering-over-boulder .boulder { position:absolute; bottom:0; left:5%; width:70%; height:55%; background: linear-gradient(170deg, #3a2a2a 0%, #1a1a1a 60%, #0a0a0a 100%); border-radius: 30% 10% 0 0 / 50% 20% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6), 10px 0 20px rgba(0,0,0,0.4); transform: scaleX(0.8) translateX(-5%); animation: pob-boulder 8s ease-in-out infinite alternate; }
.scn-peering-over-boulder .figure-a { position:absolute; bottom:32%; left:35%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom center; animation: pob-walk-a 6s ease-in-out infinite; }
.scn-peering-over-boulder .figure-b { position:absolute; bottom:30%; left:45%; width:14px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform: scaleX(-1) translateX(10px); animation: pob-walk-b 7s ease-in-out infinite 2s; }
.scn-peering-over-boulder .thicket { position:absolute; bottom:28%; left:25%; width:60%; height:30%; background: linear-gradient(130deg, #1a2a1a 0%, #0a1a0a 50%, #050a05 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; clip-path: polygon(0% 100%, 10% 70%, 20% 85%, 35% 60%, 50% 75%, 65% 55%, 80% 70%, 90% 50%, 100% 100%); animation: pob-thicket 12s ease-in-out infinite alternate; }
.scn-peering-over-boulder .grass { position:absolute; bottom:28%; left:10%; width:15%; height:6%; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius:70% 30% 50% 50% / 100% 100% 100% 100%; filter: blur(1px); animation: pob-grass 3s ease-in-out infinite alternate; }
@keyframes pob-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pob-drift-a { 0% { transform: translateX(-20px); } 100% { transform: translateX(110vw); } }
@keyframes pob-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes pob-boulder { 0% { transform: scaleX(0.8) translateX(-5%) translateY(0); } 50% { transform: scaleX(0.82) translateX(-4%) translateY(-2px); } 100% { transform: scaleX(0.8) translateX(-5%) translateY(0); } }
@keyframes pob-walk-a { 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 pob-walk-b { 0% { transform: scaleX(-1) translateX(10px) translateY(0); } 33% { transform: scaleX(-1) translateX(14px) translateY(-1px); } 66% { transform: scaleX(-1) translateX(18px) translateY(0); } 100% { transform: scaleX(-1) translateX(22px) translateY(-1px); } }
@keyframes pob-thicket { 0% { clip-path: polygon(0% 100%, 10% 70%, 20% 85%, 35% 60%, 50% 75%, 65% 55%, 80% 70%, 90% 50%, 100% 100%); } 50% { clip-path: polygon(0% 100%, 8% 68%, 18% 83%, 33% 58%, 48% 72%, 63% 53%, 78% 68%, 88% 48%, 100% 100%); } 100% { clip-path: polygon(0% 100%, 12% 72%, 22% 87%, 37% 62%, 52% 77%, 67% 57%, 82% 72%, 92% 52%, 100% 100%); } }
@keyframes pob-grass { 0% { transform: skewX(-5deg); } 50% { transform: skewX(5deg); } 100% { transform: skewX(-3deg); } }

.scn-speculating-on-strangers {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 40%, #4a3a4e 70%, #6a5a5e 100%),
    radial-gradient(ellipse at 70% 0%, #5a4a5e 0%, transparent 70%);
}
.scn-speculating-on-strangers .sky { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a4e 0%, #3a3a5e 50%, #5a4a5e 100%); animation: sst-sky 18s ease-in-out infinite alternate; }
.scn-speculating-on-strangers .tree-a { position:absolute; bottom:20%; left:8%; width:40px; height:60%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; filter: blur(1px); animation: sst-tree 10s ease-in-out infinite alternate; }
.scn-speculating-on-strangers .tree-b { position:absolute; bottom:15%; right:12%; width:35px; height:70%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; transform: scale(0.9); filter: blur(2px); animation: sst-tree 12s ease-in-out infinite alternate-reverse; }
.scn-speculating-on-strangers .figure-left { position:absolute; bottom:25%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sst-point 4s ease-in-out infinite; }
.scn-speculating-on-strangers .figure-left::before { content:''; position:absolute; top:-10px; left:14px; width:20px; height:4px; background: #1a1a2a; border-radius: 50% 0 0 50%; transform: rotate(-30deg); animation: sst-arm 4s ease-in-out infinite; }
.scn-speculating-on-strangers .figure-right { position:absolute; bottom:26%; left:52%; width:16px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sst-stand 6s ease-in-out infinite 1s; }
.scn-speculating-on-strangers .path { position:absolute; bottom:18%; left:0; right:0; height:8%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 20% 80% 0 0 / 50% 50% 0 0; filter: blur(1px); animation: sst-path 20s linear infinite; }
.scn-speculating-on-strangers .hill { position:absolute; bottom:20%; left:20%; width:70%; height:20%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 100% 100% 0 0; filter: blur(3px); animation: sst-hill 15s ease-in-out infinite alternate; }
@keyframes sst-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sst-tree { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes sst-point { 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 sst-arm { 0% { transform: rotate(-30deg); } 25% { transform: rotate(-15deg); } 50% { transform: rotate(-30deg); } 75% { transform: rotate(-40deg); } 100% { transform: rotate(-30deg); } }
@keyframes sst-stand { 0% { transform: translateY(0); } 33% { transform: translateY(-1px); } 66% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes sst-path { 0% { background-position: 0 0; } 100% { background-position: 100% 0; } }
@keyframes sst-hill { 0% { filter: blur(3px); opacity:0.6; } 50% { filter: blur(4px); opacity:0.8; } 100% { filter: blur(3px); opacity:0.6; } }

.scn-spade-recognition {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a2244 40%, #4a3a4e 70%, #6a5a5e 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a4e 0%, transparent 70%);
}
.scn-spade-recognition .sky { position:absolute; inset:0; background: linear-gradient(180deg, #2a2244 0%, #3a2a4e 50%, #5a4a5e 100%); animation: sr-sky 12s ease-in-out infinite alternate; }
.scn-spade-recognition .back-figure { position:absolute; bottom:0; left:20%; width:40%; height:60%; background: linear-gradient(170deg, #1a1a2a 0%, #0e0e1a 60%, #050510 100%); border-radius: 40% 50% 0 0 / 80% 70% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6); transform: scaleX(0.8); animation: sr-back 7s ease-in-out infinite alternate; }
.scn-spade-recognition .spade { position:absolute; bottom:35%; left:42%; width:8px; height:50px; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 2px; transform: rotate(25deg); transform-origin: bottom center; animation: sr-spade 5s ease-in-out infinite; }
.scn-spade-recognition .spade::after { content:''; position:absolute; top:-8px; left:-6px; width:20px; height:10px; background: linear-gradient(135deg, #5a5a5a 0%, #3a3a3a 100%); border-radius: 50% 50% 0 0; }
.scn-spade-recognition .second-figure { position:absolute; bottom:10%; right:10%; width:14px; height:32px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform: scaleX(-1); animation: sr-second 8s ease-in-out infinite 3s; }
.scn-spade-recognition .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; animation: sr-ground 20s linear infinite; }
.scn-spade-recognition .fence { position:absolute; bottom:18%; left:65%; width:4px; height:40%; background: #2a2a2a; box-shadow: 0 30px 0 #2a2a2a, 0 60px 0 #2a2a2a; animation: sr-fence 15s ease-in-out infinite alternate; }
.scn-spade-recognition .grass { position:absolute; bottom:20%; left:5%; width:20%; height:8%; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 70% 30% 50% 50% / 100% 100% 100% 100%; filter: blur(1px); animation: sr-grass 3s ease-in-out infinite alternate; }
@keyframes sr-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes sr-back { 0% { transform: scaleX(0.8) translateY(0); } 50% { transform: scaleX(0.78) translateY(-3px); } 100% { transform: scaleX(0.8) translateY(0); } }
@keyframes sr-spade { 0% { transform: rotate(25deg) translateY(0); } 50% { transform: rotate(22deg) translateY(-2px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes sr-second { 0% { transform: scaleX(-1) translateY(0); } 33% { transform: scaleX(-1) translateY(-2px); } 66% { transform: scaleX(-1) translateY(1px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes sr-ground { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sr-fence { 0% { filter: blur(0); } 50% { filter: blur(1px); } 100% { filter: blur(0); } }
@keyframes sr-grass { 0% { transform: skewX(-5deg); } 50% { transform: skewX(5deg); } 100% { transform: skewX(-3deg); } }

.scn-disturbed-ground-discovery {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #3a2a2a 60%, #4a3a3a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 60%);
}
.scn-disturbed-ground-discovery .ground-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a2a 0%, #3a2e2e 60%, #4a3a3a 100%); animation: dgd-bg 20s ease-in-out infinite alternate; }
.scn-disturbed-ground-discovery .disturbed-earth { position:absolute; bottom:20%; left:25%; width:50%; height:30%; background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50%; filter: blur(2px); animation: dgd-disturb 8s ease-in-out infinite alternate; }
.scn-disturbed-ground-discovery .spade-lying { position:absolute; bottom:28%; left:30%; width:6px; height:40px; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); border-radius: 2px; transform: rotate(-45deg); transform-origin: top left; animation: dgd-spade 6s ease-in-out infinite; }
.scn-disturbed-ground-discovery .spade-lying::after { content:''; position:absolute; bottom:-6px; left:-8px; width:20px; height:10px; background: linear-gradient(135deg, #6a6a6a 0%, #4a4a4a 100%); border-radius: 0 0 50% 50%; }
.scn-disturbed-ground-discovery .footprint-a { position:absolute; bottom:10%; left:40%; width:16px; height:24px; background: radial-gradient(ellipse at 50% 50%, #2a1a1a 0%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: dgd-fprint 4s ease-in-out infinite alternate; }
.scn-disturbed-ground-discovery .footprint-b { position:absolute; bottom:15%; left:48%; width:16px; height:24px; background: radial-gradient(ellipse at 50% 50%, #2a1a1a 0%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: dgd-fprint 5s ease-in-out infinite alternate 2s; }
.scn-disturbed-ground-discovery .rock-fragment { position:absolute; bottom:22%; left:60%; width:20px; height:15px; background: linear-gradient(135deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform: rotate(45deg); animation: dgd-rock 10s ease-in-out infinite alternate; }
.scn-disturbed-ground-discovery .grass-tuft { position:absolute; bottom:10%; left:20%; width:12%; height:6%; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 70% 30% 50% 50% / 100% 100% 100% 100%; filter: blur(1px); animation: dgd-grass 3s ease-in-out infinite alternate; }
@keyframes dgd-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes dgd-disturb { 0% { filter: blur(2px); transform: scale(1); } 50% { filter: blur(3px); transform: scale(1.02); } 100% { filter: blur(2px); transform: scale(1); } }
@keyframes dgd-spade { 0% { transform: rotate(-45deg) translateX(0); } 50% { transform: rotate(-43deg) translateX(2px); } 100% { transform: rotate(-45deg) translateX(0); } }
@keyframes dgd-fprint { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes dgd-rock { 0% { transform: rotate(45deg) scaleY(1); } 50% { transform: rotate(47deg) scaleY(0.95); } 100% { transform: rotate(45deg) scaleY(1); } }
@keyframes dgd-grass { 0% { transform: skewX(-4deg); } 50% { transform: skewX(4deg); } 100% { transform: skewX(-2deg); } }

/* petersburg-race-to-olga */
.scn-petersburg-race-to-olga {
  background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3e 40%, #2a2040 70%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 100%, #2a2040 0%, transparent 70%);
}
.scn-petersburg-race-to-olga .sky-stars {
  position: absolute; inset: 0 0 60% 0;
  background: radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 70% 50%, #fff 0%, transparent 100%),
              radial-gradient(3px 3px at 45% 20%, #d0d0f0 0%, transparent 100%),
              radial-gradient(2px 2px at 85% 15%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 10% 60%, #e0e0ff 0%, transparent 100%);
  background-size: 90px 90px;
  animation: po-twinkle 4s ease-in-out infinite alternate;
}
.scn-petersburg-race-to-olga .canal {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a1a2a 0%, #0a1620 70%, #0a121a 100%);
  border-top: 2px solid rgba(60,100,140,0.3);
  animation: po-water 6s ease-in-out infinite alternate;
}
.scn-petersburg-race-to-olga .bridge {
  position: absolute; bottom: 35%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 60% 60% 8% 8% / 120% 120% 20% 20%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  transform: scaleY(0.6);
}
.scn-petersburg-race-to-olga .drosky {
  position: absolute; bottom: 38%; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: po-carriage 0.8s ease-in-out infinite;
}
.scn-petersburg-race-to-olga .horse {
  position: absolute; bottom: 39%; left: 38%; width: 40px; height: 28px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0c0c18 100%);
  border-radius: 40% 50% 30% 30% / 70% 60% 40% 40%;
  transform-origin: 70% 80%;
  animation: po-gallop 0.4s ease-in-out infinite;
}
.scn-petersburg-race-to-olga .lantern-swing {
  position: absolute; bottom: 42%; left: 55%; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffd060 0%, #c08030 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,208,96,0.6), 0 0 24px 8px rgba(255,208,96,0.2);
  animation: po-swing 2s ease-in-out infinite;
}
.scn-petersburg-race-to-olga .lamp-left {
  position: absolute; bottom: 38%; left: 12%; width: 4px; height: 6px;
  background: #ffdd90;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,220,144,0.5);
  animation: po-lamp-flicker 3s ease-in-out infinite alternate;
}
.scn-petersburg-race-to-olga .lamp-right {
  position: absolute; bottom: 38%; right: 12%; width: 4px; height: 6px;
  background: #ffdd90;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,220,144,0.5);
  animation: po-lamp-flicker 3s ease-in-out 1.5s infinite alternate;
}
.scn-petersburg-race-to-olga .driver {
  position: absolute; bottom: 41%; left: 52%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #0a0a1a 0%, #02020a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  animation: po-driver-bob 0.8s ease-in-out infinite;
}
@keyframes po-twinkle {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes po-water {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes po-carriage {
  0% { transform: translateX(-50%) translateY(0); }
  25% { transform: translateX(-50%) translateY(-2px); }
  50% { transform: translateX(-50%) translateY(0); }
  75% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes po-gallop {
  0% { transform: rotate(0deg) scaleX(1); }
  20% { transform: rotate(8deg) scaleX(1.05); }
  40% { transform: rotate(-6deg) scaleX(0.95); }
  60% { transform: rotate(4deg) scaleX(1.02); }
  80% { transform: rotate(-4deg) scaleX(0.98); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes po-swing {
  0% { transform: rotate(-10deg) translateX(0); }
  25% { transform: rotate(8deg) translateX(2px); }
  50% { transform: rotate(-6deg) translateX(-1px); }
  75% { transform: rotate(10deg) translateX(1px); }
  100% { transform: rotate(-10deg) translateX(0); }
}
@keyframes po-lamp-flicker {
  0% { opacity: 0.6; box-shadow: 0 0 8px 2px rgba(255,220,144,0.3); }
  50% { opacity: 1; box-shadow: 0 0 14px 4px rgba(255,220,144,0.7); }
  100% { opacity: 0.7; box-shadow: 0 0 10px 3px rgba(255,220,144,0.4); }
}
@keyframes po-driver-bob {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

/* petersburg-red-priest */
.scn-petersburg-red-priest {
  background: linear-gradient(90deg, #0e0e1a 0%, #1a1a2e 30%, #0e0e1a 70%, #050510 100%),
              radial-gradient(circle at 50% 60%, #2a2a40 0%, transparent 70%);
}
.scn-petersburg-red-priest .hall-wall-left {
  position: absolute; top: 0; left: 0; width: 40%; height: 100%;
  background: linear-gradient(90deg, #0c0c18 0%, #1a1a2e 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
}
.scn-petersburg-red-priest .hall-wall-right {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(270deg, #0c0c18 0%, #1a1a2e 100%);
  clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%);
}
.scn-petersburg-red-priest .floor-dark {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #141422 0%, #0a0a14 100%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%);
}
.scn-petersburg-red-priest .door-end {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.8), 0 4px 8px rgba(0,0,0,0.5);
}
.scn-petersburg-red-priest .old-man {
  position: absolute; bottom: 25%; left: 40%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1c1c2e 0%, #0a0a14 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rp-lead-step 4s ease-in-out infinite;
}
.scn-petersburg-red-priest .match-flame {
  position: absolute; bottom: 48%; left: 42%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 30%, #ffd080 30%, #ff8830 60%, #cc4400 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(255,136,48,0.5), 0 0 40px 12px rgba(255,136,48,0.2);
  animation: rp-flame-flicker 0.6s ease-in-out infinite;
}
.scn-petersburg-red-priest .narrator-back {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 58px;
  background: linear-gradient(180deg, #0e0e1e 0%, #04040a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: scaleX(-1);
  animation: rp-narrator-wait 4s ease-in-out infinite;
}
.scn-petersburg-red-priest .unlit-lamp {
  position: absolute; bottom: 55%; left: 30%; width: 10px; height: 14px;
  background: #1a1a2a;
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 4px rgba(0,0,0,0.8);
}
@keyframes rp-lead-step {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes rp-flame-flicker {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  20% { transform: scaleY(1.15) translateY(-1px); opacity: 1; }
  40% { transform: scaleY(0.85) translateY(1px); opacity: 0.8; }
  60% { transform: scaleY(1.1) translateY(-0.5px); opacity: 0.95; }
  80% { transform: scaleY(0.9) translateY(0.5px); opacity: 0.9; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.9; }
}
@keyframes rp-narrator-wait {
  0% { transform: scaleX(-1) translateX(0); }
  50% { transform: scaleX(-1) translateX(2px); }
  100% { transform: scaleX(-1) translateX(0); }
}

/* petersburg-kampf-meeting */
.scn-petersburg-kampf-meeting {
  background: linear-gradient(180deg, #1a1a30 0%, #12122a 40%, #0a0a1a 80%, #050510 100%),
              radial-gradient(circle at 60% 40%, #2a2a44 0%, transparent 60%);
}
.scn-petersburg-kampf-meeting .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #15152a 0%, #0c0c1e 100%);
  opacity: 0.8;
}
.scn-petersburg-kampf-meeting .desk {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #3a3028 0%, #2a2018 100%);
  border-radius: 4% 4% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(20deg);
}
.scn-petersburg-kampf-meeting .candle-glow {
  position: absolute; bottom: 28%; left: 45%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 60%, #ffd080 20%, #ff8830 50%, #cc4400 80%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 28px 6px rgba(255,136,48,0.4), 0 0 60px 16px rgba(255,136,48,0.15);
  animation: km-candle 2s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-meeting .red-priest {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3a2424 0%, #2a1414 30%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  clip-path: polygon(0% 0%, 20% 10%, 20% 40%, 30% 40%, 30% 20%, 40% 10%, 40% 0%, 60% 0%, 60% 10%, 70% 20%, 70% 40%, 80% 40%, 80% 10%, 100% 0%, 100% 100%, 0% 100%);
  animation: km-priest-lean 5s ease-in-out infinite;
}
.scn-petersburg-kampf-meeting .narrator-stand {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #1c1c30 0%, #0a0a18 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  animation: km-narrator-shift 6s ease-in-out infinite;
}
.scn-petersburg-kampf-meeting .icon-wall {
  position: absolute; top: 15%; left: 42%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a3020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px rgba(0,0,0,0.6);
  transform: rotate(3deg);
}
.scn-petersburg-kampf-meeting .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,0.4) 80%, rgba(0,0,0,0.7) 100%);
  pointer-events: none;
}
.scn-petersburg-kampf-meeting .dust-mote {
  position: absolute; top: 30%; left: 40%; width: 4px; height: 4px;
  background: rgba(200,200,220,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: km-dust 12s linear infinite;
}
@keyframes km-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.1) translateY(-1px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(0.5px); opacity: 0.85; }
}
@keyframes km-priest-lean {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(1px); }
  75% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes km-narrator-shift {
  0% { transform: translateX(0); }
  33% { transform: translateX(5px); }
  66% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes km-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  25% { transform: translate(10px, -15px) scale(0.8); opacity: 0.2; }
  50% { transform: translate(20px, 5px) scale(1.2); opacity: 0.4; }
  75% { transform: translate(30px, -10px) scale(0.9); opacity: 0.2; }
  100% { transform: translate(40px, 0) scale(1); opacity: 0.3; }
}

/* petersburg-kampf-english */
.scn-petersburg-kampf-english {
  background: linear-gradient(180deg, #12122a 0%, #0a0a1a 50%, #14142e 100%),
              radial-gradient(circle at 50% 50%, #1c1c36 0%, transparent 70%);
}
.scn-petersburg-kampf-english .close-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #0c0c1e 50%, #1a1a2e 100%);
}
.scn-petersburg-kampf-english .table-edge {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
}
.scn-petersburg-kampf-english .hands-clasped {
  position: absolute; bottom: 16%; left: 50%; width: 30px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a28 0%, #2a1a18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ke-hands-press 3s ease-in-out infinite;
}
.scn-petersburg-kampf-english .candle-glow-close {
  position: absolute; bottom: 30%; left: 30%; width: 16px; height: 22px;
  background: radial-gradient(circle at 50% 50%, #ffd080 30%, #ff8830 60%, #cc4400 80%, transparent 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(255,136,48,0.3), 0 0 60px 20px rgba(255,136,48,0.1);
  animation: ke-candle-close 1.5s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-english .shadow-left {
  position: absolute; top: 0; left: 0; width: 40%; height: 100%;
  background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  pointer-events: none;
}
.scn-petersburg-kampf-english .shadow-right {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(270deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  pointer-events: none;
}
.scn-petersburg-kampf-english .drape {
  position: absolute; top: 0; left: 10%; width: 30%; height: 100%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  opacity: 0.6;
}
@keyframes ke-hands-press {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.95) translateY(1px); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes ke-candle-close {
  0% { transform: scaleY(1) translateY(0); opacity: 0.85; }
  50% { transform: scaleY(1.1) translateY(-1px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(0.5px); opacity: 0.8; }
}

/* Scene: meeting-muriel (mm1) – sunlit lawn */
.scn-meeting-muriel {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F0E68C 70%, #F5DEB3 100%), radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 60%);
}
.scn-meeting-muriel .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%); animation: mm1-sky 12s ease-in-out infinite alternate; }
.scn-meeting-muriel .sun { position:absolute; top:8%; left:75%; width:50px; height:50px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, transparent 70%); border-radius:50%; filter:blur(4px); animation: mm1-sun 6s ease-in-out infinite alternate; }
.scn-meeting-muriel .lawn { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7CCD7C 0%, #228B22 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,40,0,.4); animation: mm1-lawn 18s ease-in-out infinite alternate; }
.scn-meeting-muriel .hedge { position:absolute; bottom:38%; left:10%; width:30%; height:12%; background: linear-gradient(180deg, #3CB371 0%, #2E8B57 100%); border-radius: 40% 60% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: mm1-hedge 22s ease-in-out infinite alternate; }
.scn-meeting-muriel .table { position:absolute; bottom:28%; left:45%; width:60px; height:40px; background: linear-gradient(180deg, #DEB887 0%, #8B4513 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.4); transform: perspective(100px) rotateX(10deg); animation: mm1-table 10s ease-in-out infinite; }
.scn-meeting-muriel .figure-man { position:absolute; bottom:24%; left:36%; width:20px; height:42px; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm1-walk-man 5s ease-in-out infinite; }
.scn-meeting-muriel .figure-woman { position:absolute; bottom:24%; left:42%; width:18px; height:40px; background: linear-gradient(180deg, #FFE4B5 0%, #DEB887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm1-walk-woman 5s ease-in-out infinite 0.3s; }
.scn-meeting-muriel .cloud-a { position:absolute; top:15%; left:10%; 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(5px); animation: mm1-drift-a 40s linear infinite; }
.scn-meeting-muriel .cloud-b { position:absolute; top:22%; right:20%; width:60px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.15) 100%); border-radius:50%; filter:blur(6px); animation: mm1-drift-b 50s linear infinite reverse; }
@keyframes mm1-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mm1-sun { 0% { filter:blur(4px) brightness(1) } 50% { filter:blur(2px) brightness(1.1) } 100% { filter:blur(4px) brightness(1) } }
@keyframes mm1-lawn { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mm1-hedge { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes mm1-table { 0%,100% { transform: perspective(100px) rotateX(10deg) translateY(0) } 50% { transform: perspective(100px) rotateX(12deg) translateY(-2px) } }
@keyframes mm1-walk-man { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 75% { transform: translateX(8px) translateY(-1px) rotate(-2deg) } }
@keyframes mm1-walk-woman { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(-2deg) } 75% { transform: translateX(8px) translateY(-1px) rotate(2deg) } }
@keyframes mm1-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes mm1-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* Scene: inside-the-castle (ic2) – bright interior */
.scn-inside-the-castle {
  background: linear-gradient(180deg, #D2B48C 0%, #C4A882 30%, #B39B78 60%, #8B7355 100%), radial-gradient(ellipse at 50% 30%, #F5DEB3 0%, transparent 70%);
}
.scn-inside-the-castle .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #D2B48C 0%, #C4A882 50%, #B39B78 100%); }
.scn-inside-the-castle .paneling { position:absolute; top:25%; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #8B5A2B 0%, #6B3A1B 50%, #5A2A0A 100%); border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: ic2-panel 15s ease-in-out infinite alternate; }
.scn-inside-the-castle .window { position:absolute; top:15%; left:38%; width:25%; height:40%; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%); border:6px solid #8B4513; border-radius: 6px; box-shadow: inset 0 0 30px rgba(255,255,200,.4); animation: ic2-window 8s ease-in-out infinite alternate; }
.scn-inside-the-castle .window-light { position:absolute; top:18%; left:41%; width:20%; height:34%; background: radial-gradient(ellipse, rgba(255,255,200,.6) 0%, transparent 80%); filter:blur(10px); animation: ic2-light 4s ease-in-out infinite alternate; }
.scn-inside-the-castle .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #A0522D 0%, #5C3317 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-inside-the-castle .chandelier { position:absolute; top:5%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: radial-gradient(circle, #FFD700 0%, #DAA520 40%, transparent 70%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter:blur(2px); animation: ic2-chand 6s ease-in-out infinite alternate; }
.scn-inside-the-castle .figure { position:absolute; bottom:15%; left:40%; width:16px; height:35px; background: linear-gradient(180deg, #2C2C2C 0%, #1A1A1A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ic2-figure 5s ease-in-out infinite; }
.scn-inside-the-castle .curtain-left { position:absolute; top:15%; left:38%; width:30px; height:45%; background: linear-gradient(180deg, #B22222 0%, #8B0000 100%); border-radius: 0 8px 8px 0; transform-origin: left top; animation: ic2-curtain 9s ease-in-out infinite alternate; }
.scn-inside-the-castle .curtain-right { position:absolute; top:15%; right:38%; width:30px; height:45%; background: linear-gradient(180deg, #B22222 0%, #8B0000 100%); border-radius: 8px 0 0 8px; transform-origin: right top; animation: ic2-curtain 9s ease-in-out infinite alternate-reverse; }
@keyframes ic2-panel { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.92 } }
@keyframes ic2-window { 0% { filter:brightness(0.9) } 50% { filter:brightness(1.2) } 100% { filter:brightness(1) } }
@keyframes ic2-light { 0% { opacity:.4; transform:scale(1) } 50% { opacity:.7; transform:scale(1.05) } 100% { opacity:.5; transform:scale(1) } }
@keyframes ic2-chand { 0% { opacity:.6; filter:blur(4px) } 50% { opacity:.9; filter:blur(2px) } 100% { opacity:.7; filter:blur(3px) } }
@keyframes ic2-figure { 0%,100% { transform:translateX(0) translateY(0) rotate(0deg) } 30% { transform:translateX(4px) translateY(-1px) rotate(1deg) } 70% { transform:translateX(-4px) translateY(-1px) rotate(-1deg) } }
@keyframes ic2-curtain { 0% { transform: skewX(0deg) } 100% { transform: skewX(5deg) } }

/* Scene: muriels-chatter (mc3) – bright interior conversation */
.scn-muriels-chatter {
  background: linear-gradient(180deg, #F5DEB3 0%, #EED4A0 40%, #D2B48C 100%), radial-gradient(ellipse at 50% 60%, #FFF8DC 0%, transparent 60%);
}
.scn-muriels-chatter .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #F5DEB3 0%, #EED4A0 50%, #D2B48C 100%); }
.scn-muriels-chatter .fireplace { position:absolute; bottom:20%; left:15%; width:20%; height:35%; background: linear-gradient(180deg, #8B4513 0%, #5C3317 50%, #3A1F0A 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 30px rgba(255,140,0,.4); animation: mc3-fire 3s ease-in-out infinite alternate; }
.scn-muriels-chatter .sofa { position:absolute; bottom:18%; left:40%; width:30%; height:20%; background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: mc3-sofa 12s ease-in-out infinite alternate; }
.scn-muriels-chatter .figure-muriel { position:absolute; bottom:22%; left:52%; width:18px; height:38px; background: linear-gradient(180deg, #CD853F 0%, #8B6914 50%, #D2691E 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc3-gesture 4s ease-in-out infinite 0.1s; }
.scn-muriels-chatter .figure-narrator { position:absolute; bottom:22%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #BC8F8F 0%, #A0522D 50%, #6B3A1B 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc3-gesture 4s ease-in-out infinite 0.5s; }
.scn-muriels-chatter .tea-table { position:absolute; bottom:28%; left:44%; width:50px; height:30px; background: linear-gradient(180deg, #DEB887 0%, #A0522D 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: perspective(80px) rotateX(8deg); animation: mc3-table 8s ease-in-out infinite; }
.scn-muriels-chatter .lamp { position:absolute; bottom:38%; left:68%; width:12px; height:30px; background: linear-gradient(180deg, #FFD700 0%, #DAA520 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 24px 8px rgba(255,215,0,.5); animation: mc3-lamp 5s ease-in-out infinite alternate; }
.scn-muriels-chatter .picture { position:absolute; top:15%; left:70%; width:18%; height:20%; background: linear-gradient(135deg, #8FBC8F 0%, #2E8B57 100%); border:3px solid #8B4513; border-radius: 4px; animation: mc3-picture 20s linear infinite; }
.scn-muriels-chatter .rug { position:absolute; bottom:8%; left:30%; width:40%; height:12%; background: linear-gradient(90deg, #B22222 0%, #DC143C 20%, #B22222 40%, #DC143C 60%, #B22222 80%, #DC143C 100%); border-radius: 30% 70% 20% 80% / 50% 50% 50% 50%; animation: mc3-rug 15s ease-in-out infinite alternate; }
@keyframes mc3-fire { 0% { filter:drop-shadow(0 0 10px #FF4500) } 50% { filter:drop-shadow(0 0 30px #FF6347) } 100% { filter:drop-shadow(0 0 10px #FF4500) } }
@keyframes mc3-sofa { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mc3-gesture { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(3px) rotate(3deg) } 60% { transform: translateX(6px) rotate(-2deg) } }
@keyframes mc3-table { 0%,100% { transform: perspective(80px) rotateX(8deg) translateY(0) } 50% { transform: perspective(80px) rotateX(10deg) translateY(-1px) } }
@keyframes mc3-lamp { 0% { opacity:.7; box-shadow: 0 0 20px 6px rgba(255,215,0,.4) } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,215,0,.7) } 100% { opacity:.8; box-shadow: 0 0 25px 8px rgba(255,215,0,.5) } }
@keyframes mc3-picture { 0% { filter:brightness(0.8) } 50% { filter:brightness(1) } 100% { filter:brightness(0.9) } }
@keyframes mc3-rug { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }

/* Scene: wondering-about-leithcourt (wl4) – sunset contemplation */
.scn-wondering-about-leithcourt {
  background: linear-gradient(180deg, #FF7F50 0%, #FF6347 30%, #8B0000 60%, #191970 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 70%);
}
.scn-wondering-about-leithcourt .sky-sunset { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #FF7F50 0%, #FF6347 40%, #FF4500 70%, #8B0000 100%); animation: wl4-sky 15s ease-in-out infinite alternate; }
.scn-wondering-about-leithcourt .sun { position:absolute; bottom:45%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #FFD700 0%, #FF8C00 30%, transparent 70%); border-radius:50%; filter:blur(6px); animation: wl4-sun 8s ease-in-out infinite alternate; }
.scn-wondering-about-leithcourt .hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #2F4F4F 0%, #1C1C1C 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: wl4-hills 20s ease-in-out infinite alternate; }
.scn-wondering-about-leithcourt .figure { position:absolute; bottom:30%; left:50%; width:20px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #1A1A1A 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wl4-figure 6s ease-in-out infinite; }
.scn-wondering-about-leithcourt .tree { position:absolute; bottom:32%; left:25%; width:12px; height:50px; background: linear-gradient(180deg, #2E2E2E 0%, #1A1A1A 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 20px 4px rgba(0,0,0,.4); transform-origin: bottom center; animation: wl4-tree 12s ease-in-out infinite alternate; }
.scn-wondering-about-leithcourt .grass { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3CB371 0%, #006400 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: wl4-grass 18s ease-in-out infinite alternate; }
.scn-wondering-about-leithcourt .cloud { position:absolute; top:10%; right:10%; width:60px; height:16px; background: linear-gradient(180deg, rgba(255,182,193,.5) 0%, rgba(255,182,193,.1) 100%); border-radius:50%; filter:blur(6px); animation: wl4-cloud 45s linear infinite; }
.scn-wondering-about-leithcourt .bird { position:absolute; top:25%; left:60%; width:20px; height:8px; background: linear-gradient(90deg, #1A1A1A 0%, transparent 100%); border-radius:50%; animation: wl4-bird 4s ease-in-out infinite; }
@keyframes wl4-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes wl4-sun { 0% { filter:blur(6px) brightness(1); transform:translateX(-50%) translateY(0) } 50% { filter:blur(3px) brightness(1.15); transform:translateX(-50%) translateY(-5px) } 100% { filter:blur(6px) brightness(1); transform:translateX(-50%) translateY(0) } }
@keyframes wl4-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes wl4-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) } }
@keyframes wl4-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes wl4-grass { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes wl4-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes wl4-bird { 0%,100% { transform: translateX(0) translateY(0) rotate(5deg) } 30% { transform: translateX(15px) translateY(-3px) rotate(-5deg) } 70% { transform: translateX(30px) translateY(1px) rotate(3deg) } }

/* petersburg-meeting-elma – tense, bright interior */
.scn-petersburg-meeting-elma {
  background:
    linear-gradient(180deg, #fff8e7 0%, #e8dcc8 60%, #c4b49a 100%),
    radial-gradient(ellipse at 30% 80%, #d4c4aa 0%, transparent 60%);
}
.scn-petersburg-meeting-elma .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(135deg, #f2ead5 0%, #daceb8 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.1);
}
.scn-petersburg-meeting-elma .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: repeating-linear-gradient(90deg, #9a8a74 0px, #9a8a74 4px, #b09e84 4px, #b09e84 8px);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
  animation: pm-floor 15s ease-in-out infinite;
}
.scn-petersburg-meeting-elma .table {
  position:absolute; bottom:18%; left:50%; width:120px; height:50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6b58 0%, #5a4e3e 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
  animation: pm-table 8s ease-in-out infinite;
}
.scn-petersburg-meeting-elma .chair-left {
  position:absolute; bottom:12%; left:28%; width:36px; height:55px;
  background: linear-gradient(180deg, #5a4e3e 0%, #3a3228 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: pm-chair 6s ease-in-out infinite alternate;
}
.scn-petersburg-meeting-elma .chair-right {
  position:absolute; bottom:12%; right:28%; width:36px; height:55px;
  background: linear-gradient(180deg, #5a4e3e 0%, #3a3228 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: pm-chair 6s ease-in-out infinite alternate-reverse;
}
.scn-petersburg-meeting-elma .lamp {
  position:absolute; top:5%; left:50%; width:18px; height:50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b09870 0%, #8a7a5e 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(220,200,160,0.5);
  animation: pm-lamp 4s ease-in-out infinite alternate;
}
.scn-petersburg-meeting-elma .glow {
  position:absolute; top:0; left:-20px; right:-20px; bottom:-30px;
  background: radial-gradient(circle at center, rgba(255,240,210,0.6) 0%, rgba(255,230,190,0.2) 60%, transparent 100%);
  pointer-events: none;
  animation: pm-glow 3s ease-in-out infinite alternate;
}
.scn-petersburg-meeting-elma .shadow {
  position:absolute; bottom:15%; left:30%; width:80px; height:30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: pm-shadow 10s ease-in-out infinite;
}
.scn-petersburg-meeting-elma .figure-left {
  position:absolute; bottom:6%; left:26%; width:28px; height:60px;
  background: linear-gradient(180deg, #3a3228 0%, #1a1610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure 1.5s ease-in-out infinite alternate;
}
.scn-petersburg-meeting-elma .figure-right {
  position:absolute; bottom:6%; right:26%; width:24px; height:56px;
  background: linear-gradient(180deg, #4a4034 0%, #2a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure 1.2s ease-in-out infinite alternate-reverse;
}
@keyframes pm-floor { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes pm-table { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg) } }
@keyframes pm-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes pm-lamp { 0% { opacity:0.85; transform: translateX(-50%) scaleY(1) } 50% { opacity:1; transform: translateX(-50%) scaleY(1.02) } 100% { opacity:0.9; transform: translateX(-50%) scaleY(0.98) } }
@keyframes pm-glow { 0% { opacity:0.7; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes pm-shadow { 0%,100% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(4px) scaleX(1.1) } }
@keyframes pm-figure { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1.5deg) } 100% { transform: rotate(0deg) } }

/* petersburg-love-confession – warm, bright interior */
.scn-petersburg-love-confession {
  background:
    linear-gradient(180deg, #fdebd0 0%, #f7d9b8 50%, #e8c4a0 100%),
    radial-gradient(ellipse at 40% 70%, #ffedc8 0%, transparent 60%);
}
.scn-petersburg-love-confession .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #f4dcc4 0%, #e0c4a8 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.05);
}
.scn-petersburg-love-confession .window {
  position:absolute; top:6%; left:20%; width:80px; height:100px;
  background: linear-gradient(180deg, #aaccee 0%, #cce5ff 100%);
  border-radius: 6px 6px 12px 12px;
  box-shadow: inset 0 0 30px rgba(255,255,230,0.8), 0 0 40px rgba(255,240,200,0.4);
  animation: pl-window 20s ease-in-out infinite;
}
.scn-petersburg-love-confession .curtain-left {
  position:absolute; top:4%; left:16%; width:30px; height:105px;
  background: linear-gradient(180deg, #e0b892 0%, #c09870 100%);
  border-radius: 50% 20% 40% 40% / 30% 20% 40% 40%;
  transform-origin: top center;
  animation: pl-curtain 10s ease-in-out infinite alternate;
}
.scn-petersburg-love-confession .curtain-right {
  position:absolute; top:4%; right:60%; width:30px; height:105px;
  background: linear-gradient(180deg, #e0b892 0%, #c09870 100%);
  border-radius: 20% 50% 40% 40% / 20% 30% 40% 40%;
  transform-origin: top center;
  animation: pl-curtain 12s ease-in-out infinite alternate-reverse;
}
.scn-petersburg-love-confession .sofa {
  position:absolute; bottom:5%; left:10%; width:120px; height:45px;
  background: linear-gradient(180deg, #b87878 0%, #9a5a5a 100%);
  border-radius: 20px 20px 8px 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: pl-sofa 6s ease-in-out infinite;
}
.scn-petersburg-love-confession .table-small {
  position:absolute; bottom:12%; left:45%; width:40px; height:30px;
  background: linear-gradient(180deg, #7a6b58 0%, #5a4e3e 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: pl-table 8s ease-in-out infinite alternate;
}
.scn-petersburg-love-confession .hands {
  position:absolute; bottom:18%; left:42%; width:50px; height:20px;
  background: radial-gradient(ellipse at 50% 50%, #f4dcc4 0%, #d4b89a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: blur(1px);
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  animation: pl-hands 4s ease-in-out infinite alternate;
}
.scn-petersburg-love-confession .lamp-small {
  position:absolute; top:20%; left:55%; width:14px; height:40px;
  background: linear-gradient(180deg, #b09870 0%, #8a7a5e 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(255,210,160,0.5);
  animation: pl-lamp 5s ease-in-out infinite alternate;
}
.scn-petersburg-love-confession .glow {
  position:absolute; top:-10px; left:-15px; right:-15px; bottom:-20px;
  background: radial-gradient(circle at center, rgba(255,230,190,0.5) 0%, rgba(255,220,170,0.15) 50%, transparent 100%);
  pointer-events: none;
  animation: pl-glow 3s ease-in-out infinite alternate;
}
@keyframes pl-window { 0%,100% { opacity:0.9; filter: brightness(1) } 50% { opacity:1; filter: brightness(1.1) } }
@keyframes pl-curtain { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(1.02) } 100% { transform: rotate(-2deg) scaleX(0.98) } }
@keyframes pl-sofa { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pl-table { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes pl-hands { 0% { transform: translateX(0) } 50% { transform: translateX(3px) translateY(-1px) } 100% { transform: translateX(-2px) } }
@keyframes pl-lamp { 0% { opacity:0.85; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.03) } 100% { opacity:0.9; transform: scaleY(0.97) } }
@keyframes pl-glow { 0% { opacity:0.7; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(1) } }

/* petersburg-declaration – warm, bright interior */
.scn-petersburg-declaration {
  background:
    linear-gradient(180deg, #fef5e7 0%, #f0dcc8 50%, #dfc4a8 100%),
    radial-gradient(ellipse at 60% 80%, #fde8d0 0%, transparent 50%);
}
.scn-petersburg-declaration .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(135deg, #f2ead5 0%, #daceb8 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.05);
}
.scn-petersburg-declaration .desk {
  position:absolute; bottom:18%; left:50%; width:140px; height:55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6b58 0%, #5a4e3e 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: pd-desk 9s ease-in-out infinite;
}
.scn-petersburg-declaration .paper {
  position:absolute; bottom:26%; left:50%; width:50px; height:35px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #fffaee 0%, #f5ecdc 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  animation: pd-paper 6s ease-in-out infinite alternate;
}
.scn-petersburg-declaration .hand-writing {
  position:absolute; bottom:26%; left:52%; width:12px; height:8px;
  background: linear-gradient(135deg, #3a3228 0%, #5a4e3e 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  filter: blur(1px);
  transform-origin: bottom center;
  animation: pd-hand 0.8s ease-in-out infinite alternate;
}
.scn-petersburg-declaration .chair {
  position:absolute; bottom:8%; left:50%; width:38px; height:60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4e3e 0%, #3a3228 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: pd-chair 5s ease-in-out infinite alternate;
}
.scn-petersburg-declaration .vase {
  position:absolute; bottom:32%; left:60%; width:10px; height:20px;
  background: linear-gradient(180deg, #b87878 0%, #9a5a5a 100%);
  border-radius: 20% 20% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: pd-vase 12s ease-in-out infinite;
}
.scn-petersburg-declaration .window-light {
  position:absolute; top:4%; left:60%; width:70px; height:90px;
  background: linear-gradient(180deg, #aaccee 0%, #cce5ff 100%);
  border-radius: 6px 6px 12px 12px;
  box-shadow: inset 0 0 30px rgba(255,255,230,0.6), 0 0 40px rgba(255,240,200,0.3);
  animation: pd-window 20s ease-in-out infinite;
}
.scn-petersburg-declaration .shadow-desk {
  position:absolute; bottom:12%; left:40%; width:80px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 80%);
  filter: blur(4px);
  animation: pd-shadow 8s ease-in-out infinite;
}
@keyframes pd-desk { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes pd-paper { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes pd-hand { 0% { transform: translate(0,0) rotate(-10deg) } 50% { transform: translate(2px,-2px) rotate(5deg) } 100% { transform: translate(0,0) rotate(-5deg) } }
@keyframes pd-chair { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-0.5deg) } }
@keyframes pd-vase { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes pd-window { 0%,100% { opacity:0.9; filter: brightness(1) } 50% { opacity:1; filter: brightness(1.15) } }
@keyframes pd-shadow { 0%,100% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(3px) scaleX(1.1) } }

/* petersburg-elma-notes – warm, bright interior */
.scn-petersburg-elma-notes {
  background:
    linear-gradient(180deg, #fef5e7 0%, #f0dcc8 50%, #dfc4a8 100%),
    radial-gradient(ellipse at 40% 80%, #fde8d0 0%, transparent 50%);
}
.scn-petersburg-elma-notes .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(135deg, #f2ead5 0%, #daceb8 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.05);
}
.scn-petersburg-elma-notes .table-round {
  position:absolute; bottom:22%; left:30%; width:90px; height:50px;
  background: linear-gradient(180deg, #7a6b58 0%, #5a4e3e 100%);
  border-radius: 50% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: pn-table 10s ease-in-out infinite;
}
.scn-petersburg-elma-notes .paper-notes {
  position:absolute; bottom:30%; left:30%; width:40px; height:30px;
  background: linear-gradient(180deg, #fffaee 0%, #f5ecdc 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  transform-origin: left center;
  animation: pn-paper 7s ease-in-out infinite alternate;
}
.scn-petersburg-elma-notes .pencil {
  position:absolute; bottom:32%; left:34%; width:16px; height:4px;
  background: linear-gradient(90deg, #c8a86e 0%, #e8c88e 50%, #c8a86e 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: pn-pencil 0.5s ease-in-out infinite alternate;
}
.scn-petersburg-elma-notes .figure-profile {
  position:absolute; bottom:8%; right:20%; width:30px; height:70px;
  background: linear-gradient(180deg, #4a4034 0%, #2a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pn-figure 3s ease-in-out infinite alternate;
}
.scn-petersburg-elma-notes .hand-hold {
  position:absolute; bottom:30%; right:38%; width:18px; height:14px;
  background: radial-gradient(ellipse, #f4dcc4 0%, #d4b89a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: blur(1px);
  transform-origin: top center;
  animation: pn-hand 0.8s ease-in-out infinite alternate;
}
.scn-petersburg-elma-notes .lamp-desk {
  position:absolute; top:12%; left:35%; width:16px; height:45px;
  background: linear-gradient(180deg, #b09870 0%, #8a7a5e 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 30% 30%;
  box-shadow: 0 0 25px 10px rgba(255,210,160,0.5);
  animation: pn-lamp 4s ease-in-out infinite alternate;
}
.scn-petersburg-elma-notes .glow {
  position:absolute; top:-10px; left:-20px; right:-20px; bottom:-30px;
  background: radial-gradient(circle at 50% 20%, rgba(255,230,190,0.4) 0%, rgba(255,220,170,0.1) 40%, transparent 70%);
  pointer-events: none;
  animation: pn-glow 3s ease-in-out infinite alternate;
}
.scn-petersburg-elma-notes .shadow-figure {
  position:absolute; bottom:2%; right:18%; width:50px; height:15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 80%);
  filter: blur(3px);
  animation: pn-shadow 6s ease-in-out infinite;
}
@keyframes pn-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pn-paper { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(-1px) rotate(-0.5deg) } }
@keyframes pn-pencil { 0% { transform: translateX(0) rotate(-15deg) } 100% { transform: translateX(2px) rotate(15deg) } }
@keyframes pn-figure { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(-0.5deg) translateY(0) } }
@keyframes pn-hand { 0% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(1px,-1px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes pn-lamp { 0% { opacity:0.85; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:0.9; transform: scaleY(0.98) } }
@keyframes pn-glow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pn-shadow { 0%,100% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(3px) scaleX(1.2) } }

/* Scene: suspicions-aroused */
.scn-suspicions-aroused {
  background: 
    linear-gradient(135deg, #f5e6ca 0%, #d9c9a3 40%, #b8a885 100%),
    radial-gradient(circle at 30% 20%, #fff8e0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  min-height: 300px;
}
.scn-suspicions-aroused .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a880 100%);
  opacity: 0.7;
}
.scn-suspicions-aroused .window-sa {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #a0c0e0 0%, #ffffff 60%, #d0e0f0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,255,255,0.3), 0 0 60px rgba(160,192,224,0.4);
  animation: sa-window 12s ease-in-out infinite alternate;
}
.scn-suspicions-aroused .desk-sa {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  transform: perspective(600px) rotateX(8deg);
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: sa-desk 8s ease-in-out infinite;
}
.scn-suspicions-aroused .papers {
  position: absolute; bottom: 22%; left: 38%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-2deg);
  animation: sa-papers 5s ease-in-out infinite alternate;
}
.scn-suspicions-aroused .chair {
  position: absolute; bottom: 12%; right: 20%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: sa-chair 6s ease-in-out infinite;
}
.scn-suspicions-aroused .shadow-figure {
  position: absolute; bottom: 15%; left: 30%; width: 12%; height: 30%;
  background: rgba(20,15,10,0.6);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  transform: skewX(-5deg);
  animation: sa-shadow 4s ease-in-out infinite alternate;
}
.scn-suspicions-aroused .lamp-sa {
  position: absolute; top: 20%; right: 25%; width: 8%; height: 15%;
  background: radial-gradient(circle at 50% 20%, #ffe080, #b08030);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 40px 10px #ffd060, 0 0 80px 20px rgba(255,208,96,0.3);
  animation: sa-lamp 3s ease-in-out infinite alternate;
}
.scn-suspicions-aroused .clock {
  position: absolute; top: 8%; left: 55%; width: 12%; height: 12%;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.2);
  animation: sa-clock 2s ease-in-out infinite;
}
@keyframes sa-window {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.2); }
  100% { filter: brightness(0.9); }
}
@keyframes sa-desk {
  0% { transform: perspective(600px) rotateX(8deg) translateY(0); }
  50% { transform: perspective(600px) rotateX(8deg) translateY(-2px); }
  100% { transform: perspective(600px) rotateX(8deg) translateY(0); }
}
@keyframes sa-papers {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(3px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes sa-chair {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes sa-shadow {
  0% { transform: skewX(-5deg) translateX(0); opacity: 0.6; }
  50% { transform: skewX(-5deg) translateX(4px); opacity: 0.8; }
  100% { transform: skewX(-5deg) translateX(0); opacity: 0.6; }
}
@keyframes sa-lamp {
  0% { box-shadow: 0 0 30px 8px #ffd060, 0 0 60px 15px rgba(255,208,96,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 50px 15px #ffe080, 0 0 100px 25px rgba(255,224,128,0.4); opacity: 1; }
  100% { box-shadow: 0 0 30px 8px #ffd060, 0 0 60px 15px rgba(255,208,96,0.2); opacity: 0.9; }
}
@keyframes sa-clock {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

/* Scene: suspicions-confirmed */
.scn-suspicions-confirmed {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 30% 40%, #3a3a5e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  min-height: 300px;
}
.scn-suspicions-confirmed .walls-sc {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a44 30%, #1a1a2e 100%);
  opacity: 0.8;
  animation: sc-walls 15s ease-in-out infinite alternate;
}
.scn-suspicions-confirmed .lamp-sc {
  position: absolute; top: 20%; left: 20%; width: 10%; height: 18%;
  background: radial-gradient(circle at 50% 30%, #fff0c0, #c09040);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 10px #e0a040, 0 0 80px 20px rgba(224,160,64,0.3);
  animation: sc-lamp 4s ease-in-out infinite alternate;
}
.scn-suspicions-confirmed .figure-sc {
  position: absolute; bottom: 10%; left: 35%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-figure 6s ease-in-out infinite;
}
.scn-suspicions-confirmed .documents {
  position: absolute; bottom: 20%; left: 28%; width: 20%; height: 5%;
  background: linear-gradient(180deg, #e8dcc0, #c8b090);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: sc-docs 5s ease-in-out infinite alternate;
}
.scn-suspicions-confirmed .safe {
  position: absolute; bottom: 15%; right: 15%; width: 18%; height: 20%;
  background: linear-gradient(180deg, #444 0%, #222 100%);
  border-radius: 4px;
  border: 2px solid #666;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.6);
  animation: sc-safe 10s ease-in-out infinite;
}
.scn-suspicions-confirmed .cabinet {
  position: absolute; bottom: 12%; right: 35%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: sc-cabinet 12s ease-in-out infinite alternate;
}
.scn-suspicions-confirmed .candle {
  position: absolute; top: 22%; left: 18%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #ffd080 0%, #b07030 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 15px 5px #ffc060, 0 0 30px 10px rgba(255,192,96,0.3);
  animation: sc-candle 3s ease-in-out infinite alternate;
}
@keyframes sc-walls {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes sc-lamp {
  0% { box-shadow: 0 0 30px 8px #e0a040, 0 0 60px 15px rgba(224,160,64,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 50px 15px #f0b060, 0 0 100px 25px rgba(240,176,96,0.4); opacity: 1; }
  100% { box-shadow: 0 0 30px 8px #e0a040, 0 0 60px 15px rgba(224,160,64,0.2); opacity: 0.9; }
}
@keyframes sc-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sc-docs {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes sc-safe {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}
@keyframes sc-cabinet {
  0% { filter: brightness(1); }
  50% { filter: brightness(0.9); }
  100% { filter: brightness(1); }
}
@keyframes sc-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.9; }
}

/* Scene: inquiry-leghorn */
.scn-inquiry-leghorn {
  background:
    linear-gradient(180deg, #0e1830 0%, #1a2a50 40%, #0e1830 100%),
    radial-gradient(ellipse at 50% 70%, #2a3a5a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  min-height: 300px;
}
.scn-inquiry-leghorn .cabin-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a2a3a 0%, #0a1a2a 100%);
  opacity: 0.8;
}
.scn-inquiry-leghorn .porthole {
  position: absolute; top: 8%; left: 65%; width: 25%; height: 35%;
  background: radial-gradient(circle at 50% 50%, #4a6a8a 0%, #1a2a4a 70%);
  border-radius: 50%;
  border: 6px solid #3a4a5a;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5), 0 0 40px rgba(74,106,138,0.3);
  overflow: hidden;
  animation: il-porthole 20s ease-in-out infinite alternate;
}
.scn-inquiry-leghorn .gunboat {
  position: absolute; bottom: 5%; left: 68%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: skewX(-5deg);
  animation: il-gunboat 8s ease-in-out infinite alternate;
}
.scn-inquiry-leghorn .map-il {
  position: absolute; bottom: 20%; left: 10%; width: 40%; height: 25%;
  background: linear-gradient(135deg, #d0c090, #a08060);
  border-radius: 4px;
  transform: rotate(-8deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: il-map 6s ease-in-out infinite alternate;
}
.scn-inquiry-leghorn .desk-il {
  position: absolute; bottom: 10%; left: 5%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px;
  transform: perspective(500px) rotateX(10deg);
  box-shadow: 0 6px 15px rgba(0,0,0,0.5);
}
.scn-inquiry-leghorn .figure-il {
  position: absolute; bottom: 10%; left: 20%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: il-figure 7s ease-in-out infinite;
}
.scn-inquiry-leghorn .lamp-il {
  position: absolute; top: 12%; left: 12%; width: 8%; height: 14%;
  background: radial-gradient(circle at 50% 30%, #ffe080, #c08030);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 8px #e0a040, 0 0 60px 15px rgba(224,160,64,0.3);
  animation: il-lamp 3s ease-in-out infinite alternate;
}
.scn-inquiry-leghorn .water-ripple {
  position: absolute; bottom: 0; left: 65%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(74,106,138,0.5) 0%, transparent 70%);
  animation: il-water 10s linear infinite;
}
@keyframes il-porthole {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.9); }
}
@keyframes il-gunboat {
  0% { transform: skewX(-5deg) translateX(0); }
  50% { transform: skewX(-5deg) translateX(3px); }
  100% { transform: skewX(-5deg) translateX(0); }
}
@keyframes il-map {
  0% { transform: rotate(-8deg) translateX(0); }
  50% { transform: rotate(-6deg) translateX(4px); }
  100% { transform: rotate(-8deg) translateX(0); }
}
@keyframes il-figure {
  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 il-lamp {
  0% { box-shadow: 0 0 25px 6px #e0a040, 0 0 50px 12px rgba(224,160,64,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 45px 12px #f0b060, 0 0 80px 20px rgba(240,176,96,0.35); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #e0a040, 0 0 50px 12px rgba(224,160,64,0.2); opacity: 0.9; }
}
@keyframes il-water {
  0% { transform: translateY(0); }
  100% { transform: translateY(-10px); }
}

/* Scene: despatches-missing */
.scn-despatches-missing {
  background:
    linear-gradient(180deg, #151a2a 0%, #1a2030 50%, #151a2a 100%),
    radial-gradient(circle at 40% 30%, #2a3040 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  min-height: 300px;
}
.scn-despatches-missing .bg-dm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a2030 0%, #0e1420 100%);
  opacity: 0.8;
}
.scn-despatches-missing .desk-dm {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 6px;
  transform: perspective(600px) rotateX(8deg);
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: dm-desk 9s ease-in-out infinite;
}
.scn-despatches-missing .drawer {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: translateX(-15px);
  animation: dm-drawer 6s ease-in-out infinite alternate;
}
.scn-despatches-missing .dispatch-slot {
  position: absolute; bottom: 25%; left: 45%; width: 10%; height: 3%;
  background: #2a1a0a;
  box-shadow: inset 0 0 8px #0a0a0a, 0 0 4px #000;
  animation: dm-slot 8s ease-in-out infinite;
}
.scn-despatches-missing .hand {
  position: absolute; bottom: 18%; left: 25%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform-origin: 20% 100%;
  animation: dm-hand 5s ease-in-out infinite alternate;
}
.scn-despatches-missing .lamp-dm {
  position: absolute; top: 15%; left: 30%; width: 8%; height: 14%;
  background: radial-gradient(circle at 50% 20%, #ffe080, #b07030);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 8px #d09040, 0 0 60px 15px rgba(208,144,64,0.3);
  animation: dm-lamp 3.5s ease-in-out infinite alternate;
}
.scn-despatches-missing .clock-dm {
  position: absolute; top: 8%; right: 20%; width: 10%; height: 10%;
  background: linear-gradient(180deg, #a08060, #705040);
  border-radius: 50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4), 0 2px 6px rgba(0,0,0,0.3);
  animation: dm-clock 2s ease-in-out infinite;
}
.scn-despatches-missing .shadows {
  position: absolute; bottom: 15%; left: 0; width: 100%; height: 25%;
  background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: dm-shadows 12s ease-in-out infinite alternate;
}
@keyframes dm-desk {
  0% { transform: perspective(600px) rotateX(8deg) translateY(0); }
  50% { transform: perspective(600px) rotateX(8deg) translateY(-2px); }
  100% { transform: perspective(600px) rotateX(8deg) translateY(0); }
}
@keyframes dm-drawer {
  0% { transform: translateX(-15px); }
  50% { transform: translateX(-10px); }
  100% { transform: translateX(-15px); }
}
@keyframes dm-slot {
  0% { filter: brightness(1); }
  50% { filter: brightness(0.7); }
  100% { filter: brightness(1); }
}
@keyframes dm-hand {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes dm-lamp {
  0% { box-shadow: 0 0 25px 6px #d09040, 0 0 50px 12px rgba(208,144,64,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 45px 12px #e0a050, 0 0 80px 20px rgba(224,160,80,0.35); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #d09040, 0 0 50px 12px rgba(208,144,64,0.2); opacity: 0.9; }
}
@keyframes dm-clock {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}
@keyframes dm-shadows {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* police‑revelations */
.scn-police-revelations {
  background: linear-gradient(180deg, #efe4d0 0%, #d4c4a0 40%, #b8a880 100%), radial-gradient(ellipse at 50% 70%, #f0e0c0 0%, transparent 70%);
}
.scn-police-revelations .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 34%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b3e 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.3);
}
.scn-police-revelations .lamp {
  position: absolute; bottom: 34%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a30 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 10px #f0c060;
  animation: pr-lamp 3s ease-in-out infinite alternate;
}
.scn-police-revelations .figure {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pr-figure 4s ease-in-out infinite;
}
.scn-police-revelations .window {
  position: absolute; top: 8%; right: 8%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #b0c8e0 0%, #8098b0 100%);
  border: 4px solid #5a4a3a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.2);
  animation: pr-window 12s ease-in-out infinite alternate;
}
.scn-police-revelations .paper {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 40px;
  background: #f0e8d0; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  transform-origin: left center;
  animation: pr-paper 5s ease-in-out infinite;
}
.scn-police-revelations .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%);
  border-radius: 50% / 20% 20% 0 0;
  animation: pr-shadow 4s ease-in-out infinite alternate;
}
@keyframes pr-lamp {
  0% { box-shadow: 0 0 20px 5px #f0c060; }
  50% { box-shadow: 0 0 40px 15px #ffd070; }
  100% { box-shadow: 0 0 25px 8px #e0b050; }
}
@keyframes pr-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-2px) rotate(0.5deg); }
  60% { transform: translateY(1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes pr-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pr-paper {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes pr-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

/* man‑and‑woman‑ashore */
.scn-man-and-woman-ashore {
  background: linear-gradient(180deg, #121a2e 0%, #1a2a44 60%, #0e1a2e 100%), radial-gradient(ellipse at 50% 100%, #1a3a5a 0%, transparent 80%);
}
.scn-man-and-woman-ashore .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a1020 0%, #1a2a44 100%);
  animation: mw-sky 20s ease-in-out infinite alternate;
}
.scn-man-and-woman-ashore .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a3a5a 0%, #0a1a2e 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: mw-water 6s ease-in-out infinite alternate;
}
.scn-man-and-woman-ashore .figure-man {
  position: absolute; bottom: 30%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  animation: mw-figure 5s ease-in-out infinite;
}
.scn-man-and-woman-ashore .figure-woman {
  position: absolute; bottom: 30%; left: 40%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  animation: mw-figure 5s ease-in-out infinite reverse;
}
.scn-man-and-woman-ashore .ship {
  position: absolute; bottom: 45%; right: 10%; width: 50px; height: 20px;
  background: #0a0a1a; border-radius: 60% 20% 20% 60%;
  box-shadow: inset 0 -4px 0 #1a1a2e;
  animation: mw-ship 15s linear infinite;
}
.scn-man-and-woman-ashore .cloud {
  position: absolute; top: 15%; left: 5%; width: 80px; height: 20px;
  background: rgba(200,210,230,0.3); border-radius: 50%;
  filter: blur(6px);
  animation: mw-cloud 35s linear infinite;
}
.scn-man-and-woman-ashore .moon {
  position: absolute; top: 10%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 80%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,210,230,0.4);
  animation: mw-moon 8s ease-in-out infinite alternate;
}
@keyframes mw-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes mw-water {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(1px) scaleX(0.98); }
}
@keyframes mw-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(1px) rotate(-0.5deg); }
  75% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mw-ship {
  0% { transform: translateX(0px); }
  100% { transform: translateX(-120px); }
}
@keyframes mw-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(100vw); }
}
@keyframes mw-moon {
  0% { box-shadow: 0 0 20px 5px rgba(200,210,230,0.3); }
  50% { box-shadow: 0 0 40px 15px rgba(200,210,230,0.6); }
  100% { box-shadow: 0 0 25px 8px rgba(200,210,230,0.4); }
}

/* safe‑burglary‑connection */
.scn-safe-burglary-connection {
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 40%, #b09878 100%), radial-gradient(ellipse at 60% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-safe-burglary-connection .safe {
  position: absolute; left: 50%; top: 15%; width: 120px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6% 6% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  box-shadow: inset 0 4px 8px rgba(255,255,255,0.1), 0 8px 20px rgba(0,0,0,0.4);
  animation: sb-safe 6s ease-in-out infinite alternate;
}
.scn-safe-burglary-connection .dial {
  position: absolute; left: 50%; top: 45%; width: 30px; height: 30px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #c0a880 0%, #8a7058 100%);
  border-radius: 50%; border: 3px solid #3a2a1a;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: sb-dial 4s ease-in-out infinite;
}
.scn-safe-burglary-connection .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.2);
}
.scn-safe-burglary-connection .figure {
  position: absolute; bottom: 20%; left: 20%; width: 36px; height: 72px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: sb-figure 3.5s ease-in-out infinite;
}
.scn-safe-burglary-connection .keys {
  position: absolute; bottom: 18%; left: 60%; width: 12px; height: 20px;
  background: #b08040; border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sb-keys 2.5s ease-in-out infinite alternate;
}
.scn-safe-burglary-connection .lamp {
  position: absolute; top: 12%; left: 10%; width: 16px; height: 30px;
  background: #c8a060; border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 6px #f0c060;
  animation: sb-lamp 3s ease-in-out infinite alternate;
}
.scn-safe-burglary-connection .window {
  position: absolute; top: 5%; right: 8%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #b8d0e8 0%, #90a8c0 100%);
  border: 3px solid #5a4a3a; border-radius: 2px;
  animation: sb-window 10s ease-in-out infinite alternate;
}
@keyframes sb-safe {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.01); }
  100% { transform: translateX(-50%) scale(0.99); }
}
@keyframes sb-dial {
  0% { transform: translate(-50%, -50%) rotate(0deg); }
  25% { transform: translate(-50%, -50%) rotate(10deg); }
  50% { transform: translate(-50%, -50%) rotate(-5deg); }
  75% { transform: translate(-50%, -50%) rotate(8deg); }
  100% { transform: translate(-50%, -50%) rotate(0deg); }
}
@keyframes sb-figure {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-2px) rotate(2deg); }
  40% { transform: translateY(1px) rotate(-1deg); }
  60% { transform: translateY(-1px) rotate(1deg); }
  80% { transform: translateY(2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sb-keys {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(10deg); }
  100% { transform: translateY(1px) rotate(-10deg); }
}
@keyframes sb-lamp {
  0% { box-shadow: 0 0 15px 4px #f0c060; }
  50% { box-shadow: 0 0 35px 12px #ffd070; }
  100% { box-shadow: 0 0 20px 6px #e0b050; }
}
@keyframes sb-window {
  0% { opacity: 0.7; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.8; filter: brightness(1); }
}

/* questura‑investigation */
.scn-questura-investigation {
  background: linear-gradient(180deg, #e6ddd0 0%, #c8bfb0 50%, #a89f90 100%), radial-gradient(ellipse at 40% 30%, #f0e8d8 0%, transparent 60%);
}
.scn-questura-investigation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(90deg, #9a8a7a 0%, #b8a898 25%, #9a8a7a 50%, #b8a898 75%, #9a8a7a 100%);
  background-size: 100px 100%; border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  animation: qi-floor 8s linear infinite;
}
.scn-questura-investigation .desk-a {
  position: absolute; bottom: 30%; left: 10%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: qi-desk 6s ease-in-out infinite alternate;
}
.scn-questura-investigation .desk-b {
  position: absolute; bottom: 30%; right: 10%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: qi-desk 6s ease-in-out infinite alternate reverse;
}
.scn-questura-investigation .chair {
  position: absolute; bottom: 22%; left: 22%; width: 30px; height: 40px;
  background: #3a2a1a; border-radius: 30% 30% 10% 10%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
}
.scn-questura-investigation .figure {
  position: absolute; bottom: 16%; left: 30%; width: 32px; height: 64px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  animation: qi-figure 4.5s ease-in-out infinite;
}
.scn-questura-investigation .safe {
  position: absolute; right: 15%; top: 15%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.05), 0 4px 12px rgba(0,0,0,0.3);
}
.scn-questura-investigation .light {
  position: absolute; top: 0; left: 30%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #f0e0a0 0%, transparent 70%);
  opacity: 0.4;
  animation: qi-light 5s ease-in-out infinite alternate;
}
.scn-questura-investigation .file {
  position: absolute; bottom: 25%; left: 6%; width: 12px; height: 8px;
  background: #d0c0a0; border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: qi-file 3s ease-in-out infinite;
}
@keyframes qi-floor {
  0% { background-position: 0 0; }
  100% { background-position: 100px 0; }
}
@keyframes qi-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes qi-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(1px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes qi-light {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes qi-file {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

/* petersburg-kampf-leithcourt */
.scn-petersburg-kampf-leithcourt {
  background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 40%, #a09070 100%),
              radial-gradient(ellipse at 50% 20%, #f0e8d8 0%, transparent 60%);
}
.scn-petersburg-kampf-leithcourt .pl-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d0c8b8 0%, #b8a890 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
  animation: pl-wall-pulse 10s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-leithcourt .pl-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4%;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.3);
}
.scn-petersburg-kampf-leithcourt .pl-table {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 40px;
  transform: translate(-50%, 0);
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: pl-table-sway 6s ease-in-out infinite;
}
.scn-petersburg-kampf-leithcourt .pl-figure-left {
  position: absolute; bottom: 22%; left: 32%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a2220 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pl-figure-left 4s ease-in-out infinite;
}
.scn-petersburg-kampf-leithcourt .pl-figure-right {
  position: absolute; bottom: 22%; right: 32%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a3028 0%, #181410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pl-figure-right 4.5s ease-in-out infinite;
}
.scn-petersburg-kampf-leithcourt .pl-lamp {
  position: absolute; bottom: 40%; left: 48%; width: 12px; height: 20px;
  background: radial-gradient(circle, #f0d060 0%, #c09030 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(192,144,48,0.6), 0 0 60px 20px rgba(192,144,48,0.3);
  animation: pl-lamp-flicker 2.5s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-leithcourt .pl-window {
  position: absolute; top: 12%; right: 15%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 40%, #d0d8e8 0%, #8088a0 70%);
  border: 4px solid #6a5a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: pl-window-bright 8s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-leithcourt .pl-curtain {
  position: absolute; top: 8%; right: 13%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #8a5030 0%, #6a3820 50%, #4a2010 100%);
  border-radius: 0 40% 0 40%;
  filter: blur(1px);
  animation: pl-curtain-sway 12s ease-in-out infinite alternate;
}
@keyframes pl-wall-pulse { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pl-table-sway { 0%,100% { transform: translate(-50%,0) scale(1); } 50% { transform: translate(-50%,-2px) scale(1.01); } }
@keyframes pl-figure-left { 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(-2deg); } }
@keyframes pl-figure-right { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-2px) rotate(-1deg); } 60% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes pl-lamp-flicker { 0% { opacity:0.7; box-shadow:0 0 20px 6px rgba(192,144,48,0.5); } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(240,208,96,0.8); } 100% { opacity:0.8; box-shadow:0 0 25px 8px rgba(192,144,48,0.6); } }
@keyframes pl-window-bright { 0% { opacity:0.8; transform: scale(0.95); } 50% { opacity:1; transform: scale(1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes pl-curtain-sway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }

/* petersburg-kampf-invite */
.scn-petersburg-kampf-invite {
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 50%, #b0a090 100%),
              radial-gradient(circle at 60% 30%, #f5efe0 0%, transparent 70%);
}
.scn-petersburg-kampf-invite .pi-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d8cec0 0%, #c0b0a0 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.1);
  animation: pi-bg-shift 14s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-invite .pi-desk {
  position: absolute; bottom: 30%; left: 20%; width: 140px; height: 30px;
  background: linear-gradient(180deg, #705a40 0%, #503820 100%);
  border-radius: 4px;
  box-shadow: 0 6px 14px rgba(0,0,0,0.3);
}
.scn-petersburg-kampf-invite .pi-figure-standing {
  position: absolute; bottom: 20%; left: 30%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a2220 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pi-standing 5s ease-in-out infinite;
}
.scn-petersburg-kampf-invite .pi-figure-seated {
  position: absolute; bottom: 25%; left: 55%; width: 34px; height: 40px;
  background: linear-gradient(180deg, #3a3028 0%, #181410 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: pi-seated 5.5s ease-in-out infinite;
}
.scn-petersburg-kampf-invite .pi-candle {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #f0e0a0 0%, #c8a040 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 10px rgba(200,160,64,0.6);
  animation: pi-candle-flicker 2s ease-in-out infinite alternate;
}
.scn-petersburg-kampf-invite .pi-letter {
  position: absolute; bottom: 32%; left: 42%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #f5efe0 0%, #e0d0b8 100%);
  border-radius: 2px;
  box-shadow: 3px 3px 6px rgba(0,0,0,0.2);
  transform: rotate(-8deg);
  animation: pi-letter-shiver 7s ease-in-out infinite;
}
.scn-petersburg-kampf-invite .pi-mirror {
  position: absolute; top: 12%; right: 12%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #c0c8d0 0%, #9098a8 100%);
  border: 4px solid #8a7a6a;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.4);
  animation: pi-mirror-glimmer 12s ease-in-out infinite alternate;
}
@keyframes pi-bg-shift { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pi-standing { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes pi-seated { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 33% { transform: translateX(-3px) rotate(3deg) scaleY(1.02); } 66% { transform: translateX(2px) rotate(-2deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes pi-candle-flicker { 0% { opacity:0.8; box-shadow:0 0 20px 6px rgba(200,160,64,0.5); } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(240,208,80,0.8); } 100% { opacity:0.7; box-shadow:0 0 25px 8px rgba(200,160,64,0.4); } }
@keyframes pi-letter-shiver { 0%,100% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(-6deg) scale(1.02); } }
@keyframes pi-mirror-glimmer { 0% { opacity:0.7; box-shadow:inset 0 0 20px rgba(255,255,255,0.2); } 50% { opacity:1; box-shadow:inset 0 0 50px rgba(255,255,255,0.6); } 100% { opacity:0.8; box-shadow:inset 0 0 30px rgba(255,255,255,0.3); } }

/* petersburg-santini-story */
.scn-petersburg-santini-story {
  background: linear-gradient(180deg, #d8cfc0 0%, #b8a890 50%, #a09078 100%),
              radial-gradient(ellipse at 40% 60%, #f0e8d8 0%, transparent 60%);
}
.scn-petersburg-santini-story .ps-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8bca8 0%, #a89880 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.12);
  animation: ps-wall-fade 16s ease-in-out infinite alternate;
}
.scn-petersburg-santini-story .ps-sofa {
  position: absolute; bottom: 22%; left: 40%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 20px 20px 8px 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: ps-sofa-settle 9s ease-in-out infinite;
}
.scn-petersburg-santini-story .ps-figure1 {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 46px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-fig1 4.2s ease-in-out infinite;
}
.scn-petersburg-santini-story .ps-figure2 {
  position: absolute; bottom: 22%; left: 56%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #4a3828 0%, #221810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-fig2 4.8s ease-in-out infinite;
}
.scn-petersburg-santini-story .ps-lamp {
  position: absolute; bottom: 38%; left: 30%; width: 14px; height: 22px;
  background: radial-gradient(circle at 50% 40%, #f0d060 0%, #c09030 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(192,144,48,0.5);
  animation: ps-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-petersburg-santini-story .ps-books {
  position: absolute; bottom: 34%; right: 20%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #6a5030 0%, #4a3820 50%, #3a2818 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: ps-books-tilt 20s ease-in-out infinite alternate;
}
.scn-petersburg-santini-story .ps-door {
  position: absolute; top: 8%; right: 8%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 0 20% 0 0;
  border-left: 3px solid #5a4a3a;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
  animation: ps-door-shake 11s ease-in-out infinite;
}
@keyframes ps-wall-fade { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ps-sofa-settle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ps-fig1 { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ps-fig2 { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-3px) rotate(-1deg); } 60% { transform: translateX(-6px) rotate(1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ps-lamp-glow { 0% { opacity:0.7; box-shadow:0 0 20px 6px rgba(192,144,48,0.4); } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(240,208,80,0.8); } 100% { opacity:0.8; box-shadow:0 0 25px 8px rgba(192,144,48,0.5); } }
@keyframes ps-books-tilt { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes ps-door-shake { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }

/* petersburg-no-suspicion */
.scn-petersburg-no-suspicion {
  background: linear-gradient(180deg, #ece4d8 0%, #d0c0a8 40%, #b8a890 100%),
              radial-gradient(ellipse at 50% 40%, #f8f0e0 0%, transparent 70%);
}
.scn-petersburg-no-suspicion .pn-bg {
  position: absolute; inset: 0 0 32% 0;
  background: linear-gradient(180deg, #d8cebc 0%, #b8a894 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.08);
  animation: pn-bg-pulse 18s ease-in-out infinite alternate;
}
.scn-petersburg-no-suspicion .pn-window {
  position: absolute; top: 10%; left: 20%; width: 70px; height: 90px;
  background: radial-gradient(ellipse at 50% 40%, #c8d0e0 0%, #8890a8 70%);
  border: 4px solid #7a6a5a;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3);
  animation: pn-window-light 9s ease-in-out infinite alternate;
}
.scn-petersburg-no-suspicion .pn-curtain {
  position: absolute; top: 8%; left: 18%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #a8563a 0%, #7a3822 50%, #4a1c12 100%);
  border-radius: 40% 0 0 40%;
  filter: blur(2px);
  animation: pn-curtain-sway 13s ease-in-out infinite alternate;
}
.scn-petersburg-no-suspicion .pn-table {
  position: absolute; bottom: 25%; left: 50%; width: 130px; height: 36px;
  transform: translate(-50%, 0);
  background: linear-gradient(180deg, #806a50 0%, #5a4830 100%);
  border-radius: 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.35);
  animation: pn-table-shift 7s ease-in-out infinite;
}
.scn-petersburg-no-suspicion .pn-figure-a {
  position: absolute; bottom: 20%; left: 30%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #2a2220 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pn-figA 4.5s ease-in-out infinite;
}
.scn-petersburg-no-suspicion .pn-figure-b {
  position: absolute; bottom: 20%; left: 45%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a3028 0%, #181410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pn-figB 5s ease-in-out infinite;
}
.scn-petersburg-no-suspicion .pn-figure-c {
  position: absolute; bottom: 20%; left: 60%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a20 0%, #120e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pn-figC 5.5s ease-in-out infinite;
}
.scn-petersburg-no-suspicion .pn-teacup {
  position: absolute; bottom: 26%; left: 52%; width: 16px; height: 14px;
  background: radial-gradient(circle, #f0e0d0 0%, #d0c0a8 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: pn-teacup-rise 8s ease-in-out infinite alternate;
}
@keyframes pn-bg-pulse { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pn-window-light { 0% { opacity:0.75; transform: scale(0.96); } 50% { opacity:1; transform: scale(1); } 100% { opacity:0.8; transform: scale(0.97); } }
@keyframes pn-curtain-sway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes pn-table-shift { 0%,100% { transform: translate(-50%,0) scale(1); } 50% { transform: translate(-50%,-2px) scale(1.01); } }
@keyframes pn-figA { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes pn-figB { 0% { transform: translateX(0) rotate(1deg); } 30% { transform: translateX(-4px) rotate(-2deg); } 60% { transform: translateX(-8px) rotate(1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes pn-figC { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(5px) rotate(2deg); } 66% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pn-teacup-rise { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }

/* PALACE OBERG FEAR */
.scn-palace-oberg-fear {
  background: linear-gradient(180deg, #c09160 0%, #8a6a40 40%, #604030 100%),
              radial-gradient(ellipse at 50% 30%, #e0b080 0%, transparent 60%);
}
.scn-palace-oberg-fear .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b88a60 0%, #9a7a50 60%, transparent);
}
.scn-palace-oberg-fear .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-palace-oberg-fear .wall-panel {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(135deg, #c09060 0%, #a07040 50%, #805030 100%);
  border-radius: 4px; box-shadow: inset 0 2px 8px rgba(0,0,0,.3);
  animation: pof-panel 12s ease-in-out infinite;
}
.scn-palace-oberg-fear .lamp {
  position: absolute; bottom: 35%; left: 15%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #e0b080 0%, #c08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px #e0b060, 0 0 60px 20px rgba(224,176,96,.3);
  animation: pof-lamp 3s ease-in-out infinite alternate;
}
.scn-palace-oberg-fear .elma-figure {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pof-elma 4s ease-in-out infinite;
}
.scn-palace-oberg-fear .oberg-shadow {
  position: absolute; bottom: 20%; left: 60%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: 0.6; transform-origin: bottom center;
  animation: pof-shadow 8s ease-in-out infinite;
}
.scn-palace-oberg-fear .shadow-bars {
  position: absolute; top: 10%; left: 70%; width: 30px; height: 80px;
  background: repeating-linear-gradient(0deg, transparent 2px, #1a1a1a 2px, #1a1a1a 6px, transparent 6px, transparent 10px);
  opacity: 0.4; animation: pof-bars 15s linear infinite;
}
@keyframes pof-panel { 0% { opacity:0.8; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.02) } 100% { opacity:0.85; transform:scaleY(0.98) } }
@keyframes pof-lamp { 0% { box-shadow: 0 0 20px 5px #e0b060, 0 0 40px 10px rgba(224,176,96,.2); opacity:0.7 } 50% { box-shadow: 0 0 40px 15px #e0b060, 0 0 80px 30px rgba(224,176,96,.4); opacity:1 } 100% { box-shadow: 0 0 25px 7px #e0b060, 0 0 50px 15px rgba(224,176,96,.25); opacity:0.75 } }
@keyframes pof-elma { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes pof-shadow { 0% { transform: scale(1); opacity:0.5 } 50% { transform: scale(1.05); opacity:0.7 } 100% { transform: scale(0.97); opacity:0.55 } }
@keyframes pof-bars { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }

/* PALACE OBERG SINISTER SMILE */
.scn-palace-oberg-sinister-smile {
  background: linear-gradient(180deg, #c8a070 0%, #a08050 40%, #7a5a3a 100%),
              radial-gradient(ellipse at 50% 20%, #e8c090 0%, transparent 70%);
}
.scn-palace-oberg-sinister-smile .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #ba9060 0%, transparent 100%);
}
.scn-palace-oberg-sinister-smile .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-palace-oberg-sinister-smile .paper {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #f0d8b0 0%, #d8b890 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  animation: pos-paper 6s ease-in-out infinite;
}
.scn-palace-oberg-sinister-smile .hand {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c8a080 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pos-hand 4s ease-in-out infinite;
}
.scn-palace-oberg-sinister-smile .candle {
  position: absolute; bottom: 30%; right: 20%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8c090 0%, #a07040 100%);
  border-radius: 20% 20% 10% 10%;
  animation: pos-candle 3s ease-in-out infinite alternate;
}
.scn-palace-oberg-sinister-smile .candle-glow {
  position: absolute; bottom: 30%; right: 18%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd090 0%, #e0a060 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #e0a060;
  animation: pos-glow 2s ease-in-out infinite alternate;
}
.scn-palace-oberg-sinister-smile .shadow-sneer {
  position: absolute; bottom: 40%; left: 50%; width: 40px; height: 10px;
  background: #1a1a1a; border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: translateX(-50%) rotate(5deg);
  opacity: 0.6; animation: pos-sneer 5s ease-in-out infinite;
}
@keyframes pos-paper { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes pos-hand { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-5px) rotate(-5deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pos-candle { 0% { transform: scaleY(1); opacity:0.7 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(0.95); opacity:0.75 } }
@keyframes pos-glow { 0% { opacity:0.5; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.6; transform: scale(0.95) } }
@keyframes pos-sneer { 0% { transform: translateX(-50%) rotate(5deg) scaleX(1) } 50% { transform: translateX(-50%) rotate(8deg) scaleX(1.2) } 100% { transform: translateX(-50%) rotate(5deg) scaleX(1) } }

/* PALACE OBERG DISINTEREST */
.scn-palace-oberg-disinterest {
  background: linear-gradient(180deg, #b88a60 0%, #9a7a50 40%, #6a4a30 100%),
              radial-gradient(ellipse at 50% 60%, #d8b080 0%, transparent 70%);
}
.scn-palace-oberg-disinterest .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #aa8060 0%, transparent 100%);
}
.scn-palace-oberg-disinterest .window {
  position: absolute; top: 10%; right: 20%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #c0a080 0%, #b09070 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,.2);
  animation: pod-window 20s ease-in-out infinite;
}
.scn-palace-oberg-disinterest .desk {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-palace-oberg-disinterest .chair {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: pod-chair 8s ease-in-out infinite;
}
.scn-palace-oberg-disinterest .figure-back {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pod-figure 10s ease-in-out infinite;
}
.scn-palace-oberg-disinterest .papers {
  position: absolute; bottom: 22%; left: 35%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #f0d8b0 0%, #d8b890 100%);
  border-radius: 2px; box-shadow: 1px 1px 4px rgba(0,0,0,.3);
  animation: pod-papers 5s ease-in-out infinite;
}
.scn-palace-oberg-disinterest .quill {
  position: absolute; bottom: 25%; left: 40%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #c8a080 0%, #806040 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: pod-quill 3s ease-in-out infinite;
}
@keyframes pod-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pod-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes pod-figure { 0% { transform: rotate(0deg) } 25% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes pod-papers { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(2px) scale(1.02) } 100% { transform: translateX(0) scale(1) } }
@keyframes pod-quill { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }

/* PALACE ACCUSATION SIENA */
.scn-palace-accusation-siena {
  background: linear-gradient(180deg, #c09868 0%, #a07a48 40%, #705030 100%),
              radial-gradient(ellipse at 50% 50%, #d8b080 0%, transparent 70%);
}
.scn-palace-accusation-siena .room-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #b08a60 0%, transparent 100%);
}
.scn-palace-accusation-siena .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-palace-accusation-siena .figure-left {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pas-left 6s ease-in-out infinite;
}
.scn-palace-accusation-siena .figure-right {
  position: absolute; bottom: 15%; right: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pas-right 6s ease-in-out infinite reverse;
}
.scn-palace-accusation-siena .document {
  position: absolute; bottom: 22%; left: 50%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #f0d8b0 0%, #d8b890 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.3);
  transform: translateX(-50%);
  animation: pas-doc 4s ease-in-out infinite;
}
.scn-palace-accusation-siena .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 12px; height: 25px;
  background: linear-gradient(180deg, #e0b080 0%, #c08040 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 5px #e0b060, 0 0 50px 15px rgba(224,176,96,.3);
  animation: pas-lamp 3s ease-in-out infinite alternate;
}
.scn-palace-accusation-siena .lamp-glow {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd090 0%, #e0a060 30%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 60px 20px rgba(224,176,96,.2);
  animation: pas-glow 2s ease-in-out infinite alternate;
}
@keyframes pas-left { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(3deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pas-right { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-5px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pas-doc { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes pas-lamp { 0% { opacity:0.6; box-shadow: 0 0 15px 3px #e0b060, 0 0 30px 8px rgba(224,176,96,.2) } 50% { opacity:1; box-shadow: 0 0 30px 10px #e0b060, 0 0 60px 20px rgba(224,176,96,.4) } 100% { opacity:0.7; box-shadow: 0 0 20px 5px #e0b060, 0 0 40px 10px rgba(224,176,96,.25) } }
@keyframes pas-glow { 0% { opacity:0.3; transform: translate(-50%, -50%) scale(0.9) } 50% { opacity:0.6; transform: translate(-50%, -50%) scale(1.1) } 100% { opacity:0.4; transform: translate(-50%, -50%) scale(1) } }

.scn-palace-love-anxiety {
  background: linear-gradient(180deg, #c8a078 0%, #8b6d4d 100%), radial-gradient(ellipse at 50% 0%, #f0d8b0 0%, transparent 60%);
}
.scn-palace-love-anxiety .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #a3805a 0%, #5a3d28 100%);
}
.scn-palace-love-anxiety .window {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 40%;
  background: radial-gradient(circle at 50% 30%, #ffe8c0 0%, #c09060 60%, #5a3d28 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 0 2px #8b6d4d, 0 0 40px 10px #ffe8c0;
  animation: pla-window-glow 6s ease-in-out infinite alternate;
}
.scn-palace-love-anxiety .curtain-left {
  position: absolute; top: 10%; left: 0; width: 20%; height: 40%;
  background: linear-gradient(90deg, #7a3a1a 0%, #4a2010 100%);
  border-radius: 0 10px 10px 0;
  animation: pla-curtain 8s ease-in-out infinite alternate;
}
.scn-palace-love-anxiety .curtain-right {
  position: absolute; top: 10%; right: 0; width: 20%; height: 40%;
  background: linear-gradient(270deg, #7a3a1a 0%, #4a2010 100%);
  border-radius: 10px 0 0 10px;
  animation: pla-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-palace-love-anxiety .table {
  position: absolute; bottom: 18%; left: 50%; width: 60%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%);
  border-radius: 0 0 12px 12px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-palace-love-anxiety .candle {
  position: absolute; bottom: 24%; left: 45%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #c09050 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 6px #ffd070;
  animation: pla-candle 4s ease-in-out infinite alternate;
}
.scn-palace-love-anxiety .figure-sitting {
  position: absolute; bottom: 14%; left: 30%; 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 center;
  animation: pla-figure 6s ease-in-out infinite;
}
.scn-palace-love-anxiety .letter {
  position: absolute; bottom: 20%; left: 55%; width: 12%; height: 6%;
  background: linear-gradient(135deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: pla-letter 8s ease-in-out infinite alternate;
}
@keyframes pla-window-glow {
  0% { opacity: 0.8; box-shadow: inset 0 0 0 2px #8b6d4d, 0 0 30px 6px #ffe8c0; }
  50% { opacity: 1; box-shadow: inset 0 0 0 2px #a08060, 0 0 60px 15px #ffd8a0; }
  100% { opacity: 0.85; box-shadow: inset 0 0 0 2px #8b6d4d, 0 0 35px 8px #ffe8c0; }
}
@keyframes pla-curtain {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(0.95) translateX(2px); }
  100% { transform: scaleX(1) translateX(0); }
}
@keyframes pla-candle {
  0% { transform: translateY(0) rotate(-2deg); opacity: 0.9; }
  50% { transform: translateY(-2px) rotate(2deg); opacity: 1; }
  100% { transform: translateY(0) rotate(-1deg); opacity: 0.9; }
}
@keyframes pla-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg) scaleY(1); }
  25% { transform: translateX(3px) translateY(-2px) rotate(1deg) scaleY(1.01); }
  50% { transform: translateX(6px) translateY(0) rotate(-1deg) scaleY(1); }
  75% { transform: translateX(3px) translateY(-2px) rotate(1deg) scaleY(1.01); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg) scaleY(1); }
}
@keyframes pla-letter {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-13deg) translateY(-3px); }
  100% { transform: rotate(-15deg) translateY(0); }
}

.scn-palace-defiance-principle {
  background: linear-gradient(180deg, #b08860 0%, #704830 100%), radial-gradient(ellipse at 50% 100%, #d0a070 0%, transparent 70%);
}
.scn-palace-defiance-principle .throne-room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #8a6a4a 0%, #4a2a18 100%);
}
.scn-palace-defiance-principle .throne {
  position: absolute; bottom: 15%; left: 50%; width: 30%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c09060 0%, #806040 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6), inset 0 0 0 2px #b08060;
  animation: pdp-throne 12s ease-in-out infinite alternate;
}
.scn-palace-defiance-principle .emperor {
  position: absolute; bottom: 18%; left: 50%; width: 18%; height: 35%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,.5);
  animation: pdp-emperor 8s ease-in-out infinite;
}
.scn-palace-defiance-principle .figure-defiant {
  position: absolute; bottom: 15%; left: 25%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pdp-defiant 5s ease-in-out infinite;
}
.scn-palace-defiance-principle .column-left {
  position: absolute; top: 0; left: 8%; width: 6%; height: 100%;
  background: linear-gradient(90deg, #b09070 0%, #806040 50%, #b09070 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.3);
}
.scn-palace-defiance-principle .column-right {
  position: absolute; top: 0; right: 8%; width: 6%; height: 100%;
  background: linear-gradient(90deg, #b09070 0%, #806040 50%, #b09070 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.3);
  animation: pdp-column 20s linear infinite;
}
.scn-palace-defiance-principle .light-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,200,0.3) 0%, transparent 60%);
  clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%);
  animation: pdp-beam 10s ease-in-out infinite alternate;
}
@keyframes pdp-throne {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.98); }
  100% { transform: translateX(-50%) scaleY(1); }
}
@keyframes pdp-emperor {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes pdp-defiant {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes pdp-column {
  0% { box-shadow: inset 0 0 10px rgba(0,0,0,.3); }
  50% { box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
  100% { box-shadow: inset 0 0 10px rgba(0,0,0,.3); }
}
@keyframes pdp-beam {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

.scn-palace-final-bluff {
  background: linear-gradient(180deg, #a08060 0%, #604830 100%), radial-gradient(ellipse at 50% 30%, #d0b090 0%, transparent 60%);
}
.scn-palace-final-bluff .study-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #7a5a3a 0%, #3a2210 100%);
}
.scn-palace-final-bluff .desk {
  position: absolute; bottom: 10%; left: 50%; width: 70%; height: 12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%);
  border-radius: 0 0 8px 8px;
  box-shadow: 0 6px 15px rgba(0,0,0,.6);
}
.scn-palace-final-bluff .lamp {
  position: absolute; bottom: 20%; left: 45%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #d0b080 0%, #8a6a40 100%);
  border-radius: 4px 4px 12px 12px;
  box-shadow: 0 0 30px 10px #ffd080;
  animation: pfb-lamp 5s ease-in-out infinite alternate;
}
.scn-palace-final-bluff .figure-oberg {
  position: absolute; bottom: 10%; left: 20%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pfb-oberg 6s ease-in-out infinite;
}
.scn-palace-final-bluff .figure-protagonist {
  position: absolute; bottom: 10%; right: 22%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pfb-protagonist 4s ease-in-out infinite;
}
.scn-palace-final-bluff .papers {
  position: absolute; bottom: 12%; left: 55%; width: 20%; height: 6%;
  background: linear-gradient(135deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: pfb-papers 10s ease-in-out infinite alternate;
}
.scn-palace-final-bluff .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: pfb-shadow 8s ease-in-out infinite alternate;
}
@keyframes pfb-lamp {
  0% { box-shadow: 0 0 20px 6px #ffd080; opacity: 0.85; }
  50% { box-shadow: 0 0 40px 15px #ffd060; opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #ffd080; opacity: 0.9; }
}
@keyframes pfb-oberg {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pfb-protagonist {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes pfb-papers {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes pfb-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.3; transform: scaleX(1); }
}

.scn-palace-oberg-fear-minister {
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a18 100%), radial-gradient(ellipse at 50% 60%, #c09060 0%, transparent 60%);
}
.scn-palace-oberg-fear-minister .overhead-desk {
  position: absolute; bottom: 5%; left: 5%; width: 90%; height: 50%;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 0 2px #806040, 0 4px 12px rgba(0,0,0,.6);
  transform: perspective(600px) rotateX(30deg);
  transform-origin: bottom center;
}
.scn-palace-oberg-fear-minister .wallet {
  position: absolute; bottom: 25%; left: 45%; width: 12%; height: 6%;
  background: linear-gradient(135deg, #4a2a10 0%, #2a1a08 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  transform: rotate(-10deg);
  animation: pof-wallet 8s ease-in-out infinite alternate;
}
.scn-palace-oberg-fear-minister .hand-left {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #d0a080 0%, #a08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-20deg);
  animation: pof-handleft 5s ease-in-out infinite;
}
.scn-palace-oberg-fear-minister .hand-right {
  position: absolute; bottom: 18%; right: 32%; width: 10%; height: 16%;
  background: linear-gradient(180deg, #d0a080 0%, #a08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(15deg);
  animation: pof-handright 6s ease-in-out infinite alternate;
}
.scn-palace-oberg-fear-minister .letter {
  position: absolute; bottom: 28%; left: 55%; width: 14%; height: 4%;
  background: linear-gradient(135deg, #f0dcc0 0%, #c0a080 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  box-shadow: 0 1px 3px rgba(0,0,0,.4);
  animation: pof-letter 12s ease-in-out infinite alternate;
}
.scn-palace-oberg-fear-minister .shadow-figure {
  position: absolute; top: 0; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  opacity: 0.4;
  animation: pof-shadow-fig 10s ease-in-out infinite alternate;
}
.scn-palace-oberg-fear-minister .candle {
  position: absolute; bottom: 15%; left: 70%; width: 5%; height: 18%;
  background: linear-gradient(180deg, #e0c080 0%, #b09860 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #ffd080;
  animation: pof-candle 3s ease-in-out infinite alternate;
}
@keyframes pof-wallet {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-5px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes pof-handleft {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-18deg) translateY(-4px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes pof-handright {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-6px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes pof-letter {
  0% { transform: rotate(8deg) translateY(0); opacity: 0.9; }
  50% { transform: rotate(10deg) translateY(-3px); opacity: 1; }
  100% { transform: rotate(8deg) translateY(0); opacity: 0.9; }
}
@keyframes pof-shadow-fig {
  0% { opacity: 0.3; transform: scaleY(0.95); }
  50% { opacity: 0.7; transform: scaleY(1.05); }
  100% { opacity: 0.3; transform: scaleY(0.95); }
}
@keyframes pof-candle {
  0% { box-shadow: 0 0 15px 4px #ffd080; opacity: 0.85; transform: translateY(0) rotate(-2deg); }
  50% { box-shadow: 0 0 30px 10px #ffd060; opacity: 1; transform: translateY(-2px) rotate(2deg); }
  100% { box-shadow: 0 0 18px 5px #ffd080; opacity: 0.9; transform: translateY(0) rotate(-1deg); }
}

/* ==================== town-filppula ==================== */
.scn-town-filppula {
  background:
    linear-gradient(135deg, #2c1e1a 0%, #4a3528 40%, #2c1e1a 100%),
    radial-gradient(ellipse at 50% 0%, #4a3528 0%, transparent 70%);
}
.scn-town-filppula .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a22 0%, #2a1e18 100%); }
.scn-town-filppula .window-sky {
  position:absolute; top:8%; left:10%; right:10%; height:55%;
  background: linear-gradient(180deg, #1a1a3e 0%, #4a3a5e 40%, #c08050 70%, #e0a060 100%);
  border-radius:8% 8% 0 0; box-shadow:inset 0 0 40px rgba(0,0,0,.4);
  animation: tf-sky 14s ease-in-out infinite alternate;
}
@keyframes tf-sky { 0%{opacity:.8; filter:brightness(1)} 50%{opacity:1; filter:brightness(1.1)} 100%{opacity:.85; filter:brightness(.95)} }
.scn-town-filppula .window-hills {
  position:absolute; bottom:36%; left:10%; right:10%; height:22%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius:40% 60% 0 0 / 80% 70% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.5);
  animation: tf-hills 20s ease-in-out infinite alternate;
}
@keyframes tf-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-3px) scale(1.005)} 100%{transform:translateY(0)} }
.scn-town-filppula .window-pane {
  position:absolute; top:8%; left:10%; right:10%; height:55%;
  background: linear-gradient(90deg, rgba(40,30,20,.3) 0%, transparent 20%, transparent 80%, rgba(40,30,20,.3) 100%);
  box-shadow:inset 0 0 20px rgba(0,0,0,.3); pointer-events:none;
  animation: tf-pane 8s ease-in-out infinite alternate;
}
@keyframes tf-pane { 0%{opacity:.3} 50%{opacity:.5} 100%{opacity:.25} }
.scn-town-filppula .desk {
  position:absolute; bottom:6%; left:5%; right:30%; height:28%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius:4% 4% 2% 2%; box-shadow:0 -6px 20px rgba(0,0,0,.5);
}
.scn-town-filppula .lamp-glow {
  position:absolute; bottom:28%; left:38%; width:40px; height:40px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 70%);
  border-radius:50%; box-shadow:0 0 60px 20px rgba(192,128,64,.4);
  animation: tf-lamp-glow 4s ease-in-out infinite alternate;
}
@keyframes tf-lamp-glow { 0%{box-shadow:0 0 40px 10px rgba(192,128,64,.3); transform:scale(.95)} 50%{box-shadow:0 0 80px 30px rgba(255,200,100,.5); transform:scale(1.05)} 100%{box-shadow:0 0 50px 15px rgba(192,128,64,.35); transform:scale(1)} }
.scn-town-filppula .lamp-body {
  position:absolute; bottom:30%; left:38%; width:8px; height:24px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a1a 100%);
  border-radius:20% 20% 10% 10%; transform-origin:bottom center;
  animation: tf-lamp-body 4s ease-in-out infinite alternate;
}
@keyframes tf-lamp-body { 0%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-1deg)} }
.scn-town-filppula .figure-silhouette {
  position:absolute; bottom:6%; left:12%; width:20px; height:44px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center;
  animation: tf-figure 6s ease-in-out infinite;
}
@keyframes tf-figure { 0%{transform:translateY(0) rotate(-1deg)} 33%{transform:translateY(-2px) rotate(2deg)} 66%{transform:translateY(-1px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }
.scn-town-filppula .dust-motes {
  position:absolute; top:15%; left:20%; width:100%; height:60%;
  background: radial-gradient(circle at 20% 30%, rgba(255,220,160,.08) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(255,200,150,.06) 0%, transparent 40%);
  filter:blur(4px); animation: tf-dust 12s ease-in-out infinite alternate;
}
@keyframes tf-dust { 0%{opacity:.3; transform:translateY(0)} 50%{opacity:.6; transform:translateY(-4px)} 100%{opacity:.2; transform:translateY(2px)} }

/* ==================== abo-police-office ==================== */
.scn-abo-police-office {
  background:
    linear-gradient(180deg, #d0c8c0 0%, #b0a8a0 30%, #908880 100%),
    radial-gradient(ellipse at 50% 0%, #e0d8d0 0%, transparent 60%);
}
.scn-abo-police-office .bg-ceiling { position:absolute; top:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #d8d0c8 0%, #c0b8b0 100%); }
.scn-abo-police-office .bg-wall { position:absolute; top:20%; left:0; right:0; height:45%; background: linear-gradient(180deg, #c8c0b8 0%, #a8a098 100%); }
.scn-abo-police-office .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #706860 0%, #504840 100%); }
.scn-abo-police-office .light-fixture {
  position:absolute; top:8%; left:50%; width:60px; height:20px; transform:translateX(-50%);
  background: linear-gradient(180deg, #e0d8d0 0%, #f0e8e0 100%);
  border-radius:20% 20% 30% 30%; box-shadow:0 0 40px 10px rgba(255,255,230,.5);
  animation: apo-light 3s ease-in-out infinite alternate;
}
@keyframes apo-light { 0%{opacity:.9; box-shadow:0 0 30px 5px rgba(255,255,230,.3)} 50%{opacity:1; box-shadow:0 0 60px 20px rgba(255,255,230,.6)} 100%{opacity:.95; box-shadow:0 0 40px 10px rgba(255,255,230,.4)} }
.scn-abo-police-office .light-beam {
  position:absolute; top:10%; left:50%; width:80px; height:70%; transform:translateX(-50%);
  background: linear-gradient(180deg, rgba(255,255,230,.15) 0%, rgba(255,255,230,.05) 40%, transparent 100%);
  clip-path:polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: apo-beam 3s ease-in-out infinite alternate;
}
@keyframes apo-beam { 0%{opacity:.4} 50%{opacity:.7} 100%{opacity:.5} }
.scn-abo-police-office .shadow-desks {
  position:absolute; bottom:20%; left:15%; right:15%; height:30%;
  background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.4) 100%);
  clip-path:polygon(0% 100%, 10% 20%, 30% 30%, 50% 10%, 70% 25%, 90% 15%, 100% 100%);
  animation: apo-shadow 3s ease-in-out infinite alternate;
}
@keyframes apo-shadow { 0%{opacity:.6} 50%{opacity:1} 100%{opacity:.7} }
.scn-abo-police-office .figure-officer {
  position:absolute; bottom:12%; right:25%; width:28px; height:60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius:45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center;
  animation: apo-officer 5s ease-in-out infinite;
}
@keyframes apo-officer { 0%{transform:rotate(-1deg)} 30%{transform:rotate(1deg)} 60%{transform:rotate(-2deg)} 100%{transform:rotate(0)} }
.scn-abo-police-office .figure-prisoner {
  position:absolute; bottom:12%; left:28%; width:24px; height:58px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center;
  animation: apo-prisoner 7s ease-in-out infinite;
}
@keyframes apo-prisoner { 0%{transform:translateY(0) rotate(0)} 40%{transform:translateY(-3px) rotate(2deg)} 80%{transform:translateY(0) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }

/* ==================== abo-release-order ==================== */
.scn-abo-release-order {
  background:
    linear-gradient(90deg, #c8b8a8 0%, #e0d0c0 40%, #c8b8a8 100%),
    radial-gradient(ellipse at 50% 80%, #d8c8b8 0%, transparent 60%);
}
.scn-abo-release-order .bg-wall-release { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #e8d8c8 0%, #d0c0b0 100%); }
.scn-abo-release-order .bg-floor-release { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b8a898 0%, #988878 100%); }
.scn-abo-release-order .window-release {
  position:absolute; top:10%; right:8%; width:30%; height:45%;
  background: linear-gradient(180deg, #c0d8e8 0%, #e0e8f0 50%, #f0e8d8 100%);
  border-radius:6% 6% 4% 4%; box-shadow:inset 0 0 30px rgba(0,0,0,.1);
  animation: ar-window 15s ease-in-out infinite alternate;
}
@keyframes ar-window { 0%{opacity:.85; filter:brightness(1)} 50%{opacity:1; filter:brightness(1.05)} 100%{opacity:.9; filter:brightness(.98)} }
.scn-abo-release-order .curtains {
  position:absolute; top:10%; right:8%; width:30%; height:45%;
  background: linear-gradient(90deg, rgba(100,80,60,.4) 0%, transparent 20%, transparent 80%, rgba(100,80,60,.4) 100%);
  pointer-events:none; animation: ar-curtains 12s ease-in-out infinite alternate;
}
@keyframes ar-curtains { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.03)} 100%{transform:scaleX(.98)} }
.scn-abo-release-order .desk-release {
  position:absolute; bottom:12%; left:15%; right:25%; height:30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius:4% 4% 2% 2%; box-shadow:0 -6px 20px rgba(0,0,0,.3);
}
.scn-abo-release-order .chair-chief {
  position:absolute; bottom:10%; left:22%; width:40px; height:50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius:30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: ar-chair 8s ease-in-out infinite;
}
@keyframes ar-chair { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(-1deg)} }
.scn-abo-release-order .figure-chief {
  position:absolute; bottom:18%; left:20%; width:26px; height:52px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center;
  animation: ar-chief 6s ease-in-out infinite;
}
@keyframes ar-chief { 0%{transform:rotate(-1deg)} 30%{transform:rotate(2deg)} 60%{transform:rotate(0)} 100%{transform:rotate(-2deg)} }
.scn-abo-release-order .figure-prisoner-rel {
  position:absolute; bottom:15%; left:45%; width:24px; height:56px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center;
  animation: ar-prisoner 5s ease-in-out infinite;
}
@keyframes ar-prisoner { 0%{transform:translateX(0) translateY(0)} 40%{transform:translateX(4px) translateY(-2px)} 80%{transform:translateX(8px) translateY(0)} 100%{transform:translateX(0) translateY(0)} }
.scn-abo-release-order .paper-order {
  position:absolute; bottom:34%; left:30%; width:32px; height:22px;
  background: linear-gradient(135deg, #f0e8d0 0%, #e0d0b0 100%);
  border-radius:4%; box-shadow:0 2px 6px rgba(0,0,0,.2);
  animation: ar-paper 6s ease-in-out infinite alternate;
}
@keyframes ar-paper { 0%{transform:translateX(0) rotate(-2deg); opacity:.8} 50%{transform:translateX(6px) rotate(2deg); opacity:1} 100%{transform:translateX(0) rotate(-1deg); opacity:.9} }

/* ==================== abo-smirnoff-relieved ==================== */
.scn-abo-smirnoff-relieved {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, #7a6a5a 0%, transparent 60%);
}
.scn-abo-smirnoff-relieved .bg-wall-smir { position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); }
.scn-abo-smirnoff-relieved .bg-desk-smir {
  position:absolute; bottom:10%; left:10%; right:10%; height:35%;
  background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%);
  border-radius:6% 6% 3% 3%; box-shadow:0 -8px 20px rgba(0,0,0,.4);
}
.scn-abo-smirnoff-relieved .chair-smir {
  position:absolute; bottom:8%; left:30%; width:44px; height:54px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius:30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: as-chair 10s ease-in-out infinite;
}
@keyframes as-chair { 0%{transform:rotate(0)} 30%{transform:rotate(-2deg)} 60%{transform:rotate(1deg)} 100%{transform:rotate(0)} }
.scn-abo-smirnoff-relieved .figure-torso-smir {
  position:absolute; bottom:20%; left:28%; width:30px; height:44px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center;
  animation: as-torso 8s ease-in-out infinite;
}
@keyframes as-torso { 0%{transform:rotate(-2deg) translateY(0)} 40%{transform:rotate(2deg) translateY(-2px)} 80%{transform:rotate(-1deg) translateY(0)} 100%{transform:rotate(0) translateY(0)} }
.scn-abo-smirnoff-relieved .figure-head-smir {
  position:absolute; bottom:44%; left:32%; width:18px; height:22px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center;
  animation: as-head 8s ease-in-out infinite;
}
@keyframes as-head { 0%{transform:rotate(-3deg) translateY(0)} 50%{transform:rotate(4deg) translateY(-1px)} 100%{transform:rotate(0) translateY(0)} }
.scn-abo-smirnoff-relieved .dispatch-papers {
  position:absolute; bottom:24%; left:48%; width:40px; height:28px;
  background: linear-gradient(135deg, #e8d8c0 0%, #d0c0a0 50%, #e0d0b0 100%);
  border-radius:4%; box-shadow:0 3px 8px rgba(0,0,0,.25);
  animation: as-papers 7s ease-in-out infinite alternate;
}
@keyframes as-papers { 0%{transform:translateX(0) rotate(-1deg); opacity:.7} 50%{transform:translateX(3px) rotate(2deg); opacity:1} 100%{transform:translateX(-2px) rotate(-2deg); opacity:.8} }
.scn-abo-smirnoff-relieved .inkwell {
  position:absolute; bottom:18%; left:55%; width:10px; height:14px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius:20% 20% 30% 30%; box-shadow:0 2px 4px rgba(0,0,0,.3);
  animation: as-ink 12s ease-in-out infinite;
}
@keyframes as-ink { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
.scn-abo-smirnoff-relieved .lamp-smir {
  position:absolute; bottom:36%; left:55%; width:24px; height:32px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 60%, #8a5a2a 100%);
  border-radius:30% 30% 20% 20%; box-shadow:0 0 40px 12px rgba(192,128,64,.4);
  animation: as-lamp 5s ease-in-out infinite alternate;
}
@keyframes as-lamp { 0%{box-shadow:0 0 30px 8px rgba(192,128,64,.3); opacity:.9} 50%{box-shadow:0 0 60px 20px rgba(255,200,100,.5); opacity:1} 100%{box-shadow:0 0 35px 10px rgba(192,128,64,.35); opacity:.95} }

/* photograph-discovery */
.scn-photograph-discovery {
  background:
    linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 50%, #3a1a0a 100%),
    radial-gradient(ellipse at 60% 80%, #c86028 0%, transparent 70%);
}
.scn-photograph-discovery .fireplace {
  position: absolute; bottom: 10%; left: 30%; width: 200px; height: 150px;
  background: linear-gradient(180deg, #8a4a2a 0%, #5a2a1a 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: pd-fire 3s ease-in-out infinite alternate;
}
.scn-photograph-discovery .mantel {
  position: absolute; bottom: calc(10% + 150px); left: 25%; width: 240px; height: 15px;
  background: #6a3a1a; border-radius: 5px;
}
.scn-photograph-discovery .desk {
  position: absolute; bottom: 10%; left: 55%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 5px; box-shadow: 0 5px 15px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(10deg);
}
.scn-photograph-discovery .photograph {
  position: absolute; bottom: 35%; left: 60%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #d0b080 0%, #a08050 100%);
  border: 3px solid #8a6a3a; border-radius: 3px;
  box-shadow: 0 0 20px 5px rgba(200,150,100,0.5);
  animation: pd-glow 3s ease-in-out infinite alternate;
}
.scn-photograph-discovery .chair {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%);
  border-radius: 10px 10px 5px 5px;
  transform-origin: bottom;
  animation: pd-rock 5s ease-in-out infinite;
}
.scn-photograph-discovery .fire-glow {
  position: absolute; bottom: 10%; left: 30%; width: 200px; height: 150px;
  background: radial-gradient(ellipse at 50% 100%, rgba(230,120,30,0.4) 0%, transparent 70%);
  animation: pd-flicker 1.5s ease-in-out infinite alternate;
}
.scn-photograph-discovery .shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: pd-shadow 4s ease-in-out infinite alternate;
}
@keyframes pd-fire {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.9; transform: scaleY(0.98); }
}
@keyframes pd-glow {
  0% { box-shadow: 0 0 15px 4px rgba(200,150,100,0.4); }
  50% { box-shadow: 0 0 30px 10px rgba(200,150,100,0.7); }
  100% { box-shadow: 0 0 20px 6px rgba(200,150,100,0.5); }
}
@keyframes pd-rock {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-2deg); }
}
@keyframes pd-flicker {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pd-shadow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

/* asking-about-photo */
.scn-asking-about-photo {
  background:
    linear-gradient(180deg, #1a0a05 0%, #2a150a 30%, #3a1a0a 100%),
    radial-gradient(ellipse at 20% 80%, #cc6020 0%, transparent 70%);
}
.scn-asking-about-photo .figure-left {
  position: absolute; bottom: 15%; left: 20%; width: 60px; height: 140px;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0505 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom;
  animation: ap-turn 6s ease-in-out infinite;
}
.scn-asking-about-photo .figure-right {
  position: absolute; bottom: 15%; right: 20%; width: 70px; height: 150px;
  background: linear-gradient(180deg, #2a150a 0%, #1a0a05 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom;
  animation: ap-reach 5s ease-in-out infinite alternate;
}
.scn-asking-about-photo .photo {
  position: absolute; bottom: 50%; left: 50%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #c8a876 0%, #a0784a 100%);
  border: 2px solid #704a2a; border-radius: 2px;
  box-shadow: 0 0 30px 8px rgba(200,150,80,0.6);
  transform: translate(-50%, -50%) rotate(-5deg);
  animation: ap-photoshake 4s ease-in-out infinite;
}
.scn-asking-about-photo .firelight {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 30% 80%, rgba(230,100,20,0.3) 0%, transparent 60%);
  animation: ap-flicker 2s ease-in-out infinite alternate;
}
.scn-asking-about-photo .table {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 10px;
  background: linear-gradient(90deg, #3a1a0a 0%, #5a2a1a 100%);
  border-radius: 5px;
  animation: ap-table 8s ease-in-out infinite;
}
@keyframes ap-turn {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ap-reach {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-8px) translateY(-3px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes ap-photoshake {
  0%,100% { transform: translate(-50%, -50%) rotate(-5deg) scale(1); }
  50% { transform: translate(-50%, -50%) rotate(-3deg) scale(1.02); }
}
@keyframes ap-flicker {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ap-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

/* elma-heath-info */
.scn-elma-heath-info {
  background:
    linear-gradient(180deg, #3a1a05 0%, #6a2a0a 40%, #4a1a05 100%),
    radial-gradient(ellipse at 50% 70%, #e07030 0%, transparent 60%);
}
.scn-elma-heath-info .desk {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 10px 10px 0 0;
}
.scn-elma-heath-info .photo {
  position: absolute; bottom: 30%; left: 40%; width: 100px; height: 120px;
  background: linear-gradient(135deg, #e0c090 0%, #b09060 100%);
  border: 5px solid #8a6a40; border-radius: 5px;
  box-shadow: 0 0 40px 10px rgba(200,150,80,0.5);
  transform: rotate(2deg);
  animation: eh-photo 8s ease-in-out infinite;
}
.scn-elma-heath-info .candle {
  position: absolute; bottom: 35%; left: 60%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c080 100%);
  border-radius: 3px;
  box-shadow: 0 0 20px 5px rgba(240,200,100,0.6);
}
.scn-elma-heath-info .wax {
  position: absolute; bottom: 35%; left: 60%; width: 12px; height: 50px;
  background: linear-gradient(180deg, transparent 0%, #d0b070 50%, #b09040 100%);
  border-radius: 3px;
  animation: eh-drip 6s ease-in-out infinite;
}
.scn-elma-heath-info .glow {
  position: absolute; bottom: 30%; left: 50%; width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(240,180,60,0.4) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: eh-pulse 4s ease-in-out infinite alternate;
}
.scn-elma-heath-info .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: eh-shadow 7s ease-in-out infinite alternate;
}
@keyframes eh-photo {
  0%,100% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-3px); }
}
@keyframes eh-drip {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.1); }
  100% { transform: scaleY(1); }
}
@keyframes eh-pulse {
  0% { opacity: 0.6; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.05); }
  100% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.98); }
}
@keyframes eh-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.55; }
}

/* elmas-whereabouts-unknown */
.scn-elmas-whereabouts-unknown {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2a1a1a 50%, #3a1a0a 100%),
    radial-gradient(ellipse at 20% 60%, #c86028 0%, transparent 70%);
}
.scn-elmas-whereabouts-unknown .window-frame {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 70%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%);
  border: 10px solid #5a3a2a; border-radius: 10px;
  box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}
.scn-elmas-whereabouts-unknown .window-glass {
  position: absolute; top: 12%; left: 12%; width: 76%; height: 66%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border-radius: 5px;
  animation: ew-clouds 20s linear infinite;
}
.scn-elmas-whereabouts-unknown .moon {
  position: absolute; top: 15%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0e0c0 0%, #c0c0a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(200,200,180,0.5);
  animation: ew-moon 12s ease-in-out infinite alternate;
}
.scn-elmas-whereabouts-unknown .curtain-left {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 70%;
  background: linear-gradient(90deg, #6a3a2a 0%, #4a2a1a 100%);
  border-radius: 5px 0 0 5px;
  animation: ew-sway 8s ease-in-out infinite alternate;
}
.scn-elmas-whereabouts-unknown .curtain-right {
  position: absolute; top: 10%; right: 10%; width: 40%; height: 70%;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 100%);
  border-radius: 0 5px 5px 0;
  animation: ew-sway 8s ease-in-out infinite alternate-reverse;
}
.scn-elmas-whereabouts-unknown .figure {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ew-look 10s ease-in-out infinite;
}
.scn-elmas-whereabouts-unknown .fire-glow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 50%;
  background: radial-gradient(ellipse at 30% 90%, rgba(200,100,30,0.4) 0%, transparent 60%);
  animation: ew-flicker 3s ease-in-out infinite alternate;
}
@keyframes ew-clouds {
  0% { background-position: 0 0; }
  50% { background-position: 50px 0; }
  100% { background-position: 100px 0; }
}
@keyframes ew-moon {
  0% { transform: translateX(0) translateY(0) scale(1); }
  50% { transform: translateX(10px) translateY(-5px) scale(1.02); }
  100% { transform: translateX(0) translateY(0) scale(1); }
}
@keyframes ew-sway {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes ew-look {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes ew-flicker {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

.scn-palace-oberg-turns {
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b098 40%, #8a7a62 100%), radial-gradient(ellipse at 40% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-palace-oberg-turns .bg {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%);
  animation: po1-pulse 6s ease-in-out infinite alternate;
}
.scn-palace-oberg-turns .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a62 0%, #5a4a3a 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.4);
}
.scn-palace-oberg-turns .wall {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(90deg, #c8b8a0 0%, #e0d0b8 20%, #d0c0a8 50%, #c0b098 80%, #b8a890 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-palace-oberg-turns .column {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 45%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 50%, #a09078 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: po1-column 8s ease-in-out infinite alternate;
}
.scn-palace-oberg-turns .figure {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 70%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: po1-turn 3s ease-in-out infinite;
  z-index: 2;
}
.scn-palace-oberg-turns .hand {
  position: absolute; bottom: 48%; left: 56%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: left center;
  animation: po1-hand 3s ease-in-out infinite;
  z-index: 3;
}
.scn-palace-oberg-turns .document {
  position: absolute; bottom: 48%; left: 57%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 100%);
  border-radius: 2px;
  box-shadow: 1px 2px 4px rgba(0,0,0,0.4);
  transform-origin: bottom left;
  animation: po1-doc 3s ease-in-out infinite;
  z-index: 4;
}
.scn-palace-oberg-turns .eye-glow {
  position: absolute; bottom: 55%; left: 51%; width: 5px; height: 4px;
  background: radial-gradient(circle, #ffaa44 0%, #cc8822 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffaa44;
  animation: po1-eye 1.5s ease-in-out infinite alternate;
  z-index: 5;
}
@keyframes po1-pulse {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes po1-column {
  0% { transform: scaleX(0.95); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(0.98); }
}
@keyframes po1-turn {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(6deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-50%) rotate(-5deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes po1-hand {
  0% { transform: rotate(0deg); }
  20% { transform: rotate(10deg); }
  50% { transform: rotate(0deg); }
  70% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes po1-doc {
  0% { transform: rotate(0deg) scaleY(1); }
  30% { transform: rotate(5deg) scaleY(1.02); }
  60% { transform: rotate(-3deg) scaleY(0.98); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes po1-eye {
  0% { opacity: 0.4; box-shadow: 0 0 6px 2px #ffaa44; }
  100% { opacity: 1; box-shadow: 0 0 18px 6px #ffaa44; }
}

.scn-palace-triumph-exit {
  background: linear-gradient(180deg, #ece4d0 0%, #d4c8b0 30%, #b8a890 70%, #9a8a7a 100%),
              radial-gradient(ellipse at 50% 80%, #f0e8d8 0%, transparent 50%);
}
.scn-palace-triumph-exit .bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #c8b8a0 0%, #e0d4c0 15%, #d0c4b0 50%, #c0b4a0 85%, #b8a890 100%);
  animation: po2-bg 12s ease-in-out infinite alternate;
}
.scn-palace-triumph-exit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
}
.scn-palace-triumph-exit .corridor-wall {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(90deg, #c0b0a0 0%, #e0d4c0 30%, #d0c4b0 70%, #c8b8a0 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -6px 18px rgba(0,0,0,0.2);
}
.scn-palace-triumph-exit .flowers-left {
  position: absolute; bottom: 32%; left: 15%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #e0a0a0 0%, #c08080 50%, #8a6060 100%);
  border-radius: 50% 50% 30% 30%;
  animation: po2-flower 6s ease-in-out infinite alternate;
}
.scn-palace-triumph-exit .flowers-right {
  position: absolute; bottom: 32%; right: 15%; width: 22px; height: 32px;
  background: radial-gradient(ellipse at 50% 30%, #c0a0e0 0%, #a080c0 50%, #7060a0 100%);
  border-radius: 50% 50% 30% 30%;
  animation: po2-flower 7s ease-in-out infinite alternate-reverse;
}
.scn-palace-triumph-exit .figure-walk {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 70%, #0a0a1a 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 40% 40%;
  animation: po2-walk 1.2s ease-in-out infinite;
  z-index: 2;
}
.scn-palace-triumph-exit .sentry {
  position: absolute; bottom: 25%; left: 45%; width: 25px; height: 58px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 70%, #1a1a2a 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 40% 40%;
  z-index: 1;
  animation: po2-sentry 4s ease-in-out infinite;
}
.scn-palace-triumph-exit .concierge {
  position: absolute; bottom: 25%; right: 15%; width: 28px; height: 62px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 70%, #1a1a0a 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 40% 40%;
  animation: po2-concierge 4s ease-in-out infinite alternate;
}
@keyframes po2-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes po2-flower {
  0% { transform: rotate(-5deg) scale(0.95); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes po2-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(0deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes po2-sentry {
  0% { transform: scale(1); }
  50% { transform: scale(1.01); }
  100% { transform: scale(0.99); }
}
@keyframes po2-concierge {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}

.scn-hotel-thoughts-elma {
  background: linear-gradient(180deg, #f2e8d0 0%, #e0d4b8 50%, #c8b898 100%),
              radial-gradient(ellipse at 60% 50%, #fff8e8 0%, transparent 70%);
}
.scn-hotel-thoughts-elma .bg-room {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #d8c8b0 0%, #c8b8a0 100%);
  animation: hel-bg 15s ease-in-out infinite alternate;
}
.scn-hotel-thoughts-elma .floor-room {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-hotel-thoughts-elma .window {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #e8f0ff 0%, #c8d8f0 80%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,220,255,0.3);
  animation: hel-window 10s ease-in-out infinite alternate;
}
.scn-hotel-thoughts-elma .curtain {
  position: absolute; top: 8%; left: 56%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #d4c4b0 0%, #c0b0a0 100%);
  border-radius: 10% 10% 0 0;
  filter: blur(1px);
  animation: hel-curtain 8s ease-in-out infinite alternate;
}
.scn-hotel-thoughts-elma .desk {
  position: absolute; bottom: 20%; left: 25%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-hotel-thoughts-elma .chair {
  position: absolute; bottom: 20%; left: 28%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-hotel-thoughts-elma .figure-sit {
  position: absolute; bottom: 20%; left: 30%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 70%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hel-figure 6s ease-in-out infinite;
  z-index: 2;
}
.scn-hotel-thoughts-elma .cigar {
  position: absolute; bottom: 48%; left: 36%; width: 12px; height: 4px;
  background: linear-gradient(90deg, #8a7a6a 0%, #b8a898 50%, #6a5a4a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: hel-cigar 3s ease-in-out infinite;
}
.scn-hotel-thoughts-elma .smoke {
  position: absolute; bottom: 52%; left: 38%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,190,180,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: hel-smoke 20s ease-in-out infinite;
}
@keyframes hel-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hel-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 10px rgba(200,220,255,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(200,220,255,0.4); }
  100% { opacity: 0.85; box-shadow: inset 0 0 15px rgba(200,220,255,0.25); }
}
@keyframes hel-curtain {
  0% { transform: translateY(0) scaleX(0.98); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(1px) scaleX(0.99); }
}
@keyframes hel-figure {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(2deg); }
  60% { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes hel-cigar {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(1px); }
  100% { transform: rotate(-3deg) translateX(0); }
}
@keyframes hel-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 0.1; }
  100% { transform: translateY(-40px) scale(2); opacity: 0; }
}

.scn-abo-search-felix {
  background: linear-gradient(180deg, #c8b098 0%, #a89078 40%, #8a7a62 100%),
              radial-gradient(ellipse at 50% 30%, #e0d0b8 0%, transparent 60%);
}
.scn-abo-search-felix .bg-log {
  position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #b8a088 0%, #9a8a72 100%);
  animation: abo-bg 18s ease-in-out infinite alternate;
}
.scn-abo-search-felix .floor-log {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-abo-search-felix .table {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-abo-search-felix .lamp {
  position: absolute; bottom: 35%; left: 32%; width: 12px; height: 25px;
  background: linear-gradient(180deg, #c8b098 0%, #a89078 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 -8px 20px 4px #d4b88a;
  animation: abo-lamp 5s ease-in-out infinite alternate;
}
.scn-abo-search-felix .figure-felix {
  position: absolute; bottom: 15%; left: 20%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 70%, #0a0a1a 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 40% 40%;
  animation: abo-felix 6s ease-in-out infinite;
  z-index: 2;
}
.scn-abo-search-felix .figure-enter {
  position: absolute; bottom: 15%; right: 25%; width: 30px; height: 58px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 70%, #1a1a2a 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 40% 40%;
  animation: abo-enter 8s ease-in-out infinite alternate;
  z-index: 1;
}
.scn-abo-search-felix .chair-log {
  position: absolute; bottom: 15%; left: 18%; width: 28px; height: 35px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-abo-search-felix .news-paper {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 15px;
  background: linear-gradient(180deg, #f0e0c8 0%, #d8c8b0 100%);
  border-radius: 2px;
  box-shadow: 1px 2px 4px rgba(0,0,0,0.3);
  animation: abo-news 4s ease-in-out infinite alternate;
}
@keyframes abo-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes abo-lamp {
  0% { box-shadow: 0 -6px 16px 2px #d4b88a; }
  50% { box-shadow: 0 -10px 24px 6px #e0c89a; }
  100% { box-shadow: 0 -8px 18px 3px #d4b88a; }
}
@keyframes abo-felix {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(2deg) translateY(-1px); }
  60% { transform: rotate(-1deg) translateY(0); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes abo-enter {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-5px) scale(0.98); }
  100% { transform: translateX(2px) scale(1); }
}
@keyframes abo-news {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.03); }
  100% { transform: rotate(-2deg) scaleY(0.97); }
}

/* london-elma-question */
.scn-london-elma-question {
  background: linear-gradient(180deg, #0b0d1a 0%, #1a1e33 40%, #2c3044 100%),
              radial-gradient(ellipse at 50% 70%, #2c3044 0%, transparent 80%);
}
.scn-london-elma-question .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #111433 0%, #1a2040 50%, transparent 100%); animation: leq-skyPulse 12s ease-in-out infinite alternate; }
.scn-london-elma-question .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #0f1528 0%, #1a2244 50%, #2a3250 100%); animation: leq-seaShift 8s ease-in-out infinite alternate; }
.scn-london-elma-question .yacht-hull { position:absolute; bottom:28%; left:55%; width:70px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: leq-yachtBob 5s ease-in-out infinite; }
.scn-london-elma-question .yacht-sail { position:absolute; bottom:38%; left:58%; width:30px; height:50px; background: linear-gradient(180deg, #e8dcc8 0%, #c4b49c 50%, #a09078 100%); border-radius: 0 60% 40% 0 / 0 80% 20% 0; transform: skewY(-5deg); animation: leq-sailSway 4s ease-in-out infinite alternate; }
.scn-london-elma-question .figure { position:absolute; bottom:26%; left:35%; width:16px; height:36px; background: linear-gradient(180deg, #1c1c2a 0%, #0e0e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: leq-figureShift 3s ease-in-out infinite; }
.scn-london-elma-question .lantern { position:absolute; bottom:30%; left:38%; width:8px; height:10px; background: radial-gradient(circle, #e8a840 0%, #8a5a20 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 4px #b07830, 0 0 40px 10px rgba(176,120,48,.3); animation: leq-lanternGlow 3s ease-in-out infinite alternate; }
.scn-london-elma-question .fog { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(20,30,50,.4) 0%, transparent 100%); filter: blur(8px); animation: leq-fogDrift 20s linear infinite; }
.scn-london-elma-question .star { position:absolute; top:10%; left:20%; width:2px; height:2px; background: #fff; border-radius:50%; box-shadow: 0 0 4px 2px rgba(255,255,255,.5); animation: leq-starTwinkle 4s ease-in-out infinite alternate; }

@keyframes leq-skyPulse { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes leq-seaShift { 0% { background-position: 0 0 } 50% { background-position: 10% 0 } 100% { background-position: 0 0 } }
@keyframes leq-yachtBob { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(2px) rotate(1deg) } }
@keyframes leq-sailSway { 0% { transform: skewY(-5deg) rotate(0deg) } 50% { transform: skewY(-8deg) rotate(2deg) } 100% { transform: skewY(-3deg) rotate(-1deg) } }
@keyframes leq-figureShift { 0%,100% { transform: translateX(0) } 50% { transform: translateX(5px) } }
@keyframes leq-lanternGlow { 0% { box-shadow: 0 0 16px 3px #b07830, 0 0 32px 8px rgba(176,120,48,.2); } 50% { box-shadow: 0 0 30px 8px #e8a840, 0 0 60px 15px rgba(232,168,64,.4); } 100% { box-shadow: 0 0 20px 5px #b07830, 0 0 40px 10px rgba(176,120,48,.3); } }
@keyframes leq-fogDrift { 0% { transform: translateX(-20px) scale(1); } 50% { transform: translateX(40px) scale(1.1); } 100% { transform: translateX(-20px) scale(1); } }
@keyframes leq-starTwinkle { 0% { opacity: .3; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: .4; transform: scale(.9); } }

/* london-durnford-love */
.scn-london-durnford-love {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a33 40%, #2a2a44 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a33 0%, transparent 70%);
}
.scn-london-durnford-love .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0c0c18 0%, #141428 50%, #1c1c38 100%); animation: ldl-bgDeepPulse 10s ease-in-out infinite alternate; }
.scn-london-durnford-love .window-frame { position:absolute; bottom:20%; left:30%; width:160px; height:220px; border: 8px solid #2a2a3a; border-radius: 8px; background: #1a1a2a; box-shadow: inset 0 0 60px rgba(0,0,0,.6); transform: perspective(400px) rotateY(5deg); animation: ldl-windowFrame 6s ease-in-out infinite alternate; }
.scn-london-durnford-love .moonlight { position:absolute; bottom:22%; left:33%; width:140px; height:200px; background: linear-gradient(180deg, rgba(180,200,255,.1) 0%, rgba(180,200,255,.05) 100%); border-radius: 4px; filter: blur(4px); animation: ldl-moonPulse 12s ease-in-out infinite; }
.scn-london-durnford-love .figure-left { position:absolute; bottom:22%; left:38%; width:18px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ldl-figureswayL 4s ease-in-out infinite; }
.scn-london-durnford-love .figure-right { position:absolute; bottom:22%; right:38%; width:18px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ldl-figureswayR 4s ease-in-out infinite; }
.scn-london-durnford-love .rose { position:absolute; bottom:26%; left:50%; width:10px; height:14px; background: radial-gradient(circle at 50% 30%, #b87878 0%, #5e1a1d 80%); border-radius: 50% 50% 40% 40%; transform: rotate(15deg); animation: ldl-roseFall 8s linear infinite; }
.scn-london-durnford-love .shadow-layer { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, transparent 50%, rgba(0,0,0,.4) 100%); animation: ldl-shadowFlicker 7s ease-in-out infinite alternate; }

@keyframes ldl-bgDeepPulse { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes ldl-windowFrame { 0% { transform: perspective(400px) rotateY(5deg) } 50% { transform: perspective(400px) rotateY(3deg) } 100% { transform: perspective(400px) rotateY(7deg) } }
@keyframes ldl-moonPulse { 0% { opacity: .2 } 50% { opacity: .5 } 100% { opacity: .3 } }
@keyframes ldl-figureswayL { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1px) rotate(2deg) } }
@keyframes ldl-figureswayR { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-1px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(1px) rotate(-2deg) } }
@keyframes ldl-roseFall { 0% { transform: translateY(0) rotate(15deg); opacity: .6 } 50% { transform: translateY(40px) rotate(-10deg); opacity: .3 } 100% { transform: translateY(80px) rotate(20deg); opacity: 0 } }
@keyframes ldl-shadowFlicker { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }

/* london-woodroffe-petersburg */
.scn-london-woodroffe-petersburg {
  background: linear-gradient(180deg, #0b1420 0%, #1a2a3a 30%, #2c3c4c 100%),
              radial-gradient(ellipse at 50% 90%, #2c3c4c 0%, transparent 70%);
}
.scn-london-woodroffe-petersburg .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #0e1a28 0%, #1e2e3e 50%, #2a3a4a 100%); }
.scn-london-woodroffe-petersburg .window { position:absolute; top:5%; left:20%; width:200px; height:280px; border: 10px solid #2a3a4a; border-radius: 12px; background: #1a2a3a; box-shadow: inset 0 0 80px rgba(20,30,50,.8); transform: perspective(500px) rotateX(2deg); animation: lwp-windowFrame 10s ease-in-out infinite alternate; }
.scn-london-woodroffe-petersburg .snow-outside { position:absolute; top:5%; left:20%; width:200px; height:280px; background: linear-gradient(180deg, rgba(200,220,240,.15) 0%, transparent 80%); border-radius: 2px; animation: lwp-snowFall 5s linear infinite; }
.scn-london-woodroffe-petersburg .figure-silhouette { position:absolute; bottom:15%; left:35%; width:20px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lwp-figureSway 6s ease-in-out infinite; }
.scn-london-woodroffe-petersburg .desk { position:absolute; bottom:10%; left:30%; width:80px; height:10px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-london-woodroffe-petersburg .lamp { position:absolute; bottom:20%; left:32%; width:8px; height:20px; background: linear-gradient(180deg, #e8c080 0%, #a07040 100%); border-radius: 30% 30% 0 0; box-shadow: 0 0 16px 4px #b08040, 0 0 32px 8px rgba(176,128,64,.2); animation: lwp-lampFlicker 3s ease-in-out infinite alternate; }
.scn-london-woodroffe-petersburg .clock { position:absolute; top:10%; right:25%; width:30px; height:30px; border: 4px solid #4a5a6a; border-radius: 50%; background: #1a2a3a; transform: perspective(200px) rotateY(5deg); animation: lwp-clockPend 8s ease-in-out infinite; }

@keyframes lwp-windowFrame { 0% { transform: perspective(500px) rotateX(2deg) } 50% { transform: perspective(500px) rotateX(0deg) } 100% { transform: perspective(500px) rotateX(4deg) } }
@keyframes lwp-snowFall { 0% { background-position: 0 0; opacity: .4 } 50% { background-position: -20px 40px; opacity: .8 } 100% { background-position: -40px 80px; opacity: .2 } }
@keyframes lwp-figureSway { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(2deg) } }
@keyframes lwp-lampFlicker { 0% { box-shadow: 0 0 12px 2px #b08040; opacity: .7 } 50% { box-shadow: 0 0 20px 6px #e8c080; opacity: 1 } 100% { box-shadow: 0 0 14px 3px #b08040; opacity: .8 } }
@keyframes lwp-clockPend { 0% { transform: perspective(200px) rotateY(5deg) rotate(0deg) } 50% { transform: perspective(200px) rotateY(-5deg) rotate(10deg) } 100% { transform: perspective(200px) rotateY(5deg) rotate(0deg) } }

/* london-durnford-rage */
.scn-london-durnford-rage {
  background: linear-gradient(180deg, #1a0e0a 0%, #2c1810 30%, #3a2018 100%),
              radial-gradient(ellipse at 50% 80%, #3a2018 0%, transparent 70%);
}
.scn-london-durnford-rage .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e0a 0%, #2c1810 50%, #3a2018 100%); animation: ldr-bgPulse 8s ease-in-out infinite alternate; }
.scn-london-durnford-rage .figure-enraged { position:absolute; bottom:15%; left:45%; width:28px; height:56px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ldr-figureShake 1s ease-in-out infinite; }
.scn-london-durnford-rage .fireplace { position:absolute; bottom:5%; left:15%; width:80px; height:60px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 10% 10%; box-shadow: inset 0 -10px 30px rgba(0,0,0,.6); }
.scn-london-durnford-rage .flames { position:absolute; bottom:10%; left:20%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 80%, #c8553d 0%, #a0461a 40%, transparent 70%); border-radius: 50% 50% 20% 20%; filter: blur(4px); animation: ldr-flameFlicker .8s ease-in-out infinite alternate; }
.scn-london-durnford-rage .shadow-wall { position:absolute; bottom:0; left:50%; width:120%; height:80%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 50%); transform-origin: bottom center; animation: ldr-shadowPulse 3s ease-in-out infinite; }
.scn-london-durnford-rage .chain { position:absolute; bottom:25%; left:35%; width:2px; height:30px; background: #5a4a3a; border-radius: 50% 50% 0 0; filter: blur(1px); animation: ldr-chainRattle .5s ease-in-out infinite; }

@keyframes ldr-bgPulse { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes ldr-figureShake { 0%,100% { transform: translateX(0) rotate(0deg) } 10% { transform: translateX(-3px) rotate(-4deg) } 20% { transform: translateX(3px) rotate(4deg) } 30% { transform: translateX(-2px) rotate(-3deg) } 40% { transform: translateX(2px) rotate(3deg) } 50% { transform: translateX(-1px) rotate(-2deg) } 60% { transform: translateX(1px) rotate(2deg) } 70% { transform: translateX(0) rotate(0deg) } }
@keyframes ldr-flameFlicker { 0% { transform: scale(1) translateY(0); opacity: .8 } 50% { transform: scale(1.1) translateY(-2px); opacity: 1 } 100% { transform: scale(.95) translateY(1px); opacity: .7 } }
@keyframes ldr-shadowPulse { 0% { transform: scaleX(1); opacity: .5 } 50% { transform: scaleX(1.2); opacity: .7 } 100% { transform: scaleX(1); opacity: .4 } }
@keyframes ldr-chainRattle { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(5deg) } 75% { transform: rotate(-5deg) } }

.scn-palace-oberg-cowardice {
  background: linear-gradient(135deg, #f5e6d0 0%, #d4c4a8 60%, #b8a88a 100%), 
              radial-gradient(ellipse at 30% 40%, rgba(255,230,200,0.4) 0%, transparent 60%);
}
.scn-palace-oberg-cowardice .wall {
  position: absolute; inset: 0; 
  background: repeating-linear-gradient(90deg, #c8b89a 0px, #c8b89a 2px, #d4c4a8 2px, #d4c4a8 4px);
  opacity: 0.3;
}
.scn-palace-oberg-cowardice .paneling {
  position: absolute; top: 5%; left: 10%; width: 45%; height: 75%; 
  background: linear-gradient(180deg, #a09070, #706040);
  border: 2px solid #6b5b3a; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-palace-oberg-cowardice .door {
  position: absolute; top: 15%; left: 40%; width: 80px; height: 140px; 
  background: linear-gradient(180deg, #8b7b5a, #5a4a2a);
  border: 3px solid #3d2d1a; border-radius: 2px; 
  transform-origin: left center; animation: p1-door 8s ease-in-out infinite;
}
.scn-palace-oberg-cowardice .guard {
  position: absolute; top: 18%; left: 42%; width: 30px; height: 100px; 
  background: #2a1a0a; border-radius: 30% 30% 40% 40% / 60% 60% 30% 30%; 
  box-shadow: -5px 0 10px rgba(0,0,0,0.5); opacity: 0.7; 
  animation: p1-guard 4s ease-in-out infinite;
}
.scn-palace-oberg-cowardice .coward {
  position: absolute; bottom: 12%; left: 30%; width: 40px; height: 60px; 
  background: #3a2a1a; border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; 
  transform: scale(0.8); animation: p1-coward 2s ease-in-out infinite;
}
.scn-palace-oberg-cowardice .shadow {
  position: absolute; bottom: 0; left: 20%; width: 120px; height: 30px; 
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%); 
  animation: p1-shadow 3s ease-in-out infinite alternate;
}
.scn-palace-oberg-cowardice .lamp {
  position: absolute; top: 8%; right: 15%; width: 20px; height: 30px; 
  background: radial-gradient(circle at 50% 0%, #ffdd99 0%, #dcb070 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,220,150,0.4); 
  animation: p1-lamp 3s ease-in-out infinite alternate;
}
@keyframes p1-door {
  0% { transform: rotateY(0deg); }
  25% { transform: rotateY(-5deg); }
  50% { transform: rotateY(0deg); }
  75% { transform: rotateY(-2deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes p1-guard {
  0%, 100% { transform: translateY(0); opacity: 0.7; }
  33% { transform: translateY(-3px); opacity: 0.9; }
  66% { transform: translateY(1px); opacity: 0.6; }
}
@keyframes p1-coward {
  0%, 100% { transform: translate(0,0) scale(0.8) rotate(0deg); }
  25% { transform: translate(2px,-1px) scale(0.85) rotate(2deg); }
  50% { transform: translate(-1px,0) scale(0.75) rotate(-1deg); }
  75% { transform: translate(1px,-2px) scale(0.82) rotate(1deg); }
}
@keyframes p1-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
  100% { transform: scaleX(0.9); opacity: 0.3; }
}
@keyframes p1-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(255,220,150,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 50px 15px rgba(255,200,130,0.7); opacity: 1; }
  100% { box-shadow: 0 0 20px 8px rgba(255,220,150,0.3); opacity: 0.8; }
}

.scn-palace-patriots-warning {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a89878 100%),
              radial-gradient(ellipse at 80% 50%, rgba(255,230,200,0.3) 0%, transparent 70%);
}
.scn-palace-patriots-warning .desk {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 35%; 
  background: linear-gradient(180deg, #7a6a4a, #5a4a2a); 
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: p2-desk 10s ease-in-out infinite;
}
.scn-palace-patriots-warning .letter {
  position: absolute; bottom: 28%; left: 30%; width: 60px; height: 45px; 
  background: #f0e8d0; border: 1px solid #8a7a5a; 
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2); animation: p2-letter 6s ease-in-out infinite;
}
.scn-palace-patriots-warning .quill {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 8px; 
  background: linear-gradient(90deg, #6a5a3a, #d0b890); 
  border-radius: 0 50% 50% 0; transform-origin: left center; 
  animation: p2-quill 4s ease-in-out infinite;
}
.scn-palace-patriots-warning .writer {
  position: absolute; bottom: 22%; left: 25%; width: 30px; height: 70px; 
  background: #3a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  box-shadow: 0 0 10px rgba(0,0,0,0.3); 
  animation: p2-writer 3s ease-in-out infinite;
}
.scn-palace-patriots-warning .patriot {
  position: absolute; bottom: 20%; right: 25%; width: 28px; height: 65px; 
  background: #2a1a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  opacity: 0.8; animation: p2-patriot 5s ease-in-out infinite;
}
.scn-palace-patriots-warning .candle {
  position: absolute; bottom: 30%; right: 45%; width: 12px; height: 28px; 
  background: radial-gradient(circle at 50% 0%, #ffd699 0%, #b08050 60%, transparent 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 8px rgba(255,210,150,0.5);
  animation: p2-candle 2s ease-in-out infinite alternate;
}
.scn-palace-patriots-warning .window {
  position: absolute; top: 5%; right: 8%; width: 120px; height: 90px; 
  background: linear-gradient(180deg, #aaccee 0%, #ddeeff 100%); 
  border: 6px solid #6b5b3a; border-radius: 2px; 
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3); 
  animation: p2-window 12s ease-in-out infinite;
}
@keyframes p2-desk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes p2-letter {
  0%, 100% { transform: rotate(0deg); }
  33% { transform: rotate(-1deg) translateY(-1px); }
  66% { transform: rotate(1deg) translateY(0); }
}
@keyframes p2-quill {
  0%, 100% { transform: rotate(-10deg); }
  25% { transform: rotate(-5deg); }
  50% { transform: rotate(-15deg); }
  75% { transform: rotate(-8deg); }
}
@keyframes p2-writer {
  0%, 100% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(1px,-2px) rotate(2deg); }
  50% { transform: translate(-1px,0) rotate(-1deg); }
  75% { transform: translate(0,-1px) rotate(1deg); }
}
@keyframes p2-patriot {
  0%, 100% { transform: translateY(0) scale(1); }
  33% { transform: translateY(-3px) scale(1.02); }
  66% { transform: translateY(1px) scale(0.98); }
}
@keyframes p2-candle {
  0% { box-shadow: 0 0 20px 5px rgba(255,210,150,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 12px rgba(255,200,130,0.7); opacity: 1; }
  100% { box-shadow: 0 0 15px 4px rgba(255,210,150,0.3); opacity: 0.8; }
}
@keyframes p2-window {
  0%, 100% { opacity: 0.9; }
  50% { opacity: 1; }
}

.scn-palace-wallet-stolen-spy {
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 40%, #a09070 100%),
              radial-gradient(ellipse at 20% 60%, rgba(255,230,200,0.3) 0%, transparent 70%);
}
.scn-palace-wallet-stolen-spy .window {
  position: absolute; top: 8%; right: 5%; width: 150px; height: 110px; 
  background: linear-gradient(180deg, #aaccee 0%, #ddeeff 100%);
  border: 8px solid #6b5b3a; border-radius: 3px; 
  box-shadow: inset 0 0 40px rgba(255,255,255,0.3); 
  animation: p3-window 15s ease-in-out infinite;
}
.scn-palace-wallet-stolen-spy .baron {
  position: absolute; bottom: 15%; right: 5%; width: 35px; height: 85px; 
  background: #2a1a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; animation: p3-baron 6s ease-in-out infinite;
}
.scn-palace-wallet-stolen-spy .spy {
  position: absolute; bottom: 18%; left: 40%; width: 28px; height: 70px; 
  background: #1a0a00; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  opacity: 0.8; animation: p3-spy 5s ease-in-out infinite;
}
.scn-palace-wallet-stolen-spy .wallet {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 20px; 
  background: #6a4a2a; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); 
  animation: p3-wallet 4s ease-in-out infinite;
}
.scn-palace-wallet-stolen-spy .curtain {
  position: absolute; top: 0; right: 8%; width: 30px; height: 100%; 
  background: linear-gradient(180deg, #8b6b4b, #5a3a2a); 
  border-radius: 0 0 10px 10px; opacity: 0.7; 
  animation: p3-curtain 8s ease-in-out infinite alternate;
}
.scn-palace-wallet-stolen-spy .shadow {
  position: absolute; bottom: 0; left: 30%; width: 80px; height: 20px; 
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 80%); 
  animation: p3-shadow 3s ease-in-out infinite alternate;
}
.scn-palace-wallet-stolen-spy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%; 
  background: linear-gradient(180deg, #7a6a4a, #5a4a2a); 
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.3);
}
@keyframes p3-window {
  0%, 100% { opacity: 0.95; }
  33% { opacity: 1; }
  66% { opacity: 0.9; }
}
@keyframes p3-baron {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes p3-spy {
  0%, 100% { transform: translate(0,0) scale(1); }
  33% { transform: translate(8px, -3px) scale(1.05); }
  66% { transform: translate(4px, 1px) scale(0.95); }
}
@keyframes p3-wallet {
  0%, 100% { transform: translate(0,0) rotate(0deg); opacity: 1; }
  25% { transform: translate(5px, -2px) rotate(5deg); opacity: 0.9; }
  50% { transform: translate(10px, -5px) rotate(10deg); opacity: 0.8; }
  75% { transform: translate(5px, -2px) rotate(5deg); opacity: 0.9; }
}
@keyframes p3-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-8px); }
  100% { transform: translateX(0); }
}
@keyframes p3-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.3); opacity: 0.5; }
  100% { transform: scaleX(0.8); opacity: 0.2; }
}

.scn-palace-oberg-disguise {
  background: linear-gradient(180deg, #e0d0b8 0%, #c0b098 50%, #a09078 100%),
              radial-gradient(ellipse at 40% 30%, rgba(255,235,210,0.3) 0%, transparent 60%);
}
.scn-palace-oberg-disguise .mirror {
  position: absolute; top: 15%; left: 25%; width: 100px; height: 130px; 
  background: linear-gradient(135deg, #d0c8b8 0%, #b8b0a0 50%, #a89888 100%);
  border: 6px solid #6b5b3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  box-shadow: 0 0 30px rgba(0,0,0,0.2); animation: p4-mirror 12s ease-in-out infinite;
}
.scn-palace-oberg-disguise .figure {
  position: absolute; bottom: 15%; left: 30%; width: 32px; height: 85px; 
  background: #2a1a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; animation: p4-figure 4s ease-in-out infinite;
}
.scn-palace-oberg-disguise .uniform {
  position: absolute; bottom: 18%; left: 28%; width: 28px; height: 60px; 
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a); 
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; 
  border: 1px solid #8b6b4b; box-shadow: 0 2px 6px rgba(0,0,0,0.3); 
  opacity: 0.9; animation: p4-uniform 8s ease-in-out infinite;
}
.scn-palace-oberg-disguise .window {
  position: absolute; top: 8%; right: 10%; width: 130px; height: 100px; 
  background: linear-gradient(180deg, #aaccee 0%, #ddeeff 100%);
  border: 6px solid #7a6a4a; border-radius: 2px; 
  box-shadow: inset 0 0 40px rgba(255,255,255,0.3); 
  animation: p4-window 15s ease-in-out infinite;
}
.scn-palace-oberg-disguise .curtain {
  position: absolute; top: 0; right: 12%; width: 25px; height: 100%; 
  background: linear-gradient(180deg, #8b6b4b, #5a3a2a); 
  border-radius: 0 0 8px 8px; opacity: 0.6; 
  animation: p4-curtain 10s ease-in-out infinite alternate;
}
.scn-palace-oberg-disguise .candle {
  position: absolute; top: 20%; left: 60%; width: 10px; height: 24px; 
  background: radial-gradient(circle at 50% 0%, #ffd699 0%, #b08050 60%, transparent 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 25px 6px rgba(255,210,150,0.5);
  animation: p4-candle 2s ease-in-out infinite alternate;
}
.scn-palace-oberg-disguise .shadow {
  position: absolute; bottom: 0; left: 20%; width: 120px; height: 25px; 
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 80%); 
  animation: p4-shadow 4s ease-in-out infinite alternate;
}
@keyframes p4-mirror {
  0%, 100% { transform: rotate(0deg); box-shadow: 0 0 30px rgba(0,0,0,0.2); }
  33% { transform: rotate(1deg); box-shadow: 0 0 40px rgba(0,0,0,0.25); }
  66% { transform: rotate(-1deg); box-shadow: 0 0 20px rgba(0,0,0,0.15); }
}
@keyframes p4-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes p4-uniform {
  0%, 100% { transform: translate(0,0) scale(1); }
  33% { transform: translate(2px, -1px) scale(1.02); }
  66% { transform: translate(-1px, 0) scale(0.98); }
}
@keyframes p4-window {
  0%, 100% { opacity: 0.95; }
  50% { opacity: 1; }
}
@keyframes p4-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-10px); }
  100% { transform: translateX(0); }
}
@keyframes p4-candle {
  0% { box-shadow: 0 0 20px 5px rgba(255,210,150,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 10px rgba(255,200,130,0.7); opacity: 1; }
  100% { box-shadow: 0 0 15px 3px rgba(255,210,150,0.3); opacity: 0.8; }
}
@keyframes p4-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
  100% { transform: scaleX(0.9); opacity: 0.2; }
}

.scn-dismissing-captain {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b886 40%, #8a6e4e 100%),
              radial-gradient(ellipse at 40% 50%, #fff8e0 0%, transparent 60%);
}
.scn-dismissing-captain .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(200,160,100,0.3) 0%, rgba(120,80,40,0.2) 100%); }
.scn-dismissing-captain .window-glow {
  position:absolute; top:10%; left:5%; width:30%; height:40%;
  background: linear-gradient(180deg, #fff4d0 0%, transparent 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 0 40px 20px rgba(255,244,208,0.5);
  animation: dc-window 4s ease-in-out infinite alternate;
}
.scn-dismissing-captain .desk {
  position:absolute; bottom:5%; left:20%; right:15%; height:30%;
  background: linear-gradient(180deg, #6a4a2e 0%, #3d2b1a 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-dismissing-captain .chair {
  position:absolute; bottom:20%; left:45%; width:50px; height:70px;
  background: linear-gradient(180deg, #4a3522 0%, #2a1c10 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dc-chair 8s ease-in-out infinite;
}
.scn-dismissing-captain .captain-silhouette {
  position:absolute; bottom:18%; left:20%; width:45px; height:100px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0702 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-captain 5s ease-in-out infinite alternate;
}
.scn-dismissing-captain .lamp {
  position:absolute; bottom:38%; left:30%; width:10px; height:12px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 70%);
  border-radius: 50%; box-shadow: 0 0 20px 8px #ffd680, 0 0 40px 15px rgba(255,214,128,0.4);
  animation: dc-lamp 3s ease-in-out infinite alternate;
}
.scn-dismissing-captain .papers {
  position:absolute; bottom:12%; left:30%; width:30px; height:20px;
  background: linear-gradient(135deg, #f0e0c0 0%, #c8b090 100%);
  border-radius: 4px; transform: rotate(-5deg);
  animation: dc-papers 6s ease-in-out infinite;
}
.scn-dismissing-captain .shadow-tensive {
  position:absolute; bottom:5%; right:10%; width:60%; height:50%;
  background: radial-gradient(ellipse at 100% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: dc-shadow 4s ease-in-out infinite alternate;
}
@keyframes dc-window { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.8; transform: scaleY(0.98); } }
@keyframes dc-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dc-captain { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-1px) rotate(0.5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes dc-lamp { 0% { box-shadow: 0 0 15px 5px #ffd680, 0 0 30px 10px rgba(255,214,128,0.3); opacity:0.9; } 50% { box-shadow: 0 0 25px 10px #ffd680, 0 0 50px 20px rgba(255,214,128,0.5); opacity:1; } 100% { box-shadow: 0 0 18px 6px #ffd680, 0 0 35px 12px rgba(255,214,128,0.35); opacity:0.95; } }
@keyframes dc-papers { 0% { transform: rotate(-5deg) translate(0,0); } 50% { transform: rotate(-4deg) translate(2px,-1px); } 100% { transform: rotate(-5deg) translate(0,0); } }
@keyframes dc-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

.scn-wondering-about-wound {
  background: linear-gradient(180deg, #f0e4d0 0%, #d4c4a8 50%, #a08060 100%),
              radial-gradient(ellipse at 60% 30%, #fff8f0 0%, transparent 50%);
}
.scn-wondering-about-wound .room-bg2 { position:absolute; inset:0; background: linear-gradient(135deg, rgba(160,140,120,0.2) 0%, transparent 100%); }
.scn-wondering-about-wound .table {
  position:absolute; bottom:5%; left:10%; right:20%; height:35%;
  background: linear-gradient(180deg, #5a3e28 0%, #3a2618 100%);
  border-radius: 8% 8% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-wondering-about-wound .chair2 {
  position:absolute; bottom:20%; left:55%; width:50px; height:60px;
  background: linear-gradient(180deg, #4a3522 0%, #2a1c10 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ww-chair 7s ease-in-out infinite alternate;
}
.scn-wondering-about-wound .figure-wonder {
  position:absolute; bottom:15%; left:20%; width:40px; height:90px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0702 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ww-figure 4s ease-in-out infinite;
}
.scn-wondering-about-wound .map {
  position:absolute; bottom:15%; left:30%; width:50px; height:35px;
  background: linear-gradient(135deg, #e0d0b0 0%, #b8a88c 100%);
  border-radius: 6px; transform: rotate(2deg);
  animation: ww-map 10s ease-in-out infinite;
}
.scn-wondering-about-wound .glass {
  position:absolute; bottom:25%; left:25%; width:20px; height:25px;
  background: linear-gradient(180deg, rgba(200,220,240,0.6) 0%, rgba(180,200,220,0.3) 100%);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  box-shadow: inset 0 -2px 4px rgba(255,255,255,0.3);
  animation: ww-glass 6s ease-in-out infinite alternate;
}
.scn-wondering-about-wound .lamp2 {
  position:absolute; bottom:38%; left:45%; width:12px; height:14px;
  background: radial-gradient(circle, #ffe680 0%, #c09840 70%);
  border-radius: 50%; box-shadow: 0 0 24px 10px #ffe680, 0 0 48px 20px rgba(255,230,128,0.4);
  animation: ww-lamp 3.5s ease-in-out infinite alternate;
}
.scn-wondering-about-wound .shadow-on-wall {
  position:absolute; bottom:5%; right:15%; width:50%; height:60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: ww-shadow 5s ease-in-out infinite alternate;
}
@keyframes ww-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ww-figure { 0% { transform: translate(0,0) rotate(-1deg); } 25% { transform: translate(3px, -2px) rotate(0deg); } 50% { transform: translate(6px, -1px) rotate(1deg); } 75% { transform: translate(3px, -3px) rotate(0deg); } 100% { transform: translate(0,0) rotate(-1deg); } }
@keyframes ww-map { 0% { transform: rotate(2deg) translate(0,0); } 50% { transform: rotate(1deg) translate(2px, -1px); } 100% { transform: rotate(2deg) translate(0,0); } }
@keyframes ww-glass { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes ww-lamp { 0% { box-shadow: 0 0 18px 6px #ffe680, 0 0 36px 15px rgba(255,230,128,0.3); } 50% { box-shadow: 0 0 30px 12px #ffe680, 0 0 60px 25px rgba(255,230,128,0.5); } 100% { box-shadow: 0 0 22px 8px #ffe680, 0 0 44px 18px rgba(255,230,128,0.35); } }
@keyframes ww-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

.scn-yacht-impression {
  background: linear-gradient(180deg, #f7b283 0%, #e8925c 20%, #c0693a 50%, #5a3a2a 100%),
              radial-gradient(ellipse at 50% 80%, #ffcd94 0%, transparent 60%);
}
.scn-yacht-impression .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a2a1a 0%, #c0693a 40%, #f7b283 70%, transparent 100%); animation: yi-sky 12s ease-in-out infinite alternate; }
.scn-yacht-impression .sea {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #1a3a4a 0%, #0a1a2a 100%);
  animation: yi-sea 8s ease-in-out infinite alternate;
}
.scn-yacht-impression .yacht-hull {
  position:absolute; bottom:25%; left:30%; width:40%; height:20%;
  background: linear-gradient(180deg, #f0ece8 0%, #c8c4c0 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 60% 60%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: yi-hull 4s ease-in-out infinite;
}
.scn-yacht-impression .mast-fore {
  position:absolute; bottom:35%; left:38%; width:4px; height:30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  transform-origin: bottom center;
  animation: yi-mast 6s ease-in-out infinite;
}
.scn-yacht-impression .mast-aft {
  position:absolute; bottom:35%; left:55%; width:4px; height:25%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  transform-origin: bottom center;
  animation: yi-mast 6s ease-in-out infinite reverse;
}
.scn-yacht-impression .flag {
  position:absolute; bottom:55%; left:55%; width:20px; height:12px;
  background: linear-gradient(135deg, #b83d2a 0%, #8a2a1a 100%);
  border-radius: 0 20% 20% 0;
  animation: yi-flag 3s ease-in-out infinite alternate;
}
.scn-yacht-impression .sunset-glow {
  position:absolute; bottom:40%; left:45%; width:80px; height:80px;
  background: radial-gradient(circle, #ffb070 0%, #c06030 40%, transparent 70%);
  border-radius: 50%;
  animation: yi-glow 10s ease-in-out infinite;
}
.scn-yacht-impression .cloud-yacht {
  position:absolute; top:10%; right:20%; width:100px; height:20px;
  background: linear-gradient(180deg, rgba(255,200,160,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: yi-cloud 40s linear infinite;
}
@keyframes yi-sky { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.9; transform: scaleY(0.98); } }
@keyframes yi-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes yi-hull { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes yi-mast { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes yi-flag { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes yi-glow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes yi-cloud { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }

.scn-meeting-chater {
  background: linear-gradient(180deg, #f0a86a 0%, #d07a3a 30%, #8a5030 60%, #4a2a1a 100%),
              radial-gradient(ellipse at 50% 70%, #ffc880 0%, transparent 60%);
}
.scn-meeting-chater .sky-dusk2 { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a1a0a 0%, #d07a3a 50%, #f0a86a 80%, transparent 100%); animation: mc-sky 15s ease-in-out infinite alternate; }
.scn-meeting-chater .sea2 { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a3a4a 0%, #0a1a2a 100%); animation: mc-sea 10s ease-in-out infinite alternate; }
.scn-meeting-chater .deck {
  position:absolute; bottom:30%; left:10%; right:10%; height:15%;
  background: linear-gradient(180deg, #b8a890 0%, #8a7a62 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
  animation: mc-deck 7s ease-in-out infinite;
}
.scn-meeting-chater .awning {
  position:absolute; bottom:45%; left:25%; width:50%; height:20%;
  background: linear-gradient(135deg, #d0c8b0 0%, #a09880 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(5deg);
  animation: mc-awning 6s ease-in-out infinite alternate;
}
.scn-meeting-chater .wicker-chair {
  position:absolute; bottom:20%; left:30%; width:60px; height:50px;
  background: linear-gradient(135deg, #b8a090 0%, #8a7060 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
  animation: mc-chair 4s ease-in-out infinite;
}
.scn-meeting-chater .figure-chater {
  position:absolute; bottom:18%; left:32%; width:40px; height:70px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0702 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-chater 5s ease-in-out infinite alternate;
}
.scn-meeting-chater .figure-hornby {
  position:absolute; bottom:20%; left:50%; width:35px; height:70px;
  background: linear-gradient(180deg, #f0ece8 0%, #d8d0c8 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-hornby 6s ease-in-out infinite alternate;
}
.scn-meeting-chater .lantern3 {
  position:absolute; bottom:35%; left:55%; width:10px; height:14px;
  background: radial-gradient(circle, #ffd070 0%, #c09840 70%);
  border-radius: 50%; box-shadow: 0 0 20px 8px #ffd070, 0 0 40px 16px rgba(255,208,112,0.4);
  animation: mc-lantern 3s ease-in-out infinite alternate;
}
@keyframes mc-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes mc-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes mc-deck { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes mc-awning { 0% { transform: rotate(5deg) scaleY(1); } 50% { transform: rotate(4deg) scaleY(1.02); } 100% { transform: rotate(5deg) scaleY(1); } }
@keyframes mc-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mc-chater { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-1px) rotate(0.5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes mc-hornby { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-2px,-1px) rotate(-0.5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes mc-lantern { 0% { box-shadow: 0 0 15px 5px #ffd070, 0 0 30px 10px rgba(255,208,112,0.3); } 50% { box-shadow: 0 0 25px 10px #ffd070, 0 0 50px 20px rgba(255,208,112,0.5); } 100% { box-shadow: 0 0 18px 6px #ffd070, 0 0 35px 12px rgba(255,208,112,0.35); } }

.scn-palace-horny-woodroffe {
  background: linear-gradient(180deg, #f5e6c8 0%, #c2a67a 60%, #8c6b3e 100%),
              radial-gradient(ellipse at 50% 40%, rgba(255,220,150,0.3) 0%, transparent 70%);
}
.scn-palace-horny-woodroffe .wall-bg {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #d4b896 0%, #b3926e 100%);
  animation: hwr-wallpulse 10s ease-in-out infinite;
}
.scn-palace-horny-woodroffe .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
}
.scn-palace-horny-woodroffe .table {
  position:absolute; bottom:20%; left:40%; width:20%; height:15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(10deg);
}
.scn-palace-horny-woodroffe .figure-left {
  position:absolute; bottom:25%; left:25%; width:10%; height:35%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: skew(5deg);
  animation: hwr-figleft 4s ease-in-out infinite alternate;
}
.scn-palace-horny-woodroffe .figure-right {
  position:absolute; bottom:25%; right:25%; width:12%; height:40%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: skew(-3deg);
  animation: hwr-figright 5s ease-in-out infinite alternate;
}
.scn-palace-horny-woodroffe .lamp {
  position:absolute; top:10%; left:48%; width:4%; height:15%;
  background: linear-gradient(180deg, #e0b060 0%, #b08040 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 30px 15px rgba(200,160,80,0.5);
  animation: hwr-lamp 3s ease-in-out infinite alternate;
}
.scn-palace-horny-woodroffe .shadow {
  position:absolute; bottom:20%; left:35%; width:30%; height:10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
}
@keyframes hwr-wallpulse {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.98); }
}
@keyframes hwr-figleft {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes hwr-figright {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-4px) scale(1.02); }
  100% { transform: translateX(3px) scale(0.98); }
}
@keyframes hwr-lamp {
  0% { opacity: 0.8; }
  50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(200,160,80,0.7); }
  100% { opacity: 0.85; }
}

.scn-palace-oberg-enigmatic {
  background: linear-gradient(180deg, #f0d8b0 0%, #bfa07a 60%, #8c6b3e 100%),
              radial-gradient(ellipse at 50% 30%, rgba(255,220,180,0.2) 0%, transparent 60%);
}
.scn-palace-oberg-enigmatic .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #d4b896 0%, #b3926e 100%);
}
.scn-palace-oberg-enigmatic .paneling {
  position:absolute; top:10%; left:50%; width:15%; height:80%;
  background: linear-gradient(90deg, #8c6b3e 0%, #a0784a 100%);
  border-left: 2px solid #5a3a2a;
}
.scn-palace-oberg-enigmatic .detective {
  position:absolute; bottom:30%; left:50%; width:10%; height:35%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: translateX(-50%);
  animation: oeg-detective 6s ease-in-out infinite;
}
.scn-palace-oberg-enigmatic .figure {
  position:absolute; bottom:30%; right:20%; width:12%; height:40%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30%;
  animation: oeg-figure 5s ease-in-out infinite alternate;
}
.scn-palace-oberg-enigmatic .chandelier {
  position:absolute; top:5%; left:50%; width:20%; height:8%;
  background: radial-gradient(ellipse, #e0b060 0%, #b08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,160,80,0.4);
  animation: oeg-chandelier 4s ease-in-out infinite alternate;
}
.scn-palace-oberg-enigmatic .door {
  position:absolute; bottom:30%; left:20%; width:12%; height:50%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 4px;
}
.scn-palace-oberg-enigmatic .shadow {
  position:absolute; bottom:20%; left:25%; width:50%; height:15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: oeg-shadow 8s ease-in-out infinite;
}
@keyframes oeg-detective {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes oeg-figure {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-5px) rotate(3deg); }
  100% { transform: translateX(2px) rotate(-2deg); }
}
@keyframes oeg-chandelier {
  0% { opacity: 0.85; box-shadow: 0 0 30px 15px rgba(200,160,80,0.3); }
  50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(200,160,80,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 35px 18px rgba(200,160,80,0.35); }
}
@keyframes oeg-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.25; }
}

.scn-palace-cross-ribbon {
  background: linear-gradient(180deg, #d4b896 0%, #b3926e 50%, #8c6b3e 100%),
              radial-gradient(ellipse at 50% 60%, rgba(255,200,100,0.3) 0%, transparent 70%);
}
.scn-palace-cross-ribbon .coat {
  position:absolute; bottom:0; left:20%; right:20%; height:80%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 0 0;
  animation: crs-coat 8s ease-in-out infinite;
}
.scn-palace-cross-ribbon .ribbon {
  position:absolute; top:40%; left:45%; width:10%; height:15%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  transform: rotate(-30deg);
  border-radius: 2px;
  animation: crs-ribbon 2s ease-in-out infinite alternate;
}
.scn-palace-cross-ribbon .cross {
  position:absolute; top:45%; left:47%; width:6%; height:10%;
  background: radial-gradient(circle, #d4af37 0%, #b8860b 100%);
  clip-path: polygon(40% 0, 60% 0, 60% 40%, 100% 40%, 100% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 60%, 0 60%, 0 40%, 40% 40%);
  animation: crs-cross 4s ease-in-out infinite;
}
.scn-palace-cross-ribbon .collar {
  position:absolute; top:20%; left:40%; width:20%; height:15%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-palace-cross-ribbon .gold-light {
  position:absolute; top:40%; left:40%; width:20%; height:20%;
  background: radial-gradient(circle, rgba(212,175,55,0.4) 0%, transparent 100%);
  animation: crs-glow 3s ease-in-out infinite alternate;
}
.scn-palace-cross-ribbon .shoulder {
  position:absolute; top:20%; left:10%; width:30%; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  transform: rotate(15deg);
}
@keyframes crs-coat {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.03); }
  100% { filter: brightness(0.98); }
}
@keyframes crs-ribbon {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-28deg) translateY(-2px); }
  100% { transform: rotate(-32deg) translateY(1px); }
}
@keyframes crs-cross {
  0% { transform: scale(1); opacity:0.9; }
  50% { transform: scale(1.05); opacity:1; }
  100% { transform: scale(0.98); opacity:0.85; }
}
@keyframes crs-glow {
  0% { opacity:0.3; }
  50% { opacity:0.7; }
  100% { opacity:0.4; }
}

.scn-palace-armida-santini {
  background: linear-gradient(180deg, #f5e6c8 0%, #c2a67a 60%, #8c6b3e 100%),
              radial-gradient(ellipse at 50% 40%, rgba(255,220,150,0.3) 0%, transparent 70%);
}
.scn-palace-armida-santini .wall-bg {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #d4b896 0%, #b3926e 100%);
}
.scn-palace-armida-santini .door {
  position:absolute; bottom:30%; right:15%; width:15%; height:60%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%);
  border-radius: 4px;
  animation: arm-door 7s ease-in-out infinite;
}
.scn-palace-armida-santini .portrait {
  position:absolute; top:15%; left:25%; width:12%; height:25%;
  background: linear-gradient(180deg, #8c6b3e 0%, #5a3a2a 100%);
  border: 3px solid #a0784a;
  border-radius: 4px;
}
.scn-palace-armida-santini .figure-seated {
  position:absolute; bottom:35%; left:30%; width:14%; height:30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(5deg);
  animation: arm-seated 5s ease-in-out infinite alternate;
}
.scn-palace-armida-santini .figure-standing {
  position:absolute; bottom:30%; left:55%; width:12%; height:40%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30%;
  animation: arm-standing 4s ease-in-out infinite alternate;
}
.scn-palace-armida-santini .candle {
  position:absolute; bottom:35%; left:42%; width:3%; height:15%;
  background: linear-gradient(180deg, #f0e6d0 0%, #d4b896 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 10px rgba(255,200,100,0.6);
  animation: arm-candle 3s ease-in-out infinite alternate;
}
.scn-palace-armida-santini .glow {
  position:absolute; bottom:30%; left:40%; width:20%; height:20%;
  background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 100%);
  animation: arm-glow 4s ease-in-out infinite;
}
@keyframes arm-door {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes arm-seated {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-3px); }
  100% { transform: rotate(6deg) translateY(1px); }
}
@keyframes arm-standing {
  0% { transform: translateX(0) skew(0); }
  50% { transform: translateX(-3px) skew(1deg); }
  100% { transform: translateX(2px) skew(-1deg); }
}
@keyframes arm-candle {
  0% { opacity:0.7; box-shadow:0 0 15px 5px rgba(255,200,100,0.4); }
  50% { opacity:1; box-shadow:0 0 25px 12px rgba(255,200,100,0.7); }
  100% { opacity:0.8; box-shadow:0 0 18px 8px rgba(255,200,100,0.5); }
}
@keyframes arm-glow {
  0% { opacity:0.2; }
  50% { opacity:0.5; }
  100% { opacity:0.3; }
}

.scn-sm { background: linear-gradient(180deg, #d4a050 0%, #b08040 40%, #804020 100%), radial-gradient(ellipse at 60% 30%, #e0b060 0%, transparent 60%); }
.scn-sm .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #c09050, #a07030); animation: sm-wall 10s ease-in-out infinite alternate; }
.scn-sm .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #6a4020, #4a2810); }
.scn-sm .table { position: absolute; bottom: 35%; left: 40%; width: 80px; height: 50px; background: linear-gradient(180deg, #8a5a2a, #5a3010); border-radius: 4px; animation: sm-table 6s ease-in-out infinite; }
.scn-sm .lamp { position: absolute; top: 40%; left: 50%; width: 30px; height: 40px; background: radial-gradient(circle, #f0d080, #c09040); border-radius: 50%; box-shadow: 0 0 40px 10px #f0d080; animation: sm-lamp 3s ease-in-out infinite alternate; }
.scn-sm .figure { position: absolute; bottom: 35%; left: 30%; width: 20px; height: 50px; background: linear-gradient(180deg, #2a1a0a, #1a0a00); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sm-figure 4s ease-in-out infinite; }
.scn-sm .shadow { position: absolute; bottom: 0; left: 30%; width: 60px; height: 20px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(4px); animation: sm-shadow 4s ease-in-out infinite; }
.scn-sm .window { position: absolute; top: 20%; right: 30%; width: 60px; height: 80px; background: linear-gradient(180deg, #f0d0a0, #d0b080); border: 2px solid #6a4020; box-shadow: inset 0 0 10px rgba(255,255,255,0.3); animation: sm-window 8s ease-in-out infinite alternate; }
@keyframes sm-wall { 0% { opacity: 1; } 50% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes sm-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sm-lamp { 0% { box-shadow: 0 0 30px 8px #f0d080; } 50% { box-shadow: 0 0 50px 15px #ffd090; } 100% { box-shadow: 0 0 30px 8px #f0d080; } }
@keyframes sm-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sm-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(0.8) translateX(5px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes sm-window { 0% { background: linear-gradient(180deg, #f0d0a0, #d0b080); } 50% { background: linear-gradient(180deg, #e0c090, #c0a070); } 100% { background: linear-gradient(180deg, #f0d0a0, #d0b080); } }

.scn-od { background: linear-gradient(180deg, #c08040 0%, #a06030 40%, #603010 100%), radial-gradient(ellipse at 40% 50%, #d0a050 0%, transparent 70%); }
.scn-od .backdrop { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #b07040, #804020); animation: od-backdrop 12s ease-in-out infinite alternate; }
.scn-od .door { position: absolute; left: 20%; bottom: 20%; width: 40px; height: 70px; background: linear-gradient(180deg, #5a3010, #3a1a00); border: 2px solid #4a2010; animation: od-door 5s ease-in-out infinite; }
.scn-od .papers { position: absolute; bottom: 30%; right: 30%; width: 50px; height: 30px; background: #f0e0c0; border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.3); animation: od-papers 6s ease-in-out infinite alternate; }
.scn-od .figure { position: absolute; bottom: 20%; left: 50%; width: 22px; height: 55px; background: linear-gradient(180deg, #2a1a0a, #0a0000); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: od-figure 4s ease-in-out infinite; }
.scn-od .lamp { position: absolute; top: 30%; left: 60%; width: 20px; height: 30px; background: radial-gradient(circle, #f0d080, #c09040); box-shadow: 0 0 30px 8px #f0c060; animation: od-lamp 3s ease-in-out infinite alternate; }
.scn-od .carpet { position: absolute; bottom: 0; left: 10%; right: 10%; height: 15%; background: linear-gradient(180deg, #803020, #602010); border-radius: 20% 20% 0 0; animation: od-carpet 8s ease-in-out infinite; }
@keyframes od-backdrop { 0% { opacity: 1; } 50% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes od-door { 0% { transform: scaleX(1) rotate(0); } 50% { transform: scaleX(0.95) rotate(-1deg); } 100% { transform: scaleX(1) rotate(0); } }
@keyframes od-papers { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes od-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes od-lamp { 0% { box-shadow: 0 0 20px 5px #f0c060; } 50% { box-shadow: 0 0 40px 10px #f0d080; } 100% { box-shadow: 0 0 20px 5px #f0c060; } }
@keyframes od-carpet { 0% { background: linear-gradient(180deg, #803020, #602010); } 50% { background: linear-gradient(180deg, #904030, #702010); } 100% { background: linear-gradient(180deg, #803020, #602010); } }

.scn-re { background: linear-gradient(180deg, #a07040 0%, #805030 40%, #502010 100%), radial-gradient(ellipse at 50% 20%, #c09050 0%, transparent 60%); }
.scn-re .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #905040, #703020); animation: re-wall 10s ease-in-out infinite alternate; }
.scn-re .desk { position: absolute; bottom: 30%; left: 30%; right: 30%; height: 20%; background: linear-gradient(180deg, #6a4020, #4a2810); border-radius: 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: re-desk 9s ease-in-out infinite; }
.scn-re .candle { position: absolute; bottom: 40%; left: 50%; width: 12px; height: 30px; background: linear-gradient(180deg, #e0c080, #c0a060); border-radius: 2px; box-shadow: 0 0 20px 4px #f0d090; animation: re-candle 3s ease-in-out infinite alternate; }
.scn-re .figure { position: absolute; bottom: 30%; left: 40%; width: 24px; height: 60px; background: linear-gradient(180deg, #1a0a00, #0a0000); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: re-figure 5s ease-in-out infinite; }
.scn-re .shadow { position: absolute; bottom: 0; left: 25%; width: 80px; height: 25px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(5px); animation: re-shadow 5s ease-in-out infinite; }
.scn-re .chair { position: absolute; bottom: 30%; left: 20%; width: 20px; height: 30px; background: linear-gradient(180deg, #4a2810, #2a1000); border-radius: 5%; animation: re-chair 7s ease-in-out infinite; }
@keyframes re-wall { 0% { background: linear-gradient(180deg, #905040, #703020); } 50% { background: linear-gradient(180deg, #a06050, #804030); } 100% { background: linear-gradient(180deg, #905040, #703020); } }
@keyframes re-desk { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes re-candle { 0% { box-shadow: 0 0 15px 3px #f0d090; transform: scaleY(1); } 50% { box-shadow: 0 0 30px 8px #f0d090; transform: scaleY(1.02); } 100% { box-shadow: 0 0 15px 3px #f0d090; transform: scaleY(1); } }
@keyframes re-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes re-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(0.7) translateX(10px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes re-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }

.scn-he { background: linear-gradient(180deg, #b08050 0%, #906040 40%, #603020 100%), radial-gradient(ellipse at 70% 40%, #d0a060 0%, transparent 70%); }
.scn-he .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #a07040, #805030); animation: he-wall 11s ease-in-out infinite alternate; }
.scn-he .window { position: absolute; top: 20%; right: 20%; width: 70px; height: 90px; background: linear-gradient(180deg, #e0c0a0, #c0a080); border: 3px solid #6a4020; box-shadow: inset 0 0 15px rgba(255,255,255,0.3); animation: he-window 7s ease-in-out infinite alternate; }
.scn-he .figure { position: absolute; bottom: 25%; left: 50%; width: 25px; height: 65px; background: linear-gradient(180deg, #2a1a0a, #0a0000); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: he-figure 4s ease-in-out infinite; }
.scn-he .curtain { position: absolute; top: 20%; right: 20%; width: 10px; height: 90px; background: linear-gradient(180deg, #804020, #602010); border-radius: 0 5px 5px 0; animation: he-curtain 6s ease-in-out infinite alternate; }
.scn-he .table { position: absolute; bottom: 25%; left: 20%; width: 60px; height: 40px; background: linear-gradient(180deg, #7a4a1a, #5a3010); border-radius: 5%; animation: he-table 8s ease-in-out infinite; }
.scn-he .candle { position: absolute; bottom: 45%; left: 25%; width: 10px; height: 25px; background: linear-gradient(180deg, #e0c080, #c0a060); box-shadow: 0 0 20px 5px #f0d090; animation: he-candle 3s ease-in-out infinite alternate; }
@keyframes he-wall { 0% { background: linear-gradient(180deg, #a07040, #805030); } 50% { background: linear-gradient(180deg, #b08050, #906040); } 100% { background: linear-gradient(180deg, #a07040, #805030); } }
@keyframes he-window { 0% { background: linear-gradient(180deg, #e0c0a0, #c0a080); } 50% { background: linear-gradient(180deg, #d0b090, #b09070); } 100% { background: linear-gradient(180deg, #e0c0a0, #c0a080); } }
@keyframes he-figure { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes he-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1); } }
@keyframes he-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes he-candle { 0% { box-shadow: 0 0 15px 3px #f0d090; } 50% { box-shadow: 0 0 35px 8px #f0d090; } 100% { box-shadow: 0 0 15px 3px #f0d090; } }

.scn-durnfords-reaction { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 50%, #ffa500 100%), radial-gradient(ellipse at 50% 20%, #fff 0%, transparent 50%); }
.scn-durnfords-reaction .sky { position:absolute; inset:0; background: linear-gradient(180deg, #b0e0e6 0%, #fff 50%, #87CEEB 100%); animation: dr-sky 8s ease-in-out infinite alternate; }
.scn-durnfords-reaction .sun { position:absolute; top:15%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff 0%, #ffd700 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 20px rgba(255,215,0,0.5); animation: dr-sun 6s ease-in-out infinite; }
.scn-durnfords-reaction .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1e90ff 0%, #00008b 100%); border-radius:60% 40% 0 0 / 20% 30% 0 0; animation: dr-sea 12s ease-in-out infinite alternate; }
.scn-durnfords-reaction .hull { position:absolute; bottom:35%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #8B4513 0%, #5C4033 100%); border-radius: 30% 30% 40% 40% / 70% 70% 30% 30%; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); animation: dr-hull 4s ease-in-out infinite; }
.scn-durnfords-reaction .sail { position:absolute; bottom:45%; left:30%; width:20%; height:25%; background: linear-gradient(180deg, #f5f5dc 0%, #d3d3d3 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 50% 100%, 0% 80%); filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.2)); animation: dr-sail 10s ease-in-out infinite; }
.scn-durnfords-reaction .figure { position:absolute; bottom:30%; left:45%; width:20px; height:40px; background: #2c2c2c; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr-figure 3s ease-in-out infinite; }
@keyframes dr-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes dr-sun { 0% { transform: scale(1); box-shadow: 0 0 80px 20px rgba(255,215,0,0.5); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 30px rgba(255,215,0,0.7); } 100% { transform: scale(0.95); box-shadow: 0 0 60px 10px rgba(255,215,0,0.4); } }
@keyframes dr-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes dr-hull { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dr-sail { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes dr-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-bitter-memories { background: linear-gradient(180deg, #ffd700 0%, #ffa500 50%, #ff8c00 100%), radial-gradient(ellipse at 50% 80%, #fff 0%, transparent 70%); }
.scn-bitter-memories .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0e6 0%, #f0e68c 100%); animation: bm-sky 10s ease-in-out infinite alternate; }
.scn-bitter-memories .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1e90ff 0%, #0000cd 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; animation: bm-sea 8s ease-in-out infinite alternate; }
.scn-bitter-memories .deck { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8B4513 0%, #A0522D 100%); border-radius: 0 0 10% 10% / 0 0 20% 20%; box-shadow: 0 -5px 10px rgba(0,0,0,0.3); animation: bm-deck 6s ease-in-out infinite; }
.scn-bitter-memories .railing { position:absolute; bottom:45%; left:10%; width:80%; height:5%; background: #2c2c2c; border-radius: 5px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: bm-railing 15s linear infinite; }
.scn-bitter-memories .figure { position:absolute; bottom:25%; left:30%; width:18px; height:38px; background: #1a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bm-walk 5s ease-in-out infinite; }
.scn-bitter-memories .shadow { position:absolute; bottom:22%; left:30%; width:22px; height:8px; background: rgba(0,0,0,0.3); border-radius: 50%; animation: bm-shadow 5s ease-in-out infinite; }
@keyframes bm-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes bm-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes bm-deck { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes bm-railing { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes bm-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); } }
@keyframes bm-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(16px) scaleX(1.2); } 100% { transform: translateX(32px) scaleX(1); } }

.scn-durnfords-hidden-sorrow { background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 50%, #0a0a0a 100%), radial-gradient(ellipse at 50% 30%, #fff 0%, transparent 70%); }
.scn-durnfords-hidden-sorrow .porthole { position:absolute; top:10%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #fff 0%, #b0c4de 30%, #2c2c2c 50%, transparent 70%); border-radius:50%; border: 6px solid #555; animation: dh-porthole 8s ease-in-out infinite alternate; }
.scn-durnfords-hidden-sorrow .lightbeam { position:absolute; top:20%; left:46%; width:8%; height:60%; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%); transform: rotate(15deg); animation: dh-beam 6s ease-in-out infinite alternate; }
.scn-durnfords-hidden-sorrow .desk { position:absolute; bottom:20%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #8B4513 0%, #5C4033 100%); border-radius: 5px; box-shadow: 0 -2px 5px rgba(0,0,0,0.5); animation: dh-desk 12s ease-in-out infinite; }
.scn-durnfords-hidden-sorrow .figure { position:absolute; bottom:25%; left:35%; width:20px; height:35px; background: #1a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dh-figure 4s ease-in-out infinite; }
.scn-durnfords-hidden-sorrow .chair { position:absolute; bottom:22%; left:33%; width:16px; height:20px; background: #3a3a3a; border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; animation: dh-chair 4s ease-in-out infinite; }
.scn-durnfords-hidden-sorrow .shadow { position:absolute; bottom:20%; left:35%; width:25px; height:8px; background: rgba(0,0,0,0.4); border-radius:50%; animation: dh-shadow 4s ease-in-out infinite; }
@keyframes dh-porthole { 0% { box-shadow: 0 0 10px rgba(255,255,255,0.2); } 50% { box-shadow: 0 0 20px rgba(255,255,255,0.5); } 100% { box-shadow: 0 0 5px rgba(255,255,255,0.1); } }
@keyframes dh-beam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes dh-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dh-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dh-chair { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes dh-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }

.scn-asking-whats-wrong { background: linear-gradient(180deg, #ffd700 0%, #ffa500 40%, #ff8c00 100%), radial-gradient(ellipse at 50% 20%, #fff 0%, transparent 60%); }
.scn-asking-whats-wrong .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0e6 0%, #f0e68c 100%); animation: aw-sky 12s ease-in-out infinite alternate; }
.scn-asking-whats-wrong .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1e90ff 0%, #0000cd 100%); border-radius: 0 0 30% 30% / 0 0 40% 40%; animation: aw-sea 10s ease-in-out infinite alternate; }
.scn-asking-whats-wrong .deck { position:absolute; bottom:15%; left:0; right:0; height:35%; background: linear-gradient(180deg, #8B4513 0%, #A0522D 100%); border-radius: 0 0 10% 10% / 0 0 20% 20%; box-shadow: 0 -5px 10px rgba(0,0,0,0.3); animation: aw-deck 8s ease-in-out infinite; }
.scn-asking-whats-wrong .figure-left { position:absolute; bottom:20%; left:30%; width:20px; height:45px; background: #2c2c2c; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aw-figure-left 5s ease-in-out infinite; }
.scn-asking-whats-wrong .figure-right { position:absolute; bottom:20%; left:50%; width:20px; height:45px; background: #1a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aw-figure-right 6s ease-in-out infinite; }
.scn-asking-whats-wrong .mast { position:absolute; bottom:45%; left:60%; width:6px; height:35%; background: #333; border-radius: 3px; animation: aw-mast 20s linear infinite; }
@keyframes aw-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes aw-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes aw-deck { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes aw-figure-left { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(10px) rotate(0deg); } }
@keyframes aw-figure-right { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aw-mast { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }

.scn-london-defy-warning {
  background: 
    linear-gradient(180deg, #0e1120 0%, #1f1a2e 50%, #2c2440 100%),
    radial-gradient(ellipse at 50% 0%, #3a2a50 0%, transparent 70%);
}
.scn-london-defy-warning .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #141630 0%, transparent 100%);
  animation: ldw-sky 12s ease-in-out infinite alternate;
}
.scn-london-defy-warning .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-london-defy-warning .lamppost {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-london-defy-warning .lamp-glow {
  position: absolute; bottom: 42%; left: 50%; width: 80px; height: 80px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #ffcc70 0%, #dda050 30%, transparent 70%);
  border-radius: 50%;
  animation: ldw-lamp 3s ease-in-out infinite alternate;
}
.scn-london-defy-warning .figure {
  position: absolute; bottom: 22%; left: 35%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ldw-walk 4s ease-in-out infinite;
}
.scn-london-defy-warning .shadow {
  position: absolute; bottom: 20%; left: 34%; width: 20px; height: 6px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: ldw-shadow 4s ease-in-out infinite;
}
.scn-london-defy-warning .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(200,200,220,.3) 0%, rgba(200,200,220,.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ldw-drift-a 45s linear infinite;
}
.scn-london-defy-warning .cloud-b {
  position: absolute; top: 20%; right: 15%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(200,200,220,.25) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: ldw-drift-b 60s linear infinite reverse;
}
@keyframes ldw-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ldw-lamp {
  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: .8 }
}
@keyframes ldw-walk {
  0% { transform: translateX(0) rotate(-2deg) }
  25% { transform: translateX(8px) rotate(1deg) }
  50% { transform: translateX(16px) rotate(-2deg) }
  75% { transform: translateX(24px) rotate(1deg) }
  100% { transform: translateX(32px) rotate(0deg) }
}
@keyframes ldw-shadow {
  0% { transform: translateX(0) scaleX(1) }
  25% { transform: translateX(8px) scaleX(1.1) }
  50% { transform: translateX(16px) scaleX(1) }
  75% { transform: translateX(24px) scaleX(1.1) }
  100% { transform: translateX(32px) scaleX(1) }
}
@keyframes ldw-drift-a {
  0% { transform: translateX(-40px) }
  100% { transform: translateX(120vw) }
}
@keyframes ldw-drift-b {
  0% { transform: translateX(20px) }
  100% { transform: translateX(-120vw) }
}

.scn-london-two-men {
  background: 
    linear-gradient(135deg, #2a2230 0%, #1a1520 50%, #0e0a14 100%),
    radial-gradient(ellipse at 70% 40%, #3a2a40 0%, transparent 60%);
}
.scn-london-two-men .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2230 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.4);
}
.scn-london-two-men .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a3020 0%, #2a2018 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-london-two-men .desk {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a2018 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-london-two-men .lamp {
  position: absolute; bottom: 38%; left: 42%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-london-two-men .lamp-light {
  position: absolute; bottom: 38%; left: 42%; width: 80px; height: 80px;
  transform: translate(-50%, -10%);
  background: radial-gradient(circle, #ffd080 0%, #c09050 30%, transparent 70%);
  border-radius: 50%;
  animation: ltm-lamp 3s ease-in-out infinite alternate;
}
.scn-london-two-men .figure-left {
  position: absolute; bottom: 25%; left: 30%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltm-figure-l 5s ease-in-out infinite;
}
.scn-london-two-men .figure-right {
  position: absolute; bottom: 25%; right: 30%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltm-figure-r 4s ease-in-out infinite;
}
.scn-london-two-men .window {
  position: absolute; top: 12%; right: 10%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #16162a 100%);
  border: 2px solid #2a2a3a;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: ltm-window 10s ease-in-out infinite alternate;
}
@keyframes ltm-lamp {
  0% { opacity: .7; transform: translate(-50%, -10%) scale(.9) }
  50% { opacity: 1; transform: translate(-50%, -10%) scale(1.1) }
  100% { opacity: .8; transform: translate(-50%, -10%) scale(.95) }
}
@keyframes ltm-figure-l {
  0% { transform: translateX(0) rotate(1deg) }
  50% { transform: translateX(2px) rotate(-1deg) }
  100% { transform: translateX(0) rotate(1deg) }
}
@keyframes ltm-figure-r {
  0% { transform: translateX(0) rotate(-1deg) }
  50% { transform: translateX(-2px) rotate(2deg) }
  100% { transform: translateX(0) rotate(-1deg) }
}
@keyframes ltm-window {
  0% { opacity: .6 }
  50% { opacity: .8 }
  100% { opacity: .5 }
}

.scn-london-durnford-shot {
  background: 
    linear-gradient(180deg, #0e0e1a 0%, #16162a 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a40 0%, transparent 70%);
}
.scn-london-durnford-shot .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
  animation: lds-sky 15s ease-in-out infinite alternate;
}
.scn-london-durnford-shot .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-london-durnford-shot .body {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: lds-body 8s ease-in-out infinite alternate;
}
.scn-london-durnford-shot .kneeling-figure {
  position: absolute; bottom: 18%; left: 25%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lds-kneel 3s ease-in-out infinite alternate;
}
.scn-london-durnford-shot .lamppost {
  position: absolute; bottom: 28%; left: 60%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 10%;
}
.scn-london-durnford-shot .lamp-glow {
  position: absolute; bottom: 44%; left: 60%; width: 60px; height: 60px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #ffcc60 0%, #c09040 30%, transparent 70%);
  border-radius: 50%;
  animation: lds-lamp 3s ease-in-out infinite alternate;
}
.scn-london-durnford-shot .puddle {
  position: absolute; bottom: 10%; left: 32%; width: 40px; height: 10px;
  background: linear-gradient(180deg, rgba(60,60,80,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: lds-puddle 5s ease-in-out infinite alternate;
}
.scn-london-durnford-shot .shadow {
  position: absolute; bottom: 14%; left: 64%; width: 20px; height: 8px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: lds-shadow 6s ease-in-out infinite alternate;
}
@keyframes lds-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes lds-body {
  0% { transform: rotate(4deg) translateY(0) }
  50% { transform: rotate(6deg) translateY(-1px) }
  100% { transform: rotate(4deg) translateY(0) }
}
@keyframes lds-kneel {
  0% { transform: translateY(0) rotate(1deg) }
  50% { transform: translateY(-2px) rotate(-1deg) }
  100% { transform: translateY(0) rotate(1deg) }
}
@keyframes lds-lamp {
  0% { transform: translate(-50%, -50%) scale(.85); opacity: .6 }
  50% { transform: translate(-50%, -50%) scale(1.15); opacity: 1 }
  100% { transform: translate(-50%, -50%) scale(.9); opacity: .7 }
}
@keyframes lds-puddle {
  0% { opacity: .3; transform: scaleX(1) }
  50% { opacity: .5; transform: scaleX(1.05) }
  100% { opacity: .3; transform: scaleX(1) }
}
@keyframes lds-shadow {
  0% { opacity: .3; transform: translateX(0) scaleX(1) }
  50% { opacity: .5; transform: translateX(2px) scaleX(1.1) }
  100% { opacity: .3; transform: translateX(0) scaleX(1) }
}

.scn-london-hospital-vigil {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 30% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-london-hospital-vigil .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.3);
}
.scn-london-hospital-vigil .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3028 0%, #2a2218 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-london-hospital-vigil .bed {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 6px 6px 3px 3px;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
}
.scn-london-hospital-vigil .patient {
  position: absolute; bottom: 25%; left: 25%; width: 35%; height: 12%;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: lhv-patient 6s ease-in-out infinite alternate;
}
.scn-london-hospital-vigil .nurse {
  position: absolute; bottom: 22%; right: 15%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lhv-nurse 4s ease-in-out infinite alternate;
}
.scn-london-hospital-vigil .window {
  position: absolute; top: 10%; left: 10%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #0a0a1a 0%, #16162a 100%);
  border: 2px solid #2a2a3a;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: lhv-window 12s ease-in-out infinite alternate;
}
.scn-london-hospital-vigil .lamp {
  position: absolute; top: 20%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #c09050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,150,80,.3);
  animation: lhv-lamp 4s ease-in-out infinite alternate;
}
.scn-london-hospital-vigil .monitor {
  position: absolute; bottom: 38%; left: 70%; width: 10px; height: 6px;
  background: #4a6a3a;
  border-radius: 2px;
  animation: lhv-monitor 2s ease-in-out infinite;
}
@keyframes lhv-patient {
  0% { transform: translateY(0) rotate(2deg) }
  50% { transform: translateY(-1px) rotate(1.5deg) }
  100% { transform: translateY(0) rotate(2deg) }
}
@keyframes lhv-nurse {
  0% { transform: translateX(0) rotate(0deg) }
  50% { transform: translateX(2px) rotate(-1deg) }
  100% { transform: translateX(0) rotate(1deg) }
}
@keyframes lhv-window {
  0% { opacity: .5 }
  50% { opacity: .7 }
  100% { opacity: .4 }
}
@keyframes lhv-lamp {
  0% { opacity: .7; transform: scale(.9) }
  50% { opacity: 1; transform: scale(1.1) }
  100% { opacity: .8; transform: scale(.95) }
}
@keyframes lhv-monitor {
  0%,100% { opacity: .3 }
  50% { opacity: 1 }
}

.scn-abo-private-conference { background: linear-gradient(180deg, #eeddcc 0%, #ccbbaa 100%); }
.scn-abo-private-conference .wall { position:absolute; inset:0; background: linear-gradient(180deg, #eeddcc 0%, #ccbbaa 100%); }
.scn-abo-private-conference .window { position:absolute; top:15%; left:10%; width:20%; height:30%; background: radial-gradient(circle at 50% 50%, #ffffcc 0%, #eeddbb 50%, transparent 70%); border-radius:5px; box-shadow: inset 0 0 20px #fff, 0 0 30px #ffe; animation: pc-window 10s ease-in-out infinite alternate; }
.scn-abo-private-conference .desk { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%); border-radius:5px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-abo-private-conference .chair-boranski { position:absolute; bottom:20%; left:35%; width:10%; height:25%; background: linear-gradient(180deg, #5c4033 0%, #3a251a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform-origin: bottom center; animation: pc-chair 8s ease-in-out infinite; }
.scn-abo-private-conference .figure-boranski { position:absolute; bottom:30%; left:36%; width:8%; height:20%; background: linear-gradient(180deg, #2c1a0a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc-fig1 6s ease-in-out infinite alternate; }
.scn-abo-private-conference .figure-englishman { position:absolute; bottom:20%; right:20%; width:6%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 35% 35% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pc-fig2 9s ease-in-out infinite alternate; }
.scn-abo-private-conference .table-clutter { position:absolute; bottom:23%; left:30%; right:30%; height:5%; background: repeating-linear-gradient(45deg, #d4b38c 0px, #d4b38c 2px, #c59a6b 2px, #c59a6b 4px); border-radius:2px; opacity:0.6; }
@keyframes pc-window { 0% { opacity:0.8; box-shadow:0 0 20px #ffe; } 50% { opacity:1; box-shadow:0 0 40px #fff; } 100% { opacity:0.9; box-shadow:0 0 25px #eeddbb; } }
@keyframes pc-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes pc-fig1 { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes pc-fig2 { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }

.scn-abo-boranski-authority { background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%); }
.scn-abo-boranski-authority .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%); }
.scn-abo-boranski-authority .desk { position:absolute; bottom:20%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #6b5035 0%, #4a3020 100%); border-radius:10px; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-abo-boranski-authority .chair-high { position:absolute; bottom:20%; left:40%; width:12%; height:30%; background: linear-gradient(180deg, #5c4033 0%, #3a251a 100%); border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ba-chair 12s ease-in-out infinite alternate; }
.scn-abo-boranski-authority .figure-authority { position:absolute; bottom:30%; left:42%; width:10%; height:25%; background: linear-gradient(180deg, #2c1a0a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ba-fig 10s ease-in-out infinite; }
.scn-abo-boranski-authority .seal { position:absolute; top:15%; left:50%; width:8%; height:8%; background: radial-gradient(circle, #c9a96e 0%, #8b6914 100%); border-radius:50%; box-shadow: 0 0 10px #8b6914; animation: ba-seal 5s ease-in-out infinite alternate; }
.scn-abo-boranski-authority .shelf-books { position:absolute; top:5%; right:5%; width:15%; height:60%; background: linear-gradient(180deg, #6b5035 0%, #4a3020 100%); border-radius:5px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: ba-shelf 20s linear infinite; }
@keyframes ba-chair { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes ba-fig { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ba-seal { 0% { box-shadow:0 0 5px #8b6914; opacity:0.7 } 50% { box-shadow:0 0 15px #c9a96e; opacity:1 } 100% { box-shadow:0 0 8px #8b6914; opacity:0.8 } }
@keyframes ba-shelf { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }

.scn-abo-boranski-secret { background: linear-gradient(180deg, #2a2420 0%, #1a1612 100%); }
.scn-abo-boranski-secret .bg-darker { position:absolute; inset:0; background: linear-gradient(180deg, #2a2420 0%, #1a1612 100%); }
.scn-abo-boranski-secret .door-closed { position:absolute; top:10%; left:80%; width:10%; height:80%; background: linear-gradient(180deg, #4a3a30 0%, #2a1e14 100%); border-radius:5px; box-shadow: 0 0 10px rgba(0,0,0,.5); }
.scn-abo-boranski-secret .desk-cluttered { position:absolute; bottom:20%; left:10%; right:20%; height:15%; background: linear-gradient(180deg, #5a4535 0%, #3a2a1a 100%); border-radius:5px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-abo-boranski-secret .chair-tipped { position:absolute; bottom:20%; left:30%; width:8%; height:20%; background: linear-gradient(180deg, #5c4033 0%, #3a251a 100%); transform-origin: 50% 100%; border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; animation: bs-chair 0.5s ease-in-out infinite alternate; }
.scn-abo-boranski-secret .figure-rise { position:absolute; bottom:20%; left:35%; width:10%; height:25%; background: linear-gradient(180deg, #2c1a0a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bs-fig 1.5s ease-in-out infinite alternate; }
.scn-abo-boranski-secret .shadow { position:absolute; bottom:0; left:30%; right:30%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); animation: bs-shadow 1s ease-in-out infinite alternate; }
.scn-abo-boranski-secret .papers { position:absolute; bottom:25%; left:25%; width:8%; height:3%; background: #d4b38c; border-radius:2px; animation: bs-papers 2s ease-in-out infinite alternate; }
@keyframes bs-chair { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-5px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes bs-fig { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-10px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bs-shadow { 0% { opacity:0.2 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes bs-papers { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(5deg) translateX(2px) } 100% { transform: rotate(0deg) translateX(0) } }

.scn-abo-mystery-oberg { background: linear-gradient(180deg, #1e1815 0%, #0e0a08 100%); }
.scn-abo-mystery-oberg .bg-darker { position:absolute; inset:0; background: linear-gradient(180deg, #1e1815 0%, #0e0a08 100%); }
.scn-abo-mystery-oberg .map { position:absolute; top:10%; left:15%; width:40%; height:30%; background: linear-gradient(135deg, #b8a080 0%, #8a6a50 50%, #6a4a30 100%); border:2px solid #3a2a1a; border-radius:5px; animation: mo-map 10s ease-in-out infinite alternate; }
.scn-abo-mystery-oberg .desk { position:absolute; bottom:20%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #5a4535 0%, #3a2a1a 100%); border-radius:10px; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-abo-mystery-oberg .figure-boranski-smile { position:absolute; bottom:30%; left:35%; width:10%; height:30%; background: linear-gradient(180deg, #2c1a0a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mo-fig1 2s ease-in-out infinite alternate; }
.scn-abo-mystery-oberg .figure-shadow { position:absolute; bottom:25%; right:20%; width:8%; height:28%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mo-shadow 3s ease-in-out infinite alternate; }
.scn-abo-mystery-oberg .lamp-glow { position:absolute; top:5%; left:10%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, #ffdd99 0%, transparent 70%); animation: mo-lamp 4s ease-in-out infinite alternate; }
.scn-abo-mystery-oberg .chair { position:absolute; bottom:20%; left:30%; width:10%; height:25%; background: linear-gradient(180deg, #5c4033 0%, #3a251a 100%); border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%; transform-origin: bottom center; animation: mo-chair 8s ease-in-out infinite alternate; }
@keyframes mo-map { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes mo-fig1 { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-8px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mo-shadow { 0% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.7; transform: translateX(5px) } 100% { opacity:0.4; transform: translateX(0) } }
@keyframes mo-lamp { 0% { opacity:0.6; box-shadow:0 0 20px #ffdd99 } 50% { opacity:1; box-shadow:0 0 40px #ffcc66 } 100% { opacity:0.7; box-shadow:0 0 25px #ffdd99 } }
@keyframes mo-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }

.scn-forest-evening-gloom {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2a2a4a 30%, #3a3a5a 60%, #2a4a3a 100%),
    radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 70%);
}
.scn-forest-evening-gloom .sky-gloom { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3e 100%); animation: feg-sky 15s ease-in-out infinite alternate; }
.scn-forest-evening-gloom .trees-bg { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(90deg, #1a3a2a 0%, #2a4a3a 50%, #1a3a2a 100%); border-radius: 30% 70% 0 0; filter: blur(3px); }
.scn-forest-evening-gloom .trees-mid { position:absolute; bottom:20%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #2a4a3a 0%, #1a3a2a 50%, #0a2a1a 100%); clip-path: polygon(0% 100%, 10% 20%, 20% 40%, 30% 10%, 40% 30%, 50% 0%, 60% 25%, 70% 5%, 80% 35%, 90% 15%, 100% 100%); animation: feg-trees 20s ease-in-out infinite alternate; }
.scn-forest-evening-gloom .hut { position:absolute; bottom:22%; left:30%; width:80px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 8% 8% / 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-forest-evening-gloom .path { position:absolute; bottom:10%; left:25%; right:45%; height:8%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 20% 20% / 100% 100% 20% 20%; transform: skewX(-10deg); }
.scn-forest-evening-gloom .figure-gloom { position:absolute; bottom:18%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: feg-walk 5s ease-in-out infinite; }
.scn-forest-evening-gloom .lantern-gloom { position:absolute; bottom:20%; left:20%; width:6px; height:6px; background: radial-gradient(circle, #c08040 0%, #804020 70%); border-radius: 50%; box-shadow: 0 0 12px 6px #804020, 0 0 24px 12px rgba(128,64,32,.4); animation: feg-flicker 3s ease-in-out infinite alternate; }
@keyframes feg-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes feg-trees { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes feg-walk { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(15px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes feg-flicker { 0% { opacity:.8; box-shadow: 0 0 12px 4px #804020; } 50% { opacity:1; box-shadow: 0 0 18px 8px #c08040; } 100% { opacity:.7; box-shadow: 0 0 10px 3px #804020; } }

.scn-forest-night-rest {
  background: 
    linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 40%, #2a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #3a5a5a 0%, transparent 70%);
}
.scn-forest-night-rest .sky-night { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%); animation: fnr-sky 20s ease-in-out infinite alternate; }
.scn-forest-night-rest .moon { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #d0e0f0 0%, #a0b8d0 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(160,184,208,.5), 0 0 60px 30px rgba(160,184,208,.3); animation: fnr-moon 30s ease-in-out infinite alternate; }
.scn-forest-night-rest .trees-canopy { position:absolute; top:0; left:0; right:0; bottom:50%; background: linear-gradient(180deg, #1a3a2a 0%, #0a2a1a 70%, transparent 100%); filter: blur(2px); animation: fnr-drift 40s linear infinite; }
.scn-forest-night-rest .ground-leaves { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-forest-night-rest .sleeper { position:absolute; bottom:10%; left:35%; width:40px; height:20px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: fnr-breath 4s ease-in-out infinite; }
.scn-forest-night-rest .watcher { position:absolute; bottom:15%; left:55%; width:18px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fnr-still 8s ease-in-out infinite; }
.scn-forest-night-rest .firefly { position:absolute; bottom:25%; left:20%; width:4px; height:4px; background: radial-gradient(circle, #e0f0a0 0%, #b0d080 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 8px 4px rgba(176,208,128,.5); animation: fnr-firefly 6s ease-in-out infinite; }
@keyframes fnr-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes fnr-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes fnr-drift { 0% { transform: translateX(0) } 100% { transform: translateX(-100px) } }
@keyframes fnr-breath { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.02) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes fnr-still { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes fnr-firefly { 0% { opacity:.3; transform: translate(0,0) } 25% { opacity:1; transform: translate(10px,-5px) } 50% { opacity:.5; transform: translate(20px,0) } 75% { opacity:.8; transform: translate(30px,-10px) } 100% { opacity:.3; transform: translate(40px,0) } }

.scn-forest-night-watch {
  background: 
    linear-gradient(180deg, #0c0c28 0%, #1c1c3c 40%, #2c4c3c 100%),
    radial-gradient(ellipse at 50% 80%, #3a5a4a 0%, transparent 70%);
}
.scn-forest-night-watch .sky-stars { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a2a 100%); animation: fnw-sky 15s ease-in-out infinite alternate; }
.scn-forest-night-watch .tree-branch-left { position:absolute; top:10%; left:0; width:40%; height:30%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); clip-path: polygon(0% 0%, 100% 20%, 100% 30%, 60% 40%, 80% 70%, 0% 100%); animation: fnw-branch 25s ease-in-out infinite alternate; }
.scn-forest-night-watch .tree-branch-right { position:absolute; top:5%; right:0; width:50%; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); clip-path: polygon(100% 0%, 0% 10%, 0% 20%, 40% 50%, 20% 70%, 100% 100%); animation: fnw-branch 30s ease-in-out infinite alternate-reverse; }
.scn-forest-night-watch .ground-nw { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; }
.scn-forest-night-watch .sleeper-nw { position:absolute; bottom:8%; left:30%; width:45px; height:22px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: fnw-sleep 6s ease-in-out infinite; }
.scn-forest-night-watch .watcher-nw { position:absolute; bottom:15%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: fnw-watch 4s ease-in-out infinite; }
.scn-forest-night-watch .moonlight { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 50% 20%, rgba(200,220,240,0.15) 0%, transparent 70%); pointer-events: none; animation: fnw-glow 8s ease-in-out infinite alternate; }
@keyframes fnw-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fnw-branch { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes fnw-sleep { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(8deg) scale(1.02) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes fnw-watch { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes fnw-glow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-forest-dawn-renewed {
  background: 
    linear-gradient(180deg, #4a6a7a 0%, #8a9a6a 40%, #c0b070 70%, #e0d080 100%),
    radial-gradient(ellipse at 50% 0%, #f0e0a0 0%, transparent 80%);
}
.scn-forest-dawn-renewed .sky-dawn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a9aba 0%, #b0c8d0 50%, #e0e0b0 100%); animation: fdr-sky 20s ease-in-out infinite alternate; }
.scn-forest-dawn-renewed .sunrise { position:absolute; top:15%; left:45%; width:60px; height:60px; background: radial-gradient(circle, #f0e080 0%, #d0b060 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(208,176,96,.6), 0 0 80px 40px rgba(208,176,96,.3); animation: fdr-sun 12s ease-in-out infinite alternate; }
.scn-forest-dawn-renewed .trees-dawn { position:absolute; bottom:25%; left:0; right:0; height:50%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); clip-path: polygon(0% 100%, 5% 20%, 10% 40%, 15% 10%, 20% 30%, 25% 5%, 30% 25%, 35% 0%, 40% 20%, 45% 10%, 50% 30%, 55% 5%, 60% 20%, 65% 15%, 70% 35%, 75% 10%, 80% 25%, 85% 0%, 90% 15%, 95% 20%, 100% 100%); animation: fdr-trees 25s ease-in-out infinite alternate; }
.scn-forest-dawn-renewed .ground-dawn { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-forest-dawn-renewed .figure-sitting { position:absolute; bottom:10%; left:35%; width:22px; height:30px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: fdr-sit 6s ease-in-out infinite; }
.scn-forest-dawn-renewed .figure-standing { position:absolute; bottom:15%; left:55%; width:20px; height:38px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fdr-stand 8s ease-in-out infinite; }
.scn-forest-dawn-renewed .mist { position:absolute; bottom:20%; left:10%; right:10%; height:20%; background: linear-gradient(90deg, rgba(255,255,255,0.3) 0%, rgba(200,220,200,0.1) 50%, rgba(255,255,255,0.2) 100%); filter: blur(10px); animation: fdr-mist 30s linear infinite; }
@keyframes fdr-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes fdr-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes fdr-trees { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) } 100% { transform: translateX(0) } }
@keyframes fdr-sit { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(3deg) scale(1.02) } 100% { transform: rotate(5deg) scale(1) } }
@keyframes fdr-stand { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes fdr-mist { 0% { transform: translateX(-20px); opacity:.3 } 50% { transform: translateX(20px); opacity:.5 } 100% { transform: translateX(-20px); opacity:.3 } }

.scn-london-durnford-disturbed {
  background: linear-gradient(180deg, #d4b48c 0%, #a0785a 100%), radial-gradient(ellipse at 50% 120%, #6a4a3a 0%, transparent 70%);
}
.scn-london-durnford-disturbed .wall {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #b8a080 0%, #8a6a4a 100%); animation: ldist-wall 12s ease-in-out infinite;
}
.scn-london-durnford-disturbed .floor {
  position: absolute; inset: 60% 0 0 0; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); animation: ldist-floor 8s ease-in-out infinite alternate;
}
.scn-london-durnford-disturbed .table {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ldist-table 5s ease-in-out infinite;
}
.scn-london-durnford-disturbed .lamplight {
  position: absolute; bottom: 50%; left: 50%; width: 30px; height: 40px; transform: translate(-50%, 0); background: radial-gradient(circle, #f0c060 0%, #d09040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #d09040; animation: ldist-lamp 2s ease-in-out infinite alternate;
}
.scn-london-durnford-disturbed .durnford {
  position: absolute; bottom: 28%; left: 45%; width: 35px; height: 80px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ldist-durnford 4s ease-in-out infinite;
}
.scn-london-durnford-disturbed .narrator {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 75px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; animation: ldist-narrator 6s ease-in-out infinite alternate;
}
.scn-london-durnford-disturbed .shadow {
  position: absolute; inset: 0; background: rgba(0,0,0,0.2); animation: ldist-shadow 10s ease-in-out infinite alternate;
}
@keyframes ldist-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ldist-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ldist-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes ldist-lamp { 0% { transform: translate(-50%,0) scale(1); opacity:0.9 } 50% { transform: translate(-50%,0) scale(1.1); opacity:1 } 100% { transform: translate(-50%,0) scale(0.95); opacity:0.8 } }
@keyframes ldist-durnford { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes ldist-narrator { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes ldist-shadow { 0% { opacity:0.15 } 50% { opacity:0.25 } 100% { opacity:0.15 } }

.scn-london-empire-evening {
  background: linear-gradient(180deg, #8b6f4e 0%, #4a3520 100%), radial-gradient(ellipse at 50% 0%, #d4b48c 0%, transparent 70%);
}
.scn-london-empire-evening .curtains {
  position: absolute; inset: 0 70% 0 0; background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%); border-radius: 0 40% 0 0; animation: leve-curtains 20s ease-in-out infinite;
}
.scn-london-empire-evening .stage {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 40%; background: linear-gradient(180deg, #a08060 0%, #604020 100%); border-radius: 10% 10% 0 0; animation: leve-stage 15s ease-in-out infinite alternate;
}
.scn-london-empire-evening .chandelier {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: radial-gradient(ellipse at center, #f0d060 0%, #c0a040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 15px #c0a040; animation: leve-chandelier 10s ease-in-out infinite alternate;
}
.scn-london-empire-evening .balcony {
  position: absolute; bottom: 50%; left: 10%; right: 10%; height: 15%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; animation: leve-balcony 12s ease-in-out infinite;
}
.scn-london-empire-evening .seats {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%; background: repeating-linear-gradient(0deg, #3a2a2a 0px, #3a2a2a 8px, #2a1a1a 8px, #2a1a1a 16px); animation: leve-seats 18s ease-in-out infinite alternate;
}
.scn-london-empire-evening .audience {
  position: absolute; bottom: 18%; left: 20%; width: 100px; height: 30px; background: radial-gradient(ellipse at center, #2a1a1a 0%, transparent 100%); filter: blur(4px); animation: leve-audience 8s ease-in-out infinite;
}
@keyframes leve-curtains { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes leve-stage { 0% { background-position-y: 0 } 100% { background-position-y: -10px } }
@keyframes leve-chandelier { 0% { transform: translateX(-50%) rotate(0deg) scale(1) } 50% { transform: translateX(-50%) rotate(2deg) scale(1.05) } 100% { transform: translateX(-50%) rotate(-2deg) scale(0.95) } }
@keyframes leve-balcony { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes leve-seats { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes leve-audience { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.4 } }

.scn-london-cecil-porch {
  background: linear-gradient(180deg, #0a1020 0%, #182030 50%, #0a1018 100%), radial-gradient(ellipse at 50% 100%, #203040 0%, transparent 70%);
}
.scn-london-cecil-porch .night-sky {
  position: absolute; inset: 0 0 40% 0; background: radial-gradient(circle at 30% 20%, #304060 0%, transparent 100%), linear-gradient(180deg, #182030 0%, #0a1020 100%); animation: lcep-sky 30s ease-in-out infinite;
}
.scn-london-cecil-porch .columns {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 80%; background: linear-gradient(0deg, #4a3a3a 0%, #6a5a5a 50%, #5a4a4a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: lcep-columns 25s linear infinite;
}
.scn-london-cecil-porch .porch-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(0deg, #2a1a1a 0%, #1a0a0a 100%); animation: lcep-floor 10s ease-in-out infinite;
}
.scn-london-cecil-porch .wicker-chair {
  position: absolute; bottom: 10%; left: 40%; width: 40px; height: 60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20%; transform: rotate(-5deg); animation: lcep-chair 8s ease-in-out infinite alternate;
}
.scn-london-cecil-porch .figure {
  position: absolute; bottom: 10%; left: 42%; width: 30px; height: 70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-10px); animation: lcep-figure 6s ease-in-out infinite;
}
.scn-london-cecil-porch .cigar-glow {
  position: absolute; bottom: 20%; left: 44%; width: 4px; height: 4px; background: #ffa040; border-radius: 50%; box-shadow: 0 0 12px 4px #ffa040; animation: lcep-glow 2s ease-in-out infinite alternate;
}
.scn-london-cecil-porch .smoke {
  position: absolute; bottom: 25%; left: 44%; width: 10px; height: 10px; background: rgba(200,200,200,0.2); border-radius: 50%; filter: blur(3px); animation: lcep-smoke 5s ease-out infinite;
}
@keyframes lcep-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes lcep-columns { 0% { background-position: 0 0 } 100% { background-position: 0 -20px } }
@keyframes lcep-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lcep-chair { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(-5deg) } }
@keyframes lcep-figure { 0% { transform: translateX(-10px) rotate(0deg) } 50% { transform: translateX(-5px) rotate(3deg) } 100% { transform: translateX(-10px) rotate(0deg) } }
@keyframes lcep-glow { 0% { box-shadow: 0 0 8px 2px #ffa040; opacity:0.7 } 100% { box-shadow: 0 0 16px 6px #ffa040; opacity:1 } }
@keyframes lcep-smoke { 0% { transform: translate(0,0) scale(1); opacity:0.8 } 100% { transform: translate(-10px, -30px) scale(2); opacity:0 } }

.scn-london-durnford-down {
  background: linear-gradient(180deg, #0a101a 0%, #141e28 50%, #0a101a 100%), radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%);
}
.scn-london-durnford-down .night-sky {
  position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #1a2a3a 0%, #0a101a 100%); animation: ldown-sky 20s ease-in-out infinite alternate;
}
.scn-london-durnford-down .buildings {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%; background: linear-gradient(0deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: inset 0 20px 20px rgba(0,0,0,0.5); animation: ldown-buildings 15s ease-in-out infinite;
}
.scn-london-durnford-down .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3a 100%); animation: ldown-street 12s ease-in-out infinite;
}
.scn-london-durnford-down .lamppost {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 100px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 4px; animation: ldown-lamppost 8s ease-in-out infinite;
}
.scn-london-durnford-down .cab {
  position: absolute; bottom: 25%; left: 60%; width: 80px; height: 40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 10% 10%; transform: scaleX(0.8); animation: ldown-cab 10s ease-in-out infinite;
}
.scn-london-durnford-down .jack-figure {
  position: absolute; bottom: 20%; left: 35%; width: 25px; height: 70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ldown-jack 5s ease-in-out infinite;
}
.scn-london-durnford-down .rain {
  position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(200,200,255,0.1) 0px, transparent 2px, transparent 10px); animation: ldown-rain 2s linear infinite;
}
@keyframes ldown-sky { 0% { opacity:0.8 } 50% { opacity:0.6 } 100% { opacity:0.9 } }
@keyframes ldown-buildings { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes ldown-street { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ldown-lamppost { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes ldown-cab { 0% { transform: translateX(0) scaleX(0.8) } 50% { transform: translateX(-10px) scaleX(0.8) } 100% { transform: translateX(0) scaleX(0.8) } }
@keyframes ldown-jack { 0% { transform: rotate(0deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes ldown-rain { 0% { background-position-y: 0 } 100% { background-position-y: 100px } }

/* Scene: london-olinto-mystery */
.scn-london-olinto-mystery {
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 60%);
}
.scn-london-olinto-mystery .room   { position:absolute; inset:0; background: linear-gradient(180deg, #4a2a18 0%, #2a1a0a 100%); }
.scn-london-olinto-mystery .floor  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 100%); border-radius: 0 0 10% 10%; }
.scn-london-olinto-mystery .table  { position:absolute; bottom:28%; left:25%; width:50%; height:8%; background: linear-gradient(135deg, #8b6040 0%, #5a3a1a 100%); border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-london-olinto-mystery .lamp   { position:absolute; bottom:36%; left:48%; width:4%; height:12%; background: linear-gradient(90deg, #b08040 0%, #d0a060 50%, #b08040 100%); border-radius: 20% 20% 50% 50%; box-shadow: 0 0 20px 10px rgba(208,160,96,.5); animation: lom-lamp 3s ease-in-out infinite alternate; }
.scn-london-olinto-mystery .olinto { position:absolute; bottom:18%; left:30%; width:14%; height:28%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lom-fig 4s ease-in-out infinite; }
.scn-london-olinto-mystery .speaker{ position:absolute; bottom:18%; right:30%; width:14%; height:28%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lom-fig 4s ease-in-out infinite reverse; }
.scn-london-olinto-mystery .shadow { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: lom-shadow 5s ease-in-out infinite alternate; }
@keyframes lom-lamp   { 0% { box-shadow: 0 0 15px 5px rgba(208,160,96,.4); } 50% { box-shadow: 0 0 30px 15px rgba(208,160,96,.6); } 100% { box-shadow: 0 0 20px 8px rgba(208,160,96,.5); } }
@keyframes lom-fig    { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lom-shadow { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* Scene: london-cross-origin */
.scn-london-cross-origin {
  background: linear-gradient(135deg, #2a2a1a 0%, #1a1a0a 30%, #0a0a00 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%);
}
.scn-london-cross-origin .floor       { position:absolute; inset:0; background: repeating-linear-gradient(45deg, #3a3a2a 0px, #3a3a2a 4px, #4a4a3a 4px, #4a4a3a 8px); animation: lco-floor 20s linear infinite; }
.scn-london-cross-origin .hand        { position:absolute; bottom:20%; left:40%; width:18%; height:25%; background: linear-gradient(135deg, #1a0a00 0%, #0a0500 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom; animation: lco-hand 3s ease-in-out infinite alternate; }
.scn-london-cross-origin .jewel       { position:absolute; bottom:25%; left:48%; width:4%; height:4%; background: radial-gradient(circle, #d0a060 0%, #b08040 50%, #8b6040 100%); border-radius: 50%; box-shadow: 0 0 12px 6px rgba(208,160,96,.6); animation: lco-jewel 2s ease-in-out infinite alternate; }
.scn-london-cross-origin .glow        { position:absolute; bottom:22%; left:45%; width:10%; height:10%; background: radial-gradient(circle, rgba(208,160,96,.3) 0%, transparent 70%); border-radius: 50%; animation: lco-glow 2.5s ease-in-out infinite alternate; }
.scn-london-cross-origin .leg-left    { position:absolute; bottom:0; left:20%; width:3%; height:40%; background: linear-gradient(90deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 10%; transform-origin: bottom; animation: lco-leg 6s ease-in-out infinite; }
.scn-london-cross-origin .leg-right   { position:absolute; bottom:0; right:20%; width:3%; height:40%; background: linear-gradient(90deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 10%; transform-origin: bottom; animation: lco-leg 6s ease-in-out infinite reverse; }
.scn-london-cross-origin .shadow-hand { position:absolute; bottom:10%; left:36%; width:22%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation: lco-shadow-hand 4s ease-in-out infinite alternate; }
@keyframes lco-floor        { 0% { background-position: 0 0; } 100% { background-position: 40px 40px; } }
@keyframes lco-hand         { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes lco-jewel        { 0% { box-shadow: 0 0 10px 4px rgba(208,160,96,.5); } 50% { box-shadow: 0 0 20px 10px rgba(208,160,96,.8); } 100% { box-shadow: 0 0 12px 6px rgba(208,160,96,.5); } }
@keyframes lco-glow         { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.3); } 100% { opacity: 0.3; transform: scale(1); } }
@keyframes lco-leg          { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes lco-shadow-hand  { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(1); } }

/* Scene: london-olinto-knows */
.scn-london-olinto-knows {
  background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 50%, #0a0000 100%), radial-gradient(ellipse at 50% 20%, #4a2a2a 0%, transparent 60%);
}
.scn-london-olinto-knows .wall        { position:absolute; inset:0; background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%); }
.scn-london-olinto-knows .desk        { position:absolute; bottom:25%; left:20%; width:60%; height:10%; background: linear-gradient(135deg, #8b4a3a 0%, #5a2a1a 100%); border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: lok-desk 5s ease-in-out infinite alternate; }
.scn-london-olinto-knows .chair       { position:absolute; bottom:20%; right:35%; width:12%; height:18%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 30% 30%; transform-origin: bottom; animation: lok-chair 6s ease-in-out infinite; }
.scn-london-olinto-knows .officer     { position:absolute; bottom:18%; left:25%; width:15%; height:30%; background: linear-gradient(180deg, #2a0a0a 0%, #1a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: lok-officer 4s ease-in-out infinite alternate; }
.scn-london-olinto-knows .olinto      { position:absolute; bottom:18%; right:30%; width:14%; height:28%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: lok-olinto 4.5s ease-in-out infinite; }
.scn-london-olinto-knows .lamp        { position:absolute; bottom:40%; left:45%; width:4%; height:14%; background: linear-gradient(90deg, #b06040 0%, #d08050 50%, #b06040 100%); border-radius: 20% 20% 50% 50%; box-shadow: 0 0 18px 8px rgba(208,128,80,.5); animation: lok-lamp 2.5s ease-in-out infinite alternate; }
.scn-london-olinto-knows .shadow-wall { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,.5) 0%, transparent 70%); animation: lok-shadow 7s ease-in-out infinite alternate; }
@keyframes lok-desk   { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes lok-chair  { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes lok-officer{ 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lok-olinto { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes lok-lamp   { 0% { box-shadow: 0 0 12px 4px rgba(208,128,80,.4); } 50% { box-shadow: 0 0 28px 12px rgba(208,128,80,.7); } 100% { box-shadow: 0 0 16px 6px rgba(208,128,80,.4); } }
@keyframes lok-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* Scene: london-elma-not-niece */
.scn-london-elma-not-niece {
  background: linear-gradient(135deg, #2a1a2a 0%, #1a0a1a 50%, #0a000a 100%), radial-gradient(ellipse at 50% 40%, #3a2a3a 0%, transparent 60%);
}
.scn-london-elma-not-niece .room        { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); }
.scn-london-elma-not-niece .table       { position:absolute; bottom:26%; left:30%; width:40%; height:8%; background: linear-gradient(135deg, #6a4a5a 0%, #3a1a2a 100%); border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-london-elma-not-niece .frame       { position:absolute; bottom:36%; left:40%; width:20%; height:24%; background: linear-gradient(135deg, #8b6a5a 0%, #5a3a2a 100%); border-radius: 8%; box-shadow: 0 6px 12px rgba(0,0,0,.4); transform-origin: bottom center; animation: len-frame 8s ease-in-out infinite alternate; }
.scn-london-elma-not-niece .portrait    { position:absolute; bottom:38%; left:43%; width:14%; height:18%; background: linear-gradient(180deg, #4a2a3a 0%, #2a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 4px 6px rgba(0,0,0,.3); }
.scn-london-elma-not-niece .figure      { position:absolute; bottom:18%; right:20%; width:16%; height:30%; background: linear-gradient(180deg, #1a0a1a 0%, #0a000a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: len-figure 5s ease-in-out infinite; }
.scn-london-elma-not-niece .shadow      { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: len-shadow 6s ease-in-out infinite alternate; }
.scn-london-elma-not-niece .window-hint { position:absolute; top:10%; right:5%; width:30%; height:40%; background: linear-gradient(135deg, rgba(255,255,200,.1) 0%, rgba(200,200,180,.05) 100%); border: 1px solid rgba(255,255,200,.15); border-radius: 6%; filter: blur(2px); animation: len-window 15s linear infinite alternate; }
@keyframes len-frame   { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes len-figure  { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes len-shadow  { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes len-window  { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-hidden-glade-silence { background: linear-gradient(180deg, #6b7b6b 0%, #4a5a4a 50%, #2a3a2a 100%), radial-gradient(ellipse at 50% 80%, #3a4a3a 0%, transparent 70%); }
.scn-hidden-glade-silence .sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #8a9a8a 0%, #6b7b6b 100%); animation: hgs-sky 15s ease-in-out infinite alternate; }
.scn-hidden-glade-silence .treeline { position: absolute; bottom: 60%; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, #3a4a3a 0%, #4a5a4a 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; filter: blur(2px); animation: hgs-trees 12s ease-in-out infinite alternate; }
.scn-hidden-glade-silence .glade-floor { position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; animation: hgs-floor 8s ease-in-out infinite; }
.scn-hidden-glade-silence .briar-left { position: absolute; bottom: 0; left: 0; width: 30%; height: 50%; background: radial-gradient(ellipse at 0% 100%, #2a2a1a 0%, transparent 70%); clip-path: polygon(0% 100%, 100% 80%, 80% 60%, 100% 40%, 50% 30%, 70% 0%, 0% 0%); animation: hgs-briar 20s ease-in-out infinite alternate; }
.scn-hidden-glade-silence .briar-right { position: absolute; bottom: 0; right: 0; width: 30%; height: 50%; background: radial-gradient(ellipse at 100% 100%, #2a2a1a 0%, transparent 70%); clip-path: polygon(100% 100%, 0% 80%, 20% 60%, 0% 40%, 50% 30%, 30% 0%, 100% 0%); animation: hgs-briar 20s ease-in-out infinite alternate; animation-delay: -10s; }
.scn-hidden-glade-silence .pool { position: absolute; bottom: 10%; left: 40%; width: 20%; height: 15%; background: radial-gradient(ellipse, #4a5a4a 0%, #3a4a3a 60%, transparent 80%); border-radius: 50%; box-shadow: inset 0 4px 6px rgba(0,0,0,0.3); animation: hgs-pool 10s ease-in-out infinite; }
.scn-hidden-glade-silence .flower { position: absolute; bottom: 20%; left: 45%; width: 4px; height: 8px; background: #b87878; border-radius: 50% 50% 0 0; box-shadow: 0 0 4px #b87878; animation: hgs-flower 6s ease-in-out infinite; }
@keyframes hgs-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hgs-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hgs-floor { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes hgs-briar { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes hgs-pool { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes hgs-flower { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-sunset-in-ravine { background: linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 30%, #3a1a0a 70%, #1a0a0a 100%), radial-gradient(ellipse at 50% 30%, #a05a3a 0%, transparent 60%); }
.scn-sunset-in-ravine .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #a06040 0%, #7a4020 50%, #4a2a10 100%); animation: sir-sky 12s ease-in-out infinite alternate; }
.scn-sunset-in-ravine .afterglow { position: absolute; inset: 0 0 70% 0; background: radial-gradient(ellipse at 50% 0%, #c07040 0%, transparent 70%); animation: sir-afterglow 8s ease-in-out infinite; }
.scn-sunset-in-ravine .left-wall { position: absolute; bottom: 0; left: 0; width: 30%; height: 80%; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 100%); border-radius: 0 30% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: sir-wall 15s ease-in-out infinite alternate; }
.scn-sunset-in-ravine .right-wall { position: absolute; bottom: 0; right: 0; width: 30%; height: 80%; background: linear-gradient(270deg, #2a1a0a 0%, #3a2a1a 100%); border-radius: 30% 0 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: sir-wall 15s ease-in-out infinite alternate; animation-delay: -7.5s; }
.scn-sunset-in-ravine .boulder-front { position: absolute; bottom: 10%; left: 35%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.7); animation: sir-boulder 10s ease-in-out infinite; }
.scn-sunset-in-ravine .path { position: absolute; bottom: 0; left: 20%; right: 20%; height: 15%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 100% 100% 0 0 / 50% 50% 0 0; animation: sir-path 6s ease-in-out infinite; }
.scn-sunset-in-ravine .moss { position: absolute; bottom: 15%; left: 40%; width: 10%; height: 5%; background: radial-gradient(ellipse, #5a6a3a 0%, transparent 70%); animation: sir-moss 20s ease-in-out infinite alternate; }
@keyframes sir-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes sir-afterglow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes sir-wall { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes sir-boulder { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes sir-path { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sir-moss { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-overhearing-voices { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #2a1a0a 80%, #0a0a0a 100%), radial-gradient(ellipse at 50% 20%, #8a5030 0%, transparent 80%); }
.scn-overhearing-voices .sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); animation: ohv-sky 15s ease-in-out infinite alternate; }
.scn-overhearing-voices .rock-left { position: absolute; bottom: 10%; left: 0; width: 50%; height: 70%; background: radial-gradient(ellipse at 100% 100%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 40% 0 0; box-shadow: 10px 0 20px rgba(0,0,0,0.6); animation: ohv-rock 12s ease-in-out infinite alternate; }
.scn-overhearing-voices .rock-right { position: absolute; bottom: 10%; right: 0; width: 50%; height: 70%; background: radial-gradient(ellipse at 0% 100%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 0 0 0; box-shadow: -10px 0 20px rgba(0,0,0,0.6); animation: ohv-rock 12s ease-in-out infinite alternate; animation-delay: -6s; }
.scn-overhearing-voices .branch { position: absolute; top: 30%; left: 30%; width: 40%; height: 4px; background: #2a1a0a; border-radius: 2px; transform-origin: left center; animation: ohv-branch 8s ease-in-out infinite; }
.scn-overhearing-voices .thrush { position: absolute; top: 28%; left: 50%; width: 12px; height: 10px; background: #5a4a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ohv-thrush 3s ease-in-out infinite; }
.scn-overhearing-voices .leaves { position: absolute; top: 25%; left: 20%; width: 30%; height: 15%; background: radial-gradient(ellipse at 50% 100%, #3a4a2a, transparent 60%); animation: ohv-leaves 10s ease-in-out infinite; }
.scn-overhearing-voices .listener-head { position: absolute; bottom: 20%; right: 20%; width: 20px; height: 24px; background: #1a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ohv-listener 6s ease-in-out infinite; }
@keyframes ohv-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ohv-rock { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ohv-branch { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes ohv-thrush { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(3px,-1px) rotate(5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ohv-leaves { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes ohv-listener { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-climb-mossy-boulder { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 20%, #6a3a2a 0%, transparent 70%); }
.scn-climb-mossy-boulder .sky { position: absolute; inset: 0 0 70% 0; background: linear-gradient(180deg, #6a4020 0%, #4a2a10 50%, #2a1a0a 100%); animation: cmb-sky 10s ease-in-out infinite alternate; }
.scn-climb-mossy-boulder .boulder-body { position: absolute; bottom: 0; left: 20%; right: 20%; height: 70%; background: radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 -20px 30px rgba(0,0,0,0.5); animation: cmb-boulder 15s ease-in-out infinite alternate; }
.scn-climb-mossy-boulder .moss-left { position: absolute; bottom: 30%; left: 25%; width: 15%; height: 20%; background: radial-gradient(ellipse, #5a6a3a 0%, transparent 70%); border-radius: 50%; animation: cmb-moss 20s ease-in-out infinite alternate; }
.scn-climb-mossy-boulder .moss-right { position: absolute; bottom: 40%; right: 25%; width: 10%; height: 15%; background: radial-gradient(ellipse, #5a6a3a 0%, transparent 70%); border-radius: 50%; animation: cmb-moss 20s ease-in-out infinite alternate; animation-delay: -10s; }
.scn-climb-mossy-boulder .hand-grip { position: absolute; bottom: 45%; left: 35%; width: 14px; height: 20px; background: #1a0a0a; border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform: rotate(30deg); animation: cmb-hand 4s ease-in-out infinite; }
.scn-climb-mossy-boulder .foot-hold { position: absolute; bottom: 25%; left: 40%; width: 10px; height: 16px; background: #1a0a0a; border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; transform: rotate(-20deg); animation: cmb-foot 4s ease-in-out infinite alternate; }
.scn-climb-mossy-boulder .summit-line { position: absolute; bottom: 60%; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, transparent 0%, #3a2a1a 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; animation: cmb-summit 12s ease-in-out infinite; }
.scn-climb-mossy-boulder .distant-view { position: absolute; bottom: 70%; left: 10%; right: 10%; height: 20%; background: radial-gradient(ellipse, #4a3a2a 0%, transparent 70%); opacity: 0.3; animation: cmb-distant 20s ease-in-out infinite; }
@keyframes cmb-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes cmb-boulder { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes cmb-moss { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes cmb-hand { 0% { transform: translate(0, 0) rotate(30deg); } 50% { transform: translate(2px, -3px) rotate(35deg); } 100% { transform: translate(0, 0) rotate(30deg); } }
@keyframes cmb-foot { 0% { transform: translate(0, 0) rotate(-20deg); } 50% { transform: translate(3px, -2px) rotate(-15deg); } 100% { transform: translate(0, 0) rotate(-20deg); } }
@keyframes cmb-summit { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes cmb-distant { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }

.scn-petersburg-note-sent {
  background: linear-gradient(180deg, #d4c9b8 0%, #b8a998 100%);
}
.scn-petersburg-note-sent .room-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #c0b5a6 0%, #a89b8c 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
  animation: pns-wall-pulse 8s ease-in-out infinite alternate;
}
.scn-petersburg-note-sent .floor {
  position: absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #8b7d6f 0%, #6b5f53 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-petersburg-note-sent .window {
  position: absolute; top:15%; left:15%; width:30%; height:40%;
  background: radial-gradient(ellipse at 30% 40%, #fef9e8 0%, #d8cbb8 100%);
  border: 4px solid #5c5044; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.4), 0 0 20px rgba(255,255,200,0.2);
  animation: pns-window-glow 6s ease-in-out infinite alternate;
}
.scn-petersburg-note-sent .desk {
  position: absolute; bottom:20%; left:35%; width:40%; height:15%;
  background: linear-gradient(180deg, #7a6b5c 0%, #4f4437 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform: rotateX(10deg); transform-origin: bottom;
}
.scn-petersburg-note-sent .letter {
  position: absolute; bottom:32%; left:55%; width:12%; height:8%;
  background: linear-gradient(135deg, #f5eedc 0%, #e3d6c0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pns-letter-flutter 4s ease-in-out infinite;
}
.scn-petersburg-note-sent .hand-writing {
  position: absolute; bottom:28%; left:52%; width:8%; height:12%;
  background: radial-gradient(circle at 50% 30%, #e0c9b0 0%, #c4a88a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg); transform-origin: 80% 80%;
  animation: pns-hand-move 3s ease-in-out infinite alternate;
}
.scn-petersburg-note-sent .figure-waiting {
  position: absolute; bottom:20%; right:20%; width:15%; height:35%;
  background: linear-gradient(180deg, #3a3028 0%, #1e1712 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -10px 0 15px rgba(0,0,0,0.4);
  animation: pns-figure-unease 5s ease-in-out infinite;
}
.scn-petersburg-note-sent .clock-shadow {
  position: absolute; top:10%; right:10%; width:10%; height:12%;
  background: radial-gradient(circle, #3c3028 0%, #1e1712 100%);
  border-radius: 50%; box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: pns-clock-tick 2s steps(2) infinite;
}
@keyframes pns-wall-pulse { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pns-window-glow { 0% { opacity:0.7; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.2); } 100% { opacity:0.8; filter:brightness(1.05); } }
@keyframes pns-letter-flutter { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes pns-hand-move { 0% { transform: rotate(-20deg) translateY(0); } 100% { transform: rotate(-15deg) translateY(-3px); } }
@keyframes pns-figure-unease { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 75% { transform: translateX(3px) rotate(1deg); } }
@keyframes pns-clock-tick { 0% { transform: scale(1); } 50% { transform: scale(1.02); } }

.scn-petersburg-suspicion-woodroffe {
  background: linear-gradient(180deg, #c8bda8 0%, #a89880 100%);
}
.scn-petersburg-suspicion-woodroffe .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b8a890 0%, #9c8970 100%);
  animation: psw-room-flicker 10s ease-in-out infinite alternate;
}
.scn-petersburg-suspicion-woodroffe .table {
  position: absolute; bottom:10%; left:20%; width:60%; height:15%;
  background: linear-gradient(180deg, #6b5c4a 0%, #4b3e30 100%);
  border-radius: 10px; box-shadow: 0 6px 15px rgba(0,0,0,0.4);
  transform: perspective(300px) rotateX(10deg);
}
.scn-petersburg-suspicion-woodroffe .glass {
  position: absolute; bottom:20%; left:45%; width:6%; height:8%;
  background: linear-gradient(135deg, #f0e6d0 0%, #d4c4a8 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: psw-glass-shine 4s ease-in-out infinite;
}
.scn-petersburg-suspicion-woodroffe .figure-narrator {
  position: absolute; bottom:20%; left:30%; width:12%; height:35%;
  background: linear-gradient(180deg, #2e241e 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 5px 0 10px rgba(0,0,0,0.3);
  animation: psw-narrator-turn 6s ease-in-out infinite alternate;
}
.scn-petersburg-suspicion-woodroffe .figure-woodroffe {
  position: absolute; bottom:20%; right:25%; width:14%; height:38%;
  background: linear-gradient(180deg, #3a302a 0%, #221a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -5px 0 10px rgba(0,0,0,0.3);
  animation: psw-woodroffe-sneer 5s ease-in-out infinite;
}
.scn-petersburg-suspicion-woodroffe .shadow-suspicion {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: psw-shadow-pulse 8s ease-in-out infinite alternate;
}
.scn-petersburg-suspicion-woodroffe .lamp {
  position: absolute; top:10%; left:50%; width:8%; height:12%;
  background: radial-gradient(circle, #f8e8c0 0%, #c8a070 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px rgba(200,160,112,0.6), 0 0 60px rgba(200,160,112,0.3);
  animation: psw-lamp-swing 3s ease-in-out infinite alternate;
}
@keyframes psw-room-flicker { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes psw-glass-shine { 0%,100% { opacity:0.8; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.3); } }
@keyframes psw-narrator-turn { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(-2px); } }
@keyframes psw-woodroffe-sneer { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(2deg); } }
@keyframes psw-shadow-pulse { 0% { opacity:0.6; } 100% { opacity:1; } }
@keyframes psw-lamp-swing { 0% { transform: rotate(-4deg); } 100% { transform: rotate(4deg); } }

.scn-petersburg-fear-police {
  background: linear-gradient(180deg, #b8a890 0%, #8a7a68 100%);
}
.scn-petersburg-fear-police .bg-interior {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #a89880 0%, #7a6a58 100%);
  animation: pfp-interior-dark 12s ease-in-out infinite alternate;
}
.scn-petersburg-fear-police .window-with-bars {
  position: absolute; top:10%; left:20%; width:40%; height:45%;
  background: radial-gradient(ellipse at 50% 50%, #f0e8d8 0%, #b8a890 100%);
  border: 6px solid #3a3028; border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
  overflow: hidden;
}
.scn-petersburg-fear-police .street-shadow {
  position: absolute; top:15%; left:25%; width:30%; height:35%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: pfp-street-patrol 8s linear infinite;
}
.scn-petersburg-fear-police .police-silhouette {
  position: absolute; bottom:10%; left:5%; width:10%; height:25%;
  background: #1a1410; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: pfp-police-move 6s ease-in-out infinite alternate;
}
.scn-petersburg-fear-police .figure-narrator-fear {
  position: absolute; bottom:15%; right:10%; width:15%; height:40%;
  background: linear-gradient(180deg, #2e241e 0%, #16100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: pfp-narrator-shake 3s ease-in-out infinite;
}
.scn-petersburg-fear-police .door {
  position: absolute; bottom:0; right:0; width:20%; height:70%;
  background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 100%);
  border-left: 4px solid #2a1a0a; border-radius: 4px 0 0 0;
  box-shadow: -5px 0 15px rgba(0,0,0,0.4);
  animation: pfp-door-creak 10s ease-in-out infinite;
}
.scn-petersburg-fear-police .note-on-desk {
  position: absolute; bottom:25%; left:30%; width:10%; height:6%;
  background: #f0e6d0; border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: pfp-note-bright 4s ease-in-out infinite alternate;
}
@keyframes pfp-interior-dark { 0% { filter:brightness(0.8); } 50% { filter:brightness(1); } 100% { filter:brightness(0.7); } }
@keyframes pfp-street-patrol { 0% { transform: translateX(-20px); } 100% { transform: translateX(60vw); } }
@keyframes pfp-police-move { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-5px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes pfp-narrator-shake { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(-2px) rotate(1deg); } 75% { transform: translateX(1px) rotate(0); } }
@keyframes pfp-door-creak { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg); } }
@keyframes pfp-note-bright { 0% { filter:brightness(0.9); } 100% { filter:brightness(1.2); } }

.scn-petersburg-note-received {
  background: linear-gradient(180deg, #d0c0a8 0%, #a89880 100%);
}
.scn-petersburg-note-received .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b8a890 0%, #9c8970 100%);
  animation: pnr-room-bright 10s ease-in-out infinite alternate;
}
.scn-petersburg-note-received .table-received {
  position: absolute; bottom:10%; left:25%; width:50%; height:12%;
  background: linear-gradient(180deg, #6b5c4a 0%, #4b3e30 100%);
  border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateX(15deg);
}
.scn-petersburg-note-received .letter-open {
  position: absolute; bottom:20%; left:55%; width:12%; height:8%;
  background: linear-gradient(135deg, #f5eedc 0%, #e3d6c0 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: pnr-letter-open 3s ease-in-out infinite alternate;
}
.scn-petersburg-note-received .hand-holding {
  position: absolute; bottom:16%; left:52%; width:10%; height:15%;
  background: radial-gradient(circle at 50% 30%, #e0c9b0 0%, #c4a88a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg); transform-origin: 80% 80%;
  animation: pnr-hand-hold 4s ease-in-out infinite alternate;
}
.scn-petersburg-note-received .reading-figure {
  position: absolute; bottom:20%; right:20%; width:18%; height:40%;
  background: linear-gradient(180deg, #3a3028 0%, #1e1712 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -10px 0 15px rgba(0,0,0,0.4);
  animation: pnr-reading-lean 8s ease-in-out infinite;
}
.scn-petersburg-note-received .lamp-glow {
  position: absolute; top:10%; left:40%; width:12%; height:16%;
  background: radial-gradient(circle, #f8e8c0 0%, #c8a070 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px rgba(200,160,112,0.7), 0 0 80px rgba(200,160,112,0.4);
  animation: pnr-lamp-glow 5s ease-in-out infinite alternate;
}
.scn-petersburg-note-received .shadows {
  position: absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: pnr-shadow-creep 12s ease-in-out infinite alternate;
}
.scn-petersburg-note-received .alarm-clock {
  position: absolute; bottom:25%; left:20%; width:8%; height:10%;
  background: radial-gradient(circle, #5c4a3a 0%, #3a2a1a 100%);
  border-radius: 20%; box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: pnr-alarm-tick 2s steps(2) infinite;
}
@keyframes pnr-room-bright { 0% { opacity:0.85; filter:brightness(0.95); } 50% { opacity:1; filter:brightness(1.05); } 100% { opacity:0.9; filter:brightness(0.9); } }
@keyframes pnr-letter-open { 0% { transform: rotate(-5deg) scale(1); } 100% { transform: rotate(2deg) scale(1.05); } }
@keyframes pnr-hand-hold { 0% { transform: rotate(10deg) translateY(0); } 100% { transform: rotate(15deg) translateY(-3px); } }
@keyframes pnr-reading-lean { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(3deg); } }
@keyframes pnr-lamp-glow { 0% { box-shadow: 0 0 30px rgba(200,160,112,0.5), 0 0 60px rgba(200,160,112,0.2); opacity:0.9; } 100% { box-shadow: 0 0 50px rgba(200,160,112,0.8), 0 0 100px rgba(200,160,112,0.5); opacity:1; } }
@keyframes pnr-shadow-creep { 0% { opacity:0.7; } 100% { opacity:1; } }
@keyframes pnr-alarm-tick { 0% { transform: scale(1); } 50% { transform: scale(1.03); } }

.scn-abo-boranski-mystery {
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #e8d5b7 40%, #d4bfaa 100%),
    radial-gradient(ellipse at 50% 0%, #fff8ee 0%, transparent 70%);
}
.scn-abo-boranski-mystery .room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0e6d8 0%, #e0d0c0 100%);
}
.scn-abo-boranski-mystery .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #c8b098 0%, #a08470 100%);
  border-top: 2px solid #b8a090;
}
.scn-abo-boranski-mystery .window {
  position: absolute; top: 15%; left: 60%; width: 100px; height: 130px; background: linear-gradient(180deg, #a8d8ea 0%, #87c7dc 60%, #6fa8c0 100%);
  border: 4px solid #c8b098; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.6), 0 0 30px rgba(135,199,220,0.3);
  animation: ab1-window 8s ease-in-out infinite alternate;
}
.scn-abo-boranski-mystery .desk {
  position: absolute; bottom: 26%; left: 25%; width: 200px; height: 12px;
  background: linear-gradient(90deg, #7a5c3a 0%, #9c7a5a 50%, #7a5c3a 100%);
  border-radius: 2px; box-shadow: 0 6px 10px rgba(0,0,0,0.3);
}
.scn-abo-boranski-mystery .lamp {
  position: absolute; bottom: 38%; left: 30%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 20%, #ffe68a 0%, #d4b060 60%, transparent 80%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 25px 10px rgba(255,230,138,0.5);
  animation: ab1-lamp 4s ease-in-out infinite alternate;
}
.scn-abo-boranski-mystery .figure-man {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ab1-figure 6s ease-in-out infinite alternate;
}
.scn-abo-boranski-mystery .figure-woman {
  position: absolute; bottom: 28%; left: 50%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  animation: ab1-figure 6s ease-in-out infinite alternate-reverse;
}
.scn-abo-boranski-mystery .document {
  position: absolute; bottom: 27%; left: 30%; width: 40px; height: 10px;
  background: linear-gradient(90deg, #f0e0c0 0%, #fff8e0 100%);
  border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ab1-doc 12s ease-in-out infinite alternate;
}
@keyframes ab1-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(255,255,255,0.6), 0 0 30px rgba(135,199,220,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,255,0.8), 0 0 50px rgba(135,199,220,0.5); }
  100% { opacity: 0.85; box-shadow: inset 0 0 20px rgba(255,255,255,0.6), 0 0 40px rgba(135,199,220,0.35); }
}
@keyframes ab1-lamp {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05) translateY(-2px); }
  100% { opacity: 0.85; transform: scale(1); }
}
@keyframes ab1-figure {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ab1-doc {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(0deg) translateX(2px); }
  100% { transform: rotate(-3deg); }
}

.scn-abo-boranski-reason {
  background: 
    linear-gradient(180deg, #f0e6d8 0%, #e0d0c0 100%),
    radial-gradient(ellipse at 80% 20%, #fff8ee 0%, transparent 60%);
}
.scn-abo-boranski-reason .room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0e6d8 0%, #e0d0c0 100%);
}
.scn-abo-boranski-reason .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #c8b098 0%, #a08470 100%);
}
.scn-abo-boranski-reason .door {
  position: absolute; top: 20%; right: 10%; width: 60px; height: 120px;
  background: linear-gradient(90deg, #7a5c3a 0%, #9c7a5a 50%, #7a5c3a 100%);
  border: 2px solid #5a3c1a; border-radius: 4px; box-shadow: inset -5px 0 8px rgba(0,0,0,0.2);
  animation: ab2-door 15s ease-in-out infinite alternate;
}
.scn-abo-boranski-reason .chair {
  position: absolute; bottom: 32%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a3c1a 0%, #3a1c0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
}
.scn-abo-boranski-reason .figure-helper {
  position: absolute; bottom: 28%; left: 20%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ab2-helper 7s ease-in-out infinite alternate;
}
.scn-abo-boranski-reason .figure-girl {
  position: absolute; bottom: 28%; left: 40%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  animation: ab2-girl 9s ease-in-out infinite alternate;
}
.scn-abo-boranski-reason .window {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #a8d8ea 0%, #87c7dc 60%, #6fa8c0 100%);
  border: 4px solid #c8b098; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.6);
  animation: ab2-window 10s ease-in-out infinite alternate;
}
@keyframes ab2-door {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes ab2-helper {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ab2-girl {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ab2-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

.scn-abo-russian-rule {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #c0b094 100%),
    radial-gradient(ellipse at 30% 70%, #fff8ee 0%, transparent 80%);
}
.scn-abo-russian-rule .room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 100%);
}
.scn-abo-russian-rule .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #b8a890 0%, #9c8c78 100%);
  border-top: 2px solid #a89880;
}
.scn-abo-russian-rule .desk {
  position: absolute; bottom: 22%; left: 20%; width: 180px; height: 10px;
  background: linear-gradient(90deg, #6a4c2a 0%, #8c6e4a 50%, #6a4c2a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-abo-russian-rule .globe {
  position: absolute; bottom: 25%; left: 28%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #4a8a6a 0%, #2a5a3a 60%, #1a3a2a 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ab3-globe 20s linear infinite;
}
.scn-abo-russian-rule .map {
  position: absolute; bottom: 24%; left: 40%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #d4c090 0%, #c0a880 100%);
  border-radius: 2px; transform: rotate(3deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ab3-map 12s ease-in-out infinite alternate;
}
.scn-abo-russian-rule .figure-sitting {
  position: absolute; bottom: 24%; left: 55%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ab3-sit 8s ease-in-out infinite alternate;
}
.scn-abo-russian-rule .lamp {
  position: absolute; bottom: 35%; left: 15%; width: 18px; height: 28px;
  background: radial-gradient(circle at 50% 20%, #ffe68a 0%, #d4b060 60%, transparent 80%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px rgba(255,230,138,0.4);
  animation: ab3-lamp 4s ease-in-out infinite alternate;
}
.scn-abo-russian-rule .book {
  position: absolute; bottom: 22.5%; left: 50%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #8a6a4a 0%, #a08060 100%);
  border-radius: 2px; transform: rotate(-10deg);
  animation: ab3-book 10s ease-in-out infinite alternate;
}
@keyframes ab3-globe {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes ab3-map {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes ab3-sit {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ab3-lamp {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03) translateY(-1px); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes ab3-book {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(-5deg) translateX(2px); }
  100% { transform: rotate(-10deg); }
}

.scn-abo-boranski-confession {
  background: 
    linear-gradient(180deg, #3a2e24 0%, #2a1e14 50%, #1a0e04 100%),
    radial-gradient(ellipse at 30% 30%, #5a4a3a 0%, transparent 70%);
}
.scn-abo-boranski-confession .room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
}
.scn-abo-boranski-confession .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%);
  border-top: 2px solid #2a1a0a;
}
.scn-abo-boranski-confession .desk {
  position: absolute; bottom: 27%; left: 20%; width: 200px; height: 14px;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3c2a 50%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 0 6px 10px rgba(0,0,0,0.5);
}
.scn-abo-boranski-confession .lamp {
  position: absolute; bottom: 37%; left: 25%; width: 22px; height: 34px;
  background: radial-gradient(circle at 50% 20%, #ffcc66 0%, #d4a040 60%, transparent 80%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 15px rgba(255,204,102,0.6);
  animation: ab4-lamp 2s ease-in-out infinite alternate;
}
.scn-abo-boranski-confession .figure-close {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  animation: ab4-figure 3s ease-in-out infinite alternate;
}
.scn-abo-boranski-confession .letter {
  position: absolute; bottom: 28%; left: 35%; width: 50px; height: 12px;
  background: linear-gradient(90deg, #c8a888 0%, #e0c0a0 100%);
  border-radius: 2px; transform: rotate(-8deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ab4-letter 5s ease-in-out infinite alternate;
}
.scn-abo-boranski-confession .shadow {
  position: absolute; bottom: 22%; left: 30%; width: 60px; height: 100px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  transform: skewX(-10deg); border-radius: 10px;
  animation: ab4-shadow 2.5s ease-in-out infinite alternate;
}
@keyframes ab4-lamp {
  0% { opacity: 0.7; transform: scale(1); box-shadow: 0 0 20px 10px rgba(255,204,102,0.4); }
  50% { opacity: 1; transform: scale(1.08) translateY(-3px); box-shadow: 0 0 40px 20px rgba(255,204,102,0.7); }
  100% { opacity: 0.8; transform: scale(1.02) translateY(-1px); box-shadow: 0 0 25px 12px rgba(255,204,102,0.5); }
}
@keyframes ab4-figure {
  0% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-48%) rotate(2deg) scaleX(0.98); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes ab4-letter {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-3px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes ab4-shadow {
  0% { transform: skewX(-10deg) scaleX(1); }
  50% { transform: skewX(-12deg) scaleX(1.05); }
  100% { transform: skewX(-10deg) scaleX(1); }
}

.scn-suspicion-of-bribery { background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3e 40%, #2a2a4e 100%), radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%); }
.scn-suspicion-of-bribery .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #0e0e2e 0%, #1c1c40 50%, #2a2a50 100%); animation: sb-sky 15s ease-in-out infinite alternate; }
.scn-suspicion-of-bribery .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a3040 0%, #0f1f2f 100%); animation: sb-sea 10s ease-in-out infinite; }
.scn-suspicion-of-bribery .yacht { position:absolute; bottom:35%; left:40%; width:80px; height:30px; background: #111; border-radius: 0 10px 10px 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sb-yacht 6s ease-in-out infinite; }
.scn-suspicion-of-bribery .lantern { position:absolute; bottom:45%; left:43%; width:8px; height:8px; background: radial-gradient(circle, #ff9922, #cc5500); border-radius:50%; box-shadow: 0 0 12px 4px #ff9922; animation: sb-lantern 1.5s ease-in-out infinite alternate; }
.scn-suspicion-of-bribery .glow { position:absolute; bottom:45%; left:43%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(255,153,34,0.4) 0%, transparent 70%); pointer-events:none; animation: sb-glow 1.5s ease-in-out infinite alternate; }
.scn-suspicion-of-bribery .customs { position:absolute; bottom:32%; left:25%; width:20px; height:40px; background: #222; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sb-figures 4s ease-in-out infinite; }
.scn-suspicion-of-bribery .briber { position:absolute; bottom:32%; right:25%; width:22px; height:38px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sb-figures 4s ease-in-out infinite reverse; }
.scn-suspicion-of-bribery .mist-1 { position:absolute; top:20%; left:10%; width:120px; height:20px; background: rgba(200,200,220,0.1); filter: blur(8px); border-radius:50%; animation: sb-mist 40s linear infinite; }
.scn-suspicion-of-bribery .mist-2 { position:absolute; top:30%; right:5%; width:80px; height:15px; background: rgba(200,200,220,0.08); filter: blur(6px); border-radius:50%; animation: sb-mist 50s linear infinite reverse; }

@keyframes sb-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sb-sea { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes sb-yacht { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(2px) } }
@keyframes sb-lantern { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.7; transform: scale(0.9) } }
@keyframes sb-glow { 0% { opacity:.3; transform: scale(0.8) } 50% { opacity:.7; transform: scale(1.2) } 100% { opacity:.4; transform: scale(0.9) } }
@keyframes sb-figures { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes sb-mist { 0% { transform: translateX(0) } 50% { transform: translateX(30px) } 100% { transform: translateX(-30px) } }

.scn-mystery-hidden-on-board { background: linear-gradient(135deg, #2a1e1a 0%, #4a3228 50%, #2a1e1a 100%), radial-gradient(ellipse at 50% 50%, #4a3228 0%, transparent 70%); }
.scn-mystery-hidden-on-board .wall-back { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a22 0%, #4a3a32 50%, #2a1e1a 100%); animation: mh-wall 20s ease-in-out infinite; }
.scn-mystery-hidden-on-board .wall-side { position:absolute; top:0; bottom:0; left:5%; width:15%; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); border-right: 2px solid #5a4a42; animation: mh-wall 20s ease-in-out infinite reverse; }
.scn-mystery-hidden-on-board .table { position:absolute; bottom:20%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #f0e0d0 0%, #d0c0b0 100%); border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.7); }
.scn-mystery-hidden-on-board .glassware { position:absolute; bottom:30%; left:38%; width:12px; height:18px; background: linear-gradient(180deg, rgba(200,220,240,0.6) 0%, transparent 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 6px 2px rgba(200,220,240,0.3); animation: mh-glass 3s ease-in-out infinite alternate; }
.scn-mystery-hidden-on-board .silver { position:absolute; bottom:28%; left:45%; width:20px; height:4px; background: linear-gradient(90deg, #c0c0c0, #e0e0e0); border-radius: 2px; animation: mh-silver 4s ease-in-out infinite; }
.scn-mystery-hidden-on-board .flowers { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:40px; height:30px; background: radial-gradient(ellipse, #f08080, #b03060, transparent 70%); filter: blur(2px); border-radius: 50%; animation: mh-flowers 6s ease-in-out infinite; }
.scn-mystery-hidden-on-board .figure { position:absolute; bottom:25%; right:25%; width:20px; height:45px; background: #111; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mh-figure 5s ease-in-out infinite; }
.scn-mystery-hidden-on-board .candle { position:absolute; bottom:40%; left:35%; width:4px; height:15px; background: linear-gradient(180deg, #ffd080 0%, #cc8800 100%); border-radius: 2px; box-shadow: 0 0 8px 4px #ffd080; animation: mh-candle 2s ease-in-out infinite alternate; }

@keyframes mh-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mh-glass { 0% { opacity:.5; transform: rotate(-2deg) } 50% { opacity:1; transform: rotate(2deg) } 100% { opacity:.7; transform: rotate(0) } }
@keyframes mh-silver { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes mh-flowers { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(0.95) } }
@keyframes mh-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes mh-candle { 0% { opacity:.8; transform: scaleY(0.9) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.9; transform: scaleY(1) } }

.scn-dinner-luxury { background: linear-gradient(135deg, #fce4c8 0%, #f5d6b0 50%, #e8c49a 100%), radial-gradient(ellipse at 50% 40%, #fff8e7 0%, transparent 70%); }
.scn-dinner-luxury .tablecloth { position:absolute; bottom:0; left:0; right:0; top:55%; background: linear-gradient(180deg, #fff8e7 0%, #f0e0c8 100%); border-radius: 20% 20% 0 0; }
.scn-dinner-luxury .plate { position:absolute; bottom:30%; left:35%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #fff 0%, #e0d0b0 80%); box-shadow: inset 0 4px 8px rgba(0,0,0,.1), 0 4px 8px rgba(0,0,0,.2); animation: dl-plate 8s ease-in-out infinite; }
.scn-dinner-luxury .wineglass { position:absolute; bottom:35%; left:50%; width:20px; height:30px; background: linear-gradient(135deg, rgba(255,255,255,0.5) 0%, rgba(200,180,160,0.3) 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform: translateX(-50%); animation: dl-glass 4s ease-in-out infinite alternate; }
.scn-dinner-luxury .candle { position:absolute; bottom:40%; left:65%; width:6px; height:25px; background: linear-gradient(180deg, #ffe8a0 0%, #cc8844 100%); border-radius: 3px; box-shadow: 0 0 12px 6px #ffe8a0; animation: dl-candle 2s ease-in-out infinite alternate; }
.scn-dinner-luxury .flower { position:absolute; bottom:28%; left:42%; width:30px; height:30px; background: radial-gradient(circle, #e0a08f 0%, #b06050 60%, #804030 100%); border-radius: 50%; animation: dl-flower 5s ease-in-out infinite; }
.scn-dinner-luxury .hand { position:absolute; bottom:20%; left:45%; width:16px; height:30px; background: #4a3a2a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dl-hand 3s ease-in-out infinite; }
.scn-dinner-luxury .winebottle { position:absolute; bottom:20%; right:30%; width:20px; height:60px; background: #2a3a2a; border-radius: 4px 4px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: dl-bottle 10s ease-in-out infinite; }

@keyframes dl-plate { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes dl-glass { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes dl-candle { 0% { opacity:.8; transform: scaleY(0.9) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.9; transform: scaleY(1) } }
@keyframes dl-flower { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes dl-hand { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-5px) rotate(0deg) } 50% { transform: translateY(0) rotate(5deg) } 75% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes dl-bottle { 0%,100% { transform: rotate(0) } 50% { transform: rotate(-2deg) } }

.scn-chater-yachting-experience { background: linear-gradient(180deg, #2b2b5e 0%, #4a3a6e 30%, #6a4a6e 60%, #c08060 100%), radial-gradient(ellipse at 50% 0%, #4a3a6e 0%, transparent 70%); }
.scn-chater-yachting-experience .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a4a 0%, #4a3a6e 40%, #8a6a5e 100%); animation: cy-sky 20s ease-in-out infinite; }
.scn-chater-yachting-experience .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a4a5e 0%, #1a2a3e 100%); animation: cy-sea 12s ease-in-out infinite; }
.scn-chater-yachting-experience .yacht { position:absolute; bottom:30%; left:40%; width:80px; height:15px; background: #111; border-radius: 0 8px 8px 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: cy-yacht 7s ease-in-out infinite; }
.scn-chater-yachting-experience .sail { position:absolute; bottom:33%; left:42%; width:10px; height:40px; background: #ddd; border-radius: 2px 2px 0 0; transform-origin: bottom center; animation: cy-sail 7s ease-in-out infinite; }
.scn-chater-yachting-experience .figure-helm { position:absolute; bottom:35%; left:43%; width:12px; height:25px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cy-helm 5s ease-in-out infinite; }
.scn-chater-yachting-experience .cloud-a { position:absolute; top:15%; left:10%; width:100px; height:15px; background: rgba(255,255,255,0.3); filter: blur(10px); border-radius:50%; animation: cy-cloud 40s linear infinite; }
.scn-chater-yachting-experience .cloud-b { position:absolute; top:25%; right:5%; width:70px; height:10px; background: rgba(255,255,255,0.2); filter: blur(8px); border-radius:50%; animation: cy-cloud 50s linear infinite reverse; }

@keyframes cy-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cy-sea { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes cy-yacht { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(2px) } }
@keyframes cy-sail { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes cy-helm { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes cy-cloud { 0% { transform: translateX(0) } 50% { transform: translateX(40px) } 100% { transform: translateX(-40px) } }

.scn-identification-of-olinto {
  background: linear-gradient(180deg, #1a1423 0%, #2a1e2e 40%, #0f0b14 100%), radial-gradient(ellipse at 40% 50%, #3a2a3a 0%, transparent 70%);
}
.scn-identification-of-olinto .vignette {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1423 0%, transparent 20%, transparent 80%, #1a1423 100%);
  animation: io-vignette 6s ease-in-out infinite alternate;
}
.scn-identification-of-olinto .table {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a150e 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-identification-of-olinto .body-sheet {
  position: absolute; bottom: 32%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #d4c8b8 0%, #9e8e7a 100%);
  border-radius: 20% 20% 30% 30%;
  animation: io-body 8s ease-in-out infinite alternate;
}
.scn-identification-of-olinto .figure {
  position: absolute; bottom: 32%; left: 14%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1e2e 0%, #0f0b14 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: io-figure 4s ease-in-out infinite;
}
.scn-identification-of-olinto .lamp {
  position: absolute; bottom: 35%; left: 12%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 12px 4px #d4a060;
}
.scn-identification-of-olinto .lamp-glow {
  position: absolute; bottom: 35%; left: 12%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(212,160,96,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: io-lampglow 1.5s ease-in-out infinite alternate;
}
.scn-identification-of-olinto .shadow-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #0a0805 100%);
  opacity: 0.6;
  animation: io-shadow 15s ease-in-out infinite;
}
@keyframes io-vignette { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes io-body { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes io-figure { 0% { transform: translateX(0) rotate(-2deg) scale(1); } 25% { transform: translateX(2%) rotate(2deg) scale(1.02); } 50% { transform: translateX(0) rotate(-1deg) scale(0.98); } 75% { transform: translateX(-2%) rotate(1deg) scale(1); } 100% { transform: translateX(0) rotate(0) scale(1); } }
@keyframes io-lampglow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(0.8); } }
@keyframes io-shadow { 0%,100% { opacity:0.5; } 50% { opacity:0.7; } }

.scn-identifying-body {
  background: linear-gradient(180deg, #15101e 0%, #0d0a14 100%), radial-gradient(ellipse at 50% 40%, #2a1e30 0%, transparent 60%);
}
.scn-identifying-body .bg-edge {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #0f0b16 0%, #050308 100%);
  animation: ib-bg 12s ease-in-out infinite alternate;
}
.scn-identifying-body .torso {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-identifying-body .sheet {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #d4c8b8 0%, #9e8e7a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom;
  animation: ib-sheet 6s ease-in-out infinite alternate;
}
.scn-identifying-body .wound {
  position: absolute; bottom: 48%; left: 48%; width: 6%; height: 6%;
  background: radial-gradient(circle, #a0461a 0%, #5e1a0d 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #a0461a;
  animation: ib-wound 2s ease-in-out infinite;
}
.scn-identifying-body .hand {
  position: absolute; bottom: 35%; left: 35%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%;
  transform-origin: bottom left;
  animation: ib-hand 5s ease-in-out infinite alternate;
}
.scn-identifying-body .shadow-edge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, #0a0705 100%);
}
@keyframes ib-bg { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes ib-sheet { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ib-wound { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.3); opacity:1; } 100% { transform: scale(0.9); opacity:0.7; } }
@keyframes ib-hand { 0% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(2%,-2%) rotate(5deg); } 100% { transform: translate(0,0) rotate(-3deg); } }

.scn-item-misericordia-dagger {
  background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%), radial-gradient(ellipse at 50% 50%, #2a1e16 0%, transparent 70%);
}
.scn-item-misericordia-dagger .bg-table {
  position: absolute; inset: 10% 5%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a150e 100%);
  border-radius: 20%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-item-misericordia-dagger .dagger-blade {
  position: absolute; bottom: 40%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(90deg, #c0b0a0 0%, #e0d0c0 20%, #c0b0a0 40%, #e0d0c0 60%, #c0b0a0 80%, #e0d0c0 100%);
  border-radius: 2% 30% 30% 2% / 50% 50%;
  transform: rotate(-15deg); transform-origin: center left;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: md-blade 7s ease-in-out infinite alternate;
}
.scn-item-misericordia-dagger .dagger-hilt {
  position: absolute; bottom: 39%; left: 68%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2010 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-15deg); transform-origin: center left;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-item-misericordia-dagger .hand {
  position: absolute; bottom: 35%; left: 25%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  border-radius: 50% 40% 30% 20% / 60% 50% 40% 30%;
  transform: rotate(10deg); transform-origin: bottom right;
  animation: md-hand 3s ease-in-out infinite;
}
.scn-item-misericordia-dagger .bloodstain {
  position: absolute; bottom: 42%; left: 45%; width: 4%; height: 4%;
  background: radial-gradient(circle, #c8553d 0%, #8a3018 60%, transparent 100%);
  border-radius: 50%;
  animation: md-blood 12s ease-in-out infinite;
}
.scn-item-misericordia-dagger .shadow-dagger {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 4%;
  background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(4px);
  transform: rotate(-15deg);
  animation: md-shadow 7s ease-in-out infinite alternate;
}
@keyframes md-blade { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-2%); } 100% { transform: rotate(-12deg) translateY(1%); } }
@keyframes md-hand { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.05); } 100% { transform: rotate(5deg) scale(0.95); } }
@keyframes md-blood { 0%,100% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.2); opacity:1; } }
@keyframes md-shadow { 0% { opacity:0.5; transform: rotate(-15deg) scaleY(1); } 50% { opacity:0.8; transform: rotate(-18deg) scaleY(1.2); } 100% { opacity:0.4; transform: rotate(-12deg) scaleY(0.9); } }

.scn-returning-weapon {
  background: linear-gradient(180deg, #1a1423 0%, #0f0b14 100%), radial-gradient(ellipse at 40% 50%, #2a1e2e 0%, transparent 70%);
}
.scn-returning-weapon .vignette {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1423 0%, transparent 20%, transparent 80%, #1a1423 100%);
  animation: rw-vignette 8s ease-in-out infinite alternate;
}
.scn-returning-weapon .hand-off {
  position: absolute; bottom: 30%; left: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  border-radius: 50% 30% 30% 40% / 60% 50% 40% 50%;
  transform-origin: bottom right;
  animation: rw-handoff 5s ease-in-out infinite alternate;
}
.scn-returning-weapon .hand-accept {
  position: absolute; bottom: 30%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #b0a090 0%, #7a6a5a 100%);
  border-radius: 30% 50% 40% 30% / 50% 60% 50% 40%;
  transform-origin: bottom left;
  animation: rw-handacc 5s ease-in-out infinite alternate;
}
.scn-returning-weapon .dagger {
  position: absolute; bottom: 40%; left: 40%; width: 20%; height: 5%;
  background: linear-gradient(90deg, #c0b0a0 0%, #e0d0c0 20%, #c0b0a0 80%, #e0d0c0 100%);
  border-radius: 2% 30% 30% 2% / 50%;
  animation: rw-dagger 5s ease-in-out infinite alternate;
}
.scn-returning-weapon .lamp {
  position: absolute; top: 20%; left: 45%; width: 5%; height: 10%;
  background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 12px 4px #d4a060;
}
.scn-returning-weapon .lamp-glow {
  position: absolute; top: 18%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(212,160,96,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: rw-lampglow 2s ease-in-out infinite alternate;
}
@keyframes rw-vignette { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes rw-handoff { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10%) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes rw-handacc { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-10%) rotate(-5deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes rw-dagger { 0% { transform: translateX(0) rotate(-5deg) scale(1); } 50% { transform: translateX(5%) rotate(5deg) scale(1.1); } 100% { transform: translateX(-5%) rotate(-3deg) scale(0.9); } }
@keyframes rw-lampglow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.3); } 100% { opacity:0.6; transform: scale(0.8); } }

/* one block per scene id. Append to style.css. */
.scn-london-parting-night { background: linear-gradient(180deg, #0b0b1a 0%, #1a1a3e 40%, #0a0a15 100%), radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 60%); }
.scn-london-parting-night .sky { position:absolute; inset:0 0 40% 0; background:radial-gradient(ellipse at 70% 30%, #2a2a5e 0%, transparent 70%); animation: lpn-sky 12s ease-in-out infinite alternate; }
.scn-london-parting-night .fog { position:absolute; inset:0; background:linear-gradient(90deg, transparent 0%, rgba(200,200,220,.15) 50%, transparent 100%); filter: blur(30px); animation: lpn-fog 15s linear infinite; }
.scn-london-parting-night .moon { position:absolute; top:8%; right:25%; width:40px; height:40px; background:radial-gradient(circle, #e0e0ff 0%, #a0a0cc 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(160,160,204,.5); animation: lpn-moon 20s ease-in-out infinite alternate; }
.scn-london-parting-night .city-skyline { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #111122 0%, #050510 100%); clip-path: polygon(0% 100%, 0% 80%, 5% 80%, 5% 70%, 10% 70%, 10% 85%, 15% 85%, 15% 60%, 20% 60%, 20% 75%, 30% 75%, 30% 50%, 35% 50%, 35% 65%, 45% 65%, 45% 40%, 50% 40%, 50% 35%, 55% 35%, 55% 45%, 65% 45%, 65% 55%, 70% 55%, 70% 70%, 80% 70%, 80% 50%, 85% 50%, 85% 65%, 90% 65%, 90% 75%, 95% 75%, 95% 85%, 100% 85%, 100% 100%); animation: lpn-city 8s ease-in-out infinite alternate; }
.scn-london-parting-night .lamp-glow { position:absolute; bottom:25%; left:15%; width:60px; height:60px; background:radial-gradient(circle, rgba(255,180,80,.8) 0%, transparent 70%); border-radius:50%; animation: lpn-lamp-glow 4s ease-in-out infinite alternate; }
.scn-london-parting-night .lamp-post { position:absolute; bottom:20%; left:calc(15% + 25px); width:4px; height:50px; background: linear-gradient(180deg, #333 0%, #111 100%); transform-origin: bottom center; border-radius: 2px; }
.scn-london-parting-night .figure { position:absolute; bottom:20%; left:10%; width:12px; height:30px; background: #050510; border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lpn-walk 6s ease-in-out infinite; }
@keyframes lpn-sky { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes lpn-fog { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }
@keyframes lpn-moon { 0% { transform: translateY(0) scale(.9); } 50% { transform: translateY(5px) scale(1); } 100% { transform: translateY(-3px) scale(.95); } }
@keyframes lpn-city { 0% { transform: translateY(0); } 100% { transform: translateY(-4px); } }
@keyframes lpn-lamp-glow { 0% { opacity:.6; transform: scale(.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(1); } }
@keyframes lpn-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(-5deg); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(30px) rotate(5deg); } 100% { transform: translateX(40px) rotate(0deg); } }

.scn-london-elma-danger { background: radial-gradient(ellipse at 50% 70%, #1a1010 0%, #050505 100%), linear-gradient(180deg, #0a0a0a 0%, #1a1010 100%); }
.scn-london-elma-danger .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, #1a1010 0%, #000 100%); animation: led-bg 8s ease-in-out infinite alternate; }
.scn-london-elma-danger .rim-light { position:absolute; top:5%; right:10%; width:30%; height:60%; background: linear-gradient(135deg, rgba(200,200,220,.15) 0%, transparent 100%); filter: blur(10px); animation: led-rim 5s ease-in-out infinite alternate; }
.scn-london-elma-danger .profile-left { position:absolute; bottom:25%; left:15%; width:60px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 20% 50% 30% / 60% 20% 60% 30%; transform: rotate(5deg); animation: led-breathe 6s ease-in-out infinite; }
.scn-london-elma-danger .profile-right { position:absolute; bottom:25%; right:15%; width:60px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 20% 50% 30% 50% / 20% 60% 30% 60%; transform: rotate(-5deg); animation: led-breathe 6s ease-in-out infinite -2s; }
.scn-london-elma-danger .hands-clasped { position:absolute; bottom:38%; left:50%; width:40px; height:30px; background: radial-gradient(ellipse, #3a2a20 0%, #1a1210 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 0 15px 5px rgba(100,80,60,.4); transform: translateX(-50%); animation: led-clasp 4s ease-in-out infinite alternate; }
.scn-london-elma-danger .coat-collar-left { position:absolute; bottom:38%; left:5%; width:80px; height:40px; background: #050505; border-radius: 0% 60% 0% 40% / 0% 80% 0% 60%; transform: rotate(10deg); }
.scn-london-elma-danger .coat-collar-right { position:absolute; bottom:38%; right:5%; width:80px; height:40px; background: #050505; border-radius: 60% 0% 40% 0% / 80% 0% 60% 0%; transform: rotate(-10deg); }
@keyframes led-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes led-rim { 0% { opacity:.3; } 50% { opacity:1; } 100% { opacity:.5; } }
@keyframes led-breathe { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-5px) rotate(6deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes led-clasp { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(.95); } }

.scn-london-durnford-missing { background: linear-gradient(135deg, #2a1a10 0%, #4a3a2a 50%, #1a1410 100%), radial-gradient(ellipse at 50% 20%, #6a5a4a 0%, transparent 60%); }
.scn-london-durnford-missing .wall-panels { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(0,0,0,.2) 40px, rgba(0,0,0,.2) 42px), repeating-linear-gradient(180deg, transparent 0px, transparent 80px, rgba(0,0,0,.2) 80px, rgba(0,0,0,.2) 82px); animation: ldm-panels 20s linear infinite; }
.scn-london-durnford-missing .clock { position:absolute; top:10%; left:50%; width:80px; height:120px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,.5); transform: translateX(-50%); animation: ldm-clock 2s ease-in-out infinite; }
.scn-london-durnford-missing .clock-face { position:absolute; top:15%; left:50%; width:60px; height:60px; background: radial-gradient(circle, #f0e0c0 0%, #c0a080 100%); border-radius:50%; box-shadow: inset 0 0 10px rgba(0,0,0,.5); transform: translateX(-50%); }
.scn-london-durnford-missing .armchair { position:absolute; bottom:22%; left:50%; width:80px; height:60px; background: linear-gradient(180deg, #6a2a1a 0%, #4a1810 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.6); transform: translateX(-50%); }
.scn-london-durnford-missing .waiting-figure { position:absolute; bottom:22%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ldm-fidget 6s ease-in-out infinite; }
.scn-london-durnford-missing .table { position:absolute; bottom:15%; left:50%; width:60px; height:15px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius: 5px; box-shadow: 0 2px 4px rgba(0,0,0,.5); transform: translateX(-50%); }
.scn-london-durnford-missing .lamp-glow-interior { position:absolute; top:5%; left:40%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,200,100,.6) 0%, rgba(255,200,100,.1) 40%, transparent 70%); border-radius:50%; animation: ldm-lamp 3s ease-in-out infinite alternate; }
@keyframes ldm-panels { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes ldm-clock { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ldm-fidget { 0% { transform: translateX(-50%) rotate(0deg) translateY(0); } 25% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(0deg) translateY(0); } 75% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes ldm-lamp { 0% { opacity:.7; transform: scale(.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.8; transform: scale(1); } }

.scn-london-olinto-warning { background: linear-gradient(180deg, #1a1a10 0%, #0a0a05 100%), radial-gradient(ellipse at 50% 0%, #3a3a20 0%, transparent 60%); }
.scn-london-olinto-warning .shaft-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #2a2a15 0%, #0a0a05 100%), repeating-linear-gradient(0deg, transparent 0px, transparent 30px, rgba(50,50,30,.2) 30px, rgba(50,50,30,.2) 32px); animation: low-shaft 10s linear infinite; }
.scn-london-olinto-warning .cage-gate { position:absolute; top:10%; left:50%; width:80%; height:80%; border: 4px solid #5a4a3a; background: repeating-linear-gradient(90deg, transparent 0px, transparent 15px, #5a4a3a 15px, #5a4a3a 18px), repeating-linear-gradient(180deg, transparent 0px, transparent 15px, #5a4a3a 15px, #5a4a3a 18px); opacity:.3; transform: translateX(-50%); animation: low-cage 5s ease-in-out infinite alternate; }
.scn-london-olinto-warning .light-cone { position:absolute; top:5%; left:30%; width:40%; height:90%; background: linear-gradient(180deg, rgba(255,220,150,.8) 0%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 85% 100%, 15% 100%); filter: blur(15px); animation: low-flicker 4s ease-in-out infinite alternate; }
.scn-london-olinto-warning .figure-inside { position:absolute; bottom:30%; left:50%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: -5px 0 10px rgba(0,0,0,.5); transform: translateX(-50%); animation: low-enter 8s ease-in-out infinite; }
.scn-london-olinto-warning .figure-outside { position:absolute; bottom:30%; left:15%; width:35px; height:70px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: scaleX(-1); animation: low-enter 8s ease-in-out infinite -4s; }
.scn-london-olinto-warning .shadow-bars { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(0,0,0,.4) 20px, rgba(0,0,0,.4) 25px); animation: low-shadows 12s linear infinite; }
@keyframes low-shaft { 0% { background-position: 0 0; } 100% { background-position: 0 100px; } }
@keyframes low-cage { 0% { opacity:.2; } 50% { opacity:.4; } 100% { opacity:.2; } }
@keyframes low-flicker { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes low-enter { 0% { transform: translateX(-50%) translateY(100px); opacity:0; } 30% { opacity:1; } 50% { transform: translateX(-50%) translateY(0); opacity:1; } 70% { opacity:1; } 100% { transform: translateX(-50%) translateY(0); opacity:0; } }
@keyframes low-shadows { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }

.scn-palace-demand-freedom {
  background: linear-gradient(180deg, #e8d5b0 0%, #d4b88a 40%, #a07850 70%, #5a3a20 100%),
              radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-palace-demand-freedom .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(90,58,32,0.3) 70%, rgba(40,20,10,0.5) 100%);
}
.scn-palace-demand-freedom .column-l {
  position: absolute; left: 8%; top: 0; bottom: 0; width: 6%;
  background: linear-gradient(180deg, #c8a878 0%, #8a6848 50%, #5a3a20 100%);
  box-shadow: 4px 0 12px rgba(0,0,0,0.4);
}
.scn-palace-demand-freedom .column-r {
  position: absolute; right: 8%; top: 0; bottom: 0; width: 6%;
  background: linear-gradient(180deg, #c8a878 0%, #8a6848 50%, #5a3a20 100%);
  box-shadow: -4px 0 12px rgba(0,0,0,0.4);
}
.scn-palace-demand-freedom .desk {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #6a4a28 0%, #3a2210 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.6);
}
.scn-palace-demand-freedom .figure-minister {
  position: absolute; bottom: 30%; left: 38%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pdfr-minister 5s ease-in-out infinite;
}
.scn-palace-demand-freedom .figure-supplicant {
  position: absolute; bottom: 22%; right: 28%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #8a6848 0%, #5a3a20 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pdfr-supplicant 3s ease-in-out infinite;
}
.scn-palace-demand-freedom .window-bars {
  position: absolute; top: 8%; right: 22%; width: 16%; height: 28%;
  background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, #d4b88a 50%, #a07850 100%);
  border: 3px solid #3a2210; border-radius: 4%;
  box-shadow: 0 0 30px 10px rgba(240,224,192,0.3);
  animation: pdfr-window 4s ease-in-out infinite alternate;
}
.scn-palace-demand-freedom .shadow-cast {
  position: absolute; bottom: 18%; left: 20%; right: 40%; height: 40%;
  background: linear-gradient(135deg, rgba(20,10,5,0.6) 0%, transparent 70%);
  animation: pdfr-shadow 6s ease-in-out infinite;
}
.scn-palace-demand-freedom .chandelier {
  position: absolute; top: 0; left: 40%; right: 40%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #c8a878 0%, transparent 70%);
  animation: pdfr-chandelier 8s ease-in-out infinite;
}
@keyframes pdfr-minister { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes pdfr-supplicant { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(-3px); } }
@keyframes pdfr-window { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(240,224,192,0.2); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(240,224,192,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(240,224,192,0.25); } }
@keyframes pdfr-shadow { 0%,100% { opacity: 0.5; transform: skewX(0deg); } 50% { opacity: 0.8; transform: skewX(-3deg); } }
@keyframes pdfr-chandelier { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg) translateY(-2px); } }

.scn-palace-oberg-fear-revelation {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 30% 50%, #6a4a28 0%, transparent 60%);
}
.scn-palace-oberg-fear-revelation .bg-panel {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(90,58,32,0.2) 40px, rgba(90,58,32,0.2) 42px);
}
.scn-palace-oberg-fear-revelation .figure-oberg {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 34%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pore-oberg 2s ease-in-out infinite;
}
.scn-palace-oberg-fear-revelation .figure-accuser {
  position: absolute; bottom: 22%; right: 22%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pore-accuser 4s ease-in-out infinite;
}
.scn-palace-oberg-fear-revelation .table {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 2%; box-shadow: 0 -2px 10px rgba(0,0,0,0.5);
}
.scn-palace-oberg-fear-revelation .lamp-glow {
  position: absolute; bottom: 22%; left: 48%; width: 4%; height: 6%;
  background: radial-gradient(circle, #f0d080 0%, #c8a050 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,208,128,0.4), 0 0 60px 20px rgba(240,208,128,0.2);
  animation: pore-lamp 3s ease-in-out infinite alternate;
}
.scn-palace-oberg-fear-revelation .shadow-wall {
  position: absolute; top: 10%; right: 15%; width: 30%; height: 50%;
  background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: pore-shadow 5s ease-in-out infinite;
}
.scn-palace-oberg-fear-revelation .document {
  position: absolute; bottom: 18%; left: 44%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #e8d5b0 0%, #c8a878 100%);
  border-radius: 2%; transform: rotate(-5deg);
  animation: pore-doc 6s ease-in-out infinite;
}
@keyframes pore-oberg { 0%,100% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(0.95) translateY(-2px); } }
@keyframes pore-accuser { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(3deg) translateX(-4px); } }
@keyframes pore-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(240,208,128,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(240,208,128,0.5); } 100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(240,208,128,0.35); } }
@keyframes pore-shadow { 0%,100% { opacity: 0.4; transform: skewX(0deg); } 50% { opacity: 0.7; transform: skewX(4deg); } }
@keyframes pore-doc { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }

.scn-palace-denunciation {
  background: linear-gradient(180deg, #d4b88a 0%, #b89868 30%, #8a6848 60%, #5a3a20 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-palace-denunciation .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(90,58,32,0.2) 60%, rgba(40,20,10,0.4) 100%);
}
.scn-palace-denunciation .figure-accuser {
  position: absolute; bottom: 20%; left: 25%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #3a2210 0%, #1a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pden-accuser 3s ease-in-out infinite;
}
.scn-palace-denunciation .figure-accuser::after {
  content: ''; position: absolute; top: 20%; right: -30%; width: 25%; height: 4%;
  background: #2a1a0a; border-radius: 20%; transform: rotate(20deg);
  animation: pden-arm 3s ease-in-out infinite;
}
.scn-palace-denunciation .figure-accused {
  position: absolute; bottom: 22%; right: 28%; width: 11%; height: 34%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pden-accused 2.5s ease-in-out infinite;
}
.scn-palace-denunciation .column {
  position: absolute; right: 8%; top: 0; bottom: 0; width: 5%;
  background: linear-gradient(180deg, #c8a878 0%, #8a6848 50%, #5a3a20 100%);
  box-shadow: -3px 0 10px rgba(0,0,0,0.3);
}
.scn-palace-denunciation .window-light {
  position: absolute; top: 6%; left: 10%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, #d4b88a 50%, transparent 100%);
  box-shadow: 0 0 40px 15px rgba(240,224,192,0.3);
  animation: pden-window 5s ease-in-out infinite alternate;
}
.scn-palace-denunciation .shadow-diag {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(135deg, rgba(20,10,5,0.5) 0%, transparent 60%);
  animation: pden-shadow 4s ease-in-out infinite;
}
.scn-palace-denunciation .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: repeating-conic-gradient(#5a3a20 0% 25%, #6a4a28 0% 50%) 0 0 / 20px 20px;
  opacity: 0.4;
}
@keyframes pden-accuser { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-4deg) translateX(-3px); } }
@keyframes pden-arm { 0%,100% { transform: rotate(20deg); } 50% { transform: rotate(35deg); } }
@keyframes pden-accused { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(5deg) translateX(5px); } }
@keyframes pden-window { 0% { opacity: 0.6; box-shadow: 0 0 20px 5px rgba(240,224,192,0.2); } 50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(240,224,192,0.4); } 100% { opacity: 0.7; box-shadow: 0 0 30px 10px rgba(240,224,192,0.25); } }
@keyframes pden-shadow { 0%,100% { opacity: 0.4; transform: skewX(0deg); } 50% { opacity: 0.7; transform: skewX(-5deg); } }

.scn-palace-defiance-final {
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b88a 30%, #a07850 60%, #6a4a28 100%),
              radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 60%);
}
.scn-palace-defiance-final .bg-grand {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(106,74,40,0.2) 50%, rgba(40,20,10,0.4) 100%);
}
.scn-palace-defiance-final .figure-defiant {
  position: absolute; bottom: 20%; left: 45%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pdef-defiant 4s ease-in-out infinite;
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
}
.scn-palace-defiance-final .figure-defiant::after {
  content: ''; position: absolute; top: 15%; right: -20%; width: 20%; height: 3%;
  background: #1a0a00; border-radius: 20%; transform: rotate(-30deg);
  animation: pdef-arm 4s ease-in-out infinite;
}
.scn-palace-defiance-final .figure-czar {
  position: absolute; bottom: 22%; left: 18%; width: 16%; height: 36%;
  background: linear-gradient(180deg, #5a3a20 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pdef-czar 6s ease-in-out infinite;
  box-shadow: 4px 0 12px rgba(0,0,0,0.4);
}
.scn-palace-defiance-final .column {
  position: absolute; right: 6%; top: 0; bottom: 0; width: 5%;
  background: linear-gradient(180deg, #c8a878 0%, #8a6848 50%, #5a3a20 100%);
  box-shadow: -3px 0 10px rgba(0,0,0,0.3);
}
.scn-palace-defiance-final .window-blaze {
  position: absolute; top: 4%; left: 35%; right: 35%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #fff0d0 0%, #f0e0c0 30%, #d4b88a 60%, transparent 100%);
  box-shadow: 0 0 60px 25px rgba(240,224,192,0.4), 0 0 120px 40px rgba(240,224,192,0.2);
  animation: pdef-blaze 7s ease-in-out infinite alternate;
}
.scn-palace-defiance-final .shadow-czar {
  position: absolute; bottom: 0; left: 10%; width: 30%; height: 50%;
  background: linear-gradient(135deg, rgba(20,10,5,0.6) 0%, transparent 70%);
  animation: pdef-shadow 5s ease-in-out infinite;
}
.scn-palace-defiance-final .chandelier {
  position: absolute; top: 0; left: 38%; right: 38%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, #d4b88a 0%, transparent 70%);
  animation: pdef-chandelier 8s ease-in-out infinite;
}
@keyframes pdef-defiant { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(2px); } }
@keyframes pdef-arm { 0%,100% { transform: rotate(-30deg); } 50% { transform: rotate(-45deg); } }
@keyframes pdef-czar { 0%,100% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.02) translateX(-3px); } }
@keyframes pdef-blaze { 0% { opacity: 0.7; box-shadow: 0 0 40px 15px rgba(240,224,192,0.3); } 50% { opacity: 1; box-shadow: 0 0 80px 30px rgba(240,224,192,0.5); } 100% { opacity: 0.8; box-shadow: 0 0 50px 20px rgba(240,224,192,0.35); } }
@keyframes pdef-shadow { 0%,100% { opacity: 0.4; transform: skewX(0deg); } 50% { opacity: 0.7; transform: skewX(4deg); } }
@keyframes pdef-chandelier { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1.5deg) translateY(-3px); } }

/* Scene: forest-halt-lake (fhl) */
.scn-forest-halt-lake {
  background: linear-gradient(180deg, #0a0a1a 0%, #101028 40%, #1a1a3a 100%), radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 60%);
}
.scn-forest-halt-lake .sky {
  position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #0e0e1e 0%, #151530 100%);
}
.scn-forest-halt-lake .distant-trees {
  position:absolute; bottom:40%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, #0a1a0a 0%, #050f05 100%);
  border-radius: 50% 30% 70% 20% / 60% 40% 60% 30%;
  transform: scaleY(1.2); animation: fhl-trees 15s ease-in-out infinite;
}
.scn-forest-halt-lake .lake {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #0a1020 0%, #050810 100%);
  border-top: 1px solid rgba(255,255,255,0.05);
  animation: fhl-lake 8s ease-in-out infinite;
}
.scn-forest-halt-lake .mist {
  position:absolute; top:30%; left:0; right:0; height:40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,200,220,0.15) 0%, transparent 60%);
  filter: blur(20px);
}
.scn-forest-halt-lake .mist-a { animation: fhl-mist-drift 20s ease-in-out infinite alternate; }
.scn-forest-halt-lake .mist-b {
  top:25%; height:30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,180,200,0.1) 0%, transparent 50%);
  animation: fhl-mist-drift 30s ease-in-out infinite alternate;
  animation-delay: -10s;
}
.scn-forest-halt-lake .shore {
  position:absolute; bottom:38%; left:15%; right:15%; height:4%;
  background: #0a100a; border-radius: 30% 30% 0 0;
}
.scn-forest-halt-lake .figure {
  position:absolute; bottom:39%; width:12px; height:30px;
  background: #050510; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-forest-halt-lake .figure-left { left:35%; animation: fhl-figure 4s ease-in-out infinite; }
.scn-forest-halt-lake .figure-right { left:55%; animation: fhl-figure 4s ease-in-out infinite; animation-delay: -2s; }
.scn-forest-halt-lake .foreground-tree {
  position:absolute; bottom:10%; left:5%; width:40px; height:70%;
  background: linear-gradient(180deg, #0a0f0a 0%, #020502 100%);
  border-radius: 40% 40% 0 0; transform: scaleX(0.6);
}

@keyframes fhl-trees {
  0% { transform: scaleY(1.2) translateY(0); }
  50% { transform: scaleY(1.22) translateY(-2px); }
  100% { transform: scaleY(1.2) translateY(0); }
}
@keyframes fhl-lake {
  0% { opacity:0.7; }
  50% { opacity:0.85; }
  100% { opacity:0.7; }
}
@keyframes fhl-mist-drift {
  0% { transform: translateY(0) scale(1); opacity:0.6; }
  50% { transform: translateY(-10px) scale(1.05); opacity:0.9; }
  100% { transform: translateY(5px) scale(0.95); opacity:0.5; }
}
@keyframes fhl-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

/* Scene: item-guards-boat (igb) */
.scn-item-guards-boat {
  background: linear-gradient(180deg, #0a0a0a 0%, #0e0e1a 40%, #0a140a 100%), radial-gradient(ellipse at 50% 100%, #0a140a 0%, transparent 60%);
}
.scn-item-guards-boat .sky {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0e0e1a 0%, #0a0a0a 100%);
}
.scn-item-guards-boat .bog-water {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #0a140a 0%, #050805 100%);
}
.scn-item-guards-boat .reeds {
  position:absolute; bottom:30%; width:8px;
  background: linear-gradient(180deg, #0a1a0a 0%, #051005 100%);
  border-radius: 50% 50% 0 0;
}
.scn-item-guards-boat .reeds-back { left:20%; height:60px; animation: igb-reed-sway 6s ease-in-out infinite; }
.scn-item-guards-boat .reeds-fore { left:70%; height:80px; animation: igb-reed-sway 7s ease-in-out infinite; animation-delay: -3s; }
.scn-item-guards-boat .guards-boat {
  position:absolute; bottom:45%; left:65%; width:50px; height:15px;
  background: #0a0a0a; border-radius: 30% 30% 10% 10%;
  transform: scaleX(0.5); animation: igb-boat-drift 20s linear infinite;
}
.scn-item-guards-boat .lantern {
  position:absolute; bottom:46%; left:68%; width:4px; height:4px;
  background: #d08020; border-radius:50%;
  box-shadow: 0 0 12px 4px rgba(208,128,32,0.6);
  animation: igb-lantern-flicker 2s ease-in-out infinite;
}
.scn-item-guards-boat .mist {
  position:absolute; top:20%; left:0; right:0; height:30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,200,220,0.1) 0%, transparent 60%);
  filter: blur(30px);
  animation: igb-mist-drift 25s ease-in-out infinite alternate;
}

@keyframes igb-reed-sway {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes igb-boat-drift {
  0% { transform: translateX(0) scaleX(0.5); }
  50% { transform: translateX(-20px) scaleX(0.55); }
  100% { transform: translateX(0) scaleX(0.5); }
}
@keyframes igb-lantern-flicker {
  0% { opacity:0.7; box-shadow: 0 0 8px 3px rgba(208,128,32,0.5); }
  50% { opacity:1; box-shadow: 0 0 16px 5px rgba(208,128,32,0.9); }
  100% { opacity:0.7; box-shadow: 0 0 8px 3px rgba(208,128,32,0.5); }
}
@keyframes igb-mist-drift {
  0% { transform: translateY(0) scale(1); opacity:0.4; }
  50% { transform: translateY(-15px) scale(1.1); opacity:0.8; }
  100% { transform: translateY(5px) scale(0.9); opacity:0.3; }
}

/* Scene: forest-boat-escape (fbe) */
.scn-forest-boat-escape {
  background: linear-gradient(180deg, #030306 0%, #0a0a14 30%, #141428 70%, #0a0a0a 100%), radial-gradient(ellipse at 50% 100%, #0a0a14 0%, transparent 70%);
}
.scn-forest-boat-escape .sky {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #030306 0%, #0a0a14 100%);
}
.scn-forest-boat-escape .bank-overhead {
  position:absolute; top:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #0a0a0a 0%, #0e0e1a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.8);
}
.scn-forest-boat-escape .boat {
  position:absolute; bottom:35%; left:10%; right:10%; height:20px;
  background: #0a0a0a; border-radius: 40% 40% 10% 10%;
  transform: scaleX(2) translateY(0);
  animation: fbe-boat-bob 6s ease-in-out infinite;
}
.scn-forest-boat-escape .rower {
  position:absolute; bottom:36%; width:8px; height:20px;
  background: #050510; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
}
.scn-forest-boat-escape .rower-1 { left:15%; animation: fbe-row 1.5s ease-in-out infinite; }
.scn-forest-boat-escape .rower-2 { left:50%; animation: fbe-row 1.5s ease-in-out infinite; animation-delay: -0.5s; }
.scn-forest-boat-escape .rower-3 { left:80%; animation: fbe-row 1.5s ease-in-out infinite; animation-delay: -1s; }
.scn-forest-boat-escape .water {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #0a1020 0%, #050810 100%);
  border-top: 1px solid rgba(255,255,255,0.02);
  animation: fbe-water 10s ease-in-out infinite;
}
.scn-forest-boat-escape .wake {
  position:absolute; bottom:30%; left:5%; right:95%; height:2px;
  background: rgba(255,255,255,0.1); filter: blur(2px);
  animation: fbe-wake 8s linear infinite;
}

@keyframes fbe-boat-bob {
  0% { transform: scaleX(2) translateY(0); }
  50% { transform: scaleX(2) translateY(-3px); }
  100% { transform: scaleX(2) translateY(0); }
}
@keyframes fbe-row {
  0% { transform: rotate(-30deg) translateY(0); }
  25% { transform: rotate(0deg) translateY(-2px); }
  50% { transform: rotate(30deg) translateY(0); }
  75% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(-30deg) translateY(0); }
}
@keyframes fbe-water {
  0% { background-position: 0 0; }
  50% { background-position: 20px 0; }
  100% { background-position: 0 0; }
}
@keyframes fbe-wake {
  0% { transform: translateX(0) scaleX(1); opacity:0.6; }
  50% { transform: translateX(-50px) scaleX(0.5); opacity:0.2; }
  100% { transform: translateX(-100px) scaleX(0.2); opacity:0; }
}

/* Scene: lake-row-north (lrn) */
.scn-lake-row-north {
  background: linear-gradient(180deg, #050510 0%, #0a0a1a 40%, #0e0e20 100%), radial-gradient(ellipse at 50% 100%, #0e0e20 0%, transparent 70%);
}
.scn-lake-row-north .sky {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #050510 0%, #0a0a1a 100%);
}
.scn-lake-row-north .far-shore {
  position:absolute; bottom:50%; left:20%; right:20%; height:10%;
  background: #0a0a0a; border-radius: 40% 60% 0 0 / 80% 70% 0 0;
}
.scn-lake-row-north .water {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #0a1020 0%, #050810 100%);
  animation: lrn-water 15s ease-in-out infinite;
}
.scn-lake-row-north .signal {
  position:absolute; width:6px; height:6px;
  background: #d08020; border-radius:50%;
  box-shadow: 0 0 20px 6px rgba(208,128,32,0.5);
}
.scn-lake-row-north .signal-1 { bottom:52%; left:30%; animation: lrn-signal 2s ease-in-out infinite; }
.scn-lake-row-north .signal-2 { bottom:55%; left:70%; animation: lrn-signal 2.5s ease-in-out infinite; animation-delay: -1s; }
.scn-lake-row-north .reflections {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: radial-gradient(ellipse at 50% 30%, rgba(208,128,32,0.1) 0%, transparent 50%);
  filter: blur(5px);
  animation: lrn-reflect 10s ease-in-out infinite;
}
.scn-lake-row-north .mist {
  position:absolute; top:20%; left:0; right:0; height:40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,200,220,0.1) 0%, transparent 60%);
  filter: blur(30px);
  animation: lrn-mist-drift 30s ease-in-out infinite alternate;
}

@keyframes lrn-water {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes lrn-signal {
  0% { opacity:0.5; transform: scale(1); }
  50% { opacity:1; transform: scale(1.2); box-shadow: 0 0 30px 10px rgba(208,128,32,0.8); }
  100% { opacity:0.5; transform: scale(1); }
}
@keyframes lrn-reflect {
  0% { opacity:0.3; }
  50% { opacity:0.6; }
  100% { opacity:0.3; }
}
@keyframes lrn-mist-drift {
  0% { transform: translateX(0) scale(1); opacity:0.3; }
  50% { transform: translateX(-20px) scale(1.1); opacity:0.6; }
  100% { transform: translateX(20px) scale(0.9); opacity:0.2; }
}

.scn-petersburg-chater-question { background: linear-gradient(180deg, #fff8e7 0%, #f0e2c5 40%, #3a3028 40.1%, #1f1915 100%), radial-gradient(ellipse at 30% 60%, rgba(255,255,255,0.15) 0%, transparent 70%); }
.scn-petersburg-chater-question .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8dccc 0%, #fff8e7 60%, #d9c9a5 100%); }
.scn-petersburg-chater-question .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3b32 0%, #2a1f18 20%, #0f0b08 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.7); }
.scn-petersburg-chater-question .window-harsh { position:absolute; top:5%; left:25%; width:25%; height:65%; background: radial-gradient(ellipse at 50% 50%, #ffffff 0%, #fff8e7 40%, #e0d4b8 100%); box-shadow: 0 0 60px 30px rgba(255,255,255,0.7); border-radius: 4% 4% 0 0; animation: pcq-flicker 4s ease-in-out infinite alternate; }
.scn-petersburg-chater-question .shadow-cast { position:absolute; bottom:30%; left:10%; width:80%; height:40%; background: linear-gradient(90deg, rgba(15,11,8,.8) 0%, rgba(15,11,8,.4) 40%, transparent 80%); transform-origin: left bottom; animation: pcq-pulse 8s ease-in-out infinite; }
.scn-petersburg-chater-question .desk { position:absolute; bottom:20%; left:15%; width:70%; height:15%; background: linear-gradient(180deg, #5c4a3e 0%, #33261e 100%); border-radius: 2% 2% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-petersburg-chater-question .figure-kampf { position:absolute; bottom:22%; left:35%; width:12%; height:35%; background: linear-gradient(180deg, #2a201b 0%, #110c09 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pcq-stroke 6s ease-in-out infinite; }
.scn-petersburg-chater-question .figure-woodroffe { position:absolute; bottom:22%; left:55%; width:10%; height:50%; background: linear-gradient(180deg, #2a201b 0%, #110c09 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pcq-sway 5s ease-in-out infinite; }
.scn-petersburg-chater-question .papers { position:absolute; bottom:22%; left:42%; width:8%; height:4%; background: linear-gradient(135deg, #f5edd6 0%, #e3d6b8 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: pcq-bristle 11s ease-in-out infinite; }
@keyframes pcq-flicker { 0% { opacity: .8; box-shadow: 0 0 50px 20px rgba(255,255,255,.7); } 50% { opacity: 1; box-shadow: 0 0 80px 30px rgba(255,255,255,.9); } 100% { opacity: .85; box-shadow: 0 0 60px 25px rgba(255,255,255,.75); } }
@keyframes pcq-pulse { 0% { transform: scaleX(1) scaleY(1); opacity: .6; } 50% { transform: scaleX(1.03) scaleY(.98); opacity: .8; } 100% { transform: scaleX(1) scaleY(1); opacity: .6; } }
@keyframes pcq-stroke { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes pcq-sway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pcq-bristle { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(2deg) translateY(-2px); } 70% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(0deg) translateY(0); } }

.scn-petersburg-mystery-layered { background: linear-gradient(180deg, #3d1517 0%, #5e1a1d 30%, #2c1112 100%), radial-gradient(ellipse at 50% 0%, #7a282c 0%, transparent 60%); }
.scn-petersburg-mystery-layered .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #5e1a1d 0%, #702243 40%, #2c1112 100%); }
.scn-petersburg-mystery-layered .curtain-left { position:absolute; top:0; left:0; width:35%; height:100%; background: linear-gradient(90deg, #1f090a 0%, #4a1618 30%, #702243 100%); border-radius: 0 40% 40% 0 / 0 20% 20% 0; box-shadow: inset -8px 0 20px rgba(0,0,0,.5); transform-origin: left center; animation: pml-sway-l 9s ease-in-out infinite; }
.scn-petersburg-mystery-layered .curtain-right { position:absolute; top:0; right:0; width:35%; height:100%; background: linear-gradient(270deg, #1f090a 0%, #4a1618 30%, #702243 100%); border-radius: 40% 0 0 40% / 20% 0 0 20%; box-shadow: inset 8px 0 20px rgba(0,0,0,.5); transform-origin: right center; animation: pml-sway-r 9s ease-in-out infinite 4.5s; }
.scn-petersburg-mystery-layered .lamp-glow { position:absolute; bottom:50%; left:50%; width:8%; height:10%; transform: translate(-50%, 50%); background: radial-gradient(circle, #ffd680 0%, #e6a844 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,214,128,.6); animation: pml-glint 3s ease-in-out infinite; }
.scn-petersburg-mystery-layered .figure-elma { position:absolute; bottom:15%; left:45%; width:14%; height:30%; background: linear-gradient(180deg, #3a2022 0%, #1a0a0b 100%); border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: pml-sob 6s ease-in-out infinite; }
.scn-petersburg-mystery-layered .figure-princess { position:absolute; bottom:20%; left:55%; width:16%; height:40%; background: linear-gradient(180deg, #5e3a3d 0%, #2a1416 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pml-comfort 4s ease-in-out infinite; }
.scn-petersburg-mystery-layered .veil-shadow { position:absolute; inset:0; background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.4) 70%, rgba(0,0,0,.7) 100%); animation: pml-drift 12s linear infinite; }
@keyframes pml-glint { 0% { box-shadow: 0 0 25px 5px #ffd680; opacity: .9; } 40% { box-shadow: 0 0 50px 15px #ffe099; opacity: 1; } 100% { box-shadow: 0 0 25px 5px #ffd680; opacity: .9; } }
@keyframes pml-sway-l { 0% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(-6px) skewX(1deg); } 100% { transform: translateX(0) skewX(0deg); } }
@keyframes pml-sway-r { 0% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(6px) skewX(-1deg); } 100% { transform: translateX(0) skewX(0deg); } }
@keyframes pml-sob { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(-3deg) scaleY(1.02); } 50% { transform: rotate(0deg) scaleY(1); } 75% { transform: rotate(3deg) scaleY(1.02); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes pml-comfort { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pml-drift { 0% { opacity: .7; transform: translateY(0) scale(1); } 50% { opacity: .9; transform: translateY(-12px) scale(1.05); } 100% { opacity: .7; transform: translateY(0) scale(1); } }

.scn-petersburg-elma-safe { background: linear-gradient(180deg, #fff9f2 0%, #fdf1e6 40%, #f4d9b2 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%); }
.scn-petersburg-elma-safe .bg-soft { position:absolute; inset:0; background: linear-gradient(180deg, #fff9f2 0%, #fdf1e6 60%, #f4d9b2 100%); }
.scn-petersburg-elma-safe .window-soft { position:absolute; top:5%; left:20%; width:60%; height:50%; background: radial-gradient(ellipse at 50% 50%, #fffdf7 0%, #fdf1e6 50%, #ecd7bd 100%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(255,255,255,.5); transform-origin: center; animation: pes-ray 8s ease-in-out infinite alternate; }
.scn-petersburg-elma-safe .table-tea { position:absolute; bottom:10%; left:50%; width:50%; height:20%; transform: translateX(-50%); background: linear-gradient(180deg, #d9bfa3 0%, #b89b82 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.1); }
.scn-petersburg-elma-safe .figure-kind-woman { position:absolute; bottom:12%; left:30%; width:20%; height:45%; background: linear-gradient(180deg, #b87878 0%, #8c5959 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pes-tender 7s ease-in-out infinite; }
.scn-petersburg-elma-safe .figure-elma-safe { position:absolute; bottom:12%; left:55%; width:18%; height:42%; background: linear-gradient(180deg, #8ca6a6 0%, #5c7373 100%); border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: pes-breathe 5s ease-in-out infinite; }
.scn-petersburg-elma-safe .flower-ornament { position:absolute; bottom:15%; left:45%; width:8%; height:12%; background: radial-gradient(circle at 50% 80%, #c8553d 0%, #e0856a 40%, transparent 70%); border-radius: 50%; transform-origin: bottom center; animation: pes-bob 6s ease-in-out infinite; }
.scn-petersburg-elma-safe .warm-ambient-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 60%, rgba(255,220,180,.4) 0%, transparent 60%); animation: pes-shimmer 10s ease-in-out infinite; }
@keyframes pes-ray { 0% { opacity: .85; transform: scaleX(1) scaleY(1); } 50% { opacity: 1; transform: scaleX(1.02) scaleY(1.01); } 100% { opacity: .85; transform: scaleX(1) scaleY(1); } }
@keyframes pes-tender { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(1.5deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pes-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.015) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes pes-bob { 0% { transform: rotate(0deg) scale(1); } 40% { transform: rotate(4deg) scale(1.03); } 80% { transform: rotate(-4deg) scale(.97); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes pes-shimmer { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .3; } }

.scn-petersburg-departure { background: linear-gradient(180deg, #e0e5ec 0%, #cbd0d8 40%, #f4d9b2 100%), radial-gradient(ellipse at 50% 100%, #f4d9b2 0%, transparent 70%); }
.scn-petersburg-departure .train-window { position:absolute; top:10%; left:10%; width:80%; height:80%; border: 12px solid #2c3e50; border-radius: 20px; background: #1a252c; box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-petersburg-departure .platform-blur { position:absolute; top:10%; left:10%; width:80%; height:80%; background: linear-gradient(90deg, #a4b0be 0%, #dfe6e9 20%, #a4b0be 40%, #dfe6e9 60%, #a4b0be 80%, #dfe6e9 100%); background-size: 200% 100%; border-radius: 10px; opacity: .6; animation: pd-scroll 6s linear infinite; }
.scn-petersburg-departure .figure-looking-back { position:absolute; bottom:15%; left:30%; width:15%; height:45%; background: linear-gradient(180deg, #2c3e50 0%, #1a252c 100%); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-stillness 8s ease-in-out infinite; box-shadow: -4px 0 8px rgba(0,0,0,.3); }
.scn-petersburg-departure .steam-drift { position:absolute; bottom:40%; left:50%; width:20%; height:10%; background: radial-gradient(ellipse, rgba(255,255,255,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: pd-steam 10s linear infinite; }
.scn-petersburg-departure .suitcase { position:absolute; bottom:12%; left:45%; width:12%; height:10%; background: linear-gradient(135deg, #6b4c3a 0%, #4a3328 100%); border-radius: 4px; box-shadow: 2px 4px 6px rgba(0,0,0,.4); transform-origin: bottom right; animation: pd-travel 12s ease-in-out infinite; }
.scn-petersburg-departure .mug-tea { position:absolute; bottom:15%; left:60%; width:4%; height:6%; background: linear-gradient(180deg, #fdf1e6 0%, #e3d6c4 100%); border-radius: 0 0 20% 20%; box-shadow: 2px 4px 6px rgba(0,0,0,.2); transform-origin: bottom center; animation: pd-ripple 4s ease-in-out infinite; }
@keyframes pd-scroll { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes pd-stillness { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(.5deg); } 70% { transform: translateY(1px) rotate(-.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pd-steam { 0% { transform: translateX(0) translateY(0) scale(1); opacity: .6; } 50% { transform: translateX(40px) translateY(-20px) scale(1.8); opacity: .3; } 100% { transform: translateX(80px) translateY(-40px) scale(2.5); opacity: 0; } }
@keyframes pd-travel { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes pd-ripple { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

.scn-forest-track-night {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 50%, #2a2a4e 100%), 
              radial-gradient(ellipse at 70% 20%, rgba(200,220,255,0.2) 0%, transparent 60%);
}
.scn-forest-track-night .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, transparent 0%, #0a0a2e 100%);
  animation: ftn-sky 10s ease-in-out infinite alternate;
}
.scn-forest-track-night .moon {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px; border-radius: 50%;
  background: radial-gradient(circle, #e0e8ff 0%, #b0c8e0 70%, transparent 100%);
  box-shadow: 0 0 30px #b0c8e0;
  animation: ftn-moon 4s ease-in-out infinite alternate;
}
.scn-forest-track-night .tree-left {
  position: absolute; left: 10%; bottom: 0; width: 40px; height: 60%;
  background: linear-gradient(180deg, #0a1a0a 0%, #0a1a0a 80%, #050f05 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: ftn-sway 6s ease-in-out infinite;
}
.scn-forest-track-night .tree-right {
  position: absolute; right: 10%; bottom: 0; width: 60px; height: 50%;
  background: linear-gradient(180deg, #0a1a0a 0%, #0a1a0a 80%, #050f05 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: ftn-sway 6s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-forest-track-night .path {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0;
  animation: ftn-path 8s ease-in-out infinite alternate;
}
.scn-forest-track-night .figure1,
.scn-forest-track-night .figure2,
.scn-forest-track-night .figure3 {
  position: absolute; bottom: 5%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #151525 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ftn-walk 2s ease-in-out infinite;
}
.scn-forest-track-night .figure1 { left: 30%; animation-delay: 0s; }
.scn-forest-track-night .figure2 { left: 40%; animation-delay: -0.4s; }
.scn-forest-track-night .figure3 { left: 50%; animation-delay: -0.8s; }

@keyframes ftn-sky {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ftn-moon {
  0% { box-shadow: 0 0 20px #b0c8e0; opacity: 0.85; }
  50% { box-shadow: 0 0 40px #b0c8e0; opacity: 1; }
  100% { box-shadow: 0 0 25px #b0c8e0; opacity: 0.9; }
}
@keyframes ftn-sway {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes ftn-path {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ftn-walk {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}

/* ---------- */

.scn-forest-hut-light {
  background: linear-gradient(180deg, #0f0a2e 0%, #1a152e 40%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 60%, rgba(255,180,80,0.15) 0%, transparent 70%);
}
.scn-forest-hut-light .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0f0a2e 0%, transparent 100%);
  animation: fhl-sky 12s ease-in-out infinite alternate;
}
.scn-forest-hut-light .forest {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  animation: fhl-forest 10s ease-in-out infinite alternate;
}
.scn-forest-hut-light .hut {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: fhl-hut 9s ease-in-out infinite;
}
.scn-forest-hut-light .window {
  position: absolute; bottom: 35%; left: 50%; width: 25px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd060 0%, #ffa020 60%, transparent 100%);
  border-radius: 10%;
  box-shadow: 0 0 30px #ffa020, 0 0 60px rgba(255,160,32,0.3);
  animation: fhl-glow 3s ease-in-out infinite alternate;
}
.scn-forest-hut-light .door {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  animation: fhl-door 6s ease-in-out infinite;
}
.scn-forest-hut-light .path {
  position: absolute; bottom: 10%; left: 40%; right: 40%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  animation: fhl-path 8s ease-in-out infinite alternate;
}
.scn-forest-hut-light .figure {
  position: absolute; bottom: 13%; left: 35%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fhl-knock 2s ease-in-out infinite;
}

@keyframes fhl-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes fhl-forest {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes fhl-hut {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes fhl-glow {
  0% { box-shadow: 0 0 20px #ffa020, 0 0 40px rgba(255,160,32,0.2); opacity: 0.85; }
  50% { box-shadow: 0 0 40px #ffd060, 0 0 80px rgba(255,160,32,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px #ffa020, 0 0 50px rgba(255,160,32,0.25); opacity: 0.9; }
}
@keyframes fhl-door {
  0% { transform: translateX(-50%) rotateY(0); }
  50% { transform: translateX(-50%) rotateY(2deg); }
  100% { transform: translateX(-50%) rotateY(0); }
}
@keyframes fhl-path {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fhl-knock {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-4px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0); }
}

/* ---------- */

.scn-item-woodcutter-revolver {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 50%, rgba(255,150,50,0.2) 0%, transparent 70%);
}
.scn-item-woodcutter-revolver .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  animation: iwr-wall 10s ease-in-out infinite alternate;
}
.scn-item-woodcutter-revolver .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #2a1a0a 0, #3a2a1a 5px, #2a1a0a 10px);
  animation: iwr-floor 12s linear infinite;
}
.scn-item-woodcutter-revolver .fireplace {
  position: absolute; bottom: 30%; left: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #ff6020 0%, #8a3a1a 60%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  animation: iwr-fire 3s ease-in-out infinite alternate;
}
.scn-item-woodcutter-revolver .woodcutter {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: iwr-woodcutter 5s ease-in-out infinite;
}
.scn-item-woodcutter-revolver .revolver {
  position: absolute; bottom: 35%; left: 52%; width: 25px; height: 10px;
  background: linear-gradient(90deg, #2a2a2a 0%, #4a4a4a 50%, #2a2a2a 100%);
  border-radius: 20% 50% 50% 20% / 50% 50% 50% 50%;
  transform: rotate(-20deg);
  animation: iwr-revolver 2s ease-in-out infinite alternate;
}
.scn-item-woodcutter-revolver .table {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  animation: iwr-table 8s ease-in-out infinite alternate;
}
.scn-item-woodcutter-revolver .shadow {
  position: absolute; bottom: 30%; left: 40%; width: 70px; height: 90px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(10px);
  animation: iwr-shadow 5s ease-in-out infinite alternate;
}

@keyframes iwr-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes iwr-floor {
  0% { background-position: 0 0; }
  100% { background-position: 30px 0; }
}
@keyframes iwr-fire {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes iwr-woodcutter {
  0% { transform: translateX(-50%) rotate(-0.5deg); }
  50% { transform: translateX(-50%) rotate(0.5deg) scale(1.01); }
  100% { transform: translateX(-50%) rotate(-0.5deg); }
}
@keyframes iwr-revolver {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-1px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes iwr-table {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes iwr-shadow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(1); }
}

/* ---------- */

.scn-hut-hospitality {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 70%, rgba(255,180,80,0.3) 0%, transparent 60%);
}
.scn-hut-hospitality .hearth {
  position: absolute; bottom: 20%; left: 15%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #ff6020 0%, #6a2a0a 60%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  animation: hh-hearth 3s ease-in-out infinite alternate;
}
.scn-hut-hospitality .pot {
  position: absolute; bottom: 40%; left: 22%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 20px rgba(255,150,50,0.5);
  animation: hh-pot 4s ease-in-out infinite;
}
.scn-hut-hospitality .woodcutter {
  position: absolute; bottom: 10%; left: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hh-woodcutter 6s ease-in-out infinite;
}
.scn-hut-hospitality .figure1,
.scn-hut-hospitality .figure2,
.scn-hut-hospitality .figure3 {
  position: absolute; bottom: 15%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hh-figure 4s ease-in-out infinite;
}
.scn-hut-hospitality .figure1 { left: 35%; animation-delay: 0s; }
.scn-hut-hospitality .figure2 { left: 50%; animation-delay: -1.5s; }
.scn-hut-hospitality .figure3 { left: 65%; animation-delay: -3s; }
.scn-hut-hospitality .table {
  position: absolute; bottom: 0; left: 35%; right: 35%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  animation: hh-table 8s ease-in-out infinite alternate;
}

@keyframes hh-hearth {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes hh-pot {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(-1px); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.9; }
}
@keyframes hh-woodcutter {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes hh-figure {
  0% { transform: rotate(0); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0); }
}
@keyframes hh-table {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}

.scn-petersburg-spy-sighted {
  background: 
    linear-gradient(180deg, #0b0d1e 0%, #12142e 30%, #1a1c3a 60%, #0f1125 100%),
    radial-gradient(ellipse at 50% 100%, #1a1c3a 0%, transparent 70%);
}

.scn-petersburg-spy-sighted .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0a0c1c 0%, #141631 100%);
  animation: ps-sky 20s ease-in-out infinite alternate;
}

.scn-petersburg-spy-sighted .buildings {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, #1a1c30 0%, #222440 20%, #1e203a 50%, #2a2c4a 80%, #1a1c30 100%);
  clip-path: polygon(0% 100%, 5% 70%, 10% 100%, 20% 40%, 30% 100%, 40% 60%, 48% 100%, 55% 50%, 65% 100%, 75% 30%, 85% 100%, 95% 45%, 100% 100%);
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.6);
  animation: ps-buildings 4s ease-in-out infinite alternate;
}

.scn-petersburg-spy-sighted .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a1c30 0%, #0e1020 40%, #080a14 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}

.scn-petersburg-spy-sighted .carriage {
  position: absolute; bottom: 30%; left: -20%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #3a2c20 0%, #1e1610 100%);
  border-radius: 8% 8% 12% 12%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: ps-carriage 8s ease-in-out infinite;
}

.scn-petersburg-spy-sighted .carriage-window {
  position: absolute; bottom: 35%; left: -15%; width: 20px; height: 22px;
  background: radial-gradient(circle, #e0b070 0%, #b08040 70%);
  border-radius: 20%;
  box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,0.4);
  animation: ps-glow 2s ease-in-out infinite alternate;
}

.scn-petersburg-spy-sighted .spy {
  position: absolute; bottom: 30%; left: 60%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-walk 3.5s ease-in-out infinite;
}

.scn-petersburg-spy-sighted .lamppost {
  position: absolute; bottom: 40%; left: 75%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 2px;
}
.scn-petersburg-spy-sighted .lamppost::before {
  content: '';
  position: absolute; top: -6px; left: -8px; width: 20px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3);
  animation: ps-glow 2s ease-in-out infinite alternate;
}

.scn-petersburg-spy-sighted .fog {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, transparent 0%, rgba(200,200,220,0.08) 20%, transparent 40%, rgba(200,200,220,0.05) 60%, transparent 80%);
  filter: blur(12px);
  animation: ps-fog 25s linear infinite;
}

@keyframes ps-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes ps-buildings { 0% { transform: translateY(0) } 100% { transform: translateY(-3px) } }
@keyframes ps-carriage { 0% { transform: translateX(0) } 50% { transform: translateX(25vw) rotate(-1deg) } 100% { transform: translateX(45vw) rotate(0) } }
@keyframes ps-glow { 0% { box-shadow: 0 0 12px 2px #b08040, 0 0 24px 6px rgba(192,128,64,0.3); opacity:0.8 } 50% { box-shadow: 0 0 24px 8px #ffd060, 0 0 48px 14px rgba(255,208,96,0.5); opacity:1 } 100% { box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,0.35); opacity:0.9 } }
@keyframes ps-walk { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(0) } 75% { transform: translateX(24px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes ps-fog { 0% { transform: translateX(-20%) opacity:0.4 } 50% { opacity:0.7 } 100% { transform: translateX(20%) opacity:0.3 } }

.scn-searching-for-milano {
  background: linear-gradient(180deg, #b8d4f0 0%, #8bb3d4 40%, #6a8fa8 100%),
              radial-gradient(ellipse at 50% 0%, #d4e4f5 0%, transparent 60%);
}
.scn-searching-for-milano .sf-bg {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c0dbf5 0%, #9fc0dd 100%);
  animation: sf-sky 20s ease-in-out infinite alternate;
}
.scn-searching-for-milano .sf-bldg {
  position: absolute; bottom: 40%; width: 28%; height: 50%;
  background: linear-gradient(180deg, #c0a878 0%, #998156 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
}
.scn-searching-for-milano .building-left {
  left: 8%;
}
.scn-searching-for-milano .building-right {
  right: 6%;
  width: 22%;
}
.scn-searching-for-milano .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8b8b7a 0%, #5e5e4e 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.4);
}
.scn-searching-for-milano .sf-fig {
  position: absolute; bottom: 42%; left: 40%; 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: sf-walk 4s ease-in-out infinite;
}
.scn-searching-for-milano .sf-sign {
  position: absolute; bottom: 60%; left: 56%; width: 30px; height: 18px;
  background: linear-gradient(135deg, #a0461a 0%, #c8553d 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sf-swing 5s ease-in-out infinite;
}
.scn-searching-for-milano .sf-shadow {
  position: absolute; bottom: 42%; left: 38%; width: 50px; height: 6px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  animation: sf-shadow 4s ease-in-out infinite;
}
.scn-searching-for-milano .sf-lamp {
  position: absolute; bottom: 55%; left: 22%; width: 4px; height: 30px;
  background: #5a4a3a;
  border-radius: 2px;
  box-shadow: 0 0 10px 4px rgba(255,200,100,0.6);
  animation: sf-lamp 3s ease-in-out infinite alternate;
}
@keyframes sf-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sf-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes sf-swing {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(3deg); }
  75% { transform: rotate(-3deg); }
}
@keyframes sf-shadow {
  0%, 100% { transform: translateX(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(16px) scaleX(1.2); opacity: 0.5; }
}
@keyframes sf-lamp {
  0% { box-shadow: 0 0 8px 2px rgba(255,200,100,0.5); }
  50% { box-shadow: 0 0 14px 6px rgba(255,200,100,0.9); }
  100% { box-shadow: 0 0 10px 4px rgba(255,200,100,0.6); }
}

.scn-olinto-deception {
  background: linear-gradient(180deg, #d4d4c0 0%, #b0b0a0 50%, #8a8a7a 100%),
              radial-gradient(ellipse at 50% -20%, #e8e8d8 0%, transparent 80%);
}
.scn-olinto-deception .od-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d6d6c8 0%, #babbab 100%);
  animation: od-sky 25s ease-in-out infinite alternate;
}
.scn-olinto-deception .od-bldg-b {
  position: absolute; bottom: 35%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.3);
  animation: od-bldg 12s ease-in-out infinite alternate;
}
.scn-olinto-deception .od-bldg-f {
  position: absolute; bottom: 35%; left: 15%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #a09880 0%, #8c7c66 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 14px rgba(0,0,0,0.2);
  transform: scale(0.95) translateY(12%);
  animation: od-bldg-f 15s ease-in-out infinite alternate;
}
.scn-olinto-deception .od-street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.5);
}
.scn-olinto-deception .od-car {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(90deg, #5e1a1d 0%, #7a2a2a 60%, #5e1a1d 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: od-car-move 6s ease-in-out infinite;
}
.scn-olinto-deception .od-wheel-l,
.scn-olinto-deception .od-wheel-r {
  position: absolute; bottom: 17%; width: 12px; height: 12px;
  background: #2a1a0a;
  border-radius: 50%;
  box-shadow: inset 0 -2px 4px rgba(255,255,200,0.3);
  animation: od-spin 2s linear infinite;
}
.scn-olinto-deception .od-wheel-l { left: 27%; }
.scn-olinto-deception .od-wheel-r { left: 36%; }
.scn-olinto-deception .od-fig {
  position: absolute; bottom: 30%; left: 28%; width: 20px; 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: od-fig-bob 3s ease-in-out infinite;
}
.scn-olinto-deception .od-glow {
  position: absolute; bottom: 22%; left: 34%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,220,150,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: od-glow 4s ease-in-out infinite alternate;
}
@keyframes od-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes od-bldg {
  0% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-2px); }
  100% { transform: scale(1); }
}
@keyframes od-bldg-f {
  0% { transform: scale(0.95) translateY(12%); }
  50% { transform: scale(0.97) translateY(8%); }
  100% { transform: scale(0.95) translateY(12%); }
}
@keyframes od-car-move {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(20px) rotate(1deg); }
  50% { transform: translateX(40px) rotate(0deg); }
  75% { transform: translateX(20px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes od-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes od-fig-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes od-glow {
  0% { opacity: 0.4; transform: scale(0.8); }
  100% { opacity: 0.8; transform: scale(1.2); }
}

/* reflecting-on-enemies */
.scn-reflecting-on-enemies {
  background: 
    linear-gradient(180deg, #e8e0d0 0%, #c8c0b0 40%, #9a9080 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 60%);
}
.scn-reflecting-on-enemies .room {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #f5f0e0 20%, #b8b0a0 60%, #6a6050 100%);
  box-shadow: inset 0 0 80px rgba(40,30,20,0.3);
}
.scn-reflecting-on-enemies .window {
  position: absolute; top: 8%; left: 15%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #d0e4ff 0%, #b0c8f0 100%);
  border: 4px solid #5a4a3a; box-shadow: 0 0 60px rgba(180,200,240,0.5);
  border-radius: 4px; animation: re-window 8s ease-in-out infinite alternate;
}
.scn-reflecting-on-enemies .desk {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateX(5deg);
}
.scn-reflecting-on-enemies .figure {
  position: absolute; bottom: 25%; left: 40%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center; animation: re-figure 5s ease-in-out infinite;
}
.scn-reflecting-on-enemies .shadow-left {
  position: absolute; bottom: 10%; left: 5%; width: 25%; height: 40%;
  background: radial-gradient(ellipse at top, #3a2a1a 0%, transparent 70%);
  filter: blur(6px); opacity: 0.5; animation: re-shadow-l 6s ease-in-out infinite alternate;
}
.scn-reflecting-on-enemies .shadow-right {
  position: absolute; bottom: 10%; right: 5%; width: 25%; height: 40%;
  background: radial-gradient(ellipse at top, #3a2a1a 0%, transparent 70%);
  filter: blur(6px); opacity: 0.5; animation: re-shadow-r 6s ease-in-out infinite alternate;
}
.scn-reflecting-on-enemies .light-ray {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,240,200,0.15) 30%, rgba(255,240,200,0.05) 70%, transparent 100%);
  transform: rotate(-5deg); animation: re-ray 10s ease-in-out infinite;
}
.scn-reflecting-on-enemies .papers {
  position: absolute; bottom: 16%; left: 25%; width: 15%; height: 8%;
  background: radial-gradient(ellipse, #f5f0e0 0%, #d0c8b0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: re-papers 4s ease-in-out infinite alternate;
}
@keyframes re-window {
  0% { opacity: 0.9; box-shadow: 0 0 40px rgba(180,200,240,0.4); }
  50% { opacity: 1; box-shadow: 0 0 80px rgba(180,200,240,0.7); }
  100% { opacity: 0.85; box-shadow: 0 0 30px rgba(180,200,240,0.3); }
}
@keyframes re-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes re-shadow-l {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(8px) scale(1.05); opacity: 0.6; }
  100% { transform: translateX(0) scale(1); opacity: 0.4; }
}
@keyframes re-shadow-r {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(-8px) scale(1.05); opacity: 0.6; }
  100% { transform: translateX(0) scale(1); opacity: 0.4; }
}
@keyframes re-ray {
  0% { opacity: 0.2; transform: rotate(-5deg) translateX(0); }
  50% { opacity: 0.6; transform: rotate(-7deg) translateX(10px); }
  100% { opacity: 0.2; transform: rotate(-5deg) translateX(0); }
}
@keyframes re-papers {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* hoping-for-explanation */
.scn-hoping-for-explanation {
  background: 
    linear-gradient(180deg, #d0d8e8 0%, #b0b8c8 50%, #888a98 100%),
    radial-gradient(ellipse at 30% 40%, #f0f4ff 0%, transparent 70%);
}
.scn-hoping-for-explanation .interior {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #e0e4ec 0%, #b8bcc8 50%, #707480 100%);
  box-shadow: inset 0 0 100px rgba(40,40,60,0.2);
}
.scn-hoping-for-explanation .window-bridge {
  position: absolute; top: 10%; left: 10%; width: 45%; height: 55%;
  background: linear-gradient(180deg, #b8c8e0 0%, #8898b0 100%);
  border: 6px solid #4a5048; border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2), 0 0 40px rgba(255,255,240,0.3);
  overflow: hidden; animation: he-window 10s ease-in-out infinite alternate;
}
.scn-hoping-for-explanation .window-bridge::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(0deg, #4a5048 0px, #4a5048 2px, transparent 2px, transparent 12px);
  opacity: 0.3; pointer-events: none;
}
.scn-hoping-for-explanation .door-frame {
  position: absolute; bottom: 0; right: 10%; width: 25%; height: 70%;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-left: 4px solid #2a2a2a; border-right: 4px solid #2a2a2a;
  border-top: 4px solid #2a2a2a; border-radius: 4px 4px 0 0;
}
.scn-hoping-for-explanation .waiter {
  position: absolute; bottom: 12%; left: 35%; width: 10%; height: 24%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: he-waiter 6s ease-in-out infinite;
}
.scn-hoping-for-explanation .shadow-approach {
  position: absolute; bottom: 8%; right: 20%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at top, #2a2a2a 0%, transparent 70%);
  filter: blur(8px); opacity: 0.3; animation: he-shadow 8s ease-in-out infinite alternate;
}
.scn-hoping-for-explanation .rug {
  position: absolute; bottom: 4%; left: 15%; width: 70%; height: 8%;
  background: linear-gradient(90deg, #7a6a5a 0%, #9a8a7a 30%, #7a6a5a 70%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 -2px 6px rgba(0,0,0,0.2);
  animation: he-rug 12s ease-in-out infinite;
}
.scn-hoping-for-explanation .clock {
  position: absolute; top: 12%; right: 18%; width: 8%; height: 10%;
  background: radial-gradient(circle at center, #d0c0a0 0%, #8a7a6a 100%);
  border: 3px solid #4a3a2a; border-radius: 50%;
  box-shadow: 0 0 12px rgba(0,0,0,0.3); animation: he-clock 4s ease-in-out infinite alternate;
}
@keyframes he-window {
  0% { opacity: 0.9; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes he-waiter {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-5px) rotate(-3deg); }
  60% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes he-shadow {
  0% { transform: scale(1) translateX(0); opacity: 0.2; }
  50% { transform: scale(1.05) translateX(10px); opacity: 0.5; }
  100% { transform: scale(1) translateX(0); opacity: 0.2; }
}
@keyframes he-rug {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes he-clock {
  0% { transform: rotate(0deg); box-shadow: 0 0 8px rgba(0,0,0,0.3); }
  50% { transform: rotate(10deg); box-shadow: 0 0 16px rgba(0,0,0,0.5); }
  100% { transform: rotate(0deg); box-shadow: 0 0 8px rgba(0,0,0,0.3); }
}

.scn-olinto-deception {
  background: linear-gradient(135deg, #4a3a2a 0%, #c8a060 40%, #f0d090 60%, #4a3a2a 100%),
              radial-gradient(ellipse at 70% 40%, #f0d090 0%, transparent 60%);
}
.scn-olinto-deception .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 50%, #2a1a0a 100%);
  box-shadow: inset 0 0 60px 10px rgba(0,0,0,0.6);
  animation: od-wall 8s ease-in-out infinite alternate;
}
.scn-olinto-deception .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-olinto-deception .figure {
  position: absolute; bottom: 22%; left: 22%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: od-figure 0.8s ease-in-out infinite alternate;
}
.scn-olinto-deception .shadow {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 15px;
  background: #000; opacity: 0.5; filter: blur(6px);
  border-radius: 50%;
  animation: od-shadow 1.2s ease-in-out infinite alternate;
}
.scn-olinto-deception .lamp {
  position: absolute; bottom: 35%; right: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle, #e0b050 0%, #806030 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #e0b050, 0 0 60px 30px rgba(224,176,80,0.3);
  animation: od-lamp 2s ease-in-out infinite alternate;
}
.scn-olinto-deception .door {
  position: absolute; bottom: 20%; right: 15%; width: 50px; height: 80px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  transform-origin: left center;
  animation: od-door 3s ease-in-out infinite;
}
.scn-olinto-deception .window {
  position: absolute; bottom: 40%; left: 8%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 50%, #f0e0c0 0%, #a08060 100%);
  border: 4px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: 0 0 20px 5px rgba(240,224,192,0.4);
  animation: od-window 5s ease-in-out infinite alternate;
}
@keyframes od-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes od-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes od-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.4; } 50% { transform: scaleX(1.2) translateX(-5px); opacity: 0.6; } 100% { transform: scaleX(0.9) translateX(3px); opacity: 0.5; } }
@keyframes od-lamp { 0% { transform: rotate(-3deg); box-shadow: 0 0 20px 10px #e0b050; } 50% { transform: rotate(3deg); box-shadow: 0 0 40px 20px #e0b050; } 100% { transform: rotate(-2deg); box-shadow: 0 0 25px 12px #e0b050; } }
@keyframes od-door { 0% { transform: rotateY(0deg); } 25% { transform: rotateY(15deg); } 50% { transform: rotateY(0deg); } 75% { transform: rotateY(-10deg); } 100% { transform: rotateY(0deg); } }
@keyframes od-window { 0% { box-shadow: 0 0 10px 2px rgba(240,224,192,0.3); } 50% { box-shadow: 0 0 30px 8px rgba(240,224,192,0.6); } 100% { box-shadow: 0 0 15px 4px rgba(240,224,192,0.4); } }

.scn-searching-for-milano {
  background: 
    radial-gradient(ellipse at 50% 30%, #d4a56e 0%, transparent 50%),
    linear-gradient(180deg, #2a1c12 0%, #1a100a 100%);
  position: relative;
  overflow: hidden;
}

.scn-searching-for-milano .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
  animation: sfm-wall 12s ease-in-out infinite alternate;
}

.scn-searching-for-milano .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a0e06 0%, #0f0702 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
}

.scn-searching-for-milano .lamp-glow {
  position: absolute;
  top: 18%;
  left: 60%;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, rgba(255,180,70,0.2) 40%, transparent 70%);
  border-radius: 50%;
  animation: sfm-flicker 2s ease-in-out infinite alternate;
}

.scn-searching-for-milano .lamp-body {
  position: absolute;
  top: 16%;
  left: 62%;
  width: 12px;
  height: 20px;
  background: linear-gradient(180deg, #b08040, #8a6030);
  border-radius: 4px 4px 50% 50% / 4px 4px 60% 60%;
  box-shadow: 0 0 8px 2px rgba(255,200,100,0.5);
}

.scn-searching-for-milano .bar-counter {
  position: absolute;
  bottom: 30%;
  left: 5%;
  right: 5%;
  height: 14%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}

.scn-searching-for-milano .figure {
  position: absolute;
  bottom: 36%;
  left: 40%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sfm-figure 4s ease-in-out infinite alternate;
}

.scn-searching-for-milano .book {
  position: absolute;
  bottom: 34%;
  left: 45%;
  width: 20px;
  height: 14px;
  background: linear-gradient(180deg, #c8a060, #a07840);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: sfm-book 6s ease-in-out infinite;
}

.scn-searching-for-milano .chair {
  position: absolute;
  bottom: 34%;
  left: 30%;
  width: 18px;
  height: 24px;
  background: linear-gradient(180deg, #4a3020, #2a1a0e);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}

.scn-searching-for-milano .shadow {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 30px;
  height: 10px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(6px);
  animation: sfm-shadow 4s ease-in-out infinite alternate;
}

@keyframes sfm-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

@keyframes sfm-flicker {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.98); }
}

@keyframes sfm-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-1px) rotate(0.5deg); }
  100% { transform: translateX(1px) rotate(0deg); }
}

@keyframes sfm-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}

@keyframes sfm-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.1); opacity: 0.7; }
  100% { transform: scaleX(0.95); opacity: 0.4; }
}

.scn-petersburg-spy-sighted {
  background:
    radial-gradient(ellipse at 30% 70%, #1a1a3a 0%, transparent 60%),
    linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2a2a3e 100%);
  overflow: hidden;
  position: relative;
}
.scn-petersburg-spy-sighted .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0a0a14 0%, #141428 60%, #1e1e34 100%);
  animation: psp-sky 20s ease-in-out infinite alternate;
}
.scn-petersburg-spy-sighted .buildings {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 35%;
  background:
    linear-gradient(90deg, #1a1a2a 0%, #222238 20%, #1a1a2a 40%, #2a2a3e 60%, #1e1e2e 80%, #1a1a2a 100%);
  border-radius: 20% 30% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: psp-buildings 8s ease-in-out infinite alternate;
}
.scn-petersburg-spy-sighted .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 30%, #0f0f1a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.7);
}
.scn-petersburg-spy-sighted .drosky {
  position: absolute; bottom: 18%; left: 20%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 40% 10% 10% / 50% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
  animation: psp-drosky 3s ease-in-out infinite alternate;
}
.scn-petersburg-spy-sighted .horse {
  position: absolute; bottom: 16%; left: 32%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 30% 30% 50% / 60% 50% 50% 40%;
  transform-origin: bottom center;
  animation: psp-horse 3s ease-in-out infinite alternate;
}
.scn-petersburg-spy-sighted .lamp {
  position: absolute; bottom: 35%; left: 55%; width: 10px; height: 14px;
  background: radial-gradient(circle, #c8a050 0%, #a08030 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c8a050, 0 0 40px 12px rgba(200,160,80,0.3);
  animation: psp-lamp 1.5s ease-in-out infinite alternate;
}
.scn-petersburg-spy-sighted .spy {
  position: absolute; bottom: 10%; right: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: psp-spy 4s ease-in-out infinite;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
.scn-petersburg-spy-sighted .glint {
  position: absolute; bottom: 20%; right: 28%; width: 4px; height: 4px;
  background: #b0a080;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #b0a080;
  animation: psp-glint 2s ease-in-out infinite;
}

@keyframes psp-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes psp-buildings {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes psp-drosky {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes psp-horse {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes psp-lamp {
  0% { box-shadow: 0 0 12px 3px #c8a050; opacity: 0.8; }
  50% { box-shadow: 0 0 24px 8px #d0b060; opacity: 1; }
  100% { box-shadow: 0 0 14px 4px #c8a050; opacity: 0.9; }
}
@keyframes psp-spy {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-3px) rotate(3deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes psp-glint {
  0%, 100% { opacity: 0; }
  30%, 70% { opacity: 1; }
  50% { opacity: 0.5; }
}

.scn-hoping-for-explanation { background: linear-gradient(180deg, #f5f0e6 0%, #e0d8cc 40%, #c8bfb0 100%), radial-gradient(ellipse at 30% 80%, #b59a7e 0%, transparent 60%); position: relative; overflow: hidden; }

.scn-hoping-for-explanation .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #f5f0e6 0%, #e0d8cc 60%, #d4cbb8 100%); }

.scn-hoping-for-explanation .window { position: absolute; top: 16%; left: 55%; width: 32%; height: 48%; background: linear-gradient(180deg, #fffbe0 0%, #f0e6c8 60%, #d4cbb8 100%), linear-gradient(0deg, #3a3a4a 0%, #4a4a5a 30%, #5a5a6a 100%); background-blend-mode: overlay; border-radius: 2px; box-shadow: inset 0 0 30px rgba(255,255,200,0.3), 0 4px 12px rgba(0,0,0,0.15); animation: hop-window 8s ease-in-out infinite alternate; }

.scn-hoping-for-explanation .frame { position: absolute; top: 16%; left: 55%; width: 32%; height: 48%; border: 6px solid #6a5a4a; border-radius: 4px; background: transparent; pointer-events: none; }

.scn-hoping-for-explanation .figure { position: absolute; bottom: 24%; left: 38%; width: 24px; height: 58px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hop-figure 5s ease-in-out infinite; }

.scn-hoping-for-explanation .table { position: absolute; bottom: 18%; left: 30%; width: 40%; height: 12px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 2px; box-shadow: 0 6px 10px rgba(0,0,0,0.2); }

.scn-hoping-for-explanation .chair { position: absolute; bottom: 18%; left: 44%; width: 20px; height: 40px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 4px 4px 2px 2px; transform-origin: bottom center; animation: hop-chair 7s ease-in-out infinite alternate; }

.scn-hoping-for-explanation .clock { position: absolute; top: 8%; right: 8%; width: 32px; height: 32px; background: radial-gradient(circle, #f0e8d0 0%, #c8b898 70%); border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,0.2); animation: hop-clock 2s steps(60) infinite; }
.scn-hoping-for-explanation .clock::after { content: ''; position: absolute; top: 50%; left: 50%; width: 2px; height: 30%; background: #4a3a2a; transform-origin: bottom center; transform: translate(-50%, -100%) rotate(0deg); animation: hop-hand 60s linear infinite; }

.scn-hoping-for-explanation .shadow { position: absolute; bottom: 18%; left: 30%; width: 30%; height: 4px; background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.1) 70%); border-radius: 50%; filter: blur(3px); animation: hop-shadow 8s ease-in-out infinite alternate; }

.scn-hoping-for-explanation .curtain { position: absolute; top: 14%; left: 54%; width: 12%; height: 52%; background: linear-gradient(180deg, #c8b8a0 0%, #b0a088 50%, #9a8a70 100%); border-radius: 0 4px 4px 0; transform-origin: top left; animation: hop-curtain 12s ease-in-out infinite alternate; }

@keyframes hop-window { 0% { opacity: 0.85; box-shadow: inset 0 0 20px rgba(255,255,200,0.2), 0 4px 12px rgba(0,0,0,0.15); } 50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,255,200,0.4), 0 4px 12px rgba(0,0,0,0.15); } 100% { opacity: 0.9; box-shadow: inset 0 0 25px rgba(255,255,200,0.25), 0 4px 12px rgba(0,0,0,0.15); } }

@keyframes hop-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 hop-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

@keyframes hop-clock { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

@keyframes hop-hand { from { transform: translate(-50%, -100%) rotate(0deg); } to { transform: translate(-50%, -100%) rotate(360deg); } }

@keyframes hop-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.2); opacity: 0.8; } 100% { transform: scaleX(0.9); opacity: 0.5; } }

@keyframes hop-curtain { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(2px); } 100% { transform: scaleY(0.98) translateX(-2px); } }

.scn-reflecting-on-enemies {
  background: 
    linear-gradient(175deg, #c8b28a 0%, #7a5a3a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 70% 40%, #ffcc80 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-reflecting-on-enemies .wall {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 25%;
  background: linear-gradient(135deg, #d4c2a8 0%, #8c6a4a 50%, #3a2a1a 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
}
.scn-reflecting-on-enemies .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-reflecting-on-enemies .window {
  position: absolute;
  top: 12%; left: 10%;
  width: 28%; height: 55%;
  background: linear-gradient(160deg, #1e2a3e 0%, #0a0a1a 100%);
  border: 6px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(10,20,40,0.6), 0 4px 12px rgba(0,0,0,0.5);
  overflow: hidden;
}
.scn-reflecting-on-enemies .desk {
  position: absolute;
  bottom: 20%; left: 35%;
  width: 40%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6), inset 0 2px 4px rgba(255,255,200,0.1);
}
.scn-reflecting-on-enemies .lamp {
  position: absolute;
  bottom: 28%; left: 48%;
  width: 14px; height: 14px;
  background: radial-gradient(circle, #ffdd99 0%, #eebb55 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #eebb55, 0 0 60px 20px rgba(238,187,85,0.4);
  animation: re-lamp 1.2s ease-in-out infinite alternate;
}
.scn-reflecting-on-enemies .figure {
  position: absolute;
  bottom: 18%; left: 42%;
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #1c1c2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: re-figure 4s ease-in-out infinite;
}
.scn-reflecting-on-enemies .shadow {
  position: absolute;
  bottom: 28%; left: 50%;
  width: 50px; height: 80px;
  background: rgba(10,12,20,0.5);
  border-radius: 30% 30% 10% 10%;
  filter: blur(8px);
  transform: skewX(-10deg) scale(0.9);
  animation: re-shadow 4s ease-in-out infinite;
}
.scn-reflecting-on-enemies .threat {
  position: absolute;
  top: 20%; left: 15%;
  width: 20px; height: 45px;
  background: rgba(30,40,60,0.4);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  filter: blur(5px);
  animation: re-threat 8s ease-in-out infinite;
}
@keyframes re-lamp {
  0%   { transform: scale(1); box-shadow: 0 0 20px 8px #eebb55, 0 0 50px 15px rgba(238,187,85,0.3); }
  50%  { transform: scale(1.15); box-shadow: 0 0 40px 15px #ffcc66, 0 0 80px 25px rgba(255,204,102,0.5); }
  100% { transform: scale(0.95); box-shadow: 0 0 15px 5px #cc9933, 0 0 40px 10px rgba(204,153,51,0.2); }
}
@keyframes re-figure {
  0%   { transform: translateY(0) scaleY(1); }
  50%  { transform: translateY(-3px) scaleY(1.03); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes re-shadow {
  0%   { transform: skewX(-10deg) scale(0.9) translateX(0); opacity: 0.5; }
  50%  { transform: skewX(-8deg) scale(0.92) translateX(4px); opacity: 0.6; }
  100% { transform: skewX(-10deg) scale(0.9) translateX(0); opacity: 0.5; }
}
@keyframes re-threat {
  0%   { transform: translateX(0) rotate(0deg); opacity: 0.3; }
  40%  { transform: translateX(10px) rotate(2deg); opacity: 0.4; }
  60%  { transform: translateX(15px) rotate(-1deg); opacity: 0.35; }
  100% { transform: translateX(0) rotate(0deg); opacity: 0.3; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.faint { position: absolute; pointer-events: none; }
.pin { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.white-cap { position: absolute; pointer-events: none; }
.wire { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-electric-chair-trap {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 30%, #1a0a0a 70%, #0a0a12 100%),
    radial-gradient(ellipse at 80% 40%, #2a1a2a 0%, transparent 60%);
}
.scn-electric-chair-trap .wall   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%); }
.scn-electric-chair-trap .floor  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1210 0%, #2a1a18 100%); }
.scn-electric-chair-trap .chair  { position:absolute; bottom:25%; left:30%; width:90px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px rgba(0,0,0,.7); animation: ect-chair 4s ease-in-out infinite; }
.scn-electric-chair-trap .plate  { position:absolute; bottom:26%; left:34%; width:70px; height:6px; background: #4a3a2a; border-radius:2px; box-shadow: 0 0 10px 2px rgba(100,50,20,.3); animation: ect-plate 3s ease-in-out infinite alternate; }
.scn-electric-chair-trap .wire-a { position:absolute; bottom:40%; right:45%; width:3px; height:50px; background: #5a5a5a; transform-origin: top left; animation: ect-wire1 2s ease-in-out infinite alternate; }
.scn-electric-chair-trap .wire-b { position:absolute; bottom:35%; left:46%; width:2px; height:40px; background: #5a5a6a; transform-origin: bottom right; animation: ect-wire2 2.5s ease-in-out infinite reverse; }
.scn-electric-chair-trap .shadow { position:absolute; bottom:28%; left:25%; width:100px; height:50px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); animation: ect-shadow 5s ease-in-out infinite; }
.scn-electric-chair-trap .figure { position:absolute; bottom:22%; left:18%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ect-figure 6s ease-in-out infinite; }
@keyframes ect-chair   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ect-plate   { 0% { opacity:.4; } 50% { opacity:.8; box-shadow: 0 0 20px 4px rgba(180,80,20,.5); } 100% { opacity:.4; } }
@keyframes ect-wire1   { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes ect-wire2   { 0% { transform: rotate(3deg) translateY(0); } 100% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes ect-shadow  { 0% { transform: scaleX(1) scaleY(1); opacity:.5; } 50% { transform: scaleX(1.2) scaleY(0.8); opacity:.7; } 100% { transform: scaleX(1) scaleY(1); opacity:.5; } }
@keyframes ect-figure  { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-2deg); } 50% { transform: translateX(10px) rotate(2deg); } 75% { transform: translateX(15px) rotate(-1deg); } 100% { transform: translateX(20px) rotate(0deg); } }

.scn-final-peace { background: linear-gradient(180deg, #7ec8e3 0%, #f5d68e 55%, #f4a641 100%), radial-gradient(ellipse at 50% 20%, #fff8dc 0%, transparent 65%); }

.scn-final-peace .sky    { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #9ad0e0 0%, transparent 100%); animation: fp-sky 20s ease-in-out infinite alternate; }

.scn-final-peace .sun    { position: absolute; top: 6%; left: 50%; width: 70px; height: 70px; margin-left: -35px; background: radial-gradient(circle, #fff7b0 0%, #ffd700 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 30px #ffd700, 0 0 120px 50px rgba(255, 215, 0, 0.3); animation: fp-sun 6s ease-in-out infinite; }

.scn-final-peace .cloud  { position: absolute; top: 12%; left: 10%; width: 120px; height: 28px; background: linear-gradient(90deg, rgba(255,255,255,0.7), rgba(255,255,255,0.2)); border-radius: 50%; filter: blur(7px); animation: fp-cloud 45s linear infinite; }

.scn-final-peace .church { position: absolute; bottom: 30%; left: 50%; width: 140px; height: 120px; margin-left: -70px; background: linear-gradient(180deg, #d9b685 0%, #b89364 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.2); }

.scn-final-peace .steeple{ position: absolute; bottom: calc(30% + 120px); left: 50%; width: 30px; height: 70px; margin-left: -15px; background: linear-gradient(180deg, #c9a572 0%, #a07e5a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: fp-spire 8s ease-in-out infinite; }

.scn-final-peace .tree-left { position: absolute; bottom: 30%; left: 12%; width: 50px; height: 90px; background: radial-gradient(ellipse at 50% 20%, #4a7a3a 0%, #2c5a1a 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: fp-tree 5s ease-in-out infinite; }

.scn-final-peace .tree-right{ position: absolute; bottom: 30%; right: 12%; width: 55px; height: 100px; background: radial-gradient(ellipse at 50% 20%, #5a8a4a 0%, #3a6a2a 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: fp-tree 7s ease-in-out infinite; }

.scn-final-peace .path   { position: absolute; bottom: 22%; left: 38%; width: 24%; height: 6%; background: linear-gradient(180deg, #c4a265 0%, #a08040 100%); border-radius: 20% 20% 40% 40% / 100% 100% 50% 50%; filter: blur(1px); animation: fp-path 10s ease-in-out infinite; }

.scn-final-peace .couple { position: absolute; bottom: 22%; left: 44%; width: 16px; height: 30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fp-walk 6s ease-in-out infinite; }
.scn-final-peace .couple::before { content: ''; position: absolute; top: -4px; left: 18px; width: 14px; height: 26px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fp-walk 6s ease-in-out infinite; animation-delay: 0.3s; filter: brightness(1.1); } /* second figure */

@keyframes fp-sky   { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fp-sun   { 0% { transform: scale(1); box-shadow: 0 0 60px 20px #ffd700, 0 0 100px 40px rgba(255,215,0,0.3); } 50% { transform: scale(1.04); box-shadow: 0 0 80px 30px #ffe44d, 0 0 140px 50px rgba(255,215,0,0.4); } 100% { transform: scale(1); box-shadow: 0 0 60px 20px #ffd700, 0 0 100px 40px rgba(255,215,0,0.3); } }
@keyframes fp-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes fp-spire { 0%,100% { transform: translateX(-50%) rotate(-0.5deg); } 50% { transform: translateX(-50%) rotate(0.5deg); } }
@keyframes fp-tree  { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1.5deg); } 100% { transform: rotate(-1deg); } }
@keyframes fp-path  { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-1px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes fp-walk  { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(0deg); } 50% { transform: translateX(10px) translateY(0) rotate(1deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(20px) translateY(0) rotate(-1deg); } }

.scn-boranski-releases { background: linear-gradient(180deg, #f9eed7 0%, #e3d6b5 40%, #c4b18a 100%), radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 60%); }
.scn-boranski-releases .doorway { position:absolute; bottom:20%; left:30%; width:40%; height:55%; background: linear-gradient(180deg, #c4a97a 0%, #a6885a 100%); border-radius:40% 40% 0 0 / 60% 60% 0 0; box-shadow:inset 0 -20px 30px rgba(0,0,0,.2); animation: br-door 8s ease-in-out infinite alternate; }
.scn-boranski-releases .floor  { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b09060 0%, #8a7050 100%); }
.scn-boranski-releases .figure { position:absolute; bottom:20%; left:38%; width:12%; height:35%; background: linear-gradient(180deg, #e8d5b0 0%, #b09070 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: br-fig 6s ease-in-out infinite alternate; }
.scn-boranski-releases .hand   { position:absolute; bottom:30%; left:48%; width:6%; height:8%; background: #d6bfa0; border-radius:30% 30% 20% 20%; transform:rotate(-10deg); animation: br-hand 4s ease-in-out infinite; }
.scn-boranski-releases .light-haze { position:absolute; inset:0; background: radial-gradient(ellipse at 35% 25%, rgba(255,240,200,.6) 0%, transparent 60%); animation: br-haze 10s ease-in-out infinite alternate; }
@keyframes br-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes br-fig { 0% { transform: translateX(0) } 50% { transform: translateX(2%) } 100% { transform: translateX(-2%) } }
@keyframes br-hand { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-5%) } }
@keyframes br-haze { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }

.scn-search-for-elma { background: linear-gradient(180deg, #fee9c0 0%, #ecd5a0 40%, #d4b880 100%), radial-gradient(ellipse at 50% 40%, #fff4dd 0%, transparent 60%); }
.scn-search-for-elma .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #eee0c8 0%, #dac8a8 100%); }
.scn-search-for-elma .magnifier { position:absolute; bottom:30%; left:45%; width:15%; height:22%; background: radial-gradient(circle at 40% 40%, #f8f0e0 0%, #e0d0b0 80%); border:3px solid #8a7050; border-radius:50%; transform:rotate(-20deg); animation: se-mag 5s ease-in-out infinite alternate; }
.scn-search-for-elma .map { position:absolute; bottom:15%; left:20%; width:50%; height:15%; background: repeating-linear-gradient(90deg, #b09870 0px, #b09870 2px, transparent 2px, transparent 8px), repeating-linear-gradient(0deg, #b09870 0px, #b09870 2px, transparent 2px, transparent 8px); opacity:.6; animation: se-map 12s linear infinite; }
.scn-search-for-elma .figure { position:absolute; bottom:15%; left:30%; width:12%; height:30%; background: linear-gradient(180deg, #d4b880 0%, #a88860 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: se-fig 4s ease-in-out infinite; }
.scn-search-for-elma .shadow { position:absolute; bottom:12%; left:28%; width:16%; height:5%; background: rgba(0,0,0,.15); border-radius:50%; filter:blur(3px); animation: se-shadow 4s ease-in-out infinite; }
@keyframes se-mag { 0% { transform: rotate(-20deg) translate(0,0) } 50% { transform: rotate(-10deg) translate(5%,-5%) } 100% { transform: rotate(-20deg) translate(0,0) } }
@keyframes se-map { 0% { background-position:0 0 } 100% { background-position:-30px 0 } }
@keyframes se-fig { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3%) } }
@keyframes se-shadow { 0%,100% { opacity:.5 } 50% { opacity:.3 } }

.scn-officer-hesitates { background: linear-gradient(180deg, #fff3d6 0%, #f0ddbc 40%, #d4be98 100%), radial-gradient(ellipse at 50% 30%, #ffe8cc 0%, transparent 70%); }
.scn-officer-hesitates .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0e0c8 0%, #e0ccac 100%); }
.scn-officer-hesitates .desk { position:absolute; bottom:20%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #b09060 0%, #8a7050 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.2); animation: oh-desk 3s ease-in-out infinite alternate; }
.scn-officer-hesitates .officer { position:absolute; bottom:20%; left:35%; width:12%; height:35%; background: linear-gradient(180deg, #c8a880 0%, #a08058 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: oh-officer 5s ease-in-out infinite; }
.scn-officer-hesitates .hand { position:absolute; bottom:40%; left:42%; width:5%; height:12%; background: #d6bea0; border-radius:30% 30% 20% 20%; transform:rotate(15deg); animation: oh-hand 2s ease-in-out infinite; }
.scn-officer-hesitates .shadow { position:absolute; bottom:18%; left:30%; width:20%; height:4%; background: rgba(0,0,0,.15); border-radius:50%; filter:blur(4px); animation: oh-shadow 5s ease-in-out infinite; }
@keyframes oh-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes oh-officer { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2%) } }
@keyframes oh-hand { 0%,100% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-5%) } }
@keyframes oh-shadow { 0%,100% { opacity:.5 } 50% { opacity:.3 } }

.scn-boranski-explains { background: linear-gradient(180deg, #ffefd0 0%, #eed8b0 40%, #d4ba8c 100%), radial-gradient(ellipse at 60% 20%, #fff8e8 0%, transparent 70%); }
.scn-boranski-explains .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #f2dcc0 0%, #e0c8a8 100%); }
.scn-boranski-explains .desk { position:absolute; bottom:15%; left:25%; width:50%; height:10%; background: linear-gradient(180deg, #b89868 0%, #8a7050 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.2); animation: be-desk 6s ease-in-out infinite alternate; }
.scn-boranski-explains .lamp { position:absolute; bottom:40%; left:60%; width:8%; height:15%; background: linear-gradient(180deg, #e8c87a 0%, #d4a850 100%); border-radius:40% 40% 10% 10%; box-shadow:0 0 20px 6px rgba(232,200,122,.6); animation: be-lamp 3s ease-in-out infinite alternate; }
.scn-boranski-explains .figure { position:absolute; bottom:15%; left:30%; width:14%; height:38%; background: linear-gradient(180deg, #d4b88a 0%, #b09868 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: be-fig 8s ease-in-out infinite; }
.scn-boranski-explains .shadow-escape { position:absolute; bottom:10%; left:20%; width:30%; height:8%; background: rgba(0,0,0,.1); border-radius:50%; filter:blur(6px); animation: be-escape 10s ease-in-out infinite; }
@keyframes be-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes be-lamp { 0% { box-shadow:0 0 20px 6px rgba(232,200,122,.6); opacity:.9 } 50% { box-shadow:0 0 30px 10px rgba(232,200,122,.8); opacity:1 } 100% { box-shadow:0 0 20px 6px rgba(232,200,122,.6); opacity:.9 } }
@keyframes be-fig { 0% { transform: translateX(0) } 25% { transform: translateX(3%) } 50% { transform: translateX(0) } 75% { transform: translateX(-3%) } 100% { transform: translateX(0) } }
@keyframes be-escape { 0%,100% { opacity:.3 } 50% { opacity:.7 } }

.scn-muriel-secret-plea {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2420 40%, #3a3028 100%),
              radial-gradient(ellipse at 30% 50%, #4a3a2a 0%, transparent 60%);
}
.scn-muriel-secret-plea .room-back {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2420 0%, #1a1a1a 100%); animation: msp-ambient 8s ease-in-out infinite alternate;
}
.scn-muriel-secret-plea .wall-shadow {
  position: absolute; left: 0; bottom: 0; width: 100%; height: 60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; filter: blur(8px);
}
.scn-muriel-secret-plea .figure-silhouette {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 70px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: msp-figure 4s ease-in-out infinite alternate;
}
.scn-muriel-secret-plea .table {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: msp-table 3s ease-in-out infinite;
}
.scn-muriel-secret-plea .candle-glow {
  position: absolute; bottom: 25%; left: 42%; width: 30px; height: 60px; background: radial-gradient(ellipse, #ffd060 0%, #c08040 40%, transparent 70%); filter: blur(10px); animation: msp-candle 3s ease-in-out infinite alternate;
}
.scn-muriel-secret-plea .candle {
  position: absolute; bottom: 28%; left: 44%; width: 8px; height: 30px; background: linear-gradient(180deg, #fff0c0 0%, #d0a080 100%); border-radius: 2px 2px 4px 4px; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3); animation: msp-flame 2s ease-in-out infinite;
}
.scn-muriel-secret-plea .shadow-move {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%); filter: blur(12px); animation: msp-shadow 6s ease-in-out infinite alternate;
}
@keyframes msp-ambient { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes msp-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes msp-table { 0%{ transform: translateY(0); } 50%{ transform: translateY(-1px); } 100%{ transform: translateY(0); } }
@keyframes msp-candle { 0%{ transform: scaleY(1); opacity: 0.8; } 50%{ transform: scaleY(1.2); opacity: 1; } 100%{ transform: scaleY(0.95); opacity: 0.9; } }
@keyframes msp-flame { 0%{ transform: scaleY(1) rotate(-2deg); } 50%{ transform: scaleY(1.3) rotate(3deg); } 100%{ transform: scaleY(1) rotate(-1deg); } }
@keyframes msp-shadow { 0%{ transform: translateY(0); opacity: 0.7; } 50%{ transform: translateY(5px); opacity: 1; } 100%{ transform: translateY(0); opacity: 0.8; } }

.scn-trust-offered {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-trust-offered .room-back {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); filter: blur(3px);
}
.scn-trust-offered .lamplight {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 100px; background: radial-gradient(circle, #ffd080 0%, #c08040 30%, transparent 70%); filter: blur(15px); animation: tro-light 5s ease-in-out infinite alternate;
}
.scn-trust-offered .table {
  position: absolute; bottom: 15%; left: 20%; width: 160px; height: 16px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-trust-offered .hand-left {
  position: absolute; bottom: 22%; left: 25%; width: 30px; height: 50px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(-10deg); transform-origin: bottom center; animation: tro-hand 4s ease-in-out infinite alternate;
}
.scn-trust-offered .hand-right {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 50px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(10deg); transform-origin: bottom center; animation: tro-hand 4s ease-in-out infinite alternate-reverse;
}
.scn-trust-offered .warm-haze {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 50%, rgba(255,200,100,0.15), transparent 70%); filter: blur(20px); animation: tro-haze 8s ease-in-out infinite alternate;
}
@keyframes tro-light { 0%{ transform: scale(0.95); opacity: 0.9; } 50%{ transform: scale(1.1); opacity: 1; } 100%{ transform: scale(1); opacity: 0.95; } }
@keyframes tro-hand { 0%{ transform: rotate(-10deg) translateY(0); } 50%{ transform: rotate(-5deg) translateY(-2px); } 100%{ transform: rotate(-10deg) translateY(0); } }
@keyframes tro-haze { 0%{ opacity: 0.6; } 50%{ opacity: 1; } 100%{ opacity: 0.7; } }

.scn-service-requested {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 30% 40%, #2a1a0a 0%, transparent 60%);
}
.scn-service-requested .room-back {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1e14 0%, #1a1410 100%); filter: blur(2px);
}
.scn-service-requested .desk {
  position: absolute; bottom: 12%; left: 15%; width: 140px; height: 18px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-service-requested .chair {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform-origin: bottom center;
}
.scn-service-requested .figure-lean {
  position: absolute; bottom: 14%; left: 30%; width: 36px; height: 80px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(5deg); animation: srq-lean 5s ease-in-out infinite alternate;
}
.scn-service-requested .lamp {
  position: absolute; bottom: 35%; left: 42%; width: 12px; height: 40px; background: linear-gradient(180deg, #806040 0%, #4a2a1a 100%); border-radius: 4px; transform: rotate(-15deg);
}
.scn-service-requested .lamp-glow {
  position: absolute; bottom: 28%; left: 38%; width: 60px; height: 80px; background: radial-gradient(ellipse, #ffd060 0%, #c08040 30%, transparent 70%); filter: blur(12px); animation: srq-glow 2.5s ease-in-out infinite alternate;
}
.scn-service-requested .shadow-sharp {
  position: absolute; bottom: 0; left: 20%; width: 80%; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%); filter: blur(6px); animation: srq-shadow 7s ease-in-out infinite alternate;
}
@keyframes srq-lean { 0%{ transform: rotate(5deg) translateY(0); } 50%{ transform: rotate(8deg) translateY(-3px); } 100%{ transform: rotate(4deg) translateY(0); } }
@keyframes srq-glow { 0%{ transform: scale(0.9); opacity: 0.8; } 50%{ transform: scale(1.15); opacity: 1; } 100%{ transform: scale(1); opacity: 0.9; } }
@keyframes srq-shadow { 0%{ transform: translateX(0); } 50%{ transform: translateX(10px); } 100%{ transform: translateX(0); } }

.scn-suspicions-assassin {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 70% 30%, #3a1a0a 0%, transparent 60%);
}
.scn-suspicions-assassin .room-back {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1410 0%, #0a0a0a 100%); filter: blur(2px);
}
.scn-suspicions-assassin .door-frame {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 80%; border: 4px solid #2a1a0a; border-radius: 4px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-suspicions-assassin .shadow-figure {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 100px; background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(-5deg); animation: sas-figure 4s ease-in-out infinite alternate;
}
.scn-suspicions-assassin .knife {
  position: absolute; bottom: 30%; left: 44%; width: 6px; height: 40px; background: linear-gradient(180deg, #606060 0%, #303030 100%); border-radius: 2px 2px 6px 2px; transform: rotate(20deg); transform-origin: bottom center; animation: sas-knife 3s ease-in-out infinite;
}
.scn-suspicions-assassin .light-slice {
  position: absolute; top: 20%; right: 10%; width: 80px; height: 200px; background: linear-gradient(180deg, rgba(255,200,100,0.2) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 60% 100%, 0% 100%); filter: blur(10px); animation: sas-light 6s ease-in-out infinite alternate;
}
.scn-suspicions-assassin .dust-motes {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 20% 30%, rgba(255,255,255,0.08) 0%, transparent 50%); filter: blur(4px); animation: sas-dust 10s linear infinite;
}
@keyframes sas-figure { 0%{ transform: skewX(-5deg) translateX(0); } 50%{ transform: skewX(-8deg) translateX(5px); } 100%{ transform: skewX(-4deg) translateX(0); } }
@keyframes sas-knife { 0%{ transform: rotate(20deg) translateY(0); } 50%{ transform: rotate(25deg) translateY(-4px); } 100%{ transform: rotate(18deg) translateY(0); } }
@keyframes sas-light { 0%{ opacity: 0.6; } 50%{ opacity: 1; } 100%{ opacity: 0.7; } }
@keyframes sas-dust { 0%{ transform: translateY(0); } 50%{ transform: translateY(-10px); } 100%{ transform: translateY(0); } }

.scn-card-sent { background: linear-gradient(180deg, #f4e8c8 0%, #d4c4a8 50%, #b8a48c 100%), radial-gradient(ellipse at 50% 80%, #e6d6b6 0%, transparent 70%); }
.scn-card-sent .envelope { position:absolute; bottom:20%; left:30%; width:120px; height:80px; background: linear-gradient(135deg, #e6d6b6 0%, #c4b094 100%); border-radius:4% 4% 4% 4%; box-shadow: 2px 2px 8px rgba(0,0,0,0.3); transform: rotate(-8deg); animation: cs-env 8s ease-in-out infinite alternate; }
.scn-card-sent .card { position:absolute; bottom:24%; left:33%; width:100px; height:60px; background: linear-gradient(135deg, #fff8e0 0%, #f0e4c8 100%); border-radius:2px; box-shadow: 0 0 6px rgba(0,0,0,0.15); transform: rotate(-5deg); animation: cs-card 6s ease-in-out infinite; }
.scn-card-sent .hand { position:absolute; bottom:18%; left:45%; width:40px; height:50px; background: linear-gradient(180deg, #d4a882 0%, #b88a64 50%, #9a704c 100%); border-radius: 50% 50% 50% 50% / 60% 50% 50% 40%; transform: rotate(20deg); animation: cs-hand 2s ease-in-out infinite; }
.scn-card-sent .pen { position:absolute; bottom:30%; left:48%; width:6px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-30deg); animation: cs-pen 2s ease-in-out infinite; }
.scn-card-sent .inkwell { position:absolute; bottom:18%; left:25%; width:20px; height:18px; background: radial-gradient(circle, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: cs-ink 12s linear infinite; }
.scn-card-sent .lamp { position:absolute; top:10%; right:15%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #d4a060 60%, #8a6020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 10px #ffd08080; }
.scn-card-sent .shadow-desk { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); }
@keyframes cs-env { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes cs-card { 0% { transform: rotate(-5deg); } 25% { transform: rotate(-4deg) scale(1.01); } 50% { transform: rotate(-5deg) translateY(-1px); } 75% { transform: rotate(-6deg); } 100% { transform: rotate(-5deg); } }
@keyframes cs-hand { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(22deg) translateX(2px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes cs-pen { 0% { transform: rotate(-30deg) translate(0,0); } 25% { transform: rotate(-28deg) translate(1px,-1px); } 50% { transform: rotate(-30deg) translate(0,-2px); } 75% { transform: rotate(-32deg) translate(-1px,-1px); } 100% { transform: rotate(-30deg) translate(0,0); } }
@keyframes cs-ink { 0% { transform: scale(1); } 50% { transform: scale(0.98); } 100% { transform: scale(1); } }

.scn-oberg-audience { background: linear-gradient(180deg, #d4dce8 0%, #b4c0d0 40%, #8a9aaa 100%), radial-gradient(ellipse at 50% 60%, #e8eef4 0%, transparent 80%); }
.scn-oberg-audience .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #b8c8d8 0%, #c8d8e8 30%, #c8d8e8 70%, #b8c8d8 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.1); }
.scn-oberg-audience .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a09888 0%, #8a7a6a 100%); }
.scn-oberg-audience .door-left { position:absolute; bottom:25%; left:20%; width:60px; height:120px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 2px 0 10px rgba(0,0,0,0.4); }
.scn-oberg-audience .door-right { position:absolute; bottom:25%; left:calc(20% + 60px); width:60px; height:120px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 0 4% 0 0; box-shadow: -2px 0 10px rgba(0,0,0,0.4); }
.scn-oberg-audience .sentry-left { position:absolute; bottom:25%; left:15%; width:20px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 10% 10%; animation: oa-sentry 4s ease-in-out infinite alternate; }
.scn-oberg-audience .sentry-right { position:absolute; bottom:25%; right:15%; width:20px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 10% 10%; animation: oa-sentry 4s ease-in-out infinite alternate-reverse; }
.scn-oberg-audience .palms { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 50%, #1a3a1a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; filter: blur(3px); }
.scn-oberg-audience .figure { position:absolute; bottom:25%; left:50%; width:24px; height:80px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: oa-fig 6s ease-in-out infinite; }
@keyframes oa-sentry { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes oa-fig { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-52%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(0deg); } }

.scn-oberg-confronts { background: linear-gradient(180deg, #e0d4c0 0%, #c8b8a0 40%, #a08870 100%), radial-gradient(ellipse at 50% 50%, #f0e0c8 0%, transparent 70%); }
.scn-oberg-confronts .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #d4c4a8 0%, #b8a488 50%, #9a8060 100%); }
.scn-oberg-confronts .figure-left { position:absolute; bottom:20%; left:20%; width:30px; height:90px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: oc-fl 5s ease-in-out infinite; }
.scn-oberg-confronts .figure-right { position:absolute; bottom:20%; right:20%; width:30px; height:90px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: oc-fr 5s ease-in-out infinite; }
.scn-oberg-confronts .arm-extend { position:absolute; bottom:50%; left:20%; width:50px; height:6px; background: #2a2a3a; border-radius: 30% 30% 30% 30%; transform-origin: right center; transform: rotate(-60deg); animation: oc-arm 3s ease-in-out infinite alternate; }
.scn-oberg-confronts .shadow-sharp { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.5) 100%); }
.scn-oberg-confronts .candle { position:absolute; bottom:30%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #c8a880 0%, #8a6040 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 0 20px 6px #ffd08080; animation: oc-candle 2s ease-in-out infinite; }
@keyframes oc-fl { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes oc-fr { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(-2px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes oc-arm { 0% { transform: rotate(-60deg); } 50% { transform: rotate(-50deg); } 100% { transform: rotate(-60deg); } }
@keyframes oc-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } }

.scn-gun-surrendered { background: linear-gradient(180deg, #ded0b8 0%, #c4b098 50%, #a08870 100%), radial-gradient(ellipse at 50% 40%, #e8dcc8 0%, transparent 70%); }
.scn-gun-surrendered .bg-interior { position:absolute; inset:0; background: linear-gradient(135deg, #c8b8a0 0%, #a89078 50%, #8a7060 100%); }
.scn-gun-surrendered .hand-holding { position:absolute; bottom:30%; left:40%; width:50px; height:60px; background: linear-gradient(180deg, #d4a882 0%, #b88a64 50%, #9a704c 100%); border-radius: 50% 50% 50% 50% / 60% 50% 40% 40%; transform: rotate(20deg); animation: gs-hand 3s ease-in-out infinite; }
.scn-gun-surrendered .revolver { position:absolute; bottom:32%; left:43%; width:40px; height:20px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 20% 20% 20% 20% / 40% 40% 40% 40%; transform: rotate(-15deg); box-shadow: 2px 2px 4px rgba(0,0,0,0.5); animation: gs-gun 3s ease-in-out infinite; }
.scn-gun-surrendered .agent-arm { position:absolute; bottom:30%; left:50%; width:40px; height:6px; background: #2a2a3a; border-radius: 30% 30% 30% 30%; transform-origin: left center; transform: rotate(10deg); animation: gs-arm 4s ease-in-out infinite alternate; }
.scn-gun-surrendered .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); }
.scn-gun-surrendered .doorway { position:absolute; bottom:0; right:10%; width:80px; height:100%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.4); }
@keyframes gs-hand { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(22deg) translateX(2px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes gs-gun { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(1px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes gs-arm { 0% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(10deg); } }

/* muriel-words */
.scn-muriel-words { background: linear-gradient(135deg, #d9c8b2 0%, #b89a7a 50%, #8c6f51 100%), radial-gradient(ellipse at 30% 40%, #f0e0c8 0%, transparent 60%); }
.scn-muriel-words .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #cbb59a 0%, #a88766 100%); opacity:0.5; }
.scn-muriel-words .door { position:absolute; left:30%; top:15%; width:40%; height:70%; background: linear-gradient(135deg, #5c3d2e 0%, #3a251a 100%); border-radius:4% 4% 2% 2%; box-shadow: inset 0 0 30px #2a1a10, 8px 0 20px rgba(0,0,0,0.3); }
.scn-muriel-words .door-knob { position:absolute; left:58%; top:50%; width:12px; height:12px; background: radial-gradient(circle, #c8a060 0%, #8a6a3a 70%); border-radius:50%; box-shadow: 0 0 10px #c8a060; }
.scn-muriel-words .figure-woman { position:absolute; left:35%; bottom:15%; width:22px; height:60px; background: linear-gradient(180deg, #a07050 0%, #5e3b28 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-walk 2.5s ease-in-out infinite; }
.scn-muriel-words .figure-servant { position:absolute; right:25%; bottom:10%; width:20px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e20 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-bob 3s ease-in-out infinite 0.8s; }
.scn-muriel-words .shadow-pool { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.35) 0%, transparent 70%); }
.scn-muriel-words .lamp-glow { position:absolute; top:10%; right:15%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,200,120,0.6) 0%, rgba(255,200,120,0.1) 60%, transparent 100%); animation: mw-flicker 1.2s ease-in-out infinite alternate; }
.scn-muriel-words .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 20% 30%, rgba(255,255,240,0.08) 0%, transparent 30%), radial-gradient(circle at 70% 60%, rgba(255,255,240,0.05) 0%, transparent 30%); animation: mw-drift 20s linear infinite; }
@keyframes mw-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(32px) rotate(0); } }
@keyframes mw-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes mw-flicker { 0%,100% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } }
@keyframes mw-drift { 0% { background-position: 0 0; } 100% { background-position: 200px 100px; } }

/* signals-glass */
.scn-signals-glass { background: linear-gradient(145deg, #d4bfa0 0%, #b89a7a 40%, #8c6f51 100%), radial-gradient(ellipse at 60% 20%, #f0e0c8 0%, transparent 50%); }
.scn-signals-glass .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #cbb59a 0%, #a88766 100%); opacity:0.4; }
.scn-signals-glass .mantel { position:absolute; bottom:20%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #5a3d2a 0%, #3a251a 100%); border-radius:4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.4); }
.scn-signals-glass .candleshade { position:absolute; left:25%; bottom:28%; width:20px; height:30px; background: linear-gradient(180deg, #b85a3a 0%, #8a3a1a 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 20px #d07040, 0 0 40px rgba(200,100,50,0.4); animation: sg-glow 2s ease-in-out infinite alternate; }
.scn-signals-glass .field-glasses { position:absolute; right:20%; bottom:30%; width:40px; height:12px; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%); border-radius:30% 30% 30% 30% / 50% 50% 50% 50%; transform: rotate(-5deg); animation: sg-tilt 4s ease-in-out infinite; }
.scn-signals-glass .photo-frame-empty { position:absolute; left:45%; bottom:32%; width:24px; height:30px; background: linear-gradient(135deg, #c8a060 0%, #8a6a3a 100%); border:2px solid #5a3a1a; border-radius:4px; box-shadow: inset 0 0 8px rgba(0,0,0,0.5); }
.scn-signals-glass .shadow-behind { position:absolute; bottom:0; left:5%; right:5%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%); }
.scn-signals-glass .mirror-gleam { position:absolute; top:5%; right:10%; width:60px; height:80px; background: linear-gradient(135deg, rgba(255,255,255,0.2) 0%, transparent 50%, rgba(255,255,255,0.1) 80%); border-radius:4px; transform: rotate(2deg); animation: sg-gleam 5s ease-in-out infinite; }
@keyframes sg-glow { 0%,100% { box-shadow: 0 0 20px #d07040, 0 0 40px rgba(200,100,50,0.4); } 50% { box-shadow: 0 0 30px #e08050, 0 0 60px rgba(200,100,50,0.6); } }
@keyframes sg-tilt { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg); } }
@keyframes sg-gleam { 0%,100% { opacity:0.3; } 50% { opacity:0.7; } }

/* stranger-search */
.scn-stranger-search { background: linear-gradient(145deg, #d4bfa0 0%, #b89a7a 40%, #8c6f51 100%), radial-gradient(ellipse at 40% 50%, #f0e0c8 0%, transparent 60%); }
.scn-stranger-search .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #cbb59a 0%, #a88766 100%); opacity:0.4; }
.scn-stranger-search .cupboard { position:absolute; left:35%; top:10%; width:30%; height:75%; background: linear-gradient(135deg, #5c3d2e 0%, #3a251a 100%); border-radius:4% 4% 2% 2%; box-shadow: inset 0 0 20px #2a1a10, 8px 0 15px rgba(0,0,0,0.4); }
.scn-stranger-search .cupboard-door { position:absolute; left:30%; top:12%; width:40%; height:70%; background: linear-gradient(135deg, #6a4a3a 0%, #4a2e1e 100%); border-radius:2%; transform-origin: left center; animation: ss-door 6s ease-in-out infinite; }
.scn-stranger-search .key-grate { position:absolute; left:48%; bottom:8%; width:14px; height:20px; background: radial-gradient(circle, #b08040 0%, #705020 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 12px #b08040; animation: ss-key 3s ease-in-out infinite; }
.scn-stranger-search .figure-stranger { position:absolute; right:20%; bottom:12%; width:22px; height:60px; background: linear-gradient(180deg, #a07050 0%, #5e3b28 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-lean 2.8s ease-in-out infinite; }
.scn-stranger-search .figure-servant { position:absolute; left:5%; bottom:10%; width:20px; height:55px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e20 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-bow 4s ease-in-out infinite 0.5s; }
.scn-stranger-search .shadow-crease { position:absolute; bottom:0; left:0; right:0; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.35) 0%, transparent 70%); }
@keyframes ss-door { 0%,100% { transform: rotateY(0deg); } 25% { transform: rotateY(40deg); } 50% { transform: rotateY(0deg); } 75% { transform: rotateY(20deg); } }
@keyframes ss-key { 0%,100% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.15); } }
@keyframes ss-lean { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-4deg); } }
@keyframes ss-bow { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(4px) rotate(2deg); } }

/* chater-plan */
.scn-chater-plan { background: linear-gradient(145deg, #d4bfa0 0%, #b89a7a 40%, #8c6f51 100%), radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 60%); }
.scn-chater-plan .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a3d2a 0%, #3a251a 100%); border-radius:20% 20% 0 0; }
.scn-chater-plan .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #cbb59a 0%, #a88766 100%); opacity:0.4; }
.scn-chater-plan .plan-roll { position:absolute; left:20%; top:15%; width:50%; height:60%; background: linear-gradient(135deg, #d8c4a8 0%, #b89a7a 70%); border-radius:2% 2% 0 0; transform: perspective(600px) rotateX(15deg); box-shadow: 0 10px 20px rgba(0,0,0,0.3); animation: cp-unroll 8s ease-in-out infinite alternate; }
.scn-chater-plan .plan-pins { position:absolute; left:25%; top:35%; width:8px; height:8px; background: radial-gradient(circle, #c8a060 0%, #8a6a3a 70%); border-radius:50%; box-shadow: 0 0 6px #c8a060; animation: cp-pin 2.5s ease-in-out infinite; }
.scn-chater-plan .figure-man { position:absolute; left:5%; bottom:28%; width:24px; height:65px; background: linear-gradient(180deg, #a07050 0%, #5e3b28 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-point 3.5s ease-in-out infinite; }
.scn-chater-plan .photo-hand { position:absolute; right:30%; bottom:40%; width:18px; height:24px; background: linear-gradient(135deg, #c8a060 0%, #8a6a3a 70%); border-radius:2px; box-shadow: 0 0 10px #c8a060, 0 0 20px rgba(200,160,96,0.4); animation: cp-give 5s ease-in-out infinite; }
.scn-chater-plan .shadow-lobes { position:absolute; bottom:0; left:0; right:0; height:25%; background: radial-gradient(ellipse at 30% 100%, rgba(0,0,0,0.3) 0%, transparent 60%), radial-gradient(ellipse at 70% 100%, rgba(0,0,0,0.2) 0%, transparent 60%); }
@keyframes cp-unroll { 0% { transform: perspective(600px) rotateX(15deg) scaleX(0.8); } 50% { transform: perspective(600px) rotateX(10deg) scaleX(1); } 100% { transform: perspective(600px) rotateX(20deg) scaleX(0.9); } }
@keyframes cp-pin { 0%,100% { opacity:0.7; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.3) translateY(-2px); } }
@keyframes cp-point { 0%,100% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(20px) rotate(5deg); } }
@keyframes cp-give { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-10px) translateY(-5px); } }

.scn-woodcutter-protest {
  background: linear-gradient(180deg, #2a1e14 0%, #1c1208 60%, #0f0a04 100%),
              radial-gradient(ellipse at 30% 70%, #5c3a1a 0%, transparent 60%),
              radial-gradient(circle at 60% 40%, #b07030 0%, transparent 30%);
}
.scn-woodcutter-protest .hut-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #4a3020 0%, #3a2215 50%, #4a3020 100%); border-bottom: 6px solid #2a1a0e; }
.scn-woodcutter-protest .hut-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); }
.scn-woodcutter-protest .old-man { position:absolute; bottom:28%; left:22%; width:30px; height:40px; background: linear-gradient(180deg, #1a1a12 0%, #0e0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wcp-figure 4s ease-in-out infinite; }
.scn-woodcutter-protest .officer { position:absolute; bottom:30%; left:48%; width:28px; height:42px; background: linear-gradient(180deg, #2a2018 0%, #120e0a 100%); border-radius: 50% 50% 20% 20% / 70% 70% 25% 25%; transform-origin: bottom center; animation: wcp-officer 3s ease-in-out infinite alternate; }
.scn-woodcutter-protest .lantern { position:absolute; bottom:46%; left:40%; width:12px; height:16px; background: radial-gradient(circle, #f0c060 0%, #c08030 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 10px rgba(240,192,96,0.6), 0 0 60px 20px rgba(240,192,96,0.3); animation: wcp-lantern 0.8s ease-in-out infinite alternate; }
.scn-woodcutter-protest .board-pry { position:absolute; bottom:18%; left:64%; width:40px; height:4px; background: #6b4a2a; border-radius: 4px; transform: rotate(-30deg); animation: wcp-pry 2s ease-in-out infinite; }
.scn-woodcutter-protest .shadow-flicker { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, transparent 0%, rgba(0,0,0,0.5) 70%); animation: wcp-flicker 0.5s linear infinite; }
@keyframes wcp-figure { 0%,100% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } }
@keyframes wcp-officer { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes wcp-lantern { 0% { opacity:0.8; box-shadow:0 0 20px 5px rgba(240,192,96,0.5); } 50% { opacity:1; box-shadow:0 0 40px 12px rgba(240,192,96,0.7); } 100% { opacity:0.85; box-shadow:0 0 25px 6px rgba(240,192,96,0.55); } }
@keyframes wcp-pry { 0%,100% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-2px); } }
@keyframes wcp-flicker { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.65; } }

.scn-argument-to-abo {
  background: linear-gradient(180deg, #1a1814 0%, #0e0c08 40%, #080604 100%),
              radial-gradient(ellipse at 40% 30%, #3a2a1a 0%, transparent 60%),
              radial-gradient(circle at 60% 70%, #605040 0%, transparent 50%);
}
.scn-argument-to-abo .room-back { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #2a221a 0%, #1e1610 50%, #2a221a 100%); }
.scn-argument-to-abo .window-frame { position:absolute; top:8%; right:10%; width:50px; height:40px; border: 3px solid #3a2a1a; background: transparent; }
.scn-argument-to-abo .window-pane { position:absolute; top:10%; right:12%; width:44px; height:34px; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); opacity:0.5; border-radius:2px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: ato-window 8s ease-in-out infinite alternate; }
.scn-argument-to-abo .narrator-silhouette { position:absolute; bottom:22%; left:20%; width:24px; height:38px; background: linear-gradient(180deg, #0e0a06 0%, #060402 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ato-narrator 5s ease-in-out infinite; }
.scn-argument-to-abo .officer-silhouette { position:absolute; bottom:24%; left:45%; width:28px; height:40px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 50% 50% 20% 20% / 70% 70% 25% 25%; transform-origin: bottom center; animation: ato-officer 3.5s ease-in-out infinite alternate; }
.scn-argument-to-abo .desk { position:absolute; bottom:18%; left:30%; width:60px; height:10px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.6); }
.scn-argument-to-abo .lamp-glow { position:absolute; bottom:32%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #e8c060 0%, #b08030 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(232,192,96,0.5); animation: ato-lamp 2s ease-in-out infinite alternate; }
@keyframes ato-window { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes ato-narrator { 0%,100% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-1px) rotate(0deg); } 70% { transform: translateY(0) rotate(1deg); } }
@keyframes ato-officer { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.03); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ato-lamp { 0% { opacity:0.8; box-shadow:0 0 30px 10px rgba(232,192,96,0.4); } 50% { opacity:1; box-shadow:0 0 50px 18px rgba(232,192,96,0.7); } 100% { opacity:0.85; box-shadow:0 0 35px 12px rgba(232,192,96,0.5); } }

.scn-march-to-station {
  background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 30%, #3a3a3a 60%, #2a2a2a 100%),
              radial-gradient(ellipse at 50% 20%, #8a8a8a 0%, transparent 70%);
}
.scn-march-to-station .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a7a7a 0%, #5a5a5a 100%); animation: mts-sky 12s ease-in-out infinite alternate; }
.scn-march-to-station .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 0 0 20% 20%; }
.scn-march-to-station .road { position:absolute; bottom:18%; left:0; right:0; height:8%; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius: 10px; }
.scn-march-to-station .figure-a { position:absolute; bottom:22%; left:30%; width:20px; height:36px; background: linear-gradient(180deg, #1a1a12 0%, #0e0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mts-figure 6s ease-in-out infinite; }
.scn-march-to-station .figure-b { position:absolute; bottom:22%; left:44%; width:22px; height:38px; background: linear-gradient(180deg, #2a221a 0%, #12120a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mts-figure 6s ease-in-out infinite reverse; }
.scn-march-to-station .figure-c { position:absolute; bottom:22%; left:58%; width:18px; height:34px; background: linear-gradient(180deg, #1a1410 0%, #0a0804 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mts-figure 6s ease-in-out infinite 2s; }
.scn-march-to-station .sun-struggle { position:absolute; top:10%; left:60%; width:30px; height:30px; background: radial-gradient(circle, #e8d080 0%, #c0a050 60%, transparent 100%); border-radius: 50%; opacity:0.6; animation: mts-sun 10s ease-in-out infinite alternate; }
.scn-march-to-station .clouds-slow { position:absolute; top:5%; left:0; width:200px; height:20px; background: linear-gradient(90deg, transparent 0%, rgba(200,200,200,0.3) 30%, rgba(200,200,200,0.1) 70%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: mts-clouds 40s linear infinite; }
@keyframes mts-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes mts-figure { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(0); } 75% { transform: translateY(-1px); } }
@keyframes mts-sun { 0% { opacity:0.4; transform: scale(0.9); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(0.95); } }
@keyframes mts-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-train-to-abo {
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 40%, #080808 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a2a 0%, transparent 70%),
              radial-gradient(circle at 30% 20%, #3a3a3a 0%, transparent 60%);
}
.scn-train-to-abo .carriage-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%); border-bottom: 4px solid #0e0a06; }
.scn-train-to-abo .carriage-window { position:absolute; top:6%; right:12%; width:40px; height:30px; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%); border: 3px solid #2a1a0e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: tta-window 10s ease-in-out infinite alternate; }
.scn-train-to-abo .seat { position:absolute; bottom:22%; left:20%; width:30px; height:16px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 4px; }
.scn-train-to-abo .officer-seated { position:absolute; bottom:24%; left:22%; width:24px; height:30px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tta-officer 4s ease-in-out infinite alternate; }
.scn-train-to-abo .narrator-standing { position:absolute; bottom:20%; left:45%; width:20px; height:36px; background: linear-gradient(180deg, #0e0a06 0%, #060402 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tta-narrator 5s ease-in-out infinite; }
.scn-train-to-abo .lamp { position:absolute; top:4%; left:50%; width:10px; height:14px; background: radial-gradient(circle, #e8c060 0%, #a08030 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 40px 15px rgba(232,192,96,0.4); animation: tta-lamp 1.5s ease-in-out infinite alternate; }
.scn-train-to-abo .shadow-move { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, transparent 0%, rgba(0,0,0,0.6) 70%); animation: tta-shadow 6s ease-in-out infinite alternate; }
@keyframes tta-window { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes tta-officer { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes tta-narrator { 0%,100% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-1px) rotate(0deg); } 70% { transform: translateY(0) rotate(1deg); } }
@keyframes tta-lamp { 0% { opacity:0.7; box-shadow:0 0 30px 8px rgba(232,192,96,0.3); } 50% { opacity:1; box-shadow:0 0 50px 20px rgba(232,192,96,0.6); } 100% { opacity:0.8; box-shadow:0 0 35px 10px rgba(232,192,96,0.4); } }
@keyframes tta-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

.scn-knout-abolished { background: linear-gradient(180deg, #4a3528 0%, #6b4c3b 40%, #8b6f4e 100%), radial-gradient(ellipse at 30% 70%, #c9a87c 0%, transparent 60%); }
.scn-knout-abolished .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a5c45 0%, #5b3f2e 100%); }
.scn-knout-abolished .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3e2c1e 0%, #21160e 100%); }
.scn-knout-abolished .desk { position:absolute; bottom:25%; left:10%; width:30%; height:15%; background: linear-gradient(180deg, #5a3e2a 0%, #2d1d12 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-knout-abolished .lampshade { position:absolute; bottom:45%; right:25%; width:12%; height:10%; background: radial-gradient(ellipse at 50% 30%, #dbb88c 0%, #a57c5c 70%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(2px); }
.scn-knout-abolished .lamp-glow { position:absolute; bottom:40%; right:20%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(220,180,130,.8) 0%, transparent 70%); animation: ka-glow 4s ease-in-out infinite alternate; }
.scn-knout-abolished .figure-governor { position:absolute; bottom:30%; left:40%; width:12%; height:28%; background: linear-gradient(180deg, #2a1c14 0%, #14100b 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ka-figure 6s ease-in-out infinite alternate; }
.scn-knout-abolished .document { position:absolute; bottom:30%; left:18%; width:8%; height:6%; background: #dacab0; border-radius: 2px; transform: rotate(-5deg); animation: ka-doc 3s ease-in-out infinite; }
.scn-knout-abolished .shadow { position:absolute; bottom:0; left:0; right:0; height:100%; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.4) 100%); pointer-events: none; }

@keyframes ka-glow {
  0% { opacity:.6; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.1); }
  100% { opacity:.7; transform: scaleY(.95); }
}
@keyframes ka-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-.5deg); }
}
@keyframes ka-doc {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-6deg) translateY(0); }
}

.scn-oberg-threatens { background: linear-gradient(180deg, #1e1a1a 0%, #3a2a2a 50%, #2a1e1e 100%), radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 70%); }
.scn-oberg-threatens .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%); }
.scn-oberg-threatens .light-shaft { position:absolute; top:0; left:20%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,240,210,.15) 0%, transparent 80%); animation: ot-shaft 5s ease-in-out infinite alternate; }
.scn-oberg-threatens .figure-gov { position:absolute; bottom:20%; left:30%; width:15%; height:40%; background: linear-gradient(180deg, #2d221e 0%, #161110 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ot-gov 4s ease-in-out infinite; }
.scn-oberg-threatens .figure-protagonist { position:absolute; bottom:20%; right:30%; width:14%; height:38%; background: linear-gradient(180deg, #1f1815 0%, #0d0a09 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ot-pro 5s ease-in-out infinite alternate; }
.scn-oberg-threatens .door { position:absolute; bottom:20%; left:5%; width:20%; height:80%; background: linear-gradient(180deg, #4a3b32 0%, #2c221c 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-oberg-threatens .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); }
.scn-oberg-threatens .papers { position:absolute; bottom:18%; left:45%; width:8%; height:5%; background: #d4c9b8; border-radius:2px; transform: rotate(10deg); animation: ot-papers 7s ease-in-out infinite; }

@keyframes ot-shaft {
  0% { opacity:.8; transform: translateX(0); }
  50% { opacity:1; transform: translateX(5px); }
  100% { opacity:.7; transform: translateX(-3px); }
}
@keyframes ot-gov {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-5px) translateY(-2px); }
  100% { transform: translateX(0) translateY(1px); }
}
@keyframes ot-pro {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(4px) scale(1.02); }
  100% { transform: translateX(-2px) scale(.98); }
}
@keyframes ot-papers {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-3px); }
  100% { transform: rotate(12deg) translateY(0); }
}

.scn-trump-card-lost { background: linear-gradient(180deg, #2a2220 0%, #3a2e2a 40%, #1e1816 100%), radial-gradient(ellipse at 60% 50%, #4a3a30 0%, transparent 80%); }
.scn-trump-card-lost .cell-wall { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #3a2e2a 0px, #3a2e2a 30px, #2c221e 30px, #2c221e 32px); }
.scn-trump-card-lost .cell-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1e1816 0%, #0e0a08 100%); }
.scn-trump-card-lost .table { position:absolute; bottom:20%; left:10%; width:35%; height:10%; background: linear-gradient(180deg, #4a3a2e 0%, #2c1e16 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-trump-card-lost .candle-flame { position:absolute; bottom:40%; left:25%; width:4%; height:8%; background: radial-gradient(ellipse at 50% 20%, #ffd680 0%, #dba050 60%, transparent 80%); border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%; animation: tc-flame 2s ease-in-out infinite alternate; }
.scn-trump-card-lost .candle-wax { position:absolute; bottom:42%; left:24%; width:6%; height:12%; background: linear-gradient(180deg, #e6c8a0 0%, #b89870 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; }
.scn-trump-card-lost .figure-sitting { position:absolute; bottom:15%; right:20%; width:16%; height:30%; background: linear-gradient(180deg, #1f1815 0%, #0d0a09 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: tc-sit 6s ease-in-out infinite; }
.scn-trump-card-lost .hand-rising { position:absolute; bottom:35%; right:28%; width:4%; height:12%; background: #1f1815; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tc-hand 3s ease-in-out infinite alternate; }
.scn-trump-card-lost .wallet { position:absolute; bottom:30%; right:25%; width:5%; height:4%; background: #8a6e50; border-radius: 2px; transform: rotate(-20deg); animation: tc-wallet 8s ease-in-out infinite; }

@keyframes tc-flame {
  0% { transform: scaleY(1) scaleX(.9); opacity:.9; }
  50% { transform: scaleY(1.15) scaleX(1); opacity:1; }
  100% { transform: scaleY(.85) scaleX(.8); opacity:.8; }
}
@keyframes tc-sit {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(-6deg) translateY(2px); }
}
@keyframes tc-hand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-10px) rotate(-10deg); }
  100% { transform: translateY(0) rotate(5deg); }
}
@keyframes tc-wallet {
  0% { transform: rotate(-20deg) translateX(0) translateY(0); }
  50% { transform: rotate(-15deg) translateX(5px) translateY(-2px); }
  100% { transform: rotate(-25deg) translateX(-3px) translateY(1px); }
}

.scn-defiance-holds { background: linear-gradient(135deg, #2a1e1a 0%, #4a342a 50%, #2a1e1a 100%), radial-gradient(ellipse at 40% 50%, #6a4a3a 0%, transparent 70%); }
.scn-defiance-holds .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #1e1614 0%, #0e0a08 100%); }
.scn-defiance-holds .spotlight { position:absolute; top:0; left:25%; width:25%; height:100%; background: linear-gradient(180deg, rgba(255,220,180,.2) 0%, transparent 80%); animation: dh-spot 7s ease-in-out infinite alternate; }
.scn-defiance-holds .figure-left { position:absolute; bottom:15%; left:20%; width:18%; height:45%; background: linear-gradient(180deg, #2d221e 0%, #161110 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dh-left 4s ease-in-out infinite; }
.scn-defiance-holds .figure-right { position:absolute; bottom:15%; right:20%; width:17%; height:43%; background: linear-gradient(180deg, #1f1815 0%, #0d0a09 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: dh-right 5s ease-in-out infinite alternate; }
.scn-defiance-holds .paper { position:absolute; bottom:25%; left:42%; width:6%; height:4%; background: #d4c9b8; border-radius: 1px; transform: rotate(15deg); animation: dh-paper 9s ease-in-out infinite; }
.scn-defiance-holds .chain { position:absolute; bottom:30%; left:35%; width:4%; height:20%; background: linear-gradient(90deg, #6a5a4a 30%, transparent 30%, transparent 70%, #6a5a4a 70%); background-size: 100% 8px; background-repeat: repeat-y; border-radius: 2px; animation: dh-chain 3s ease-in-out infinite; }
.scn-defiance-holds .shadow-left { position:absolute; bottom:0; left:0; width:50%; height:100%; background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.4) 100%); pointer-events: none; }

@keyframes dh-spot {
  0% { opacity:.7; transform: translateX(0) scaleX(1); }
  50% { opacity:1; transform: translateX(8px) scaleX(1.1); }
  100% { opacity:.8; transform: translateX(-5px) scaleX(.95); }
}
@keyframes dh-left {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-5px) rotate(-1deg); }
  100% { transform: translateY(2px) rotate(0deg); }
}
@keyframes dh-right {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(6px) scale(1.03); }
  100% { transform: translateX(-3px) scale(.97); }
}
@keyframes dh-paper {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-4px); }
  100% { transform: rotate(18deg) translateY(2px); }
}
@keyframes dh-chain {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

/* ---------- accusations-fly ---------- */
.scn-accusations-fly {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9c094 30%, #b8946a 100%),
    radial-gradient(ellipse at 20% 40%, #fff5e0 0%, transparent 60%);
}
.scn-accusations-fly .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d4b8 0%, #d4bb9a 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.1);
}
.scn-accusations-fly .window-pane {
  position: absolute; top: 10%; left: 15%; width: 120px; height: 160px;
  background: linear-gradient(135deg, #fff8e7 0%, #ffe0b0 50%, #d4a050 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 10px rgba(255,230,180,0.5), inset 0 0 20px rgba(255,200,100,0.3);
  animation: af-window 6s ease-in-out infinite alternate;
}
.scn-accusations-fly .table {
  position: absolute; bottom: 20%; left: 25%; width: 200px; height: 30px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4d3320 100%);
  border-radius: 4px;
  transform: perspective(400px) rotateX(10deg);
}
.scn-accusations-fly .accuser {
  position: absolute; bottom: 18%; left: 10%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: af-accuser 3s ease-in-out infinite;
}
.scn-accusations-fly .accused {
  position: absolute; bottom: 18%; right: 15%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: af-accused 3.5s ease-in-out infinite;
}
.scn-accusations-fly .shadow-l {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  pointer-events: none;
}
@keyframes af-window {
  0% { opacity: 0.9; box-shadow: 0 0 30px 5px rgba(255,230,180,0.4); }
  50% { opacity: 1; box-shadow: 0 0 60px 15px rgba(255,230,180,0.7); }
  100% { opacity: 0.85; box-shadow: 0 0 25px 3px rgba(255,230,180,0.3); }
}
@keyframes af-accuser {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(8px) rotate(2deg); }
  60% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes af-accused {
  0% { transform: translateX(0) rotate(1deg); }
  40% { transform: translateX(-6px) rotate(-1deg); }
  80% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* ---------- oberg-shaken ---------- */
.scn-oberg-shaken {
  background:
    linear-gradient(180deg, #d9c4a0 0%, #c0a880 40%, #a08060 100%),
    radial-gradient(ellipse at 60% 50%, #ffebd0 0%, transparent 50%);
}
.scn-oberg-shaken .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #cdb694 0%, #b89d78 100%);
}
.scn-oberg-shaken .lamp-glow {
  position: absolute; top: 15%; right: 25%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffd080 0%, #e0a050 40%, transparent 70%);
  border-radius: 50%;
  animation: ob-lamp 5s ease-in-out infinite alternate;
}
.scn-oberg-shaken .desk {
  position: absolute; bottom: 20%; left: 30%; width: 180px; height: 20px;
  background: linear-gradient(180deg, #6a4e30 0%, #3d2a18 100%);
  border-radius: 4px;
  transform: perspective(300px) rotateX(15deg);
}
.scn-oberg-shaken .figure-oberg {
  position: absolute; bottom: 18%; left: 40%; width: 55px; height: 130px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0600 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ob-figure 4s ease-in-out infinite;
}
.scn-oberg-shaken .hand-temple {
  position: absolute; bottom: 55%; left: 42%; width: 15px; height: 25px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-30deg);
  animation: ob-hand 4s ease-in-out infinite;
}
.scn-oberg-shaken .chair {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3020 0%, #201008 100%);
  border-radius: 10% 10% 5% 5%;
  transform: perspective(200px) rotateY(5deg);
}
@keyframes ob-lamp {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.85; transform: scale(0.95); }
}
@keyframes ob-figure {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(5px) rotate(-3deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  75% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ob-hand {
  0% { transform: rotate(-30deg) scale(1); }
  50% { transform: rotate(-40deg) scale(1.1); }
  100% { transform: rotate(-25deg) scale(1); }
}

/* ---------- private-face-off ---------- */
.scn-private-face-off {
  background:
    linear-gradient(180deg, #c6b28e 0%, #a88c68 40%, #7a6040 100%),
    radial-gradient(ellipse at 50% 30%, #ffeac0 0%, transparent 60%);
}
.scn-private-face-off .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #6a5030 0%, #3a2810 100%);
  transform: perspective(400px) rotateX(20deg);
}
.scn-private-face-off .wall-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #b09570 0%, #8a7048 100%);
  box-shadow: 8px 0 20px rgba(0,0,0,0.1);
}
.scn-private-face-off .wall-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #b09570 0%, #8a7048 100%);
  box-shadow: -8px 0 20px rgba(0,0,0,0.1);
}
.scn-private-face-off .figure-a {
  position: absolute; bottom: 25%; left: 25%; width: 50px; height: 130px;
  background: linear-gradient(180deg, #1a0e08 0%, #080300 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pf-fig-a 3s ease-in-out infinite;
}
.scn-private-face-off .figure-b {
  position: absolute; bottom: 25%; right: 25%; width: 50px; height: 130px;
  background: linear-gradient(180deg, #1a0e08 0%, #080300 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pf-fig-b 3s ease-in-out infinite reverse;
}
.scn-private-face-off .door {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-private-face-off .chandelier {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: pf-candle 4s ease-in-out infinite;
}
@keyframes pf-fig-a {
  0% { transform: translateX(0) rotate(2deg); }
  40% { transform: translateX(-6px) rotate(-2deg); }
  80% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes pf-fig-b {
  0% { transform: translateX(0) rotate(-2deg); }
  40% { transform: translateX(6px) rotate(2deg); }
  80% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes pf-candle {
  0% { opacity: 0.8; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.85; transform: translateX(-50%) scale(1); }
}

/* ---------- malkoff-dismissed ---------- */
.scn-malkoff-dismissed {
  background:
    linear-gradient(180deg, #d4b88a 0%, #b09060 40%, #806040 100%),
    radial-gradient(ellipse at 70% 50%, #ffe0b0 0%, transparent 50%);
}
.scn-malkoff-dismissed .paneling {
  position: absolute; inset: 0 0 15% 0;
  background: repeating-linear-gradient(90deg, #8a6a42 0px 40px, #9a7a52 40px 80px);
  box-shadow: inset 0 4px 30px rgba(0,0,0,0.3);
}
.scn-malkoff-dismissed .secret-door {
  position: absolute; bottom: 20%; right: 20%; width: 80px; height: 160px;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: md-door 6s ease-in-out infinite;
}
.scn-malkoff-dismissed .baron {
  position: absolute; bottom: 20%; left: 30%; width: 55px; height: 140px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: md-baron 4s ease-in-out infinite;
}
.scn-malkoff-dismissed .retreating-figure {
  position: absolute; bottom: 18%; right: 35%; width: 45px; height: 130px;
  background: linear-gradient(180deg, #1a0a05 0%, #050200 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: md-retreat 5s ease-in-out infinite;
}
.scn-malkoff-dismissed .candle {
  position: absolute; bottom: 30%; left: 20%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 100%);
  border-radius: 2px;
}
.scn-malkoff-dismissed .candlelight {
  position: absolute; bottom: 38%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #e0a050 30%, transparent 60%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: md-candlelight 3s ease-in-out infinite alternate;
}
.scn-malkoff-dismissed .rug {
  position: absolute; bottom: 0; left: 15%; width: 70%; height: 25%;
  background: linear-gradient(180deg, #603030 0%, #401818 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: perspective(500px) rotateX(30deg);
}
@keyframes md-door {
  0% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(-20px) scaleX(0.2); }
  50% { transform: translateX(-100px) scaleX(0.1); opacity: 0; }
  100% { transform: translateX(0) scaleX(1); opacity: 1; }
}
@keyframes md-baron {
  0% { transform: translateX(0) rotate(-1deg); }
  40% { transform: translateX(5px) rotate(2deg); }
  80% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes md-retreat {
  0% { transform: translateX(0) scaleX(1); }
  30% { transform: translateX(30px) scaleX(0.7); }
  60% { transform: translateX(60px) scaleX(0.4); opacity: 0.5; }
  100% { transform: translateX(120px) scaleX(0.1); opacity: 0; }
}
@keyframes md-candlelight {
  0% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.9); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.2); }
  100% { opacity: 0.8; transform: translate(-50%, -50%) scale(1); }
}

/* revolutionist-princess */
.scn-revolutionist-princess {
  background: linear-gradient(180deg, #f5e6d0 0%, #c8b092 40%, #8a7a62 100%), radial-gradient(ellipse at 40% 30%, #f5e6d0 0%, transparent 70%);
}
.scn-revolutionist-princess .rp-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #d9c8b0 0%, #a68f78 100%); }
.scn-revolutionist-princess .rp-desk { position:absolute; bottom:15%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #5e4a38 0%, #3d2e20 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-revolutionist-princess .rp-papers { position:absolute; bottom:28%; left:32%; width:30%; height:14%; background: linear-gradient(135deg, #efe6d8 0%, #c8b696 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: rp-papers 6s ease-in-out infinite; }
.scn-revolutionist-princess .rp-lamp { position:absolute; bottom:30%; left:45%; width:14px; height:22px; background: radial-gradient(circle, #f0d060 0%, #b08030 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 28px 8px #b08030; animation: rp-glow 2.5s ease-in-out infinite alternate; }
.scn-revolutionist-princess .rp-figure { position:absolute; bottom:15%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: rp-figure 5s ease-in-out infinite; }
.scn-revolutionist-princess .rp-shadow { position:absolute; bottom:12%; left:38%; width:30px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 80%); animation: rp-shadow 6s ease-in-out infinite; }
.scn-revolutionist-princess .rp-secret { position:absolute; bottom:30%; left:25%; width:8px; height:6px; background: #a0461a; border-radius: 2px; animation: rp-secret 4s ease-in-out infinite; }
@keyframes rp-papers { 0% { transform: rotate(0deg); opacity:.9 } 50% { transform: rotate(2deg); opacity:1 } 100% { transform: rotate(-1deg); opacity:.9 } }
@keyframes rp-glow { 0% { box-shadow: 0 0 20px 4px #b08030; opacity:.8 } 50% { box-shadow: 0 0 36px 10px #f0d060; opacity:1 } 100% { box-shadow: 0 0 24px 6px #b08030; opacity:.85 } }
@keyframes rp-figure { 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 rp-shadow { 0% { transform: scaleX(1); opacity:.3 } 50% { transform: scaleX(1.2); opacity:.5 } 100% { transform: scaleX(.9); opacity:.3 } }
@keyframes rp-secret { 0% { transform: translateY(0); opacity:.7 } 50% { transform: translateY(-2px); opacity:1 } 100% { transform: translateY(0); opacity:.7 } }

/* woodroffe-motive */
.scn-woodroffe-motive {
  background: linear-gradient(180deg, #e8dcc8 0%, #b8a68a 50%, #7a6a54 100%), radial-gradient(ellipse at 60% 30%, #e8dcc8 0%, transparent 80%);
}
.scn-woodroffe-motive .wm-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(135deg, #8a7a62 0%, #5a4a38 100%); border-radius: 0 0 0 0; }
.scn-woodroffe-motive .wm-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d4c4b0 0%, #b8a68a 100%); }
.scn-woodroffe-motive .wm-window { position:absolute; top:15%; right:10%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 40%, #c0d0e0 0%, #8090b0 80%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,.3); animation: wm-window 12s ease-in-out infinite alternate; }
.scn-woodroffe-motive .wm-table { position:absolute; bottom:25%; left:35%; right:30%; height:12%; background: linear-gradient(180deg, #5e4a38 0%, #3d2e20 100%); border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-woodroffe-motive .wm-figure-a { position:absolute; bottom:16%; left:15%; width:22px; height:52px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20% / 55% 55% 20% 20%; transform-origin: bottom center; animation: wm-figure 8s ease-in-out infinite; }
.scn-woodroffe-motive .wm-figure-b { position:absolute; bottom:18%; right:25%; width:20px; height:48px; background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%); border-radius: 50% 50% 20% 20% / 55% 55% 20% 20%; transform-origin: bottom center; animation: wm-figure 10s ease-in-out infinite reverse; }
.scn-woodroffe-motive .wm-letter { position:absolute; bottom:30%; left:38%; width:12px; height:16px; background: linear-gradient(135deg, #efe6d8 0%, #c8b696 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: wm-letter 5s ease-in-out infinite; }
@keyframes wm-window { 0% { opacity:.7; transform: scale(1) } 50% { opacity:.85; transform: scale(1.02) } 100% { opacity:.7; transform: scale(1) } }
@keyframes wm-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(3deg) } 50% { transform: translateX(6px) rotate(-2deg) } 75% { transform: translateX(9px) rotate(2deg) } 100% { transform: translateX(12px) rotate(0deg) } }
@keyframes wm-letter { 0% { transform: rotate(0deg); opacity:.8 } 50% { transform: rotate(5deg); opacity:1 } 100% { transform: rotate(-3deg); opacity:.8 } }

/* leithcourt-known */
.scn-leithcourt-known {
  background: linear-gradient(180deg, #f0e4d0 0%, #c8b698 40%, #8a7a62 100%), radial-gradient(ellipse at 30% 20%, #f0e4d0 0%, transparent 70%);
}
.scn-leithcourt-known .lk-floor { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(135deg, #7a6a54 0%, #4a3a2a 100%); }
.scn-leithcourt-known .lk-wall { position:absolute; inset:0 0 18% 0; background: linear-gradient(180deg, #e0d4c0 0%, #c0b09a 100%); }
.scn-leithcourt-known .lk-door-l { position:absolute; bottom:18%; left:25%; width:18%; height:65%; background: linear-gradient(180deg, #b8a08a 0%, #8a7260 100%); border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,.3); animation: lk-door 6s ease-in-out infinite alternate; }
.scn-leithcourt-known .lk-door-r { position:absolute; bottom:18%; right:25%; width:18%; height:65%; background: linear-gradient(180deg, #b8a08a 0%, #8a7260 100%); border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,.3); animation: lk-door 6s ease-in-out infinite alternate-reverse; }
.scn-leithcourt-known .lk-figure-s { position:absolute; bottom:14%; left:30%; width:20px; height:48px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 20% 20% / 55% 55% 20% 20%; transform-origin: bottom center; animation: lk-figure 7s ease-in-out infinite; }
.scn-leithcourt-known .lk-figure-e { position:absolute; bottom:14%; right:30%; width:20px; height:48px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius: 50% 50% 20% 20% / 55% 55% 20% 20%; transform-origin: bottom center; animation: lk-figure 9s ease-in-out infinite reverse; }
.scn-leithcourt-known .lk-light { position:absolute; top:10%; left:45%; width:10%; height:40%; background: radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%); opacity:.3; animation: lk-light 4s ease-in-out infinite alternate; }
@keyframes lk-door { 0% { transform: rotateY(0deg); opacity:.9 } 50% { transform: rotateY(-15deg); opacity:1 } 100% { transform: rotateY(0deg); opacity:.9 } }
@keyframes lk-figure { 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 lk-light { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.4; transform: scale(1.1) } 100% { opacity:.2; transform: scale(1) } }

/* all-arranged */
.scn-all-arranged {
  background: linear-gradient(180deg, #faf0e0 0%, #e0d4bc 60%, #b8a68a 100%), radial-gradient(ellipse at 50% 40%, #faf0e0 0%, transparent 60%);
}
.scn-all-arranged .aa-floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(135deg, #9a8a72 0%, #6a5a42 100%); }
.scn-all-arranged .aa-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 100%); }
.scn-all-arranged .aa-sofa { position:absolute; bottom:14%; left:15%; right:35%; height:25%; background: linear-gradient(180deg, #8a7a62 0%, #5a4a38 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: aa-sofa 10s ease-in-out infinite alternate; }
.scn-all-arranged .aa-table { position:absolute; bottom:12%; left:55%; right:10%; height:14%; background: linear-gradient(180deg, #6a5a42 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.4); }
.scn-all-arranged .aa-figure-seated { position:absolute; bottom:18%; left:22%; width:22px; height:44px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20% / 55% 55% 20% 20%; transform-origin: bottom center; animation: aa-seated 12s ease-in-out infinite; }
.scn-all-arranged .aa-figure-standing { position:absolute; bottom:14%; right:18%; width:20px; height:52px; background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%); border-radius: 50% 50% 20% 20% / 55% 55% 20% 20%; transform-origin: bottom center; animation: aa-standing 15s ease-in-out infinite; }
.scn-all-arranged .aa-cup { position:absolute; bottom:20%; left:60%; width:10px; height:12px; background: linear-gradient(180deg, #f0e0c0 0%, #c8a880 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: aa-cup 8s ease-in-out infinite; }
@keyframes aa-sofa { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.02); opacity:1 } 100% { transform: scale(1); opacity:.9 } }
@keyframes aa-seated { 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 aa-standing { 0% { transform: translateX(0) rotate(0deg); opacity:.85 } 25% { transform: translateX(3px) rotate(-2deg); opacity:.9 } 50% { transform: translateX(6px) rotate(1deg); opacity:1 } 75% { transform: translateX(9px) rotate(-1deg); opacity:.9 } 100% { transform: translateX(12px) rotate(0deg); opacity:.85 } }
@keyframes aa-cup { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* gossip-continues (warm dusk) */
.scn-gossip-continues { background: linear-gradient(180deg, #2b1a0e 0%, #4a2a1a 40%, #6a3a2a 100%), radial-gradient(ellipse at 50% 0%, #8a5a3a 0%, transparent 70%); }
.scn-gossip-continues .wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); }
.scn-gossip-continues .window { position:absolute; top:15%; left:10%; width:40%; height:55%; background: #1a1a2a; border:6px solid #5a4a3a; border-radius:4px; box-shadow: inset 0 0 40px #2a1a0a; }
.scn-gossip-continues .dusk-sky { position:absolute; top:15%; left:10%; width:calc(40% - 12px); height:calc(55% - 12px); margin:6px; background: linear-gradient(180deg, #6a4a3a 0%, #8a6a4a 30%, #c09050 60%, #e0b070 100%); animation: gc-dusk 8s ease-in-out infinite alternate; }
.scn-gossip-continues .table { position:absolute; bottom:18%; left:15%; width:70%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-gossip-continues .lamp-glow { position:absolute; bottom:25%; left:20%; width:14px; height:18px; background: radial-gradient(circle, #f0c080 0%, #c09050 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(240,192,128,0.4); animation: gc-lamp 3s ease-in-out infinite alternate; }
.scn-gossip-continues .figure-gossip { position:absolute; bottom:20%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: gc-gesture 5s ease-in-out infinite; }
.scn-gossip-continues .shadow { position:absolute; bottom:18%; left:30%; width:40%; height:5%; background: rgba(0,0,0,0.4); border-radius:50%; filter: blur(4px); animation: gc-shadow 5s ease-in-out infinite; }
@keyframes gc-dusk { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes gc-lamp { 0% { opacity:0.8; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.9; transform:scale(0.95); } }
@keyframes gc-gesture { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(3px) rotate(2deg); } 50% { transform:translateX(6px) rotate(-1deg); } 75% { transform:translateX(3px) rotate(1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes gc-shadow { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(3px) scaleX(1.1); } 100% { transform:translateX(0) scaleX(1); } }

/* rannoch-tennis-again (calm sunlit) */
.scn-rannoch-tennis-again { background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 40%, #e0f0ff 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%); }
.scn-rannoch-tennis-again .sky-bright { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #a0d8ff 0%, transparent 100%); animation: rt-sky 12s ease-in-out infinite alternate; }
.scn-rannoch-tennis-again .grass { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #6a9a3a 0%, #4a7a2a 100%); border-radius:30% 30% 0 0 / 20% 20% 0 0; }
.scn-rannoch-tennis-again .net { position:absolute; bottom:35%; left:30%; width:40%; height:25%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 4px, #fff 4px, #fff 6px); border-top: 2px solid #fff; border-bottom: 2px solid #fff; opacity:0.6; }
.scn-rannoch-tennis-again .tree-left { position:absolute; bottom:40%; left:5%; width:40px; height:80px; background: linear-gradient(180deg, #3a6a2a 0%, #2a4a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation: rt-tree 20s ease-in-out infinite alternate; }
.scn-rannoch-tennis-again .player-serve { position:absolute; bottom:20%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rt-serve 4s ease-in-out infinite; }
.scn-rannoch-tennis-again .player-return { position:absolute; bottom:18%; right:20%; width:20px; height:42px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rt-return 4s ease-in-out infinite 0.5s; }
.scn-rannoch-tennis-again .sun-sparkle { position:absolute; top:5%; left:20%; width:15px; height:15px; background: radial-gradient(circle, #fff 0%, rgba(255,255,255,0.3) 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,255,255,0.2); animation: rt-sparkle 3s ease-in-out infinite alternate; }
.scn-rannoch-tennis-again .shadow-court { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); filter: blur(6px); }
@keyframes rt-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes rt-tree { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(0deg); } 100% { transform:translateY(0) rotate(2deg); } }
@keyframes rt-serve { 0% { transform:translateY(0) rotate(-10deg); } 25% { transform:translateY(-8px) rotate(0deg); } 50% { transform:translateY(0) rotate(10deg); } 75% { transform:translateY(-8px) rotate(0deg); } 100% { transform:translateY(0) rotate(-10deg); } }
@keyframes rt-return { 0% { transform:translateX(0) translateY(0); } 25% { transform:translateX(-5px) translateY(-5px); } 50% { transform:translateX(-10px) translateY(0); } 75% { transform:translateX(-5px) translateY(-5px); } 100% { transform:translateX(0) translateY(0); } }
@keyframes rt-sparkle { 0% { opacity:0.5; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.6; transform:scale(0.9); } }

/* muriel-uneasy (tense sunlit) */
.scn-muriel-uneasy { background: linear-gradient(180deg, #4a6a8a 0%, #6a8aaa 40%, #8aaacc 100%), radial-gradient(ellipse at 20% 80%, #8aaacc 0%, transparent 70%); }
.scn-muriel-uneasy .sea-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(90deg, #2a5a7a 0%, #4a7a9a 50%, #2a5a7a 100%); animation: mu-sea 15s linear infinite alternate; }
.scn-muriel-uneasy .yacht-deck { position:absolute; bottom:20%; left:5%; width:90%; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:40% 40% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); }
.scn-muriel-uneasy .railing { position:absolute; bottom:35%; left:10%; width:80%; height:4px; background: #3a3a4a; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-muriel-uneasy .figure-muriel { position:absolute; bottom:22%; left:40%; width:18px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mu-unease 3s ease-in-out infinite; }
.scn-muriel-uneasy .shadow-sharp { position:absolute; bottom:20%; left:35%; width:30%; height:6%; background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(2px); animation: mu-shadow 3s ease-in-out infinite; }
.scn-muriel-uneasy .gull { position:absolute; top:10%; right:20%; width:20px; height:8px; background: #3a3a4a; border-radius:50% 50% 30% 30%; transform:rotate(-10deg); animation: mu-gull 15s linear infinite; }
.scn-muriel-uneasy .horizon-line { position:absolute; top:50%; left:0; right:0; height:1px; background: rgba(255,255,255,0.3); }
@keyframes mu-sea { 0% { background-position-x:0; } 100% { background-position-x:50px; } }
@keyframes mu-unease { 0% { transform:translateX(0) rotate(-3deg); } 25% { transform:translateX(2px) rotate(2deg); } 50% { transform:translateX(0) rotate(0); } 75% { transform:translateX(-2px) rotate(-2deg); } 100% { transform:translateX(0) rotate(3deg); } }
@keyframes mu-shadow { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(1px) scaleX(1.05); } 100% { transform:translateX(0) scaleX(1); } }
@keyframes mu-gull { 0% { transform:translateX(0) rotate(-10deg); } 100% { transform:translateX(-150px) rotate(-5deg); } }

/* tragedy-in-eyes (dark sunlit) */
.scn-tragedy-in-eyes { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #3e3e5e 100%), radial-gradient(ellipse at 50% 50%, #4e4e6e 0%, transparent 80%); }
.scn-tragedy-in-eyes .face-silhouette { position:absolute; bottom:20%; left:20%; width:60%; height:70%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius:50% 50% 45% 45% / 60% 60% 40% 40%; box-shadow: inset 0 20px 40px rgba(255,255,255,0.05); }
.scn-tragedy-in-eyes .eye-left { position:absolute; bottom:50%; left:30%; width:14%; height:10%; background: radial-gradient(circle, #fff 0%, #fff 20%, #2a2a3e 50%, transparent 100%); border-radius:50%; animation: te-eye 4s ease-in-out infinite; }
.scn-tragedy-in-eyes .eye-right { position:absolute; bottom:50%; right:30%; width:14%; height:10%; background: radial-gradient(circle, #fff 0%, #fff 20%, #2a2a3e 50%, transparent 100%); border-radius:50%; animation: te-eye 4s ease-in-out infinite 0.2s; }
.scn-tragedy-in-eyes .tear-left { position:absolute; bottom:45%; left:33%; width:4%; height:8%; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%); border-radius:50% 50% 20% 20%; animation: te-tear 3s ease-in-out infinite; }
.scn-tragedy-in-eyes .tear-right { position:absolute; bottom:47%; right:33%; width:4%; height:8%; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%); border-radius:50% 50% 20% 20%; animation: te-tear 3s ease-in-out infinite 0.5s; }
.scn-tragedy-in-eyes .shadow-deep { position:absolute; inset:0; background: rgba(0,0,0,0.4); mix-blend-mode: multiply; pointer-events: none; animation: te-shadow 8s ease-in-out infinite alternate; }
.scn-tragedy-in-eyes .light-ray { position:absolute; top:10%; left:40%; width:20%; height:2%; background: linear-gradient(90deg, transparent, rgba(255,255,200,0.3), transparent); transform:rotate(-20deg); filter: blur(4px); animation: te-ray 5s ease-in-out infinite alternate; }
@keyframes te-eye { 0% { transform:scaleY(0.8); } 25% { transform:scaleY(1) scaleX(0.9); } 50% { transform:scaleY(1.2) scaleX(0.8); } 75% { transform:scaleY(1) scaleX(1); } 100% { transform:scaleY(0.8); } }
@keyframes te-tear { 0% { transform:translateY(0) scaleY(1); opacity:0.8; } 50% { transform:translateY(20px) scaleY(1.5); opacity:0.3; } 100% { transform:translateY(0) scaleY(1); opacity:0.8; } }
@keyframes te-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes te-ray { 0% { opacity:0; transform:rotate(-20deg) translateX(-20px); } 50% { opacity:0.0; } 100% { opacity:0.4; transform:rotate(-20deg) translateX(20px); } }

.scn-fishermen-no-reward {
  background:
    linear-gradient(180deg, #87CEEB 0%, #f0c27a 50%, #f9d976 100%),
    radial-gradient(circle at 70% 20%, #fff7d0 0%, transparent 60%);
}
.scn-fishermen-no-reward .sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #b0e0ff 0%, #87CEEB 100%); animation: fnr-sky 14s ease-in-out infinite; }
.scn-fishermen-no-reward .sun { position:absolute; top:8%; left:70%; width:60px; height:60px; background:radial-gradient(circle, #ffe066 0%, #ffb300 100%); border-radius:50%; box-shadow:0 0 60px 20px rgba(255,179,0,0.6); animation: fnr-sun 6s ease-in-out infinite alternate; }
.scn-fishermen-no-reward .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #3a8fc1 0%, #2a6f9e 100%); border-radius:0 0 30% 30% / 0 0 10% 10%; animation: fnr-sea 8s ease-in-out infinite; }
.scn-fishermen-no-reward .boat { position:absolute; bottom:20%; left:30%; width:90px; height:35px; background:linear-gradient(90deg, #8b5e3c 0%, #6b3f1a 100%); border-radius:0 30% 30% 0 / 0 50% 50% 0; transform:rotate(-5deg); animation: fnr-boat 4s ease-in-out infinite; }
.scn-fishermen-no-reward .fisherman { position:absolute; bottom:22%; left:35%; width:20px; height:35px; background:linear-gradient(180deg, #d4a373 0%, #9c6644 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: fnr-fig 3s ease-in-out infinite; }
.scn-fishermen-no-reward .net { position:absolute; bottom:15%; left:40%; width:70px; height:15px; background:linear-gradient(90deg, rgba(200,180,140,0.7) 0%, rgba(180,160,120,0.7) 100%); border-radius:50%; filter:blur(2px); animation: fnr-net 5s ease-in-out infinite; }
.scn-fishermen-no-reward .fish { position:absolute; bottom:25%; left:55%; width:25px; height:10px; background:linear-gradient(90deg, #e0a832 0%, #b87c20 100%); border-radius:50% 50% 50% 50% / 50% 50% 50% 50%; animation: fnr-fish 2s ease-in-out infinite; }
.scn-fishermen-no-reward .cloud { position:absolute; top:12%; left:10%; width:90px; height:20px; background:linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter:blur(6px); animation: fnr-cloud 40s linear infinite; }
@keyframes fnr-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fnr-sun { 0% { transform:scale(0.95); box-shadow:0 0 40px 15px rgba(255,179,0,0.4) } 100% { transform:scale(1.05); box-shadow:0 0 80px 30px rgba(255,179,0,0.7) } }
@keyframes fnr-sea { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes fnr-boat { 0% { transform:rotate(-5deg) translateX(0) } 50% { transform:rotate(-3deg) translateX(10px) } 100% { transform:rotate(-5deg) translateX(0) } }
@keyframes fnr-fig { 0% { transform:rotate(-2deg) translateY(0) } 25% { transform:rotate(0deg) translateY(-2px) } 50% { transform:rotate(2deg) translateY(0) } 75% { transform:rotate(0deg) translateY(-2px) } 100% { transform:rotate(-2deg) translateY(0) } }
@keyframes fnr-net { 0% { transform:translateX(0) scaleY(1) } 50% { transform:translateX(15px) scaleY(0.8) } 100% { transform:translateX(0) scaleY(1) } }
@keyframes fnr-fish { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(8px) scale(1.2) } 100% { transform:translateX(0) scale(1) } }
@keyframes fnr-cloud { 0% { transform:translateX(-40px) } 100% { transform:translateX(110vw) } }

.scn-escape-frustrated {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 70%, #3a2a5a 100%),
    radial-gradient(ellipse at 50% 100%, #5a4a7e 0%, transparent 60%);
}
.scn-escape-frustrated .sky-dusk { position:absolute; inset:0; background:linear-gradient(180deg, #2a2a5e 0%, #1a1a3e 100%); animation: ef-sky 20s ease-in-out infinite; }
.scn-escape-frustrated .moon { position:absolute; top:8%; right:15%; width:35px; height:35px; background:radial-gradient(circle, #d0d0e0 0%, #a0a0b0 100%); border-radius:50%; box-shadow:0 0 40px 10px rgba(200,200,220,0.3); animation: ef-moon 12s ease-in-out infinite; }
.scn-escape-frustrated .sea-dark { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%); border-radius:0 0 20% 20% / 0 0 5% 5%; animation: ef-sea 10s ease-in-out infinite; }
.scn-escape-frustrated .ship-fugitive { position:absolute; bottom:15%; right:10%; width:120px; height:50px; background:linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:0 40% 20% 0 / 0 80% 50% 0; transform:rotate(3deg); animation: ef-ship 8s ease-in-out infinite; }
.scn-escape-frustrated .wave { position:absolute; bottom:20%; left:0; right:0; height:8%; background:linear-gradient(90deg, #3a6a8a 0%, #2a5a7a 100%); border-radius:50%; filter:blur(3px); animation: ef-wave 6s ease-in-out infinite; }
.scn-escape-frustrated .torpedo-boat { position:absolute; bottom:25%; left:5%; width:40px; height:15px; background:linear-gradient(90deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:50% 50% 50% 50% / 50% 50% 50% 50%; animation: ef-boat 5s ease-in-out infinite; }
.scn-escape-frustrated .smoke { position:absolute; top:25%; left:20%; width:25px; height:25px; background:radial-gradient(circle, rgba(200,200,200,0.4) 0%, transparent 100%); border-radius:50%; filter:blur(8px); animation: ef-smoke 7s ease-in-out infinite; }
@keyframes ef-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ef-moon { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-3px) scale(1.02) } 100% { transform:translateY(0) scale(1) } }
@keyframes ef-sea { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(0) } }
@keyframes ef-ship { 0% { transform:rotate(3deg) translateX(0) } 50% { transform:rotate(1deg) translateX(10px) } 100% { transform:rotate(3deg) translateX(0) } }
@keyframes ef-wave { 0% { transform:scaleY(1) translateX(0) } 50% { transform:scaleY(1.2) translateX(20px) } 100% { transform:scaleY(1) translateX(0) } }
@keyframes ef-boat { 0% { transform:translateX(0) } 50% { transform:translateX(15px) } 100% { transform:translateX(0) } }
@keyframes ef-smoke { 0% { opacity:0.3; transform:scale(1) } 50% { opacity:0.7; transform:scale(1.5) } 100% { opacity:0.3; transform:scale(1) } }

.scn-hutcheson-returns {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #4a4a5a 100%),
    radial-gradient(ellipse at 50% 40%, #5a5a6a 0%, transparent 70%);
}
.scn-hutcheson-returns .interior-wall { position:absolute; inset:0; background:linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); }
.scn-hutcheson-returns .window-dim { position:absolute; top:10%; left:10%; width:60px; height:80px; background:linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); border:3px solid #6a6a7a; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,0.5); animation: hr-window 15s ease-in-out infinite; }
.scn-hutcheson-returns .lamp { position:absolute; top:50%; left:50%; width:30px; height:40px; transform:translate(-50%,-50%); background:radial-gradient(circle, #d0b070 0%, #a08050 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 50px 20px rgba(200,180,120,0.4); animation: hr-lamp 4s ease-in-out infinite; }
.scn-hutcheson-returns .chair { position:absolute; bottom:15%; left:30%; width:40px; height:50px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; animation: hr-chair 10s ease-in-out infinite; }
.scn-hutcheson-returns .figure-seated { position:absolute; bottom:20%; left:32%; width:25px; height:40px; background:linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hr-fig 6s ease-in-out infinite; }
.scn-hutcheson-returns .safe { position:absolute; bottom:15%; right:15%; width:50px; height:60px; background:linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border:2px solid #8a8a9a; border-radius:4px; box-shadow:inset 0 0 15px rgba(0,0,0,0.5); animation: hr-safe 12s ease-in-out infinite; }
.scn-hutcheson-returns .papers { position:absolute; bottom:20%; right:18%; width:30px; height:20px; background:linear-gradient(180deg, #d0d0c0 0%, #b0b0a0 100%); border-radius:2px; transform:rotate(-10deg); box-shadow:2px 2px 4px rgba(0,0,0,0.3); animation: hr-papers 8s ease-in-out infinite; }
@keyframes hr-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hr-lamp { 0% { box-shadow:0 0 30px 10px rgba(200,180,120,0.3); } 50% { box-shadow:0 0 60px 25px rgba(200,180,120,0.6); } 100% { box-shadow:0 0 30px 10px rgba(200,180,120,0.3); } }
@keyframes hr-chair { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes hr-fig { 0% { transform:rotate(1deg) } 50% { transform:rotate(-1deg) } 100% { transform:rotate(1deg) } }
@keyframes hr-safe { 0% { transform:scale(1) } 50% { transform:scale(0.98) } 100% { transform:scale(1) } }
@keyframes hr-papers { 0% { transform:rotate(-10deg) translateX(0) } 50% { transform:rotate(-5deg) translateX(3px) } 100% { transform:rotate(-10deg) translateX(0) } }

.scn-blind-ashore-theory {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 70%);
}
.scn-blind-ashore-theory .interior-close { position:absolute; inset:0; background:linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-blind-ashore-theory .desk { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow:0 -4px 10px rgba(0,0,0,0.6); }
.scn-blind-ashore-theory .lamp-tense { position:absolute; top:40%; left:50%; width:25px; height:35px; transform:translate(-50%,-50%); background:radial-gradient(circle, #c08040 0%, #806030 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 40px 10px rgba(192,128,64,0.5); animation: bat-lamp 2s ease-in-out infinite alternate; }
.scn-blind-ashore-theory .figure-standing { position:absolute; bottom:25%; left:35%; width:22px; height:45px; background:linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: bat-fig 3s ease-in-out infinite; }
.scn-blind-ashore-theory .safe-open { position:absolute; bottom:15%; right:15%; width:45px; height:55px; background:linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border:2px solid #8a8a9a; border-radius:4px; box-shadow:inset 0 0 15px rgba(0,0,0,0.5); transform:rotate(2deg); animation: bat-safe 4s ease-in-out infinite; }
.scn-blind-ashore-theory .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); animation: bat-shadow 5s ease-in-out infinite; }
.scn-blind-ashore-theory .map { position:absolute; top:20%; left:10%; width:40px; height:30px; background:linear-gradient(180deg, #b0a080 0%, #908060 100%); border-radius:2px; transform:rotate(-8deg); box-shadow:2px 2px 6px rgba(0,0,0,0.4); animation: bat-map 7s ease-in-out infinite; }
@keyframes bat-lamp { 0% { box-shadow:0 0 30px 5px rgba(192,128,64,0.3); opacity:0.8 } 100% { box-shadow:0 0 60px 20px rgba(192,128,64,0.7); opacity:1 } }
@keyframes bat-fig { 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 bat-safe { 0% { transform:rotate(2deg) scale(1) } 50% { transform:rotate(0deg) scale(0.98) } 100% { transform:rotate(2deg) scale(1) } }
@keyframes bat-shadow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes bat-map { 0% { transform:rotate(-8deg) translateX(0) } 50% { transform:rotate(-4deg) translateX(5px) } 100% { transform:rotate(-8deg) translateX(0) } }

/* rescue-promise */
.scn-rescue-promise {
  background: linear-gradient(135deg, #1c1a2a 0%, #2a263a 50%, #1a1828 100%),
              radial-gradient(ellipse at 70% 80%, #3a324a 0%, transparent 60%);
}
.scn-rescue-promise .rp-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #2c2838 0%, #3c3648 50%, #2c2838 100%);
}
.scn-rescue-promise .rp-shadow {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 60%;
  background: linear-gradient(0deg, #0d0b15 0%, transparent 60%);
  animation: rp-shadow 6s ease-in-out infinite alternate;
}
.scn-rescue-promise .rp-fig-left {
  position: absolute;
  bottom: 20%; left: 20%;
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #2e2a3e 0%, #1a1628 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: rp-fig-left 4s ease-in-out infinite;
}
.scn-rescue-promise .rp-fig-right {
  position: absolute;
  bottom: 18%; right: 22%;
  width: 35px; height: 90px;
  background: linear-gradient(180deg, #3c344a 0%, #241e34 100%);
  border-radius: 30% 20% 20% 20% / 50% 40% 30% 30%;
  transform: rotate(3deg);
  animation: rp-fig-right 3.5s ease-in-out infinite alternate;
}
.scn-rescue-promise .rp-light {
  position: absolute;
  top: 10%; left: 40%;
  width: 60px; height: 120px;
  background: linear-gradient(180deg, rgba(180,140,100,0.15) 0%, transparent 100%);
  transform: skewX(-5deg);
  filter: blur(4px);
  animation: rp-light 8s ease-in-out infinite alternate;
}
.scn-rescue-promise .rp-chains {
  position: absolute;
  bottom: 32%; left: 35%;
  width: 8px; height: 40px;
  background: repeating-linear-gradient(0deg, #6a5a4a 0px, #6a5a4a 4px, #4a3a2a 4px, #4a3a2a 8px);
  box-shadow: 0 0 4px rgba(0,0,0,0.6);
  animation: rp-chains 2s ease-in-out infinite;
}
.scn-rescue-promise .rp-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 18%;
  background: linear-gradient(180deg, #2a2432 0%, #1a1620 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.8);
}
@keyframes rp-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes rp-fig-left {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-7deg) translateY(-3px); }
}
@keyframes rp-fig-right {
  0% { transform: rotate(3deg) translateY(0); }
  100% { transform: rotate(6deg) translateY(-2px); }
}
@keyframes rp-light {
  0% { opacity: 0.3; transform: skewX(-5deg) scaleY(0.9); }
  50% { opacity: 0.7; transform: skewX(-3deg) scaleY(1.1); }
  100% { opacity: 0.4; transform: skewX(-5deg) scaleY(0.95); }
}
@keyframes rp-chains {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(2px) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(1px) rotate(1deg); }
}

/* decision-to-free */
.scn-decision-to-free {
  background: linear-gradient(135deg, #2a2436 0%, #3c344c 50%, #1e1a2a 100%),
              radial-gradient(ellipse at 30% 70%, #4a405a 0%, transparent 60%);
}
.scn-decision-to-free .df-corner {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, #3a3244 0%, #2a2434 100%);
}
.scn-decision-to-free .df-table {
  position: absolute;
  bottom: 25%; left: 30%; right: 30%;
  height: 15%;
  background: linear-gradient(180deg, #4a3e52 0%, #2c2438 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: df-table 10s ease-in-out infinite alternate;
}
.scn-decision-to-free .df-nun {
  position: absolute;
  bottom: 18%; left: 20%;
  width: 40px; height: 90px;
  background: linear-gradient(180deg, #3c344a 0%, #221e30 100%);
  border-radius: 30% 20% 30% 20% / 60% 40% 40% 40%;
  transform: rotate(-10deg);
  animation: df-nun 5s ease-in-out infinite;
}
.scn-decision-to-free .df-elma {
  position: absolute;
  bottom: 16%; left: 45%;
  width: 40px; height: 85px;
  background: linear-gradient(180deg, #4a3e54 0%, #2a2236 100%);
  border-radius: 30% 30% 30% 20% / 60% 50% 40% 40%;
  transform: rotate(5deg);
  animation: df-elma 6s ease-in-out infinite alternate;
}
.scn-decision-to-free .df-speaker {
  position: absolute;
  bottom: 18%; right: 20%;
  width: 38px; height: 92px;
  background: linear-gradient(180deg, #2e283e 0%, #1c1628 100%);
  border-radius: 20% 30% 20% 20% / 50% 60% 30% 40%;
  transform: rotate(-5deg);
  animation: df-speaker 4.5s ease-in-out infinite;
}
.scn-decision-to-free .df-candle {
  position: absolute;
  bottom: 40%; left: 48%;
  width: 8px; height: 24px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px 2px rgba(200,170,100,0.3);
  animation: df-candle 3s ease-in-out infinite alternate;
}
.scn-decision-to-free .df-glow {
  position: absolute;
  bottom: 40%; left: 48%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(200,180,120,0.2) 0%, transparent 70%);
  transform: translate(-50%, 50%);
  animation: df-glow 3s ease-in-out infinite alternate;
}
@keyframes df-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(2px); }
}
@keyframes df-nun {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
}
@keyframes df-elma {
  0% { transform: rotate(5deg) translateY(0); }
  100% { transform: rotate(8deg) translateY(-1px); }
}
@keyframes df-speaker {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes df-candle {
  0% { height: 24px; opacity: 0.8; }
  50% { height: 26px; opacity: 1; }
  100% { height: 22px; opacity: 0.9; }
}
@keyframes df-glow {
  0% { transform: translate(-50%, 50%) scale(1); opacity: 0.5; }
  50% { transform: translate(-50%, 50%) scale(1.2); opacity: 0.8; }
  100% { transform: translate(-50%, 50%) scale(0.9); opacity: 0.6; }
}

/* dash-for-freedom */
.scn-dash-for-freedom {
  background: linear-gradient(180deg, #1a1628 0%, #2c2438 50%, #1a1628 100%),
              radial-gradient(ellipse at 50% 100%, #3c3448 0%, transparent 70%);
}
.scn-dash-for-freedom .df-hall-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #2a2436 0%, #3c3446 50%, #2a2436 100%);
}
.scn-dash-for-freedom .df-tiles {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 20%;
  background: repeating-linear-gradient(90deg, #3c3444 0px, #3c3444 20px, #2c2838 20px, #2c2838 40px);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.7);
  animation: df-tiles 8s linear infinite;
}
.scn-dash-for-freedom .df-door {
  position: absolute;
  bottom: 20%; left: 10%; right: 60%;
  height: 60%;
  background: linear-gradient(180deg, #4a3e52 0%, #2a2434 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-dash-for-freedom .df-sister {
  position: absolute;
  bottom: 16%; left: 12%;
  width: 36px; height: 80px;
  background: linear-gradient(180deg, #3c344a 0%, #241e32 100%);
  border-radius: 30% 20% 20% 20% / 50% 40% 30% 30%;
  transform: rotate(8deg);
  animation: df-sister 4s ease-in-out infinite alternate;
}
.scn-dash-for-freedom .df-elma-lead {
  position: absolute;
  bottom: 18%; right: 30%;
  width: 34px; height: 80px;
  background: linear-gradient(180deg, #4a3e54 0%, #2a2236 100%);
  border-radius: 30% 30% 20% 20% / 60% 50% 30% 30%;
  transform: rotate(-8deg);
  animation: df-elma-lead 3s ease-in-out infinite;
}
.scn-dash-for-freedom .df-speaker-lead {
  position: absolute;
  bottom: 20%; right: 50%;
  width: 36px; height: 85px;
  background: linear-gradient(180deg, #2e283e 0%, #1a1628 100%);
  border-radius: 20% 30% 20% 20% / 50% 60% 30% 40%;
  transform: rotate(5deg);
  animation: df-speaker-lead 2.5s ease-in-out infinite alternate;
}
.scn-dash-for-freedom .df-torch {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 10px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 20% 30% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(160,120,80,0.4);
  animation: df-torch 1.5s ease-in-out infinite alternate;
}
@keyframes df-tiles {
  0% { background-position-x: 0; }
  100% { background-position-x: 40px; }
}
@keyframes df-sister {
  0% { transform: rotate(8deg) translateY(0); }
  100% { transform: rotate(10deg) translateY(-3px); }
}
@keyframes df-elma-lead {
  0%, 100% { transform: rotate(-8deg) translateX(0); }
  50% { transform: rotate(-10deg) translateX(-5px); }
}
@keyframes df-speaker-lead {
  0% { transform: rotate(5deg) translateX(0); }
  100% { transform: rotate(3deg) translateX(4px); }
}
@keyframes df-torch {
  0% { opacity: 0.7; transform: scaleY(1) rotate(0deg); }
  50% { opacity: 1; transform: scaleY(1.1) rotate(5deg); }
  100% { opacity: 0.8; transform: scaleY(0.95) rotate(-3deg); }
}

/* sentry-halt */
.scn-sentry-halt {
  background: linear-gradient(135deg, #1a1a2e 0%, #2c2a42 50%, #14122a 100%),
              radial-gradient(ellipse at 60% 40%, #3a3652 0%, transparent 60%);
}
.scn-sentry-halt .sh-vault {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2a283e 0%, #1c1a2e 100%);
}
.scn-sentry-halt .sh-door {
  position: absolute;
  bottom: 20%; left: 60%; right: 10%;
  height: 60%;
  background: linear-gradient(180deg, #4a3e4e 0%, #2a2436 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.9);
  animation: sh-door 12s ease-in-out infinite alternate;
}
.scn-sentry-halt .sh-sentry {
  position: absolute;
  bottom: 15%; left: 35%;
  width: 50px; height: 110px;
  background: linear-gradient(180deg, #3c364a 0%, #1e1a2c 100%);
  border-radius: 25% 25% 20% 20% / 45% 45% 30% 30%;
  transform: rotate(-3deg);
  animation: sh-sentry 5s ease-in-out infinite;
}
.scn-sentry-halt .sh-gun {
  position: absolute;
  bottom: 40%; left: 30%;
  width: 50px; height: 6px;
  background: linear-gradient(90deg, #4a3e4a 0%, #2a2434 100%);
  border-radius: 20%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: sh-gun 0.8s ease-in-out infinite alternate;
}
.scn-sentry-halt .sh-fig-left {
  position: absolute;
  bottom: 18%; left: 15%;
  width: 32px; height: 85px;
  background: linear-gradient(180deg, #2e283e 0%, #1a1628 100%);
  border-radius: 20% 30% 20% 20% / 50% 60% 30% 40%;
  transform: rotate(-7deg);
  animation: sh-fig-left 4s ease-in-out infinite alternate;
}
.scn-sentry-halt .sh-fig-right {
  position: absolute;
  bottom: 20%; right: 20%;
  width: 34px; height: 88px;
  background: linear-gradient(180deg, #2c263a 0%, #181428 100%);
  border-radius: 30% 20% 20% 20% / 50% 40% 30% 30%;
  transform: rotate(8deg);
  animation: sh-fig-right 3.5s ease-in-out infinite;
}
.scn-sentry-halt .sh-lamp {
  position: absolute;
  top: 10%; left: 45%;
  width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #a08060 0%, transparent 70%);
  box-shadow: 0 0 30px 10px rgba(160,128,96,0.3);
  animation: sh-lamp 4s ease-in-out infinite alternate;
}
@keyframes sh-door {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(2px); }
}
@keyframes sh-sentry {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
}
@keyframes sh-gun {
  0% { transform: rotate(-15deg) translateX(0); }
  100% { transform: rotate(-12deg) translateX(3px); }
}
@keyframes sh-fig-left {
  0% { transform: rotate(-7deg) translateY(0); }
  100% { transform: rotate(-10deg) translateY(-2px); }
}
@keyframes sh-fig-right {
  0%, 100% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(6deg) translateY(3px); }
}
@keyframes sh-lamp {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}

.scn-durnford-love-muriel { background: linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3a2418 70%, #1a1410 100%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 60%); }
.scn-durnford-love-muriel .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0d0a07 100%); }
.scn-durnford-love-muriel .bg-mid { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a1a0f 0%, #1a0f08 100%); border-radius: 20% 20% 0 0; }
.scn-durnford-love-muriel .fireplace-glow { position:absolute; bottom:15%; left:35%; width:30%; height:35%; background: radial-gradient(ellipse at 50% 100%, #c07030 0%, #8a4a20 40%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: dlf-glow 3s ease-in-out infinite alternate; }
.scn-durnford-love-muriel .mantle { position:absolute; bottom:38%; left:30%; width:40%; height:6%; background: linear-gradient(180deg, #4a2a18 0%, #2a1a0e 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-durnford-love-muriel .figure-left { position:absolute; bottom:18%; left:22%; width:16%; height:40%; background: linear-gradient(180deg, #1a120e 0%, #0d0a07 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dlf-figure1 6s ease-in-out infinite; }
.scn-durnford-love-muriel .figure-right { position:absolute; bottom:18%; right:20%; width:18%; height:45%; background: linear-gradient(180deg, #1a120e 0%, #0d0a07 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dlf-figure2 8s ease-in-out infinite; }
.scn-durnford-love-muriel .flame { position:absolute; bottom:40%; left:48%; width:4%; height:8%; background: radial-gradient(ellipse at 50% 100%, #f0a030 0%, #c06020 50%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: dlf-flame 1.5s ease-in-out infinite alternate; }
@keyframes dlf-glow { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .8; transform: scale(.98); } }
@keyframes dlf-figure1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2%) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dlf-figure2 { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(1%) rotate(1deg); } 66% { transform: translateX(-1%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dlf-flame { 0% { height: 8%; opacity: .9; } 50% { height: 12%; opacity: 1; } 100% { height: 6%; opacity: .8; } }

.scn-olinto-fate { background: linear-gradient(180deg, #0e0a14 0%, #1a1220 40%, #2a1a30 70%, #0e0a14 100%), radial-gradient(ellipse at 50% 70%, #2a1a30 0%, transparent 60%); }
.scn-olinto-fate .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #08060b 100%); }
.scn-olinto-fate .body { position:absolute; bottom:10%; left:30%; width:25%; height:20%; background: linear-gradient(180deg, #3a2a3e 0%, #1a121e 100%); border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%; transform: rotate(-10deg); animation: olt-body 15s ease-in-out infinite; }
.scn-olinto-fate .figure { position:absolute; bottom:18%; left:55%; width:18%; height:45%; background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: olt-figure 4s ease-in-out infinite; }
.scn-olinto-fate .lamp { position:absolute; bottom:40%; left:45%; width:8%; height:12%; background: radial-gradient(circle at 50% 30%, #f0c060 0%, #b08030 60%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 30px 10px #b08030; animation: olt-lamp 2s ease-in-out infinite alternate; }
.scn-olinto-fate .shadow { position:absolute; bottom:5%; left:40%; width:30%; height:15%; background: radial-gradient(ellipse at 50% 0%, #0e0a14 0%, transparent 70%); animation: olt-shadow 6s ease-in-out infinite; }
@keyframes olt-body { 0% { opacity: .9; transform: rotate(-10deg) translateY(0); } 50% { opacity: .7; transform: rotate(-12deg) translateY(1px); } 100% { opacity: .9; transform: rotate(-10deg) translateY(0); } }
@keyframes olt-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3%) rotate(3deg); } 60% { transform: translateX(-2%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes olt-lamp { 0% { box-shadow: 0 0 20px 5px #b08030; opacity: .8; } 50% { box-shadow: 0 0 40px 15px #f0c060; opacity: 1; } 100% { box-shadow: 0 0 25px 8px #b08030; opacity: .85; } }
@keyframes olt-shadow { 0% { opacity: .6; transform: scaleX(1); } 50% { opacity: .4; transform: scaleX(1.1); } 100% { opacity: .6; transform: scaleX(1); } }

.scn-secret-engagement { background: linear-gradient(180deg, #140e0c 0%, #241a14 35%, #342018 70%, #140e0c 100%), radial-gradient(ellipse at 50% 60%, #3a2418 0%, transparent 60%); }
.scn-secret-engagement .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0806 100%); }
.scn-secret-engagement .figure-left { position:absolute; bottom:18%; left:12%; width:20%; height:50%; background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: se-figure1 3s ease-in-out infinite; }
.scn-secret-engagement .figure-right { position:absolute; bottom:20%; right:15%; width:18%; height:45%; background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: se-figure2 3.5s ease-in-out infinite; }
.scn-secret-engagement .table { position:absolute; bottom:15%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #3a2a1e 0%, #1a120e 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.7); }
.scn-secret-engagement .lamp { position:absolute; bottom:35%; left:46%; width:8%; height:14%; background: radial-gradient(circle at 50% 30%, #f0a060 0%, #b06030 60%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 35px 12px #b06030; animation: se-lamp 1s ease-in-out infinite alternate; }
.scn-secret-engagement .hand { position:absolute; bottom:30%; left:30%; width:6%; height:10%; background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(20deg); animation: se-hand 2.5s ease-in-out infinite; }
@keyframes se-figure1 { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(5%) rotate(5deg); } 40% { transform: translateX(-3%) rotate(-3deg); } 60% { transform: translateX(2%) rotate(2deg); } 80% { transform: translateX(-5%) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes se-figure2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4%) rotate(-4deg); } 50% { transform: translateX(2%) rotate(2deg); } 75% { transform: translateX(-1%) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes se-lamp { 0% { box-shadow: 0 0 25px 8px #b06030; opacity: .7; } 50% { box-shadow: 0 0 50px 20px #f0a060; opacity: 1; } 100% { box-shadow: 0 0 30px 10px #b06030; opacity: .8; } }
@keyframes se-hand { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } 100% { transform: rotate(20deg) scale(1); } }

.scn-hope-vs-reality { background: linear-gradient(180deg, #121012 0%, #1e1a1e 35%, #2a2228 70%, #121012 100%), radial-gradient(ellipse at 50% 70%, #2a2228 0%, transparent 60%); }
.scn-hope-vs-reality .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a080a 100%); }
.scn-hope-vs-reality .window { position:absolute; top:10%; left:15%; width:30%; height:40%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border: 6px solid #1a141a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: hvr-curtain 20s ease-in-out infinite; }
.scn-hope-vs-reality .desk { position:absolute; bottom:10%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #3a2a2e 0%, #1a1216 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-hope-vs-reality .figure-seated { position:absolute; bottom:22%; left:30%; width:20%; height:35%; background: linear-gradient(180deg, #1a1618 0%, #0e0c0e 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hvr-figure 5s ease-in-out infinite; }
.scn-hope-vs-reality .letter { position:absolute; bottom:30%; left:45%; width:12%; height:10%; background: linear-gradient(135deg, #e8dcc8 0%, #c4b49c 100%); border-radius: 2px; transform: rotate(5deg); animation: hvr-paper 8s ease-in-out infinite; }
.scn-hope-vs-reality .shadow { position:absolute; bottom:5%; left:25%; width:50%; height:20%; background: radial-gradient(ellipse at 50% 0%, #0e0c0e 0%, transparent 70%); animation: hvr-shadow 12s ease-in-out infinite; }
@keyframes hvr-curtain { 0% { border-left-width: 6px; } 50% { border-left-width: 10px; } 100% { border-left-width: 6px; } }
@keyframes hvr-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2%) rotate(1deg); } 60% { transform: translateX(-2%) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hvr-paper { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes hvr-shadow { 0% { opacity: .6; transform: scaleX(1); } 50% { opacity: .4; transform: scaleX(1.2); } 100% { opacity: .6; transform: scaleX(1); } }

/* scene: elma-gone (dark, dim interior) */
.scn-elma-gone {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1f18 30%, #1e1510 70%, #0d0805 100%),
    radial-gradient(ellipse at 30% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-elma-gone .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1f18 0%, #1a1410 100%); }
.scn-elma-gone .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #1a1410 0%, #251b14 100%); border-top:2px solid #3a2a1a; }
.scn-elma-gone .door { position:absolute; bottom:20%; left:25%; width:60px; height:110px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.5); }
.scn-elma-gone .window-pane { position:absolute; bottom:55%; left:55%; width:40px; height:50px; background: radial-gradient(circle at 50% 60%, #2a3a4a 0%, #1a1a2a 80%); border:3px solid #3a2a1a; border-radius:2px; box-shadow:0 0 15px rgba(58,42,26,.3); }
.scn-elma-gone .bed { position:absolute; bottom:10%; left:20%; width:80px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1f18 100%); border-radius:8px; box-shadow:inset 0 -4px 8px rgba(0,0,0,.4); }
.scn-elma-gone .figure-ghost { position:absolute; bottom:18%; right:30%; width:20px; height:60px; background: linear-gradient(180deg, rgba(200,180,160,.4) 0%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter:blur(2px); animation: eg-ghost 6s ease-in-out infinite alternate; }
.scn-elma-gone .candle { position:absolute; bottom:35%; left:10%; width:6px; height:20px; background: linear-gradient(0deg, #4a3a2a 0%, #7a5a3a 80%); border-radius:50% 50% 10% 10%; }
.scn-elma-gone .candle::after { content:''; position:absolute; top:-8px; left:50%; width:8px; height:10px; background: radial-gradient(circle, #ffaa40 0%, #b06020 70%); border-radius:50%; transform:translateX(-50%); box-shadow:0 0 20px #ffaa40; animation: eg-candle 3s ease-in-out infinite alternate; }
.scn-elma-gone .shadow-crawl { position:absolute; bottom:5%; left:0; right:0; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 100%); animation: eg-shadow 10s ease-in-out infinite; }

@keyframes eg-ghost { 0% { transform: translateY(0) scaleY(1); opacity:.6; } 50% { transform: translateY(-10px) scaleY(.9); opacity:.4; } 100% { transform: translateY(5px) scaleY(1.1); opacity:.7; } }
@keyframes eg-candle { 0% { transform: translateX(-50%) scale(1); opacity:.9; } 50% { transform: translateX(-50%) scale(1.2); opacity:1; } 100% { transform: translateX(-50%) scale(.9); opacity:.8; } }
@keyframes eg-shadow { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.2); opacity:.7; } 100% { transform: scaleX(.9); opacity:.4; } }

/* scene: police-search (tense, dim interior) */
.scn-police-search {
  background:
    linear-gradient(180deg, #1f1a15 0%, #2a221c 30%, #1a1510 70%, #0f0b08 100%),
    radial-gradient(ellipse at 70% 50%, #3a2e20 0%, transparent 60%);
}
.scn-police-search .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a221c 0%, #1f1a15 100%); }
.scn-police-search .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1510 0%, #241e18 100%); border-top:2px solid #3a2e20; }
.scn-police-search .door-shattered { position:absolute; bottom:20%; left:15%; width:70px; height:120px; background: linear-gradient(90deg, #3a2a1a 0%, #2a1f18 50%, #3a2a1a 100%); border-radius:4px; box-shadow:inset 0 0 15px rgba(0,0,0,.4); transform:rotate(-2deg); }
.scn-police-search .policeman-a { position:absolute; bottom:25%; left:30%; width:30px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; animation: ps-walk-a 4s ease-in-out infinite; }
.scn-police-search .policeman-b { position:absolute; bottom:25%; right:25%; width:30px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; animation: ps-walk-b 4.5s ease-in-out infinite; }
.scn-police-search .table { position:absolute; bottom:20%; left:50%; width:90px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1f18 100%); border-radius:4px; box-shadow:0 4px 10px rgba(0,0,0,.5); }
.scn-police-search .lantern-glow { position:absolute; bottom:45%; left:10%; width:20px; height:30px; background: radial-gradient(circle, #d08840 0%, #a06020 70%); border-radius:50%; box-shadow:0 0 30px 8px #d08840, 0 0 60px 15px rgba(208,136,64,.3); animation: ps-lantern 2s ease-in-out infinite alternate; }
.scn-police-search .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 20% 30%, rgba(200,180,140,.15) 0%, transparent 30%), radial-gradient(circle at 80% 60%, rgba(200,180,140,.1) 0%, transparent 25%); animation: ps-dust 15s ease-in-out infinite; }

@keyframes ps-walk-a { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes ps-walk-b { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-6px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(-12px) translateY(0) rotate(1deg); } 75% { transform: translateX(-18px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(-24px) translateY(0) rotate(0); } }
@keyframes ps-lantern { 0% { box-shadow:0 0 20px 5px #d08840, 0 0 40px 10px rgba(208,136,64,.2); opacity:.9; } 50% { box-shadow:0 0 40px 10px #e0a050, 0 0 80px 20px rgba(208,136,64,.4); opacity:1; } 100% { box-shadow:0 0 25px 6px #d08840, 0 0 50px 12px rgba(208,136,64,.25); opacity:.85; } }
@keyframes ps-dust { 0% { background-position:0% 0%; } 50% { background-position:20% 10%; } 100% { background-position:0% 0%; } }

/* scene: arrest-threat (tense, dim interior) */
.scn-arrest-threat {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a2015 35%, #1e1510 70%, #0d0805 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-arrest-threat .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2015 0%, #1a1410 100%); }
.scn-arrest-threat .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #1a1410 0%, #241c14 100%); border-top:2px solid #3a2a1a; }
.scn-arrest-threat .narrator-silhouette { position:absolute; bottom:20%; left:35%; width:35px; 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: at-figure 3s ease-in-out infinite; }
.scn-arrest-threat .woodcutter-silhouette { position:absolute; bottom:20%; right:25%; width:40px; height:80px; background: linear-gradient(180deg, #2a1f18 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 50% 50% 35% 35%; animation: at-figure 3.5s ease-in-out infinite; }
.scn-arrest-threat .table { position:absolute; bottom:15%; left:50%; width:100px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1f18 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.4); }
.scn-arrest-threat .candle-flare { position:absolute; bottom:55%; left:45%; width:12px; height:20px; background: radial-gradient(circle, #ffbb60 0%, #b07030 70%); border-radius:50%; box-shadow:0 0 40px 10px #ffbb60, 0 0 80px 20px rgba(255,187,96,.3); animation: at-flare 2.5s ease-in-out infinite alternate; }
.scn-arrest-threat .shadow-arms { position:absolute; bottom:18%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 40% 50%, rgba(0,0,0,.5) 0%, transparent 60%); animation: at-arms 4s ease-in-out infinite alternate; }

@keyframes at-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes at-flare { 0% { box-shadow:0 0 30px 8px #ffbb60, 0 0 60px 15px rgba(255,187,96,.2); opacity:.9; } 50% { box-shadow:0 0 50px 12px #ffcc70, 0 0 100px 25px rgba(255,187,96,.4); opacity:1; } 100% { box-shadow:0 0 35px 10px #ffbb60, 0 0 70px 18px rgba(255,187,96,.25); opacity:.85; } }
@keyframes at-arms { 0% { transform: scaleY(1) scaleX(1); opacity:.6; } 50% { transform: scaleY(1.1) scaleX(1.05); opacity:.8; } 100% { transform: scaleY(1) scaleX(1); opacity:.6; } }

/* scene: passport-shown (tense, dim interior) */
.scn-passport-shown {
  background:
    linear-gradient(180deg, #1e1a15 0%, #2a221c 30%, #1a1510 70%, #0f0b08 100%),
    radial-gradient(ellipse at 80% 40%, #3a2e20 0%, transparent 60%);
}
.scn-passport-shown .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a221c 0%, #1e1a15 100%); }
.scn-passport-shown .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #1a1510 0%, #241e18 100%); border-top:2px solid #3a2e20; }
.scn-passport-shown .desk { position:absolute; bottom:20%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f18 100%); border-radius:4px; box-shadow:0 4px 10px rgba(0,0,0,.5); }
.scn-passport-shown .hand-passport { position:absolute; bottom:45%; left:40%; width:50px; height:30px; background: linear-gradient(135deg, #7a6a4a 0%, #5a4a3a 100%); border-radius:4px; box-shadow:0 2px 8px rgba(0,0,0,.4); transform-origin:50% 100%; animation: psh-hand 5s ease-in-out infinite; }
.scn-passport-shown .hand-passport::before { content:''; position:absolute; top:-15px; left:10px; width:12px; height:18px; background: linear-gradient(180deg, #c8b090 0%, #a08070 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 2px 4px rgba(0,0,0,.3); }
.scn-passport-shown .figure-profile { position:absolute; bottom:15%; left:20%; width:30px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 35% 35%; animation: psh-profile 4s ease-in-out infinite alternate; }
.scn-passport-shown .lamp { position:absolute; bottom:60%; right:10%; width:25px; height:35px; background: radial-gradient(circle, #d08840 0%, #a06020 70%); border-radius:50%; box-shadow:0 0 25px 6px #d08840, 0 0 50px 12px rgba(208,136,64,.3); animation: psh-lamp 3s ease-in-out infinite alternate; }
.scn-passport-shown .ink-bottle { position:absolute; bottom:20%; left:15%; width:12px; height:20px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; }
.scn-passport-shown .paper-shadows { position:absolute; bottom:10%; left:0; right:0; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 80%); animation: psh-paper 8s ease-in-out infinite; }

@keyframes psh-hand { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-5px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes psh-profile { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes psh-lamp { 0% { box-shadow:0 0 15px 4px #d08840, 0 0 30px 8px rgba(208,136,64,.2); opacity:.9; } 50% { box-shadow:0 0 35px 10px #e0a050, 0 0 70px 18px rgba(208,136,64,.4); opacity:1; } 100% { box-shadow:0 0 20px 5px #d08840, 0 0 40px 10px rgba(208,136,64,.25); opacity:.85; } }
@keyframes psh-paper { 0% { transform: scaleY(1); opacity:.5; } 50% { transform: scaleY(1.1); opacity:.7; } 100% { transform: scaleY(1); opacity:.5; } }

.scn-mackenzie-chater {
  background: 
    linear-gradient(180deg, #3a3a5c 0%, #2c2c4a 40%, #1e1e36 100%),
    radial-gradient(ellipse at 30% 60%, #4a4060 0%, transparent 70%);
}
.scn-mackenzie-chater .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #5a506a 0%, #3a3050 100%); animation: mc-wall 10s ease-in-out infinite alternate; }
.scn-mackenzie-chater .desk { position:absolute; bottom:10%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-mackenzie-chater .lamp { position:absolute; bottom:28%; left:35%; width:8px; height:40px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 20% 20% 0 0; transform: rotate(10deg); }
.scn-mackenzie-chater .lamp::after { content:""; position:absolute; top:-8px; left:-10px; width:28px; height:18px; background: radial-gradient(circle, #e8c060 0%, #c09030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px #c09030; animation: mc-lamp 2s ease-in-out infinite alternate; }
.scn-mackenzie-chater .glow-spot { position:absolute; bottom:30%; left:35%; width:60px; height:50px; background: radial-gradient(circle, rgba(232,192,96,0.4) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: mc-glow 1.5s ease-in-out infinite alternate; }
.scn-mackenzie-chater .figure { position:absolute; bottom:12%; width:24px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-mackenzie-chater .silhouette-a { left:28%; animation: mc-fig-a 6s ease-in-out infinite; }
.scn-mackenzie-chater .silhouette-b { right:28%; animation: mc-fig-b 7s ease-in-out infinite; }
.scn-mackenzie-chater .shadow-pool { position:absolute; bottom:0; left:20%; width:60%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); filter: blur(4px); animation: mc-shadow 4s ease-in-out infinite alternate; }
@keyframes mc-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mc-lamp { 0% { box-shadow:0 0 15px 4px #c09030; opacity:.9 } 50% { box-shadow:0 0 25px 8px #e8c060; opacity:1 } 100% { box-shadow:0 0 20px 5px #c09030; opacity:.95 } }
@keyframes mc-glow { 0% { transform:scale(1); opacity:.6 } 50% { transform:scale(1.1); opacity:.8 } 100% { transform:scale(1); opacity:.7 } }
@keyframes mc-fig-a { 0% { transform:translateY(0) rotate(-2deg) } 25% { transform:translateY(-3px) rotate(1deg) } 50% { transform:translateY(0) rotate(2deg) } 75% { transform:translateY(-2px) rotate(-1deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes mc-fig-b { 0% { transform:translateY(0) rotate(2deg) } 25% { transform:translateY(-4px) rotate(-1deg) } 50% { transform:translateY(0) rotate(-2deg) } 75% { transform:translateY(-3px) rotate(1deg) } 100% { transform:translateY(0) rotate(2deg) } }
@keyframes mc-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-mystery-compounds {
  background: 
    linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 40%, #1a2a2a 100%),
    radial-gradient(ellipse at 70% 40%, #4a5a4a 0%, transparent 60%);
}
.scn-mystery-compounds .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 8px, #3a2a1a 8px, #3a2a1a 16px); animation: myc-floor 20s linear infinite; }
.scn-mystery-compounds .cabinet { position:absolute; left:10%; bottom:30%; width:20%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:4%; box-shadow: 4px 0 10px rgba(0,0,0,.5); }
.scn-mystery-compounds .map-wall { position:absolute; top:5%; left:35%; width:30%; height:40%; background: linear-gradient(135deg, #b0a090 0%, #8a7a6a 50%, #6a5a4a 100%); border:2px solid #4a3a2a; border-radius:2%; overflow:hidden; animation: myc-map 12s ease-in-out infinite alternate; }
.scn-mystery-compounds .table { position:absolute; bottom:30%; left:40%; width:30%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:4%; box-shadow:0 -4px 8px rgba(0,0,0,.6); }
.scn-mystery-compounds .magnifier { position:absolute; bottom:38%; left:48%; width:16px; height:26px; background: radial-gradient(circle, #c0b0a0 0%, #8a7a6a 60%); border-radius:50% 50% 20% 20%; transform: rotate(-30deg); animation: myc-magnify 4s ease-in-out infinite; }
.scn-mystery-compounds .form-outline { position:absolute; bottom:10%; left:50%; width:40px; height:80px; background: linear-gradient(180deg, rgba(80,60,50,0.6) 0%, rgba(30,20,10,0.6) 100%); border-radius:30% 30% 10% 10%; border:2px dashed #8a7a6a; opacity:.5; animation: myc-form 8s ease-in-out infinite alternate; }
.scn-mystery-compounds .figure-detective { position:absolute; bottom:18%; right:15%; width:20px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: myc-detective 5s ease-in-out infinite; }
@keyframes myc-floor { 0% { background-position:0 0 } 100% { background-position:-16px 0 } }
@keyframes myc-map { 0% { filter:hue-rotate(0deg) brightness(1); } 50% { filter:hue-rotate(5deg) brightness(1.05); } 100% { filter:hue-rotate(0deg) brightness(1); } }
@keyframes myc-magnify { 0% { transform:rotate(-30deg) translateY(0) } 25% { transform:rotate(-20deg) translateY(2px) } 50% { transform:rotate(-30deg) translateY(0) } 75% { transform:rotate(-40deg) translateY(-2px) } 100% { transform:rotate(-30deg) translateY(0) } }
@keyframes myc-form { 0% { opacity:.3; transform:scaleY(1) } 50% { opacity:.5; transform:scaleY(1.02) } 100% { opacity:.3; transform:scaleY(1) } }
@keyframes myc-detective { 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) } }

.scn-olinto-ignorant {
  background: 
    linear-gradient(180deg, #5a4a42 0%, #3a2a22 40%, #1a0a02 100%),
    radial-gradient(ellipse at 50% 30%, #6a4a3a 0%, transparent 70%);
}
.scn-olinto-ignorant .bg-room { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a32 0%, #2a1a12 100%); animation: oi-bg 15s ease-in-out infinite alternate; }
.scn-olinto-ignorant .chair { position:absolute; bottom:20%; left:15%; width:40%; height:40%; background: linear-gradient(180deg, #3a2a22 0%, #1a0a02 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: -4px 0 12px rgba(0,0,0,.5); }
.scn-olinto-ignorant .figure-seated { position:absolute; bottom:25%; left:25%; width:28px; height:55px; background: linear-gradient(180deg, #2a1a12 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: oi-seated 8s ease-in-out infinite; }
.scn-olinto-ignorant .shadow-door { position:absolute; right:5%; bottom:0; width:25%; height:80%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.8) 100%); border-radius:4% 0 0 10%; filter: blur(6px); animation: oi-door 12s ease-in-out infinite alternate; }
.scn-olinto-ignorant .light-shaft { position:absolute; top:0; left:40%; width:20%; height:80%; background: linear-gradient(180deg, rgba(200,180,160,0.15) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: oi-shaft 6s ease-in-out infinite alternate; }
.scn-olinto-ignorant .dust-motes { position:absolute; top:20%; left:30%; width:40px; height:60px; background: radial-gradient(circle at 20% 30%, rgba(200,180,160,0.3) 0%, transparent 100%); filter: blur(10px); animation: oi-motes 4s linear infinite; }
@keyframes oi-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes oi-seated { 0% { transform:translateY(0) rotate(2deg) } 33% { transform:translateY(-2px) rotate(-1deg) } 66% { transform:translateY(1px) rotate(1deg) } 100% { transform:translateY(0) rotate(2deg) } }
@keyframes oi-door { 0% { opacity:.6; filter:blur(6px) } 50% { opacity:.8; filter:blur(4px) } 100% { opacity:.6; filter:blur(6px) } }
@keyframes oi-shaft { 0% { opacity:.3; transform:skewX(-2deg) } 50% { opacity:.5; transform:skewX(0deg) } 100% { opacity:.3; transform:skewX(2deg) } }
@keyframes oi-motes { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-10px) scale(1.2) } 100% { transform:translateY(0) scale(1) } }

.scn-chater-silent {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 40%, #050510 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 70%);
}
.scn-chater-silent .wall-panel { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-bottom: 2px solid #3a3a4a; animation: cs-panel 20s ease-in-out infinite alternate; }
.scn-chater-silent .fireplace { position:absolute; bottom:15%; left:20%; width:30%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.8); }
.scn-chater-silent .fire-glow { position:absolute; bottom:20%; left:25%; width:20%; height:30%; background: radial-gradient(circle, #e05020 0%, #b03010 40%, transparent 100%); border-radius:50%; filter: blur(6px); animation: cs-fire 3s ease-in-out infinite alternate; }
.scn-chater-silent .armchair { position:absolute; bottom:12%; right:20%; width:25%; height:35%; background: linear-gradient(135deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.7); }
.scn-chater-silent .smoke-wisp { position:absolute; bottom:55%; left:30%; width:12px; height:40px; background: linear-gradient(180deg, rgba(180,180,200,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: cs-smoke 8s ease-in-out infinite; }
.scn-chater-silent .silhouette-smoker { position:absolute; bottom:18%; right:25%; width:18px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #050510 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cs-smoker 6s ease-in-out infinite; }
.scn-chater-silent .window-rain { position:absolute; top:5%; left:5%; width:20%; height:40%; background: linear-gradient(180deg, rgba(100,120,140,0.2) 0%, rgba(80,100,120,0.1) 100%); border-radius:4%; border:2px solid #3a3a4a; overflow:hidden; }
.scn-chater-silent .window-rain::before { content:""; position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0px, transparent 4px, rgba(180,200,220,0.15) 4px, rgba(180,200,220,0.15) 6px); animation: cs-rain 1s linear infinite; }
@keyframes cs-panel { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cs-fire { 0% { transform:scale(1) rotate(-2deg); box-shadow:0 0 20px 8px #b03010 } 50% { transform:scale(1.05) rotate(0deg); box-shadow:0 0 30px 12px #e05020 } 100% { transform:scale(1) rotate(2deg); box-shadow:0 0 25px 10px #c04015 } }
@keyframes cs-smoke { 0% { transform:translateY(0) scaleX(1); opacity:.4 } 33% { transform:translateY(-10px) scaleX(1.2); opacity:.2 } 66% { transform:translateY(-20px) scaleX(0.8); opacity:.1 } 100% { transform:translateY(-30px) scaleX(1); opacity:0 } }
@keyframes cs-smoker { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-1px) rotate(3deg) } 50% { transform:translateY(0) rotate(0deg) } 75% { transform:translateY(-2px) rotate(-3deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes cs-rain { 0% { background-position:0 0 } 100% { background-position:0 20px } }

/* Scene: photograph-given */
.scn-photograph-given {
  background:
    linear-gradient(180deg, #f5ead0 0%, #e8d5b0 40%, #d4bf9a 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 70%);
}
.scn-photograph-given .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #cfc2a8 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.08);
}
.scn-photograph-given .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #b8a78a 0%, #a08f72 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-photograph-given .table {
  position:absolute; bottom:18%; left:50%; width:160px; height:40px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #c4a882 0%, #a88a64 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-photograph-given .frame {
  position:absolute; bottom:42%; left:50%; width:70px; height:90px;
  transform:translateX(-50%);
  background: linear-gradient(135deg, #d4b896 0%, #b89a78 100%);
  border: 4px solid #8a7a62;
  border-radius: 3px;
  box-shadow: 0 0 20px 6px rgba(255,235,180,0.3);
  animation: pg1-frame 6s ease-in-out infinite alternate;
}
.scn-photograph-given .photo-glow {
  position:absolute; bottom:44%; left:50%; width:50px; height:70px;
  transform:translateX(-50%);
  background: radial-gradient(circle, #f0e0c0 0%, #d8c8a8 70%, transparent 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 10px rgba(240,224,192,0.4);
  animation: pg1-glow 3s ease-in-out infinite alternate;
}
.scn-photograph-given .chair {
  position:absolute; bottom:16%; left:43%; width:50px; height:65px;
  background: linear-gradient(180deg, #8a7054 0%, #6a5438 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform-origin: bottom center;
  animation: pg1-chair 8s ease-in-out infinite;
}
.scn-photograph-given .dust {
  position:absolute; width:6px; height:6px;
  background: radial-gradient(circle, rgba(255,255,240,0.8), transparent);
  border-radius: 50%;
  filter: blur(1px);
  animation: pg1-dust 12s linear infinite;
}
.scn-photograph-given .particle1 { top:25%; left:20%; animation-delay: 0s; }
.scn-photograph-given .particle2 { top:35%; left:70%; width:4px; height:4px; animation-delay: 4s; }
@keyframes pg1-frame {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes pg1-glow {
  0% { opacity: 0.6; box-shadow: 0 0 20px 6px rgba(240,224,192,0.2); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(240,224,192,0.5); }
  100% { opacity: 0.7; box-shadow: 0 0 25px 8px rgba(240,224,192,0.3); }
}
@keyframes pg1-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pg1-dust {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-20px) translateX(10px) scale(1.2); opacity: 0.4; }
  100% { transform: translateY(0) translateX(0) scale(1); opacity: 0.8; }
}

/* Scene: something-hidden */
.scn-something-hidden {
  background:
    linear-gradient(180deg, #c0b098 0%, #a09080 40%, #7a6a5a 100%),
    radial-gradient(ellipse at 80% 60%, #e0d0c0 0%, transparent 70%);
}
.scn-something-hidden .room-dark {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.3);
  animation: sh2-room 10s ease-in-out infinite alternate;
}
.scn-something-hidden .desk {
  position:absolute; bottom:15%; left:50%; width:200px; height:70px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 15px rgba(0,0,0,0.5);
}
.scn-something-hidden .drawer {
  position:absolute; bottom:20%; left:50%; width:80px; height:30px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border: 2px solid #2a1a0a;
  border-radius: 2px;
  animation: sh2-drawer 4s ease-in-out infinite alternate;
}
.scn-something-hidden .hand {
  position:absolute; bottom:18%; left:44%; width:30px; height:40px;
  background: linear-gradient(180deg, #d4b896 0%, #b89a78 100%);
  border-radius: 40% 60% 50% 50% / 60% 40% 50% 50%;
  transform-origin: bottom center;
  animation: sh2-hand 3s ease-in-out infinite;
}
.scn-something-hidden .shadow-stripe {
  position:absolute; top:0; left:30%; width:40%; height:100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 50%, transparent 100%);
  animation: sh2-stripe 8s ease-in-out infinite alternate;
}
.scn-something-hidden .lamp-glow {
  position:absolute; top:20%; left:70%; width:100px; height:100px;
  background: radial-gradient(circle, #f0d080 0%, #d0b060 40%, transparent 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sh2-lamp 5s ease-in-out infinite alternate;
}
.scn-something-hidden .papers {
  position:absolute; bottom:22%; left:42%; width:60px; height:10px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform-origin: left center;
  animation: sh2-papers 6s ease-in-out infinite;
}
@keyframes sh2-room {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sh2-drawer {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(5px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes sh2-hand {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-8px) rotate(10deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes sh2-stripe {
  0% { transform: translateX(-10%); opacity: 0.3; }
  50% { transform: translateX(10%); opacity: 0.6; }
  100% { transform: translateX(-10%); opacity: 0.3; }
}
@keyframes sh2-lamp {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}
@keyframes sh2-papers {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}

/* Scene: leithcourt-london */
.scn-leithcourt-london {
  background:
    linear-gradient(180deg, #b0b0a0 0%, #8a8a7a 50%, #6a6a5a 100%),
    radial-gradient(ellipse at 50% 0%, #d0d0c0 0%, transparent 60%);
}
.scn-leithcourt-london .sky-overcast {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, #a0a090 0%, #808070 100%);
  animation: ll3-sky 15s ease-in-out infinite alternate;
}
.scn-leithcourt-london .house-facade {
  position:absolute; bottom:30%; left:10%; right:10%; height:60%;
  background: linear-gradient(180deg, #b8a890 0%, #988878 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.2);
}
.scn-leithcourt-london .window-pane {
  position:absolute; bottom:45%; left:50%; width:30px; height:45px;
  transform:translateX(-50%);
  background: linear-gradient(135deg, #d0c8b8 0%, #b8b0a0 100%);
  border: 3px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: ll3-window 8s ease-in-out infinite;
}
.scn-leithcourt-london .curtain {
  position:absolute; bottom:45%; left:48%; width:35px; height:50px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%);
  border-radius: 0 0 20% 20%;
  opacity: 0.8;
  animation: ll3-curtain 6s ease-in-out infinite alternate;
}
.scn-leithcourt-london .figure-shadow {
  position:absolute; bottom:32%; left:30%; width:25px; height:50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ll3-figure 10s ease-in-out infinite;
}
.scn-leithcourt-london .lamp-post {
  position:absolute; bottom:28%; left:15%; width:10px; height:80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 0 15px 3px #e0d0b0;
}
.scn-leithcourt-london .rain-drop {
  position:absolute; width:2px; height:10px;
  background: rgba(200,200,200,0.5);
  border-radius: 50%;
  animation: ll3-rain 1.5s linear infinite;
}
.scn-leithcourt-london .a { top:5%; left:20%; animation-delay: 0s; }
.scn-leithcourt-london .b { top:10%; left:60%; animation-delay: 0.5s; }
@keyframes ll3-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes ll3-window {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ll3-curtain {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(0.9); }
  100% { transform: translateX(-50%) scaleX(1); }
}
@keyframes ll3-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes ll3-rain {
  0% { transform: translateY(0) translateX(0); opacity: 1; }
  100% { transform: translateY(100vh) translateX(-10px); opacity: 0; }
}

/* Scene: finland-bound */
.scn-finland-bound {
  background:
    linear-gradient(180deg, #788890 0%, #5a6a72 50%, #3a4a52 100%),
    radial-gradient(ellipse at 50% 20%, #90a0b0 0%, transparent 70%);
}
.scn-finland-bound .sea-cold {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #6a7a82 0%, #4a5a62 100%);
  animation: fb4-sea 12s ease-in-out infinite alternate;
}
.scn-finland-bound .deck {
  position:absolute; bottom:25%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.5);
}
.scn-finland-bound .railing {
  position:absolute; bottom:40%; left:5%; right:5%; height:3px;
  background: #4a4a3a;
  box-shadow: 0 -4px 0 #3a3a2a;
}
.scn-finland-bound .ship-funnel {
  position:absolute; bottom:40%; left:30%; width:30px; height:60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-finland-bound .smoke {
  position:absolute; bottom:70%; left:32%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(255,255,255,0.4), transparent);
  border-radius: 50%;
  filter: blur(4px);
  animation: fb4-smoke 8s linear infinite;
}
.scn-finland-bound .a { animation-delay: 0s; }
.scn-finland-bound .b { left:36%; animation-delay: 4s; }
.scn-finland-bound .figure-coat {
  position:absolute; bottom:30%; left:20%; width:20px; height:45px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fb4-figure 5s ease-in-out infinite;
}
.scn-finland-bound .luggage {
  position:absolute; bottom:28%; left:30%; width:30px; height:20px;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: fb4-luggage 6s ease-in-out infinite alternate;
}
.scn-finland-bound .wave {
  position:absolute; bottom:22%; left:0; right:0; height:10%;
  background: linear-gradient(180deg, transparent 0%, #4a6a7a 40%, #2a5a6a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  animation: fb4-wave 4s ease-in-out infinite alternate;
}
@keyframes fb4-sea {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes fb4-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-30px) scale(1.5); opacity: 0.3; }
  100% { transform: translateY(-60px) scale(2); opacity: 0; }
}
@keyframes fb4-figure {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes fb4-luggage {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fb4-wave {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(5px) scaleY(1.2); }
  100% { transform: translateY(0) scaleY(1); }
}

/* olinto-warns-again */
.scn-olinto-warns-again {
  background: linear-gradient(180deg, #2b1e12 0%, #1f130a 40%, #0f0a05 100%), 
              radial-gradient(circle at 50% 70%, #3a2818 0%, transparent 60%);
}
.scn-olinto-warns-again .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f130a 80%);
  animation: owa-wall 16s ease-in-out infinite alternate;
}
.scn-olinto-warns-again .bg-shadow {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: owa-shadow 12s ease-in-out infinite;
}
.scn-olinto-warns-again .table {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.7);
}
.scn-olinto-warns-again .candle-base {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a878 40%, #a08050 100%);
  border-radius: 10% 10% 0 0;
}
.scn-olinto-warns-again .candle-flame {
  position: absolute; bottom: 48%; left: 50%; width: 6px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #ffa040 40%, #cc4000 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 16px rgba(255,100,0,0.3);
  animation: owa-flame 0.6s ease-in-out infinite alternate;
}
.scn-olinto-warns-again .figure-olinto {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: owa-fig 8s ease-in-out infinite;
}
.scn-olinto-warns-again .figure-arm {
  position: absolute; bottom: 30%; left: 44%; width: 14px; height: 10px;
  background: #0d0805;
  border-radius: 50% 20% 20% 50%;
  transform-origin: right center;
  animation: owa-arm 4s ease-in-out infinite alternate;
}
.scn-olinto-warns-again .figure-eyes {
  position: absolute; bottom: 48%; left: 33%; width: 8px; height: 4px;
  background: radial-gradient(circle, #f0c060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 12px 0 0 0 #f0c060;
  animation: owa-eyes 3s ease-in-out infinite;
}
@keyframes owa-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes owa-shadow { 0%,100% { opacity: 0.4 } 50% { opacity: 0.7 } }
@keyframes owa-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); } 50% { transform: translateX(-50%) scaleY(1.1) rotate(3deg); } 100% { transform: translateX(-50%) scaleY(0.95) rotate(-1deg); } }
@keyframes owa-fig { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-4px) } }
@keyframes owa-arm { 0% { transform: rotate(-10deg) scaleX(1) } 100% { transform: rotate(20deg) scaleX(0.9) } }
@keyframes owa-eyes { 0%,100% { opacity: 0.7 } 50% { opacity: 1 } }

/* leithcourt-connected */
.scn-leithcourt-connected {
  background: linear-gradient(90deg, #1a1412 0%, #2a2218 30%, #201810 60%, #120c0a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1c 0%, transparent 70%);
}
.scn-leithcourt-connected .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c1e14 0%, #1a100a 100%);
  animation: lcc-room 20s ease-in-out infinite;
}
.scn-leithcourt-connected .bg-arch {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-leithcourt-connected .lamp-stand {
  position: absolute; bottom: 25%; left: 50%; width: 6px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 10%;
}
.scn-leithcourt-connected .lamp-glow {
  position: absolute; bottom: 45%; left: 50%; width: 20px; height: 20px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #f0c860 0%, #d09040 50%, transparent 90%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #e0a040, 0 0 60px 20px rgba(200,100,30,0.3);
  animation: lcc-lamp 4s ease-in-out infinite alternate;
}
.scn-leithcourt-connected .figure-a {
  position: absolute; bottom: 20%; left: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #0e0a08 0%, #040201 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lcc-figA 10s ease-in-out infinite;
}
.scn-leithcourt-connected .figure-b {
  position: absolute; bottom: 20%; right: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #0e0a08 0%, #040201 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lcc-figB 12s ease-in-out infinite reverse;
}
.scn-leithcourt-connected .shadow-pair {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: lcc-shadow 6s ease-in-out infinite;
}
.scn-leithcourt-connected .floor-line {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 2px;
  background: #4a3020;
  opacity: 0.5;
}
@keyframes lcc-room { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }
@keyframes lcc-lamp { 0% { box-shadow: 0 0 20px 8px #e0a040; opacity: 0.9 } 50% { box-shadow: 0 0 40px 16px #e0a040; opacity: 1 } 100% { box-shadow: 0 0 25px 10px #d09040; opacity: 0.85 } }
@keyframes lcc-figA { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes lcc-figB { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes lcc-shadow { 0%,100% { opacity: 0.3 } 50% { opacity: 0.6 } }

/* many-names */
.scn-many-names {
  background: linear-gradient(135deg, #0e1218 0%, #181e26 40%, #141a20 100%),
              radial-gradient(ellipse at 30% 20%, #1a2a34 0%, transparent 60%);
}
.scn-many-names .bg-cabin {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #1a1e24 0%, #0a0c10 100%);
  animation: mn-cabin 20s ease-in-out infinite;
}
.scn-many-names .bg-port {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, #2a4a5a 0%, #0a1a20 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  border: 2px solid #3a4a50;
}
.scn-many-names .sea {
  position: absolute; top: 12%; right: 12%; width: 56px; height: 36px;
  background: linear-gradient(180deg, #1a3a4a 0%, #0a1a22 100%);
  border-radius: 5%;
  animation: mn-sea 8s ease-in-out infinite alternate;
}
.scn-many-names .desk {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.6);
}
.scn-many-names .lamp-desk {
  position: absolute; bottom: 30%; left: 40%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(5deg);
}
.scn-many-names .papers {
  position: absolute; bottom: 18%; left: 35%; right: 35%; height: 8%;
  background: linear-gradient(180deg, #d0c8b8 0%, #b8a898 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.4);
  animation: mn-papers 6s ease-in-out infinite;
}
.scn-many-names .hand {
  position: absolute; bottom: 18%; left: 60%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 50% 20% 20% 50%;
  transform-origin: bottom center;
  animation: mn-hand 3s ease-in-out infinite alternate;
}
.scn-many-names .pen {
  position: absolute; bottom: 22%; left: 58%; width: 2px; height: 16px;
  background: #1a1410;
  transform: rotate(20deg);
  animation: mn-pen 3s ease-in-out infinite alternate;
}
@keyframes mn-cabin { 0%,100% { opacity: 0.8 } 50% { opacity: 0.95 } }
@keyframes mn-sea { 0% { transform: translateY(0) } 100% { transform: translateY(2px) } }
@keyframes mn-papers { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mn-hand { 0% { transform: rotate(-10deg) } 100% { transform: rotate(10deg) } }
@keyframes mn-pen { 0% { transform: rotate(15deg) } 100% { transform: rotate(25deg) } }

/* solve-yourself */
.scn-solve-yourself {
  background: linear-gradient(180deg, #1e1812 0%, #140e08 50%, #0a0502 100%),
              radial-gradient(ellipse at 50% 40%, #2a1e10 0%, transparent 70%);
}
.scn-solve-yourself .bg-void {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e12 0%, #0f0a05 100%);
  animation: sy-void 14s ease-in-out infinite alternate;
}
.scn-solve-yourself .desk-wide {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a0e 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 -6px 16px rgba(0,0,0,0.8);
}
.scn-solve-yourself .lamp-bright {
  position: absolute; bottom: 32%; left: 50%; width: 14px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px #ffa040, 0 0 80px 30px rgba(200,80,0,0.3);
  animation: sy-lamp 2s ease-in-out infinite alternate;
}
.scn-solve-yourself .lamp-shade {
  position: absolute; bottom: 50%; left: 50%; width: 40px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-solve-yourself .figure-solve {
  position: absolute; bottom: 20%; left: 38%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #120e0a 0%, #060302 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sy-fig 6s ease-in-out infinite;
}
.scn-solve-yourself .face-silhouette {
  position: absolute; bottom: 40%; left: 40%; width: 14px; height: 16px;
  background: #060302;
  border-radius: 50%;
  animation: sy-face 8s ease-in-out infinite;
}
.scn-solve-yourself .shadow-sharp {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  filter: blur(4px);
  animation: sy-shadow 10s ease-in-out infinite;
}
.scn-solve-yourself .pendulum {
  position: absolute; bottom: 50%; left: 60%; width: 2px; height: 60px;
  background: #4a3a28;
  transform-origin: top center;
  animation: sy-pend 2s ease-in-out infinite alternate;
}
.scn-solve-yourself .pendulum::after {
  content: "";
  position: absolute; bottom: -6px; left: -4px; width: 10px; height: 10px;
  background: radial-gradient(circle, #c8a878 0%, #8a6a48 100%);
  border-radius: 50%;
}
@keyframes sy-void { 0%,100% { opacity: 0.7 } 50% { opacity: 1 } }
@keyframes sy-lamp { 0% { box-shadow: 0 0 30px 12px #ffa040; opacity: 0.9 } 50% { box-shadow: 0 0 50px 20px #ffa040; opacity: 1 } 100% { box-shadow: 0 0 35px 14px #ffa040; opacity: 0.8 } }
@keyframes sy-fig { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes sy-face { 0%,100% { opacity: 0.5 } 50% { opacity: 0.8 } }
@keyframes sy-shadow { 0%,100% { opacity: 0.3 } 50% { opacity: 0.6 } }
@keyframes sy-pend { 0% { transform: rotate(-15deg) } 100% { transform: rotate(15deg) } }

/* secret-common – bright interior, tense */
.scn-secret-common {
  background: linear-gradient(180deg, #f7eed0 0%, #d4c6a0 50%, #b8a880 100%), 
              radial-gradient(ellipse at 70% 40%, #fff8e0 0%, transparent 60%);
}
.scn-secret-common .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ebe1c5 0%, #d4c6a0 100%); }
.scn-secret-common .desk { position:absolute; bottom:0; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #8b7355 0%, #5c4a32 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.4); }
.scn-secret-common .lamp { position:absolute; bottom:52%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%); border-radius: 50% 50% 10% 10%; transform-origin: bottom center; animation: sc-sec-lamp 6s ease-in-out infinite alternate; }
.scn-secret-common .lamp-glow { position:absolute; bottom:58%; left:37%; width:80px; height:60px; background: radial-gradient(ellipse, rgba(255,200,80,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: sc-sec-glow 4s ease-in-out infinite alternate; }
.scn-secret-common .paper { position:absolute; bottom:38%; left:38%; width:100px; height:70px; background: #fdf5e6; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: rotate(-2deg); animation: sc-sec-paper 12s ease-in-out infinite; }
.scn-secret-common .hand { position:absolute; bottom:44%; left:55%; width:24px; height:40px; background: linear-gradient(180deg, #c4a882 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 90%; animation: sc-sec-hand 3s ease-in-out infinite alternate; box-shadow: 2px 0 6px rgba(0,0,0,.3); }
.scn-secret-common .inkwell { position:absolute; bottom:32%; left:50%; width:22px; height:24px; background: linear-gradient(180deg, #2c2c44 0%, #1a1a2a 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-secret-common .shadow { position:absolute; bottom:0; left:30%; right:30%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%); border-radius: 50% 50% 0 0; animation: sc-sec-shadow 8s ease-in-out infinite alternate; }

@keyframes sc-sec-lamp { 0% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(5deg) } }
@keyframes sc-sec-glow { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.85; transform: scale(.95) } }
@keyframes sc-sec-paper { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-3px) } }
@keyframes sc-sec-hand { 0% { transform: translateX(0) rotate(-15deg) } 50% { transform: translateX(-5px) rotate(-5deg) } 100% { transform: translateX(0) rotate(-15deg) } }
@keyframes sc-sec-shadow { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.2) } 100% { opacity:.4; transform: scaleY(1) } }

/* princess-zurloff – dim interior, tense */
.scn-princess-zurloff {
  background: linear-gradient(180deg, #1b1910 0%, #2a2418 50%, #3d3020 100%), 
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-princess-zurloff .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2418 0%, #1b1910 100%); }
.scn-princess-zurloff .table { position:absolute; bottom:10%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2c1e14 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-princess-zurloff .candle { position:absolute; bottom:52%; left:45%; width:10px; height:30px; background: linear-gradient(180deg, #d4a060 0%, #8b6508 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; animation: sc-pz-candle 5s ease-in-out infinite alternate; }
.scn-princess-zurloff .candle-glow { position:absolute; bottom:58%; left:40%; width:60px; height:50px; background: radial-gradient(ellipse, rgba(255,180,50,.7) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: sc-pz-glow 3s ease-in-out infinite alternate; }
.scn-princess-zurloff .envelope { position:absolute; bottom:30%; left:38%; width:90px; height:60px; background: linear-gradient(135deg, #e8d8c0 0%, #c8b898 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); transform: rotate(3deg); }
.scn-princess-zurloff .hand-write { position:absolute; bottom:38%; left:52%; width:20px; height:34px; background: linear-gradient(180deg, #c4a882 0%, #906850 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 90%; animation: sc-pz-hand 4s ease-in-out infinite alternate; }
.scn-princess-zurloff .curtain { position:absolute; top:0; left:-10%; width:30%; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #1b1910 100%); border-radius: 0 40% 40% 0 / 0 100% 100% 0; transform: skewX(-10deg); animation: sc-pz-curtain 15s ease-in-out infinite alternate; }

@keyframes sc-pz-candle { 0% { transform: rotate(-3deg) scaleY(1) } 50% { transform: rotate(0) scaleY(1.05) } 100% { transform: rotate(3deg) scaleY(1) } }
@keyframes sc-pz-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.7; transform: scale(.9) } }
@keyframes sc-pz-hand { 0% { transform: translateX(0) rotate(-20deg) } 50% { transform: translateX(-4px) rotate(-10deg) } 100% { transform: translateX(0) rotate(-20deg) } }
@keyframes sc-pz-curtain { 0% { transform: skewX(-10deg) translateX(0) } 50% { transform: skewX(-5deg) translateX(5px) } 100% { transform: skewX(-10deg) translateX(-5px) } }

/* red-priest – dim interior, tense */
.scn-red-priest {
  background: linear-gradient(180deg, #1a1512 0%, #241e18 50%, #2c241e 100%), 
              radial-gradient(ellipse at 60% 50%, #2a1a12 0%, transparent 70%);
}
.scn-red-priest .door-frame { position:absolute; bottom:0; left:25%; right:25%; height:90%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-red-priest .door-bg { position:absolute; bottom:5%; left:30%; right:30%; height:75%; background: linear-gradient(135deg, #1b1910 0%, #0d0a05 100%); border-radius: 8% 8% 0 0; }
.scn-red-priest .servant { position:absolute; bottom:0; left:38%; width:22%; height:70%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: sc-rp-servant 8s ease-in-out infinite alternate; }
.scn-red-priest .lantern { position:absolute; bottom:70%; left:45%; width:16px; height:24px; background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 5px rgba(255,150,50,.5); animation: sc-rp-lantern 6s ease-in-out infinite alternate; }
.scn-red-priest .lantern-glow { position:absolute; bottom:68%; left:40%; width:80px; height:60px; background: radial-gradient(ellipse, rgba(255,160,60,.4) 0%, transparent 70%); border-radius: 50%; filter: blur(12px); animation: sc-rp-glow 4s ease-in-out infinite alternate; }
.scn-red-priest .priest-sash { position:absolute; bottom:30%; left:40%; width:8%; height:20%; background: linear-gradient(180deg, #a0461a 0%, #7a3010 100%); border-radius: 40% 40% 10% 10%; transform: rotate(-10deg); animation: sc-rp-sash 10s ease-in-out infinite; }
.scn-red-priest .floor { position:absolute; bottom:0; left:-5%; right:-5%; height:12%; background: linear-gradient(180deg, #2c2018 0%, #1a120a 100%); border-radius: 20% 20% 0 0; }
.scn-red-priest .shadow-figure { position:absolute; bottom:0; left:10%; width:40%; height:40%; background: radial-gradient(ellipse at 50% 0, rgba(0,0,0,.6) 0%, transparent 70%); filter: blur(8px); animation: sc-rp-shadow 12s ease-in-out infinite alternate; }

@keyframes sc-rp-servant { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes sc-rp-lantern { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(0) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes sc-rp-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.6; transform: scale(.9) } }
@keyframes sc-rp-sash { 0%,100% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(3px) } }
@keyframes sc-rp-shadow { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.3) } 100% { opacity:.4; transform: scaleY(1) } }

/* letter-read – dim interior, tense */
.scn-letter-read {
  background: linear-gradient(180deg, #1a1512 0%, #241e18 50%, #2c241e 100%), 
              radial-gradient(ellipse at 50% 40%, #2a1a12 0%, transparent 70%);
}
.scn-letter-read .wall-dim { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2c241e 0%, #1a1512 100%); }
.scn-letter-read .table-round { position:absolute; bottom:5%; left:20%; right:20%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -15px 25px rgba(0,0,0,.6); }
.scn-letter-read .dim-candle { position:absolute; bottom:55%; left:40%; width:8px; height:26px; background: linear-gradient(180deg, #c89040 0%, #8b6508 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; animation: sc-lr-candle 7s ease-in-out infinite alternate; }
.scn-letter-read .candle-light { position:absolute; bottom:60%; left:36%; width:60px; height:50px; background: radial-gradient(ellipse, rgba(255,180,60,.5) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: sc-lr-light 4s ease-in-out infinite alternate; }
.scn-letter-read .letter-hand { position:absolute; bottom:35%; left:48%; width:18px; height:32px; background: linear-gradient(180deg, #b89878 0%, #907050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 90%; animation: sc-lr-hand 3s ease-in-out infinite alternate; }
.scn-letter-read .letter-paper { position:absolute; bottom:38%; left:36%; width:80px; height:55px; background: #f5e6d0; border-radius: 2px; box-shadow: 0 3px 8px rgba(0,0,0,.4); transform: rotate(-4deg); animation: sc-lr-paper 10s ease-in-out infinite; }
.scn-letter-read .teacup { position:absolute; bottom:28%; left:60%; width:28px; height:22px; background: linear-gradient(180deg, #a08060 0%, #70503a 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: sc-lr-cup 12s ease-in-out infinite; }
.scn-letter-read .profile-head { position:absolute; bottom:42%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #1a1512 0%, #0d0a05 100%); border-radius: 50% 40% 30% 40% / 60% 50% 50% 40%; transform: rotate(8deg); animation: sc-lr-head 14s ease-in-out infinite alternate; box-shadow: -4px 0 8px rgba(0,0,0,.3); }

@keyframes sc-lr-candle { 0% { transform: rotate(-4deg) scaleY(1) } 50% { transform: rotate(0) scaleY(1.06) } 100% { transform: rotate(4deg) scaleY(1) } }
@keyframes sc-lr-light { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.9; transform: scale(1.2) } 100% { opacity:.6; transform: scale(.9) } }
@keyframes sc-lr-hand { 0% { transform: translateX(0) rotate(-10deg) } 50% { transform: translateX(-3px) rotate(0deg) } 100% { transform: translateX(0) rotate(-10deg) } }
@keyframes sc-lr-paper { 0%,100% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-4px) } }
@keyframes sc-lr-cup { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes sc-lr-head { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-2px) } 100% { transform: rotate(8deg) translateY(0) } }

/* detective-interview */
.scn-detective-interview {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1a120f 40%, #0d0b09 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a20 0%, transparent 60%);
}
.scn-detective-interview .shadow { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.6), transparent 70%); }
.scn-detective-interview .wall { position:absolute; inset:10% 5% 25% 5%; background:linear-gradient(180deg, #3a2a1e 0%, #2a1d14 100%); border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,0.7); }
.scn-detective-interview .desk { position:absolute; bottom:15%; left:20%; right:20%; height:12%; background:linear-gradient(180deg, #5a3a2a 0%, #3a2418 100%); border-radius:2px; box-shadow:0 4px 12px rgba(0,0,0,0.8); }
.scn-detective-interview .lamp { position:absolute; bottom:20%; left:35%; width:8px; height:40px; background:linear-gradient(180deg, #8a6a50 0%, #5a3a2a 100%); border-radius:2px; transform-origin:bottom center; }
.scn-detective-interview .glow { position:absolute; bottom:18%; left:35%; width:60px; height:60px; background:radial-gradient(circle, rgba(200,150,80,0.6) 0%, transparent 70%); border-radius:50%; transform:translate(-50%,50%); animation:di-glow 3s ease-in-out infinite alternate; }
.scn-detective-interview .detective { position:absolute; bottom:15%; left:28%; width:20px; height:50px; background:linear-gradient(180deg, #1a1410 0%, #0d0b09 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation:di-figure1 4s ease-in-out infinite; }
.scn-detective-interview .witness { position:absolute; bottom:15%; right:25%; width:18px; height:48px; background:linear-gradient(180deg, #2a1f1a 0%, #1a120f 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation:di-figure2 3.5s ease-in-out infinite; }
@keyframes di-glow {
  0% { opacity:0.7; box-shadow:0 0 30px 10px rgba(200,150,80,0.3); }
  50% { opacity:1; box-shadow:0 0 50px 20px rgba(200,150,80,0.5); }
  100% { opacity:0.85; box-shadow:0 0 35px 12px rgba(200,150,80,0.35); }
}
@keyframes di-figure1 {
  0% { transform:translateX(0) rotate(0deg); }
  50% { transform:translateX(2px) rotate(1deg); }
  100% { transform:translateX(0) rotate(0deg); }
}
@keyframes di-figure2 {
  0% { transform:translateX(0) rotate(0deg) scaleY(1); }
  30% { transform:translateX(-1px) rotate(-1deg) scaleY(0.98); }
  60% { transform:translateX(1px) rotate(1deg) scaleY(1.02); }
  100% { transform:translateX(0) rotate(0deg) scaleY(1); }
}

/* pressed-for-suspicions */
.scn-pressed-for-suspicions {
  background: 
    linear-gradient(180deg, #1e1612 0%, #130e0b 40%, #0a0806 100%),
    radial-gradient(ellipse at 50% 30%, #2a1d14 0%, transparent 70%);
}
.scn-pressed-for-suspicions .bg { position:absolute; inset:0; background:radial-gradient(ellipse at 80% 60%, rgba(0,0,0,0.5), transparent 80%); }
.scn-pressed-for-suspicions .table { position:absolute; bottom:12%; left:25%; right:25%; height:10%; background:linear-gradient(180deg, #4a2e1e 0%, #2a1a0e 100%); border-radius:2px; box-shadow:0 5px 15px rgba(0,0,0,0.9); }
.scn-pressed-for-suspicions .lamp { position:absolute; bottom:16%; left:30%; width:6px; height:35px; background:linear-gradient(180deg, #7a5a3a 0%, #4a2e1e 100%); border-radius:2px; transform-origin:bottom center; }
.scn-pressed-for-suspicions .glow { position:absolute; bottom:15%; left:30%; width:70px; height:70px; background:radial-gradient(circle, rgba(200,130,60,0.5) 0%, transparent 70%); border-radius:50%; transform:translate(-50%,50%); animation:pf-glow 4s ease-in-out infinite alternate; }
.scn-pressed-for-suspicions .figure-1 { position:absolute; bottom:10%; left:35%; width:22px; height:55px; background:linear-gradient(180deg, #1a1410 0%, #0d0b09 100%); border-radius:50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin:bottom center; animation:pf-lean 5s ease-in-out infinite; }
.scn-pressed-for-suspicions .figure-2 { position:absolute; bottom:10%; right:20%; width:18px; height:50px; background:linear-gradient(180deg, #2a1f1a 0%, #1a120f 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation:pf-shake 3s ease-in-out infinite; }
.scn-pressed-for-suspicions .shadow { position:absolute; bottom:10%; left:30%; right:20%; height:20%; background:linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%); animation:pf-shadow 6s ease-in-out infinite; }
@keyframes pf-glow {
  0% { opacity:0.6; box-shadow:0 0 20px 5px rgba(200,130,60,0.2); }
  50% { opacity:1; box-shadow:0 0 60px 20px rgba(200,130,60,0.6); }
  100% { opacity:0.8; box-shadow:0 0 30px 10px rgba(200,130,60,0.3); }
}
@keyframes pf-lean {
  0% { transform:translateX(0) rotate(0deg) scaleX(1); }
  40% { transform:translateX(3px) rotate(3deg) scaleX(1.05); }
  70% { transform:translateX(-2px) rotate(2deg) scaleX(0.95); }
  100% { transform:translateX(0) rotate(0deg) scaleX(1); }
}
@keyframes pf-shake {
  0% { transform:translateX(0) rotate(0deg); }
  20% { transform:translateX(2px) rotate(2deg); }
  40% { transform:translateX(-2px) rotate(-2deg); }
  60% { transform:translateX(1px) rotate(1deg); }
  80% { transform:translateX(-1px) rotate(-1deg); }
  100% { transform:translateX(0) rotate(0deg); }
}
@keyframes pf-shadow {
  0% { opacity:0.8; transform:scaleY(1); }
  50% { opacity:0.4; transform:scaleY(0.9); }
  100% { opacity:0.8; transform:scaleY(1); }
}

/* foreigner-theory */
.scn-foreigner-theory {
  background: 
    linear-gradient(180deg, #1f1612 0%, #140d0a 40%, #0a0705 100%),
    radial-gradient(ellipse at 70% 40%, #2a1c14 0%, transparent 60%);
}
.scn-foreigner-theory .bg { position:absolute; inset:0; background:radial-gradient(ellipse at 30% 70%, rgba(0,0,0,0.6), transparent 80%); }
.scn-foreigner-theory .wall { position:absolute; inset:8% 5% 30% 10%; background:linear-gradient(180deg, #2a1d14 0%, #1a110c 100%); border-radius:3px; box-shadow:inset 0 0 20px rgba(0,0,0,0.8); }
.scn-foreigner-theory .window { position:absolute; top:12%; right:8%; width:30px; height:40px; background:radial-gradient(ellipse, #3a2a1e 0%, #1a110c 100%); border:2px solid #2a1a0e; border-radius:1px; box-shadow:inset 0 0 10px rgba(0,0,0,0.9); }
.scn-foreigner-theory .lamp { position:absolute; bottom:18%; left:25%; width:7px; height:30px; background:linear-gradient(180deg, #6a4a30 0%, #3a2418 100%); border-radius:2px; transform-origin:bottom center; }
.scn-foreigner-theory .glow { position:absolute; bottom:16%; left:25%; width:80px; height:80px; background:radial-gradient(circle, rgba(200,120,50,0.4) 0%, transparent 70%); border-radius:50%; transform:translate(-50%,50%); animation:ft-glow 3.5s ease-in-out infinite alternate; }
.scn-foreigner-theory .figure { position:absolute; bottom:10%; left:18%; width:24px; height:60px; background:linear-gradient(180deg, #1a1410 0%, #0d0b09 100%); border-radius:50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin:bottom center; animation:ft-turn 7s ease-in-out infinite; }
.scn-foreigner-theory .paper { position:absolute; bottom:14%; left:30%; width:14px; height:10px; background:linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:1px; transform:rotate(-15deg); animation:ft-paper 5s ease-in-out infinite; }
.scn-foreigner-theory .shadow { position:absolute; bottom:10%; left:15%; right:40%; height:30%; background:linear-gradient(180deg, rgba(0,0,0,0.7) 0%, transparent 100%); animation:ft-shadow 8s ease-in-out infinite; }
@keyframes ft-glow {
  0% { opacity:0.5; box-shadow:0 0 25px 8px rgba(200,120,50,0.2); }
  50% { opacity:1; box-shadow:0 0 55px 18px rgba(200,120,50,0.5); }
  100% { opacity:0.75; box-shadow:0 0 30px 10px rgba(200,120,50,0.3); }
}
@keyframes ft-turn {
  0% { transform:translateX(0) rotate(0deg); }
  30% { transform:translateX(-5px) rotate(-5deg); }
  60% { transform:translateX(5px) rotate(5deg); }
  100% { transform:translateX(0) rotate(0deg); }
}
@keyframes ft-paper {
  0% { transform:rotate(-15deg) translateY(0); opacity:0.8; }
  50% { transform:rotate(-10deg) translateY(-2px); opacity:1; }
  100% { transform:rotate(-15deg) translateY(0); opacity:0.8; }
}
@keyframes ft-shadow {
  0% { opacity:0.6; transform:scaleX(1); }
  50% { opacity:0.3; transform:scaleX(0.95); }
  100% { opacity:0.6; transform:scaleX(1); }
}

/* alibi-given */
.scn-alibi-given {
  background: 
    linear-gradient(180deg, #1a1e2e 0%, #101424 40%, #080c18 100%),
    radial-gradient(ellipse at 50% 80%, #2a2e4e 0%, transparent 70%);
}
.scn-alibi-given .bg { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 20%, #3a3e5e 0%, transparent 60%); }
.scn-alibi-given .window { position:absolute; top:10%; left:10%; width:35%; height:50%; background:radial-gradient(ellipse, #2a3a5a 0%, #0a0e1a 100%); border:3px solid #1a1e30; border-radius:2px; box-shadow:inset 0 0 20px rgba(0,0,0,0.9); }
.scn-alibi-given .moonlight { position:absolute; top:15%; left:15%; width:25%; height:40%; background:linear-gradient(135deg, rgba(180,200,230,0.3) 0%, transparent 100%); filter:blur(5px); animation:ag-moon 12s ease-in-out infinite alternate; }
.scn-alibi-given .figure { position:absolute; bottom:10%; left:30%; width:20px; height:50px; background:linear-gradient(180deg, #1a1e2a 0%, #0a0e18 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation:ag-breathe 5s ease-in-out infinite; }
.scn-alibi-given .chair { position:absolute; bottom:10%; left:28%; width:24px; height:12px; background:linear-gradient(180deg, #2a2e3e 0%, #1a1e2a 100%); border-radius:2px; transform:rotate(0deg); }
.scn-alibi-given .shadow { position:absolute; bottom:10%; left:25%; right:25%; height:15%; background:linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); animation:ag-shadow 8s ease-in-out infinite; }
.scn-alibi-given .curtain { position:absolute; top:10%; left:5%; width:10%; height:50%; background:linear-gradient(180deg, #2a2e42 0%, #1a1e2e 100%); border-radius:2px; filter:blur(1px); animation:ag-curtain 15s ease-in-out infinite alternate; }
@keyframes ag-moon {
  0% { opacity:0.4; transform:translateX(0) scale(1); }
  50% { opacity:0.8; transform:translateX(5px) scale(1.1); }
  100% { opacity:0.5; transform:translateX(-5px) scale(0.95); }
}
@keyframes ag-breathe {
  0% { transform:translateX(0) scaleY(1); }
  50% { transform:translateX(0) scaleY(1.03) translateY(-2px); }
  100% { transform:translateX(0) scaleY(1); }
}
@keyframes ag-shadow {
  0% { opacity:0.4; transform:scaleY(1); }
  50% { opacity:0.2; transform:scaleY(0.9); }
  100% { opacity:0.4; transform:scaleY(1); }
}
@keyframes ag-curtain {
  0% { transform:translateX(0) scaleX(1); }
  50% { transform:translateX(3px) scaleX(1.05); }
  100% { transform:translateX(-3px) scaleX(0.95); }
}

/* safe-opened-discovery */
.scn-safe-opened-discovery { background: linear-gradient(180deg, #f5e6d0 0%, #c8b89a 40%, #a08970 100%), radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%); }
.scn-safe-opened-discovery .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(135deg, #e8d8b8 0%, #d4c0a0 60%); }
.scn-safe-opened-discovery .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8b7355 0%, #5e4a35 100%); }
.scn-safe-opened-discovery .safe-body { position:absolute; bottom:20%; left:50%; width:120px; height:150px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3d3228 100%); border-radius:4px; box-shadow: 0 8px 24px rgba(0,0,0,.5); }
.scn-safe-opened-discovery .safe-door { position:absolute; bottom:20%; left:50%; width:115px; height:145px; transform:translateX(-50%) rotateY(-70deg); transform-origin: left center; background: linear-gradient(135deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:2px; box-shadow: 8px 0 12px rgba(0,0,0,.3); animation: sod-door 6s ease-in-out infinite alternate; }
.scn-safe-opened-discovery .papers { position:absolute; bottom:28%; width:40px; height:30px; background: #f0e0c0; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.scn-safe-opened-discovery .paper-1 { left:42%; transform:rotate(15deg); animation: sod-paper1 8s ease-in-out infinite; }
.scn-safe-opened-discovery .paper-2 { left:56%; transform:rotate(-20deg); animation: sod-paper2 10s ease-in-out infinite; }
.scn-safe-opened-discovery .lamp { position:absolute; bottom:50%; left:20%; width:30px; height:40px; background: radial-gradient(circle, #ffe080 0%, #c8a060 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 60px 20px rgba(255,224,128,.5); animation: sod-lamp 4s ease-in-out infinite alternate; }
.scn-safe-opened-discovery .shadow-shape { position:absolute; bottom:18%; left:38%; width:50px; height:60px; background: radial-gradient(ellipse 50% 40% at 50% 100%, rgba(0,0,0,.3) 0%, transparent 70%); animation: sod-shadow 8s ease-in-out infinite; }
@keyframes sod-door { 0% { transform: translateX(-50%) rotateY(-70deg); } 50% { transform: translateX(-50%) rotateY(-60deg); } 100% { transform: translateX(-50%) rotateY(-70deg); } }
@keyframes sod-paper1 { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-4px); } }
@keyframes sod-paper2 { 0%,100% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-22deg) translateY(3px); } }
@keyframes sod-lamp { 0% { opacity:.8; box-shadow: 0 0 40px 15px rgba(255,224,128,.4); } 50% { opacity:1; box-shadow: 0 0 80px 30px rgba(255,224,128,.7); } 100% { opacity:.9; box-shadow: 0 0 50px 20px rgba(255,224,128,.5); } }
@keyframes sod-shadow { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.2); } }

/* keys-stolen-suspect */
.scn-keys-stolen-suspect { background: linear-gradient(180deg, #2c2c3e 0%, #1e1e30 40%, #14142a 100%), radial-gradient(ellipse at 50% 100%, #4a4a6a 0%, transparent 70%); }
.scn-keys-stolen-suspect .room-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a50 0%, #252540 100%); }
.scn-keys-stolen-suspect .desk { position:absolute; bottom:15%; left:30%; right:30%; height:25%; background: linear-gradient(180deg, #6a5a4a 0%, #3d3228 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-keys-stolen-suspect .papers-stack { position:absolute; bottom:25%; left:38%; width:50px; height:20px; background: #e8d8b8; border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: kss-papers 8s ease-in-out infinite; }
.scn-keys-stolen-suspect .figure-carducci { position:absolute; bottom:10%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kss-figure 4s ease-in-out infinite; }
.scn-keys-stolen-suspect .arm-gesture { position:absolute; bottom:30%; left:42%; width:8px; height:30px; background: #1a1a2a; border-radius:30% 30% 10% 10%; transform-origin: bottom left; animation: kss-arm 3s ease-in-out infinite alternate; }
.scn-keys-stolen-suspect .window-light { position:absolute; top:10%; right:10%; width:50px; height:70px; background: radial-gradient(circle, rgba(200,220,255,.5) 0%, transparent 70%); border-radius:2px; box-shadow: 0 0 40px 20px rgba(200,220,255,.3); animation: kss-window 10s ease-in-out infinite alternate; }
.scn-keys-stolen-suspect .key-chain { position:absolute; bottom:25%; left:55%; width:6px; height:10px; background: #c0a060; border-radius:50%; box-shadow: 0 0 8px 2px rgba(192,160,96,.5); animation: kss-key 6s ease-in-out infinite; }
@keyframes kss-papers { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes kss-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(-3px) rotate(-1deg); } 75% { transform: translateX(-4px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes kss-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-15deg); } }
@keyframes kss-window { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }
@keyframes kss-key { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-2px) rotate(10deg); } }

/* yacht-left-suddenly */
.scn-yacht-left-suddenly { background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 40%, #b8a080 100%), radial-gradient(ellipse at 80% 20%, #fff0d0 0%, transparent 60%); }
.scn-yacht-left-suddenly .office-wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(135deg, #e8d8b8 0%, #d0c0a0 100%); }
.scn-yacht-left-suddenly .chair { position:absolute; bottom:15%; left:50%; width:50px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: yls-chair 8s ease-in-out infinite; }
.scn-yacht-left-suddenly .desk-map { position:absolute; bottom:20%; left:30%; right:30%; height:15%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:4px; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
.scn-yacht-left-suddenly .lamp-officer { position:absolute; bottom:35%; left:25%; width:25px; height:35px; background: radial-gradient(circle, #ffe080 0%, #c8a060 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 40px 15px rgba(255,224,128,.5); animation: yls-lamp 5s ease-in-out infinite alternate; }
.scn-yacht-left-suddenly .window-dock { position:absolute; top:8%; right:5%; width:60px; height:50px; background: linear-gradient(180deg, #b0d0e0 0%, #80b0d0 100%); border:4px solid #6a5a4a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.2); animation: yls-window 12s ease-in-out infinite; }
.scn-yacht-left-suddenly .ship-silhouette { position:absolute; top:10%; right:15%; width:40px; height:20px; background: #3a2a1a; border-radius:50% 50% 0 0 / 80% 80% 0 0; transform:rotate(-10deg); animation: yls-ship 20s linear infinite; }
.scn-yacht-left-suddenly .telegram { position:absolute; bottom:30%; left:55%; width:40px; height:25px; background: #f0e0c0; border-radius:2px; transform:rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: yls-tele 6s ease-in-out infinite; }
@keyframes yls-chair { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes yls-lamp { 0% { opacity:.8; box-shadow: 0 0 30px 10px rgba(255,224,128,.4); } 50% { opacity:1; box-shadow: 0 0 60px 20px rgba(255,224,128,.7); } 100% { opacity:.9; box-shadow: 0 0 40px 15px rgba(255,224,128,.5); } }
@keyframes yls-window { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.75; } }
@keyframes yls-ship { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(10px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes yls-tele { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }

/* police-report-yacht */
.scn-police-report-yacht { background: linear-gradient(180deg, #2a2a3a 0%, #1e1e30 40%, #14142a 100%), radial-gradient(ellipse at 50% 0%, #4a4a6a 0%, transparent 60%); }
.scn-police-report-yacht .harbor-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a3a50 0%, #252540 100%); }
.scn-police-report-yacht .desk-lamp { position:absolute; bottom:15%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3d3228 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-police-report-yacht .report-page { position:absolute; bottom:25%; left:45%; width:50px; height:30px; background: #e8d8b8; border-radius:2px; transform:rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: pry-report 8s ease-in-out infinite; }
.scn-police-report-yacht .figures-arriving { position:absolute; bottom:10%; left:30%; width:25px; height:50px; background: #1a1a2a; border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pry-figure 6s ease-in-out infinite; }
.scn-police-report-yacht .boat-shape { position:absolute; bottom:5%; left:20%; width:60px; height:15px; background: #3a2a1a; border-radius:0 0 50% 50% / 0 0 80% 80%; transform:rotate(5deg); animation: pry-boat 12s ease-in-out infinite; }
.scn-police-report-yacht .street-lamp { position:absolute; top:5%; left:10%; width:10px; height:40px; background: #4a3a2a; border-radius:4px; box-shadow: 0 0 30px 15px rgba(255,200,100,.4); animation: pry-lamp 5s ease-in-out infinite alternate; }
@keyframes pry-report { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes pry-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(-3px) rotate(-1deg); } 75% { transform: translateX(-3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes pry-boat { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(8px); } }
@keyframes pry-lamp { 0% { opacity:.7; box-shadow: 0 0 20px 10px rgba(255,200,100,.3); } 50% { opacity:1; box-shadow: 0 0 40px 20px rgba(255,200,100,.6); } 100% { opacity:.8; box-shadow: 0 0 25px 12px rgba(255,200,100,.4); } }

.scn-victim-seen { background: linear-gradient(135deg, #1a1a2e 0%, #2a2a3e 30%, #1e1e32 60%, #12121e 100%), radial-gradient(ellipse at 50% 60%, #2e2e4e 0%, transparent 70%); }
.scn-victim-seen .wall-left { position:absolute; left:0; top:0; bottom:0; width:45%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 80%); box-shadow: inset -20px 0 30px rgba(0,0,0,.4); }
.scn-victim-seen .wall-right { position:absolute; right:0; top:0; bottom:0; width:45%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 80%); box-shadow: inset 20px 0 30px rgba(0,0,0,.4); }
.scn-victim-seen .floor { position:absolute; left:0; right:0; bottom:0; height:35%; background: linear-gradient(180deg, #2a2a3e 0%, #1e1e2e 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-victim-seen .window-light { position:absolute; left:38%; top:20%; width:24%; height:45%; background: radial-gradient(ellipse at 50% 50%, rgba(220,230,255,.3) 0%, rgba(220,230,255,.05) 60%, transparent 100%); animation: vs-light 5s ease-in-out infinite alternate; mix-blend-mode: screen; }
.scn-victim-seen .figure-silhouette { position:absolute; left:45%; bottom:30%; width:10%; height:38%; background: linear-gradient(180deg, #0a0a12 0%, #0a0a12 60%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; box-shadow: -4px 0 6px rgba(0,0,0,.4); animation: vs-figure 6s ease-in-out infinite; }
.scn-victim-seen .stiletto-shadow { position:absolute; left:48%; bottom:25%; width:2%; height:14%; background: linear-gradient(180deg, transparent 0%, #0a0a12 40%, #0a0a12 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; transform: rotate(15deg); box-shadow: 0 0 8px rgba(0,0,0,.3); animation: vs-stiletto 8s ease-in-out infinite; }
.scn-victim-seen .dust-a { position:absolute; left:30%; top:40%; width:4px; height:4px; background: rgba(200,210,230,.15); border-radius:50%; filter: blur(1px); animation: vs-dust-a 20s linear infinite; }
.scn-victim-seen .dust-b { position:absolute; left:55%; top:50%; width:3px; height:3px; background: rgba(200,210,230,.1); border-radius:50%; filter: blur(1px); animation: vs-dust-b 25s linear infinite; }
@keyframes vs-light { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.02) } 100% { opacity:.35; transform: scale(.98) } }
@keyframes vs-figure { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(2px) rotate(0deg) } }
@keyframes vs-stiletto { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(17deg) translateY(-4px) } 100% { transform: rotate(14deg) translateY(0) } }
@keyframes vs-dust-a { 0% { transform: translate(0,0); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform: translate(40px, -20px); opacity:0 } }
@keyframes vs-dust-b { 0% { transform: translate(0,0); opacity:0 } 10% { opacity:.8 } 90% { opacity:.8 } 100% { transform: translate(-30px, -30px); opacity:0 } }

.scn-stiletto-recognized { background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #0e0e1a 100%), radial-gradient(ellipse at 40% 50%, #1a1a30 0%, transparent 60%); }
.scn-stiletto-recognized .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #1a1a30 0%, #0a0a14 100%); opacity:.6; }
.scn-stiletto-recognized .hand-grip { position:absolute; left:35%; bottom:10%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-8deg); box-shadow: -4px 0 10px rgba(0,0,0,.6); animation: sr-hand 5s ease-in-out infinite; }
.scn-stiletto-recognized .blade { position:absolute; left:38%; bottom:35%; width:1.5%; height:30%; background: linear-gradient(180deg, #c0c0d0 0%, #9090a0 40%, #505060 100%); border-radius: 10% 10% 30% 30% / 10% 10% 40% 40%; transform: rotate(-8deg); box-shadow: 0 0 6px rgba(150,150,180,.3); animation: sr-blade 4s ease-in-out infinite; }
.scn-stiletto-recognized .edge-highlight { position:absolute; left:38.4%; bottom:35%; width:0.3%; height:30%; background: linear-gradient(180deg, #e0e0f0 0%, #b0b0c0 40%, #606070 100%); transform: rotate(-8deg); opacity:.6; animation: sr-edge 4s ease-in-out infinite; }
.scn-stiletto-recognized .shadow-blade { position:absolute; left:36%; bottom:10%; width:2%; height:55%; background: linear-gradient(180deg, transparent 0%, #05050a 40%, #05050a 100%); transform: rotate(-8deg) translateX(6px); opacity:.4; filter: blur(2px); }
.scn-stiletto-recognized .glint { position:absolute; left:38.5%; bottom:55%; width:4px; height:4px; background: radial-gradient(circle, #ffffff 0%, #c0d0ff 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 3px rgba(200,220,255,.4); animation: sr-glint 3s ease-in-out infinite; }
.scn-stiletto-recognized .particle-ring { position:absolute; left:38%; bottom:50%; width:6%; height:6%; border-radius:50%; background: transparent; box-shadow: 0 0 20px 4px rgba(100,120,180,.1); animation: sr-ring 7s ease-in-out infinite; }
@keyframes sr-hand { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-2px) } 100% { transform: rotate(-9deg) translateY(0) } }
@keyframes sr-blade { 0% { opacity:.8; filter: brightness(1) } 40% { opacity:1; filter: brightness(1.1) } 100% { opacity:.85; filter: brightness(.95) } }
@keyframes sr-edge { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes sr-glint { 0% { transform: scale(1); opacity:.6 } 30% { transform: scale(1.5); opacity:1 } 60% { transform: scale(.8); opacity:.3 } 100% { transform: scale(1); opacity:.5 } }
@keyframes sr-ring { 0% { transform: scale(1); opacity:.1 } 50% { transform: scale(1.3); opacity:.2 } 100% { transform: scale(.9); opacity:.1 } }

.scn-father-potential { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1e1e32 60%, #12121e 100%), radial-gradient(ellipse at 60% 50%, #2e2e4e 0%, transparent 70%); }
.scn-father-potential .wall-panel { position:absolute; left:5%; right:5%; top:5%; bottom:5%; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%); border: 2px solid #3a3a4e; border-radius: 2%; box-shadow: inset 0 0 40px rgba(0,0,0,.3); }
.scn-father-potential .armchair { position:absolute; left:20%; bottom:20%; width:25%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.5), inset 0 4px 8px rgba(60,40,20,.3); }
.scn-father-potential .father-torso { position:absolute; left:27%; bottom:40%; width:10%; height:18%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fp-torso 7s ease-in-out infinite; }
.scn-father-potential .father-head { position:absolute; left:29.5%; bottom:56%; width:6%; height:7%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: fp-head 7s ease-in-out infinite; }
.scn-father-potential .pigeon-gun { position:absolute; left:15%; bottom:28%; width:2%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; transform: rotate(25deg); box-shadow: 2px 0 4px rgba(0,0,0,.4); animation: fp-gun 9s ease-in-out infinite; }
.scn-father-potential .smoke-wisp-a { position:absolute; left:32%; bottom:62%; width:8px; height:12px; background: radial-gradient(ellipse at 50% 100%, rgba(200,200,220,.15) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: fp-smoke-a 8s ease-in-out infinite; }
.scn-father-potential .smoke-wisp-b { position:absolute; left:34%; bottom:65%; width:6px; height:8px; background: radial-gradient(ellipse at 50% 100%, rgba(200,200,220,.1) 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: fp-smoke-b 11s ease-in-out infinite; }
.scn-father-potential .clock-pendulum { position:absolute; left:72%; top:10%; width:2%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform-origin: top center; animation: fp-pendulum 2s ease-in-out infinite; }
@keyframes fp-torso { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fp-head { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fp-gun { 0% { transform: rotate(25deg) translateY(0) } 50% { transform: rotate(27deg) translateY(-2px) } 100% { transform: rotate(24deg) translateY(0) } }
@keyframes fp-smoke-a { 0% { transform: translate(0,0) scale(1); opacity:.3 } 50% { transform: translate(6px,-12px) scale(1.4); opacity:.1 } 100% { transform: translate(10px,-20px) scale(2); opacity:0 } }
@keyframes fp-smoke-b { 0% { transform: translate(0,0) scale(1); opacity:.2 } 50% { transform: translate(-4px,-10px) scale(1.3); opacity:.08 } 100% { transform: translate(-8px,-18px) scale(1.8); opacity:0 } }
@keyframes fp-pendulum { 0% { transform: rotate(0deg) } 25% { transform: rotate(-20deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(20deg) } 100% { transform: rotate(0deg) } }

.scn-second-victim-hint { background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 30%, #0a0a14 100%), radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 70%); }
.scn-second-victim-hint .floor-dark { position:absolute; left:0; right:0; bottom:0; height:50%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-second-victim-hint .victim-one { position:absolute; left:20%; bottom:8%; width:16%; height:20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(-15deg); box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: sv-victim1 8s ease-in-out infinite; }
.scn-second-victim-hint .victim-two { position:absolute; left:50%; bottom:12%; width:14%; height:18%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(10deg); box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: sv-victim2 9s ease-in-out infinite; }
.scn-second-victim-hint .figure-standing { position:absolute; left:65%; bottom:30%; width:10%; height:35%; background: linear-gradient(180deg, #0a0a12 0%, #0a0a12 50%, #1a1a2e 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: -4px 0 8px rgba(0,0,0,.5); animation: sv-standing 6s ease-in-out infinite; }
.scn-second-victim-hint .shadow-pool { position:absolute; left:30%; right:20%; bottom:0; height:15%; background: radial-gradient(ellipse at 50% 0%, #05050a 0%, transparent 100%); opacity:.6; filter: blur(4px); animation: sv-pool 7s ease-in-out infinite; }
.scn-second-victim-hint .drip-a { position:absolute; left:35%; top:45%; width:3px; height:6px; background: linear-gradient(180deg, #3a1a1a 0%, transparent 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; animation: sv-drip-a 3s ease-in-out infinite; }
.scn-second-victim-hint .drip-b { position:absolute; left:55%; top:40%; width:2px; height:5px; background: linear-gradient(180deg, #3a1a1a 0%, transparent 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; animation: sv-drip-b 4s ease-in-out infinite; }
.scn-second-victim-hint .spatter { position:absolute; left:25%; bottom:20%; width:8%; height:4%; background: radial-gradient(ellipse at 50% 50%, #3a1a1a 0%, transparent 100%); opacity:.3; border-radius:50%; filter: blur(2px); animation: sv-spatter 10s ease-in-out infinite; }
@keyframes sv-victim1 { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-13deg) translateY(-2px) } 100% { transform: rotate(-16deg) translateY(0) } }
@keyframes sv-victim2 { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(9deg) translateY(0) } }
@keyframes sv-standing { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(2px) rotate(0deg) } }
@keyframes sv-pool { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.1) } 100% { opacity:.4; transform: scaleY(1) } }
@keyframes sv-drip-a { 0% { transform: translateY(0); opacity:1 } 80% { transform: translateY(30px); opacity:1 } 100% { transform: translateY(35px); opacity:0 } }
@keyframes sv-drip-b { 0% { transform: translateY(0); opacity:1 } 70% { transform: translateY(25px); opacity:1 } 90% { transform: translateY(30px); opacity:0 } 100% { transform: translateY(30px); opacity:0 } }
@keyframes sv-spatter { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.3; transform: scale(1.2) } 100% { opacity:.2; transform: scale(1) } }

/* yacht-identified */
.scn-yacht-identified {
  background: linear-gradient(180deg, #f5e8d0 0%, #e0c8a0 40%, #9ab4d4 70%, #6a8caa 100%),
              radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%);
}
.scn-yacht-identified .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #b0c8e4 0%, #e0d8b8 80%);
  animation: yt-sky 10s ease-in-out infinite alternate;
}
.scn-yacht-identified .sun {
  position:absolute; top:5%; right:20%; width:60px; height:60px;
  background: radial-gradient(circle, #ffe680 0%, #ffcc44 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px rgba(255,200,80,0.4);
  animation: yt-sun 6s ease-in-out infinite alternate;
}
.scn-yacht-identified .sea {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #4a7a9a 0%, #2a4a5a 100%);
  animation: yt-sea 15s ease-in-out infinite;
}
.scn-yacht-identified .hull {
  position:absolute; bottom:40%; left:30%; width:40%; height:12%;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%);
  border-radius: 0 30% 80% 20% / 0 0 100% 100%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: yt-hull 8s ease-in-out infinite alternate;
}
.scn-yacht-identified .deck {
  position:absolute; bottom:50%; left:32%; width:36%; height:4%;
  background: linear-gradient(90deg, #b09070 0%, #d0b090 50%, #a08060 100%);
  border-radius: 2px;
  animation: yt-deck 8s ease-in-out infinite alternate;
}
.scn-yacht-identified .cabin {
  position:absolute; bottom:53%; left:35%; width:12%; height:8%;
  background: linear-gradient(180deg, #c0b0a0 0%, #907060 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 4px 6px rgba(0,0,0,0.3);
}
.scn-yacht-identified .flag {
  position:absolute; bottom:63%; left:55%; width:2%; height:10%;
  background: #6a4a2a;
  transform-origin: bottom center;
  animation: yt-flag 2s ease-in-out infinite;
}
.scn-yacht-identified .flag::after {
  content:''; position:absolute; bottom:100%; left:-4px; width:16px; height:10px;
  background: #c8553d; /* terracotta */
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 50%);
}
@keyframes yt-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes yt-sun { 0% { transform: scale(1) translate(0,0); opacity:0.9 } 50% { transform: scale(1.1) translate(-2px, -2px); opacity:1 } 100% { transform: scale(0.95) translate(2px,2px); opacity:0.85 } }
@keyframes yt-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes yt-hull { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes yt-deck { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes yt-flag { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

/* durnford-avoids */
.scn-durnford-avoids {
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a898 30%, #9a8a7a 60%, #7a6a5a 100%);
  box-shadow: inset 0 0 80px 20px rgba(0,0,0,0.3);
}
.scn-durnford-avoids .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #c8b8a8 0%, #d8c8b8 50%, #b0a090 100%);
  border-bottom: 4px solid #705040;
}
.scn-durnford-avoids .window {
  position:absolute; top:15%; left:55%; width:25%; height:35%;
  background: radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, #c0b090 100%);
  border: 6px solid #705040;
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: da-window 12s ease-in-out infinite alternate;
}
.scn-durnford-avoids .table {
  position:absolute; bottom:30%; left:30%; width:40%; height:10%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-durnford-avoids .figure-a {
  position:absolute; bottom:38%; left:35%; width:14%; height:28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-figure-a 5s ease-in-out infinite;
}
.scn-durnford-avoids .figure-b {
  position:absolute; bottom:38%; left:50%; width:14%; height:28%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-figure-b 6s ease-in-out infinite;
}
.scn-durnford-avoids .shadow-a {
  position:absolute; bottom:30%; left:30%; width:18%; height:4%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: da-shadow 5s ease-in-out infinite;
}
.scn-durnford-avoids .shadow-b {
  position:absolute; bottom:30%; left:46%; width:18%; height:4%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: da-shadow 6s ease-in-out infinite;
}
@keyframes da-window { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:0.9; transform: scale(0.98) } }
@keyframes da-figure-a { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-5px) rotate(-2deg) } 70% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes da-figure-b { 0% { transform: translateX(0) rotate(0deg) } 40% { transform: translateX(4px) rotate(2deg) } 80% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes da-shadow { 0% { transform: scale(1) } 50% { transform: scale(0.9) } 100% { transform: scale(1) } }

/* clever-pair */
.scn-clever-pair {
  background: linear-gradient(180deg, #bc9a6a 0%, #d8b880 30%, #f0d8a0 60%, #e8c890 100%),
              radial-gradient(ellipse at 20% 80%, #f0d8a0 0%, transparent 70%);
}
.scn-clever-pair .bg-road {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #bc9a6a 0%, #9a7a4a 100%);
  animation: cp-road 8s linear infinite;
}
.scn-clever-pair .bg-buildings {
  position:absolute; bottom:30%; left:0; right:0; height:40%;
  background: linear-gradient(90deg, #8a7a5a 0%, #7a6a4a 20%, #9a8a6a 40%, #8a7a5a 60%, #7a6a4a 80%, #8a7a5a 100%);
  clip-path: polygon(0% 100%, 0% 20%, 10% 20%, 10% 40%, 20% 40%, 20% 0%, 30% 0%, 30% 30%, 40% 30%, 40% 10%, 50% 10%, 50% 50%, 60% 50%, 60% 20%, 70% 20%, 70% 0%, 80% 0%, 80% 30%, 90% 30%, 90% 50%, 100% 50%, 100% 100%);
  animation: cp-buildings 20s linear infinite;
}
.scn-clever-pair .runner-a {
  position:absolute; bottom:22%; left:30%; width:12%; height:25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 40% 35% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cp-runner-a 0.6s ease-in-out infinite;
}
.scn-clever-pair .runner-b {
  position:absolute; bottom:22%; left:50%; width:12%; height:25%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 40% 45% 40% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cp-runner-b 0.7s ease-in-out infinite;
}
.scn-clever-pair .dust {
  position:absolute; bottom:20%; left:28%; width:20%; height:6%;
  background: radial-gradient(ellipse, rgba(200,160,100,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: cp-dust 1.2s ease-out infinite;
}
.scn-clever-pair .cloud-shrink {
  position:absolute; top:10%; left:60%; width:80px; height:20px;
  background: rgba(255,255,240,0.3);
  border-radius: 50%;
  filter: blur(5px);
  animation: cp-cloud 30s linear infinite;
}
@keyframes cp-road { 0% { background-position: 0 0 } 100% { background-position: -100px 0 } }
@keyframes cp-buildings { 0% { transform: translateX(0) } 100% { transform: translateX(-60px) } }
@keyframes cp-runner-a { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(3px) rotate(3deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 75% { transform: translateX(4px) rotate(4deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes cp-runner-b { 0% { transform: translateX(0) rotate(5deg) } 25% { transform: translateX(-3px) rotate(-3deg) } 50% { transform: translateX(2px) rotate(2deg) } 75% { transform: translateX(-4px) rotate(-4deg) } 100% { transform: translateX(0) rotate(5deg) } }
@keyframes cp-dust { 0% { opacity:0.5; transform: scale(0.5) translateY(0) } 50% { opacity:0.2; transform: scale(1.5) translateY(-5px) } 100% { opacity:0; transform: scale(2) translateY(-10px) } }
@keyframes cp-cloud { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-40px) scale(0.8) } 100% { transform: translateX(-80px) scale(0.5) } }

/* london-return */
.scn-london-return {
  background: linear-gradient(180deg, #a0a8b8 0%, #b0b8c8 30%, #c0c8d0 60%, #d0d8e0 100%),
              radial-gradient(ellipse at 50% 0%, #c0c8d0 0%, transparent 70%);
}
.scn-london-return .sky-overcast {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #8a92a0 0%, #a0a8b8 40%, #b0b8c8 100%);
  animation: lr-sky 40s ease-in-out infinite alternate;
}
.scn-london-return .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #6a7260 0%, #5a6250 100%);
}
.scn-london-return .fountain {
  position:absolute; bottom:30%; left:44%; width:12%; height:20%;
  background: #607080;
  border-radius: 0 0 50% 50% / 0 0 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-london-return .fountain:before {
  content:''; position:absolute; top:-10%; left:35%; width:30%; height:6%;
  background: #d0e0f0;
  border-radius: 50%;
  animation: lr-water 4s ease-in-out infinite;
}
.scn-london-return .tree {
  position:absolute; bottom:35%; left:10%; width:20%; height:40%;
  background: radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, #3a5a2a 60%, transparent 80%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: lr-tree 20s ease-in-out infinite alternate;
}
.scn-london-return .figure {
  position:absolute; bottom:20%; left:35%; width:10%; height:25%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: lr-walk 6s ease-in-out infinite;
}
.scn-london-return .lamp {
  position:absolute; bottom:15%; left:60%; width:4%; height:25%;
  background: #4a4a5a;
}
.scn-london-return .lamp:after {
  content:''; position:absolute; top:10%; left:-50%; width:200%; height:20%;
  background: radial-gradient(circle, #f0e0b0 0%, transparent 70%);
  border-radius: 50%;
  animation: lr-lamp 5s ease-in-out infinite alternate;
}
.scn-london-return .puddle {
  position:absolute; bottom:5%; left:30%; width:15%; height:4%;
  background: radial-gradient(ellipse, #7a8a9a 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: lr-puddle 8s ease-in-out infinite;
}
.scn-london-return .cloud-slow {
  position:absolute; top:10%; left:20%; width:120px; height:30px;
  background: rgba(200,210,220,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: lr-cloud 60s linear infinite;
}
@keyframes lr-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes lr-water { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.5) } 100% { transform: scaleY(1) } }
@keyframes lr-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(2deg) } }
@keyframes lr-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(6px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lr-lamp { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.9) } }
@keyframes lr-puddle { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.2; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(0.8) } }
@keyframes lr-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(100vw) } }

/* oberg-identity */
.scn-oberg-identity { background: linear-gradient(180deg, #1c1410 0%, #2a1e18 40%, #1a100c 100%), radial-gradient(ellipse at 40% 60%, #3a2a1e 0%, transparent 70%); }
.scn-oberg-identity .shadow-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.7) 0%, transparent 50%, rgba(0,0,0,.5) 100%); animation: oi-shadow 12s ease-in-out infinite alternate; }
.scn-oberg-identity .desk { position:absolute; bottom:10%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #4a3524 0%, #2c1e12 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); animation: oi-desk 10s ease-in-out infinite; }
.scn-oberg-identity .lamp { position:absolute; bottom:28%; left:30%; width:10px; height:24px; background: #5a3a20; border-radius: 4px 4px 2px 2px; transform: rotate(-5deg); animation: oi-lamp 6s ease-in-out infinite; }
.scn-oberg-identity .lamp::after { content:''; position:absolute; top:-8px; left:-6px; width:22px; height:22px; background: radial-gradient(circle, #a08040 0%, #5a3a10 60%); border-radius: 50%; box-shadow: 0 0 18px 6px #7a5a20; }
.scn-oberg-identity .figure { position:absolute; bottom:12%; left:55%; width:40px; height:80px; background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oi-figure 8s ease-in-out infinite; }
.scn-oberg-identity .paper { position:absolute; bottom:26%; left:45%; width:28px; height:18px; background: #4a3a20; border-radius: 2px; transform: rotate(12deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: oi-paper 7s ease-in-out infinite alternate; }
.scn-oberg-identity .hand { position:absolute; bottom:24%; left:50%; width:14px; height:20px; background: #2a1c14; border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom left; animation: oi-hand 5s ease-in-out infinite; }
.scn-oberg-identity .glow { position:absolute; bottom:20%; left:25%; width:80px; height:80px; background: radial-gradient(circle, rgba(160,128,64,.15) 0%, transparent 70%); animation: oi-glow 4s ease-in-out infinite alternate; }
@keyframes oi-shadow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes oi-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes oi-lamp { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-6deg) } }
@keyframes oi-figure { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(2px) rotate(-1deg) } 60% { transform: translateX(-1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes oi-paper { 0% { transform: rotate(12deg) translateX(0) } 50% { transform: rotate(10deg) translateX(2px) } 100% { transform: rotate(14deg) translateX(-1px) } }
@keyframes oi-hand { 0% { transform: rotate(0) translate(0,0) } 40% { transform: rotate(8deg) translate(4px,-3px) } 80% { transform: rotate(-4deg) translate(1px,1px) } 100% { transform: rotate(0) } }
@keyframes oi-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.8; transform: scale(.95) } }

/* oberg-palace */
.scn-oberg-palace { background: linear-gradient(180deg, #2a2028 0%, #1e141c 40%, #100a10 100%), radial-gradient(ellipse at 50% 100%, #3a2a3a 0%, transparent 60%); }
.scn-oberg-palace .wall-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #2a1a22 0%, transparent 100%); animation: op-wall 20s ease-in-out infinite alternate; }
.scn-oberg-palace .wall-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(90deg, transparent 0%, #2a1a22 100%); animation: op-wall 20s ease-in-out infinite alternate-reverse; }
.scn-oberg-palace .floor { position:absolute; bottom:0; left:10%; width:80%; height:8%; background: linear-gradient(180deg, #3a2a2e 0%, #1a1214 100%); border-radius: 2px 2px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.4); }
.scn-oberg-palace .pillar-left { position:absolute; top:5%; left:25%; width:8%; height:85%; background: linear-gradient(90deg, #3a2a30 0%, #2a1a20 50%, #1a1218 100%); border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,.3); animation: op-pillar 30s ease-in-out infinite; }
.scn-oberg-palace .pillar-right { position:absolute; top:5%; right:25%; width:8%; height:85%; background: linear-gradient(90deg, #1a1218 0%, #2a1a20 50%, #3a2a30 100%); border-radius: 4px; box-shadow: -4px 0 12px rgba(0,0,0,.3); animation: op-pillar 30s ease-in-out infinite reverse; }
.scn-oberg-palace .lantern { position:absolute; bottom:30%; left:48%; width:12px; height:20px; background: #4a3a2a; border-radius: 4px; animation: op-lantern 8s ease-in-out infinite; }
.scn-oberg-palace .lantern::after { content:''; position:absolute; top:-6px; left:-4px; width:20px; height:20px; background: radial-gradient(circle, #c0a060 0%, #8a6a30 60%); border-radius: 50%; box-shadow: 0 0 20px 8px #8a6a30, 0 0 40px 16px rgba(138,106,48,.3); }
.scn-oberg-palace .torch { position:absolute; top:10%; right:15%; width:6px; height:18px; background: #5a3a1a; border-radius: 2px; transform: rotate(15deg); animation: op-torch 4s ease-in-out infinite alternate; }
.scn-oberg-palace .torch::before { content:''; position:absolute; top:-12px; left:-4px; width:14px; height:18px; background: radial-gradient(circle, #f0a040 0%, #b06020 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #b06020; }
.scn-oberg-palace .shadow-arch { position:absolute; top:0; left:35%; width:30%; height:100%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%); animation: op-arch 25s ease-in-out infinite; }
@keyframes op-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes op-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes op-lantern { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes op-torch { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(12deg) scale(1.1) } 100% { transform: rotate(18deg) scale(.95) } }
@keyframes op-arch { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.4 } }

/* strangler-of-finland */
.scn-strangler-of-finland { background: linear-gradient(180deg, #0e0a12 0%, #1c1424 40%, #140e1a 100%), radial-gradient(ellipse at 20% 40%, #2a1e34 0%, transparent 60%); }
.scn-strangler-of-finland .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1420 0%, #0e0a12 100%); animation: sf-room 18s ease-in-out infinite alternate; }
.scn-strangler-of-finland .table { position:absolute; bottom:15%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #2a1a22 0%, #1a0e14 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.7); animation: sf-table 12s ease-in-out infinite; }
.scn-strangler-of-finland .miniature { position:absolute; bottom:25%; left:45%; width:16px; height:20px; background: linear-gradient(180deg, #a08040 0%, #6a5020 100%); border-radius: 2px; box-shadow: 0 0 8px 2px #8a6a30; transform: rotate(10deg); animation: sf-mini 7s ease-in-out infinite; }
.scn-strangler-of-finland .hand-reach { position:absolute; bottom:22%; left:40%; width:12px; height:30px; background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: sf-hand 5s ease-in-out infinite; }
.scn-strangler-of-finland .shadow-window { position:absolute; top:0; left:20%; width:60%; height:50%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); border-radius: 0 0 30% 30%; animation: sf-window 20s ease-in-out infinite alternate; }
.scn-strangler-of-finland .curtain { position:absolute; top:2%; left:18%; width:64%; height:40%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,.5); animation: sf-curtain 15s ease-in-out infinite; }
.scn-strangler-of-finland .moon-glow { position:absolute; top:5%; left:40%; width:80px; height:80px; background: radial-gradient(circle, rgba(180,180,220,.1) 0%, transparent 70%); animation: sf-moon 25s ease-in-out infinite alternate; }
@keyframes sf-room { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes sf-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sf-mini { 0% { transform: rotate(10deg) translateX(0) } 40% { transform: rotate(8deg) translateX(1px) } 80% { transform: rotate(12deg) translateX(-1px) } 100% { transform: rotate(10deg) } }
@keyframes sf-hand { 0% { transform: rotate(0) translate(0,0) } 30% { transform: rotate(20deg) translate(6px,-8px) } 70% { transform: rotate(-10deg) translate(2px,-2px) } 100% { transform: rotate(0) } }
@keyframes sf-window { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes sf-curtain { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(.98) } }
@keyframes sf-moon { 0% { transform: scale(1) translateX(-10px) } 50% { transform: scale(1.2) translateX(0) } 100% { transform: scale(.9) translateX(10px) } }

/* led-to-elma */
.scn-led-to-elma { background: linear-gradient(180deg, #120e16 0%, #1a1420 50%, #0e0a12 100%), radial-gradient(ellipse at 50% 30%, #2a1e2c 0%, transparent 70%); }
.scn-led-to-elma .corridor { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(30,20,30,.3) 40px, rgba(30,20,30,.3) 42px); animation: le-corridor 15s linear infinite; }
.scn-led-to-elma .lantern { position:absolute; bottom:40%; left:30%; width:14px; height:22px; background: #4a3a2a; border-radius: 4px; animation: le-lantern 3s ease-in-out infinite alternate; }
.scn-led-to-elma .lantern::after { content:''; position:absolute; top:-8px; left:-4px; width:22px; height:22px; background: radial-gradient(circle, #e0a040 0%, #a07020 60%); border-radius: 50%; box-shadow: 0 0 24px 8px #a07020, 0 0 50px 20px rgba(160,112,32,.3); }
.scn-led-to-elma .guide-figure { position:absolute; bottom:10%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #1a1418 0%, #0a080c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: le-guide 5s ease-in-out infinite; }
.scn-led-to-elma .shadow-tunnel { position:absolute; top:0; left:45%; width:55%; height:100%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: le-tunnel 8s ease-in-out infinite alternate; }
.scn-led-to-elma .foot-left { position:absolute; bottom:8%; left:28%; width:8px; height:4px; background: #2a1e22; border-radius: 50%; animation: le-foot-l 4s ease-in-out infinite; }
.scn-led-to-elma .foot-right { position:absolute; bottom:8%; left:42%; width:8px; height:4px; background: #2a1e22; border-radius: 50%; animation: le-foot-r 4s ease-in-out infinite; animation-delay: 2s; }
.scn-led-to-elma .arch { position:absolute; top:0; left:10%; width:80%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%); animation: le-arch 12s ease-in-out infinite; }
@keyframes le-corridor { 0% { background-position: 0 0 } 100% { background-position: 80px 0 } }
@keyframes le-lantern { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes le-guide { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(-1deg) } }
@keyframes le-tunnel { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes le-foot-l { 0% { transform: translateX(0) } 20% { transform: translateX(10px) } 40% { transform: translateX(20px) } 60% { transform: translateX(30px) } 80% { transform: translateX(40px) } 100% { transform: translateX(50px) } }
@keyframes le-foot-r { 0% { transform: translateX(0) } 20% { transform: translateX(10px) } 40% { transform: translateX(20px) } 60% { transform: translateX(30px) } 80% { transform: translateX(40px) } 100% { transform: translateX(50px) } }
@keyframes le-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(.98) } }

/* carriage-drive – tense overcast */
.scn-carriage-drive {
  background: 
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 30%, #4a5a6a 0%, transparent 70%);
}
.scn-carriage-drive .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%);
  animation: cd-sky 12s ease-in-out infinite alternate;
}
.scn-carriage-drive .road {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 0 0 10% 10%;
  animation: cd-road 8s ease-in-out infinite;
}
.scn-carriage-drive .hill-left {
  position: absolute; bottom: 25%; left: 0; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 30% 100%, #2a3a3a 0%, transparent 70%);
  border-radius: 0 60% 0 0;
  animation: cd-hill 20s ease-in-out infinite alternate;
}
.scn-carriage-drive .hill-right {
  position: absolute; bottom: 25%; right: 0; width: 50%; height: 35%;
  background: radial-gradient(ellipse at 70% 100%, #1a2a2a 0%, transparent 70%);
  border-radius: 60% 0 0 0;
  animation: cd-hill 18s ease-in-out infinite alternate-reverse;
}
.scn-carriage-drive .carriage {
  position: absolute; bottom: 18%; left: 30%; width: 70px; height: 45px;
  background: linear-gradient(135deg, #3a2a1a, #1a1a0a);
  border-radius: 15% 15% 5% 5%;
  box-shadow: 4px 4px 8px rgba(0,0,0,0.6);
  animation: cd-carriage 4s ease-in-out infinite;
}
.scn-carriage-drive .horse-1 {
  position: absolute; bottom: 20%; left: 22%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 60%, #2a2a1a, #0a0a00);
  border-radius: 40% 40% 30% 30%;
  animation: cd-horse 0.6s ease-in-out infinite alternate;
}
.scn-carriage-drive .horse-2 {
  position: absolute; bottom: 20%; left: 15%; width: 28px; height: 38px;
  background: radial-gradient(ellipse at 50% 60%, #2a2a1a, #0a0a00);
  border-radius: 40% 40% 30% 30%;
  animation: cd-horse 0.7s ease-in-out infinite alternate-reverse;
}
.scn-carriage-drive .cloud-1 {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.1) 100%);
  filter: blur(8px);
  animation: cd-cloud 40s linear infinite;
}
.scn-carriage-drive .cloud-2 {
  position: absolute; top: 18%; right: 10%; width: 70px; height: 15px;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%);
  filter: blur(6px);
  animation: cd-cloud 50s linear infinite reverse;
}
@keyframes cd-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cd-road { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes cd-hill { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(2px) scale(0.98) } }
@keyframes cd-carriage { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes cd-horse { 0% { transform: translateY(0) rotate(-5deg) } 100% { transform: translateY(-4px) rotate(5deg) } }
@keyframes cd-cloud { 0% { transform: translateX(-100px) } 100% { transform: translateX(120vw) } }

/* driver-felix – tense overcast */
.scn-driver-felix {
  background: 
    linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 40%, #1a2a2a 100%),
    radial-gradient(ellipse at 50% 20%, #4a5a5a 0%, transparent 70%);
}
.scn-driver-felix .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 100%);
  animation: df-sky 10s ease-in-out infinite alternate;
}
.scn-driver-felix .quay {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a3a2a, #1a2a1a);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  animation: df-quay 14s ease-in-out infinite alternate;
}
.scn-driver-felix .carriage {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #3a2a1a, #1a1a0a);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 3px 3px 10px rgba(0,0,0,0.7);
  animation: df-carriage 3s ease-in-out infinite;
}
.scn-driver-felix .driver {
  position: absolute; bottom: 30%; left: 44%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: df-driver 4s ease-in-out infinite alternate;
}
.scn-driver-felix .horse-a {
  position: absolute; bottom: 22%; left: 28%; width: 35px; height: 42px;
  background: radial-gradient(ellipse at 50% 60%, #2a2a1a, #0a0a00);
  border-radius: 40% 40% 30% 30%;
  animation: df-horse 0.5s ease-in-out infinite alternate;
}
.scn-driver-felix .horse-b {
  position: absolute; bottom: 22%; left: 20%; width: 32px; height: 40px;
  background: radial-gradient(ellipse at 50% 60%, #2a2a1a, #0a0a00);
  border-radius: 40% 40% 30% 30%;
  animation: df-horse 0.6s ease-in-out infinite alternate-reverse;
}
.scn-driver-felix .horse-c {
  position: absolute; bottom: 22%; left: 36%; width: 30px; height: 38px;
  background: radial-gradient(ellipse at 50% 60%, #2a2a1a, #0a0a00);
  border-radius: 40% 40% 30% 30%;
  animation: df-horse 0.7s ease-in-out infinite alternate;
  animation-delay: 0.1s;
}
.scn-driver-felix .lamp {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 10px;
  background: radial-gradient(circle, #c0a040 0%, #a08030 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(192,160,64,0.7);
  animation: df-lamp 2s ease-in-out infinite alternate;
}
.scn-driver-felix .mist {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.15) 100%);
  filter: blur(12px);
  animation: df-mist 8s ease-in-out infinite alternate;
}
@keyframes df-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes df-quay { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.03) } }
@keyframes df-carriage { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(10px) rotate(2deg) } }
@keyframes df-driver { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes df-horse { 0% { transform: translateY(0) rotate(-3deg) } 100% { transform: translateY(-5px) rotate(3deg) } }
@keyframes df-lamp { 0% { box-shadow: 0 0 10px 2px rgba(192,160,64,0.4); opacity:0.7 } 100% { box-shadow: 0 0 30px 10px rgba(192,160,64,0.9); opacity:1 } }
@keyframes df-mist { 0% { opacity:0.3; transform: translateY(0) } 100% { opacity:0.7; transform: translateY(-10px) } }

/* nystad-bound – calm overcast */
.scn-nystad-bound {
  background: 
    linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 50%, #3a4a3a 100%),
    radial-gradient(ellipse at 50% 30%, #8a9a8a 0%, transparent 70%);
}
.scn-nystad-bound .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #8a9a8a 0%, #7a8a7a 100%);
  animation: nb-sky 15s ease-in-out infinite alternate;
}
.scn-nystad-bound .fields {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a6a4a, #3a4a2a);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
}
.scn-nystad-bound .road {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 5% 5% 50% 50%;
  animation: nb-road 6s ease-in-out infinite;
}
.scn-nystad-bound .town-distant {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #5a5a4a, #3a3a2a);
  border-radius: 10% 10% 0 0;
  animation: nb-town 20s ease-in-out infinite alternate;
}
.scn-nystad-bound .tree-1 {
  position: absolute; bottom: 22%; left: 10%; width: 12px; height: 45px;
  background: linear-gradient(180deg, #2a4a2a, #1a3a1a);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: nb-tree 8s ease-in-out infinite alternate;
}
.scn-nystad-bound .tree-2 {
  position: absolute; bottom: 20%; right: 15%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #2a4a2a, #1a3a1a);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: nb-tree 10s ease-in-out infinite alternate-reverse;
}
.scn-nystad-bound .carriage {
  position: absolute; bottom: 15%; left: 45%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #4a3a2a, #2a1a0a);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: nb-carriage 5s ease-in-out infinite;
}
.scn-nystad-bound .bird {
  position: absolute; top: 12%; left: 40%; width: 20px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #4a4a4a, #2a2a2a);
  border-radius: 50%;
  animation: nb-bird 7s ease-in-out infinite alternate;
}
@keyframes nb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes nb-road { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } }
@keyframes nb-town { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(2px) scale(0.98) } }
@keyframes nb-tree { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes nb-carriage { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes nb-bird { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(20px) translateY(-8px) } 100% { transform: translateX(40px) translateY(0) } }

/* post-house-dadendal – tense dusk */
.scn-post-house-dadendal {
  background: 
    linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 10%, #7a4a3a 0%, transparent 70%);
}
.scn-post-house-dadendal .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  animation: ph-sky 8s ease-in-out infinite alternate;
}
.scn-post-house-dadendal .landscape {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 20% 80% 0 0 / 60% 90% 0 0;
}
.scn-post-house-dadendal .house {
  position: absolute; bottom: 25%; left: 35%; width: 90px; height: 55px;
  background: linear-gradient(135deg, #5a3a2a, #2a1a0a);
  border-radius: 5% 5% 3% 3%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.8);
  animation: ph-house 3s ease-in-out infinite;
}
.scn-post-house-dadendal .chimney {
  position: absolute; bottom: 60%; left: 48%; width: 10px; height: 20px;
  background: #2a1a0a;
  border-radius: 10% 10% 0 0;
  animation: ph-chimney 4s ease-in-out infinite alternate;
}
.scn-post-house-dadendal .smoke {
  position: absolute; bottom: 70%; left: 48%; width: 14px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ph-smoke 6s ease-out infinite;
}
.scn-post-house-dadendal .horse-1 {
  position: absolute; bottom: 20%; left: 22%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 60%, #2a1a0a, #0a0a00);
  border-radius: 40% 40% 30% 30%;
  animation: ph-horse 0.5s ease-in-out infinite alternate;
}
.scn-post-house-dadendal .horse-2 {
  position: absolute; bottom: 20%; left: 14%; width: 28px; height: 38px;
  background: radial-gradient(ellipse at 50% 60%, #2a1a0a, #0a0a00);
  border-radius: 40% 40% 30% 30%;
  animation: ph-horse 0.6s ease-in-out infinite alternate-reverse;
}
.scn-post-house-dadendal .figure {
  position: absolute; bottom: 22%; left: 30%; width: 14px; height: 28px;
  background: radial-gradient(ellipse at 50% 40%, #1a0a00, #0a0000);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ph-figure 5s ease-in-out infinite alternate;
}
.scn-post-house-dadendal .lamp-glow {
  position: absolute; bottom: 30%; left: 38%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d08040 0%, #b06030 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(208,128,64,0.6);
  animation: ph-lamp 2s ease-in-out infinite alternate;
}
@keyframes ph-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ph-house { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ph-chimney { 0% { transform: scaleY(1) } 100% { transform: scaleY(0.9) } }
@keyframes ph-smoke { 0% { transform: translateY(0) scale(0.5); opacity:0.6 } 100% { transform: translateY(-40px) scale(2); opacity:0 } }
@keyframes ph-horse { 0% { transform: translateY(0) rotate(-4deg) } 100% { transform: translateY(-3px) rotate(4deg) } }
@keyframes ph-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ph-lamp { 0% { box-shadow: 0 0 15px 4px rgba(208,128,64,0.3); opacity:0.7 } 100% { box-shadow: 0 0 40px 12px rgba(208,128,64,0.8); opacity:1 } }

/* mystery-identity */
.scn-mystery-identity { background: linear-gradient(180deg, #1a1423 0%, #2a1e38 30%, #1e1825 70%, #0f0c18 100%), radial-gradient(ellipse at 50% 20%, #2a1e38 0%, transparent 60%); }
.scn-mystery-identity .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1423 0%, #0f0c18 100%); animation: mi-bg 12s ease-in-out infinite alternate; }
.scn-mystery-identity .wall { position:absolute; bottom:40%; left:0; right:0; height:60%; background: linear-gradient(180deg, #2a1e38 0%, #1a1423 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,.6); }
.scn-mystery-identity .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1e1825 0%, #0f0c18 100%); }
.scn-mystery-identity .desk { position:absolute; bottom:15%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #3a2e4a 0%, #2a1e38 100%); border-radius:4% 4% 6% 6%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: mi-desk 8s ease-in-out infinite; }
.scn-mystery-identity .lamp { position:absolute; bottom:27%; left:35%; width:10px; height:20px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 30px 8px #c8a868, 0 0 60px 20px rgba(200,168,104,.3); animation: mi-lamp 3s ease-in-out infinite alternate; }
.scn-mystery-identity .figure { position:absolute; bottom:12%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #2a1e38 0%, #0f0c18 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mi-figure 5s ease-in-out infinite; }
.scn-mystery-identity .document { position:absolute; bottom:17%; left:38%; width:30px; height:20px; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius:4%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: mi-document 9s ease-in-out infinite; }
@keyframes mi-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mi-desk { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } }
@keyframes mi-lamp { 0% { box-shadow: 0 0 20px 4px #c8a868, 0 0 40px 10px rgba(200,168,104,.3); opacity:.8 } 50% { box-shadow: 0 0 40px 12px #e0c080, 0 0 80px 20px rgba(224,192,128,.5); opacity:1 } 100% { box-shadow: 0 0 30px 6px #c8a868, 0 0 50px 12px rgba(200,168,104,.35); opacity:.9 } }
@keyframes mi-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes mi-document { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* mackenzie-told */
.scn-mackenzie-told { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 30%, #1e1e32 70%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 60%); }
.scn-mackenzie-told .station-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); animation: mt-bg 10s ease-in-out infinite alternate; }
.scn-mackenzie-told .table { position:absolute; bottom:10%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius:6% 6% 8% 8%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: mt-table 6s ease-in-out infinite; }
.scn-mackenzie-told .figure-left { position:absolute; bottom:12%; left:25%; width:18px; height:45px; background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mt-figure-l 4s ease-in-out infinite; }
.scn-mackenzie-told .figure-right { position:absolute; bottom:12%; right:25%; width:18px; height:45px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a44 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mt-figure-r 4s ease-in-out infinite 2s; }
.scn-mackenzie-told .lamp { position:absolute; bottom:25%; left:45%; width:12px; height:24px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 30px 8px #c8a868, 0 0 60px 20px rgba(200,168,104,.3); animation: mt-lamp 3s ease-in-out infinite alternate; }
.scn-mackenzie-told .shadow { position:absolute; bottom:7%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); border-radius:50%; filter: blur(8px); animation: mt-shadow 8s ease-in-out infinite; }
@keyframes mt-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mt-table { 0%,100% { transform: scale(1) } 50% { transform: scale(1.03) translateY(-3px) } }
@keyframes mt-figure-l { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes mt-figure-r { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes mt-lamp { 0% { box-shadow: 0 0 20px 4px #c8a868, 0 0 40px 10px rgba(200,168,104,.3); opacity:.8 } 50% { box-shadow: 0 0 40px 12px #e0c080, 0 0 80px 20px rgba(224,192,128,.5); opacity:1 } 100% { box-shadow: 0 0 30px 6px #c8a868, 0 0 50px 12px rgba(200,168,104,.35); opacity:.9 } }
@keyframes mt-shadow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.05) } 100% { opacity:.4; transform: scale(1) } }

/* night-search */
.scn-night-search { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4a 40%, #2a2a5a 70%, #0a0a1a 100%), radial-gradient(ellipse at 60% 20%, #3a3a6a 0%, transparent 50%); }
.scn-night-search .night-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4a 100%); animation: ns-sky 15s ease-in-out infinite alternate; }
.scn-night-search .moon { position:absolute; top:8%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #e8e8f0 0%, #c8c8d8 70%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(200,200,220,.4); animation: ns-moon 20s ease-in-out infinite alternate; }
.scn-night-search .hills { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 60% 40% 0 0 / 70% 60% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.5); animation: ns-hills 12s ease-in-out infinite alternate; }
.scn-night-search .stream { position:absolute; bottom:15%; left:0; right:0; height:18%; background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%); border-radius: 30% 70% 0 0; animation: ns-stream 5s ease-in-out infinite; }
.scn-night-search .boulder { position:absolute; bottom:22%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:60% 40% 30% 50% / 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: ns-boulder 10s ease-in-out infinite; }
.scn-night-search .lantern.left { position:absolute; bottom:26%; left:30%; width:8px; height:16px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:20%; box-shadow: 0 0 20px 6px #c8a868, 0 0 40px 12px rgba(200,168,104,.3); animation: ns-lantern-l 4s ease-in-out infinite alternate; }
.scn-night-search .lantern.right { position:absolute; bottom:26%; right:30%; width:8px; height:16px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:20%; box-shadow: 0 0 20px 6px #c8a868, 0 0 40px 12px rgba(200,168,104,.3); animation: ns-lantern-r 4s ease-in-out infinite alternate 1.5s; }
.scn-night-search .figure { position:absolute; bottom:18%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ns-figure 6s ease-in-out infinite; }
@keyframes ns-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ns-moon { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(10px) translateY(-5px) scale(1.05) } 100% { transform: translateX(0) translateY(0) scale(1) } }
@keyframes ns-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ns-stream { 0% { background-position: 0 0; opacity:.8 } 50% { background-position: 100% 0; opacity:1 } 100% { background-position: 0 0; opacity:.8 } }
@keyframes ns-boulder { 0%,100% { transform: scale(1) } 50% { transform: scale(1.04) translateY(-2px) } }
@keyframes ns-lantern-l { 0% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-3px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes ns-lantern-r { 0% { transform: rotate(4deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-3px) } 100% { transform: rotate(4deg) translateY(0) } }
@keyframes ns-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* body-gone */
.scn-body-gone { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #2a2a3e 60%, #0a0a1a 100%), radial-gradient(ellipse at 40% 30%, #2a2a3e 0%, transparent 50%); }
.scn-body-gone .moor-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); animation: bg-sky 14s ease-in-out infinite alternate; }
.scn-body-gone .trees { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: bg-trees 20s ease-in-out infinite alternate; }
.scn-body-gone .stream { position:absolute; bottom:12%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a3e 0%, #0a1a2e 100%); border-radius: 40% 60% 0 0; animation: bg-stream 6s ease-in-out infinite; }
.scn-body-gone .boulder { position:absolute; bottom:20%; left:35%; width:35px; height:25px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:50% 40% 30% 60% / 40% 50% 50% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: bg-boulder 12s ease-in-out infinite; }
.scn-body-gone .figure { position:absolute; bottom:16%; left:42%; width:14px; height:38px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bg-figure 7s ease-in-out infinite; }
.scn-body-gone .lantern { position:absolute; bottom:22%; left:44%; width:8px; height:14px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:20%; box-shadow: 0 0 25px 8px #c8a868, 0 0 50px 16px rgba(200,168,104,.25); animation: bg-lantern 3.5s ease-in-out infinite alternate; }
.scn-body-gone .fog { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(200,200,220,.15) 50%, rgba(220,220,240,.1) 100%); filter: blur(12px); animation: bg-fog 40s linear infinite; }
@keyframes bg-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes bg-trees { 0% { transform: scale(1) } 50% { transform: scale(1.03) translateY(-3px) } 100% { transform: scale(1) } }
@keyframes bg-stream { 0% { opacity:.8; background-position: 0 0 } 50% { opacity:1; background-position: 100% 0 } 100% { opacity:.8; background-position: 0 0 } }
@keyframes bg-boulder { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-2px) } }
@keyframes bg-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bg-lantern { 0% { transform: rotate(-5deg) translateY(0); box-shadow: 0 0 20px 4px #c8a868, 0 0 40px 10px rgba(200,168,104,.25) } 50% { transform: rotate(5deg) translateY(-4px); box-shadow: 0 0 35px 10px #e0c080, 0 0 70px 20px rgba(224,192,128,.4) } 100% { transform: rotate(-5deg) translateY(0); box-shadow: 0 0 20px 4px #c8a868, 0 0 40px 10px rgba(200,168,104,.25) } }
@keyframes bg-fog { 0% { opacity:.3; transform: translateX(-10%) } 50% { opacity:.6; transform: translateX(10%) } 100% { opacity:.3; transform: translateX(-10%) } }

.scn-hotel-helsingfors {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #c8b89a 40%, #a6886a 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e7 0%, transparent 60%);
}
.scn-hotel-helsingfors .lobby-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #d4c4a8 0%, #ecdcc4 50%, #d4c4a8 100%);
  border-bottom: 4px solid #b09878;
}
.scn-hotel-helsingfors .lobby-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a080 0%, #907860 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
}
.scn-hotel-helsingfors .column {
  position: absolute; bottom: 35%; width: 12px; height: 65%;
  background: linear-gradient(180deg, #e8dcc4 0%, #d0bea0 50%, #b8a080 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 0 10px rgba(0,0,0,0.2);
}
.scn-hotel-helsingfors .col-left { left: 20%; }
.scn-hotel-helsingfors .col-right { right: 20%; }
.scn-hotel-helsingfors .chandelier {
  position: absolute; top: 4%; left: 50%; width: 60px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff0d0 0%, #e0c090 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(224,192,144,0.5);
  animation: hoh-chandelier 8s ease-in-out infinite alternate;
}
.scn-hotel-helsingfors .window-arch {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a0c8e0 0%, #d0e8f0 50%, #ffffff 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  border: 6px solid #b09878;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.4);
  animation: hoh-window 12s ease-in-out infinite;
}
.scn-hotel-helsingfors .door {
  position: absolute; bottom: 35%; left: 50%; width: 34px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 8% 8% 4% 4%; border: 2px solid #907860;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.4);
}
.scn-hotel-helsingfors .guest-silhouette {
  position: absolute; bottom: 35%; left: 30%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1810 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hoh-guest 9s ease-in-out infinite;
}
@keyframes hoh-chandelier {
  0% { transform: translateX(-50%) rotate(-2deg); opacity: 0.9; }
  50% { transform: translateX(-50%) rotate(0deg); opacity: 1; box-shadow: 0 0 50px 15px rgba(224,192,144,0.6); }
  100% { transform: translateX(-50%) rotate(2deg); opacity: 0.95; }
}
@keyframes hoh-window {
  0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); }
  50% { box-shadow: inset 0 0 30px rgba(255,255,200,0.6); }
  100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); }
}
@keyframes hoh-guest {
  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(0deg); }
}

.scn-palace-concierge {
  background:
    linear-gradient(180deg, #ede4d0 0%, #d8ccb4 40%, #b8a88c 100%),
    radial-gradient(ellipse at 50% 15%, #fffbf0 0%, transparent 60%);
}
.scn-palace-concierge .concierge-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #dcd0ba 0%, #ede4d0 50%, #dcd0ba 100%);
  border-bottom: 6px solid #b09878;
}
.scn-palace-concierge .concierge-desk {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #8a7058 0%, #6a5040 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.2);
}
.scn-palace-concierge .concierge-clerk {
  position: absolute; bottom: 42%; left: 48%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pco-clerk 6s ease-in-out infinite;
}
.scn-palace-concierge .clock {
  position: absolute; top: 14%; left: 50%; width: 28px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e0d0b0 0%, #b8a080 80%);
  border-radius: 50%; border: 4px solid #8a7058;
  box-shadow: 0 0 12px rgba(0,0,0,0.2);
  animation: pco-clock 10s linear infinite;
}
.scn-palace-concierge .waiting-chair {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2), -2px 0 6px rgba(0,0,0,0.1);
}
.scn-palace-concierge .door-framed {
  position: absolute; bottom: 30%; right: 20%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 4% 4%; border: 4px solid #8a7058;
}
.scn-palace-concierge .crystal-vase {
  position: absolute; bottom: 35%; left: 20%; width: 14px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,200,230,0.3) 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: inset 0 0 10px rgba(255,255,255,0.3), 0 0 6px rgba(200,200,230,0.2);
  animation: pco-vase 7s ease-in-out infinite;
}
@keyframes pco-clerk {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes pco-clock {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}
@keyframes pco-vase {
  0% { opacity: 0.7; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
  100% { opacity: 0.7; transform: translateY(0); }
}

.scn-colonel-luganski {
  background:
    linear-gradient(180deg, #d4c8b0 0%, #b8a88c 30%, #9a8870 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
}
.scn-colonel-luganski .office-wall {
  position: absolute; inset: 0 0 32% 0;
  background: linear-gradient(90deg, #c8b89a 0%, #dcd0ba 50%, #c8b89a 100%);
  border-bottom: 4px solid #9a8870;
}
.scn-colonel-luganski .office-desk {
  position: absolute; bottom: 32%; left: 25%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #7a6850 0%, #5a4838 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.15);
}
.scn-colonel-luganski .colonel-figure {
  position: absolute; bottom: 46%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: col-figure 8s ease-in-out infinite;
}
.scn-colonel-luganski .window-shutters {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #a08870 0%, #7a6850 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: col-shutters 14s ease-in-out infinite alternate;
}
.scn-colonel-luganski .map-roll {
  position: absolute; bottom: 40%; left: 12%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c8b89a 0%, #a08870 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-colonel-luganski .inkwell {
  position: absolute; bottom: 38%; left: 30%; width: 12px; height: 10px;
  background: radial-gradient(circle, #3a2e22 0%, #1e1610 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-colonel-luganski .lamp-glow {
  position: absolute; top: 30%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff0c0 0%, #e0b080 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(224,176,128,0.4);
  animation: col-lamp 6s ease-in-out infinite;
}
@keyframes col-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(-1deg); }
  60% { transform: translateY(0) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes col-shutters {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05); }
  100% { opacity: 0.8; transform: scaleX(1); }
}
@keyframes col-lamp {
  0% { box-shadow: 0 0 20px 5px rgba(224,176,128,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px rgba(224,176,128,0.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px rgba(224,176,128,0.35); opacity: 0.85; }
}

.scn-conspiracy-ruse {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #3a2e22 30%, #2a1e14 100%),
    radial-gradient(ellipse at 40% 30%, #7a5a40 0%, transparent 60%);
}
.scn-conspiracy-ruse .tense-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #4a3828 0%, #5a4838 50%, #4a3828 100%);
  border-bottom: 3px solid #3a2e22;
}
.scn-conspiracy-ruse .tense-desk {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-conspiracy-ruse .figure-a {
  position: absolute; bottom: 44%; left: 38%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: crs-figure-a 3s ease-in-out infinite;
}
.scn-conspiracy-ruse .figure-b {
  position: absolute; bottom: 44%; right: 38%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: crs-figure-b 3.2s ease-in-out infinite reverse;
}
.scn-conspiracy-ruse .lamp-harsh {
  position: absolute; top: 25%; left: 50%; width: 24px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #e8b080 0%, #a06840 50%, transparent 75%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 40px 15px rgba(200,120,60,0.5), 0 0 80px 30px rgba(200,120,60,0.2);
  animation: crs-lamp 2s ease-in-out infinite alternate;
}
.scn-conspiracy-ruse .clock-fast {
  position: absolute; top: 10%; right: 12%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c8b89a 0%, #8a7058 80%);
  border-radius: 50%; border: 3px solid #6a5040;
  animation: crs-clock 2s linear infinite;
}
.scn-conspiracy-ruse .shadow-slice {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,8,6,0.6) 100%);
  pointer-events: none;
  animation: crs-shadow 4s ease-in-out infinite;
}
@keyframes crs-figure-a {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes crs-figure-b {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes crs-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(200,120,60,0.4); opacity: 0.8; transform: translateX(-50%) scale(1); }
  50% { box-shadow: 0 0 60px 20px rgba(200,120,60,0.7); opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { box-shadow: 0 0 35px 12px rgba(200,120,60,0.45); opacity: 0.85; transform: translateX(-50%) scale(1); }
}
@keyframes crs-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes crs-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

.scn-glen-search { background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 30%, #2a3a3a 60%, #1a2a2a 100%), radial-gradient(ellipse at 50% 40%, #5a6a6a 0%, transparent 70%); }
.scn-glen-search .sky-overcast { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 50%, #3a4a4a 100%); animation: gl-sky 15s ease-in-out infinite alternate; }
.scn-glen-search .trees-bg   { position:absolute; bottom:45%; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%); border-radius:30% 70% 0 0 / 60% 80% 0 0; filter: blur(2px); animation: gl-trees 20s ease-in-out infinite alternate; }
.scn-glen-search .ravine     { position:absolute; bottom:30%; left:30%; right:30%; height:35%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 30%, #0a1a0a 100%); border-radius:0 0 40% 40% / 0 0 60% 60%; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: gl-ravine 25s ease-in-out infinite alternate; }
.scn-glen-search .rivulet    { position:absolute; bottom:28%; left:35%; right:35%; height:4%; background: linear-gradient(90deg, transparent 0%, #5a7a7a 30%, #7a9a9a 50%, #5a7a7a 70%, transparent 100%); filter: blur(1px); border-radius:50%; animation: gl-rivulet 8s ease-in-out infinite alternate; }
.scn-glen-search .figure-a   { position:absolute; bottom:35%; left:25%; width:14px; height:32px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gl-figure-a 6s ease-in-out infinite; }
.scn-glen-search .figure-b   { position:absolute; bottom:38%; right:30%; width:12px; height:28px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gl-figure-b 7s ease-in-out infinite; animation-delay: -2s; }
.scn-glen-search .foliage-left  { position:absolute; bottom:40%; left:0; width:20%; height:40%; background: radial-gradient(ellipse at 30% 100%, #3a4a3a 0%, #1a2a1a 60%, transparent 100%); filter: blur(3px); animation: gl-foliage 30s ease-in-out infinite alternate; }
.scn-glen-search .foliage-right { position:absolute; bottom:45%; right:0; width:25%; height:35%; background: radial-gradient(ellipse at 70% 100%, #3a4a3a 0%, #1a2a1a 60%, transparent 100%); filter: blur(4px); animation: gl-foliage 30s ease-in-out infinite alternate-reverse; }
@keyframes gl-sky      { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes gl-trees    { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(1px) scaleY(0.98) } }
@keyframes gl-ravine   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gl-rivulet  { 0% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.1) } 100% { opacity:0.5; transform: scaleX(0.95) } }
@keyframes gl-figure-a { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 60% { transform: translateX(8px) translateY(0) rotate(-1deg) } 100% { transform: translateX(12px) translateY(1px) rotate(2deg) } }
@keyframes gl-figure-b { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 30% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 60% { transform: translateX(-6px) translateY(0) rotate(1deg) } 100% { transform: translateX(-9px) translateY(1px) rotate(-2deg) } }
@keyframes gl-foliage  { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }

.scn-stream-bed-search { background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 40%, #1a2a2a 70%, #0a1a1a 100%), radial-gradient(ellipse at 50% 80%, #4a5a5a 0%, transparent 60%); }
.scn-stream-bed-search .rock-wall    { position:absolute; inset:0 60% 0 0; background: linear-gradient(90deg, #4a4a3a 0%, #3a3a2a 30%, #2a2a1a 60%, transparent 100%); border-radius:0 20% 20% 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.4); animation: st-rock 20s ease-in-out infinite alternate; }
.scn-stream-bed-search .stream-bg    { position:absolute; bottom:20%; left:20%; right:10%; height:60%; background: linear-gradient(180deg, #2a3a3a 0%, #3a4a4a 30%, #4a5a5a 50%, #3a4a4a 70%, #2a3a3a 100%); border-radius:40% 30% 0 0; filter: blur(2px); animation: st-stream 12s ease-in-out infinite alternate; }
.scn-stream-bed-search .boulder-1    { position:absolute; bottom:30%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius:40% 60% 50% 50% / 50% 50% 60% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: st-boulder 25s ease-in-out infinite alternate; }
.scn-stream-bed-search .boulder-2    { position:absolute; bottom:35%; right:15%; width:30px; height:22px; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius:50% 40% 40% 60% / 60% 40% 40% 50%; box-shadow: 0 3px 6px rgba(0,0,0,.4); animation: st-boulder 25s ease-in-out infinite alternate-reverse; animation-delay: -5s; }
.scn-stream-bed-search .figure-crouch { position:absolute; bottom:30%; left:45%; width:14px; height:26px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; transform: scaleY(0.7); animation: st-crouch 5s ease-in-out infinite; }
.scn-stream-bed-search .splash       { position:absolute; bottom:18%; left:48%; width:20px; height:6px; background: radial-gradient(ellipse, rgba(90,110,110,.6) 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: st-splash 4s ease-in-out infinite; }
.scn-stream-bed-search .mist         { position:absolute; bottom:15%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, rgba(90,110,110,.3) 0%, transparent 100%); filter: blur(8px); animation: st-mist 30s ease-in-out infinite alternate; }
@keyframes st-rock     { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes st-stream   { 0% { background-position: 0% 0%; } 50% { background-position: 10% 5%; } 100% { background-position: -5% -2%; } }
@keyframes st-boulder  { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(1px) rotate(-2deg) } }
@keyframes st-crouch   { 0% { transform: scaleY(0.7) translateX(0) } 30% { transform: scaleY(0.75) translateX(3px) rotate(2deg) } 60% { transform: scaleY(0.7) translateX(6px) } 100% { transform: scaleY(0.7) translateX(9px) rotate(-2deg) } }
@keyframes st-splash   { 0% { opacity:0; transform: scale(0.5) } 30% { opacity:0.8; transform: scale(1.2) } 60% { opacity:0.4; transform: scale(0.8) } 100% { opacity:0; transform: scale(0.3) } }
@keyframes st-mist     { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.1 } }

.scn-afternoon-fail { background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 30%, #1a1a2a 70%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #6a5a4a 0%, transparent 60%); }
.scn-afternoon-fail .dusk-sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 40%, #2a1a2a 70%, #1a0a1a 100%); animation: af-sky 20s ease-in-out infinite alternate; }
.scn-afternoon-fail .distant-hills { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 40%, #1a1a0a 100%); border-radius:60% 40% 0 0 / 80% 70% 0 0; filter: blur(4px); animation: af-hills 30s ease-in-out infinite alternate; }
.scn-afternoon-fail .glen-floor  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 40%, #0a1a0a 100%); border-radius:30% 70% 0 0 / 50% 60% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.4); }
.scn-afternoon-fail .figure-small-a { position:absolute; bottom:15%; left:30%; width:10px; height:24px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: af-fig-a 8s ease-in-out infinite; }
.scn-afternoon-fail .figure-small-b { position:absolute; bottom:18%; right:35%; width:9px; height:22px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: af-fig-b 9s ease-in-out infinite; animation-delay: -3s; }
.scn-afternoon-fail .shadow-tree  { position:absolute; bottom:30%; left:15%; width:15px; height:60px; background: linear-gradient(180deg, transparent 0%, #0a1a0a 50%, #0a0a0a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; filter: blur(3px); animation: af-tree 40s ease-in-out infinite alternate; }
.scn-afternoon-fail .shadow-bush  { position:absolute; bottom:25%; right:10%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 100%, #0a1a0a 0%, transparent 100%); filter: blur(5px); animation: af-bush 35s ease-in-out infinite alternate-reverse; }
@keyframes af-sky    { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes af-hills  { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(1px) scaleX(0.98) } }
@keyframes af-fig-a  { 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(4px) translateY(1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes af-fig-b  { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-6px) translateY(0) rotate(1deg) } 75% { transform: translateX(-3px) translateY(1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes af-tree   { 0% { opacity:0.5; transform: scaleY(1) } 50% { opacity:0.8; transform: scaleY(1.05) } 100% { opacity:0.4; transform: scaleY(0.95) } }
@keyframes af-bush   { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

.scn-rock-overlook { background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 40%, #1a0a1a 70%, #0a0a1a 100%), radial-gradient(ellipse at 50% 80%, #4a3a4a 0%, transparent 60%); }
.scn-rock-overlook .dusk-sky     { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 30%, #1a1a2a 60%, #0a0a1a 100%); animation: ro-sky 25s ease-in-out infinite alternate; }
.scn-rock-overlook .moon-glow    { position:absolute; top:8%; right:25%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,200,220,.3) 0%, rgba(200,200,220,.1) 30%, transparent 70%); border-radius:50%; filter: blur(6px); animation: ro-moon 30s ease-in-out infinite alternate; }
.scn-rock-overlook .rock-mass    { position:absolute; bottom:0; left:20%; right:20%; height:55%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 30%, #1a1a2a 60%, #0a0a1a 100%); border-radius:30% 30% 0 0 / 40% 40% 0 0; clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.5); animation: ro-rock 35s ease-in-out infinite alternate; }
.scn-rock-overlook .figure-spy-a { position:absolute; bottom:48%; left:38%; width:12px; height:20px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: scaleY(0.6); animation: ro-spy-a 6s ease-in-out infinite; }
.scn-rock-overlook .figure-spy-b { position:absolute; bottom:50%; right:38%; width:12px; height:20px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: scaleY(0.6); animation: ro-spy-b 7s ease-in-out infinite; animation-delay: -1.5s; }
.scn-rock-overlook .water-reflect { position:absolute; bottom:5%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, rgba(100,100,120,.2) 0%, rgba(80,80,100,.3) 50%, transparent 100%); border-radius:50%; filter: blur(4px); animation: ro-water 12s ease-in-out infinite alternate; }
.scn-rock-overlook .distant-figures { position:absolute; bottom:20%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(3px); opacity:0.6; animation: ro-distant 15s ease-in-out infinite; }
.scn-rock-overlook .silhouette-tree { position:absolute; bottom:40%; right:5%; width:12px; height:50px; background: linear-gradient(180deg, transparent 0%, #0a0a0a 40%, #0a0a0a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; filter: blur(2px); animation: ro-tree 40s ease-in-out infinite alternate; }
@keyframes ro-sky     { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.65 } }
@keyframes ro-moon    { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(0.9) } }
@keyframes ro-rock    { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes ro-spy-a   { 0% { transform: scaleY(0.6) translateX(0) } 25% { transform: scaleY(0.65) translateX(2px) rotate(2deg) } 50% { transform: scaleY(0.6) translateX(4px) } 75% { transform: scaleY(0.55) translateX(2px) rotate(-2deg) } 100% { transform: scaleY(0.6) translateX(0) } }
@keyframes ro-spy-b   { 0% { transform: scaleY(0.6) translateX(0) } 25% { transform: scaleY(0.55) translateX(-2px) rotate(-2deg) } 50% { transform: scaleY(0.6) translateX(-4px) } 75% { transform: scaleY(0.65) translateX(-2px) rotate(2deg) } 100% { transform: scaleY(0.6) translateX(0) } }
@keyframes ro-water   { 0% { opacity:0.3; background-position: 0% 0%; } 50% { opacity:0.6; background-position: 10% 5%; } 100% { opacity:0.2; background-position: -5% -2%; } }
@keyframes ro-distant { 0% { opacity:0.4; transform: translateY(0) scaleY(1) } 50% { opacity:0.7; transform: translateY(-2px) scaleY(1.1) } 100% { opacity:0.3; transform: translateY(1px) scaleY(0.9) } }
@keyframes ro-tree    { 0% { opacity:0.3; transform: scaleY(1) } 50% { opacity:0.7; transform: scaleY(1.05) } 100% { opacity:0.2; transform: scaleY(0.95) } }

.scn-lake-arrival {
  background: linear-gradient(180deg, #0b0e2a 0%, #16183e 40%, #1f2356 70%, #2a2f6a 100%),
              radial-gradient(ellipse at 70% 20%, #2a3a6a 0%, transparent 60%);
}
.scn-lake-arrival .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #101430 0%, #0b0e2a 100%); animation: la-sky 8s ease-in-out infinite alternate; }
.scn-lake-arrival .moon { position:absolute; top:15%; right:30%; width:60px; height:60px; background: radial-gradient(circle, #d0d8e8 0%, #a0a8c0 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(160,168,192,.4); animation: la-moon 15s linear infinite; }
.scn-lake-arrival .water { position:absolute; bottom:45%; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a1e3e 0%, #0f1230 100%); animation: la-water 12s ease-in-out infinite; }
.scn-lake-arrival .shore { position:absolute; bottom:45%; left:0; right:0; height:12%; background: linear-gradient(180deg, #2a2e1a 0%, #1a1e0e 100%); border-radius: 0 0 30% 50% / 0 0 60% 40%; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); }
.scn-lake-arrival .boat { position:absolute; bottom:52%; left:20%; width:80px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 0 0 40% 40% / 0 0 80% 80%; transform-origin: center 90%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: la-boat 6s ease-in-out infinite; }
.scn-lake-arrival .figure-do { position:absolute; bottom:55%; left:22%; width:14px; height:32px; background: linear-gradient(180deg, #0e0e1a 0%, #02020a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: la-figure 4s ease-in-out infinite; }
.scn-lake-arrival .lantern-la { position:absolute; bottom:60%; left:25%; width:8px; height:8px; background: radial-gradient(circle, #e8d088 0%, #c8a860 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(200,168,96,.6); animation: la-lantern 3s ease-in-out infinite alternate; }
@keyframes la-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes la-moon { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(-5px) } }
@keyframes la-water { 0% { background-position: 0 0; opacity:.8 } 50% { background-position: 0 8px; opacity:1 } 100% { background-position: 0 0; opacity:.7 } }
@keyframes la-boat { 0% { transform: translate(0,0) rotate(-2deg) } 30% { transform: translate(4px,-2px) rotate(1deg) } 70% { transform: translate(-3px,1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes la-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes la-lantern { 0% { box-shadow: 0 0 15px 4px rgba(200,168,96,.4); opacity:.7 } 50% { box-shadow: 0 0 30px 10px rgba(200,168,96,.8); opacity:1 } 100% { box-shadow: 0 0 18px 5px rgba(200,168,96,.5); opacity:.8 } }

.scn-boat-to-castle {
  background: linear-gradient(180deg, #0a0c20 0%, #12163a 50%, #1c2050 100%),
              radial-gradient(ellipse at 50% 30%, #1a2260 0%, transparent 70%);
}
.scn-boat-to-castle .sky-bc { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0c1028 0%, #0a0c20 100%); animation: bc-sky 10s ease-in-out infinite alternate; }
.scn-boat-to-castle .moon-bc { position:absolute; top:10%; left:20%; width:50px; height:50px; background: radial-gradient(circle, #b8c8d8 0%, #8090b0 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 12px rgba(128,144,176,.4); animation: bc-moon 12s linear infinite; }
.scn-boat-to-castle .river { position:absolute; bottom:40%; left:0; right:0; height:60%; background: linear-gradient(180deg, #141840 0%, #0a0c28 100%); animation: bc-river 8s ease-in-out infinite; }
.scn-boat-to-castle .bank { position:absolute; bottom:40%; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a3018 0%, #1a1c0e 100%); border-radius: 0 0 50% 30% / 0 0 70% 40%; box-shadow: inset 0 6px 10px rgba(0,0,0,.5); }
.scn-boat-to-castle .pines { position:absolute; bottom:42%; right:10%; width:40px; height:100px; background: linear-gradient(180deg, #1a2a10 0%, #0e1a08 100%); clip-path: polygon(50% 0%, 10% 100%, 90% 100%); animation: bc-pines 5s ease-in-out infinite; }
.scn-boat-to-castle .boat-bc { position:absolute; bottom:42%; left:30%; width:70px; height:24px; background: linear-gradient(180deg, #2a1a10 0%, #140a04 100%); border-radius: 0 0 30% 30% / 0 0 70% 70%; transform-origin: center 80%; box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: bc-boat 6s ease-in-out infinite; }
.scn-boat-to-castle .castle { position:absolute; bottom:40%; left:55%; width:60px; height:80px; background: linear-gradient(180deg, #1e1e32 0%, #0a0a18 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.4), 0 4px 8px rgba(0,0,0,.5); animation: bc-castle 20s ease-in-out infinite; }
@keyframes bc-sky { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes bc-moon { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(-4px) } }
@keyframes bc-river { 0% { background-position: 0 0 } 50% { background-position: 0 10px } 100% { background-position: 0 0 } }
@keyframes bc-pines { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes bc-boat { 0% { transform: translate(0,0) rotate(-2deg) } 30% { transform: translate(5px,-1px) rotate(1deg) } 70% { transform: translate(-3px,1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes bc-castle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }

.scn-convent-approach {
  background: linear-gradient(180deg, #0e102e 0%, #1a1e44 40%, #262c5a 70%, #2f366a 100%),
              radial-gradient(ellipse at 30% 50%, #1a1e4a 0%, transparent 60%);
}
.scn-convent-approach .sky-ca { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #0a0c24 0%, #0e102e 100%); animation: ca-sky 6s ease-in-out infinite alternate; }
.scn-convent-approach .wall { position:absolute; bottom:20%; left:40%; width:45%; height:70%; background: linear-gradient(180deg, #2a2a3e 0%, #161624 100%); border-radius: 0 0 4% 4%; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); animation: ca-wall 10s ease-in-out infinite; }
.scn-convent-approach .tower { position:absolute; bottom:20%; left:52%; width:12%; height:90%; background: linear-gradient(180deg, #22223a 0%, #121220 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); }
.scn-convent-approach .window-ca { position:absolute; bottom:65%; left:55%; width:10px; height:16px; background: radial-gradient(circle, #d0b870 0%, #a08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(160,128,64,.5); animation: ca-window 2s ease-in-out infinite alternate; }
.scn-convent-approach .figure-ca { position:absolute; bottom:70%; left:56%; width:8px; height:22px; background: linear-gradient(180deg, #0a0a14 0%, #020206 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ca-figure 4s step-start infinite; }
.scn-convent-approach .guide { position:absolute; bottom:55%; left:35%; width:12px; height:28px; background: linear-gradient(180deg, #0e0e1a 0%, #04040c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ca-guide 3s ease-in-out infinite; }
.scn-convent-approach .match { position:absolute; bottom:60%; left:36%; width:4px; height:6px; background: radial-gradient(circle, #e08030 0%, #c06020 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 6px rgba(192,96,32,.4); animation: ca-match 1.5s ease-in-out infinite alternate; }
@keyframes ca-sky { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes ca-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ca-window { 0% { box-shadow: 0 0 15px 4px rgba(160,128,64,.3); opacity:.6 } 50% { box-shadow: 0 0 30px 10px rgba(160,128,64,.8); opacity:1 } 100% { box-shadow: 0 0 18px 6px rgba(160,128,64,.4); opacity:.7 } }
@keyframes ca-figure { 0%,100% { opacity:0 } 50% { opacity:1 } }
@keyframes ca-guide { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ca-match { 0% { transform: scale(.8); opacity:.5 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(.9); opacity:.6 } }

.scn-nun-greets {
  background: linear-gradient(180deg, #0a0c20 0%, #121436 40%, #1a1e46 70%, #222852 100%),
              radial-gradient(ellipse at 50% 80%, #1a1e4a 0%, transparent 70%);
}
.scn-nun-greets .sky-ng { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #0a0c20 0%, #0e1028 100%); animation: ng-sky 12s ease-in-out infinite alternate; }
.scn-nun-greets .dock { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a3a 0%, #161626 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); }
.scn-nun-greets .chain { position:absolute; bottom:40%; left:45%; width:4px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: ng-chain 4s ease-in-out infinite; }
.scn-nun-greets .doorway { position:absolute; bottom:28%; left:35%; width:20%; height:50%; background: linear-gradient(180deg, #1e1e2e 0%, #0a0a16 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 4px 8px rgba(0,0,0,.5); }
.scn-nun-greets .nun { position:absolute; bottom:15%; left:42%; width:12px; height:30px; background: linear-gradient(180deg, #0e0e1a 0%, #04040a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ng-nun 5s ease-in-out infinite; }
.scn-nun-greets .moonbeam { position:absolute; top:0; left:38%; width:25%; height:70%; background: linear-gradient(180deg, rgba(180,200,220,.15) 0%, transparent 60%); animation: ng-beam 8s ease-in-out infinite alternate; }
@keyframes ng-sky { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes ng-chain { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(-1px) rotate(0) } }
@keyframes ng-nun { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ng-beam { 0% { opacity:.1 } 50% { opacity:.3 } 100% { opacity:.15 } }

.scn-lola-mentioned-shock {
  background: linear-gradient(180deg, #e8d9c0 0%, #cbb29a 50%, #a58c74 100%), radial-gradient(ellipse at 40% 30%, #f3e5d0 0%, transparent 70%);
}
.scn-lola-mentioned-shock .wall-light {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #f5ecd6 0%, #d6c3a8 100%);
  animation: lmsw-wall 8s ease-in-out infinite alternate;
}
.scn-lola-mentioned-shock .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #6b4f37 0%, #8b6b4a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-lola-mentioned-shock .window {
  position: absolute; top: 12%; left: 20%; width: 28%; height: 36%;
  background: radial-gradient(ellipse at 50% 60%, #fef9e8 0%, #cbd8e6 70%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 0 30px 10px rgba(200,200,220,0.3);
  animation: lmsw-window 6s ease-in-out infinite alternate;
}
.scn-lola-mentioned-shock .desk {
  position: absolute; bottom: 32%; left: 25%; width: 50%; height: 14%;
  background: linear-gradient(180deg, #a67c52 0%, #6b4f37 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-lola-mentioned-shock .chair {
  position: absolute; bottom: 34%; left: 30%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #4a352a 0%, #2a1f18 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
}
.scn-lola-mentioned-shock .figure-shock {
  position: absolute; bottom: 16%; left: 38%; width: 12%; height: 36%;
  background: linear-gradient(180deg, #3a2f26 0%, #1e161c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lmsw-figure 0.8s ease-in-out infinite alternate;
}
.scn-lola-mentioned-shock .lamp-flicker {
  position: absolute; top: 18%; left: 12%; width: 6%; height: 8%;
  background: radial-gradient(circle, #f7d48e 0%, #d4953a 60%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(212,149,58,0.6), 0 0 48px 16px rgba(212,149,58,0.3);
  animation: lmsw-lamp 0.3s ease-in-out infinite alternate;
}
@keyframes lmsw-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes lmsw-window {
  0% { box-shadow: 0 0 20px 6px rgba(200,200,220,0.2); }
  50% { box-shadow: 0 0 40px 14px rgba(220,220,240,0.5); }
  100% { box-shadow: 0 0 25px 8px rgba(200,200,220,0.3); }
}
@keyframes lmsw-figure {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(2deg) translateY(-2px); }
  100% { transform: scale(0.98) rotate(-1deg) translateY(0); }
}
@keyframes lmsw-lamp {
  0% { box-shadow: 0 0 18px 5px rgba(212,149,58,0.5); opacity: 0.9; }
  100% { box-shadow: 0 0 30px 10px rgba(212,149,58,0.7); opacity: 1; }
}

.scn-voyages-discussed {
  background: linear-gradient(180deg, #f0e6d6 0%, #d9c9b5 40%, #baa48e 100%), radial-gradient(ellipse at 50% 20%, #faf5eb 0%, transparent 70%);
}
.scn-voyages-discussed .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e8dcc4 0%, #cfbaa0 100%);
  animation: vd-bg 20s linear infinite alternate;
}
.scn-voyages-discussed .table {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 16%;
  background: linear-gradient(180deg, #8b6b4a 0%, #5a3e2a 100%);
  border-radius: 6% 6% 3% 3%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.3);
}
.scn-voyages-discussed .chair-left {
  position: absolute; bottom: 30%; left: 14%; width: 18%; height: 34%;
  background: linear-gradient(180deg, #5a4030 0%, #35261e 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: vd-chair 12s ease-in-out infinite alternate;
}
.scn-voyages-discussed .chair-right {
  position: absolute; bottom: 30%; right: 14%; width: 18%; height: 34%;
  background: linear-gradient(180deg, #5a4030 0%, #35261e 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: vd-chair 12s ease-in-out infinite alternate-reverse;
}
.scn-voyages-discussed .globe {
  position: absolute; bottom: 28%; left: 38%; width: 12%; height: 18%;
  background: radial-gradient(circle at 40% 40%, #7ba3b0 0%, #3a6a7a 60%, #1e3a3f 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(58,106,122,0.3);
  animation: vd-globe 30s linear infinite;
}
.scn-voyages-discussed .curtain {
  position: absolute; top: 0; right: 5%; width: 20%; height: 70%;
  background: linear-gradient(90deg, rgba(180,140,100,0.6) 0%, rgba(200,160,120,0.2) 100%);
  border-radius: 0 0 20% 20%;
  filter: blur(3px);
  animation: vd-curtain 15s ease-in-out infinite alternate;
}
.scn-voyages-discussed .picture {
  position: absolute; top: 12%; left: 8%; width: 16%; height: 22%;
  background: linear-gradient(135deg, #a68c6e 0%, #7a5f44 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 0 2px #4a3525, 0 4px 8px rgba(0,0,0,0.2);
}
@keyframes vd-bg {
  0% { background-position: 0% 0%; }
  50% { background-position: 10% 5%; }
  100% { background-position: 0% 0%; }
}
@keyframes vd-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes vd-globe {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}
@keyframes vd-curtain {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(0.95); opacity: 0.5; }
  100% { transform: scaleX(1.05); opacity: 0.7; }
}

.scn-lola-name-fear {
  background: linear-gradient(180deg, #d9c6b0 0%, #b8a188 50%, #8a7864 100%), radial-gradient(ellipse at 50% 30%, #efdbc0 0%, transparent 70%);
}
.scn-lola-name-fear .wall-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c4b09c 0%, #9a8470 100%);
  box-shadow: inset 0 0 80px 20px rgba(0,0,0,0.15);
  animation: lnf-shadow 4s ease-in-out infinite alternate;
}
.scn-lola-name-fear .profile-head {
  position: absolute; bottom: 30%; left: 24%; width: 18%; height: 28%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a201a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4);
  animation: lnf-head 0.6s ease-in-out infinite alternate;
}
.scn-lola-name-fear .shoulder {
  position: absolute; bottom: 14%; left: 22%; width: 24%; height: 30%;
  background: linear-gradient(180deg, #3a2e26 0%, #1e1612 100%);
  border-radius: 40% 20% 20% 40% / 60% 30% 30% 60%;
  animation: lnf-shoulder 1s ease-in-out infinite alternate;
}
.scn-lola-name-fear .hand-mouth {
  position: absolute; bottom: 39%; left: 28%; width: 6%; height: 10%;
  background: radial-gradient(ellipse, #5a4a3e 0%, #2a201a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: lnf-hand 0.3s ease-in-out infinite alternate;
}
.scn-lola-name-fear .ceiling-light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #f3e5d0 0%, transparent 80%);
  box-shadow: 0 0 40px 20px rgba(243,229,208,0.4);
  animation: lnf-light 2s ease-in-out infinite alternate;
}
@keyframes lnf-shadow {
  0% { opacity: 0.9; filter: blur(0px); }
  50% { opacity: 0.95; filter: blur(2px); }
  100% { opacity: 0.85; filter: blur(0px); }
}
@keyframes lnf-head {
  0% { transform: translate(0, 0) rotate(-2deg); }
  50% { transform: translate(2px, -1px) rotate(0deg); }
  100% { transform: translate(-1px, 1px) rotate(1deg); }
}
@keyframes lnf-shoulder {
  0% { transform: scale(1); }
  50% { transform: scale(1.01) translateY(-2px); }
  100% { transform: scale(0.99); }
}
@keyframes lnf-hand {
  0% { transform: scale(1) rotate(-5deg); opacity: 0.9; }
  100% { transform: scale(1.1) rotate(5deg); opacity: 1; }
}
@keyframes lnf-light {
  0% { box-shadow: 0 0 30px 15px rgba(243,229,208,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 25px rgba(243,229,208,0.5); opacity: 1; }
  100% { box-shadow: 0 0 35px 18px rgba(243,229,208,0.35); opacity: 0.85; }
}

.scn-lola-questions {
  background: linear-gradient(180deg, #e0cfbb 0%, #c4b09c 50%, #a08a78 100%), radial-gradient(ellipse at 50% 20%, #f6e8d8 0%, transparent 70%);
}
.scn-lola-questions .room-floor {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #cbb69e 0%, #a48b76 100%);
  box-shadow: inset 0 0 60px 10px rgba(0,0,0,0.1);
}
.scn-lola-questions .table-close {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #8b6b4a 0%, #5a3e2a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.35);
}
.scn-lola-questions .figure-lean {
  position: absolute; bottom: 14%; left: 30%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #3a2e26 0%, #1e1612 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lq-lean 2s ease-in-out infinite alternate;
}
.scn-lola-questions .chair-empty {
  position: absolute; bottom: 18%; right: 22%; width: 18%; height: 32%;
  background: linear-gradient(180deg, #5a4030 0%, #35261e 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: lq-chair 10s ease-in-out infinite alternate;
}
.scn-lola-questions .candle-glow {
  position: absolute; bottom: 36%; left: 48%; width: 4%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #f7d48e 0%, #d4953a 50%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(212,149,58,0.8), 0 0 60px 20px rgba(212,149,58,0.4);
  animation: lq-candle 2s ease-in-out infinite alternate;
}
.scn-lola-questions .paper {
  position: absolute; bottom: 26%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(135deg, #f5ecd6 0%, #e3d4b8 100%);
  border-radius: 4% 8% 4% 8%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: lq-paper 6s ease-in-out infinite alternate;
}
@keyframes lq-lean {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-6px) rotate(3deg) scale(1.02); }
  100% { transform: translateY(0) rotate(-2deg) scale(0.98); }
}
@keyframes lq-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(1px) rotate(-0.5deg); }
}
@keyframes lq-candle {
  0% { box-shadow: 0 0 20px 5px rgba(212,149,58,0.6); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 15px rgba(212,149,58,0.8); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(212,149,58,0.65); opacity: 0.95; }
}
@keyframes lq-paper {
  0% { transform: rotate(-5deg) translate(0, 0); }
  50% { transform: rotate(-2deg) translate(2px, -1px); }
  100% { transform: rotate(-6deg) translate(-1px, 1px); }
}

.scn-fft { background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%), radial-gradient(ellipse at 40% 70%, #4a2e22 20%, transparent 60%); }
.scn-fft .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1e 0%, #1e140e 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-fft .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #2a1e14 40%, transparent 100%), linear-gradient(90deg, transparent 0%, #2a1e14 60%); }
.scn-fft .trapdoor { position:absolute; bottom:35%; left:55%; width:70px; height:12px; background: #1e140e; border-radius:2px; transform-origin: right center; animation: fft-trap 6s ease-in-out infinite; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-fft .figure { position:absolute; bottom:38%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #1a120c 0%, #0e0a06 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fft-run 4s ease-in-out infinite; }
.scn-fft .lantern { position:absolute; bottom:42%; left:20%; width:8px; height:8px; background: radial-gradient(circle, #b87a4a 0%, #6a3e20 70%); border-radius:50%; box-shadow: 0 0 20px 6px #8a5a30, 0 0 40px 12px rgba(138,90,48,.4); animation: fft-lantern 2s ease-in-out infinite alternate; }
.scn-fft .shadow { position:absolute; bottom:35%; left:28%; width:30px; height:6px; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(3px); animation: fft-shadow 4s ease-in-out infinite; }
.scn-fft .dust { position:absolute; bottom:40%; left:50%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(80,60,40,.15) 0%, transparent 70%); filter: blur(8px); animation: fft-dust 7s ease-in-out infinite; }
@keyframes fft-trap { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-12deg) } }
@keyframes fft-run { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(12px) translateY(-3px) rotate(3deg) } 60% { transform: translateX(24px) translateY(0) rotate(-2deg) } 100% { transform: translateX(40px) translateY(-2px) rotate(1deg) } }
@keyframes fft-lantern { 0% { opacity:.7; box-shadow: 0 0 15px 4px #8a5a30 } 50% { opacity:1; box-shadow: 0 0 30px 10px #b87a4a } 100% { opacity:.8; box-shadow: 0 0 20px 6px #8a5a30 } }
@keyframes fft-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) translateX(8px) } }
@keyframes fft-dust { 0% { opacity:0; transform: translateY(0) } 50% { opacity:1; transform: translateY(-10px) } 100% { opacity:0; transform: translateY(0) } }

.scn-esd { background: linear-gradient(0deg, #1a120c 0%, #2a1e14 40%, #0e0a06 100%), radial-gradient(ellipse at 50% 100%, #3a2a1e 0%, transparent 70%); }
.scn-esd .stairs { position:absolute; bottom:0; left:20%; width:60%; height:100%; background: repeating-linear-gradient(0deg, #1e140e 0px, #1e140e 15px, #2a1e14 15px, #2a1e14 17px); mask: linear-gradient(0deg, #000 60%, transparent); }
.scn-esd .railing { position:absolute; bottom:0; left:20%; width:6px; height:100%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius:3px; box-shadow: 10px 0 0 #1a120c; }
.scn-esd .figure { position:absolute; bottom:60%; left:35%; width:20px; height:36px; background: linear-gradient(180deg, #1a120c 0%, #0e0a06 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: esd-descend 6s ease-in-out infinite; }
.scn-esd .door { position:absolute; bottom:5%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:4px; box-shadow: inset -4px 0 6px rgba(0,0,0,.5); animation: esd-door 8s ease-in-out infinite; }
.scn-esd .light-shaft { position:absolute; bottom:0; left:30%; width:40%; height:70%; background: linear-gradient(180deg, rgba(180,140,100,.15) 0%, transparent 80%); animation: esd-light 4s ease-in-out infinite alternate; }
.scn-esd .shadow { position:absolute; bottom:5%; left:32%; width:30px; height:8px; background: rgba(0,0,0,.6); border-radius:50%; filter: blur(4px); animation: esd-shadow 6s ease-in-out infinite; }
@keyframes esd-descend { 0% { transform: translateY(0) translateX(0) rotate(-1deg) } 25% { transform: translateY(-20px) translateX(8px) rotate(2deg) } 50% { transform: translateY(-40px) translateX(0) rotate(-1deg) } 75% { transform: translateY(-20px) translateX(-8px) rotate(2deg) } 100% { transform: translateY(0) translateX(0) rotate(0) } }
@keyframes esd-door { 0%,100% { transform: scaleY(1) translateX(0) } 50% { transform: scaleY(.5) translateX(6px) } }
@keyframes esd-light { 0% { opacity:.3 } 100% { opacity:.7 } }
@keyframes esd-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.3) translateX(6px) } }

.scn-sip { background: linear-gradient(90deg, #1a1410 0%, #2a1e18 20%, #1a1410 80%, #0e0a08 100%), radial-gradient(ellipse at 70% 50%, #3a2a22 0%, transparent 60%); }
.scn-sip .wall-left { position:absolute; inset:0 70% 0 0; background: linear-gradient(90deg, #1e1612 0%, #2a1e18 100%); }
.scn-sip .wall-right { position:absolute; inset:0 0 0 70%; background: linear-gradient(90deg, #2a1e18 0%, #1e1612 100%); }
.scn-sip .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); }
.scn-sip .door { position:absolute; bottom:20%; right:10%; width:36px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:3px; box-shadow: inset 2px 0 6px rgba(0,0,0,.5); animation: sip-door 4s ease-in-out infinite; }
.scn-sip .flash { position:absolute; bottom:30%; left:40%; width:20px; height:20px; background: radial-gradient(circle, #fff4d0 0%, #ffd080 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,128,.6), 0 0 80px 30px rgba(255,208,128,.3); animation: sip-flash 2s ease-in-out infinite; }
.scn-sip .figure { position:absolute; bottom:22%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sip-aim 3s ease-in-out infinite; }
.scn-sip .smoke { position:absolute; bottom:35%; left:38%; width:30px; height:30px; background: radial-gradient(ellipse, rgba(180,160,140,.2) 0%, transparent 70%); filter: blur(8px); animation: sip-smoke 4s ease-in-out infinite; }
@keyframes sip-door { 0%,100% { transform: rotateY(0deg) } 50% { transform: rotateY(-20deg) } }
@keyframes sip-flash { 0%,100% { opacity:0; transform: scale(.5) } 10% { opacity:1; transform: scale(1.2) } 30% { opacity:.8; transform: scale(1) } 50% { opacity:0; transform: scale(.8) } }
@keyframes sip-aim { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sip-smoke { 0% { opacity:0; transform: translateY(0) scale(.5) } 50% { opacity:1; transform: translateY(-15px) scale(1.2) } 100% { opacity:0; transform: translateY(-30px) scale(1.5) } }

.scn-cof { background: linear-gradient(180deg, #b8c8d8 0%, #e0e8f0 40%, #c8d0d8 100%), radial-gradient(ellipse at 50% 0%, #f0e8d0 0%, transparent 70%); }
.scn-cof .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0b8d0 0%, #d0d8e0 100%); }
.scn-cof .building-bg { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(90deg, #8a9098 0%, #a8b0b8 100%); border-radius: 20% 10% 0 0; }
.scn-cof .building-fg { position:absolute; bottom:30%; left:10%; width:40%; height:60%; background: linear-gradient(180deg, #6a7078 0%, #4a5058 100%); border-radius:4% 4% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.3); }
.scn-cof .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b0a890 0%, #8a8070 100%); }
.scn-cof .figure { position:absolute; bottom:30%; left:30%; width:18px; height:38px; background: linear-gradient(180deg, #2a2826 0%, #1a1816 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cof-walk 5s ease-in-out infinite; }
.scn-cof .shadow { position:absolute; bottom:28%; left:28%; width:40px; height:4px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(2px); animation: cof-shadow 5s ease-in-out infinite; }
.scn-cof .lamp { position:absolute; bottom:35%; left:60%; width:6px; height:24px; background: #4a5058; border-radius:2px; }
@keyframes cof-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 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 cof-shadow { 0%,100% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.4) translateX(8px) } }

.scn-warning-unheeded {
  background: 
    linear-gradient(180deg, #e8d8b8 0%, #d4c4a4 40%, #b89878 100%),
    radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 60%);
}
.scn-warning-unheeded .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #d4c4a4 0%, #c0b090 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.08);
  animation: wh-wall 12s ease-in-out infinite alternate;
}
.scn-warning-unheeded .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #8a7a6a 0%, #b09880 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.12);
}
.scn-warning-unheeded .door {
  position: absolute; bottom: 30%; left: 50%; width: 140px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-warning-unheeded .lamp {
  position: absolute; bottom: 65%; left: 20%; width: 30px; height: 50px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c09850 60%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 60px 20px rgba(255,208,128,0.4), 0 0 120px 40px rgba(255,208,128,0.2);
  animation: wh-lamp 4s ease-in-out infinite alternate;
}
.scn-warning-unheeded .figure-left {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wh-figLeft 6s ease-in-out infinite;
}
.scn-warning-unheeded .figure-right {
  position: absolute; bottom: 18%; right: 28%; width: 42px; height: 112px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wh-figRight 8s ease-in-out infinite;
}
.scn-warning-unheeded .arm {
  position: absolute; bottom: 45%; right: 36%; width: 30px; height: 8px;
  background: #3a2a1a;
  border-radius: 40%;
  transform-origin: left center;
  animation: wh-arm 3s ease-in-out infinite alternate;
}
.scn-warning-unheeded .shadow-sharp {
  position: absolute; bottom: 18%; left: 25%; width: 120px; height: 80px;
  background: linear-gradient(135deg, rgba(0,0,0,0.25) 0%, transparent 70%);
  border-radius: 20%;
  filter: blur(2px);
  animation: wh-shadow 10s ease-in-out infinite alternate;
}
@keyframes wh-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes wh-lamp { 0% { box-shadow: 0 0 40px 15px rgba(255,208,128,0.3); opacity: 0.9; } 50% { box-shadow: 0 0 80px 30px rgba(255,208,128,0.6); opacity: 1; } 100% { box-shadow: 0 0 50px 20px rgba(255,208,128,0.4); opacity: 0.95; } }
@keyframes wh-figLeft { 0%, 100% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(2px, -1px) rotate(1deg); } 50% { transform: translate(5px, -2px) rotate(2deg); } 75% { transform: translate(3px, -1px) rotate(1deg); } }
@keyframes wh-figRight { 0%, 100% { transform: translate(0, 0) rotate(0deg); } 30% { transform: translate(-3px, -1px) rotate(-1deg); } 60% { transform: translate(-6px, -2px) rotate(-2deg); } }
@keyframes wh-arm { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.1); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes wh-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.35; transform: scale(0.98); } }

/* durnford-shot */
.scn-durnford-shot {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 0%, #3a3a4e 0%, transparent 70%);
}
.scn-durnford-shot .bg-panel {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3);
  animation: ds-panel 20s ease-in-out infinite alternate;
}
.scn-durnford-shot .bg-window {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 120px;
  background: linear-gradient(135deg, #0a0a1a 0%, #12122a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 20px #2a3a5a, 0 0 10px rgba(0,0,0,0.5);
}
.scn-durnford-shot .gas-lamp {
  position: absolute; bottom: 60%; left: 30%; width: 20px; height: 40px;
  background: radial-gradient(circle at 50% 30%, #ffd060 0%, #c09830 60%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 50px 15px rgba(255,208,96,0.3), 0 0 100px 30px rgba(255,208,96,0.1);
  animation: ds-lamp 5s ease-in-out infinite alternate;
}
.scn-durnford-shot .chair {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 70px;
  background: linear-gradient(135deg, #2a1a12 0%, #1a0a08 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: perspective(200px) rotateX(5deg);
}
.scn-durnford-shot .figure-silhouette {
  position: absolute; bottom: 20%; right: 25%; width: 36px; height: 100px;
  background: #0a0a12;
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-fig 12s ease-in-out infinite;
}
.scn-durnford-shot .clock {
  position: absolute; top: 12%; left: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle at 50% 50%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(255,255,255,0.1);
  animation: ds-clock 60s linear infinite;
}
.scn-durnford-shot .smoke {
  position: absolute; bottom: 50%; left: 35%; width: 80px; height: 40px;
  background: radial-gradient(circle, rgba(200,200,200,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: ds-smoke 25s linear infinite;
}
@keyframes ds-panel { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ds-lamp { 0% { box-shadow: 0 0 30px 10px rgba(255,208,96,0.2); } 50% { box-shadow: 0 0 60px 20px rgba(255,208,96,0.5); } 100% { box-shadow: 0 0 40px 15px rgba(255,208,96,0.3); } }
@keyframes ds-fig { 0%, 100% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(2px, -1px) rotate(1deg); } 50% { transform: translate(5px, -2px) rotate(2deg); } 75% { transform: translate(3px, -1px) rotate(0.5deg); } }
@keyframes ds-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ds-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-30px) scale(1.2); opacity: 0.1; } 100% { transform: translateY(-60px) scale(1.5); opacity: 0; } }

/* policeman-report */
.scn-policeman-report {
  background: 
    linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 40%, #b8b0a0 100%),
    radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 70%);
}
.scn-policeman-report .bg-desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #a09080 0%, #c0b8a8 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
}
.scn-policeman-report .bg-wall-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e8da 0%, #e0d8c8 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.05);
  animation: pr-wall 10s ease-in-out infinite alternate;
}
.scn-policeman-report .lamp-desk {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 20%, #ffe898 0%, #c8a858 60%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 80px 30px rgba(255,232,152,0.4), 0 0 160px 60px rgba(255,232,152,0.2);
  animation: pr-lamp 3s ease-in-out infinite alternate;
}
.scn-policeman-report .police-figure {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr-pc 8s ease-in-out infinite;
}
.scn-policeman-report .book {
  position: absolute; bottom: 22%; left: 55%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform: perspective(200px) rotateX(10deg);
}
.scn-policeman-report .pen {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 4px;
  background: #2a1a0a;
  border-radius: 20%;
  transform: rotate(30deg);
  animation: pr-pen 2s ease-in-out infinite alternate;
}
.scn-policeman-report .shadow-bench {
  position: absolute; bottom: 15%; right: 20%; width: 80px; height: 20px;
  background: rgba(0,0,0,0.1);
  border-radius: 30%;
  filter: blur(4px);
  animation: pr-shadow 12s ease-in-out infinite alternate;
}
@keyframes pr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pr-lamp { 0% { box-shadow: 0 0 50px 20px rgba(255,232,152,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 100px 40px rgba(255,232,152,0.6); opacity: 1; } 100% { box-shadow: 0 0 60px 25px rgba(255,232,152,0.4); opacity: 0.9; } }
@keyframes pr-pc { 0%, 100% { transform: translate(0, 0) rotate(0deg); } 30% { transform: translate(3px, -1px) rotate(1deg); } 60% { transform: translate(6px, -2px) rotate(2deg); } }
@keyframes pr-pen { 0% { transform: rotate(25deg) scale(1); } 50% { transform: rotate(35deg) scale(1.05); } 100% { transform: rotate(28deg) scale(1); } }
@keyframes pr-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.1); } 100% { opacity: 0.45; transform: scaleX(0.95); } }

/* hospital-vigil */
.scn-hospital-vigil {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #0a0a12 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a3e 0%, transparent 70%);
}
.scn-hospital-vigil .bg-curtain {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1e1e2e 0%, #12121e 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.4);
  animation: hv-curtain 15s ease-in-out infinite alternate;
}
.scn-hospital-vigil .bg-floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0a0a12 0%, #12121a 100%);
}
.scn-hospital-vigil .bed {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 50px;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: perspective(300px) rotateX(5deg);
}
.scn-hospital-vigil .patient-figure {
  position: absolute; bottom: 16%; left: 35%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: hv-patient 20s ease-in-out infinite;
}
.scn-hospital-vigil .nurse-figure {
  position: absolute; bottom: 10%; right: 25%; width: 32px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hv-nurse 6s ease-in-out infinite;
}
.scn-hospital-vigil .iv-stand {
  position: absolute; bottom: 8%; left: 55%; width: 6px; height: 120px;
  background: #2a2a3a;
  border-radius: 20%;
  box-shadow: 0 0 4px rgba(255,255,255,0.1);
  animation: hv-iv 12s ease-in-out infinite alternate;
}
.scn-hospital-vigil .moonlight {
  position: absolute; top: 0; left: 60%; width: 100px; height: 200px;
  background: linear-gradient(135deg, rgba(200,220,255,0.08) 0%, transparent 100%);
  filter: blur(20px);
  animation: hv-moon 30s ease-in-out infinite alternate;
}
.scn-hospital-vigil .shadow-pool {
  position: absolute; bottom: 5%; left: 30%; width: 140px; height: 30px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(8px);
  animation: hv-pool 25s ease-in-out infinite alternate;
}
@keyframes hv-curtain { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes hv-patient { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(1px, -2px) scale(1.02); } }
@keyframes hv-nurse { 0%, 100% { transform: translate(0, 0) rotate(0deg); } 30% { transform: translate(2px, -1px) rotate(1deg); } 60% { transform: translate(4px, -2px) rotate(2deg); } }
@keyframes hv-iv { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } }
@keyframes hv-moon { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes hv-pool { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.95); } }

/* ---------- chater-name-shock ---------- */
.scn-chater-name-shock {
  background:
    radial-gradient(ellipse at 60% 30%, #f5e6c8 0%, #d4b896 50%, #8a6e4e 100%),
    linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  background-blend-mode: overlay;
}
.scn-chater-name-shock .room-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #6a5232 0%, #4a3822 100%); opacity:0.6;
}
.scn-chater-name-shock .bookshelf-left {
  position:absolute; top:5%; left:2%; width:22%; height:85%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: cns-shelf 8s ease-in-out infinite alternate;
}
.scn-chater-name-shock .bookshelf-right {
  position:absolute; top:5%; right:2%; width:22%; height:85%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: cns-shelf 10s ease-in-out infinite alternate-reverse;
}
.scn-chater-name-shock .desk {
  position:absolute; bottom:8%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.5);
}
.scn-chater-name-shock .lamp-glow {
  position:absolute; bottom:45%; left:38%; width:14%; height:14%; background: radial-gradient(circle, #ffd080 0%, #e8a050 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(200,120,40,0.4); mix-blend-mode: screen; animation: cns-lamp 3s ease-in-out infinite alternate;
}
.scn-chater-name-shock .figure-shock {
  position:absolute; bottom:18%; left:43%; width:12%; height:45%; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cns-figure 0.6s ease-in-out infinite alternate;
}
.scn-chater-name-shock .shadow-sharp {
  position:absolute; bottom:0; left:30%; right:30%; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); clip-path: polygon(0 100%, 50% 20%, 100% 100%); animation: cns-shadow 0.6s ease-in-out infinite alternate;
}
.scn-chater-name-shock .paper-scatter {
  position:absolute; bottom:10%; left:22%; width:18%; height:12%; background: #f0e0c0; border-radius: 2px; transform: rotate(-8deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: cns-paper 2s ease-in-out infinite alternate;
}
.scn-chater-name-shock .dust-mote {
  position:absolute; top:20%; left:30%; width:4px; height:4px; background: radial-gradient(circle, #fff 0%, transparent 100%); border-radius: 50%; animation: cns-dust 4s ease-in-out infinite;
}
@keyframes cns-shelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes cns-lamp { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(0.95); } }
@keyframes cns-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes cns-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.3; } 100% { opacity: 0.7; } }
@keyframes cns-paper { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-4px); } 100% { transform: rotate(-6deg) translateY(2px); } }
@keyframes cns-dust { 0% { transform: translate(0,0); opacity:0; } 20% { opacity:1; } 50% { transform: translate(20px,-20px); opacity:0.5; } 100% { transform: translate(-10px,-40px); opacity:0; } }

/* ---------- doctor-cowan ---------- */
.scn-doctor-cowan {
  background:
    radial-gradient(ellipse at 30% 40%, #f8f0e0 0%, #e0d0b0 50%, #b8a080 100%),
    linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
}
.scn-doctor-cowan .wall-soft {
  position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc4 0%, #c8b89a 100%); opacity:0.7;
}
.scn-doctor-cowan .window-frame {
  position:absolute; top:8%; left:5%; width:25%; height:55%; background: #d0c0a8; border-radius: 8px; border: 8px solid #8a7a62; box-shadow: 0 4px 20px rgba(0,0,0,0.2); animation: dc-window 6s ease-in-out infinite alternate;
}
.scn-doctor-cowan .armchair {
  position:absolute; bottom:15%; right:10%; width:28%; height:45%; background: radial-gradient(ellipse at 50% 30%, #7a6a4a 0%, #4a3a22 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.3); animation: dc-chair 4s ease-in-out infinite alternate;
}
.scn-doctor-cowan .figure-seated {
  position:absolute; bottom:20%; right:16%; width:18%; height:40%; background: linear-gradient(135deg, #1a222a 0%, #0a0e12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dc-figure 5s ease-in-out infinite alternate;
}
.scn-doctor-cowan .desk-small {
  position:absolute; bottom:10%; left:8%; width:30%; height:22%; background: linear-gradient(180deg, #6a5232 0%, #4a3220 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-doctor-cowan .tea-cup {
  position:absolute; bottom:18%; left:18%; width:6%; height:8%; background: radial-gradient(ellipse at 50% 40%, #f0e8d8 0%, #d0c8b0 100%); border-radius: 50% 50% 30% 30%; animation: dc-cup 3s ease-in-out infinite alternate;
}
.scn-doctor-cowan .curtain-left {
  position:absolute; top:0; left:0; width:6%; height:100%; background: linear-gradient(180deg, #8a7a62 0%, #5a4a3a 100%); border-radius: 0 40% 40% 0; animation: dc-curtain 8s ease-in-out infinite alternate;
}
.scn-doctor-cowan .curtain-right {
  position:absolute; top:0; right:0; width:6%; height:100%; background: linear-gradient(180deg, #8a7a62 0%, #5a4a3a 100%); border-radius: 40% 0 0 40%; animation: dc-curtain 8s ease-in-out infinite alternate-reverse;
}
@keyframes dc-window { 0% { opacity:0.8; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.05); } 100% { opacity:0.85; filter: brightness(0.95); } }
@keyframes dc-chair { 0% { transform: rotate(-1deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(1deg); } }
@keyframes dc-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(2px) rotate(1deg); } }
@keyframes dc-cup { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes dc-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.97); } }

/* ---------- chater-hospital ---------- */
.scn-chater-hospital {
  background:
    radial-gradient(ellipse at 50% 30%, #f0f4f8 0%, #d8e0e8 50%, #a0b0c0 100%),
    linear-gradient(180deg, #e8f0f4 0%, #c0c8d0 100%);
}
.scn-chater-hospital .wall-clean {
  position:absolute; inset:0; background: linear-gradient(180deg, #e8f0f4 0%, #c8d0d8 100%); opacity:0.6;
}
.scn-chater-hospital .bed-rail {
  position:absolute; bottom:10%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #b0b8c0 0%, #808890 100%); border-radius: 20px 20px 8px 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.scn-chater-hospital .figure-lying {
  position:absolute; bottom:12%; left:20%; width:20%; height:25%; background: linear-gradient(135deg, #d0c8b8 0%, #a09888 100%); border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%; animation: ch-figure 6s ease-in-out infinite alternate;
}
.scn-chater-hospital .pillow {
  position:absolute; bottom:30%; left:22%; width:16%; height:10%; background: radial-gradient(ellipse at 50% 40%, #f0ece8 0%, #d8d0c8 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.1); animation: ch-pillow 5s ease-in-out infinite alternate;
}
.scn-chater-hospital .stand-iv {
  position:absolute; bottom:10%; right:12%; width:3%; height:55%; background: linear-gradient(180deg, #a0a8b0 0%, #606870 100%); border-radius: 4px; transform-origin: bottom center; animation: ch-stand 4s ease-in-out infinite alternate;
}
.scn-chater-hospital .bag-drip {
  position:absolute; top:30%; right:10%; width:8%; height:15%; background: radial-gradient(ellipse at 50% 50%, #c0d8e0 0%, #8098a8 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.1); animation: ch-bag 3s ease-in-out infinite alternate;
}
.scn-chater-hospital .window-bright {
  position:absolute; top:10%; left:5%; width:20%; height:35%; background: linear-gradient(180deg, #f8fcff 0%, #d0e0f0 100%); border-radius: 4px; border: 6px solid #a0a8b0; box-shadow: 0 0 30px rgba(200,220,240,0.3); animation: ch-window 8s ease-in-out infinite alternate;
}
.scn-chater-hospital .curtain-bed {
  position:absolute; top:5%; right:5%; width:8%; height:70%; background: linear-gradient(180deg, #b0c0d0 0%, #8090a0 100%); border-radius: 20px 0 0 20px; opacity:0.7; animation: ch-curtain 7s ease-in-out infinite alternate;
}
@keyframes ch-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes ch-pillow { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes ch-stand { 0% { transform: rotate(-1deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(1deg); } }
@keyframes ch-bag { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.04); } 100% { transform: scaleY(0.96); } }
@keyframes ch-window { 0% { opacity:0.9; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.06); } 100% { opacity:0.95; filter: brightness(0.98); } }
@keyframes ch-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(0); } }

/* ---------- chater-details ---------- */
.scn-chater-details {
  background:
    radial-gradient(ellipse at 40% 40%, #f0e4d0 0%, #d8c8a8 50%, #b8a080 100%),
    linear-gradient(180deg, #e8dcc4 0%, #c8b490 100%);
}
.scn-chater-details .room-warm {
  position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc4 0%, #c8b490 100%); opacity:0.5;
}
.scn-chater-details .table-round {
  position:absolute; bottom:10%; left:25%; right:25%; height:28%; background: radial-gradient(ellipse at 50% 30%, #7a6030 0%, #4a3820 100%); border-radius: 50%; box-shadow: 0 6px 20px rgba(0,0,0,0.3); animation: cd-table 6s ease-in-out infinite alternate;
}
.scn-chater-details .figure-left {
  position:absolute; bottom:15%; left:12%; width:14%; height:35%; background: linear-gradient(135deg, #1a222a 0%, #0a0e12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cd-figure 5s ease-in-out infinite alternate;
}
.scn-chater-details .figure-right {
  position:absolute; bottom:15%; right:12%; width:14%; height:35%; background: linear-gradient(135deg, #1a1a22 0%, #0a0a12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cd-figure 5s ease-in-out infinite alternate-reverse;
}
.scn-chater-details .candle-glow {
  position:absolute; bottom:42%; left:48%; width:6%; height:6%; background: radial-gradient(circle, #ffe080 0%, #d09040 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,120,40,0.4); mix-blend-mode: screen; animation: cd-candle 3s ease-in-out infinite alternate;
}
.scn-chater-details .candle-body {
  position:absolute; bottom:38%; left:49%; width:2%; height:10%; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,0.2); animation: cd-body 3s ease-in-out infinite alternate;
}
.scn-chater-details .paper-details {
  position:absolute; bottom:22%; left:38%; width:24%; height:10%; background: #f0e8d8; border-radius: 2px; transform: rotate(-3deg); box-shadow: 2px 2px 8px rgba(0,0,0,0.2); animation: cd-paper 4s ease-in-out infinite alternate;
}
.scn-chater-details .inkwell {
  position:absolute; bottom:30%; left:36%; width:4%; height:6%; background: radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, #0a0a12 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-chater-details .quill {
  position:absolute; bottom:34%; left:37%; width:1%; height:12%; background: linear-gradient(180deg, #d0c0a0 0%, #8a7a62 100%); border-radius: 2px; transform: rotate(15deg); transform-origin: bottom; animation: cd-quill 2s ease-in-out infinite alternate;
}
@keyframes cd-table { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(0.99); } }
@keyframes cd-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(1px) rotate(1deg); } }
@keyframes cd-candle { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes cd-body { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes cd-paper { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes cd-quill { 0% { transform: rotate(12deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(14deg); } }

.scn-woman-body-search {
  background:
    radial-gradient(ellipse at 30% 60%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a0e0a 0%, #2d1a10 60%, #1a0e0a 100%);
}
.scn-woman-body-search .back-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2218 0%, #1f130e 100%);
}
.scn-woman-body-search .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2d1a10 0%, #160e0a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-woman-body-search .lamp-glow {
  position: absolute; top: 20%; left: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0c070 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #b07030, 0 0 120px 60px rgba(176,112,48,0.3);
  animation: wbs-lamp 3s ease-in-out infinite alternate;
}
.scn-woman-body-search .chest {
  position: absolute; bottom: 20%; left: 55%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #5e3a20 0%, #3a2212 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-woman-body-search .figure-search {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wbs-crouch 6s ease-in-out infinite;
}
.scn-woman-body-search .shadow-flicker {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: wbs-shadow 4s ease-in-out infinite alternate;
}
.scn-woman-body-search .curtain {
  position: absolute; top: 0; right: 0; width: 30px; height: 100%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 0 0 0 20%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: wbs-curtain 8s ease-in-out infinite;
}
@keyframes wbs-lamp { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.85; transform:scale(0.95); } }
@keyframes wbs-crouch { 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 wbs-shadow { 0% { opacity:0.2; transform:scaleX(1); } 50% { opacity:0.4; transform:scaleX(1.2); } 100% { opacity:0.25; transform:scaleX(0.9); } }
@keyframes wbs-curtain { 0% { transform:translateX(0); } 50% { transform:translateX(4px); } 100% { transform:translateX(0); } }

.scn-search-plan {
  background:
    radial-gradient(ellipse at 50% 50%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a0e0a 0%, #2d1a10 60%, #1a0e0a 100%);
}
.scn-search-plan .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2218 0%, #1f130e 100%);
}
.scn-search-plan .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #5e3a20 0%, #3a2212 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-search-plan .lamp {
  position: absolute; top: 30%; left: 45%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #f0c070 0%, #c08040 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #b07030, 0 0 120px 60px rgba(176,112,48,0.3);
  animation: sp-lamp 3s ease-in-out infinite alternate;
}
.scn-search-plan .figure-left {
  position: absolute; bottom: 15%; left: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp-figure-l 7s ease-in-out infinite;
}
.scn-search-plan .figure-right {
  position: absolute; bottom: 15%; right: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp-figure-r 7s ease-in-out infinite alternate;
}
.scn-search-plan .window-rain {
  position: absolute; top: 10%; right: 8%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 2px solid #3a2a1a;
  border-radius: 4%;
  overflow: hidden;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-search-plan .bracelet-spark {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #e0d0a0 0%, #b09060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #d0b080;
  animation: sp-spark 2s ease-in-out infinite;
}
@keyframes sp-lamp { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sp-figure-l { 0% { transform:translateY(0) rotate(0deg); } 40% { transform:translateY(-3px) rotate(-4deg); } 80% { transform:translateY(-1px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes sp-figure-r { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-4px) rotate(5deg); } 70% { transform:translateY(-2px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes sp-spark { 0% { opacity:0.3; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.4; transform:scale(0.9); } }

.scn-assassin-gender {
  background:
    radial-gradient(ellipse at 40% 70%, #2a3a4a 0%, transparent 60%),
    linear-gradient(180deg, #0e141a 0%, #1a222a 50%, #0e141a 100%);
}
.scn-assassin-gender .door-frame {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 100%;
  background: linear-gradient(90deg, #2a1a12 0%, #1a0e0a 20%, transparent 20%, transparent 80%, #1a0e0a 80%, #2a1a12 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-assassin-gender .outside-rain {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  opacity: 0.6;
}
.scn-assassin-gender .cart-silhouette {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-assassin-gender .woman-figure {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag-woman 6s ease-in-out infinite;
}
.scn-assassin-gender .man-figure {
  position: absolute; bottom: 20%; right: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #121212 0%, #080808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag-man 7s ease-in-out infinite alternate;
}
.scn-assassin-gender .puddle {
  position: absolute; bottom: 8%; left: 30%; right: 30%; height: 6px;
  background: radial-gradient(ellipse, #4a5a6a 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ag-puddle 5s ease-in-out infinite alternate;
}
.scn-assassin-gender .rain-drops {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: repeating-linear-gradient(transparent, transparent 40px, rgba(200,220,240,0.1) 40px, rgba(200,220,240,0.1) 42px);
  animation: ag-rain 1s linear infinite;
}
@keyframes ag-woman { 0% { transform:translateY(0) rotate(0deg); } 40% { transform:translateY(-2px) rotate(-3deg); } 80% { transform:translateY(0) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ag-man { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-3px) rotate(5deg); } 70% { transform:translateY(-1px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ag-puddle { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes ag-rain { 0% { transform:translateY(0); } 100% { transform:translateY(42px); } }

.scn-wood-search {
  background:
    radial-gradient(ellipse at 50% 20%, #7a8a7a 0%, transparent 60%),
    linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 40%, #4a5a4a 100%);
}
.scn-wood-search .overcast-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 100%);
}
.scn-wood-search .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
}
.scn-wood-search .tree-left {
  position: absolute; bottom: 20%; left: 5%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ws-tree-left 20s ease-in-out infinite alternate;
}
.scn-wood-search .tree-right {
  position: absolute; bottom: 20%; right: 5%; width: 30px; height: 130px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ws-tree-right 25s ease-in-out infinite alternate;
}
.scn-wood-search .bushes {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ws-bushes 15s ease-in-out infinite;
}
.scn-wood-search .figure-a {
  position: absolute; bottom: 22%; left: 35%; width: 14px; height: 35px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-figure-a 8s ease-in-out infinite;
}
.scn-wood-search .figure-b {
  position: absolute; bottom: 22%; left: 55%; width: 14px; height: 35px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ws-figure-b 9s ease-in-out infinite alternate;
}
.scn-wood-search .leaf-drift {
  position: absolute; top: 20%; left: 0; width: 20px; height: 20px;
  background: radial-gradient(circle, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 50%;
  filter: blur(3px);
  opacity: 0.5;
  animation: ws-leaf 12s linear infinite;
}
@keyframes ws-tree-left { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-4px) rotate(2deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes ws-tree-right { 0% { transform:translateY(0) rotate(2deg); } 50% { transform:translateY(-5px) rotate(-2deg); } 100% { transform:translateY(0) rotate(2deg); } }
@keyframes ws-bushes { 0% { opacity:0.6; transform:scaleY(1); } 50% { opacity:0.8; transform:scaleY(1.1); } 100% { opacity:0.6; transform:scaleY(1); } }
@keyframes ws-figure-a { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(8px) rotate(-3deg); } 60% { transform:translateX(12px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ws-figure-b { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-6px) rotate(3deg); } 75% { transform:translateX(-10px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ws-leaf { 0% { transform:translateX(-30px) translateY(0) rotate(0deg); opacity:0.3; } 30% { opacity:0.6; } 100% { transform:translateX(120vw) translateY(-50px) rotate(360deg); opacity:0; } }

/* Scene: murder-uncertainty */
.scn-murder-uncertainty {
  background:
    linear-gradient(180deg, #2b1a1a 0%, #3a2424 30%, #5a3a2a 60%, #4a2a1a 100%),
    radial-gradient(ellipse at 60% 30%, #b06030 0%, transparent 60%);
}
.scn-murder-uncertainty .wall { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-murder-uncertainty .fireplace { position:absolute; bottom:18%; left:42%; width:120px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.6); }
.scn-murder-uncertainty .fire-glow { position:absolute; bottom:18%; left:46%; width:40px; height:50px; background: radial-gradient(circle, #ff8c40 0%, #b05020 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px #ff7a30, 0 0 80px 40px rgba(200,80,30,.3); animation: mu-fire 4s ease-in-out infinite alternate; }
.scn-murder-uncertainty .mantel { position:absolute; bottom:36%; left:42%; width:130px; height:8px; background: #2a1a0a; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-murder-uncertainty .armchair { position:absolute; bottom:6%; left:30%; width:80px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform: rotate( -5deg ); animation: mu-chair 6s ease-in-out infinite; }
.scn-murder-uncertainty .figure { position:absolute; bottom:12%; left:55%; width:30px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mu-figure 8s ease-in-out infinite; }
.scn-murder-uncertainty .window { position:absolute; top:8%; right:10%; width:100px; height:140px; background: #0a0a1a; border:6px solid #2a1a0a; border-radius:4px; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-murder-uncertainty .moonbeam { position:absolute; top:8%; right:10%; width:100px; height:140px; background: radial-gradient(ellipse at 50% 30%, rgba(200,200,255,.3) 0%, transparent 70%); animation: mu-moon 12s ease-in-out infinite alternate; pointer-events:none; }
@keyframes mu-fire { 0% { transform: scale(1) rotate(0deg); opacity:.8 } 50% { transform: scale(1.1) rotate(2deg); opacity:1 } 100% { transform: scale(0.95) rotate(-2deg); opacity:.85 } }
@keyframes mu-chair { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-2px) } }
@keyframes mu-figure { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes mu-moon { 0% { opacity:.1; transform: scale(1) } 50% { opacity:.3; transform: scale(1.05) } 100% { opacity:.15; transform: scale(1) } }

/* Scene: silent-dinner */
.scn-silent-dinner {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 60%);
}
.scn-silent-dinner .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); }
.scn-silent-dinner .wall-dark { position:absolute; top:0; left:0; right:0; bottom:35%; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%); }
.scn-silent-dinner .table { position:absolute; bottom:18%; left:30%; width:200px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-silent-dinner .chair { position:absolute; bottom:20%; left:38%; width:60px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform-origin: bottom; animation: sd-chair 10s ease-in-out infinite; }
.scn-silent-dinner .diner { position:absolute; bottom:28%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sd-diner 12s ease-in-out infinite; }
.scn-silent-dinner .candle { position:absolute; bottom:42%; left:44%; width:6px; height:20px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius: 30% 30% 10% 10%; }
.scn-silent-dinner .flame-glow { position:absolute; bottom:50%; left:44%; width:20px; height:30px; background: radial-gradient(circle, #ffd080 0%, #b08040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 10px #b08040, 0 0 50px 20px rgba(200,120,40,.3); animation: sd-flame 3s ease-in-out infinite alternate; }
.scn-silent-dinner .window-night { position:absolute; top:10%; left:8%; width:80px; height:120px; background: #0a0a1a; border:4px solid #2a1a0a; border-radius:2px; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
@keyframes sd-chair { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes sd-diner { 0%,100% { transform: rotate(2deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(2px) } }
@keyframes sd-flame { 0% { transform: scale(1) rotate(0deg); opacity:.8 } 50% { transform: scale(1.2) rotate(8deg); opacity:1 } 100% { transform: scale(0.9) rotate(-5deg); opacity:.75 } }

/* Scene: thousand-regrets */
.scn-thousand-regrets {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #0e0e1e 100%),
    radial-gradient(ellipse at 30% 70%, #2a2a4e 0%, transparent 70%);
}
.scn-thousand-regrets .floor-blur { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); filter: blur(2px); }
.scn-thousand-regrets .wall-shadow { position:absolute; top:0; left:0; right:0; bottom:20%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); }
.scn-thousand-regrets .clock { position:absolute; top:12%; left:50%; transform:translateX(-50%); width:60px; height:60px; background: radial-gradient(circle, #3a3a4a 0%, #1a1a2a 100%); border-radius:50%; border:3px solid #2a2a3a; box-shadow: 0 0 8px rgba(0,0,0,.4); }
.scn-thousand-regrets .desk { position:absolute; bottom:10%; left:25%; width:140px; height:20px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:4px; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-thousand-regrets .figure-wait { position:absolute; bottom:18%; left:42%; width:28px; height:90px; background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tr-figure 15s ease-in-out infinite; }
.scn-thousand-regrets .window-dawn { position:absolute; top:6%; right:8%; width:90px; height:130px; background: #0a0a1a; border:5px solid #1a1a2a; border-radius:3px; box-shadow: inset 0 0 60px rgba(0,0,0,.9); }
.scn-thousand-regrets .moon-slit { position:absolute; top:6%; right:8%; width:20px; height:130px; background: linear-gradient(90deg, rgba(180,180,255,.15) 0%, transparent 100%); animation: tr-moon 20s ease-in-out infinite alternate; }
@keyframes tr-figure { 0% { transform: translateX(0) rotate(1deg) translateY(0) } 50% { transform: translateX(4px) rotate(-1deg) translateY(-2px) } 100% { transform: translateX(0) rotate(0deg) translateY(0) } }
@keyframes tr-moon { 0% { opacity:.05; transform: scaleX(1) } 50% { opacity:.2; transform: scaleX(1.5) } 100% { opacity:.08; transform: scaleX(1) } }

/* Scene: uncle-chaffs */
.scn-uncle-chaffs {
  background:
    linear-gradient(180deg, #c8b88a 0%, #a89070 40%, #b8a080 100%),
    radial-gradient(ellipse at 70% 50%, #e8d8b0 0%, transparent 60%);
}
.scn-uncle-chaffs .wall-light { position:absolute; inset:0; background: linear-gradient(135deg, #d0c0a0 0%, #b8a080 100%); }
.scn-uncle-chaffs .sofa { position:absolute; bottom:5%; left:20%; width:140px; height:70px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: uc-sofa 10s ease-in-out infinite; }
.scn-uncle-chaffs .tea-table { position:absolute; bottom:10%; left:45%; width:60px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-uncle-chaffs .teacup { position:absolute; bottom:20%; left:48%; width:20px; height:16px; background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.15); animation: uc-teacup 4s ease-in-out infinite alternate; }
.scn-uncle-chaffs .window-sun { position:absolute; top:5%; right:5%; width:120px; height:160px; background: #d8e8ff; border:6px solid #8a7a5a; border-radius:4px; box-shadow: inset 0 0 30px rgba(255,255,200,.4); }
.scn-uncle-chaffs .sunbeam { position:absolute; top:5%; right:5%; width:120px; height:160px; background: linear-gradient(135deg, rgba(255,255,200,.2) 0%, transparent 50%); animation: uc-sunbeam 8s ease-in-out infinite alternate; pointer-events:none; }
.scn-uncle-chaffs .bookshelf { position:absolute; bottom:10%; left:5%; width:60px; height:120px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-uncle-chaffs .figure-calm { position:absolute; bottom:12%; left:30%; width:22px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: uc-figure 12s ease-in-out infinite; }
@keyframes uc-sofa { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes uc-teacup { 0% { transform: rotate(0deg) } 100% { transform: rotate(3deg) } }
@keyframes uc-sunbeam { 0% { opacity:.2; transform: rotate(0deg) } 50% { opacity:.5; transform: rotate(2deg) } 100% { opacity:.3; transform: rotate(-1deg) } }
@keyframes uc-figure { 0% { transform: rotate(1deg) translateX(0) } 50% { transform: rotate(-1deg) translateX(2px) } 100% { transform: rotate(0deg) translateX(0) } }

.scn-elma-ready {
  background: 
    linear-gradient(180deg, #1c1c2e 0%, #2a2a3e 50%, #1e1e2e 100%),
    radial-gradient(ellipse at 30% 60%, #3a3a5a 0%, transparent 60%);
}
.scn-elma-ready .wall-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #2c2c44 0%, #1a1a2e 100%); }
.scn-elma-ready .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-elma-ready .lamp-glow { position:absolute; top:20%; left:60%; width:60px; height:80px; background: radial-gradient(circle, #d4a050 0%, #b08030 30%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: er-lamp 4s ease-in-out infinite alternate; }
.scn-elma-ready .window-frame { position:absolute; top:10%; left:15%; width:80px; height:100px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border: 4px solid #4a4a6a; border-radius: 10% 10% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-elma-ready .figure-elma { position:absolute; bottom:30%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #9a7a5a 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: er-figure 6s ease-in-out infinite; }
.scn-elma-ready .cloak { position:absolute; bottom:30%; left:42%; width:30px; height:50px; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: er-cloak 6s ease-in-out infinite; }
.scn-elma-ready .dressing-case { position:absolute; bottom:10%; left:70%; width:50px; height:35px; background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 2px 2px 8px rgba(0,0,0,.5); animation: er-case 8s ease-in-out infinite; }
.scn-elma-ready .shadow { position:absolute; bottom:0; left:20%; width:200px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(6px); animation: er-shadow 12s ease-in-out infinite alternate; }
@keyframes er-lamp { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }
@keyframes er-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(0) translateY(-1px) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-0.5deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes er-cloak { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(-5deg) } }
@keyframes er-case { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes er-shadow { 0% { opacity:.6; transform: scaleX(1) } 50% { opacity:.8; transform: scaleX(0.9) } 100% { opacity:.6; transform: scaleX(1) } }

.scn-princess-greets {
  background: 
    linear-gradient(180deg, #f5e8d0 0%, #e8d0b0 50%, #d8c0a0 100%),
    radial-gradient(ellipse at 80% 30%, #fff8e0 0%, transparent 60%);
}
.scn-princess-greets .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #f0e0c8 0%, #e0c8a8 50%, #d0b898 100%); }
.scn-princess-greets .window-right { position:absolute; top:10%; right:8%; width:90px; height:120px; background: linear-gradient(180deg, #b0d8f0 0%, #90b8d0 100%); border: 6px solid #c8b090; border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 30px rgba(255,255,200,.4); }
.scn-princess-greets .couch { position:absolute; bottom:20%; left:10%; width:160px; height:60px; background: linear-gradient(180deg, #d0a878 0%, #b08858 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.2); }
.scn-princess-greets .princess-figure { position:absolute; bottom:25%; left:55%; width:28px; height:70px; background: linear-gradient(180deg, #b09070 0%, #705040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pg-princess 5s ease-in-out infinite alternate; }
.scn-princess-greets .elma-figure { position:absolute; bottom:25%; left:35%; width:22px; height:58px; background: linear-gradient(180deg, #a08060 0%, #604030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pg-elma 5s ease-in-out infinite alternate; }
.scn-princess-greets .rug { position:absolute; bottom:5%; left:25%; width:50%; height:40px; background: linear-gradient(90deg, #a08060 0%, #c0a080 30%, #a08060 70%, #908060 100%); border-radius: 50% / 60% 60% 40% 40%; filter: blur(2px); }
.scn-princess-greets .chandelier { position:absolute; top:0; left:50%; transform:translateX(-50%); width:80px; height:30px; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 0 0 50% 50% / 0 0 60% 60%; box-shadow: 0 10px 20px rgba(255,255,200,.3); animation: pg-chandelier 6s ease-in-out infinite alternate; }
@keyframes pg-princess { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes pg-elma { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes pg-chandelier { 0% { opacity:.8; transform: translateX(-50%) rotate(-2deg) } 50% { opacity:1; transform: translateX(-50%) rotate(2deg) } 100% { opacity:.9; transform: translateX(-50%) rotate(-1deg) } }

.scn-princess-amazed {
  background: 
    linear-gradient(135deg, #f8f0e0 0%, #e0d8c0 40%, #c0b8a0 100%),
    radial-gradient(ellipse at 70% 20%, #fff8f0 0%, transparent 50%);
}
.scn-princess-amazed .wall-light { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e8d8 0%, #e0d8c0 100%); }
.scn-princess-amazed .floor-dark { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-princess-amazed .table { position:absolute; bottom:30%; left:20%; width:140px; height:40px; background: linear-gradient(180deg, #b09878 0%, #907858 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-princess-amazed .map-paper { position:absolute; bottom:38%; left:25%; width:100px; height:40px; background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 100%); border: 2px solid #b0a080; border-radius: 4% 4% 8% 8%; transform: rotate(-3deg); box-shadow: 0 2px 5px rgba(0,0,0,.2); animation: pa-map 4s ease-in-out infinite; }
.scn-princess-amazed .princess-hand { position:absolute; bottom:48%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #d0b898 0%, #a88868 100%); border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%; transform: rotate(-20deg); transform-origin: bottom left; animation: pa-hand 3s ease-in-out infinite alternate; }
.scn-princess-amazed .elma-silhouette { position:absolute; bottom:30%; right:20%; width:22px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-elma 7s ease-in-out infinite alternate; }
.scn-princess-amazed .shadow-pointing { position:absolute; bottom:10%; left:35%; width:180px; height:50px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); filter: blur(8px); }
@keyframes pa-map { 0% { transform: rotate(-3deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-3deg) } }
@keyframes pa-hand { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-22deg) } }
@keyframes pa-elma { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-sanctuary-offered {
  background: 
    linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 50%, #d0b890 100%),
    radial-gradient(ellipse at 40% 60%, #ffecd0 0%, transparent 60%);
}
.scn-sanctuary-offered .wall-warm { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #e8d8b8 0%, #d8c8a8 50%, #c8b898 100%); }
.scn-sanctuary-offered .fireplace { position:absolute; bottom:20%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7050 0%, #5a4020 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-sanctuary-offered .fire-glow { position:absolute; bottom:28%; left:50%; width:60px; height:50px; transform:translateX(-50%); background: radial-gradient(circle, #ffb060 0%, #ff8040 30%, transparent 60%); border-radius: 50%; filter: blur(10px); animation: so-fire 4s ease-in-out infinite alternate; }
.scn-sanctuary-offered .sofa { position:absolute; bottom:15%; left:10%; width:180px; height:50px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.2); }
.scn-sanctuary-offered .princess-seated { position:absolute; bottom:22%; left:20%; width:26px; height:55px; background: linear-gradient(180deg, #b09070 0%, #705040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: so-princess 8s ease-in-out infinite alternate; }
.scn-sanctuary-offered .elma-seated { position:absolute; bottom:22%; left:40%; width:24px; height:52px; background: linear-gradient(180deg, #a08060 0%, #604030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: so-elma 8s ease-in-out infinite alternate; }
.scn-sanctuary-offered .cushion { position:absolute; bottom:16%; left:15%; width:40px; height:20px; background: radial-gradient(ellipse, #d0a878 0%, #b08858 100%); border-radius: 50% / 60% 60% 40% 40%; filter: blur(1px); animation: so-cushion 6s ease-in-out infinite; }
@keyframes so-fire { 0% { opacity:.8; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:.9; transform: translateX(-50%) scale(0.9) } }
@keyframes so-princess { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes so-elma { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes so-cushion { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-first-sight-elma {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-first-sight-elma .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  animation: fs-wall 12s ease-in-out infinite alternate;
}
.scn-first-sight-elma .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0f0a05 100%);
  border-top: 2px solid #4a3a2a;
  animation: fs-floor 8s ease-in-out infinite;
}
.scn-first-sight-elma .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #2a1a0a 100%);
  border: 3px solid #0f0a05;
  border-radius: 4%;
  box-shadow: inset 0 0 20px 5px rgba(90,74,58,0.6);
  animation: fs-window 15s ease-in-out infinite alternate;
}
.scn-first-sight-elma .figure {
  position: absolute; bottom: 25%; left: 45%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1510 40%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fs-figure 4s ease-in-out infinite;
}
.scn-first-sight-elma .lantern {
  position: absolute; bottom: 30%; left: 30%; width: 4%; height: 5%;
  background: #d49a5a;
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(212,154,90,0.5), 0 0 60px 15px rgba(212,154,90,0.2);
  animation: fs-lantern 3s ease-in-out infinite alternate;
}
.scn-first-sight-elma .shadow {
  position: absolute; bottom: 24%; left: 42%; width: 14%; height: 10%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: fs-shadow 4s ease-in-out infinite;
}
@keyframes fs-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fs-floor { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes fs-window { 0% { opacity:0.7; box-shadow: inset 0 0 20px 5px rgba(90,74,58,0.4) } 50% { opacity:1; box-shadow: inset 0 0 30px 8px rgba(90,74,58,0.7) } 100% { opacity:0.8; box-shadow: inset 0 0 20px 5px rgba(90,74,58,0.5) } }
@keyframes fs-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4%) translateY(-1%) rotate(2deg) } 50% { transform: translateX(8%) translateY(0) rotate(-2deg) } 75% { transform: translateX(12%) translateY(-1%) rotate(2deg) } 100% { transform: translateX(16%) translateY(0) rotate(0) } }
@keyframes fs-lantern { 0% { box-shadow:0 0 20px 4px rgba(212,154,90,0.4); opacity:0.8 } 50% { box-shadow:0 0 40px 12px rgba(212,154,90,0.7); opacity:1 } 100% { box-shadow:0 0 25px 6px rgba(212,154,90,0.5); opacity:0.9 } }
@keyframes fs-shadow { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.1) translateX(2%) } 100% { transform:scaleX(1) } }

.scn-deaf-dumb-discovery {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 70%, #2a2a3e 0%, transparent 70%);
}
.scn-deaf-dumb-discovery .bg {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #2a2a3e 0%, #0f0f1e 100%);
  animation: dd-bg 10s ease-in-out infinite alternate;
}
.scn-deaf-dumb-discovery .table {
  position: absolute; bottom:15%; left:20%; width:60%; height:5%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: dd-table 8s ease-in-out infinite;
}
.scn-deaf-dumb-discovery .figure-left {
  position: absolute; bottom:20%; left:25%; width:10%; height:40%;
  background: linear-gradient(180deg, #0a0a0a 0%, #151510 40%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dd-figure-l 5s ease-in-out infinite;
}
.scn-deaf-dumb-discovery .figure-right {
  position: absolute; bottom:25%; right:25%; width:8%; height:35%;
  background: linear-gradient(180deg, #0a0a0a 0%, #151510 40%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dd-figure-r 6s ease-in-out infinite;
}
.scn-deaf-dumb-discovery .lamp {
  position: absolute; bottom:30%; left:45%; width:3%; height:8%;
  background: radial-gradient(ellipse at 50% 30%, #b8785a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 25px 8px rgba(184,120,90,0.5), 0 0 50px 15px rgba(184,120,90,0.2);
  animation: dd-lamp 4s ease-in-out infinite alternate;
}
.scn-deaf-dumb-discovery .shadow-floor {
  position: absolute; bottom:14%; left:22%; width:56%; height:8%;
  background: rgba(0,0,0,0.4);
  filter: blur(6px);
  border-radius: 50%;
  animation: dd-shadow 7s ease-in-out infinite;
}
@keyframes dd-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dd-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes dd-figure-l { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2%) rotate(3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2%) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dd-figure-r { 0% { transform: translateY(0) } 50% { transform: translateY(-3%) } 100% { transform: translateY(0) } }
@keyframes dd-lamp { 0% { box-shadow:0 0 20px 4px rgba(184,120,90,0.4); opacity:0.8 } 50% { box-shadow:0 0 35px 10px rgba(184,120,90,0.7); opacity:1 } 100% { box-shadow:0 0 25px 6px rgba(184,120,90,0.5); opacity:0.9 } }
@keyframes dd-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }

.scn-shocked-affliction {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 70%);
}
.scn-shocked-affliction .bg {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #2a2a3e 0%, #0f0f1e 100%);
  animation: sa-bg 12s ease-in-out infinite alternate;
}
.scn-shocked-affliction .window {
  position: absolute; top:10%; left:30%; width:40%; height:35%;
  background: radial-gradient(ellipse at 50% 50%, #4a4a5e 0%, #1a1a2e 100%);
  border: 3px solid #0a0a15;
  border-radius: 4%;
  box-shadow: inset 0 0 30px 8px rgba(74,74,94,0.5);
  animation: sa-window 18s ease-in-out infinite alternate;
}
.scn-shocked-affliction .figure-left {
  position: absolute; bottom:20%; left:20%; width:12%; height:32%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1510 40%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-figure-l 3.5s ease-in-out infinite;
}
.scn-shocked-affliction .figure-right {
  position: absolute; bottom:25%; right:20%; width:10%; height:28%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1510 40%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-figure-r 4.5s ease-in-out infinite;
}
.scn-shocked-affliction .chair {
  position: absolute; bottom:18%; left:40%; width:20%; height:15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sa-chair 6s ease-in-out infinite;
}
.scn-shocked-affliction .shadow-wall {
  position: absolute; top:5%; left:15%; width:70%; height:20%;
  background: rgba(0,0,0,0.3);
  filter: blur(8px);
  animation: sa-shadow 5s ease-in-out infinite alternate;
}
@keyframes sa-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sa-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sa-figure-l { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-4%) rotate(5deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2%) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sa-figure-r { 0% { transform: translateX(0) } 50% { transform: translateX(5%) scale(1.05) } 100% { transform: translateX(0) } }
@keyframes sa-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sa-shadow { 0% { transform: scaleX(1); opacity:0.3 } 50% { transform: scaleX(1.2); opacity:0.5 } 100% { transform: scaleX(1); opacity:0.3 } }

.scn-prison-room {
  background: linear-gradient(180deg, #0f0f1a 0%, #0a0a12 50%, #0f0f1a 100%), radial-gradient(ellipse at 50% 90%, #1a1a2a 0%, transparent 70%);
}
.scn-prison-room .bg {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  animation: pr-bg 14s ease-in-out infinite alternate;
}
.scn-prison-room .bars-fore {
  position: absolute; top:0; bottom:0; left:10%; width:3%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 4%;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
  animation: pr-bars 6s ease-in-out infinite;
}
.scn-prison-room .bars-back {
  position: absolute; top:0; bottom:0; right:10%; width:3%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 4%;
  box-shadow: -2px 0 4px rgba(0,0,0,0.5);
  animation: pr-bars 6s ease-in-out infinite reverse;
}
.scn-prison-room .window-out {
  position: absolute; top:12%; left:15%; width:70%; height:30%;
  background: radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, #0f0f1a 100%);
  border: 2px solid #2a2a3e;
  border-radius: 6%;
  box-shadow: inset 0 0 20px 5px rgba(42,42,62,0.6);
  animation: pr-window 20s ease-in-out infinite alternate;
}
.scn-prison-room .figure {
  position: absolute; bottom:15%; left:35%; width:20%; height:40%;
  background: linear-gradient(180deg, #0a0a0a 0%, #151510 40%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr-figure 5s ease-in-out infinite;
}
.scn-prison-room .floor {
  position: absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #0f0f0f 0%, #050505 100%);
  border-top: 2px solid #1a1a1a;
  animation: pr-floor 8s ease-in-out infinite;
}
@keyframes pr-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pr-bars { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes pr-window { 0% { opacity:0.5; box-shadow: inset 0 0 20px 5px rgba(42,42,62,0.4) } 50% { opacity:0.9; box-shadow: inset 0 0 35px 8px rgba(42,42,62,0.7) } 100% { opacity:0.6; box-shadow: inset 0 0 20px 5px rgba(42,42,62,0.5) } }
@keyframes pr-figure { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(2%) rotate(2deg) } 40% { transform: translateX(-2%) rotate(-2deg) } 60% { transform: translateX(1%) rotate(1deg) } 80% { transform: translateX(-1%) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pr-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-spade-suspicion {
  background: linear-gradient(180deg, #2c1e3a 0%, #4a2e3e 30%, #6a4a3a 60%, #3a2a1a 100%), radial-gradient(ellipse at 30% 80%, #6a4a3a 0%, transparent 60%);
}
.scn-spade-suspicion .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a1a3a 0%, #3a2a4a 40%, #5a3a2a 100%);
  animation: ss-sky 10s ease-in-out infinite alternate;
}
.scn-spade-suspicion .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-spade-suspicion .figure-left {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-figure 4s ease-in-out infinite;
}
.scn-spade-suspicion .figure-right {
  position: absolute; bottom: 25%; left: 55%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-figure 4.5s ease-in-out infinite 0.5s;
}
.scn-spade-suspicion .spade {
  position: absolute; bottom: 32%; left: 40%; width: 6px; height: 30px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 80% 80%;
  transform-origin: bottom center;
  animation: ss-spade 2s ease-in-out infinite;
}
.scn-spade-suspicion .shadow {
  position: absolute; bottom: 22%; left: 20%; width: 40%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: ss-shadow 4s ease-in-out infinite;
}
.scn-spade-suspicion .moon {
  position: absolute; top: 15%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0d0b0 0%, #c0a080 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(192,160,128,0.4);
  animation: ss-moon 8s ease-in-out infinite alternate;
}
.scn-spade-suspicion .dust {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(180,140,100,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: ss-dust 3s ease-in-out infinite;
}
@keyframes ss-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ss-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes ss-spade { 0%,100% { transform: rotate(-10deg) translateX(-5px) } 50% { transform: rotate(10deg) translateX(5px) } }
@keyframes ss-shadow { 0%,100% { opacity: 0.6; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(1.1) } }
@keyframes ss-moon { 0% { opacity: 0.9; transform: translateY(0) scale(1) } 50% { opacity: 1; transform: translateY(-5px) scale(1.03) } 100% { opacity: 0.95; transform: translateY(3px) scale(0.97) } }
@keyframes ss-dust { 0%,100% { opacity: 0.2; transform: scale(1) } 50% { opacity: 0.5; transform: scale(1.2) } }

.scn-disturbed-ground {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a1e2a 40%, #3a2a1a 80%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-disturbed-ground .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1a3a 0%, #3a2a4a 50%, #4a3a2a 100%);
  animation: dg-sky 12s ease-in-out infinite alternate;
}
.scn-disturbed-ground .rock {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  box-shadow: inset 0 5px 20px rgba(0,0,0,0.8), 0 5px 15px rgba(0,0,0,0.5);
}
.scn-disturbed-ground .hole {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 30px;
  background: #0a0a0a;
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  box-shadow: inset 0 0 10px #000, 0 2px 10px rgba(0,0,0,0.8);
  animation: dg-hole 5s ease-in-out infinite;
}
.scn-disturbed-ground .spade {
  position: absolute; bottom: 30%; left: 25%; width: 5px; height: 40px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 10% 10% 50% 50% / 10% 10% 80% 80%;
  transform-origin: bottom center;
  animation: dg-spade 3s ease-in-out infinite;
}
.scn-disturbed-ground .bar {
  position: absolute; bottom: 28%; left: 60%; width: 30px; height: 5px;
  background: linear-gradient(90deg, #3a3a3a 0%, #5a5a5a 50%, #3a3a3a 100%);
  border-radius: 30%;
  transform: rotate(-30deg);
  animation: dg-bar 4s ease-in-out infinite;
}
.scn-disturbed-ground .leaves {
  position: absolute; bottom: 22%; left: 33%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, #5a4a2a 0%, transparent 100%);
  filter: blur(2px);
  animation: dg-leaves 6s ease-in-out infinite;
}
.scn-disturbed-ground .footprints {
  position: absolute; bottom: 15%; left: 20%; width: 50%; height: 20px;
  background: repeating-linear-gradient(90deg, rgba(40,30,20,0.6) 0px 8px, transparent 8px 16px);
  border-radius: 10px;
  opacity: 0.3;
  animation: dg-footprints 10s linear infinite;
}
.scn-disturbed-ground .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 30%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(5px);
  animation: dg-shadow 5s ease-in-out infinite;
}
@keyframes dg-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes dg-hole { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes dg-spade { 0%,100% { transform: rotate(-15deg) translateX(-8px) } 50% { transform: rotate(15deg) translateX(8px) } }
@keyframes dg-bar { 0%,100% { transform: rotate(-30deg) translateX(0) } 50% { transform: rotate(-35deg) translateX(5px) } }
@keyframes dg-leaves { 0%,100% { opacity: 0.4; transform: translateY(0) rotate(0deg) } 50% { opacity: 0.8; transform: translateY(-3px) rotate(10deg) } }
@keyframes dg-footprints { 0% { opacity: 0.1; transform: translateX(0) } 50% { opacity: 0.3; transform: translateX(-10px) } 100% { opacity: 0.1; transform: translateX(0) } }
@keyframes dg-shadow { 0%,100% { opacity: 0.5; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(1.1) } }

.scn-woman-body-exhumed {
  background: linear-gradient(180deg, #1e1a2a 0%, #2a1e2a 40%, #3a2a1a 80%, #1a0a00 100%), radial-gradient(ellipse at 50% 90%, #2a1a0a 0%, transparent 60%);
}
.scn-woman-body-exhumed .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #2a1a3a 0%, #3a2a4a 50%, #4a3a2a 100%);
  animation: wb-sky 10s ease-in-out infinite alternate;
}
.scn-woman-body-exhumed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-woman-body-exhumed .hole {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #0a0a0a 0%, #1a0a00 60%, transparent 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 15px #000, 0 5px 20px rgba(0,0,0,0.7);
  animation: wb-hole 4s ease-in-out infinite;
}
.scn-woman-body-exhumed .left-hand {
  position: absolute; bottom: 32%; left: 44%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: wb-hand 2s ease-in-out infinite;
}
.scn-woman-body-exhumed .right-hand {
  position: absolute; bottom: 32%; left: 56%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: wb-hand 2.2s ease-in-out infinite 0.4s;
}
.scn-woman-body-exhumed .skirt {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: wb-skirt 3s ease-in-out infinite;
}
.scn-woman-body-exhumed .soil {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 10px;
  background: radial-gradient(ellipse, #4a3a2a 0%, transparent 100%);
  filter: blur(3px);
  animation: wb-soil 3s ease-in-out infinite;
}
.scn-woman-body-exhumed .leaves {
  position: absolute; bottom: 28%; left: 42%; width: 40px; height: 15px;
  background: radial-gradient(ellipse at 30% 50%, #5a4a2a 0%, transparent 80%);
  filter: blur(4px);
  animation: wb-leaves 6s ease-in-out infinite;
}
@keyframes wb-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes wb-hole { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.95) } }
@keyframes wb-hand { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(5deg) } }
@keyframes wb-skirt { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } }
@keyframes wb-soil { 0%,100% { opacity: 0.3; transform: translateY(0) scale(1) } 50% { opacity: 0.7; transform: translateY(-2px) scale(1.3) } }
@keyframes wb-leaves { 0%,100% { opacity: 0.2; transform: translateY(0) rotate(0deg) } 50% { opacity: 0.5; transform: translateY(-5px) rotate(15deg) } }

.scn-armida-recognized {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a1e3a 40%, #3a2a1a 80%, #1a0a00 100%), radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, transparent 50%);
}
.scn-armida-recognized .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #2a1a3a 0%, #3a2a4a 50%, #4a3a2a 100%);
  animation: ar-sky 10s ease-in-out infinite alternate;
}
.scn-armida-recognized .hole {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #0a0a0a 0%, #1a0a00 60%, transparent 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: inset 0 0 20px #000, 0 5px 25px rgba(0,0,0,0.8);
  animation: ar-hole 4s ease-in-out infinite;
}
.scn-armida-recognized .body {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.7);
  animation: ar-body 8s ease-in-out infinite;
}
.scn-armida-recognized .skirt {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 25px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: ar-skirt 6s ease-in-out infinite;
}
.scn-armida-recognized .arm {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: top center;
  animation: ar-arm 3s ease-in-out infinite;
}
.scn-armida-recognized .dirt-particles {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(60,40,20,0.4) 0%, transparent 70%);
  filter: blur(5px);
  animation: ar-dirt 3s ease-in-out infinite;
}
.scn-armida-recognized .shadow {
  position: absolute; bottom: 22%; left: 35%; width: 30%; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(5px);
  animation: ar-shadow 5s ease-in-out infinite;
}
.scn-armida-recognized .earth-crumbs {
  position: absolute; bottom: 25%; left: 52%; width: 20px; height: 10px;
  background: radial-gradient(ellipse, #4a3a2a 0%, transparent 100%);
  filter: blur(3px);
  animation: ar-crumbs 2s ease-in-out infinite;
}
@keyframes ar-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ar-hole { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.95) } }
@keyframes ar-body { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes ar-skirt { 0%,100% { transform: translateX(-50%) scale(1) rotate(0deg) } 50% { transform: translateX(-50%) scale(1.05) rotate(3deg) } }
@keyframes ar-arm { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-3px) } }
@keyframes ar-dirt { 0%,100% { opacity: 0.2; transform: scale(1) } 50% { opacity: 0.5; transform: scale(1.2) } }
@keyframes ar-shadow { 0%,100% { opacity: 0.6; transform: scaleX(1) } 50% { opacity: 0.9; transform: scaleX(1.1) } }
@keyframes ar-crumbs { 0%,100% { opacity: 0.3; transform: translateY(0) scale(1) } 50% { opacity: 0.8; transform: translateY(-5px) scale(1.5) } }

.scn-struggle-with-sentry {
  background: linear-gradient(180deg, #1b1a2e 0%, #2a2438 40%, #3b2f4a 100%), radial-gradient(ellipse at 50% 70%, #4a3b5a 0%, transparent 70%);
}
.scn-struggle-with-sentry .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1f1a 0%, #1a1210 100%);
  animation: sws-bg 12s ease-in-out infinite alternate;
}
.scn-struggle-with-sentry .lantern {
  position: absolute; top: 15%; left: 45%; width: 20px; height: 28px;
  background: radial-gradient(circle, #ffe070 0%, #d09030 50%, #703010 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 40px 15px #d08040, 0 0 80px 30px rgba(200,100,40,0.3);
  animation: sws-lantern 3s ease-in-out infinite alternate;
}
.scn-struggle-with-sentry .figure-fighter-a {
  position: absolute; bottom: 30%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #303040 0%, #1a1a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: sws-figure-a 2s ease-in-out infinite;
}
.scn-struggle-with-sentry .figure-fighter-b {
  position: absolute; bottom: 30%; left: 50%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #201828 0%, #101018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: sws-figure-b 1.8s ease-in-out infinite;
}
.scn-struggle-with-sentry .gun {
  position: absolute; bottom: 42%; left: 42%; width: 30px; height: 6px;
  background: linear-gradient(90deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 3px; transform: rotate(-20deg);
  animation: sws-gun 0.8s ease-in-out infinite alternate;
}
.scn-struggle-with-sentry .shadow-splotch {
  position: absolute; bottom: 28%; left: 30%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(4px); animation: sws-shadow 4s ease-in-out infinite;
}
@keyframes sws-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sws-lantern { 0% { transform:rotate(-2deg) scale(0.95); box-shadow: 0 0 30px 10px #c07030, 0 0 60px 20px rgba(200,100,40,0.2); } 50% { transform:rotate(3deg) scale(1.05); box-shadow: 0 0 45px 18px #e09040, 0 0 80px 30px rgba(200,100,40,0.4); } 100% { transform:rotate(-1deg) scale(0.98); box-shadow: 0 0 35px 12px #c07030, 0 0 70px 25px rgba(200,100,40,0.3); } }
@keyframes sws-figure-a { 0% { transform:translateX(-2px) rotate(-3deg); } 33% { transform:translateX(3px) rotate(2deg); } 66% { transform:translateX(-1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes sws-figure-b { 0% { transform:translateX(2px) rotate(4deg); } 40% { transform:translateX(-2px) rotate(-2deg); } 70% { transform:translateX(1px) rotate(1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes sws-gun { 0% { transform:rotate(-25deg) translateY(0); } 50% { transform:rotate(-15deg) translateY(-2px); } 100% { transform:rotate(-20deg) translateY(2px); } }
@keyframes sws-shadow { 0%,100% { opacity:0.6; transform:scale(1); } 50% { opacity:0.8; transform:scale(1.05); } }

/* ---------- felix-helps ---------- */
.scn-felix-helps {
  background: linear-gradient(180deg, #0f1428 0%, #1a2240 40%, #2a3a5a 100%), radial-gradient(ellipse at 50% 20%, #2a4a6a 0%, transparent 60%);
}
.scn-felix-helps .sky-night {
  position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #0a0e1e 0%, #1c2a4a 100%);
  animation: fh-sky 20s ease-in-out infinite alternate;
}
.scn-felix-helps .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a2a44 0%, #0a1224 100%);
  animation: fh-water 6s ease-in-out infinite alternate;
}
.scn-felix-helps .boat {
  position: absolute; bottom: 25%; left: 40%; width: 70px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: fh-boat 4s ease-in-out infinite;
}
.scn-felix-helps .figure-finn {
  position: absolute; bottom: 30%; left: 42%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fh-finn 3s ease-in-out infinite;
}
.scn-felix-helps .figure-elma {
  position: absolute; bottom: 30%; left: 46%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fh-elma 2.5s ease-in-out infinite;
}
.scn-felix-helps .platform {
  position: absolute; bottom: 23%; left: 35%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10%; transform: skewX(-10deg);
}
.scn-felix-helps .moon-glint {
  position: absolute; top: 8%; right: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle, rgba(200,220,255,0.6) 0%, rgba(200,220,255,0.1) 60%, transparent 100%);
  border-radius: 50%; filter: blur(12px);
  animation: fh-glint 8s ease-in-out infinite alternate;
}
@keyframes fh-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes fh-water { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(2px); } }
@keyframes fh-boat { 0% { transform:translateX(0) rotate(-1deg); } 25% { transform:translateX(-5px) rotate(1deg); } 50% { transform:translateX(0) rotate(-0.5deg); } 75% { transform:translateX(3px) rotate(0.5deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes fh-finn { 0% { transform:translateY(0) rotate(0); } 30% { transform:translateY(-3px) rotate(2deg); } 60% { transform:translateY(0) rotate(-1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes fh-elma { 0% { transform:translateY(0) rotate(0); } 40% { transform:translateY(-4px) rotate(-3deg); } 80% { transform:translateY(0) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes fh-glint { 0% { opacity:0.3; transform:scale(0.8); } 50% { opacity:0.7; transform:scale(1.2); } 100% { opacity:0.4; transform:scale(0.9); } }

/* ---------- alarm-bell ---------- */
.scn-alarm-bell {
  background: linear-gradient(180deg, #0a1220 0%, #182840 50%, #1e3250 100%), radial-gradient(ellipse at 30% 50%, #1e3250 0%, transparent 70%);
}
.scn-alarm-bell .sky-night {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #060a14 0%, #12223a 100%);
  animation: ab-sky 15s ease-in-out infinite alternate;
}
.scn-alarm-bell .water-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #14223a 0%, #0a1224 100%);
  animation: ab-water 7s ease-in-out infinite alternate;
}
.scn-alarm-bell .bell-bracket {
  position: absolute; top: 10%; left: 50%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  transform: translateX(-50%);
}
.scn-alarm-bell .bell-clapper {
  position: absolute; top: 28%; left: 50%; width: 6px; height: 12px;
  background: #3a3a4a; border-radius: 40%;
  transform: translateX(-50%);
  animation: ab-clapper 0.6s ease-in-out infinite alternate;
}
.scn-alarm-bell .bell-swing {
  position: absolute; top: 18%; left: 50%; width: 40px; height: 45px;
  border-radius: 50% 50% 40% 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  transform-origin: top center; transform: translateX(-50%);
  animation: ab-bell 0.8s ease-in-out infinite;
}
.scn-alarm-bell .flash-shot {
  position: absolute; top: 40%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,200,100,0.4) 40%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: ab-flash 0.4s ease-in-out infinite;
}
.scn-alarm-bell .boat-small {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 22px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 15% 15%;
  animation: ab-boat 3s ease-in-out infinite;
}
.scn-alarm-bell .figure-jump {
  position: absolute; bottom: 35%; left: 22%; width: 16px; 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: ab-jump 1.2s ease-in-out infinite;
}
@keyframes ab-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes ab-water { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.02); } 100% { transform:translateY(1px) scaleY(0.98); } }
@keyframes ab-clapper { 0% { transform:translateX(-50%) translateY(0); } 100% { transform:translateX(-50%) translateY(6px); } }
@keyframes ab-bell { 0% { transform:translateX(-50%) rotate(-15deg); } 25% { transform:translateX(-50%) rotate(10deg); } 50% { transform:translateX(-50%) rotate(-8deg); } 75% { transform:translateX(-50%) rotate(12deg); } 100% { transform:translateX(-50%) rotate(-10deg); } }
@keyframes ab-flash { 0%,100% { opacity:0; transform:scale(0.5); } 50% { opacity:1; transform:scale(1.3); } }
@keyframes ab-boat { 0% { transform:translateX(0) rotate(0); } 30% { transform:translateX(-4px) rotate(-2deg); } 60% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes ab-jump { 0% { transform:translateY(0) rotate(0); } 20% { transform:translateY(-15px) rotate(-5deg); } 40% { transform:translateY(-5px) rotate(3deg); } 60% { transform:translateY(-18px) rotate(-3deg); } 80% { transform:translateY(-8px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }

/* ---------- pursuit-boats ---------- */
.scn-pursuit-boats {
  background: linear-gradient(180deg, #070c18 0%, #111c34 40%, #1a2848 100%), radial-gradient(ellipse at 80% 30%, #1a2848 0%, transparent 70%);
}
.scn-pursuit-boats .sky-dark {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #040810 0%, #0e1a2e 100%);
  animation: pb-sky 25s ease-in-out infinite alternate;
}
.scn-pursuit-boats .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #14223a 0%, #0a1020 100%);
  animation: pb-river 8s ease-in-out infinite alternate;
}
.scn-pursuit-boats .boat-pursuer {
  position: absolute; bottom: 25%; left: 55%; width: 60px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 15% 15%;
  animation: pb-boat-p 3s ease-in-out infinite;
}
.scn-pursuit-boats .boat-fleeing {
  position: absolute; bottom: 28%; left: 15%; width: 55px; height: 22px;
  background: linear-gradient(180deg, #2a2a1a 0%, #12120a 100%);
  border-radius: 30% 30% 15% 15%;
  animation: pb-boat-f 2.5s ease-in-out infinite;
}
.scn-pursuit-boats .rowers-a {
  position: absolute; bottom: 32%; left: 56%; 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; box-shadow: 8px 0 0 0 #1a1a2a; /* second rower */
  animation: pb-rowers 1.6s ease-in-out infinite;
}
.scn-pursuit-boats .rowers-b {
  position: absolute; bottom: 35%; left: 16%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; box-shadow: 8px 0 0 0 #1a1a2a;
  animation: pb-rowers 1.8s ease-in-out infinite reverse;
}
.scn-pursuit-boats .shoreline-trees {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a1a12 0%, #060e08 100%);
  clip-path: polygon(0% 100%, 5% 60%, 10% 80%, 15% 50%, 20% 90%, 25% 40%, 30% 70%, 35% 55%, 40% 85%, 45% 30%, 50% 65%, 55% 45%, 60% 75%, 65% 35%, 70% 60%, 75% 50%, 80% 70%, 85% 40%, 90% 80%, 95% 50%, 100% 100%);
  filter: blur(6px); animation: pb-trees 5s ease-in-out infinite alternate;
}
@keyframes pb-sky { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes pb-river { 0% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(-2px) scaleX(1.01); } 100% { transform:translateY(1px) scaleX(0.99); } }
@keyframes pb-boat-p { 0% { transform:translateX(0) rotate(0); } 20% { transform:translateX(-3px) rotate(-1deg); } 40% { transform:translateX(2px) rotate(1deg); } 60% { transform:translateX(-1px) rotate(-0.5deg); } 80% { transform:translateX(4px) rotate(0.5deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes pb-boat-f { 0% { transform:translateX(0) rotate(0); } 25% { transform:translateX(5px) rotate(2deg); } 50% { transform:translateX(0) rotate(-1deg); } 75% { transform:translateX(3px) rotate(1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes pb-rowers { 0% { transform:rotate(-15deg); } 50% { transform:rotate(15deg); } 100% { transform:rotate(-10deg); } }
@keyframes pb-trees { 0% { transform:translateX(0) scale(1); } 50% { transform:translateX(-5px) scale(1.02); } 100% { transform:translateX(5px) scale(0.98); } }

/* responsibility-challenge */
.scn-responsibility-challenge {
  background: linear-gradient(135deg, #f0e6d0 0%, #c0d8e8 50%, #a0b8c8 100%), radial-gradient(ellipse at 20% 30%, #fff8e0 0%, transparent 60%);
}
.scn-responsibility-challenge .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #b0c4d8 100%); }
.scn-responsibility-challenge .window { position:absolute; left:5%; top:15%; width:25%; height:45%; background: radial-gradient(ellipse at 50% 30%, #ffe090 0%, #b0cce0 70%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,224,144,.3); animation: rc-window 6s ease-in-out infinite alternate; }
.scn-responsibility-challenge .table { position:absolute; bottom:20%; left:15%; width:70%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-responsibility-challenge .figure-left { position:absolute; bottom:30%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rc-fig-l 4s ease-in-out infinite; }
.scn-responsibility-challenge .figure-right { position:absolute; bottom:30%; right:20%; width:22px; height:42px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rc-fig-r 3.8s ease-in-out infinite; }
.scn-responsibility-challenge .shadow-left { position:absolute; bottom:20%; left:18%; width:30px; height:15px; background: rgba(0,0,0,.15); border-radius: 50%; filter: blur(4px); animation: rc-shadow 4s ease-in-out infinite; }
.scn-responsibility-challenge .light-ray { position:absolute; top:12%; left:10%; width:60%; height:20%; background: linear-gradient(135deg, rgba(255,255,200,.2) 0%, transparent 70%); filter: blur(8px); animation: rc-ray 8s ease-in-out infinite alternate; }
.scn-responsibility-challenge .clock { position:absolute; top:10%; right:15%; width:16px; height:16px; background: radial-gradient(circle, #c8b090 0%, #8a7a6a 70%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: rc-clock 60s linear infinite; }
@keyframes rc-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes rc-fig-l { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes rc-fig-r { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes rc-shadow { 0%,100% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.1); opacity:1; } }
@keyframes rc-ray { 0% { transform: translateX(-10px) scaleY(1); } 50% { transform: translateX(10px) scaleY(1.05); } 100% { transform: translateX(-5px) scaleY(.95); } }
@keyframes rc-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* defiance-strengthens */
.scn-defiance-strengthens {
  background: linear-gradient(180deg, #e0d8c0 0%, #b0c0d0 100%), radial-gradient(ellipse at 70% 50%, #fff4e0 0%, transparent 60%);
}
.scn-defiance-strengthens .wall { position:absolute; inset:0; background: linear-gradient(180deg, #c8bca8 0%, #a0acb8 100%); }
.scn-defiance-strengthens .floor { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); }
.scn-defiance-strengthens .door { position:absolute; right:10%; bottom:30%; width:18%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: -4px 0 10px rgba(0,0,0,.3); }
.scn-defiance-strengthens .figure-arrest { position:absolute; left:25%; bottom:35%; width:22px; height:45px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ds-fig-a 3.5s ease-in-out infinite; }
.scn-defiance-strengthens .figure-defiant { position:absolute; right:30%; bottom:35%; width:20px; height:44px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ds-fig-d 4s ease-in-out infinite; }
.scn-defiance-strengthens .shadow-arrest { position:absolute; left:23%; bottom:30%; width:40px; height:12px; background: rgba(0,0,0,.1); border-radius: 50%; filter: blur(5px); animation: ds-shadow 3.5s ease-in-out infinite; }
.scn-defiance-strengthens .handcuffs { position:absolute; left:28%; bottom:48%; width:10px; height:6px; background: #8a7a6a; border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,.4); animation: ds-cuffs 1s ease-in-out infinite; }
.scn-defiance-strengthens .light-stripe { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,.15) 0%, rgba(255,255,200,.05) 100%); filter: blur(6px); animation: ds-stripe 5s ease-in-out infinite alternate; }
@keyframes ds-fig-a { 0% { transform: translateX(0) rotate(3deg); } 25% { transform: translateX(-4px) rotate(1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ds-fig-d { 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(-1deg); } }
@keyframes ds-shadow { 0%,100% { transform: scale(1); opacity:.9; } 50% { transform: scale(1.15); opacity:1; } }
@keyframes ds-cuffs { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ds-stripe { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.2; } }

/* enigmatical-threat */
.scn-enigmatical-threat {
  background: linear-gradient(180deg, #b0b8c0 0%, #808a94 50%, #5a6672 100%), radial-gradient(ellipse at 20% 40%, #d0d8e0 0%, transparent 50%);
}
.scn-enigmatical-threat .cell-bg { position:absolute; inset:0; background: linear-gradient(180deg, #8a929c 0%, #5a6672 100%); }
.scn-enigmatical-threat .bars { position:absolute; left:5%; top:0; width:3%; height:100%; background: repeating-linear-gradient(0deg, #4a525c 0px, #4a525c 6px, transparent 6px, transparent 12px); box-shadow: 2px 0 10px rgba(0,0,0,.4); }
.scn-enigmatical-threat .window-slit { position:absolute; top:20%; left:15%; width:10%; height:25%; background: radial-gradient(ellipse at 50% 30%, #ffe090 0%, #80a0b0 70%); border-radius: 2px; box-shadow: inset 0 0 20px rgba(255,224,144,.2); animation: et-slit 8s ease-in-out infinite alternate; }
.scn-enigmatical-threat .figure-sitting { position:absolute; bottom:25%; left:30%; width:24px; height:40px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: et-sit 6s ease-in-out infinite; }
.scn-enigmatical-threat .figure-standing { position:absolute; bottom:25%; right:20%; width:18px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: et-stand 4s ease-in-out infinite; }
.scn-enigmatical-threat .shadow-bars { position:absolute; left:5%; bottom:0; width:20%; height:20%; background: rgba(0,0,0,.15); filter: blur(8px); animation: et-shadow 6s ease-in-out infinite; }
.scn-enigmatical-threat .light-beam { position:absolute; top:15%; left:20%; width:60%; height:15%; background: linear-gradient(135deg, rgba(255,255,200,.1) 0%, transparent 70%); filter: blur(12px); animation: et-beam 10s ease-in-out infinite alternate; }
.scn-enigmatical-threat .chain { position:absolute; bottom:20%; left:28%; width:8px; height:14px; background: #8a7a6a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: et-chain 2s ease-in-out infinite; }
@keyframes et-slit { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.5; } }
@keyframes et-sit { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes et-stand { 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(-1deg); } }
@keyframes et-shadow { 0%,100% { transform: scale(1); opacity:.7; } 50% { transform: scale(1.2); opacity:1; } }
@keyframes et-beam { 0% { transform: translateX(-10px) scaleY(1); } 50% { transform: translateX(15px) scaleY(1.1); } 100% { transform: translateX(-5px) scaleY(.9); } }
@keyframes et-chain { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }

/* smile-defiant */
.scn-smile-defiant {
  background: linear-gradient(180deg, #f0e6d0 0%, #d4c8b0 50%, #b8ac98 100%), radial-gradient(ellipse at 50% 60%, #fff8e0 0%, transparent 70%);
}
.scn-smile-defiant .desk { position:absolute; bottom:15%; left:10%; width:80%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 6px 14px rgba(0,0,0,.5); }
.scn-smile-defiant .lamp { position:absolute; bottom:40%; left:50%; width:12%; height:20%; background: linear-gradient(180deg, #d4a843 0%, #b08030 100%); border-radius: 2px; clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); box-shadow: 0 0 20px rgba(212,168,67,.4); animation: sd-lamp 4s ease-in-out infinite alternate; }
.scn-smile-defiant .paper { position:absolute; bottom:25%; left:20%; width:25%; height:10%; background: linear-gradient(180deg, #f0e6c8 0%, #d0c4a8 100%); border-radius: 1px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: sd-paper 5s ease-in-out infinite; }
.scn-smile-defiant .inkwell { position:absolute; bottom:30%; left:55%; width:8px; height:10px; background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 80%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-smile-defiant .figure-smile { position:absolute; bottom:35%; right:15%; width:24px; height:50px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom right; animation: sd-fig 5s ease-in-out infinite; }
.scn-smile-defiant .shadow-lamp { position:absolute; bottom:15%; left:45%; width:30%; height:8%; background: rgba(0,0,0,.12); border-radius: 50%; filter: blur(6px); animation: sd-shadow 4s ease-in-out infinite alternate; }
.scn-smile-defiant .letter { position:absolute; bottom:28%; right:35%; width:12px; height:16px; background: linear-gradient(180deg, #f0e6c8 0%, #d0c4a8 100%); border-radius: 1px; transform: rotate(8deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: sd-letter 7s ease-in-out infinite; }
.scn-smile-defiant .hand { position:absolute; bottom:38%; right:18%; width:6px; height:10px; background: #c8b090; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: sd-hand 2s ease-in-out infinite; }
@keyframes sd-lamp { 0% { opacity:.8; box-shadow: 0 0 15px rgba(212,168,67,.3); } 50% { opacity:1; box-shadow: 0 0 30px rgba(212,168,67,.6); } 100% { opacity:.9; box-shadow: 0 0 20px rgba(212,168,67,.4); } }
@keyframes sd-paper { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(3deg); } }
@keyframes sd-fig { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sd-shadow { 0% { transform: scaleX(1); opacity:.6; } 50% { transform: scaleX(1.1); opacity:.8; } 100% { transform: scaleX(1); opacity:.5; } }
@keyframes sd-letter { 0%,100% { transform: rotate(8deg); } 50% { transform: rotate(-5deg); } }
@keyframes sd-hand { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } }

.scn-nun-french {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a20 40%, #4a3428 100%),
              radial-gradient(ellipse at 50% 80%, #5a3c2e 0%, transparent 70%);
}
.scn-nun-french .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 25%;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%);
  border-radius: 4% 4% 0 0;
}
.scn-nun-french .wall {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a20 100%);
}
.scn-nun-french .window-glow {
  position: absolute;
  top: 12%; left: 50%;
  width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #c8a060 0%, rgba(200,160,96,0.2) 60%, transparent 100%);
  border-radius: 8% 8% 4% 4%;
  animation: nf-window 6s ease-in-out infinite alternate;
}
.scn-nun-french .nun-figure {
  position: absolute;
  bottom: 25%; left: 40%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nf-figure 8s ease-in-out infinite;
}
.scn-nun-french .candle {
  position: absolute;
  bottom: 35%; left: 55%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #f0d090 0%, #c8a060 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px #f0d090, 0 0 24px 8px rgba(240,208,144,0.3);
  animation: nf-candle 2s ease-in-out infinite alternate;
}
.scn-nun-french .table {
  position: absolute;
  bottom: 26%; left: 50%;
  width: 60px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3428 0%, #2a1e1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-nun-french .dust-a,
.scn-nun-french .dust-b {
  position: absolute;
  width: 6px; height: 6px;
  background: rgba(200,160,96,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: nf-dust 12s linear infinite;
}
.scn-nun-french .dust-a {
  top: 20%; left: 30%;
}
.scn-nun-french .dust-b {
  top: 40%; left: 60%;
  animation-delay: 6s;
}
@keyframes nf-window {
  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(1); }
}
@keyframes nf-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nf-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.9; }
  25% { transform: scaleY(1.08) scaleX(0.98); opacity: 1; }
  50% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.85; }
  75% { transform: scaleY(1.02) scaleX(1); opacity: 0.95; }
  100% { transform: scaleY(1) scaleX(1); opacity: 0.9; }
}
@keyframes nf-dust {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  20% { opacity: 0.5; }
  80% { opacity: 0.3; }
  100% { transform: translateY(-60px) translateX(20px); opacity: 0; }
}

.scn-nun-warning {
  background: linear-gradient(180deg, #1a1218 0%, #2a1a20 40%, #1a1015 100%),
              radial-gradient(ellipse at 30% 70%, #c87030 0%, transparent 60%);
}
.scn-nun-warning .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 20%;
  background: linear-gradient(180deg, #2a1a20 0%, #1a1015 100%);
  border-radius: 4% 4% 0 0;
}
.scn-nun-warning .wall {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1218 0%, #2a1a20 100%);
}
.scn-nun-warning .lantern-glow {
  position: absolute;
  bottom: 30%; left: 35%;
  width: 40px; height: 50px;
  background: radial-gradient(circle, #e88840 0%, rgba(232,136,64,0.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: nw-lantern-glow 1.5s ease-in-out infinite alternate;
}
.scn-nun-warning .nun-figure-lantern {
  position: absolute;
  bottom: 22%; left: 30%;
  width: 28px; height: 80px;
  background: linear-gradient(180deg, #2a1a20 0%, #1a1015 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nw-figure 4s ease-in-out infinite;
}
.scn-nun-warning .shadow-wall {
  position: absolute;
  bottom: 20%; right: 20%;
  width: 100px; height: 120px;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 40% 20% 10% 50%;
  filter: blur(6px);
  animation: nw-shadow 6s ease-in-out infinite alternate;
}
.scn-nun-warning .door-frame {
  position: absolute;
  bottom: 20%; right: 10%;
  width: 70px; height: 140px;
  border: 4px solid #3a2028;
  background: transparent;
  border-radius: 8% 8% 0 0;
  box-shadow: inset 2px 2px 10px rgba(0,0,0,0.5);
}
.scn-nun-warning .lightbeam {
  position: absolute;
  bottom: 20%; right: 12%;
  width: 60px; height: 120px;
  background: linear-gradient(135deg, rgba(232,136,64,0.15) 0%, transparent 100%);
  filter: blur(4px);
  animation: nw-beam 3s ease-in-out infinite alternate;
}
@keyframes nw-lantern-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 nw-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nw-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.5; }
  50% { transform: scaleX(1.1) scaleY(0.9); opacity: 0.8; }
  100% { transform: scaleX(0.95) scaleY(1.05); opacity: 0.6; }
}
@keyframes nw-beam {
  0% { opacity: 0.3; transform: rotate(-3deg); }
  50% { opacity: 0.6; transform: rotate(0deg); }
  100% { opacity: 0.4; transform: rotate(3deg); }
}

.scn-demand-speak {
  background: linear-gradient(180deg, #1a1418 0%, #2a2028 40%, #1e1820 100%),
              radial-gradient(ellipse at 40% 60%, #b06840 0%, transparent 70%);
}
.scn-demand-speak .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 18%;
  background: linear-gradient(180deg, #2a2028 0%, #1a1418 100%);
  border-radius: 6% 6% 0 0;
}
.scn-demand-speak .wall-dark {
  position: absolute;
  inset: 0 0 18% 0;
  background: linear-gradient(180deg, #1a1418 0%, #2a2028 100%);
}
.scn-demand-speak .doorway-arch {
  position: absolute;
  bottom: 18%; left: 50%;
  width: 100px; height: 150px;
  transform: translateX(-50%);
  border: 2px solid #3a2a32;
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-demand-speak .figure-standing {
  position: absolute;
  bottom: 22%; left: 42%;
  width: 24px; height: 90px;
  background: linear-gradient(180deg, #1a1418 0%, #0e0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-stand 3s ease-in-out infinite;
}
.scn-demand-speak .figure-gesture {
  position: absolute;
  bottom: 22%; left: 55%;
  width: 22px; height: 80px;
  background: linear-gradient(180deg, #2a2028 0%, #1a1418 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-gesture 2.5s ease-in-out infinite alternate;
}
.scn-demand-speak .doorlight {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(176,104,64,0.2) 0%, transparent 100%);
  filter: blur(10px);
  animation: ds-light 4s ease-in-out infinite alternate;
}
.scn-demand-speak .shadow-shift {
  position: absolute;
  bottom: 18%; left: 35%;
  width: 120px; height: 80px;
  background: linear-gradient(135deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  border-radius: 40% 10% 20% 60%;
  filter: blur(8px);
  animation: ds-shadow 5s ease-in-out infinite alternate;
}
@keyframes ds-stand {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(-1deg); }
  60% { transform: translateY(0) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ds-gesture {
  0% { transform: translateX(0) rotate(-15deg); }
  50% { transform: translateX(4px) rotate(10deg); }
  100% { transform: translateX(0) rotate(-10deg); }
}
@keyframes ds-light {
  0% { opacity: 0.3; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.6; transform: translateX(-48%) scale(1.1); }
  100% { opacity: 0.4; transform: translateX(-50%) scale(0.95); }
}
@keyframes ds-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.4; }
  50% { transform: scaleX(1.15) scaleY(0.9); opacity: 0.7; }
  100% { transform: scaleX(0.9) scaleY(1.1); opacity: 0.5; }
}

.scn-truth-impossible {
  background: linear-gradient(180deg, #0e0a10 0%, #1a1218 40%, #0a060a 100%),
              radial-gradient(ellipse at 50% 70%, #2a1a20 0%, transparent 70%);
}
.scn-truth-impossible .bg-deep {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0e0a10 0%, #0a060a 100%);
}
.scn-truth-impossible .floor-dim {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 22%;
  background: linear-gradient(180deg, #1a1218 0%, #0a060a 100%);
  border-radius: 5% 5% 0 0;
}
.scn-truth-impossible .wall-dim {
  position: absolute;
  inset: 0 0 22% 0;
  background: linear-gradient(180deg, #0e0a10 0%, #1a1218 100%);
}
.scn-truth-impossible .lantern-small {
  position: absolute;
  bottom: 32%; left: 45%;
  width: 12px; height: 18px;
  background: radial-gradient(circle, #b08050 0%, #6a3a20 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #b08050, 0 0 40px 12px rgba(176,128,80,0.3);
  animation: ti-lantern 3s ease-in-out infinite alternate;
}
.scn-truth-impossible .figure-seated {
  position: absolute;
  bottom: 24%; left: 50%;
  width: 34px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1218 0%, #0a060a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ti-figure 6s ease-in-out infinite;
}
.scn-truth-impossible .shadow-pool {
  position: absolute;
  bottom: 22%; left: 40%;
  width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%);
  filter: blur(6px);
  animation: ti-pool 8s ease-in-out infinite alternate;
}
.scn-truth-impossible .table-dim {
  position: absolute;
  bottom: 24%; left: 48%;
  width: 50px; height: 6px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a20 0%, #1a1218 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-truth-impossible .dust-slow {
  position: absolute;
  top: 30%; left: 20%;
  width: 4px; height: 4px;
  background: rgba(176,128,80,0.2);
  border-radius: 50%;
  filter: blur(2px);
  animation: ti-dust 20s linear infinite;
}
@keyframes ti-lantern {
  0% { transform: scale(1) rotate(-2deg); opacity: 0.7; box-shadow: 0 0 15px 4px #b08050; }
  50% { transform: scale(1.05) rotate(2deg); opacity: 1; box-shadow: 0 0 30px 8px #b08050; }
  100% { transform: scale(0.95) rotate(-1deg); opacity: 0.8; box-shadow: 0 0 20px 5px #b08050; }
}
@keyframes ti-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(2deg) translateY(-1px); }
  60% { transform: translateX(-50%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ti-pool {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.5; }
  50% { transform: scaleX(1.1) scaleY(1.2); opacity: 0.8; }
  100% { transform: scaleX(0.95) scaleY(0.9); opacity: 0.6; }
}
@keyframes ti-dust {
  0% { transform: translateX(0) translateY(0); opacity: 0; }
  10% { opacity: 0.3; }
  90% { opacity: 0.2; }
  100% { transform: translateX(40px) translateY(-80px); opacity: 0; }
}

.scn-avoiding-uncle {
  background: linear-gradient(180deg, #2e2b3a 0%, #1f1c2a 40%, #14121a 100%), radial-gradient(ellipse at 50% 100%, #1f1c2a 0%, transparent 60%);
}
.scn-avoiding-uncle .walls {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a354a 0%, #1f1c2a 100%);
}
.scn-avoiding-uncle .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e08 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-avoiding-uncle .doorway {
  position: absolute; left: 15%; top: 20%; width: 18%; height: 60%;
  background: #0d0a17;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 0 20px rgba(0,0,0,.5);
}
.scn-avoiding-uncle .table {
  position: absolute; bottom: 26%; left: 52%; width: 28%; height: 4%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a12 100%);
  border-radius: 6px;
  transform: skewX(-4deg);
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-avoiding-uncle .lamp {
  position: absolute; bottom: 36%; left: 60%; width: 8%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #b08040 40%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,130,60,.25), 0 0 80px 40px rgba(200,130,60,.1);
  animation: au-lamp 5s ease-in-out infinite alternate;
}
.scn-avoiding-uncle .shadow {
  position: absolute; bottom: 30%; right: 20%; width: 20%; height: 40%;
  background: linear-gradient(135deg, rgba(0,0,0,.7) 0%, transparent 70%);
  filter: blur(8px);
  animation: au-shadow 12s ease-in-out infinite alternate;
}
.scn-avoiding-uncle .figure {
  position: absolute; bottom: 25%; left: 35%; width: 8%; height: 36%;
  background: linear-gradient(180deg, #1a1525 0%, #0f0c1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au-figure 6s ease-in-out infinite;
}
.scn-avoiding-uncle .clock {
  position: absolute; top: 12%; right: 18%; width: 8%; height: 10%;
  background: radial-gradient(circle, #6a5030 0%, #3a2818 60%, #1a1208 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.4);
  animation: au-clock 2s ease-in-out infinite alternate;
}
@keyframes au-lamp { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .8; transform: scale(.98); } }
@keyframes au-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.1); } 100% { transform: translateX(-3px) scaleX(.95); } }
@keyframes au-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg); } }
@keyframes au-clock { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }

.scn-police-officer-life {
  background: linear-gradient(180deg, #3d342c 0%, #2a2320 30%, #1c1816 100%), radial-gradient(ellipse at 50% 0%, #4a4038 0%, transparent 70%);
}
.scn-police-officer-life .brick-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3e36 0%, #2a221e 100%);
  border-radius: 0 0 8% 8% / 0 0 4% 4%;
}
.scn-police-officer-life .desk {
  position: absolute; bottom: 24%; left: 30%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #5a4530 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: perspective(400px) rotateX(5deg);
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-police-officer-life .lamp-spot {
  position: absolute; bottom: 36%; left: 55%; width: 10%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #c8a060 0%, #906830 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,160,96,.3), 0 0 60px 20px rgba(200,160,96,.1);
  animation: po-lamp 4s ease-in-out infinite alternate;
}
.scn-police-officer-life .chair {
  position: absolute; bottom: 20%; left: 40%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a120a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  transform: skewX(3deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-police-officer-life .figure-sit {
  position: absolute; bottom: 28%; left: 38%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #1a1520 0%, #0f0c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: po-sit 7s ease-in-out infinite;
}
.scn-police-officer-life .papers {
  position: absolute; bottom: 28%; left: 44%; width: 12%; height: 2%;
  background: #9a8870;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: po-papers 10s linear infinite;
}
.scn-police-officer-life .badge-stand {
  position: absolute; bottom: 32%; left: 48%; width: 4%; height: 6%;
  background: radial-gradient(circle, #b89868 0%, #7a5a30 60%);
  border-radius: 30%;
  box-shadow: 0 0 8px 2px rgba(184,152,104,.4);
  animation: po-badge 3s ease-in-out infinite alternate;
}
.scn-police-officer-life .shadow-accent {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  filter: blur(10px);
  animation: po-shadow 5s ease-in-out infinite alternate;
}
@keyframes po-lamp { 0% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.03); opacity: 1; } 100% { transform: scale(.97); opacity: .85; } }
@keyframes po-sit { 0% { transform: rotate(-1deg) translateY(0); } 30% { transform: rotate(1deg) translateY(-2px); } 60% { transform: rotate(-.5deg) translateY(0); } 100% { transform: rotate(0) translateY(-1px); } }
@keyframes po-papers { 0% { transform: translateX(0); opacity: 1; } 50% { transform: translateX(3px); opacity: .8; } 100% { transform: translateX(0); opacity: 1; } }
@keyframes po-badge { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes po-shadow { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(.95); } }

.scn-drive-back-rain {
  background: linear-gradient(180deg, #4a5660 0%, #2a3a45 40%, #1a2a30 100%), radial-gradient(ellipse at 50% 0%, #5a6670 0%, transparent 60%);
}
.scn-drive-back-rain .sky-rain {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a5660 0%, #2a3a45 100%);
  animation: dr-sky 12s ease-in-out infinite alternate;
}
.scn-drive-back-rain .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3028 0%, #1a2018 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
}
.scn-drive-back-rain .dog-cart {
  position: absolute; bottom: 28%; left: 30%; width: 25%; height: 20%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e10 100%);
  border-radius: 20% 30% 10% 10% / 40% 50% 10% 10%;
  transform: skewX(-5deg);
  animation: dr-cart 8s ease-in-out infinite;
}
.scn-drive-back-rain .cart-roof {
  position: absolute; bottom: 44%; left: 28%; width: 28%; height: 6%;
  background: linear-gradient(180deg, #5a4838 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(-2deg);
  animation: dr-roof 8s ease-in-out infinite reverse;
}
.scn-drive-back-rain .figure-driver {
  position: absolute; bottom: 32%; left: 35%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #1a1520 0%, #0f0c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: dr-figure 4s ease-in-out infinite;
}
.scn-drive-back-rain .house-lights {
  position: absolute; top: 18%; right: 15%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #a08050 0%, #7a6040 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: inset 0 0 20px #c8a060, 0 0 40px 10px rgba(200,160,96,.3);
  animation: dr-house 6s ease-in-out infinite alternate;
}
.scn-drive-back-rain .rain-a {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, rgba(255,255,255,.06) 2px, transparent 4px, rgba(255,255,255,.04) 6px, transparent 8px);
  animation: dr-rain-a 1s linear infinite;
}
.scn-drive-back-rain .rain-b {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent 0px, rgba(255,255,255,.04) 3px, transparent 7px, rgba(255,255,255,.03) 10px, transparent 14px);
  animation: dr-rain-b 1.4s linear infinite reverse;
}
.scn-drive-back-rain .mud-splash {
  position: absolute; bottom: 20%; left: 35%; width: 20%; height: 4%;
  background: radial-gradient(ellipse, #3a3228 0%, #1a1810 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: dr-mud 10s ease-in-out infinite;
}
@keyframes dr-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes dr-cart { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-5deg) translateY(-3px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes dr-roof { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes dr-figure { 0% { transform: rotate(5deg) translateY(0); } 30% { transform: rotate(4deg) translateY(-2px); } 60% { transform: rotate(6deg) translateY(0); } 100% { transform: rotate(5deg) translateY(-1px); } }
@keyframes dr-house { 0% { opacity: .6; box-shadow: 0 0 20px 5px rgba(200,160,96,.2); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(200,160,96,.4); } 100% { opacity: .7; box-shadow: 0 0 30px 10px rgba(200,160,96,.25); } }
@keyframes dr-rain-a { 0% { background-position: 0 0; } 100% { background-position: -20px 0; } }
@keyframes dr-rain-b { 0% { background-position: 0 0; } 100% { background-position: -30px -30px; } }
@keyframes dr-mud { 0% { transform: scaleX(1); opacity: .6; } 50% { transform: scaleX(1.1); opacity: 1; } 100% { transform: scaleX(1); opacity: .6; } }

.scn-muriel-visit {
  background: linear-gradient(180deg, #2a2532 0%, #1d1a28 30%, #12101f 100%), radial-gradient(ellipse at 50% 100%, #1d1a28 0%, transparent 60%);
}
.scn-muriel-visit .walls-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #323040 0%, #1a1828 100%);
  animation: mv-walls 10s ease-in-out infinite alternate;
}
.scn-muriel-visit .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #2a2030 0px, #201828 8px, #2a2030 16px);
  transform: perspective(200px) rotateX(10deg);
}
.scn-muriel-visit .fireplace {
  position: absolute; bottom: 28%; left: 15%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #3a3040 0%, #1a1828 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
}
.scn-muriel-visit .fire-glow {
  position: absolute; bottom: 38%; left: 18%; width: 18%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #d07030 0%, #a05020 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(200,100,40,.35), 0 0 80px 30px rgba(200,100,40,.15);
  animation: mv-fire 4s ease-in-out infinite alternate;
}
.scn-muriel-visit .sofa {
  position: absolute; bottom: 18%; left: 45%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a101a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  transform: rotate(-2deg);
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
}
.scn-muriel-visit .figure-a {
  position: absolute; bottom: 20%; left: 50%; width: 6%; height: 22%;
  background: linear-gradient(180deg, #1a1525 0%, #0f0c1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mv-fig-a 6s ease-in-out infinite;
}
.scn-muriel-visit .figure-b {
  position: absolute; bottom: 20%; left: 42%; width: 6%; height: 22%;
  background: linear-gradient(180deg, #1a1525 0%, #0f0c1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: mv-fig-b 8s ease-in-out infinite;
}
.scn-muriel-visit .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%);
  filter: blur(15px);
  animation: mv-shadow 5s ease-in-out infinite alternate;
}
@keyframes mv-walls { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes mv-fire { 0% { transform: scale(1) rotate(0deg); opacity: .8; } 50% { transform: scale(1.05) rotate(3deg); opacity: 1; } 100% { transform: scale(.95) rotate(-2deg); opacity: .85; } }
@keyframes mv-fig-a { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(3deg) translateX(4px); } 100% { transform: rotate(-1deg) translateX(2px); } }
@keyframes mv-fig-b { 0% { transform: scaleX(-1) rotate(2deg); } 50% { transform: scaleX(-1) rotate(-2deg); } 100% { transform: scaleX(-1) rotate(1deg); } }
@keyframes mv-shadow { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(.95); } }

/* fleet-arrives-leghorn */
.scn-fleet-arrives-leghorn {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #ffd700 55%, #f4a460 70%, #1e90ff 75%, #006994 100%),
    radial-gradient(ellipse at 50% 30%, #ffdead 0%, transparent 60%);
}
.scn-fleet-arrives-leghorn .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffdead 0%, #87ceeb 70%, transparent 100%); animation: fl-sky 12s ease-in-out infinite alternate; }
.scn-fleet-arrives-leghorn .sun { position:absolute; top:15%; left:70%; width:80px; height:80px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffeb3b; animation: fl-sun 8s ease-in-out infinite alternate; }
.scn-fleet-arrives-leghorn .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1e90ff 0%, #006994 60%, #004c6d 100%); animation: fl-sea 10s ease-in-out infinite alternate; }
.scn-fleet-arrives-leghorn .ship-1 { position:absolute; bottom:38%; left:10%; width:200px; height:80px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1a 100%); border-radius:5% 5% 10% 10%; transform: skewX(-5deg); box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: fl-ship1 14s ease-in-out infinite; }
.scn-fleet-arrives-leghorn .ship-2 { position:absolute; bottom:35%; left:55%; width:180px; height:70px; background: linear-gradient(180deg, #a0522d 0%, #6b3a1f 100%); border-radius:5% 5% 10% 10%; transform: skewX(3deg); box-shadow: 0 6px 14px rgba(0,0,0,0.3); animation: fl-ship2 18s ease-in-out infinite; }
.scn-fleet-arrives-leghorn .flags { position:absolute; bottom:40%; left:12%; right:52%; height:40px; background: repeating-conic-gradient(#e0a050 0% 25%, #f5deb3 25% 50%, #c8553d 50% 75%, #f5deb3 75% 100%) 0 0 / 40px 40px; mask: linear-gradient(90deg, transparent 0%, #000 20%, #000 80%, transparent 100%); animation: fl-flags 6s ease-in-out infinite; }
.scn-fleet-arrives-leghorn .bunting { position:absolute; bottom:42%; left:0; right:0; height:30px; background: repeating-linear-gradient(90deg, #c8553d 0px, #c8553d 20px, #f5deb3 20px, #f5deb3 40px, #e0a050 40px, #e0a050 60px); opacity:0.6; animation: fl-bunt 8s linear infinite; }
.scn-fleet-arrives-leghorn .cloud-a { position:absolute; top:8%; left:5%; width:120px; height:30px; background: linear-gradient(90deg, rgba(255,255,255,0.7), rgba(255,255,255,0.2)); border-radius:50%; filter:blur(8px); animation: fl-drift 40s linear infinite; }
.scn-fleet-arrives-leghorn .cloud-b { position:absolute; top:12%; right:15%; width:90px; height:22px; background: linear-gradient(90deg, rgba(255,255,255,0.5), rgba(255,255,255,0.1)); border-radius:50%; filter:blur(6px); animation: fl-drift 55s linear infinite reverse; }

@keyframes fl-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fl-sun { 0% { transform: scale(0.9) translateY(0); opacity:0.8 } 50% { transform: scale(1.1) translateY(-5px); opacity:1 } 100% { transform: scale(1) translateY(2px); opacity:0.9 } }
@keyframes fl-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes fl-ship1 { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-5deg) translateY(-3px) } 100% { transform: skewX(-5deg) translateY(0) } }
@keyframes fl-ship2 { 0% { transform: skewX(3deg) translateY(0) } 50% { transform: skewX(3deg) translateY(-2px) } 100% { transform: skewX(3deg) translateY(0) } }
@keyframes fl-flags { 0% { background-position:0 0 } 50% { background-position:-20px 0 } 100% { background-position:10px 0 } }
@keyframes fl-bunt { 0% { transform: translateX(0) } 100% { transform: translateX(-120px) } }
@keyframes fl-drift { 0% { transform: translateX(-100px) } 100% { transform: translateX(120vw) } }

/* durnford-introduction */
.scn-durnford-introduction {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f5deb3 40%, #deb887 60%, #8b4513 75%, #5c3a1a 100%),
    radial-gradient(ellipse at 70% 20%, #fffacd 0%, transparent 60%);
}
.scn-durnford-introduction .deck { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8b4513 0%, #5c3a1a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.3); animation: du-deck 8s ease-in-out infinite alternate; }
.scn-durnford-introduction .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 60%, transparent 100%); animation: du-sky 12s ease-in-out infinite alternate; }
.scn-durnford-introduction .table { position:absolute; bottom:18%; left:30%; width:120px; height:20px; background: linear-gradient(135deg, #a0522d 0%, #8b4513 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: du-table 10s ease-in-out infinite; }
.scn-durnford-introduction .figure-1 { position:absolute; bottom:24%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #4682b4 0%, #2e5a7a 50%, #1a3a5a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: du-fig1 6s ease-in-out infinite; }
.scn-durnford-introduction .figure-2 { position:absolute; bottom:24%; left:55%; width:32px; height:58px; background: linear-gradient(180deg, #a0522d 0%, #8b4513 50%, #5c3a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: du-fig2 7s ease-in-out infinite; }
.scn-durnford-introduction .flag { position:absolute; top:8%; right:10%; width:20px; height:40px; background: linear-gradient(180deg, #c8553d 0%, #e0a050 50%, #c8553d 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%, 0 60%, 0 40%, 0 20%); animation: du-flag 5s ease-in-out infinite; }
.scn-durnford-introduction .rail { position:absolute; bottom:40%; left:0; right:0; height:8px; background: linear-gradient(90deg, #5c3a1a, #8b4513, #5c3a1a); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: du-rail 9s ease-in-out infinite; }
.scn-durnford-introduction .cloud { position:absolute; top:15%; left:20%; width:100px; height:25px; background: linear-gradient(90deg, rgba(255,255,255,0.6), rgba(255,255,255,0.1)); border-radius:50%; filter:blur(7px); animation: du-drift 50s linear infinite; }

@keyframes du-deck { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes du-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes du-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes du-fig1 { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(12px) rotate(0) } }
@keyframes du-fig2 { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-5px) translateY(0) rotate(1deg) } 75% { transform: translateX(-8px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(-10px) rotate(0) } }
@keyframes du-flag { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes du-rail { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes du-drift { 0% { transform: translateX(-80px) } 100% { transform: translateX(120vw) } }

/* durnford-complaint */
.scn-durnford-complaint {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 30%, #deb887 50%, #8b4513 70%, #5c3a1a 100%),
    radial-gradient(ellipse at 50% 30%, #fffacd 0%, transparent 70%);
}
.scn-durnford-complaint .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f0e68c 0%, #87ceeb 60%, transparent 100%); animation: dc-sky 14s ease-in-out infinite alternate; }
.scn-durnford-complaint .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #008080 0%, #004c6d 60%, #00304d 100%); animation: dc-sea 12s ease-in-out infinite alternate; }
.scn-durnford-complaint .bulwark { position:absolute; bottom:30%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #8b4513 0%, #5c3a1a 100%); border-radius: 30% 30% 5% 5% / 80% 80% 20% 20%; box-shadow: 0 -8px 20px rgba(0,0,0,0.4); animation: dc-bulk 9s ease-in-out infinite; }
.scn-durnford-complaint .figure { position:absolute; bottom:35%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #2e5a7a 0%, #1a3a5a 60%, #0f1f2f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dc-fig 8s ease-in-out infinite; }
.scn-durnford-complaint .flag { position:absolute; top:10%; right:15%; width:18px; height:35px; background: linear-gradient(180deg, #c8553d 0%, #e0a050 50%, #c8553d 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 85%, 0 65%, 0 45%, 0 25%); animation: dc-flag 6s ease-in-out infinite; }
.scn-durnford-complaint .cloud-a { position:absolute; top:12%; left:5%; width:100px; height:22px; background: linear-gradient(90deg, rgba(255,255,255,0.6), rgba(255,255,255,0.1)); border-radius:50%; filter:blur(6px); animation: dc-drift 45s linear infinite; }
.scn-durnford-complaint .cloud-b { position:absolute; top:8%; right:8%; width:70px; height:18px; background: linear-gradient(90deg, rgba(255,255,255,0.4), rgba(255,255,255,0.05)); border-radius:50%; filter:blur(5px); animation: dc-drift 60s linear infinite reverse; }

@keyframes dc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes dc-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dc-bulk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dc-fig { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-3deg) translateX(-2px) } 50% { transform: rotate(0deg) translateX(0) } 75% { transform: rotate(2deg) translateX(2px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes dc-flag { 0% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-8deg) } }
@keyframes dc-drift { 0% { transform: translateX(-80px) } 100% { transform: translateX(120vw) } }

/* hutcheson-news */
.scn-hutcheson-news {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f5deb3 35%, #deb887 50%, #8b4513 70%, #5c3a1a 100%),
    radial-gradient(ellipse at 60% 25%, #fffacd 0%, transparent 65%);
}
.scn-hutcheson-news .deck { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8b4513 0%, #5c3a1a 100%); box-shadow: inset 0 15px 25px rgba(0,0,0,0.3); animation: hu-deck 10s ease-in-out infinite alternate; }
.scn-hutcheson-news .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 60%, transparent 100%); animation: hu-sky 13s ease-in-out infinite alternate; }
.scn-hutcheson-news .table { position:absolute; bottom:20%; left:40%; width:80px; height:15px; background: linear-gradient(135deg, #a0522d 0%, #8b4513 100%); border-radius:20% 20% 5% 5%; box-shadow: 0 3px 6px rgba(0,0,0,0.4); animation: hu-table 11s ease-in-out infinite; }
.scn-hutcheson-news .figure-1 { position:absolute; bottom:28%; left:30%; width:28px; height:55px; background: linear-gradient(180deg, #4682b4 0%, #2e5a7a 50%, #1a3a5a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hu-fig1 7s ease-in-out infinite; }
.scn-hutcheson-news .figure-2 { position:absolute; bottom:28%; left:55%; width:30px; height:52px; background: linear-gradient(180deg, #a0522d 0%, #8b4513 50%, #5c3a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hu-fig2 8s ease-in-out infinite; }
.scn-hutcheson-news .newspaper { position:absolute; bottom:22%; left:42%; width:40px; height:28px; background: linear-gradient(135deg, #f5f5dc 0%, #e0e0c0 100%); transform: rotate(-5deg); box-shadow: 2px 2px 5px rgba(0,0,0,0.3); animation: hu-news 12s ease-in-out infinite; }
.scn-hutcheson-news .mug { position:absolute; bottom:20%; left:35%; width:12px; height:16px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: hu-mug 9s ease-in-out infinite; }
.scn-hutcheson-news .cloud { position:absolute; top:15%; left:30%; width:80px; height:20px; background: linear-gradient(90deg, rgba(255,255,255,0.5), rgba(255,255,255,0.05)); border-radius:50%; filter:blur(6px); animation: hu-drift 50s linear infinite; }

@keyframes hu-deck { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hu-sky { 0% { opacity:0.75 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hu-table { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes hu-fig1 { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(2deg) translateX(3px) } 50% { transform: rotate(0deg) translateX(6px) } 75% { transform: rotate(-2deg) translateX(9px) } 100% { transform: rotate(0deg) translateX(12px) } }
@keyframes hu-fig2 { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-1deg) translateX(-2px) } 50% { transform: rotate(0deg) translateX(-4px) } 75% { transform: rotate(1deg) translateX(-6px) } 100% { transform: rotate(0deg) translateX(-8px) } }
@keyframes hu-news { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes hu-mug { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hu-drift { 0% { transform: translateX(-80px) } 100% { transform: translateX(120vw) } }

.scn-torn-shoe {
  background: linear-gradient(180deg, #6b7a7a 0%, #4b5a5a 40%, #3a4a4a 100%), radial-gradient(ellipse at 50% 0%, #5a6a6a 0%, transparent 70%);
}
.scn-torn-shoe .sky-overcast {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 50%, #4a5a5a 100%);
  animation: ts-sky 14s ease-in-out infinite alternate;
}
.scn-torn-shoe .trees-bg {
  position:absolute; bottom:40%; left:0; right:0; height:35%;
  background: linear-gradient(90deg, #2a3a2a 0%, #1a2a1a 30%, #2a3a2a 60%, #1a2a1a 100%);
  border-radius: 0 0 20% 20%;
  filter: blur(3px);
  animation: ts-trees 20s ease-in-out infinite alternate;
}
.scn-torn-shoe .trees-fg {
  position:absolute; bottom:30%; left:0; right:0; height:40%;
  background: linear-gradient(90deg, #1a2a1a 0%, #0a1a0a 25%, #1a2a1a 50%, #0a1a0a 75%, #1a2a1a 100%);
  filter: blur(1px);
  animation: ts-trees 25s ease-in-out infinite alternate-reverse;
}
.scn-torn-shoe .path {
  position:absolute; bottom:25%; left:20%; right:20%; height:8%;
  background: linear-gradient(90deg, transparent 0%, #5a4a3a 30%, #6a5a4a 50%, #5a4a3a 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-torn-shoe .figure-elma {
  position:absolute; bottom:26%; left:40%; width:20px; height:40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ts-walk 4s ease-in-out infinite;
}
.scn-torn-shoe .shoe-torn {
  position:absolute; bottom:25%; left:38%; width:14px; height:6px;
  background: #5a3a2a;
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-15deg);
  animation: ts-shoe 2s ease-in-out infinite alternate;
}
.scn-torn-shoe .blood-stock {
  position:absolute; bottom:27%; left:38.5%; width:4px; height:8px;
  background: #c8553d;
  border-radius: 50%;
  opacity:0.8;
  animation: ts-blood 3s ease-in-out infinite;
}
.scn-torn-shoe .stone {
  position:absolute; bottom:24%; left:42%; width:10px; height:6px;
  background: #6a5a4a;
  border-radius: 40%;
}
@keyframes ts-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes ts-trees {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes ts-walk {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(6px) translateY(0px) rotate(-1deg); }
  75% { transform: translateX(9px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(12px) translateY(0) rotate(0); }
}
@keyframes ts-shoe {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-10deg) scale(1.1); }
  100% { transform: rotate(-20deg) scale(0.9); }
}
@keyframes ts-blood {
  0% { opacity:0.8; transform: scale(1); }
  50% { opacity:1; transform: scale(1.3); }
  100% { opacity:0.6; transform: scale(0.9); }
}

.scn-woodcutter-hut {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
}
.scn-woodcutter-hut .sky-dusk {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 50%, #1a1a3a 100%);
  animation: wh-sky 18s ease-in-out infinite alternate;
}
.scn-woodcutter-hut .forest-dark {
  position:absolute; bottom:30%; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1a1a 40%, #2a2a2a 100%);
  filter: blur(2px);
  animation: wh-forest 15s ease-in-out infinite alternate;
}
.scn-woodcutter-hut .hut-shape {
  position:absolute; bottom:28%; left:50%; width:90px; height:70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-woodcutter-hut .window-glow {
  position:absolute; bottom:35%; left:50%; width:20px; height:24px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd060 0%, #c08040 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 6px #c08040, 0 0 48px 12px rgba(192,128,64,0.4);
  animation: wh-glow 3s ease-in-out infinite alternate;
}
.scn-woodcutter-hut .door {
  position:absolute; bottom:25%; left:52%; width:16px; height:30px;
  background: #3a2a1a;
  border-radius: 4% 4% 2% 2% / 10% 10% 4% 4%;
}
.scn-woodcutter-hut .figure-felix {
  position:absolute; bottom:24%; left:44%; width:16px; 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: wh-knock 2s ease-in-out infinite;
}
.scn-woodcutter-hut .figure-elma-limp {
  position:absolute; bottom:24%; left:46%; width:18px; height:34px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wh-limp 4s ease-in-out infinite;
}
@keyframes wh-sky {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes wh-forest {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes wh-glow {
  0% { box-shadow: 0 0 18px 4px #c08040, 0 0 36px 8px rgba(192,128,64,0.3); opacity:0.85; }
  50% { box-shadow: 0 0 32px 10px #ffd060, 0 0 64px 18px rgba(255,208,96,0.5); opacity:1; }
  100% { box-shadow: 0 0 22px 5px #c08040, 0 0 40px 10px rgba(192,128,64,0.35); opacity:0.9; }
}
@keyframes wh-knock {
  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 wh-limp {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}

.scn-woodcutter-hospitality {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-woodcutter-hospitality .walls {
  position:absolute; inset:0 0 10% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-woodcutter-hospitality .floor {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(0deg, #1a0a00 0%, #2a1a0a 100%);
}
.scn-woodcutter-hospitality .hearth-fire {
  position:absolute; bottom:22%; left:50%; width:40px; height:50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, #ffa040 0%, #d06020 40%, #802010 70%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 0 60px 30px rgba(255,160,64,0.5), 0 0 120px 60px rgba(192,96,32,0.3);
  animation: whs-fire 2s ease-in-out infinite alternate;
}
.scn-woodcutter-hospitality .pot-stew {
  position:absolute; bottom:28%; left:50%; width:24px; height:18px;
  transform: translateX(-50%);
  background: #5a4a3a;
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
.scn-woodcutter-hospitality .table {
  position:absolute; bottom:15%; left:25%; right:25%; height:6%;
  background: linear-gradient(0deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-woodcutter-hospitality .figure-host {
  position:absolute; bottom:16%; left:30%; width:22px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: whs-host 4s ease-in-out infinite;
}
.scn-woodcutter-hospitality .figure-guest {
  position:absolute; bottom:16%; right:30%; width:20px; height:38px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: whs-guest 4s ease-in-out infinite alternate;
}
.scn-woodcutter-hospitality .eggs {
  position:absolute; bottom:16%; left:45%; width:8px; height:6px;
  background: #d0c0b0;
  border-radius: 50%;
  box-shadow: 10px 0 0 #d0c0b0, -5px 2px 0 #c0b0a0;
  animation: whs-eggs 6s ease-in-out infinite alternate;
}
@keyframes whs-fire {
  0% { transform: translateX(-50%) scaleY(1); opacity:0.9; }
  50% { transform: translateX(-50%) scaleY(1.1); opacity:1; }
  100% { transform: translateX(-50%) scaleY(0.95); opacity:0.85; }
}
@keyframes whs-host {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-2px) rotate(-2deg); }
  60% { transform: translateX(1px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes whs-guest {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes whs-eggs {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}

.scn-night-sleep {
  background: linear-gradient(180deg, #1a1008 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 80%);
}
.scn-night-sleep .room-walls {
  position:absolute; inset:0 0 10% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 15% 15%;
}
.scn-night-sleep .floorboards {
  position:absolute; bottom:0; left:0; right:0; height:12%;
  background: repeating-linear-gradient(90deg, #1a0a00 0px, #2a1a0a 4px, #1a0a00 8px);
}
.scn-night-sleep .embers {
  position:absolute; bottom:20%; left:50%; width:30px; height:20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #d04010 0%, #802010 40%, #401008 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(208,64,16,0.3);
  animation: ns-ember 4s ease-in-out infinite alternate;
}
.scn-night-sleep .bench-left {
  position:absolute; bottom:14%; left:10%; width:35%; height:8%;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-night-sleep .bench-right {
  position:absolute; bottom:14%; right:10%; width:35%; height:8%;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-night-sleep .figure-sleeper1 {
  position:absolute; bottom:16%; left:15%; width:40px; height:24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: ns-sleep1 8s ease-in-out infinite alternate;
}
.scn-night-sleep .figure-sleeper2 {
  position:absolute; bottom:16%; right:15%; width:40px; height:24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-3deg);
  animation: ns-sleep2 8s ease-in-out infinite alternate;
}
.scn-night-sleep .shadow-door {
  position:absolute; bottom:14%; left:45%; width:10%; height:40%;
  background: #0a0500;
  border-radius: 2px;
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.6);
  animation: ns-shadow 12s ease-in-out infinite alternate;
}
@keyframes ns-ember {
  0% { opacity:0.6; transform: translateX(-50%) scale(0.9); }
  50% { opacity:1; transform: translateX(-50%) scale(1.1); }
  100% { opacity:0.7; transform: translateX(-50%) scale(0.95); }
}
@keyframes ns-sleep1 {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes ns-sleep2 {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(2px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes ns-shadow {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.5; }
}

.scn-elma-writes {
  background: 
    linear-gradient(180deg, #f5efe0 0%, #e8d8c0 40%, #c8b89a 100%),
    radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 70%);
}
.scn-elma-writes .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #e0cfb5 0%, #d4c0a0 100%); animation: ew-wall 20s ease-in-out infinite alternate; }
.scn-elma-writes .desk { position:absolute; bottom:18%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #8a7040 0%, #6a5030 100%); border-radius: 4px; box-shadow: 0 -8px 20px rgba(0,0,0,.3); }
.scn-elma-writes .window { position:absolute; top:8%; right:12%; width:100px; height:140px; background: linear-gradient(180deg, #c0d8f0 0%, #a0b8d0 100%); border: 6px solid #7a6040; box-shadow: inset 0 0 40px rgba(255,255,200,.3), 0 0 30px rgba(255,255,200,.15); animation: ew-window 6s ease-in-out infinite alternate; }
.scn-elma-writes .figure-seated { position:absolute; bottom:18%; left:45%; width:70px; height:120px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ew-figure 4s ease-in-out infinite; }
.scn-elma-writes .paper { position:absolute; bottom:28%; left:48%; width:50px; height:35px; background: #f0ead0; transform: rotate(2deg); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: ew-paper 7s ease-in-out infinite alternate; }
.scn-elma-writes .pen { position:absolute; bottom:30%; left:52%; width:4px; height:30px; background: #2a1a0a; transform: rotate(-15deg); border-radius: 2px; animation: ew-pen 3s ease-in-out infinite; }
.scn-elma-writes .lamp { position:absolute; top:20%; left:35%; width:30px; height:50px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 60%, transparent 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 60px 20px rgba(255,208,128,.5); animation: ew-lamp 3s ease-in-out infinite alternate; }
.scn-elma-writes .shadow-stripe { position:absolute; top:0; left:60%; width:40%; height:100%; background: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.15) 50%, rgba(0,0,0,0) 100%); animation: ew-shadow 12s ease-in-out infinite alternate; }
@keyframes ew-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ew-window { 0% { box-shadow: inset 0 0 30px rgba(255,255,200,.2), 0 0 20px rgba(255,255,200,.1); } 50% { box-shadow: inset 0 0 60px rgba(255,255,200,.4), 0 0 50px rgba(255,255,200,.25); } 100% { box-shadow: inset 0 0 40px rgba(255,255,200,.3), 0 0 30px rgba(255,255,200,.15); } }
@keyframes ew-figure { 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 ew-paper { 0% { transform: rotate(1deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes ew-pen { 0% { transform: rotate(-18deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes ew-lamp { 0% { box-shadow: 0 0 50px 15px rgba(255,208,128,.4); opacity:0.9; } 50% { box-shadow: 0 0 80px 30px rgba(255,208,128,.7); opacity:1; } 100% { box-shadow: 0 0 60px 20px rgba(255,208,128,.5); opacity:0.95; } }
@keyframes ew-shadow { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-elma-refuses {
  background: 
    linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 40%, #b8a088 100%),
    radial-gradient(ellipse at 50% 40%, #fff8e0 0%, transparent 70%);
}
.scn-elma-refuses .palace-wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #e0d0b8 0px, #e0d0b8 40px, #d4c0a0 40px, #d4c0a0 80px); animation: er-wall 15s ease-in-out infinite alternate; }
.scn-elma-refuses .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #9a8a70 0%, #7a6a50 100%); }
.scn-elma-refuses .figure-standing { position:absolute; bottom:4%; left:65%; width:60px; height:160px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: er-standing 5s ease-in-out infinite; }
.scn-elma-refuses .figure-seated-defiant { position:absolute; bottom:10%; left:25%; width:70px; height:110px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: er-seated 4s ease-in-out infinite; }
.scn-elma-refuses .window-arch { position:absolute; top:5%; left:15%; width:120px; height:160px; background: radial-gradient(ellipse at 50% 40%, #b0c8e0 0%, #8090a8 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; border: 8px solid #7a6040; box-shadow: inset 0 0 40px rgba(200,220,255,.2); animation: er-window 8s ease-in-out infinite alternate; }
.scn-elma-refuses .chandelier { position:absolute; top:2%; left:50%; width:80px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #c09040 60%, transparent 100%); border-radius: 20% 20% 50% 50%; box-shadow: 0 0 60px 20px rgba(255,208,128,.4); animation: er-chandelier 3s ease-in-out infinite alternate; }
.scn-elma-refuses .shadow-stripe-2 { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.2) 30%, rgba(0,0,0,.1) 70%, rgba(0,0,0,0) 100%); animation: er-shadow2 10s ease-in-out infinite alternate; }
@keyframes er-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes er-standing { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-3px) translateY(2px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(3px) translateY(2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes er-seated { 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 er-window { 0% { box-shadow: inset 0 0 30px rgba(200,220,255,.15); } 50% { box-shadow: inset 0 0 60px rgba(200,220,255,.35); } 100% { box-shadow: inset 0 0 40px rgba(200,220,255,.2); } }
@keyframes er-chandelier { 0% { transform:translateX(-50%) rotate(-2deg); opacity:0.9; } 50% { transform:translateX(-50%) rotate(2deg); opacity:1; } 100% { transform:translateX(-50%) rotate(-1deg); opacity:0.95; } }
@keyframes er-shadow2 { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-secret-cavity {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2a2018 30%, #1e1614 70%, #0a0806 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a20 0%, transparent 80%);
}
.scn-secret-cavity .cabin-wall { position:absolute; inset:0; background: repeating-linear-gradient(180deg, #2a1e1a 0px, #2a1e1a 8px, #1e1410 8px, #1e1410 16px); animation: sc-wall 25s ease-in-out infinite alternate; }
.scn-secret-cavity .cabin-table { position:absolute; bottom:20%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #4a3428 0%, #2a1e14 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-secret-cavity .oil-lamp { position:absolute; top:30%; left:50%; width:24px; height:40px; transform:translateX(-50%); background: radial-gradient(circle at 50% 20%, #ffb060 0%, #c07030 60%, transparent 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 50px 20px rgba(255,176,96,.4); animation: sc-lamp 4s ease-in-out infinite alternate; }
.scn-secret-cavity .figure-peeking { position:absolute; bottom:10%; left:35%; width:50px; height:100px; background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sc-peek 5s ease-in-out infinite; }
.scn-secret-cavity .hidden-cavity { position:absolute; bottom:30%; left:55%; width:40px; height:30px; background: #0a0500; border-radius: 0 0 20% 20%; box-shadow: inset 0 0 20px rgba(0,0,0,.8); animation: sc-cavity 8s ease-in-out infinite alternate; }
.scn-secret-cavity .coat-hanging { position:absolute; top:5%; right:10%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 20% 20% 10% 10%; transform-origin: top center; animation: sc-coat 6s ease-in-out infinite alternate; }
.scn-secret-cavity .deep-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,.6) 0%, transparent 60%); pointer-events: none; animation: sc-shadow 10s ease-in-out infinite alternate; }
@keyframes sc-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sc-lamp { 0% { box-shadow: 0 0 40px 15px rgba(255,176,96,.3); opacity:0.85; } 50% { box-shadow: 0 0 70px 30px rgba(255,176,96,.6); opacity:1; } 100% { box-shadow: 0 0 50px 20px rgba(255,176,96,.4); opacity:0.9; } }
@keyframes sc-peek { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-3px); } 50% { transform: translateX(2px) translateY(0); } 75% { transform: translateX(-3px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes sc-cavity { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sc-coat { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes sc-shadow { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }

.scn-murder-witnessed {
  background: 
    linear-gradient(180deg, #0a0808 0%, #1a1210 30%, #140e0c 70%, #080604 100%),
    radial-gradient(ellipse at 50% 60%, #2a1e1a 0%, transparent 80%);
}
.scn-murder-witnessed .dark-room { position:absolute; inset:0; background: linear-gradient(135deg, #0a0808 0%, #1a1410 100%); animation: mw-room 20s ease-in-out infinite alternate; }
.scn-murder-witnessed .floor-stained { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); }
.scn-murder-witnessed .figure-cowering { position:absolute; bottom:5%; left:20%; width:60px; height:90px; background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: mw-cower 3s ease-in-out infinite; }
.scn-murder-witnessed .figure-looming { position:absolute; bottom:10%; right:25%; width:70px; height:150px; background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mw-loom 5s ease-in-out infinite; }
.scn-murder-witnessed .bloodstain { position:absolute; bottom:8%; left:40%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 50%, #5e1a1d 0%, #3a0e10 60%, transparent 80%); border-radius: 50%; animation: mw-blood 10s ease-in-out infinite alternate; }
.scn-murder-witnessed .knife-silhouette { position:absolute; bottom:15%; right:40%; width:8px; height:50px; background: #0a0500; border-radius: 2px; transform: rotate(-20deg); box-shadow: 0 0 4px rgba(255,255,255,.1); animation: mw-knife 4s ease-in-out infinite; }
.scn-murder-witnessed .doorway-light { position:absolute; top:10%; left:10%; width:80px; height:120px; background: linear-gradient(135deg, rgba(200,180,140,.15) 0%, transparent 100%); border: 4px solid rgba(200,180,140,.1); border-radius: 4px; animation: mw-door 8s ease-in-out infinite alternate; }
.scn-murder-witnessed .shadow-creep { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 50%, rgba(0,0,0,.5) 0%, transparent 60%); pointer-events: none; animation: mw-shadow 6s ease-in-out infinite alternate; }
@keyframes mw-room { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes mw-cower { 0% { transform: translateX(0) translateY(0) scale(1); } 25% { transform: translateX(-2px) translateY(2px) scale(1.02); } 50% { transform: translateX(0) translateY(0) scale(1); } 75% { transform: translateX(2px) translateY(2px) scale(0.98); } 100% { transform: translateX(0) translateY(0) scale(1); } }
@keyframes mw-loom { 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 mw-blood { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes mw-knife { 0% { transform: rotate(-22deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-3px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes mw-door { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes mw-shadow { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

/* leithcourt-named – dim interior, dark mood */
.scn-leithcourt-named {
  background: 
    radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, #0d0d1a 60%, transparent 100%),
    linear-gradient(180deg, #1a1a3e 0%, #2a1a3a 40%, #0e0e1a 100%);
}
.scn-leithcourt-named .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #16162a 0%, #0a0a18 100%);
  animation: sc1-bg 10s ease-in-out infinite alternate;
}
.scn-leithcourt-named .window {
  position: absolute; top: 15%; left: 70%;
  width: 70px; height: 90px;
  background: radial-gradient(circle at 50% 60%, #4a5a8a 0%, #1a224a 80%);
  border-radius: 10px;
  box-shadow: inset 0 0 30px #2a3a6a, 0 0 40px #2a3a6a66;
  animation: sc1-window 8s ease-in-out infinite alternate;
}
.scn-leithcourt-named .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%;
  height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 10px #00000055;
  animation: sc1-table 14s ease-in-out infinite;
}
.scn-leithcourt-named .figure {
  position: absolute; bottom: 25%; left: 35%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: sc1-figure 6s ease-in-out infinite;
}
.scn-leithcourt-named .shadow {
  position: absolute; bottom: 22%; left: 30%; right: 60%;
  height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #00000066 0%, transparent 70%);
  transform: skewX(-20deg);
  animation: sc1-shadow 6s ease-in-out infinite;
}
.scn-leithcourt-named .lamp {
  position: absolute; top: 30%; left: 25%;
  width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #c08040 0%, #5a3a1a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px #c0804066, 0 0 40px #c0804033;
  animation: sc1-lamp 4s ease-in-out infinite alternate;
}
.scn-leithcourt-named .glow {
  position: absolute; top: 28%; left: 23%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #c0804022 0%, transparent 70%);
  border-radius: 50%;
  animation: sc1-glow 4s ease-in-out infinite alternate;
}
@keyframes sc1-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes sc1-window { 0% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.02) } 100% { opacity: .75; transform: scale(.98) } }
@keyframes sc1-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sc1-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(1px) rotate(0) } }
@keyframes sc1-shadow { 0%,100% { opacity: .5; transform: skewX(-20deg) scaleX(1) } 50% { opacity: .7; transform: skewX(-25deg) scaleX(1.1) } }
@keyframes sc1-lamp { 0% { opacity: .8; box-shadow: 0 0 15px #c0804066 } 100% { opacity: 1; box-shadow: 0 0 30px #c08040aa } }
@keyframes sc1-glow { 0% { opacity: .3; transform: scale(.8) } 100% { opacity: .6; transform: scale(1.2) } }

/* fear-of-me – tense, dim interior */
.scn-fear-of-me {
  background:
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, #14141e 60%, transparent 100%),
    linear-gradient(180deg, #1e1e2e 0%, #0f0f18 100%);
}
.scn-fear-of-me .ceil {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #161620 0%, #1e1e2e 100%);
  animation: sc2-ceil 12s ease-in-out infinite;
}
.scn-fear-of-me .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0e0e18 0%, #05050a 100%);
  animation: sc2-floor 14s ease-in-out infinite;
}
.scn-fear-of-me .figure-big {
  position: absolute; bottom: 25%; left: 25%;
  width: 60px; height: 110px;
  background: linear-gradient(180deg, #2e2e40 0%, #101018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc2-big 6s ease-in-out infinite;
}
.scn-fear-of-me .figure-small {
  position: absolute; bottom: 20%; left: 55%;
  width: 35px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-small 4s ease-in-out infinite alternate;
}
.scn-fear-of-me .chair {
  position: absolute; bottom: 18%; left: 45%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px;
  animation: sc2-chair 20s ease-in-out infinite;
}
.scn-fear-of-me .lamp-over {
  position: absolute; top: 10%; left: 50%;
  width: 8px; height: 18px;
  background: radial-gradient(circle at 50% 100%, #b0a080 0%, #5a4a30 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px #b0a08055;
  animation: sc2-lamp 3s ease-in-out infinite alternate;
}
.scn-fear-of-me .door {
  position: absolute; bottom: 10%; right: 10%;
  width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a2a38 0%, #101018 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px #00000088;
  animation: sc2-door 10s ease-in-out infinite;
}
@keyframes sc2-ceil { 0%,100% { opacity: .8 } 50% { opacity: 1 } }
@keyframes sc2-floor { 0%,100% { opacity: .9; transform: translateY(0) } 50% { opacity: .7; transform: translateY(1px) } }
@keyframes sc2-big { 0% { transform: rotate(0) scale(1) } 25% { transform: rotate(-2deg) scale(1.02) } 50% { transform: rotate(2deg) scale(.98) } 75% { transform: rotate(-1deg) scale(1.01) } 100% { transform: rotate(0) scale(1) } }
@keyframes sc2-small { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-8px) rotate(-5deg) scale(.95) } 100% { transform: translateX(4px) rotate(3deg) scale(1.05) } }
@keyframes sc2-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sc2-lamp { 0% { opacity: .7; box-shadow: 0 0 15px #b0a08033 } 100% { opacity: 1; box-shadow: 0 0 40px #b0a08077 } }
@keyframes sc2-door { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }

/* theory-of-murder – dark, dim interior */
.scn-theory-of-murder {
  background:
    radial-gradient(ellipse at 50% 70%, #1a1a2a 0%, #0a0a12 60%, transparent 100%),
    linear-gradient(180deg, #0d0d1a 0%, #14142a 100%);
}
.scn-theory-of-murder .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a15 0%, #050510 100%);
  animation: sc3-bg 15s ease-in-out infinite alternate;
}
.scn-theory-of-murder .body {
  position: absolute; bottom: 15%; left: 30%; right: 30%;
  height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 30% 30% 20% 20%;
  opacity: .6;
  animation: sc3-body 8s ease-in-out infinite alternate;
}
.scn-theory-of-murder .detective {
  position: absolute; bottom: 25%; left: 50%;
  width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc3-detective 6s ease-in-out infinite;
}
.scn-theory-of-murder .lamp-dim {
  position: absolute; top: 30%; left: 40%;
  width: 10px; height: 15px;
  background: radial-gradient(circle at 50% 100%, #806040 0%, #3a2010 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 25px #80604044, 0 0 50px #80604022;
  animation: sc3-lamp 5s ease-in-out infinite alternate;
}
.scn-theory-of-murder .table {
  position: absolute; bottom: 10%; left: 25%; right: 25%;
  height: 12px;
  background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%);
  border-radius: 3px;
  animation: sc3-table 20s ease-in-out infinite;
}
.scn-theory-of-murder .curtain {
  position: absolute; top: 0; right: 0; width: 30%;
  height: 100%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a18 100%);
  opacity: .7;
  animation: sc3-curtain 9s ease-in-out infinite alternate;
}
@keyframes sc3-bg { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes sc3-body { 0% { opacity: .5; transform: translateY(0) } 100% { opacity: .7; transform: translateY(3px) } }
@keyframes sc3-detective { 0% { transform: rotate(0) } 25% { transform: rotate(-3deg) translateY(-1px) } 50% { transform: rotate(2deg) translateY(2px) } 75% { transform: rotate(-1deg) translateY(0) } 100% { transform: rotate(0) } }
@keyframes sc3-lamp { 0% { opacity: .6; box-shadow: 0 0 15px #80604033 } 100% { opacity: 1; box-shadow: 0 0 40px #80604066 } }
@keyframes sc3-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes sc3-curtain { 0% { opacity: .6; transform: scaleX(1) } 100% { opacity: .8; transform: scaleX(1.05) } }

/* photographer-clue – calm, bright interior */
.scn-photographer-clue {
  background:
    linear-gradient(180deg, #faf5e8 0%, #e8e0d0 40%, #d8cfbf 100%),
    radial-gradient(ellipse at 60% 40%, #fffbf0 0%, transparent 70%);
}
.scn-photographer-clue .bg-light {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d6c0 100%);
  animation: sc4-bg 20s ease-in-out infinite alternate;
}
.scn-photographer-clue .window-big {
  position: absolute; top: 5%; left: 60%; width: 100px; height: 160px;
  background: radial-gradient(circle at 70% 60%, #d4e8f0 0%, #b0c8d8 80%);
  border-radius: 10px;
  box-shadow: inset 0 0 40px #aac0d066, 0 0 60px #c0d0e044;
  animation: sc4-window 10s ease-in-out infinite alternate;
}
.scn-photographer-clue .counter {
  position: absolute; bottom: 15%; left: 10%; right: 10%;
  height: 30px;
  background: linear-gradient(180deg, #b8a88a 0%, #9a8a6a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 15px #3a2a1a33;
  animation: sc4-counter 18s ease-in-out infinite;
}
.scn-photographer-clue .clerk {
  position: absolute; bottom: 20%; left: 30%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #c0b8a0 0%, #9a9080 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: sc4-clerk 4s ease-in-out infinite;
}
.scn-photographer-clue .camera {
  position: absolute; bottom: 25%; left: 55%;
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #101010 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 10px #00000033;
  animation: sc4-camera 7s ease-in-out infinite;
}
.scn-photographer-clue .shelf {
  position: absolute; top: 10%; right: 5%;
  width: 60px; height: 40px;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px #2a1a0a22;
  animation: sc4-shelf 25s ease-in-out infinite;
}
.scn-photographer-clue .ledger {
  position: absolute; bottom: 18%; left: 20%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 8px #2a1a0a33;
  animation: sc4-ledger 12s ease-in-out infinite;
}
@keyframes sc4-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes sc4-window { 0% { opacity: .85; transform: scale(1) } 100% { opacity: 1; transform: scale(1.02) } }
@keyframes sc4-counter { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sc4-clerk { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(1px) } }
@keyframes sc4-camera { 0%,100% { transform: scale(1) rotate(0) } 50% { transform: scale(1.03) rotate(3deg) } }
@keyframes sc4-shelf { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes sc4-ledger { 0%,100% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(3px) } }

/* olinto-meeting - dusk warm */
.scn-olinto-meeting {
  background:
    linear-gradient(180deg, #7a3b4e 0%, #c26a4a 30%, #e28c5c 60%, #b8864a 85%, #4a3528 100%);
  animation: om-skyPulse 20s ease-in-out infinite alternate;
}
.scn-olinto-meeting .dusk-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a2a3a 0%, #c27a4a 60%, #f0b86a 100%);
  animation: om-duskShift 15s ease-in-out infinite;
}
.scn-olinto-meeting .horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a08 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
}
.scn-olinto-meeting .figure-left {
  position: absolute; bottom: 35%; left: 20%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform: rotate(8deg);
  animation: om-figureLeft 4s ease-in-out infinite alternate;
}
.scn-olinto-meeting .figure-right {
  position: absolute; bottom: 35%; right: 22%; width: 30px; height: 62px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform: rotate(-5deg);
  animation: om-figureRight 5s ease-in-out infinite alternate;
}
.scn-olinto-meeting .lamp-post {
  position: absolute; bottom: 32%; left: 48%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 20%;
}
.scn-olinto-meeting .lamp-glow {
  position: absolute; bottom: 50%; left: 46%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffa040, 0 0 100px 40px rgba(255,160,64,0.3);
  animation: om-lampFlicker 3s ease-in-out infinite alternate;
}
.scn-olinto-meeting .cigar-glow {
  position: absolute; bottom: 45%; right: 30%; width: 4px; height: 4px;
  background: #ff8844;
  border-radius: 50%;
  box-shadow: 0 0 8px 4px #ff8844;
  animation: om-cigar 2s ease-in-out infinite;
}
.scn-olinto-meeting .cloud-a {
  position: absolute; top: 15%; left: 5%; width: 100px; height: 20px;
  background: rgba(200,180,160,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: om-cloudDriftA 40s linear infinite;
}
.scn-olinto-meeting .cloud-b {
  position: absolute; top: 8%; right: 10%; width: 130px; height: 25px;
  background: rgba(200,170,140,0.25);
  border-radius: 50%;
  filter: blur(10px);
  animation: om-cloudDriftB 55s linear infinite reverse;
}

@keyframes om-skyPulse { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes om-duskShift { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes om-figureLeft { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes om-figureRight { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-7deg) translateY(0); } }
@keyframes om-lampFlicker { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes om-cigar { 0% { opacity: 0.3; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes om-cloudDriftA { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes om-cloudDriftB { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* lambeth-house - dim interior tense */
.scn-lambeth-house {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #1e1e1e 60%, #0a0a0a 100%);
}
.scn-lambeth-house .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 80%);
}
.scn-lambeth-house .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-lambeth-house .door-frame {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 70%;
  background: #4a3a2a;
  border: 4px solid #2a1a0a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-lambeth-house .door {
  position: absolute; bottom: 15%; left: 38%; width: 24%; height: 65%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border: 2px solid #1a0a00;
  border-radius: 2px;
  animation: lh-doorCreak 8s ease-in-out infinite alternate;
  transform-origin: left center;
}
.scn-lambeth-house .window {
  position: absolute; bottom: 55%; right: 10%; width: 50px; height: 60px;
  background: #1a2a3a;
  border: 3px solid #0a0a0a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-lambeth-house .window-glow {
  position: absolute; bottom: 55%; right: 10%; width: 50px; height: 60px;
  background: radial-gradient(circle at 50% 70%, #4a6a8a 0%, transparent 70%);
  opacity: 0.3;
  animation: lh-windowGlow 6s ease-in-out infinite alternate;
}
.scn-lambeth-house .stairs {
  position: absolute; bottom: 10%; left: 5%; width: 20%; height: 40%;
  background: repeating-linear-gradient(
    0deg,
    #3a2a1a 0px, #3a2a1a 4px,
    #1a0a00 4px, #1a0a00 8px
  );
  border-radius: 0 20% 0 0;
  box-shadow: -6px 0 12px rgba(0,0,0,0.8);
}
.scn-lambeth-house .figure-shadow {
  position: absolute; bottom: 15%; left: 45%; width: 20px; height: 50px;
  background: #0a0a0a;
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  opacity: 0.6;
  animation: lh-shadowMove 10s ease-in-out infinite;
}
.scn-lambeth-house .figure-gordon {
  position: absolute; bottom: 18%; left: 15%; width: 22px; height: 55px;
  background: linear-gradient(135deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform: rotate(3deg);
  animation: lh-gordonTense 4s ease-in-out infinite alternate;
}

@keyframes lh-doorCreak { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes lh-windowGlow { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes lh-shadowMove { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-5px) scaleY(1.1); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes lh-gordonTense { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }

/* waiting-trap - dim interior tense */
.scn-waiting-trap {
  background:
    radial-gradient(ellipse at 50% 120%, #1a1a1a 0%, #0a0a0a 80%);
}
.scn-waiting-trap .wall-dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-waiting-trap .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(
    90deg,
    #3a2a1a 0px, #3a2a1a 8px,
    #2a1a0a 8px, #2a1a0a 10px,
    #3a2a1a 10px, #3a2a1a 18px
  );
}
.scn-waiting-trap .table {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-waiting-trap .chair {
  position: absolute; bottom: 18%; left: 42%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-waiting-trap .clock {
  position: absolute; top: 15%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #4a3a2a 0%, #1a1a1a 100%);
  border-radius: 50%;
  border: 2px solid #0a0a0a;
  animation: wt-clockTick 2s steps(1) infinite;
}
.scn-waiting-trap .door-closed {
  position: absolute; bottom: 15%; right: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border: 2px solid #0a0a0a;
  border-radius: 2px;
}
.scn-waiting-trap .figure-waiting {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  transform: rotate(10deg);
  animation: wt-figureFidget 3s ease-in-out infinite alternate;
}
.scn-waiting-trap .lamp-table {
  position: absolute; bottom: 45%; left: 42%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 0%, #ffd080 0%, #a06020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #a06020;
  animation: wt-lampFlicker 4s ease-in-out infinite alternate;
}
.scn-waiting-trap .lamp-drip {
  position: absolute; bottom: 42%; left: 44%; width: 2px; height: 8px;
  background: #ffd080;
  border-radius: 50%;
  opacity: 0.5;
  animation: wt-drip 5s linear infinite;
}

@keyframes wt-clockTick { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } }
@keyframes wt-figureFidget { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-1px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes wt-lampFlicker { 0% { opacity: 0.6; box-shadow: 0 0 15px 4px #a06020; } 50% { opacity: 1; box-shadow: 0 0 25px 8px #a06020; } 100% { opacity: 0.7; box-shadow: 0 0 18px 5px #a06020; } }
@keyframes wt-drip { 0% { transform: translateY(0); opacity: 0.5; } 50% { transform: translateY(10px); opacity: 0; } 100% { transform: translateY(0); opacity: 0.5; } }

/* olinto-struggles - dark dim interior */
.scn-olinto-struggles {
  background:
    linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%);
}
.scn-olinto-struggles .room-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, transparent 30%, #000 100%);
  opacity: 0.7;
  animation: os-shadowPulse 12s ease-in-out infinite alternate;
}
.scn-olinto-struggles .wall-texture {
  position: absolute; inset: 0 0 20% 0;
  background:
    linear-gradient(0deg, #1a1a1a 0%, #2a2a2a 10%, transparent 30%),
    repeating-linear-gradient(0deg, transparent 0px, rgba(255,255,255,0.02) 2px, transparent 4px);
}
.scn-olinto-struggles .table-center {
  position: absolute; bottom: 25%; left: 38%; width: 80px; height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
}
.scn-olinto-struggles .figure-gordon {
  position: absolute; bottom: 15%; left: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform: rotate(-3deg);
  animation: os-gordonListen 6s ease-in-out infinite alternate;
}
.scn-olinto-struggles .figure-olinto {
  position: absolute; bottom: 15%; right: 25%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: rotate(5deg);
  animation: os-olintoGesture 4s ease-in-out infinite alternate;
}
.scn-olinto-struggles .candle {
  position: absolute; bottom: 40%; left: 42%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #a06020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 2px #ffd080, 0 0 30px 8px #a06020;
  animation: os-candleGlow 3s ease-in-out infinite alternate;
}
.scn-olinto-struggles .candle-glow {
  position: absolute; bottom: 40%; left: 42%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, #a06020 30%, transparent 70%);
  border-radius: 50%;
  opacity: 0.5;
  animation: os-candleGlow 3s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-olinto-struggles .emigrate-ship {
  position: absolute; top: 10%; left: 5%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #1a3a2a 0%, #0a1a10 100%);
  clip-path: polygon(0 50%, 100% 0, 100% 100%, 0 70%);
  opacity: 0.15;
  animation: os-shipDrift 20s ease-in-out infinite;
}
.scn-olinto-struggles .hopes {
  position: absolute; top: 5%; right: 10%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, transparent 100%);
  border-radius: 50%;
  opacity: 0.2;
  animation: os-hopesPulse 8s ease-in-out infinite;
}

@keyframes os-shadowPulse { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes os-gordonListen { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes os-olintoGesture { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes os-candleGlow { 0% { opacity: 0.6; box-shadow: 0 0 8px 2px #ffd080, 0 0 20px 6px #a06020; } 50% { opacity: 1; box-shadow: 0 0 15px 4px #ffd080, 0 0 40px 12px #a06020; } 100% { opacity: 0.7; box-shadow: 0 0 10px 3px #ffd080, 0 0 25px 8px #a06020; } }
@keyframes os-shipDrift { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(20px) translateY(-5px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes os-hopesPulse { 0% { opacity: 0.1; transform: scale(1); } 50% { opacity: 0.3; transform: scale(1.2); } 100% { opacity: 0.1; transform: scale(1); } }

.scn-woodroffe-appears {
  background: 
    linear-gradient(180deg, #2c1e3e 0%, #6b4030 40%, #b87a4a 70%, #d4a060 100%),
    radial-gradient(ellipse at 50% 80%, #f0c070 0%, transparent 60%);
}
.scn-woodroffe-appears .sky-wa {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a2a4a 0%, #8a5a3a 100%);
  animation: wa-sky 20s ease-in-out infinite alternate;
}
.scn-woodroffe-appears .sun-wa {
  position: absolute; top: 30%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, #e89a40 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,100,0.6), 0 0 80px 40px rgba(200,140,60,0.3);
  animation: wa-sun 8s ease-in-out infinite alternate;
}
.scn-woodroffe-appears .hills-wa {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3e2a1e 0%, #2a1a0e 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: wa-hills 18s ease-in-out infinite alternate;
}
.scn-woodroffe-appears .figure-main-wa {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wa-fig-main 6s ease-in-out infinite;
}
.scn-woodroffe-appears .figure-facing-wa {
  position: absolute; bottom: 22%; left: 42%; width: 28px; height: 64px;
  background: linear-gradient(180deg, #2a1e1e 0%, #0e0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wa-fig-facing 5s ease-in-out infinite;
}
.scn-woodroffe-appears .ground-wa {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  animation: wa-ground 15s ease-in-out infinite alternate;
}
@keyframes wa-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wa-sun { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 40px 20px rgba(255,200,100,0.6); } 50% { transform: scale(1.05) translateY(-4px); box-shadow: 0 0 50px 30px rgba(255,220,120,0.7); } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 30px 15px rgba(200,140,60,0.5); } }
@keyframes wa-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wa-fig-main { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(0deg); } }
@keyframes wa-fig-facing { 0%,100% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-2px) rotate(-1deg); } 60% { transform: translateY(-1px) rotate(2deg); } }
@keyframes wa-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }

.scn-introduction-avoided {
  background: 
    linear-gradient(180deg, #1e1e2e 0%, #3e2a2a 40%, #5a3a2a 70%, #4a2a1a 100%),
    radial-gradient(ellipse at 30% 60%, #f0a050 0%, transparent 50%);
}
.scn-introduction-avoided .bg-deep-ia {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, transparent 60%);
  animation: ia-bg-deep 12s ease-in-out infinite alternate;
}
.scn-introduction-avoided .bg-mid-ia {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 20% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: ia-bg-mid 15s ease-in-out infinite alternate;
}
.scn-introduction-avoided .figure-left-ia {
  position: absolute; bottom: 15%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1e1e1e 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: ia-left 4s ease-in-out infinite alternate;
}
.scn-introduction-avoided .figure-right-ia {
  position: absolute; bottom: 15%; right: 30%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #2a1e1e 0%, #0e0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: ia-right 5s ease-in-out infinite alternate;
}
.scn-introduction-avoided .figure-narrator-ia {
  position: absolute; bottom: 10%; left: 48%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: ia-narrator 6s ease-in-out infinite;
}
.scn-introduction-avoided .lantern-ia {
  position: absolute; bottom: 30%; right: 20%; width: 10px; height: 14px;
  background: radial-gradient(circle, #f0c060 0%, #c08830 60%, transparent 80%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(240,192,96,0.7), 0 0 60px 20px rgba(200,140,60,0.3);
  animation: ia-lantern 3s ease-in-out infinite alternate;
}
.scn-introduction-avoided .shadow-ia {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: ia-shadow 8s ease-in-out infinite alternate;
}
@keyframes ia-bg-deep { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ia-bg-mid { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ia-left { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes ia-right { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes ia-narrator { 0%,100% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-1px) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes ia-lantern { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(0.95); } }
@keyframes ia-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-woodroffe-returns {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2e222a 40%, #4a322a 70%, #3a221a 100%),
    radial-gradient(ellipse at 50% 20%, #b08040 0%, transparent 70%);
}
.scn-woodroffe-returns .room-wall-wr {
  position: absolute; inset: 0 20% 0 0;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: inset -20px 0 40px rgba(0,0,0,0.8);
  animation: wr-wall 10s ease-in-out infinite alternate;
}
.scn-woodroffe-returns .window-wr {
  position: absolute; top: 15%; left: 5%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #3a2a2a 100%);
  border: 6px solid #2a1a12;
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: wr-window 15s ease-in-out infinite alternate;
}
.scn-woodroffe-returns .window-sky-wr {
  position: absolute; top: 15%; left: 5%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #2c1e3e 0%, #7a5040 100%);
  clip-path: inset(0);
  animation: wr-sky 12s ease-in-out infinite alternate;
}
.scn-woodroffe-returns .figure-back-wr {
  position: absolute; bottom: 20%; left: 15%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: wr-back 5s ease-in-out infinite alternate;
}
.scn-woodroffe-returns .figure-side-wr {
  position: absolute; bottom: 18%; left: 55%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #2a1e1e 0%, #0e0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: wr-side 4s ease-in-out infinite;
}
.scn-woodroffe-returns .floor-wr {
  position: absolute; bottom: 0; left: 20%; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: wr-floor 8s ease-in-out infinite alternate;
}
@keyframes wr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes wr-window { 0% { border-color: #2a1a12; } 50% { border-color: #4a2a22; } 100% { border-color: #2a1a12; } }
@keyframes wr-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes wr-back { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes wr-side { 0%,100% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(0deg) translateY(-2px); } 50% { transform: rotate(3deg) translateY(-1px); } 75% { transform: rotate(1deg) translateY(-2px); } }
@keyframes wr-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }

.scn-grouse-salmon-talk {
  background: 
    linear-gradient(180deg, #1e2e3e 0%, #4a5a6a 40%, #7a8a8a 70%, #8a9a7a 100%),
    radial-gradient(ellipse at 50% 100%, #9aba9a 0%, transparent 60%);
}
.scn-grouse-salmon-talk .sky-gs {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a3a4a 0%, #5a6a7a 100%);
  animation: gs-sky 25s ease-in-out infinite alternate;
}
.scn-grouse-salmon-talk .moon-gs {
  position: absolute; top: 15%; left: 65%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e0e8e8 0%, #b0b8c0 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,210,220,0.5);
  animation: gs-moon 10s ease-in-out infinite alternate;
}
.scn-grouse-salmon-talk .hills-gs {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%);
  border-radius: 50% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: gs-hills 20s ease-in-out infinite alternate;
}
.scn-grouse-salmon-talk .house-gs {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: gs-house 12s ease-in-out infinite;
}
.scn-grouse-salmon-talk .figure-a-gs {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1e2a2e 0%, #0e1a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gs-fig-a 8s ease-in-out infinite alternate;
}
.scn-grouse-salmon-talk .figure-b-gs {
  position: absolute; bottom: 20%; left: 52%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a2e2e 0%, #1a1e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gs-fig-b 7s ease-in-out infinite;
}
.scn-grouse-salmon-talk .path-gs {
  position: absolute; bottom: 15%; left: 35%; right: 45%; height: 8%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 40% 40%;
  opacity: 0.6;
  animation: gs-path 15s ease-in-out infinite alternate;
}
@keyframes gs-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes gs-moon { 0% { transform: scale(1); box-shadow: 0 0 30px 15px rgba(200,210,220,0.5); } 50% { transform: scale(1.03); box-shadow: 0 0 40px 20px rgba(200,210,220,0.6); } 100% { transform: scale(0.98); box-shadow: 0 0 25px 12px rgba(200,210,220,0.4); } }
@keyframes gs-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gs-house { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes gs-fig-a { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gs-fig-b { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes gs-path { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

/* i-defied-oberg – tense, dim-interior */
.scn-i-defied-oberg {
  background:
    linear-gradient(180deg, #1e1a24 0%, #2a2533 30%, #1e1a24 60%, #120f18 100%),
    radial-gradient(ellipse at 50% 0%, #3a3045 0%, transparent 70%);
}
.scn-i-defied-oberg .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2c2638 0%, transparent 100%); animation: oberg-bg 12s ease-in-out infinite alternate; }
.scn-i-defied-oberg .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a141f 0%, #0d0a12 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px #000; }
.scn-i-defied-oberg .window  { position:absolute; top:12%; left:10%; width:25%; height:35%; background: rgba(60,50,70,.2); border: 2px solid #1f1a2a; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.6); animation: oberg-window 8s ease-in-out infinite alternate; }
.scn-i-defied-oberg .lamp    { position:absolute; bottom:35%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #a0673a 0%, #5a3a1a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 18px 6px #b0703a, 0 0 36px 12px rgba(176,112,58,.3); animation: oberg-lamp 3s ease-in-out infinite alternate; }
.scn-i-defied-oberg .table   { position:absolute; bottom:28%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1f140c 100%); border-radius: 4px; box-shadow: 0 4px 8px #000; }
.scn-i-defied-oberg .figure-left  { position:absolute; bottom:28%; left:38%; width:12%; height:35%; background: linear-gradient(180deg, #1f1a2a 0%, #0d0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oberg-left 5s ease-in-out infinite; }
.scn-i-defied-oberg .figure-right { position:absolute; bottom:28%; right:38%; width:12%; height:35%; background: linear-gradient(180deg, #2a2533 0%, #120f18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oberg-right 4.5s ease-in-out infinite alternate; }
.scn-i-defied-oberg .shadow  { position:absolute; bottom:0; left:0; right:0; height:40%; background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 70%); opacity:.6; animation: oberg-shadow 6s ease-in-out infinite alternate; }

@keyframes oberg-bg    { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes oberg-window{ 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.02) } 100% { opacity:.35; transform: scaleX(1) } }
@keyframes oberg-lamp  { 0% { box-shadow: 0 0 14px 4px #b0703a; opacity:.85 } 50% { box-shadow: 0 0 28px 10px #d09050; opacity:1 } 100% { box-shadow: 0 0 18px 5px #b0703a; opacity:.9 } }
@keyframes oberg-left  { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-1deg) } 50% { transform: translateX(6px) rotate(1deg) } 75% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes oberg-right { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes oberg-shadow{ 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }

/* motive-not-ciphers – tense, dim-interior */
.scn-motive-not-ciphers {
  background:
    linear-gradient(180deg, #1b1a1f 0%, #23222a 40%, #1b1a1f 70%, #0f0e14 100%),
    radial-gradient(ellipse at 50% 100%, #2a2835 0%, transparent 60%);
}
.scn-motive-not-ciphers .desk   { position:absolute; bottom:0; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #3a2e1e 0%, #1f180f 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -10px 20px #000; }
.scn-motive-not-ciphers .safe   { position:absolute; bottom:30%; right:15%; width:20%; height:25%; background: linear-gradient(180deg, #4a4030 0%, #2a2215 100%); border-radius: 6%; border: 2px solid #1a150c; box-shadow: 0 0 15px 3px #000; animation: motive-safe 8s ease-in-out infinite alternate; }
.scn-motive-not-ciphers .papers { position:absolute; bottom:20%; left:25%; width:40%; height:8%; background: linear-gradient(180deg, #d4c9a0 0%, #b8a87a 100%); border-radius: 2px; box-shadow: 0 2px 6px #000; animation: motive-papers 4s ease-in-out infinite alternate; }
.scn-motive-not-ciphers .lamp   { position:absolute; bottom:55%; left:20%; width:6px; height:15px; background: linear-gradient(180deg, #b08040 0%, #704a1a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 14px 4px #b0703a, 0 0 28px 8px rgba(176,112,58,.3); animation: motive-lamp 3s ease-in-out infinite alternate; }
.scn-motive-not-ciphers .hand   { position:absolute; bottom:18%; left:30%; width:8%; height:12%; background: linear-gradient(180deg, #2e2533 0%, #1a141f 100%); border-radius: 30% 30% 50% 50%; transform-origin: bottom; animation: motive-hand 2.5s ease-in-out infinite; }
.scn-motive-not-ciphers .shadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 70%); opacity:.7; animation: motive-shadow 6s ease-in-out infinite alternate; }

@keyframes motive-safe   { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes motive-papers { 0% { transform: scaleX(1) translateX(0); opacity:.9 } 50% { transform: scaleX(1.05) translateX(2px); opacity:1 } 100% { transform: scaleX(1) translateX(0); opacity:.9 } }
@keyframes motive-lamp   { 0% { box-shadow: 0 0 10px 2px #b0703a; opacity:.8 } 50% { box-shadow: 0 0 24px 8px #d09050; opacity:1 } 100% { box-shadow: 0 0 14px 3px #b0703a; opacity:.85 } }
@keyframes motive-hand   { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(5px) rotate(5deg) } 50% { transform: translateX(10px) rotate(0) } 75% { transform: translateX(5px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes motive-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }

/* silence-her – dark, dim-interior */
.scn-silence-her {
  background:
    linear-gradient(180deg, #0b0810 0%, #15111d 30%, #0b0810 60%, #05030a 100%),
    radial-gradient(ellipse at 50% 0%, #1a1525 0%, transparent 60%);
}
.scn-silence-her .wall         { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1a1520 0%, #0f0c16 100%); animation: silence-wall 15s ease-in-out infinite alternate; }
.scn-silence-her .floor-dark   { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0c0a12 0%, #040208 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; }
.scn-silence-her .window-dim   { position:absolute; top:15%; right:20%; width:20%; height:35%; background: rgba(60,50,70,.15); border: 1px solid #1a1520; border-radius: 4px; box-shadow: inset 0 0 8px #000; animation: silence-window 10s ease-in-out infinite alternate; }
.scn-silence-her .figure-alone { position:absolute; bottom:25%; left:50%; width:10%; height:40%; background: linear-gradient(180deg, #1a1525 0%, #0b0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); transform-origin: bottom center; animation: silence-fig 8s ease-in-out infinite; }
.scn-silence-her .chair        { position:absolute; bottom:22%; left:40%; width:15%; height:18%; background: linear-gradient(180deg, #1f182a 0%, #100b1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px #000; animation: silence-chair 12s ease-in-out infinite alternate; }
.scn-silence-her .lamp-distant{ position:absolute; top:40%; right:10%; width:4px; height:12px; background: linear-gradient(180deg, #605030 0%, #2a2010 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 6px 2px #605030, 0 0 12px 4px rgba(96,80,48,.15); animation: silence-lamp 5s ease-in-out infinite alternate; }

@keyframes silence-wall   { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes silence-window { 0% { opacity:.2; transform: scaleX(1) } 50% { opacity:.35; transform: scaleX(1.03) } 100% { opacity:.25; transform: scaleX(1) } }
@keyframes silence-fig    { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0) } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes silence-chair  { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes silence-lamp   { 0% { box-shadow: 0 0 4px 1px #605030; opacity:.4 } 50% { box-shadow: 0 0 10px 3px #806040; opacity:.7 } 100% { box-shadow: 0 0 5px 1px #605030; opacity:.45 } }

/* where-is-muriel – tense, dim-interior */
.scn-where-is-muriel {
  background:
    linear-gradient(180deg, #1e1c22 0%, #25232b 40%, #1e1c22 70%, #111015 100%),
    radial-gradient(ellipse at 50% 100%, #2a2735 0%, transparent 60%);
}
.scn-where-is-muriel .desk       { position:absolute; bottom:0; left:15%; right:15%; height:40%; background: linear-gradient(180deg, #3a2e1e 0%, #1f180f 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: inset 0 -8px 16px #000; }
.scn-where-is-muriel .letter     { position:absolute; bottom:18%; left:30%; width:30%; height:15%; background: linear-gradient(180deg, #d4c9a0 0%, #b8a87a 100%); border-radius: 2px; box-shadow: 0 2px 6px #000; animation: muriel-letter 4s ease-in-out infinite alternate; }
.scn-where-is-muriel .envelope   { position:absolute; bottom:16%; left:55%; width:15%; height:10%; background: linear-gradient(180deg, #c4b890 0%, #a09470 100%); border-radius: 2px; box-shadow: 0 2px 6px #000; animation: muriel-env 6s ease-in-out infinite alternate; }
.scn-where-is-muriel .hand-write { position:absolute; bottom:22%; left:35%; width:6%; height:10%; background: linear-gradient(180deg, #2e2533 0%, #1a141f 100%); border-radius: 30% 30% 50% 50%; transform-origin: bottom; animation: muriel-hand 3s ease-in-out infinite; }
.scn-where-is-muriel .inkwell    { position:absolute; bottom:12%; left:25%; width:5%; height:8%; background: linear-gradient(180deg, #1a1520 0%, #0b0810 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 4px #000; }
.scn-where-is-muriel .lamp       { position:absolute; bottom:50%; left:40%; width:6px; height:16px; background: linear-gradient(180deg, #b08040 0%, #704a1a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 16px 6px #b0703a, 0 0 32px 12px rgba(176,112,58,.3); animation: muriel-lamp 3.5s ease-in-out infinite alternate; }

@keyframes muriel-letter { 0% { transform: scaleX(1) translateY(0); opacity:.9 } 50% { transform: scaleX(1.02) translateY(-2px); opacity:1 } 100% { transform: scaleX(1) translateY(0); opacity:.9 } }
@keyframes muriel-env    { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes muriel-hand   { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(8px) rotate(-2deg) } 75% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes muriel-lamp   { 0% { box-shadow: 0 0 12px 3px #b0703a; opacity:.8 } 50% { box-shadow: 0 0 26px 10px #d09050; opacity:1 } 100% { box-shadow: 0 0 16px 4px #b0703a; opacity:.85 } }

.scn-detective-watching {
  background:
    linear-gradient(180deg, #e8d5b0 0%, #c8a67a 40%, #a08050 100%),
    radial-gradient(ellipse at 30% 70%, #d4b898 0%, transparent 70%);
}
.scn-detective-watching .room-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #c8b898 0%, #b09878 50%, #907858 100%);
  animation: dw-bg 20s ease-in-out infinite;
}
.scn-detective-watching .table-1 {
  position:absolute; bottom:20%; left:10%; width:120px; height:10px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.3);
  transform: perspective(400px) rotateX(20deg);
  animation: dw-table 12s ease-in-out infinite;
}
.scn-detective-watching .figure-read {
  position:absolute; bottom:30%; left:15%; width:24px; height:48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw-figure1 6s ease-in-out infinite;
}
.scn-detective-watching .newspaper {
  position:absolute; bottom:38%; left:12%; width:30px; height:20px;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 2px; transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: dw-paper 4s ease-in-out infinite alternate;
}
.scn-detective-watching .table-2 {
  position:absolute; bottom:20%; right:10%; width:100px; height:8px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.3);
  transform: perspective(400px) rotateX(15deg);
  animation: dw-table 12s ease-in-out infinite 3s;
}
.scn-detective-watching .figure-russian {
  position:absolute; bottom:30%; right:18%; width:22px; height:44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: dw-figure2 8s ease-in-out infinite;
}
.scn-detective-watching .window {
  position:absolute; top:10%; right:5%; width:80px; height:100px;
  background: linear-gradient(180deg, #cfe0ff 0%, #a0b8e0 100%);
  border: 4px solid #4a3a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,.3), 0 4px 8px rgba(0,0,0,.2);
  animation: dw-window 15s ease-in-out infinite alternate;
}
@keyframes dw-bg { 0%,100% { opacity:.95 } 50% { opacity:1 } }
@keyframes dw-table { 0%,100% { transform: perspective(400px) rotateX(20deg) translateY(0) } 50% { transform: perspective(400px) rotateX(20deg) translateY(-2px) } }
@keyframes dw-figure1 { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dw-paper { 0% { transform: rotate(12deg) scale(1) } 50% { transform: rotate(18deg) scale(1.02) } 100% { transform: rotate(12deg) scale(1) } }
@keyframes dw-figure2 { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(2deg) } }
@keyframes dw-window { 0% { opacity:.85; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.05) } 100% { opacity:.9; filter:brightness(0.95) } }

.scn-olinto-alive {
  background:
    linear-gradient(180deg, #dcc8a8 0%, #b8a080 50%, #8a6848 100%),
    radial-gradient(ellipse at 50% 30%, #e0c8a8 0%, transparent 60%);
}
.scn-olinto-alive .interior-walls {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #b09878 0%, #d0b898 50%, #a08868 100%);
  animation: oa-walls 20s ease-in-out infinite alternate;
}
.scn-olinto-alive .door {
  position:absolute; bottom:15%; left:5%; width:60px; height:120px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,.3);
  animation: oa-door 8s ease-in-out infinite;
}
.scn-olinto-alive .figure-entering {
  position:absolute; bottom:30%; left:12%; width:24px; 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: oa-enter 5s ease-in-out infinite;
}
.scn-olinto-alive .figure-turned {
  position:absolute; bottom:35%; left:30%; width:22px; height:46px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: oa-turn 7s ease-in-out infinite;
}
.scn-olinto-alive .chair {
  position:absolute; bottom:20%; left:35%; width:30px; height:20px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.3);
  transform: perspective(200px) rotateX(10deg);
  animation: oa-chair 12s ease-in-out infinite;
}
.scn-olinto-alive .lamp {
  position:absolute; top:20%; right:20%; width:10px; height:30px;
  background: #4a3a2a; border-radius: 2px;
  box-shadow: 0 0 30px 10px rgba(255,200,150,.5);
  animation: oa-lamp 4s ease-in-out infinite alternate;
}
@keyframes oa-walls { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes oa-door { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes oa-enter { 0% { transform: translateX(-10px) rotate(0) } 30% { transform: translateX(0) rotate(2deg) } 60% { transform: translateX(0) rotate(0) } 100% { transform: translateX(-10px) rotate(-1deg) } }
@keyframes oa-turn { 0%,100% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(2px) } }
@keyframes oa-chair { 0%,100% { transform: perspective(200px) rotateX(10deg) translateY(0) } 50% { transform: perspective(200px) rotateX(10deg) translateY(-2px) } }
@keyframes oa-lamp { 0% { box-shadow: 0 0 20px 8px rgba(255,200,150,.3); opacity:.8 } 50% { box-shadow: 0 0 40px 15px rgba(255,200,150,.6); opacity:1 } 100% { box-shadow: 0 0 25px 10px rgba(255,200,150,.4); opacity:.85 } }

.scn-armida-absent {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a6e 0%, transparent 60%);
}
.scn-armida-absent .dark-room {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #1a1a2e 0%, #0a0a1a 100%);
  animation: aa-dark 30s ease-in-out infinite;
}
.scn-armida-absent .candle {
  position:absolute; bottom:25%; left:20%; width:8px; height:30px;
  background: linear-gradient(180deg, #e8c080 0%, #c09840 100%);
  border-radius: 2px; box-shadow: 0 0 30px 15px #c09840, 0 0 60px 25px rgba(192,152,64,.4);
  animation: aa-candle 4s ease-in-out infinite alternate;
}
.scn-armida-absent .figure-seated {
  position:absolute; bottom:30%; left:35%; 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 center;
  animation: aa-seated 6s ease-in-out infinite;
}
.scn-armida-absent .table-small {
  position:absolute; bottom:20%; left:32%; width:50px; height:6px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: aa-table 10s ease-in-out infinite;
}
.scn-armida-absent .shadow-walls {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 30% 50%, transparent 0%, rgba(0,0,20,.6) 100%);
  animation: aa-shadows 8s ease-in-out infinite alternate;
}
.scn-armida-absent .coat-rack {
  position:absolute; bottom:15%; right:15%; width:6px; height:80px;
  background: #1a1a2a; border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(0,0,0,.5);
  animation: aa-rack 12s ease-in-out infinite;
}
@keyframes aa-dark { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes aa-candle { 0% { height:28px; box-shadow:0 0 20px 10px #c09840,0 0 40px 20px rgba(192,152,64,.3) } 50% { height:32px; box-shadow:0 0 40px 20px #e8c080,0 0 80px 30px rgba(232,192,128,.5) } 100% { height:30px; box-shadow:0 0 25px 12px #c09840,0 0 50px 25px rgba(192,152,64,.35) } }
@keyframes aa-seated { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(2deg) } 70% { transform: translateY(0) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes aa-table { 0%,100% { transform: perspective(200px) rotateX(10deg) translateY(0) } 50% { transform: perspective(200px) rotateX(10deg) translateY(-1px) } }
@keyframes aa-shadows { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes aa-rack { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }

.scn-armida-missing {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 20% 70%, #3a3a5e 0%, transparent 70%);
}
.scn-armida-missing .dim-room {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #1a1a2e 0%, #0a0a1a 100%);
  animation: am-dim 25s ease-in-out infinite;
}
.scn-armida-missing .empty-chair {
  position:absolute; bottom:20%; left:30%; width:30px; height:50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: am-chair 10s ease-in-out infinite;
}
.scn-armida-missing .figure-standing {
  position:absolute; bottom:30%; left:10%; width:22px; 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: am-stand 5s ease-in-out infinite;
}
.scn-armida-missing .doorway {
  position:absolute; bottom:10%; right:5%; width:60px; height:130px;
  border: 4px solid #2a1a1a; border-radius: 4px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: am-door 15s ease-in-out infinite alternate;
}
.scn-armida-missing .rug {
  position:absolute; bottom:5%; left:10%; width:150px; height:15px;
  background: linear-gradient(90deg, #3a2a2a 0%, #2a1a1a 50%, #3a2a2a 100%);
  border-radius: 30px; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: am-rug 20s ease-in-out infinite;
}
.scn-armida-missing .picture-frame {
  position:absolute; top:20%; left:40%; width:40px; height:50px;
  border: 3px solid #2a1a1a; border-radius: 2px;
  background: linear-gradient(180deg, #3a3a5e 0%, #1a1a3e 100%);
  box-shadow: 0 0 10px 2px rgba(0,0,0,.4);
  animation: am-frame 8s ease-in-out infinite alternate;
}
.scn-armida-missing .candle-stand {
  position:absolute; bottom:25%; left:60%; width:6px; height:40px;
  background: #1a1a2a; border-radius: 2px;
  box-shadow: 0 0 15px 5px rgba(200,150,80,.2);
  animation: am-candle 6s ease-in-out infinite alternate;
}
@keyframes am-dim { 0%,100% { opacity:.8 } 50% { opacity:.95 } }
@keyframes am-chair { 0% { transform: perspective(300px) rotateX(10deg) translateY(0) } 50% { transform: perspective(300px) rotateX(10deg) translateY(-3px) } 100% { transform: perspective(300px) rotateX(10deg) translateY(0) } }
@keyframes am-stand { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-3px) rotate(2deg) } 70% { transform: translateX(0) rotate(0) } 100% { transform: translateX(2px) rotate(-1deg) } }
@keyframes am-door { 0% { opacity:.7; filter:brightness(.8) } 50% { opacity:.9; filter:brightness(1) } 100% { opacity:.8; filter:brightness(.85) } }
@keyframes am-rug { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }
@keyframes am-frame { 0% { filter:brightness(.8) } 50% { filter:brightness(1) } 100% { filter:brightness(.9) } }
@keyframes am-candle { 0% { height:38px; box-shadow: 0 0 10px 3px rgba(200,150,80,.1) } 50% { height:42px; box-shadow: 0 0 20px 8px rgba(200,150,80,.3) } 100% { height:40px; box-shadow: 0 0 12px 4px rgba(200,150,80,.15) } }

/* ============================================================
   scene: famous-robberies  (tense, bright-interior)
   ============================================================ */
.scn-famous-robberies {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9c39e 30%, #b89a6f 60%),
    radial-gradient(ellipse at 50% 100%, #e8d5b0 0%, #8c704a 100%);
}
.scn-famous-robberies .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e8d4a8 0%, #cbb384 100%); }
.scn-famous-robberies .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #9a7a5a 0%, #6d5540 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.3); }
.scn-famous-robberies .desk { position:absolute; bottom:25%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
.scn-famous-robberies .newspaper { position:absolute; bottom:35%; left:35%; width:30%; height:15%; background: linear-gradient(180deg, #f0e0c0 0%, #d4c4a0 100%); border-radius: 2px; transform-origin: bottom center; animation: fr1-newspaper 3s ease-in-out infinite alternate; }
.scn-famous-robberies .lamp { position:absolute; bottom:50%; left:30%; width:10px; height:25px; background: linear-gradient(180deg, #c0a060 0%, #8a6a30 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 40px 10px rgba(255,220,150,0.6), 0 0 80px 20px rgba(255,200,120,0.3); animation: fr1-lamp 2s ease-in-out infinite alternate; }
.scn-famous-robberies .shadow-figure { position:absolute; bottom:20%; left:40%; width:20px; height:45px; background: linear-gradient(180deg, #2a2010 0%, #0a0800 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fr1-figure 4s ease-in-out infinite; }
.scn-famous-robberies .safe { position:absolute; bottom:20%; left:10%; width:40px; height:35px; background: linear-gradient(180deg, #5a4a3a 0%, #2a2010 100%); border-radius: 6px; border: 2px solid #3a2a1a; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: fr1-safe 6s ease-in-out infinite; }

@keyframes fr1-newspaper { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes fr1-lamp { 0% { box-shadow: 0 0 30px 5px rgba(255,220,150,0.5); opacity:0.9; } 50% { box-shadow: 0 0 50px 15px rgba(255,220,150,0.8); opacity:1; } 100% { box-shadow: 0 0 35px 8px rgba(255,220,150,0.6); opacity:0.95; } }
@keyframes fr1-figure { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(5px) scaleY(1.02); } 60% { transform: translateX(-3px) scaleY(0.98); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes fr1-safe { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

/* ============================================================
   scene: fathers-role (tense, bright-interior)
   ============================================================ */
.scn-fathers-role {
  background:
    linear-gradient(180deg, #efdfbf 0%, #d4c09a 30%, #b09870 60%),
    radial-gradient(ellipse at 50% 100%, #d4c09a 0%, #8a7a5a 100%);
}
.scn-fathers-role .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0cfad 0%, #c0a880 100%); }
.scn-fathers-role .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%); box-shadow: inset 0 15px 25px rgba(0,0,0,0.3); }
.scn-fathers-role .portrait { position:absolute; top:10%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a20 100%); border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: fr2-portrait 8s ease-in-out infinite alternate; }
.scn-fathers-role .table { position:absolute; bottom:25%; left:35%; width:30%; height:15%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.4); }
.scn-fathers-role .chair-left { position:absolute; bottom:20%; left:20%; width:25px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2018 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform-origin: bottom center; animation: fr2-chair 6s ease-in-out infinite; }
.scn-fathers-role .chair-right { position:absolute; bottom:20%; right:20%; width:25px; height:40px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2018 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform-origin: bottom center; animation: fr2-chair 6s ease-in-out infinite reverse; animation-delay: -2s; }
.scn-fathers-role .figure-standing { position:absolute; bottom:25%; left:50%; width:18px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2018 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fr2-figure 3s ease-in-out infinite alternate; }

@keyframes fr2-portrait { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.01); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes fr2-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fr2-figure { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 50% { transform: translateX(-50%) scaleY(1.02) rotate(1deg); } 100% { transform: translateX(-50%) scaleY(1) rotate(0deg); } }

/* ============================================================
   scene: father-dies (dark, dim-interior / night water)
   ============================================================ */
.scn-father-dies {
  background:
    linear-gradient(180deg, #0c1420 0%, #1a2a3a 30%, #0e1a28 60%),
    radial-gradient(ellipse at 50% 80%, #1a2a3a 0%, #0a0e18 100%);
}
.scn-father-dies .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3a4a 0%, #0e1820 100%); animation: fd3-sky 12s ease-in-out infinite alternate; }
.scn-father-dies .bg-water { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #0a1820 0%, #061016 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); animation: fd3-water 4s ease-in-out infinite alternate; }
.scn-father-dies .yacht { position:absolute; bottom:30%; left:50%; width:40px; height:15px; transform:translateX(-50%); background: linear-gradient(180deg, #2a3020 0%, #0a0e08 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; }
.scn-father-dies .fire { position:absolute; bottom:32%; left:48%; width:25px; height:30px; background: radial-gradient(circle at 50% 60%, #ffa040 0%, #c06020 40%, #802000 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 50px 20px rgba(255,160,64,0.6), 0 0 100px 40px rgba(255,120,32,0.3); animation: fd3-fire 1.5s ease-in-out infinite alternate; }
.scn-father-dies .smoke { position:absolute; bottom:35%; left:45%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 0%, rgba(200,200,200,0.4) 0%, rgba(200,200,200,0) 100%); filter: blur(8px); animation: fd3-smoke 6s ease-in-out infinite; }
.scn-father-dies .figure-silhouette { position:absolute; bottom:28%; left:55%; width:12px; height:25px; background: linear-gradient(180deg, #0a0e10 0%, #000204 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fd3-figure 4s ease-in-out infinite; }
.scn-father-dies .debris { position:absolute; bottom:30%; left:30%; width:8px; height:5px; background: #1a2a20; border-radius: 30%; box-shadow: 3px -4px 0 #2a3a20, -5px 2px 0 #1a2010; animation: fd3-debris 10s linear infinite; }

@keyframes fd3-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes fd3-water { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes fd3-fire { 0% { transform: scale(0.9); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.85; } }
@keyframes fd3-smoke { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-15px) scale(1.5); opacity:0.2; } 100% { transform: translateY(0) scale(1); opacity:0.6; } }
@keyframes fd3-figure { 0% { transform: translateX(0) translateY(0); } 30% { transform: translateX(-2px) translateY(-1px); } 60% { transform: translateX(1px) translateY(0); } 100% { transform: translateX(0) translateY(0); } }
@keyframes fd3-debris { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(15px) translateY(-5px) rotate(45deg); } 100% { transform: translateX(30px) translateY(-10px) rotate(90deg); } }

/* ============================================================
   scene: olinto-reveals (dark, dim-interior)
   ============================================================ */
.scn-olinto-reveals {
  background:
    linear-gradient(180deg, #1a1018 0%, #2a1820 30%, #140a10 60%),
    radial-gradient(ellipse at 50% 100%, #2a1820 0%, #0a0608 100%);
}
.scn-olinto-reveals .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a22 0%, #1a0e14 100%); }
.scn-olinto-reveals .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1018 0%, #0a060a 100%); box-shadow: inset 0 15px 30px rgba(0,0,0,0.6); }
.scn-olinto-reveals .chair { position:absolute; bottom:30%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #3a2828 0%, #1a1010 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform-origin: bottom center; animation: or4-chair 5s ease-in-out infinite; }
.scn-olinto-reveals .figure-olinto { position:absolute; bottom:30%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a18 0%, #0a0606 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: or4-figure 4s ease-in-out infinite; }
.scn-olinto-reveals .lamp { position:absolute; bottom:45%; left:30%; width:12px; height:20px; background: radial-gradient(circle at 50% 50%, #c08040 0%, #8a5a20 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 30px 8px rgba(192,128,64,0.6), 0 0 60px 15px rgba(192,128,64,0.3); animation: or4-lamp 2.5s ease-in-out infinite alternate; }
.scn-olinto-reveals .shadow-chair { position:absolute; bottom:20%; left:38%; width:35px; height:20px; background: rgba(0,0,0,0.5); border-radius: 40%; filter: blur(6px); animation: or4-shadow 5s ease-in-out infinite; }
.scn-olinto-reveals .curtains { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(180deg, #2a1a28 0%, #1a0e18 100%); box-shadow: 4px 0 12px rgba(0,0,0,0.5); animation: or4-curtains 12s ease-in-out infinite alternate; }

@keyframes or4-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes or4-figure { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 40% { transform: translateY(-1px) rotate(1deg) scaleY(1.01); } 70% { transform: translateY(1px) rotate(-1deg) scaleY(0.99); } 100% { transform: translateY(0) rotate(0deg) scaleY(1); } }
@keyframes or4-lamp { 0% { box-shadow: 0 0 20px 5px rgba(192,128,64,0.5); opacity:0.85; } 50% { box-shadow: 0 0 40px 12px rgba(192,128,64,0.8); opacity:1; } 100% { box-shadow: 0 0 25px 6px rgba(192,128,64,0.6); opacity:0.9; } }
@keyframes or4-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.1) translateX(2px); opacity:0.7; } 100% { transform: scaleX(1); opacity:0.5; } }
@keyframes or4-curtains { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }

/* CSS for each scene */

/* Scene: chief-of-police (tense, bright interior) */
.scn-chief-of-police {
  background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 40%, #a08870 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 50%);
}
.scn-chief-of-police .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d8c8b0 0%, #b8a890 100%);
}
.scn-chief-of-police .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: scp-floor 12s ease-in-out infinite alternate;
}
.scn-chief-of-police .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.4);
}
.scn-chief-of-police .chair {
  position: absolute; bottom: 28%; left: 38%; width: 80px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%);
  animation: scp-chair 8s ease-in-out infinite alternate;
}
.scn-chief-of-police .chief {
  position: absolute; bottom: 20%; left: 42%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: scp-chief 6s ease-in-out infinite alternate;
}
.scn-chief-of-police .lamp {
  position: absolute; bottom: 34%; left: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #c8b060 0%, #a89040 100%);
  border-radius: 4px 4px 20% 20%;
  box-shadow: 0 0 30px 8px #d0b050, 0 0 60px 15px rgba(200,176,80,0.4);
  animation: scp-lamp 3s ease-in-out infinite alternate;
}
.scn-chief-of-police .glow {
  position: absolute; bottom: 30%; left: 25%; width: 120px; height: 100px;
  background: radial-gradient(circle, #f0d880 0%, transparent 70%);
  filter: blur(10px);
  animation: scp-glow 4s ease-in-out infinite alternate;
}
.scn-chief-of-police .shadow {
  position: absolute; bottom: 0; left: 30%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: scp-shadow 8s ease-in-out infinite alternate;
}

@keyframes scp-floor { 0% { transform: scaleY(0.95); opacity: 0.9; } 50% { transform: scaleY(1.0); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.9; } }
@keyframes scp-chair { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes scp-chief { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes scp-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 4px #d0b050; } 50% { opacity: 1; box-shadow: 0 0 40px 10px #f0d060; } 100% { opacity: 0.85; box-shadow: 0 0 25px 6px #d0b050; } }
@keyframes scp-glow { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes scp-shadow { 0% { opacity: 0.3; transform: scaleX(0.9); } 50% { opacity: 0.5; transform: scaleX(1); } 100% { opacity: 0.3; transform: scaleX(0.9); } }

/* Scene: passport-torn (tense, bright interior) */
.scn-passport-torn {
  background: linear-gradient(180deg, #d8d0c0 0%, #b8a890 40%, #908070 100%),
              radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 50%);
}
.scn-passport-torn .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #c8b8a0 0%, #a89880 100%);
}
.scn-passport-torn .desk {
  position: absolute; bottom: 15%; right: 10%; left: 10%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
}
.scn-passport-torn .official {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: spt-official 5s ease-in-out infinite alternate;
}
.scn-passport-torn .arm {
  position: absolute; bottom: 45%; left: 30%; width: 50px; height: 14px;
  background: linear-gradient(0deg, #5a3a2a 0%, #7a5a4a 100%);
  border-radius: 50% 20% 20% 50%;
  transform-origin: 0% 50%;
  animation: spt-arm 2s ease-in-out infinite alternate;
}
.scn-passport-torn .torn-a {
  position: absolute; bottom: 40%; left: 40%; width: 30px; height: 20px;
  background: #f0e8d8;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: spt-torn-a 3s ease-in-out infinite;
}
.scn-passport-torn .torn-b {
  position: absolute; bottom: 35%; left: 55%; width: 25px; height: 18px;
  background: #ede0c8;
  transform: rotate(-20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: spt-torn-b 4s ease-in-out infinite;
}
.scn-passport-torn .glare {
  position: absolute; bottom: 30%; left: 35%; width: 100px; height: 100px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 60%);
  filter: blur(12px);
  animation: spt-glare 6s ease-in-out infinite alternate;
}
.scn-passport-torn .shadow {
  position: absolute; bottom: 0; left: 15%; width: 100px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  animation: spt-shadow 8s ease-in-out infinite alternate;
}

@keyframes spt-official { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes spt-arm { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(40deg) translateX(5px); } 100% { transform: rotate(30deg) translateX(0); } }
@keyframes spt-torn-a { 0% { transform: rotate(15deg) translateX(0) translateY(0); opacity: 1; } 25% { transform: rotate(20deg) translateX(10px) translateY(-5px); opacity: 0.8; } 50% { transform: rotate(10deg) translateX(20px) translateY(-10px); opacity: 0.6; } 75% { transform: rotate(5deg) translateX(30px) translateY(-15px); opacity: 0.4; } 100% { transform: rotate(0deg) translateX(40px) translateY(-20px); opacity: 0.2; } }
@keyframes spt-torn-b { 0% { transform: rotate(-20deg) translateX(0) translateY(0); opacity: 1; } 25% { transform: rotate(-15deg) translateX(-8px) translateY(6px); opacity: 0.8; } 50% { transform: rotate(-10deg) translateX(-16px) translateY(12px); opacity: 0.6; } 75% { transform: rotate(-5deg) translateX(-24px) translateY(18px); opacity: 0.4; } 100% { transform: rotate(0deg) translateX(-32px) translateY(24px); opacity: 0.2; } }
@keyframes spt-glare { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); } }
@keyframes spt-shadow { 0% { opacity: 0.2; transform: scaleX(0.8); } 50% { opacity: 0.4; transform: scaleX(1.1); } 100% { opacity: 0.2; transform: scaleX(0.8); } }

/* Scene: czar-letter-revealed (tense, bright interior) */
.scn-czar-letter-revealed {
  background: linear-gradient(180deg, #d0c8b8 0%, #b0a090 40%, #887868 100%),
              radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 50%);
}
.scn-czar-letter-revealed .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #c0b0a0 0%, #a09080 100%);
}
.scn-czar-letter-revealed .desk {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 15px rgba(0,0,0,0.3);
}
.scn-czar-letter-revealed .hand {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #d0b090 0%, #b09070 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: 50% 100%;
  animation: sclr-hand 4s ease-in-out infinite alternate;
}
.scn-czar-letter-revealed .letter {
  position: absolute; bottom: 30%; left: 40%; width: 70px; height: 45px;
  background: #f0e8d8;
  border: 1px solid #d8c8b0;
  transform: rotate(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: sclr-letter 5s ease-in-out infinite alternate;
}
.scn-czar-letter-revealed .officer-left {
  position: absolute; bottom: 15%; left: 5%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: sclr-officer 7s ease-in-out infinite alternate;
}
.scn-czar-letter-revealed .officer-right {
  position: absolute; bottom: 15%; right: 5%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: sclr-officer 7s ease-in-out infinite alternate-reverse;
}
.scn-czar-letter-revealed .glow {
  position: absolute; bottom: 25%; left: 35%; width: 120px; height: 100px;
  background: radial-gradient(circle, #fff0d0 0%, transparent 70%);
  filter: blur(15px);
  animation: sclr-glow 6s ease-in-out infinite alternate;
}

@keyframes sclr-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes sclr-letter { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes sclr-officer { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sclr-glow { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 0.9; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }

/* Scene: passport-mended (calm, bright interior) */
.scn-passport-mended {
  background: linear-gradient(180deg, #e0d8d0 0%, #c8b8b0 40%, #a89888 100%),
              radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 50%);
}
.scn-passport-mended .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #d0c8c0 0%, #b8b0a8 100%);
}
.scn-passport-mended .desk {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 15px rgba(0,0,0,0.15);
}
.scn-passport-mended .hand {
  position: absolute; bottom: 32%; left: 38%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #d0b8a0 0%, #b09880 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: 50% 100%;
  animation: spm-hand 8s ease-in-out infinite alternate;
}
.scn-passport-mended .passport {
  position: absolute; bottom: 28%; left: 45%; width: 60px; height: 40px;
  background: #f0e8e0;
  border: 1px solid #d0c8c0;
  transform: rotate(-3deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  animation: spm-passport 10s ease-in-out infinite alternate;
}
.scn-passport-mended .stamp {
  position: absolute; bottom: 30%; left: 55%; width: 16px; height: 16px;
  background: radial-gradient(circle, #8a7a6a 30%, transparent 70%);
  border: 2px solid #6a5a4a;
  border-radius: 50%;
  animation: spm-stamp 12s ease-in-out infinite;
}
.scn-passport-mended .inkwell {
  position: absolute; bottom: 20%; right: 20%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 20% 20%;
  animation: spm-inkwell 15s ease-in-out infinite alternate;
}
.scn-passport-mended .light {
  position: absolute; bottom: 25%; left: 30%; width: 150px; height: 120px;
  background: radial-gradient(circle, #fff8f0 0%, transparent 70%);
  filter: blur(20px);
  opacity: 0.4;
  animation: spm-light 6s ease-in-out infinite alternate;
}

@keyframes spm-hand { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes spm-passport { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.01); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes spm-stamp { 0% { transform: rotate(0deg) translateY(0); opacity: 0.8; } 50% { transform: rotate(10deg) translateY(-2px); opacity: 1; } 100% { transform: rotate(0deg) translateY(0); opacity: 0.8; } }
@keyframes spm-inkwell { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes spm-light { 0% { opacity: 0.3; transform: scale(0.95); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.35; transform: scale(0.95); } }

/* Scene: assassination-charge (ac1) */
.scn-assassination-charge {
  background: linear-gradient(135deg, #d4c4a8 0%, #b8a68a 40%, #9a8a72 100%), radial-gradient(ellipse at 30% 50%, #e8d8b8 0%, transparent 60%);
}
.scn-assassination-charge .floor {
  position: absolute; inset: auto 0 0 0; height: 40%; background: linear-gradient(180deg, #7a6a52 0%, #5a4a3a 100%); border-radius: 0 0 0 0;
  animation: ac1-floor 8s ease-in-out infinite alternate;
}
.scn-assassination-charge .wall {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #c8b89a 0%, #b0a082 100%);
  animation: ac1-wall 12s ease-in-out infinite alternate;
}
.scn-assassination-charge .desk {
  position: absolute; bottom: 30%; left: 25%; width: 45%; height: 16%; background: linear-gradient(180deg, #6a4a2a 0%, #4a321a 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: ac1-desk 10s ease-in-out infinite;
}
.scn-assassination-charge .lamp-glow {
  position: absolute; bottom: 44%; left: 38%; width: 50px; height: 50px; background: radial-gradient(circle, #ffd080 0%, #e8b060 30%, transparent 70%); border-radius: 50%;
  animation: ac1-glow 3s ease-in-out infinite alternate;
}
.scn-assassination-charge .lamp-shade {
  position: absolute; bottom: 46%; left: 36%; width: 60px; height: 30px; background: linear-gradient(180deg, #b08040 0%, #8a6020 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center;
  animation: ac1-shade 5s ease-in-out infinite;
}
.scn-assassination-charge .figure-sit {
  position: absolute; bottom: 26%; left: 28%; width: 40px; height: 80px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ac1-figure 6s ease-in-out infinite;
}
.scn-assassination-charge .document {
  position: absolute; bottom: 32%; left: 32%; width: 50px; height: 35px; background: linear-gradient(135deg, #e8d8b8 0%, #c8b89a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: ac1-doc 4s ease-in-out infinite;
}
.scn-assassination-charge .shadow-stripe {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(0,0,0,.1) 30px, rgba(0,0,0,.1) 35px);
  animation: ac1-stripe 15s linear infinite;
}
@keyframes ac1-floor { 0% { opacity: .9; transform: translateY(0); } 50% { opacity: .95; transform: translateY(-2px); } 100% { opacity: .9; transform: translateY(0); } }
@keyframes ac1-wall { 0% { opacity: .85; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes ac1-desk { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ac1-glow { 0% { opacity: .7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .8; transform: scale(1); } }
@keyframes ac1-shade { 0% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-3deg) scaleY(1); } }
@keyframes ac1-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(4px) translateY(0) rotate(-1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes ac1-doc { 0% { transform: translateX(0) rotate(0deg); opacity: .8; } 50% { transform: translateX(3px) rotate(2deg); opacity: 1; } 100% { transform: translateX(0) rotate(0deg); opacity: .8; } }
@keyframes ac1-stripe { 0% { background-position: 0 0; } 100% { background-position: 35px 0; } }

/* Scene: blind-shot-hits (bh2) */
.scn-blind-shot-hits {
  background: linear-gradient(180deg, #d4c0a8 0%, #b8a088 30%, #9a8872 100%), radial-gradient(ellipse at 60% 60%, #c8b098 0%, transparent 60%);
}
.scn-blind-shot-hits .wall-panel {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #b8a088 0%, #a08a72 100%); border-radius: 0 0 4px 4px;
  animation: bh2-wall 10s ease-in-out infinite alternate;
}
.scn-blind-shot-hits .hand-gun {
  position: absolute; bottom: 38%; left: 35%; width: 70px; height: 20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 10% 10% / 50% 50% 40% 40%; transform-origin: left center;
  animation: bh2-gun 0.8s ease-in-out infinite;
}
.scn-blind-shot-hits .bullet-haze {
  position: absolute; bottom: 42%; left: 60%; width: 60px; height: 60px; background: radial-gradient(circle, rgba(255,200,100,.6) 0%, rgba(255,180,80,.2) 30%, transparent 70%); border-radius: 50%;
  animation: bh2-haze 0.6s ease-out infinite;
}
.scn-blind-shot-hits .target-center {
  position: absolute; bottom: 32%; right: 20%; width: 80px; height: 80px; background: radial-gradient(circle, #8a2020 0%, #5a1212 40%, #3a0a0a 100); border-radius: 50%; box-shadow: 0 0 0 4px #a03838 inset;
  animation: bh2-target 4s ease-in-out infinite;
}
.scn-blind-shot-hits .crack-line {
  position: absolute; bottom: 32%; right: 18%; width: 120px; height: 4px; background: #4a3a2a; border-radius: 2px; transform-origin: left center;
  animation: bh2-crack 3s ease-in-out infinite;
}
.scn-blind-shot-hits .shadow-fig {
  position: absolute; bottom: 20%; left: 15%; width: 50px; height: 100px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: bh2-fig 9s ease-in-out infinite;
}
.scn-blind-shot-hits .debris {
  position: absolute; bottom: 30%; right: 35%; width: 8px; height: 8px; background: #6a4a3a; border-radius: 50%;
  animation: bh2-debris 1.2s ease-out infinite;
}
@keyframes bh2-wall { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .8; } }
@keyframes bh2-gun { 0% { transform: rotate(-20deg) translateY(0); } 25% { transform: rotate(-15deg) translateY(-1px); } 50% { transform: rotate(-25deg) translateY(0); } 75% { transform: rotate(-18deg) translateY(1px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes bh2-haze { 0% { opacity: .8; transform: scale(0.5); } 50% { opacity: .3; transform: scale(1.5); } 100% { opacity: 0; transform: scale(2); } }
@keyframes bh2-target { 0% { transform: scale(1); box-shadow: 0 0 0 4px #a03838 inset; } 50% { transform: scale(1.03); box-shadow: 0 0 0 8px #c04848 inset; } 100% { transform: scale(1); box-shadow: 0 0 0 4px #a03838 inset; } }
@keyframes bh2-crack { 0% { transform: rotate(0deg) scaleX(0.8); opacity: .6; } 50% { transform: rotate(10deg) scaleX(1.2); opacity: 1; } 100% { transform: rotate(0deg) scaleX(0.8); opacity: .6; } }
@keyframes bh2-fig { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bh2-debris { 0% { transform: translate(0,0) scale(1); opacity: .8; } 100% { transform: translate(-20px, -30px) scale(0.2); opacity: 0; } }

/* Scene: oberg-scoffs (os3) */
.scn-oberg-scoffs {
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 40%, #1a0e0e 100%), radial-gradient(ellipse at 50% 70%, #5a3a2a 0%, transparent 60%);
}
.scn-oberg-scoffs .room-bg {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #4a3a32 0%, #3a2a22 100%);
  animation: os3-room 15s ease-in-out infinite alternate;
}
.scn-oberg-scoffs .desk-dark {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 18%; background: linear-gradient(180deg, #2a1a12 0%, #1a0a06 100%); border-radius: 6px; box-shadow: 0 6px 20px rgba(0,0,0,.7);
  animation: os3-desk 12s ease-in-out infinite;
}
.scn-oberg-scoffs .candle-glow {
  position: absolute; bottom: 42%; left: 45%; width: 40px; height: 40px; background: radial-gradient(circle, #ffa060 0%, #e08030 30%, transparent 70%); border-radius: 50%;
  animation: os3-glow 4s ease-in-out infinite alternate;
}
.scn-oberg-scoffs .candle-stick {
  position: absolute; bottom: 38%; left: 43%; width: 12px; height: 30px; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 10% 10% 4px 4px;
  animation: os3-candle 5s ease-in-out infinite;
}
.scn-oberg-scoffs .oberg-head {
  position: absolute; bottom: 35%; right: 30%; width: 30px; height: 50px; background: linear-gradient(180deg, #2a1a12 0%, #1a0a06 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center;
  animation: os3-head 9s ease-in-out infinite;
}
.scn-oberg-scoffs .hand-clasp {
  position: absolute; bottom: 28%; right: 20%; width: 40px; height: 15px; background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 100%); border-radius: 40% 30% 20% 20% / 60% 50% 40% 40%;
  animation: os3-hand 7s ease-in-out infinite;
}
.scn-oberg-scoffs .wall-shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 40%, transparent 40%, rgba(0,0,0,.4) 100%);
  animation: os3-shadow 20s ease-in-out infinite alternate;
}
@keyframes os3-room { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .8; } }
@keyframes os3-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes os3-glow { 0% { opacity: .6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .7; transform: scale(0.95); } }
@keyframes os3-candle { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes os3-head { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes os3-hand { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes os3-shadow { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .7; } }

/* Scene: direct-charge (dc4) */
.scn-direct-charge {
  background: linear-gradient(180deg, #d4c4b0 0%, #b8a890 40%, #9a8a72 100%), radial-gradient(ellipse at 50% 80%, #e8dcc8 0%, transparent 60%);
}
.scn-direct-charge .floor-tiles {
  position: absolute; inset: auto 0 0 0; height: 35%; background: linear-gradient(90deg, #8a7a62 0%, #7a6a52 100%); background-size: 20px 20px, 20px 20px; background-image: linear-gradient(90deg, #9a8a72 1px, transparent 1px), linear-gradient(0deg, #9a8a72 1px, transparent 1px);
  animation: dc4-floor 18s linear infinite;
}
.scn-direct-charge .back-wall {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #c8b8a0 0%, #b0a088 100%);
  animation: dc4-wall 14s ease-in-out infinite alternate;
}
.scn-direct-charge .table {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 14%; background: linear-gradient(180deg, #6a4a2a 0%, #4a321a 100%); border-radius: 6px; box-shadow: 0 6px 20px rgba(0,0,0,.4);
  animation: dc4-table 10s ease-in-out infinite;
}
.scn-direct-charge .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 100px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: dc4-left 7s ease-in-out infinite;
}
.scn-direct-charge .figure-right {
  position: absolute; bottom: 22%; right: 25%; width: 40px; 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: dc4-right 9s ease-in-out infinite;
}
.scn-direct-charge .lamp-overhead {
  position: absolute; top: 8%; left: 45%; width: 40px; height: 60px; background: radial-gradient(ellipse at 50% 100%, #ffe0b0 0%, transparent 70%); border-radius: 50%;
  animation: dc4-lamp 5s ease-in-out infinite alternate;
}
.scn-direct-charge .shadow-puddle {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.3) 0%, transparent 70%);
  animation: dc4-puddle 20s ease-in-out infinite;
}
.scn-direct-charge .paper-fall {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 25px; background: #e8d8b8; border-radius: 2px;
  animation: dc4-paper 3s linear infinite;
}
@keyframes dc4-floor { 0% { background-position: 0 0; } 100% { background-position: 20px 20px; } }
@keyframes dc4-wall { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .8; } }
@keyframes dc4-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px) rotate(0.3deg); } 100% { transform: translateY(0); } }
@keyframes dc4-left { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dc4-right { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-4px) rotate(0deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(3px) rotate(0deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes dc4-lamp { 0% { opacity: .7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .8; transform: scale(1); } }
@keyframes dc4-puddle { 0% { opacity: .6; transform: scaleY(1); } 50% { opacity: .8; transform: scaleY(1.1); } 100% { opacity: .6; transform: scaleY(1); } }
@keyframes dc4-paper { 0% { transform: translateY(0) rotate(0deg); opacity: .8; } 50% { transform: translateY(30px) rotate(15deg); opacity: .4; } 100% { transform: translateY(60px) rotate(30deg); opacity: 0; } }

.scn-fellow-traveler {
  background: linear-gradient(180deg, #e8e0d0 0%, #d4c8b0 40%, #c0b098 100%), radial-gradient(ellipse at 30% 20%, #f0e8d8 0%, transparent 60%);
}
.scn-fellow-traveler .window-out { position:absolute; top:5%; left:5%; width:45%; height:50%; background: linear-gradient(180deg, #b8c8d8 0%, #a0b0c0 100%); border-radius: 4px; border: 3px solid #6a5a4a; box-shadow: inset 0 0 12px rgba(0,0,0,.15); animation: ft-sky 20s ease-in-out infinite alternate; }
.scn-fellow-traveler .seat-l { position:absolute; bottom:18%; left:8%; width:28%; height:35%; background: linear-gradient(135deg, #8a7050 0%, #6a5a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,.2); animation: ft-seat 8s ease-in-out infinite alternate; }
.scn-fellow-traveler .seat-r { position:absolute; bottom:18%; right:8%; width:28%; height:35%; background: linear-gradient(135deg, #8a7050 0%, #6a5a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,.2); animation: ft-seat 8s ease-in-out infinite alternate-reverse; }
.scn-fellow-traveler .figure-t { position:absolute; bottom:22%; left:14%; width:14%; height:30%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ft-fig1 6s ease-in-out infinite; }
.scn-fellow-traveler .figure-v { position:absolute; bottom:20%; right:16%; width:16%; height:34%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ft-fig2 7s ease-in-out infinite alternate; }
.scn-fellow-traveler .tea-cup { position:absolute; bottom:26%; left:26%; width:8%; height:6%; background: radial-gradient(circle, #e0e0e0 0%, #c0c0c0 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: ft-cup 4s ease-in-out infinite; }
.scn-fellow-traveler .luggage { position:absolute; bottom:12%; right:5%; width:16%; height:14%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 3px 6px rgba(0,0,0,.3); animation: ft-lug 12s ease-in-out infinite; }
.scn-fellow-traveler .curtain-a { position:absolute; top:5%; left:4%; width:8%; height:50%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 0 4px 4px 0; filter: blur(1px); animation: ft-curt 15s ease-in-out infinite alternate; }
.scn-fellow-traveler .curtain-b { position:absolute; top:5%; left:50%; width:8%; height:50%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 4px 0 0 4px; filter: blur(1px); animation: ft-curt 15s ease-in-out infinite alternate-reverse; }
@keyframes ft-sky { 0% { opacity:0.7; } 50% { opacity:0.9; background: linear-gradient(180deg, #b0c0d0 0%, #90a0b0 100%); } 100% { opacity:0.75; } }
@keyframes ft-seat { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ft-fig1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ft-fig2 { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(-1deg); } 66% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes ft-cup { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ft-lug { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ft-curt { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }

.scn-spy-suspect {
  background: linear-gradient(180deg, #c8c0b0 0%, #b0a090 40%, #988878 100%), radial-gradient(ellipse at 50% 30%, #e0d8c8 0%, transparent 70%);
}
.scn-spy-suspect .comp-wall { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%); opacity:0.6; filter: blur(10px); animation: ss-wall 8s ease-in-out infinite alternate; }
.scn-spy-suspect .seat-l { position:absolute; bottom:18%; left:8%; width:30%; height:38%; background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,.25); animation: ss-seat 6s ease-in-out infinite alternate; }
.scn-spy-suspect .seat-r { position:absolute; bottom:18%; right:8%; width:30%; height:38%; background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,.25); animation: ss-seat 6s ease-in-out infinite alternate-reverse; }
.scn-spy-suspect .figure-d { position:absolute; bottom:22%; left:16%; width:15%; height:32%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-fig1 3s ease-in-out infinite; }
.scn-spy-suspect .figure-s { position:absolute; bottom:20%; right:16%; width:17%; height:36%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-fig2 2s ease-in-out infinite alternate; }
.scn-spy-suspect .shadow-bar { position:absolute; top:30%; left:40%; width:20%; height:8%; background: rgba(0,0,0,.15); filter: blur(5px); animation: ss-shadow 4s ease-in-out infinite alternate; }
.scn-spy-suspect .eye-glint { position:absolute; top:36%; right:27%; width:3%; height:3%; background: radial-gradient(circle, #f0e0c0 0%, #c0a080 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(240,224,192,.5); animation: ss-glint 1.5s ease-in-out infinite; }
.scn-spy-suspect .bag-small { position:absolute; bottom:14%; left:6%; width:14%; height:12%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 3px 6px rgba(0,0,0,.3); animation: ss-bag 10s ease-in-out infinite; }
@keyframes ss-wall { 0% { opacity:0.5; } 50% { opacity:0.7; filter: blur(12px); } 100% { opacity:0.6; } }
@keyframes ss-seat { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ss-fig1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ss-fig2 { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(-1px) rotate(-2deg) scale(0.98); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes ss-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(4px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes ss-glint { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(0.8); } }
@keyframes ss-bag { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-hotel-europe-watch {
  background: linear-gradient(180deg, #d8d0c0 0%, #c0b8a8 40%, #a89888 100%), radial-gradient(ellipse at 80% 20%, #e8e0d0 0%, transparent 60%);
}
.scn-hotel-europe-watch .room-wall { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(90deg, #8a7a6a 0%, #a89888 50%, #8a7a6a 100%); opacity:0.5; filter: blur(12px); animation: he-wall 10s ease-in-out infinite alternate; }
.scn-hotel-europe-watch .window-frame { position:absolute; top:8%; left:10%; width:55%; height:65%; background: linear-gradient(180deg, #b0a090 0%, #908070 100%); border-radius: 6px; border: 4px solid #4a3a2a; box-shadow: inset 0 0 20px rgba(0,0,0,.2); animation: he-frame 6s ease-in-out infinite alternate; }
.scn-hotel-europe-watch .street-back { position:absolute; top:10%; left:12%; width:51%; height:61%; background: linear-gradient(180deg, #a0b0b8 0%, #889898 100%); border-radius: 4px; animation: he-street 15s ease-in-out infinite alternate; }
.scn-hotel-europe-watch .figure-w { position:absolute; bottom:12%; left:30%; width:14%; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: he-fig1 4s ease-in-out infinite; }
.scn-hotel-europe-watch .spy-fig { position:absolute; bottom:24%; right:15%; width:10%; height:22%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: he-spy 3s ease-in-out infinite alternate; }
.scn-hotel-europe-watch .lamp-glow { position:absolute; top:20%; left:55%; width:12%; height:10%; background: radial-gradient(circle, #f0e0b0 0%, #d0b080 60%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: he-glow 5s ease-in-out infinite; }
.scn-hotel-europe-watch .curtain-left { position:absolute; top:8%; left:8%; width:8%; height:65%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0 4px 4px 0; filter: blur(1px); animation: he-curt 12s ease-in-out infinite alternate; }
.scn-hotel-europe-watch .curtain-right { position:absolute; top:8%; left:58%; width:8%; height:65%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px 0 0 4px; filter: blur(1px); animation: he-curt 12s ease-in-out infinite alternate-reverse; }
@keyframes he-wall { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.02); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes he-frame { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes he-street { 0% { opacity:0.7; } 50% { opacity:0.9; background: linear-gradient(180deg, #90a0a8 0%, #788888 100%); } 100% { opacity:0.7; } }
@keyframes he-fig1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes he-spy { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(-2px) rotate(-3deg) scale(0.95); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes he-glow { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.9); } }
@keyframes he-curt { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }

.scn-escape-through-kitchen {
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 40%, #887868 100%), radial-gradient(ellipse at 50% 10%, #d8c8b0 0%, transparent 70%);
}
.scn-escape-through-kitchen .kit-wall { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(90deg, #7a6a5a 0%, #9a8a7a 50%, #7a6a5a 100%); opacity:0.7; filter: blur(8px); animation: ek-wall 9s ease-in-out infinite alternate; }
.scn-escape-through-kitchen .counter { position:absolute; bottom:15%; left:5%; width:60%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: ek-counter 5s ease-in-out infinite alternate; }
.scn-escape-through-kitchen .pot { position:absolute; bottom:28%; left:20%; width:16%; height:18%; background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ek-pot 4s ease-in-out infinite; }
.scn-escape-through-kitchen .door-open { position:absolute; bottom:5%; right:12%; width:20%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: ek-door 7s ease-in-out infinite alternate; }
.scn-escape-through-kitchen .figure-e { position:absolute; bottom:10%; left:35%; width:12%; height:28%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ek-fig 3s ease-in-out infinite; }
.scn-escape-through-kitchen .steam { position:absolute; top:10%; left:22%; width:10%; height:18%; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,0) 100%); filter: blur(4px); border-radius: 50%; animation: ek-steam 6s ease-in-out infinite; }
.scn-escape-through-kitchen .shelf { position:absolute; top:25%; left:5%; width:50%; height:4%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: ek-shelf 8s ease-in-out infinite alternate; }
.scn-escape-through-kitchen .knife-rack { position:absolute; top:30%; left:8%; width:8%; height:14%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ek-knife 5s ease-in-out infinite alternate; }
@keyframes ek-wall { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.01); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes ek-counter { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ek-pot { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ek-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes ek-fig { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ek-steam { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-10px) scale(1.2); opacity:0.6; } 100% { transform: translateY(0) scale(1); opacity:0.3; } }
@keyframes ek-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ek-knife { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* identification-mistake */
.scn-identification-mistake {
  background:
    linear-gradient(180deg, #0c0a15 0%, #1a1425 40%, #2a1c30 100%),
    radial-gradient(ellipse at 30% 80%, #3a2845 0%, transparent 60%);
}
.scn-identification-mistake .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e0b18 0%, #211a2e 50%, #0f0c14 100%);
  opacity: 0.9;
  animation: id1-bg 6s ease-in-out infinite alternate;
}
.scn-identification-mistake .lamp {
  position: absolute; top: 30%; left: 25%;
  width: 30px; height: 40px;
  background: radial-gradient(circle at center, #ffd080 0%, #b8860b 60%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(255,208,128,0.4), 0 0 80px 40px rgba(255,208,128,0.15);
  animation: id1-lamp 3s ease-in-out infinite alternate;
}
.scn-identification-mistake .figure {
  position: absolute; bottom: 25%; left: 20%;
  width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a2238 0%, #140f1c 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: id1-figure 4s ease-in-out infinite;
}
.scn-identification-mistake .dead {
  position: absolute; bottom: 15%; left: 35%;
  width: 80px; height: 30px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6);
  transform: rotate(2deg);
  animation: id1-dead 5s ease-in-out infinite alternate;
}
.scn-identification-mistake .sheet {
  position: absolute; bottom: 18%; left: 45%;
  width: 50px; height: 12px;
  background: linear-gradient(180deg, #d4c9b5 0%, #a79a84 100%);
  border-radius: 40% 40% 10% 10%;
  opacity: 0.6;
  filter: blur(1px);
  animation: id1-sheet 8s ease-in-out infinite;
}
.scn-identification-mistake .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #0a0812 100%);
  animation: id1-shadow 12s ease-in-out infinite alternate;
}
@keyframes id1-bg {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.9; }
}
@keyframes id1-lamp {
  0% { box-shadow: 0 0 30px 15px rgba(255,208,128,0.3), 0 0 60px 30px rgba(255,208,128,0.1); filter: brightness(0.9); }
  50% { box-shadow: 0 0 50px 25px rgba(255,208,128,0.5), 0 0 100px 50px rgba(255,208,128,0.2); filter: brightness(1.1); }
  100% { box-shadow: 0 0 35px 18px rgba(255,208,128,0.35), 0 0 70px 35px rgba(255,208,128,0.12); filter: brightness(0.95); }
}
@keyframes id1-figure {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-6deg) translateY(-1px); }
  100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes id1-dead {
  0% { opacity: 0.7; transform: translateX(0) rotate(2deg); }
  50% { opacity: 0.85; transform: translateX(1px) rotate(3deg); }
  100% { opacity: 0.75; transform: translateX(0) rotate(1deg); }
}
@keyframes id1-sheet {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.02); }
  100% { opacity: 0.55; transform: scaleX(0.98); }
}
@keyframes id1-shadow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

/* italian-dagger */
.scn-italian-dagger {
  background:
    linear-gradient(180deg, #0f0e14 0%, #1c1725 40%, #2a1c30 100%),
    radial-gradient(ellipse at 60% 50%, #3a2030 0%, transparent 70%);
}
.scn-italian-dagger .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12101c 0%, #221c30 50%, #0e0a14 100%);
  animation: id2-bg 6s ease-in-out infinite alternate;
}
.scn-italian-dagger .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #3a2e28 0%, #1e1814 100%);
  border-radius: 10px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(10deg);
  animation: id2-table 8s ease-in-out infinite;
}
.scn-italian-dagger .hand {
  position: absolute; bottom: 25%; left: 35%;
  width: 50px; height: 50px;
  background: linear-gradient(180deg, #d4b89a 0%, #a68b72 100%);
  border-radius: 40% 40% 30% 30%;
  filter: blur(2px);
  animation: id2-hand 4s ease-in-out infinite alternate;
}
.scn-italian-dagger .dagger {
  position: absolute; bottom: 28%; left: 45%;
  width: 80px; height: 6px;
  background: linear-gradient(90deg, #e0d4c0 0%, #b8aa94 30%, #6a5a4a 60%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-30deg) translateX(-10px);
  box-shadow: 0 0 4px 2px rgba(200,180,160,0.3);
  animation: id2-dagger 3s ease-in-out infinite;
}
.scn-italian-dagger .blade-glow {
  position: absolute; bottom: 27%; left: 50%;
  width: 40px; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(220,200,180,0.3), transparent);
  filter: blur(3px);
  transform: rotate(-30deg) translateX(-10px);
  animation: id2-blade 2s ease-in-out infinite alternate;
}
.scn-italian-dagger .blood {
  position: absolute; bottom: 22%; left: 52%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #a63a2a 0%, #5e1a1d 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 3px rgba(166,58,42,0.4);
  animation: id2-blood 5s ease-in-out infinite;
}
.scn-italian-dagger .dust {
  position: absolute; top: 10%; left: 20%;
  width: 60px; height: 10px;
  background: linear-gradient(180deg, rgba(200,180,160,0.1) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: id2-dust 20s linear infinite;
}
@keyframes id2-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes id2-table {
  0% { transform: perspective(400px) rotateX(10deg) scale(1); }
  50% { transform: perspective(400px) rotateX(12deg) scale(1.01); }
  100% { transform: perspective(400px) rotateX(9deg) scale(1); }
}
@keyframes id2-hand {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes id2-dagger {
  0% { transform: rotate(-30deg) translateX(-10px) translateY(0); }
  50% { transform: rotate(-31deg) translateX(-9px) translateY(-1px); }
  100% { transform: rotate(-29deg) translateX(-10px) translateY(0); }
}
@keyframes id2-blade {
  0% { opacity: 0.4; filter: blur(3px) brightness(1); }
  50% { opacity: 0.7; filter: blur(2px) brightness(1.2); }
  100% { opacity: 0.5; filter: blur(3px) brightness(1); }
}
@keyframes id2-blood {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.7; }
}
@keyframes id2-dust {
  0% { transform: translateX(-30px) rotate(0deg); }
  100% { transform: translateX(120vw) rotate(20deg); }
}

/* stiletto-evidence */
.scn-stiletto-evidence {
  background:
    linear-gradient(180deg, #0a0912 0%, #151124 40%, #1f1730 100%),
    radial-gradient(ellipse at 40% 70%, #2a1c40 0%, transparent 60%);
}
.scn-stiletto-evidence .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0c0a16 0%, #1a1428 50%, #0e0b12 100%);
  animation: id3-bg 7s ease-in-out infinite alternate;
}
.scn-stiletto-evidence .table {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #2e241e 0%, #1c1410 100%);
  border-radius: 8px;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateX(15deg);
  animation: id3-table 5s ease-in-out infinite;
}
.scn-stiletto-evidence .stiletto {
  position: absolute; bottom: 25%; left: 40%;
  width: 70px; height: 5px;
  background: linear-gradient(90deg, #c8b8a8 0%, #8a7a6a 40%, #4a3a2a 70%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  box-shadow: 0 0 3px 1px rgba(200,180,160,0.3);
  animation: id3-stiletto 4s ease-in-out infinite alternate;
}
.scn-stiletto-evidence .face-silhouette {
  position: absolute; bottom: 12%; left: 25%;
  width: 50px; height: 40px;
  background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%);
  border-radius: 40% 40% 20% 20%;
  filter: blur(2px);
  animation: id3-face 6s ease-in-out infinite;
}
.scn-stiletto-evidence .candle {
  position: absolute; bottom: 35%; left: 60%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8d8c0 0%, #b8a080 50%, #4a3a2a 100%);
  border-radius: 2px 2px 5px 5px;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.3);
  animation: id3-candle 3s ease-in-out infinite;
}
.scn-stiletto-evidence .candle-glow {
  position: absolute; bottom: 45%; left: 58%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.6;
  animation: id3-glow 2s ease-in-out infinite alternate;
}
.scn-stiletto-evidence .drop {
  position: absolute; bottom: 20%; left: 48%;
  width: 4px; height: 6px;
  background: radial-gradient(circle, #a63a2a 0%, #5e1a1d 100%);
  border-radius: 50%;
  animation: id3-drop 4s ease-in-out infinite;
}
@keyframes id3-bg {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.88; }
}
@keyframes id3-table {
  0% { transform: perspective(300px) rotateX(15deg) scale(1); }
  50% { transform: perspective(300px) rotateX(16deg) scale(1.01); }
  100% { transform: perspective(300px) rotateX(14deg) scale(0.99); }
}
@keyframes id3-stiletto {
  0% { transform: rotate(20deg) translateX(0) translateY(0); }
  50% { transform: rotate(21deg) translateX(1px) translateY(-1px); }
  100% { transform: rotate(19deg) translateX(-1px) translateY(0); }
}
@keyframes id3-face {
  0% { opacity: 0.5; filter: blur(2px); transform: translateY(0); }
  50% { opacity: 0.7; filter: blur(1px); transform: translateY(-1px); }
  100% { opacity: 0.55; filter: blur(2px); transform: translateY(0); }
}
@keyframes id3-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.05) scaleX(0.95); opacity: 1; }
  100% { transform: scaleY(0.98); opacity: 0.85; }
}
@keyframes id3-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(1.05); }
}
@keyframes id3-drop {
  0% { transform: translateY(0) scale(1); opacity: 0.7; }
  50% { transform: translateY(-2px) scale(1.3); opacity: 1; }
  100% { transform: translateY(0) scale(0.9); opacity: 0.6; }
}

/* regret-and-vengeance */
.scn-regret-and-vengeance {
  background:
    linear-gradient(180deg, #0b0a12 0%, #161228 40%, #221830 100%),
    radial-gradient(ellipse at 50% 80%, #2a1c40 0%, transparent 60%);
}
.scn-regret-and-vengeance .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e0b16 0%, #1a1428 50%, #0c0a12 100%);
  animation: id4-bg 8s ease-in-out infinite alternate;
}
.scn-regret-and-vengeance .bed {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #3a2e28 0%, #1e1814 100%);
  border-radius: 20px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: id4-bed 6s ease-in-out infinite;
}
.scn-regret-and-vengeance .figure {
  position: absolute; bottom: 18%; left: 30%;
  width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a2238 0%, #140f1c 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: id4-figure 5s ease-in-out infinite;
}
.scn-regret-and-vengeance .sheet {
  position: absolute; bottom: 14%; left: 35%;
  width: 70px; height: 20px;
  background: linear-gradient(180deg, #d4c9b5 0%, #a79a84 100%);
  border-radius: 40% 40% 10% 10%;
  opacity: 0.5;
  filter: blur(1px);
  transform: rotate(5deg);
  animation: id4-sheet 7s ease-in-out infinite alternate;
}
.scn-regret-and-vengeance .candle {
  position: absolute; bottom: 40%; left: 55%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8d8c0 0%, #b8a080 50%, #4a3a2a 100%);
  border-radius: 2px 2px 5px 5px;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.3);
  animation: id4-candle 3s ease-in-out infinite;
}
.scn-regret-and-vengeance .candle-glow {
  position: absolute; bottom: 50%; left: 53%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.5;
  animation: id4-glow 2.5s ease-in-out infinite alternate;
}
.scn-regret-and-vengeance .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #0a0812 80%);
  animation: id4-shadow 10s ease-in-out infinite alternate;
}
@keyframes id4-bg {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.88; }
}
@keyframes id4-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes id4-figure {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-11deg) translateY(-2px); }
  100% { transform: rotate(-9deg) translateY(0); }
}
@keyframes id4-sheet {
  0% { transform: rotate(5deg) scaleX(1); opacity: 0.4; }
  50% { transform: rotate(6deg) scaleX(1.02); opacity: 0.6; }
  100% { transform: rotate(4deg) scaleX(0.98); opacity: 0.5; }
}
@keyframes id4-candle {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.06) scaleX(0.95); opacity: 1; }
  100% { transform: scaleY(0.97); opacity: 0.85; }
}
@keyframes id4-glow {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes id4-shadow {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}

/* leithcourt-joins – warm dusk interior */
.scn-leithcourt-joins {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #6a4a3a 100%),
    radial-gradient(ellipse at 60% 20%, #8a6a4a 0%, transparent 70%);
}
.scn-leithcourt-joins .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: lc-room 12s ease-in-out infinite alternate;
}
.scn-leithcourt-joins .wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(90deg, #6a4a3a 0%, #7a5a4a 50%, #6a4a3a 100%);
  border-bottom: 4px solid #2a1a0a; animation: lc-wall 8s ease-in-out infinite alternate;
}
.scn-leithcourt-joins .window {
  position: absolute; top: 12%; right: 15%; width: 100px; height: 130px;
  background: linear-gradient(135deg, #c8a060 0%, #b89050 50%, #a07840 100%);
  border: 6px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 30px #8a6a3a;
  animation: lc-window 6s ease-in-out infinite alternate;
}
.scn-leithcourt-joins .door {
  position: absolute; bottom: 30%; left: 20%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 3px solid #1a0a00; border-radius: 4px 4px 0 0;
  animation: lc-door 10s ease-in-out infinite;
}
.scn-leithcourt-joins .figure-leithcourt {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: lc-walk 4s ease-in-out infinite;
}
.scn-leithcourt-joins .lamp {
  position: absolute; top: 15%; left: 60%; width: 10px; height: 30px;
  background: #6a4a2a; border-radius: 2px;
}
.scn-leithcourt-joins .lamp::after {
  content: ''; position: absolute; top: -8px; left: -4px; width: 18px; height: 18px;
  background: radial-gradient(circle, #f0c068 0%, #c08040 60%, transparent 100%);
  border-radius: 50%; animation: lc-lampglow 3s ease-in-out infinite alternate;
}
.scn-leithcourt-joins .chair {
  position: absolute; bottom: 30%; right: 25%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: lc-chair 7s ease-in-out infinite;
}
@keyframes lc-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lc-wall { 0% { transform: scaleY(0.98); } 50% { transform: scaleY(1); } 100% { transform: scaleY(0.98); } }
@keyframes lc-window { 0% { box-shadow: inset 0 0 20px #7a5a3a; } 50% { box-shadow: inset 0 0 40px #c8a060; } 100% { box-shadow: inset 0 0 25px #8a6a3a; } }
@keyframes lc-door { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes lc-walk { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(8px) rotate(-2deg); } 66% { transform: translateX(-4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lc-lampglow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes lc-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* gardens-tennis – dusk garden with tennis court */
.scn-gardens-tennis {
  background:
    linear-gradient(180deg, #4a3a6a 0%, #6a5a8a 30%, #8a7a9a 60%, #6a8a5a 100%),
    radial-gradient(ellipse at 80% 100%, #7a5a4a 0%, transparent 70%);
}
.scn-gardens-tennis .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a4a7a 0%, #9a8a9a 40%, #b0a0a0 100%);
  animation: gt-sky 15s ease-in-out infinite alternate;
}
.scn-gardens-tennis .garden-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 30% 70% 0 0 / 50% 90% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: gt-hills 20s ease-in-out infinite alternate;
}
.scn-gardens-tennis .net {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 4px;
  background: #2a3a2a; box-shadow: 0 -10px 0 #2a3a2a; animation: gt-net 5s ease-in-out infinite;
}
.scn-gardens-tennis .sundial {
  position: absolute; bottom: 28%; left: 50%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #8a8a7a 0%, #6a6a5a 100%);
  border-radius: 50% 50% 0 0; transform: translateX(-50%);
  animation: gt-sundial 12s ease-in-out infinite;
}
.scn-gardens-tennis .spectators {
  position: absolute; bottom: 32%; left: 55%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
  animation: gt-spectators 8s ease-in-out infinite alternate;
}
.scn-gardens-tennis .flower-bush-a {
  position: absolute; bottom: 20%; left: 10%; width: 50px; height: 30px;
  background: radial-gradient(ellipse, #7a5a3a 0%, #4a3a2a 60%, transparent 100%);
  border-radius: 50%; filter: blur(3px); animation: gt-bush-a 9s ease-in-out infinite;
}
.scn-gardens-tennis .flower-bush-b {
  position: absolute; bottom: 22%; right: 15%; width: 40px; height: 25px;
  background: radial-gradient(ellipse, #6a4a3a 0%, #3a2a1a 60%, transparent 100%);
  border-radius: 50%; filter: blur(2px); animation: gt-bush-b 11s ease-in-out infinite reverse;
}
@keyframes gt-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes gt-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes gt-net { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes gt-sundial { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gt-spectators { 0% { transform: scaleX(0.95) translateX(-2px); } 50% { transform: scaleX(1.02) translateX(2px); } 100% { transform: scaleX(0.98) translateX(0); } }
@keyframes gt-bush-a { 0% { transform: scale(0.95); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes gt-bush-b { 0% { transform: scale(1.02); } 50% { transform: scale(0.98); } 100% { transform: scale(1.02); } }

/* mrs-tennant-gossip – interior, two figures chatting */
.scn-mrs-tennant-gossip {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 50%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 30%, #8a6a4a 0%, transparent 80%);
}
.scn-mrs-tennant-gossip .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: mt-room 10s ease-in-out infinite alternate;
}
.scn-mrs-tennant-gossip .sofa {
  position: absolute; bottom: 25%; left: 40%; width: 70px; height: 35px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 5% 5%; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: mt-sofa 6s ease-in-out infinite;
}
.scn-mrs-tennant-gossip .figure-ms-tennant {
  position: absolute; bottom: 28%; left: 20%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: mt-fig1 4s ease-in-out infinite;
}
.scn-mrs-tennant-gossip .figure-narrator {
  position: absolute; bottom: 28%; right: 20%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: mt-fig2 4.5s ease-in-out infinite;
}
.scn-mrs-tennant-gossip .window {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #a08050 0%, #806040 100%);
  border: 4px solid #3a2a1a; border-radius: 2px; box-shadow: inset 0 0 20px #604020;
  animation: mt-window 7s ease-in-out infinite alternate;
}
.scn-mrs-tennant-gossip .lamp {
  position: absolute; top: 5%; left: 60%; width: 8px; height: 25px;
  background: #5a3a2a; border-radius: 2px;
}
.scn-mrs-tennant-gossip .lamp::after {
  content: ''; position: absolute; top: -8px; left: -4px; width: 16px; height: 16px;
  background: radial-gradient(circle, #d0a060 0%, #b08040 60%, transparent 100%);
  border-radius: 50%; animation: mt-lampglow 2.5s ease-in-out infinite alternate;
}
.scn-mrs-tennant-gossip .table {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px; transform: translateX(-50%); box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: mt-table 8s ease-in-out infinite;
}
@keyframes mt-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mt-sofa { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mt-fig1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mt-fig2 { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(2deg); } 70% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mt-window { 0% { box-shadow: inset 0 0 15px #504030; } 50% { box-shadow: inset 0 0 30px #a08050; } 100% { box-shadow: inset 0 0 20px #604020; } }
@keyframes mt-lampglow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes mt-table { 0% { transform: translateX(-50%) scaleY(0.98); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }

/* engagement-confirmed – two figures, window with ring glow */
.scn-engagement-confirmed {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #4a2a2a 30%, #5a3a3a 60%, #6a4a4a 100%),
    radial-gradient(ellipse at 50% 40%, #8a5a5a 0%, transparent 70%);
}
.scn-engagement-confirmed .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%);
  animation: ec-deep 12s ease-in-out infinite alternate;
}
.scn-engagement-confirmed .bg-mid {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a2a2a 0%, #6a4a4a 100%);
  border-bottom: 2px solid #3a1a1a; animation: ec-mid 14s ease-in-out infinite alternate;
}
.scn-engagement-confirmed .figure-muriel {
  position: absolute; bottom: 25%; left: 30%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ec-muriel 5s ease-in-out infinite;
}
.scn-engagement-confirmed .figure-other {
  position: absolute; bottom: 25%; right: 30%; width: 26px; height: 46px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ec-other 5.5s ease-in-out infinite;
}
.scn-engagement-confirmed .window {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%); width: 120px; height: 150px;
  background: linear-gradient(180deg, #8a5a4a 0%, #6a4a3a 100%);
  border: 6px solid #3a1a1a; border-radius: 4px; box-shadow: inset 0 0 40px #5a3a2a;
  animation: ec-window 8s ease-in-out infinite alternate;
}
.scn-engagement-confirmed .ring-glow {
  position: absolute; top: 38%; left: 50%; transform: translate(-50%, -50%); width: 20px; height: 20px;
  background: radial-gradient(circle, #e0c080 0%, #c0a060 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #e0c080, 0 0 60px 20px rgba(224,192,128,0.4);
  animation: ec-ring 2s ease-in-out infinite alternate;
}
.scn-engagement-confirmed .curtain {
  position: absolute; top: 0; left: 0; width: 50%; height: 60%;
  background: linear-gradient(90deg, #4a2a2a 0%, transparent 100%);
  animation: ec-curtain 9s ease-in-out infinite alternate;
}
@keyframes ec-deep { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ec-mid { 0% { transform: scaleY(0.98); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes ec-muriel { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(5px) rotate(-1deg); } 66% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ec-other { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(2deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ec-window { 0% { box-shadow: inset 0 0 20px #4a2a1a; } 50% { box-shadow: inset 0 0 50px #8a5a4a; } 100% { box-shadow: inset 0 0 30px #5a3a2a; } }
@keyframes ec-ring { 0% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.9); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); } 100% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.95); } }
@keyframes ec-curtain { 0% { transform: translateX(-10px); } 50% { transform: translateX(0); } 100% { transform: translateX(-10px); } }

/* past-conviction-hinted — dim interrogation, two figures, lamp */
.scn-past-conviction-hinted { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 40%, #1e1418 100%), radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 70%); }
.scn-past-conviction-hinted .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #0e0e18 0%, #1a1214 50%, #221012 100%); animation: pc-bg 20s ease-in-out infinite alternate; }
.scn-past-conviction-hinted .wall-shadow { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e18 100%); border-radius:0 0 60% 60% / 0 0 30% 30%; opacity:.6; animation: pc-shadow 12s ease-in-out infinite alternate; }
.scn-past-conviction-hinted .figure-left { position:absolute; bottom:18%; left:22%; width:24px; height:54px; background: linear-gradient(180deg, #1e1a24 0%, #0e0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pc-figure-left 6s ease-in-out infinite; }
.scn-past-conviction-hinted .figure-right { position:absolute; bottom:20%; right:20%; width:26px; height:52px; background: linear-gradient(180deg, #221e2a 0%, #10101a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pc-figure-right 7s ease-in-out infinite; }
.scn-past-conviction-hinted .table { position:absolute; bottom:16%; left:30%; right:30%; height:12px; background: linear-gradient(180deg, #2a202a 0%, #14101a 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,.6); animation: pc-table 9s ease-in-out infinite alternate; }
.scn-past-conviction-hinted .lamp { position:absolute; bottom:32%; left:50%; width:8px; height:14px; transform:translateX(-50%); background: linear-gradient(180deg, #4a302a 0%, #2a1a1a 100%); border-radius:20% 20% 10% 10%; }
.scn-past-conviction-hinted .lamp-glow { position:absolute; bottom:32%; left:50%; width:40px; height:40px; transform:translate(-50%, -10%); background: radial-gradient(circle, #b08040 0%, #7a5020 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(160,100,40,.25); animation: pc-glow 4s ease-in-out infinite alternate; }
.scn-past-conviction-hinted .clock { position:absolute; top:12%; right:15%; width:14px; height:14px; background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%); border-radius:50%; border:2px solid #2a2a3a; animation: pc-clock 60s linear infinite; }
@keyframes pc-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes pc-shadow { 0% { opacity:.5; transform:scaleY(1) } 50% { opacity:.7; transform:scaleY(1.05) } 100% { opacity:.55; transform:scaleY(.98) } }
@keyframes pc-figure-left { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(2px) rotate(-2deg) } 50% { transform:translateX(-1px) rotate(1deg) } 75% { transform:translateX(3px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes pc-figure-right { 0% { transform:translateX(0) rotate(0) } 30% { transform:translateX(-2px) rotate(2deg) } 60% { transform:translateX(1px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes pc-table { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } 100% { transform:scaleX(.98) } }
@keyframes pc-glow { 0% { opacity:.7; transform:translate(-50%, -10%) scale(1) } 50% { opacity:1; transform:translate(-50%, -10%) scale(1.08) } 100% { opacity:.8; transform:translate(-50%, -10%) scale(.95) } }
@keyframes pc-clock { 0% { transform:rotate(0) } 100% { transform:rotate(360deg) } }

/* urged-to-speak — tense interior, two figures leaning in, candle */
.scn-urged-to-speak { background: linear-gradient(180deg, #1a141e 0%, #2a1e1e 35%, #1e1418 100%), radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, transparent 65%); }
.scn-urged-to-speak .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0e0a14 0%, #1a1216 50%, #241016 100%); animation: us-bg 18s ease-in-out infinite alternate; }
.scn-urged-to-speak .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1418 0%, #0e0a0e 100%); border-radius:50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.5); }
.scn-urged-to-speak .wall-panel { position:absolute; top:8%; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #2a1e22 0%, #1e141a 100%); border-radius:4%; border:1px solid #3a2a2e; opacity:.4; animation: us-panel 15s ease-in-out infinite alternate; }
.scn-urged-to-speak .figure-urging { position:absolute; bottom:22%; left:28%; width:22px; height:48px; background: linear-gradient(180deg, #221a1e 0%, #100e12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: us-urge 3s ease-in-out infinite; }
.scn-urged-to-speak .figure-resisting { position:absolute; bottom:22%; right:28%; width:20px; height:46px; background: linear-gradient(180deg, #1e161a 0%, #0e0a0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: us-resist 4s ease-in-out infinite; }
.scn-urged-to-speak .table { position:absolute; bottom:18%; left:25%; right:25%; height:10px; background: linear-gradient(180deg, #2a2026 0%, #161016 100%); border-radius:10% 10% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-urged-to-speak .candle { position:absolute; bottom:26%; left:50%; width:6px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #b08850 0%, #7a5828 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 0 8px 2px rgba(180,130,60,.3); animation: us-candle 4s ease-in-out infinite alternate; }
.scn-urged-to-speak .shadow-restless { position:absolute; bottom:10%; left:15%; width:40px; height:60px; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: us-shadow 5s ease-in-out infinite alternate; }
@keyframes us-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes us-panel { 0% { opacity:.3; transform:scaleY(1) } 50% { opacity:.5; transform:scaleY(1.02) } 100% { opacity:.35; transform:scaleY(.97) } }
@keyframes us-urge { 0% { transform:translateX(0) rotate(2deg) } 30% { transform:translateX(4px) rotate(4deg) } 60% { transform:translateX(0) rotate(0) } 100% { transform:translateX(-2px) rotate(-2deg) } }
@keyframes us-resist { 0% { transform:translateX(0) rotate(-1deg) } 40% { transform:translateX(-3px) rotate(-3deg) } 70% { transform:translateX(0) rotate(0) } 100% { transform:translateX(2px) rotate(1deg) } }
@keyframes us-candle { 0% { opacity:.8; transform:translateX(-50%) scaleY(1) } 50% { opacity:1; transform:translateX(-50%) scaleY(1.06) } 100% { opacity:.85; transform:translateX(-50%) scaleY(.94) } }
@keyframes us-shadow { 0% { transform:translateX(0) scaleX(1) } 50% { transform:translateX(5px) scaleX(1.1) } 100% { transform:translateX(-3px) scaleX(.9) } }

/* armida-told-later — café interior, detective watching, plate and glass */
.scn-armida-told-later { background: linear-gradient(180deg, #1e1a22 0%, #2a2228 35%, #1e1820 100%), radial-gradient(ellipse at 50% 35%, #3a2e32 0%, transparent 70%); }
.scn-armida-told-later .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #141016 0%, #1c141a 50%, #20141c 100%); animation: at-bg 22s ease-in-out infinite alternate; }
.scn-armida-told-later .wall-sconce { position:absolute; top:10%; left:12%; width:10px; height:22px; background: linear-gradient(180deg, #4a2e22 0%, #3a1e14 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 30px 8px rgba(160,80,30,.15); animation: at-sconce 5s ease-in-out infinite alternate; }
.scn-armida-told-later .table { position:absolute; bottom:20%; left:20%; right:20%; height:8px; background: linear-gradient(180deg, #2a1e22 0%, #1a1216 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 2px 8px rgba(0,0,0,.4); }
.scn-armida-told-later .figure-speaker { position:absolute; bottom:22%; left:32%; width:20px; height:44px; background: linear-gradient(180deg, #221820 0%, #100c12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: at-speak 5s ease-in-out infinite; }
.scn-armida-told-later .figure-detective { position:absolute; bottom:22%; right:30%; width:22px; height:46px; background: linear-gradient(180deg, #1e1620 0%, #0e0a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: at-watch 6s ease-in-out infinite; }
.scn-armida-told-later .plate { position:absolute; bottom:19%; left:40%; width:28px; height:6px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius:50%; box-shadow: inset 0 1px 2px rgba(80,50,40,.3); animation: at-plate 8s ease-in-out infinite; }
.scn-armida-told-later .glass { position:absolute; bottom:24%; left:45%; width:4px; height:12px; background: linear-gradient(180deg, rgba(180,180,200,.2) 0%, rgba(140,140,180,.15) 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 0 4px 1px rgba(160,160,200,.1); animation: at-glass 7s ease-in-out infinite alternate; }
.scn-armida-told-later .shadow-eavesdrop { position:absolute; bottom:8%; right:10%; width:30px; height:50px; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); border-radius:50%; filter: blur(5px); animation: at-eaves 10s ease-in-out infinite alternate; }
@keyframes at-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes at-sconce { 0% { opacity:.6; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.04) } 100% { opacity:.7; transform:scaleY(.96) } }
@keyframes at-speak { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(3px) rotate(2deg) } 50% { transform:translateX(-2px) rotate(-1deg) } 75% { transform:translateX(4px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes at-watch { 0% { transform:translateX(0) rotate(0) } 35% { transform:translateX(-2px) rotate(-3deg) } 70% { transform:translateX(1px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes at-plate { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.03) } 100% { transform:scaleX(.97) } }
@keyframes at-glass { 0% { opacity:.4; transform:translateX(0) } 50% { opacity:.7; transform:translateX(-1px) } 100% { opacity:.5; transform:translateX(1px) } }
@keyframes at-eaves { 0% { transform:translateX(0) scaleX(1) } 50% { transform:translateX(-4px) scaleX(1.08) } 100% { transform:translateX(2px) scaleX(.92) } }

/* enemies-suspected — two figures, menacing presence, chain */
.scn-enemies-suspected { background: linear-gradient(180deg, #0e0a14 0%, #1a0e12 30%, #0e0a0a 100%), radial-gradient(ellipse at 30% 40%, #1a0e12 0%, transparent 70%); }
.scn-enemies-suspected .bg-void { position:absolute; inset:0; background: linear-gradient(180deg, #0a060e 0%, #12080c 50%, #080606 100%); animation: es-bg 25s ease-in-out infinite alternate; }
.scn-enemies-suspected .floor-line { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #12080c 0%, #080406 100%); border-radius:60% 60% 0 0 / 30% 30% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.6); }
.scn-enemies-suspected .figure-one { position:absolute; bottom:18%; left:25%; width:22px; height:48px; background: linear-gradient(180deg, #1e1218 0%, #0e080c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: es-one 6s ease-in-out infinite; }
.scn-enemies-suspected .figure-two { position:absolute; bottom:18%; right:25%; width:20px; height:46px; background: linear-gradient(180deg, #1a0e14 0%, #0a0608 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: es-two 7s ease-in-out infinite; }
.scn-enemies-suspected .figure-menace { position:absolute; bottom:20%; left:48%; width:28px; height:54px; background: linear-gradient(180deg, #0c060e 0%, #040204 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: es-menace 9s ease-in-out infinite; opacity:.6; filter:blur(1px); }
.scn-enemies-suspected .lamp-dim { position:absolute; bottom:32%; left:50%; width:6px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2020 0%, #1a0a0a 100%); border-radius:20% 20% 10% 10%; }
.scn-enemies-suspected .glow-tremble { position:absolute; bottom:32%; left:50%; width:30px; height:30px; transform:translate(-50%, -20%); background: radial-gradient(circle, #7a3a2a 0%, #4a2010 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(80,30,10,.15); animation: es-glow 3s ease-in-out infinite alternate; }
.scn-enemies-suspected .chain { position:absolute; bottom:24%; left:30%; right:30%; height:2px; background: repeating-linear-gradient(90deg, #2a1a1a 0px, #2a1a1a 3px, transparent 3px, transparent 6px); opacity:.4; animation: es-chain 5s ease-in-out infinite; }
@keyframes es-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes es-one { 0% { transform:translateX(0) rotate(0) } 30% { transform:translateX(2px) rotate(2deg) } 60% { transform:translateX(-1px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes es-two { 0% { transform:translateX(0) rotate(0) } 35% { transform:translateX(-2px) rotate(-2deg) } 70% { transform:translateX(1px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes es-menace { 0% { transform:translateX(0) scale(1); opacity:.5 } 50% { transform:translateX(-3px) scale(1.02); opacity:.7 } 100% { transform:translateX(2px) scale(.98); opacity:.55 } }
@keyframes es-glow { 0% { opacity:.5; transform:translate(-50%, -20%) scale(1) } 50% { opacity:.8; transform:translate(-50%, -20%) scale(1.06) } 100% { opacity:.6; transform:translate(-50%, -20%) scale(.94) } }
@keyframes es-chain { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }

/* elma-with-woodroffe – tense bright interior */
.scn-elma-with-woodroffe {
  background: linear-gradient(180deg, #d4a86a 0%, #b87e4a 60%, #6a3e1e 100%),
              radial-gradient(ellipse at 30% 60%, #f0d0a0 0%, transparent 70%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}
.scn-elma-with-woodroffe .room-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #c49a6a 0%, #9a6a3e 100%);
  border-bottom: 4px solid #5a3a1a;
  animation: sc1-wall-pulse 8s ease-in-out infinite;
}
.scn-elma-with-woodroffe .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #3a2a1a 0%, #6a4a2e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-elma-with-woodroffe .window {
  position: absolute; top: 18%; left: 55%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #c8e0ff 0%, #a0c0e8 100%);
  border: 6px solid #5a3a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3), 0 0 40px rgba(200,180,100,0.4);
  animation: sc1-window 6s ease-in-out infinite alternate;
}
.scn-elma-with-woodroffe .table {
  position: absolute; bottom: 24%; left: 30%; width: 180px; height: 12px;
  background: linear-gradient(90deg, #6a4a2e 0%, #8a5a3a 50%, #6a4a2e 100%);
  border-radius: 4px;
  transform: perspective(400px) rotateX(30deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-elma-with-woodroffe .chair-left {
  position: absolute; bottom: 26%; left: 22%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a220a 100%);
  border-radius: 10% 10% 20% 20% / 40% 40% 20% 20%;
  transform: skewY(-5deg);
  animation: sc1-chair 10s ease-in-out infinite;
}
.scn-elma-with-woodroffe .chair-right {
  position: absolute; bottom: 26%; right: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a220a 100%);
  border-radius: 10% 10% 20% 20% / 40% 40% 20% 20%;
  transform: skewY(5deg);
  animation: sc1-chair 10s ease-in-out infinite reverse;
}
.scn-elma-with-woodroffe .figure-elma {
  position: absolute; bottom: 28%; left: 28%; width: 24px; height: 76px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc1-figure-elma 5s ease-in-out infinite;
}
.scn-elma-with-woodroffe .figure-woodroffe {
  position: absolute; bottom: 28%; right: 28%; width: 28px; height: 82px;
  background: linear-gradient(180deg, #2e2e1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc1-figure-woodroffe 5s ease-in-out infinite 1s;
}
.scn-elma-with-woodroffe .lamp-glow {
  position: absolute; top: 12%; left: 48%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffdd90 0%, #ffe080 40%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: sc1-lamp 4s ease-in-out infinite alternate;
}
@keyframes sc1-wall-pulse {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes sc1-window {
  0%,100% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02); opacity: 1; }
}
@keyframes sc1-chair {
  0%,100% { transform: translateY(0) skewY(-5deg); }
  50% { transform: translateY(-2px) skewY(-5deg) rotate(-1deg); }
}
@keyframes sc1-figure-elma {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-2deg); }
}
@keyframes sc1-figure-woodroffe {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-4px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(4px) rotate(2deg); }
}
@keyframes sc1-lamp {
  0%,100% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
}

/* decide-pursue – tense bright interior, police office */
.scn-decide-pursue {
  background: linear-gradient(180deg, #8a7a50 0%, #5a4a2e 60%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 30%, #c0a86a 0%, transparent 60%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-decide-pursue .office-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1e 100%);
  border-bottom: 3px solid #2a1a0a;
}
.scn-decide-pursue .desk {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 200px; height: 10px;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a4a2a 50%, #5a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-decide-pursue .desk-lamp {
  position: absolute; bottom: 30%; left: 48%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #b08a40 0%, #8a6a2e 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-lamp 6s ease-in-out infinite alternate;
}
.scn-decide-pursue .desk-lamp::after {
  content: ''; position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffdd80 0%, #c0a050 60%, transparent 100%);
  border-radius: 50%;
  animation: sc2-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-decide-pursue .wallet {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 28px;
  background: linear-gradient(135deg, #8a6030 0%, #5a3a18 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%;
  transform: rotate(-10deg);
  animation: sc2-wallet 8s ease-in-out infinite;
}
.scn-decide-pursue .letter {
  position: absolute; bottom: 20%; left: 55%; width: 50px; height: 8px;
  background: #e8d8b0;
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sc2-letter 12s ease-in-out infinite;
}
.scn-decide-pursue .figure-boranski {
  position: absolute; bottom: 25%; left: 62%; width: 26px; height: 80px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc2-boranski 4s ease-in-out infinite;
}
.scn-decide-pursue .hand {
  position: absolute; bottom: 26%; left: 50%; width: 16px; height: 14px;
  background: #8a6a4a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translate(-20px, 0) rotate(20deg);
  animation: sc2-hand 2s ease-in-out infinite;
}
.scn-decide-pursue .shadow-stripe {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 40%, rgba(0,0,0,0.3) 40%, transparent 45%);
  pointer-events: none;
  animation: sc2-shadow 7s ease-in-out infinite alternate;
}
@keyframes sc2-lamp { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes sc2-lamp-glow { 0%,100% { opacity: 0.6; transform: scale(1) translateX(-50%); } 50% { opacity: 1; transform: scale(1.1) translateX(-50%); } }
@keyframes sc2-wallet { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } }
@keyframes sc2-letter { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(7deg) translateX(5px); } }
@keyframes sc2-boranski { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(4px) rotate(-2deg); } }
@keyframes sc2-hand { 0%,100% { transform: translate(-20px, 0) rotate(20deg); } 50% { transform: translate(-18px, -2px) rotate(25deg); } }
@keyframes sc2-shadow { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }

/* boranski-why – calm bright interior, living room */
.scn-boranski-why {
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a070 40%, #8a6a4a 100%),
              radial-gradient(ellipse at 50% 50%, #e8d8b0 0%, transparent 70%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.2);
}
.scn-boranski-why .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #b8a880 0%, #987a58 100%);
  border-bottom: 2px solid #7a5a3a;
}
.scn-boranski-why .sofa {
  position: absolute; bottom: 18%; left: 15%; width: 140px; height: 40px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-boranski-why .armchair {
  position: absolute; bottom: 18%; right: 15%; width: 80px; height: 50px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-boranski-why .figure-speaker {
  position: absolute; bottom: 22%; left: 28%; width: 22px; height: 74px;
  background: linear-gradient(180deg, #2e2e2e 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc3-speaker 6s ease-in-out infinite;
}
.scn-boranski-why .figure-listener {
  position: absolute; bottom: 22%; right: 30%; width: 20px; height: 68px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc3-listener 6s ease-in-out infinite 2s;
}
.scn-boranski-why .teacup {
  position: absolute; bottom: 14%; left: 38%; width: 16px; height: 14px;
  background: linear-gradient(135deg, #c8b890 0%, #a08860 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-5deg);
  animation: sc3-cup 10s ease-in-out infinite;
}
.scn-boranski-why .fireplace-glow {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 100px;
  background: radial-gradient(circle at 50% 30%, #f0c080 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: sc3-fire 5s ease-in-out infinite alternate;
}
.scn-boranski-why .curtain {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 0 20% 20% 0;
  opacity: 0.7;
  animation: sc3-curtain 15s ease-in-out infinite alternate;
}
@keyframes sc3-speaker { 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 sc3-listener { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(1deg); } }
@keyframes sc3-cup { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-2px); } }
@keyframes sc3-fire { 0%,100% { opacity: 0.5; transform: translateX(-50%) scale(1); } 50% { opacity: 0.9; transform: translateX(-50%) scale(1.05); } }
@keyframes sc3-curtain { 0%,100% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(-5px) skewX(2deg); } }

/* train-to-petersburg – tense overcast, train compartment */
.scn-train-to-petersburg {
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 40%, #3a4a5a 100%),
              radial-gradient(ellipse at 50% 30%, #6a7a8a 0%, transparent 60%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-train-to-petersburg .train-compartment {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 4px solid #1a120a;
  border-radius: 10px;
}
.scn-train-to-petersburg .window-frame {
  position: absolute; top: 15%; left: 10%; width: 160px; height: 120px;
  background: transparent;
  border: 8px solid #3a2a1a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
}
.scn-train-to-petersburg .landscape-sky {
  position: absolute; top: 15%; left: 10%; width: 160px; height: 80px;
  background: linear-gradient(180deg, #6a7a8a 0%, #8a9aa0 100%);
  border-radius: 2px;
  animation: sc4-sky 30s linear infinite;
}
.scn-train-to-petersburg .landscape-ground {
  position: absolute; top: 65%; left: 10%; width: 160px; height: 50px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 2px;
  animation: sc4-ground 25s linear infinite;
}
.scn-train-to-petersburg .seat {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 10% 10%;
  transform: rotate(-2deg);
}
.scn-train-to-petersburg .figure-passenger {
  position: absolute; bottom: 28%; left: 45%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #2e2e3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sc4-passenger 6s ease-in-out infinite;
}
.scn-train-to-petersburg .suitcase {
  position: absolute; bottom: 18%; right: 20%; width: 34px; height: 20px;
  background: linear-gradient(135deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  transform: rotate(8deg);
}
.scn-train-to-petersburg .rain-streak {
  position: absolute; top: 0; left: 20%; width: 2px; height: 100%;
  background: rgba(200,210,220,0.3);
  animation: sc4-rain 1.5s linear infinite;
}
.scn-train-to-petersburg .fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,190,200,0.2) 0%, transparent 70%);
  pointer-events: none;
  animation: sc4-fog 12s ease-in-out infinite alternate;
}
@keyframes sc4-sky { 0% { transform: translateX(0); } 100% { transform: translateX(-60px); } }
@keyframes sc4-ground { 0% { transform: translateX(0); } 100% { transform: translateX(-80px); } }
@keyframes sc4-passenger { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(2px) rotate(-2deg); } }
@keyframes sc4-rain { 0% { transform: translateY(-100%); } 100% { transform: translateY(100vh); } }
@keyframes sc4-fog { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }

/* Scene oberg-wants-dead */
.scn-oberg-wants-dead { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #7a5a4a 60%, #4a3a2a 100%), radial-gradient(ellipse at 30% 40%, #b08050 0%, transparent 70%); }
.scn-oberg-wants-dead .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-oberg-wants-dead .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #2a1a0a, #3a2a1a); border-radius:20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-oberg-wants-dead .table { position:absolute; bottom:28%; left:50%; width:120px; height:10px; transform:translateX(-50%); background: #5a3a2a; border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-oberg-wants-dead .lamp-body { position:absolute; bottom:31%; left:45%; width:12px; height:20px; background: #8a6a4a; border-radius:30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-oberg-wants-dead .lamp-glow { position:absolute; bottom:33%; left:45%; width:30px; height:30px; background: radial-gradient(circle, #d0a060 0%, #b08040 40%, transparent 70%); border-radius:50%; animation: owd-glow 3s ease-in-out infinite alternate; }
.scn-oberg-wants-dead .figure-baron { position:absolute; bottom:24%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: owd-sway-b 5s ease-in-out infinite; }
.scn-oberg-wants-dead .figure-speaker { position:absolute; bottom:24%; right:38%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: owd-sway-s 4.5s ease-in-out infinite reverse; }
.scn-oberg-wants-dead .window-light { position:absolute; top:8%; left:60%; width:70px; height:50px; background: radial-gradient(ellipse at 50% 50%, #ffd090 0%, #c09060 60%, transparent 100%); border-radius:4px; box-shadow: 0 0 40px 20px rgba(255,200,100,.3); animation: owd-window 8s ease-in-out infinite alternate; }
@keyframes owd-glow { 0% { opacity:.7; transform:scale(.9) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.8; transform:scale(1) } }
@keyframes owd-sway-b { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes owd-sway-s { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes owd-window { 0% { opacity:.5; box-shadow:0 0 20px 10px rgba(255,200,100,.2) } 50% { opacity:1; box-shadow:0 0 60px 30px rgba(255,200,100,.5) } 100% { opacity:.7; box-shadow:0 0 30px 15px rgba(255,200,100,.3) } }

/* Scene elma-will-die */
.scn-elma-will-die { background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 30%, #1a1a2a 100%), radial-gradient(ellipse at 70% 50%, #6a4a3a 0%, transparent 70%); }
.scn-elma-will-die .bg-cell { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); }
.scn-elma-will-die .cell-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: #2a2a3a; border-radius:30% 30% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
.scn-elma-will-die .cell-door { position:absolute; bottom:20%; left:20%; width:50px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px 4px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.4); }
.scn-elma-will-die .figure-elma { position:absolute; bottom:22%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ewd-cower 6s ease-in-out infinite; }
.scn-elma-will-die .figure-heath { position:absolute; bottom:22%; right:30%; width:22px; height:42px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ewd-threat 4s ease-in-out infinite; }
.scn-elma-will-die .lantern { position:absolute; bottom:45%; right:15%; width:14px; height:18px; background: #a08060; border-radius:30% 30% 10% 10%; box-shadow: 0 0 8px 2px #806040; }
.scn-elma-will-die .lantern-halo { position:absolute; bottom:42%; right:14%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,150,80,.6) 0%, transparent 70%); border-radius:50%; animation: ewd-halo 4s ease-in-out infinite alternate; }
@keyframes ewd-cower { 0% { transform: translateX(0) scaleY(1) } 30% { transform: translateX(4px) scaleY(0.95) rotate(5deg) } 60% { transform: translateX(0) scaleY(1) } 100% { transform: translateX(-2px) scaleY(1.02) rotate(-3deg) } }
@keyframes ewd-threat { 0% { transform: translateX(0) } 25% { transform: translateX(-8px) } 50% { transform: translateX(0) } 75% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes ewd-halo { 0% { opacity:.3; transform:scale(.8) } 50% { opacity:.7; transform:scale(1.2) } 100% { opacity:.4; transform:scale(1) } }

/* Scene thousand-thoughts */
.scn-thousand-thoughts { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 80%); }
.scn-thousand-thoughts .dining-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-thousand-thoughts .dining-table { position:absolute; bottom:30%; left:10%; right:10%; height:8px; background: #3a2a1a; border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-thousand-thoughts .candelabrum { position:absolute; bottom:38%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: #5a4a3a; border-radius:10% 10% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-thousand-thoughts .candle-flame-1 { position:absolute; bottom:52%; left:48%; width:8px; height:12px; background: radial-gradient(ellipse, #ffd080 0%, #c08040 60%, transparent 100%); border-radius:50%; animation: tt-flame1 2s ease-in-out infinite alternate; }
.scn-thousand-thoughts .candle-flame-2 { position:absolute; bottom:52%; right:48%; width:8px; height:12px; background: radial-gradient(ellipse, #ffd080 0%, #c08040 60%, transparent 100%); border-radius:50%; animation: tt-flame2 2.5s ease-in-out infinite alternate; }
.scn-thousand-thoughts .figure-sitter { position:absolute; bottom:24%; left:38%; width:20px; height:38px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tt-sit 8s ease-in-out infinite; }
.scn-thousand-thoughts .figure-baron { position:absolute; bottom:24%; right:38%; width:22px; height:42px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tt-baron 7s ease-in-out infinite; }
.scn-thousand-thoughts .chandelier { position:absolute; top:5%; left:50%; width:60px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 100%); border-radius:40% 40% 30% 30%; box-shadow: 0 0 20px 10px rgba(200,150,80,.2); animation: tt-chandel 12s ease-in-out infinite; }
@keyframes tt-flame1 { 0% { transform:scaleY(0.8); opacity:.7 } 50% { transform:scaleY(1.2); opacity:1 } 100% { transform:scaleY(0.9); opacity:.8 } }
@keyframes tt-flame2 { 0% { transform:scaleY(1); opacity:.8 } 50% { transform:scaleY(1.15); opacity:1 } 100% { transform:scaleY(0.9); opacity:.7 } }
@keyframes tt-sit { 0% { transform: rotate(0) } 25% { transform: rotate(-2deg) translateX(2px) } 50% { transform: rotate(0) } 75% { transform: rotate(2deg) translateX(-2px) } 100% { transform: rotate(0) } }
@keyframes tt-baron { 0% { transform: translateX(0) } 20% { transform: translateX(-4px) rotate(3deg) } 40% { transform: translateX(0) } 60% { transform: translateX(4px) rotate(-3deg) } 80% { transform: translateX(0) } 100% { transform: translateX(0) } }
@keyframes tt-chandel { 0% { opacity:.3; transform:translateX(-50%) rotate(-2deg) } 50% { opacity:.5; transform:translateX(-50%) rotate(2deg) } 100% { opacity:.4; transform:translateX(-50%) rotate(-1deg) } }

/* Scene why-she-fled */
.scn-why-she-fled { background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 30%, #0a0a1a 100%), radial-gradient(ellipse at 30% 60%, #2a2a3a 0%, transparent 80%); }
.scn-why-she-fled .corridor-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%); }
.scn-why-she-fled .wall-left { position:absolute; top:0; bottom:20%; left:0; width:15%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%); box-shadow: inset -4px 0 8px rgba(255,255,255,.05); }
.scn-why-she-fled .wall-right { position:absolute; top:0; bottom:20%; right:0; width:15%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%); box-shadow: inset 4px 0 8px rgba(255,255,255,.05); }
.scn-why-she-fled .corridor-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: #0a0a0a; border-radius:10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-why-she-fled .cell-door { position:absolute; bottom:18%; right:20%; width:40px; height:70px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:4px; box-shadow: -2px 0 6px rgba(0,0,0,.5); animation: wsf-door 3s ease-in-out infinite; }
.scn-why-she-fled .figure-fleeing { position:absolute; bottom:20%; left:30%; width:16px; height:34px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wsf-run 2s ease-in-out infinite; }
.scn-why-she-fled .figure-guard { position:absolute; bottom:20%; right:35%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: wsf-guard 4s ease-in-out infinite; }
.scn-why-she-fled .wall-lantern { position:absolute; top:25%; left:20%; width:10px; height:14px; background: #806040; border-radius:20% 20% 10% 10%; box-shadow: 0 0 12px 4px rgba(128,96,64,.4); animation: wsf-lantern 3s ease-in-out infinite alternate; }
@keyframes wsf-door { 0% { transform: translateX(0) } 25% { transform: translateX(4px) } 50% { transform: translateX(0) } 75% { transform: translateX(-4px) } 100% { transform: translateX(0) } }
@keyframes wsf-run { 0% { transform: translateX(0) rotate(0) } 10% { transform: translateX(8px) rotate(-5deg) } 20% { transform: translateX(16px) rotate(3deg) } 30% { transform: translateX(24px) rotate(-2deg) } 40% { transform: translateX(32px) rotate(0) } 50% { transform: translateX(40px) rotate(-3deg) } 60% { transform: translateX(48px) rotate(4deg) } 70% { transform: translateX(56px) rotate(-1deg) } 80% { transform: translateX(64px) rotate(2deg) } 90% { transform: translateX(72px) rotate(-4deg) } 100% { transform: translateX(80px) rotate(0) } }
@keyframes wsf-guard { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-6px) rotate(5deg) } 66% { transform: translateX(0) rotate(0) } 100% { transform: translateX(6px) rotate(-5deg) } }
@keyframes wsf-lantern { 0% { opacity:.6; transform:scale(.9) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.7; transform:scale(1) } }

/* Scene: elma-note-read */
.scn-elma-note-read { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e28 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%); }
.scn-elma-note-read .room-wall { position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3e 0%, #1e1e2a 100%); }
.scn-elma-note-read .desk { position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-elma-note-read .lamp { position: absolute; bottom: 28%; left: 35%; width: 20px; height: 30px; background: radial-gradient(circle at 50% 30%, #c8a060 0%, #8a6030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px rgba(200,160,96,.6); animation: enr-lamp 3s ease-in-out infinite alternate; }
.scn-elma-note-read .note-letter { position: absolute; bottom: 15%; left: 45%; width: 40px; height: 28px; background: #d4c4a8; border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: enr-note 4s ease-in-out infinite; }
.scn-elma-note-read .figure-silhouette { position: absolute; bottom: 12%; left: 30%; width: 40px; height: 60px; background: linear-gradient(180deg, #1a1a24 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: enr-figure 2s ease-in-out infinite; }
.scn-elma-note-read .shadow { position: absolute; bottom: 10%; left: 25%; right: 25%; height: 10%; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(6px); animation: enr-shadow 3s ease-in-out infinite alternate; }
.scn-elma-note-read .flicker-effect { position: absolute; inset: 0; background: radial-gradient(circle at 38% 55%, rgba(200,160,96,.15) 0%, transparent 60%); pointer-events: none; animation: enr-flicker 0.8s steps(2) infinite; }
@keyframes enr-lamp { 0% { box-shadow: 0 0 20px 6px #c8a060; transform: scale(1); } 50% { box-shadow: 0 0 40px 12px #e8c080; transform: scale(1.05); } 100% { box-shadow: 0 0 25px 8px #b08050; transform: scale(0.98); } }
@keyframes enr-note { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-2px); } }
@keyframes enr-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(2deg); } }
@keyframes enr-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.02); } 100% { opacity: 0.4; transform: scale(0.98); } }
@keyframes enr-flicker { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }

/* Scene: silent-meeting */
.scn-silent-meeting { background: linear-gradient(180deg, #f5e6d0 0%, #ecd5b5 40%, #d9b893 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%); }
.scn-silent-meeting .room-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #f0e0c8 0%, #dcc4a8 100%); }
.scn-silent-meeting .stove { position: absolute; bottom: 5%; left: 15%; width: 60px; height: 80px; background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a8 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.1), 0 4px 12px rgba(0,0,0,.2); animation: sm-stove 6s ease-in-out infinite; }
.scn-silent-meeting .window { position: absolute; top: 10%; right: 20%; width: 80px; height: 100px; background: rgba(200,220,255,.3); border: 4px solid #b8a890; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.2); animation: sm-window 8s ease-in-out infinite alternate; }
.scn-silent-meeting .chair { position: absolute; bottom: 12%; left: 55%; width: 40px; height: 50px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 20% 20%; }
.scn-silent-meeting .figure-elma { position: absolute; bottom: 16%; left: 50%; width: 30px; height: 50px; background: linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sm-elma 4s ease-in-out infinite; }
.scn-silent-meeting .figure-narrator { position: absolute; bottom: 16%; left: 42%; width: 32px; height: 52px; background: linear-gradient(180deg, #b8a898 0%, #988878 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sm-narrator 4s ease-in-out infinite 0.5s; }
.scn-silent-meeting .hands-clasped { position: absolute; bottom: 26%; left: 44%; width: 20px; height: 12px; background: #c8b8a8; border-radius: 40% 40% 30% 30%; box-shadow: 0 0 8px rgba(0,0,0,.1); animation: sm-hands 3s ease-in-out infinite; }
@keyframes sm-stove { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } }
@keyframes sm-window { 0% { opacity: 0.7; background: rgba(200,220,255,.2); } 50% { opacity: 1; background: rgba(220,240,255,.4); } 100% { opacity: 0.8; background: rgba(200,220,255,.3); } }
@keyframes sm-elma { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes sm-narrator { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(4px) translateY(-2px); } }
@keyframes sm-hands { 0%,100% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.1); opacity: 1; } }

/* Scene: declared-love */
.scn-declared-love { background: linear-gradient(180deg, #fcefdc 0%, #f5dcc8 40%, #ebc9aa 100%), radial-gradient(ellipse at 50% 20%, #fff5e6 0%, transparent 70%); }
.scn-declared-love .room-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #f5e0d0 0%, #e8d0b8 100%); }
.scn-declared-love .window { position: absolute; top: 8%; left: 10%; width: 90px; height: 110px; background: rgba(255,240,210,.5); border: 4px solid #c8b098; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,200,120,.2); }
.scn-declared-love .light-beam { position: absolute; top: 5%; left: 12%; width: 70px; height: 60%; background: linear-gradient(180deg, rgba(255,220,150,.3) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%); animation: dl-beam 6s ease-in-out infinite alternate; }
.scn-declared-love .profile-left { position: absolute; bottom: 15%; left: 30%; width: 35px; height: 50px; background: linear-gradient(180deg, #c8a890 0%, #a08070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: dl-profile 4s ease-in-out infinite; }
.scn-declared-love .profile-right { position: absolute; bottom: 15%; right: 30%; width: 35px; height: 50px; background: linear-gradient(180deg, #c8a890 0%, #a08070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg) scaleX(-1); animation: dl-profile 4s ease-in-out infinite 0.3s; }
.scn-declared-love .hands-intertwined { position: absolute; bottom: 30%; left: 42%; width: 40px; height: 20px; background: linear-gradient(90deg, #b09888 0%, #c8b098 50%, #b09888 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 10px rgba(0,0,0,.1); animation: dl-hands 3s ease-in-out infinite; }
.scn-declared-love .flower-vase { position: absolute; bottom: 5%; right: 15%; width: 20px; height: 30px; background: linear-gradient(180deg, #b08060 0%, #806050 100%); border-radius: 10% 10% 20% 20%; }
@keyframes dl-beam { 0% { opacity: 0.5; transform: translateX(-5px); } 50% { opacity: 0.8; transform: translateX(5px); } 100% { opacity: 0.6; transform: translateX(0); } }
@keyframes dl-profile { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes dl-hands { 0%,100% { transform: scale(1); } 50% { transform: scale(1.15); } }

/* Scene: plan-to-hide */
.scn-plan-to-hide { background: linear-gradient(180deg, #f0e8d8 0%, #e0d4c0 40%, #c8bca8 100%), radial-gradient(ellipse at 50% 90%, #d4c8b4 0%, transparent 70%); }
.scn-plan-to-hide .desk-overhead { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #c8bca8 0%, #b0a490 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.1); }
.scn-plan-to-hide .paper { position: absolute; bottom: 25%; left: 35%; width: 80px; height: 50px; background: #f0e8d8; border-radius: 2px; transform: rotate(3deg); box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: pth-paper 5s ease-in-out infinite; }
.scn-plan-to-hide .inkwell { position: absolute; bottom: 35%; left: 30%; width: 18px; height: 22px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-plan-to-hide .hand-pen { position: absolute; bottom: 32%; left: 40%; width: 30px; height: 40px; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pth-hand 3s ease-in-out infinite; }
.scn-plan-to-hide .lamp { position: absolute; bottom: 40%; left: 60%; width: 24px; height: 36px; background: radial-gradient(circle at 50% 30%, #c8a060 0%, #886030 100%); border-radius: 25% 25% 10% 10%; box-shadow: 0 0 40px 12px rgba(200,160,96,.5); animation: pth-lamp 2s ease-in-out infinite alternate; }
.scn-plan-to-hide .shadow { position: absolute; bottom: 20%; left: 32%; width: 90px; height: 30px; background: rgba(0,0,0,.15); border-radius: 50%; filter: blur(12px); animation: pth-shadow 4s ease-in-out infinite alternate; }
.scn-plan-to-hide .tremble-effect { position: absolute; inset: 0; background: repeating-linear-gradient(45deg, rgba(0,0,0,.02) 0px, transparent 2px); pointer-events: none; animation: pth-tremble 0.5s steps(3) infinite; }
@keyframes pth-paper { 0%,100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } }
@keyframes pth-hand { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-8px) translateY(-2px) rotate(5deg); } }
@keyframes pth-lamp { 0% { box-shadow: 0 0 30px 8px #c8a060; opacity: 0.9; } 50% { box-shadow: 0 0 50px 16px #e8c080; opacity: 1; } 100% { box-shadow: 0 0 35px 10px #b08050; opacity: 0.85; } }
@keyframes pth-shadow { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(0.95); } }
@keyframes pth-tremble { 0% { transform: translate(0,0); } 33% { transform: translate(-1px,1px); } 66% { transform: translate(1px,-1px); } 100% { transform: translate(0,0); } }

/* ---- scene: warning-revelation (tense, dim-interior) ---- */
.scn-warning-revelation {
  background:
    linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0d0808 100%),
    radial-gradient(ellipse at 60% 30%, #3a2a1e 0%, transparent 70%);
}
.scn-warning-revelation .room-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1210 100%);
  animation: wr-wall 12s ease-in-out infinite alternate;
}
.scn-warning-revelation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-warning-revelation .table {
  position: absolute; bottom: 30%; left: 40%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: wr-table 9s ease-in-out infinite;
}
.scn-warning-revelation .lamp {
  position: absolute; bottom: 38%; left: 68%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #b87868 0%, #5e3a2a 70%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 10px #a0583a, 0 0 60px 20px rgba(160,88,58,0.4);
  animation: wr-lamp 3s ease-in-out infinite alternate;
}
.scn-warning-revelation .figure-sitting {
  position: absolute; bottom: 22%; left: 44%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: wr-sit 7s ease-in-out infinite;
}
.scn-warning-revelation .figure-standing {
  position: absolute; bottom: 25%; left: 70%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(5deg);
  animation: wr-stand 6s ease-in-out infinite alternate;
}
.scn-warning-revelation .window {
  position: absolute; top: 15%; left: 65%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border: 3px solid #1a1210;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: wr-window 20s ease-in-out infinite;
}
.scn-warning-revelation .shadow {
  position: absolute; bottom: 25%; left: 42%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: wr-shadow 5s ease-in-out infinite alternate;
}
@keyframes wr-wall    { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes wr-table   { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes wr-lamp    { 0% { box-shadow: 0 0 20px 6px #a0583a, 0 0 40px 12px rgba(160,88,58,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 40px 14px #c07050, 0 0 80px 24px rgba(192,112,80,0.5); opacity: 1 } 100% { box-shadow: 0 0 25px 8px #a0583a, 0 0 50px 16px rgba(160,88,58,0.35); opacity: 0.9 } }
@keyframes wr-sit     { 0% { transform: scale(0.9) translateY(0) } 50% { transform: scale(0.92) translateY(-2px) } 100% { transform: scale(0.9) translateY(0) } }
@keyframes wr-stand   { 0% { transform: rotate(4deg) translateX(0) } 100% { transform: rotate(6deg) translateX(3px) } }
@keyframes wr-window  { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes wr-shadow  { 0% { transform: scaleX(1) translateX(0) } 100% { transform: scaleX(1.1) translateX(5px) } }

/* ---- scene: electric-chair-trap (dark, dim-interior) ---- */
.scn-electric-chair-trap {
  background:
    linear-gradient(180deg, #14121a 0%, #0c0a10 40%, #060406 100%),
    radial-gradient(ellipse at 50% 60%, #2a1e2a 0%, transparent 80%);
}
.scn-electric-chair-trap .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1620 0%, #0c0a10 100%);
  animation: et-bg 20s ease-in-out infinite alternate;
}
.scn-electric-chair-trap .chair-back {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-2deg);
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  animation: et-chairb 12s ease-in-out infinite;
}
.scn-electric-chair-trap .chair-seat {
  position: absolute; bottom: 22%; left: 37%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%);
  border-radius: 6% 6% 3% 3%;
  transform: perspective(100px) rotateX(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: et-chairs 10s ease-in-out infinite;
}
.scn-electric-chair-trap .wire-left {
  position: absolute; bottom: 20%; left: 28%; width: 3px; height: 80px;
  background: linear-gradient(180deg, #6a5a5a 0%, #3a2a2a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: et-wirel 15s ease-in-out infinite alternate;
}
.scn-electric-chair-trap .wire-right {
  position: absolute; bottom: 20%; right: 28%; width: 3px; height: 80px;
  background: linear-gradient(180deg, #6a5a5a 0%, #3a2a2a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: et-wirer 18s ease-in-out infinite alternate;
}
.scn-electric-chair-trap .figure-crouch {
  position: absolute; bottom: 15%; left: 52%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1212 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.8) rotate(10deg);
  animation: et-figure 8s ease-in-out infinite;
}
.scn-electric-chair-trap .glow-spot {
  position: absolute; bottom: 25%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #a0765a 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #805a3a, 0 0 40px 12px rgba(128,90,58,0.3);
  animation: et-glow 4s ease-in-out infinite alternate;
}
.scn-electric-chair-trap .carpet {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #1a1414 0%, #0e0a0a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
  animation: et-carpet 25s ease-in-out infinite;
}
@keyframes et-bg     { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes et-chairb { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } }
@keyframes et-chairs { 0%,100% { transform: perspective(100px) rotateX(10deg) } 50% { transform: perspective(100px) rotateX(12deg) } }
@keyframes et-wirel  { 0% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(12deg) scaleY(1.02) } 100% { transform: rotate(15deg) scaleY(1) } }
@keyframes et-wirer  { 0% { transform: rotate(-15deg) scaleY(1) } 50% { transform: rotate(-12deg) scaleY(1.02) } 100% { transform: rotate(-15deg) scaleY(1) } }
@keyframes et-figure { 0% { transform: scale(0.8) rotate(10deg) translateY(0) } 50% { transform: scale(0.82) rotate(8deg) translateY(-2px) } 100% { transform: scale(0.8) rotate(10deg) translateY(0) } }
@keyframes et-glow   { 0% { box-shadow: 0 0 12px 3px #805a3a, 0 0 24px 6px rgba(128,90,58,0.2); opacity: 0.6 } 50% { box-shadow: 0 0 30px 10px #a0765a, 0 0 60px 20px rgba(160,118,90,0.4); opacity: 1 } 100% { box-shadow: 0 0 18px 5px #805a3a, 0 0 36px 10px rgba(128,90,58,0.25); opacity: 0.7 } }
@keyframes et-carpet { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }

/* ---- scene: deadly-demonstration (dark, dim-interior) ---- */
.scn-deadly-demonstration {
  background:
    linear-gradient(180deg, #1a1414 0%, #0e0a0a 40%, #040202 100%),
    radial-gradient(ellipse at 30% 70%, #2a1e1e 0%, transparent 70%);
}
.scn-deadly-demonstration .bg-shadow {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0a0a 0%, #040202 100%);
  animation: dd-bg 15s ease-in-out infinite alternate;
}
.scn-deadly-demonstration .armchair {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 70px;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%);
  border-radius: 10% 10% 8% 8% / 20% 20% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.7);
  animation: dd-chair 12s ease-in-out infinite;
}
.scn-deadly-demonstration .tongs {
  position: absolute; bottom: 30%; left: 45%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: dd-tongs 6s ease-in-out infinite;
}
.scn-deadly-demonstration .flash {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, #4a6a8a 0%, #1a2a3a 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #2a4a6a, 0 0 80px 24px rgba(42,74,106,0.3);
  animation: dd-flash 2s ease-in-out infinite alternate;
}
.scn-deadly-demonstration .figure-backs {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1212 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9) rotate(-5deg);
  animation: dd-fig 9s ease-in-out infinite;
}
.scn-deadly-demonstration .table-small {
  position: absolute; bottom: 15%; left: 55%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: dd-table 20s ease-in-out infinite;
}
.scn-deadly-demonstration .candle {
  position: absolute; bottom: 22%; left: 62%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 3px #a0805a, 0 0 24px 6px rgba(160,128,90,0.3);
  animation: dd-candle 4s ease-in-out infinite alternate;
}
@keyframes dd-bg    { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes dd-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes dd-tongs { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } }
@keyframes dd-flash { 0% { box-shadow: 0 0 20px 6px #2a4a6a, 0 0 40px 12px rgba(42,74,106,0.2); opacity: 0.3 } 50% { box-shadow: 0 0 60px 20px #4a7aaa, 0 0 100px 30px rgba(74,122,170,0.5); opacity: 1 } 100% { box-shadow: 0 0 30px 10px #2a4a6a, 0 0 60px 18px rgba(42,74,106,0.25); opacity: 0.4 } }
@keyframes dd-fig   { 0% { transform: scale(0.9) rotate(-5deg) translateX(0) } 50% { transform: scale(0.92) rotate(-3deg) translateX(-3px) } 100% { transform: scale(0.9) rotate(-5deg) translateX(0) } }
@keyframes dd-table { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes dd-candle{ 0% { box-shadow: 0 0 10px 2px #a0805a, 0 0 20px 4px rgba(160,128,90,0.2); opacity: 0.7 } 50% { box-shadow: 0 0 18px 5px #c0a080, 0 0 36px 10px rgba(192,160,128,0.4); opacity: 1 } 100% { box-shadow: 0 0 12px 3px #a0805a, 0 0 24px 6px rgba(160,128,90,0.25); opacity: 0.8 } }

/* ---- scene: trap-wires-exposed (dark, dim-interior) ---- */
.scn-trap-wires-exposed {
  background:
    linear-gradient(180deg, #0c0a0e 0%, #060408 40%, #020002 100%),
    radial-gradient(ellipse at 50% 40%, #1a141a 0%, transparent 80%);
}
.scn-trap-wires-exposed .bg-overhead {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0c12 0%, #060408 100%);
  animation: te-bg 25s ease-in-out infinite alternate;
}
.scn-trap-wires-exposed .chair-top {
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%);
  border-radius: 10% 10% 5% 5%;
  transform: perspective(120px) rotateX(40deg);
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: te-chair 14s ease-in-out infinite;
}
.scn-trap-wires-exposed .carpet-texture {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(135deg, #1a1414 0%, #0c0a0a 50%, #1a1414 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
  animation: te-carpet 20s ease-in-out infinite;
}
.scn-trap-wires-exposed .wire-left {
  position: absolute; bottom: 20%; left: 22%; width: 2px; height: 120px;
  background: linear-gradient(180deg, #5a4a4a 0%, #2a1e1e 100%);
  border-radius: 1px;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: te-wirel 18s ease-in-out infinite alternate;
}
.scn-trap-wires-exposed .wire-right {
  position: absolute; bottom: 20%; right: 22%; width: 2px; height: 120px;
  background: linear-gradient(180deg, #5a4a4a 0%, #2a1e1e 100%);
  border-radius: 1px;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: te-wirer 22s ease-in-out infinite alternate;
}
.scn-trap-wires-exposed .steel-plate {
  position: absolute; bottom: 22%; left: 38%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: te-plate 12s ease-in-out infinite;
}
.scn-trap-wires-exposed .window-frame {
  position: absolute; top: 18%; left: 65%; width: 60px; height: 80px;
  border: 4px solid #1a1212;
  border-radius: 3px;
  background: content-box linear-gradient(180deg, #0a0810 0%, #040206 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: te-window 30s ease-in-out infinite;
}
.scn-trap-wires-exposed .shadow-figure {
  position: absolute; bottom: 10%; left: 50%; width: 20px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: te-shadow 8s ease-in-out infinite alternate;
}
@keyframes te-bg     { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes te-chair  { 0%,100% { transform: perspective(120px) rotateX(40deg) } 50% { transform: perspective(120px) rotateX(42deg) } }
@keyframes te-carpet { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes te-wirel  { 0% { transform: rotate(30deg) scaleY(1) } 50% { transform: rotate(27deg) scaleY(1.01) } 100% { transform: rotate(30deg) scaleY(1) } }
@keyframes te-wirer  { 0% { transform: rotate(-30deg) scaleY(1) } 50% { transform: rotate(-27deg) scaleY(1.01) } 100% { transform: rotate(-30deg) scaleY(1) } }
@keyframes te-plate  { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.4 } }
@keyframes te-window { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }
@keyframes te-shadow { 0% { transform: translateX(-50%) scaleX(1) } 100% { transform: translateX(-50%) scaleX(1.1) } }

.scn-unknown-enemies-fear { background: linear-gradient(180deg, #1a1c23 0%, #2a2e3a 40%, #12141a 100%), radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 70%); }
.scn-unknown-enemies-fear .sky-overcast { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #3a404a 0%, #1a1c23 100%); animation: uef-sky 14s ease-in-out infinite alternate; }
.scn-unknown-enemies-fear .wall-left { position:absolute; top:10%; left:0; width:35%; bottom:15%; background: linear-gradient(90deg, #1c1e24 0%, #2a2e36 100%); border-radius: 0 4% 4% 0; box-shadow: 8px 0 20px rgba(0,0,0,.6); }
.scn-unknown-enemies-fear .wall-right { position:absolute; top:15%; right:0; width:45%; bottom:10%; background: linear-gradient(270deg, #1a1c22 0%, #2c303a 100%); border-radius: 4% 0 0 4%; box-shadow: -8px 0 20px rgba(0,0,0,.5); }
.scn-unknown-enemies-fear .street-floor { position:absolute; bottom:0; left:20%; right:10%; height:20%; background: linear-gradient(180deg, #2c2e34 0%, #1a1c20 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-unknown-enemies-fear .figure-silhouette { position:absolute; bottom:18%; left:45%; width:22px; height:48px; background: linear-gradient(180deg, #0a0b0e 0%, #16181f 100%); border-radius: 45% 45% 40% 40% / 55% 55% 30% 30%; transform-origin: bottom center; animation: uef-walk 5s ease-in-out infinite; }
.scn-unknown-enemies-fear .lamp-post { position:absolute; bottom:20%; left:65%; width:6px; height:60px; background: linear-gradient(180deg, #2a2a2a 0%, #111 100%); border-radius: 2px; }
.scn-unknown-enemies-fear .lamp-glow { position:absolute; bottom:48%; left:65%; width:20px; height:20px; background: radial-gradient(circle, #7a6a3a 0%, #4a3a1a 60%, transparent 100%); border-radius:50%; transform: translate(-7px, -10px); box-shadow: 0 0 30px 10px rgba(120,100,50,.6), 0 0 60px 20px rgba(120,100,50,.2); animation: uef-lamp 4s ease-in-out infinite alternate; }
.scn-unknown-enemies-fear .debris { position:absolute; bottom:20%; left:30%; width:12px; height:8px; background: #1e2026; border-radius: 30% 70% 50% 50% / 40% 40% 60% 60%; filter: blur(1px); animation: uef-debris 12s linear infinite; }

@keyframes uef-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes uef-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(-4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes uef-lamp { 0% { box-shadow: 0 0 20px 5px rgba(120,100,50,.5), 0 0 40px 10px rgba(120,100,50,.1); opacity:.7; } 50% { box-shadow: 0 0 40px 15px rgba(140,120,60,.9), 0 0 80px 25px rgba(140,120,60,.3); opacity:1; } 100% { box-shadow: 0 0 25px 8px rgba(120,100,50,.6), 0 0 50px 15px rgba(120,100,50,.15); opacity:.8; } }
@keyframes uef-debris { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(15px) translateY(-3px) rotate(180deg); } 100% { transform: translateX(30px) translateY(0) rotate(360deg); } }

.scn-suspicion-everyone { background: linear-gradient(180deg, #2c2e36 0%, #1e2028 40%, #14161c 100%), radial-gradient(ellipse at 50% 0%, #3a3e48 0%, transparent 70%); }
.scn-suspicion-everyone .interior-wall { position:absolute; inset:5% 10% 10% 5%; background: linear-gradient(180deg, #3c3e44 0%, #22242a 100%); border-radius: 2%; box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-suspicion-everyone .window-overcast { position:absolute; top:15%; right:15%; width:30%; height:35%; background: linear-gradient(180deg, #8a8e96 0%, #6a6e76 100%); border-radius: 4%; border: 4px solid #1a1c22; box-shadow: inset 0 0 20px rgba(255,255,255,.1); animation: se-window 8s ease-in-out infinite alternate; }
.scn-suspicion-everyone .doorway-arch { position:absolute; bottom:10%; left:15%; width:25%; height:60%; background: linear-gradient(180deg, #1a1c22 0%, #111318 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,.4); }
.scn-suspicion-everyone .figure-seated { position:absolute; bottom:12%; right:25%; width:40px; height:50px; background: radial-gradient(ellipse 60% 50% at 50% 30%, #2a2e36 0%, #181a20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: se-seated 6s ease-in-out infinite; }
.scn-suspicion-everyone .figure-doorway { position:absolute; bottom:15%; left:17%; width:20px; height:52px; background: linear-gradient(180deg, #0c0e12 0%, #1a1c22 100%); border-radius: 45% 45% 40% 40% / 55% 55% 30% 30%; box-shadow: 2px 0 6px rgba(0,0,0,.5); animation: se-doorway 5s ease-in-out infinite alternate; }
.scn-suspicion-everyone .table-object { position:absolute; bottom:15%; right:35%; width:30px; height:10px; background: linear-gradient(180deg, #3a3c42 0%, #22242a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-suspicion-everyone .shadow-stripe { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 30%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.3) 70%, transparent 100%); animation: se-stripe 10s linear infinite alternate; }

@keyframes se-window { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes se-seated { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(2px) rotate(0deg); } 60% { transform: translateX(0) rotate(1deg); } 100% { transform: translateX(-1px) rotate(0deg); } }
@keyframes se-doorway { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes se-stripe { 0% { transform: translateX(-5%); } 50% { transform: translateX(5%); } 100% { transform: translateX(-5%); } }

.scn-olinto-trace-lost { background: linear-gradient(180deg, #b8bcc0 0%, #d0d4d8 40%, #e8eaec 100%), radial-gradient(ellipse at 50% 100%, #c8ccd0 0%, transparent 70%); }
.scn-olinto-trace-lost .landscape-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d8dcde 0%, #b0b4b8 50%, #c4c8cc 100%); animation: otl-sky 20s ease-in-out infinite alternate; }
.scn-olinto-trace-lost .landscape-field { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a8e7a 0%, #6a6e5a 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.15); animation: otl-field 15s ease-in-out infinite alternate; }
.scn-olinto-trace-lost .road-perspective { position:absolute; bottom:18%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #9a9e96 0%, #7a7e76 100%); clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; }
.scn-olinto-trace-lost .figure-still { position:absolute; bottom:20%; left:45%; width:18px; height:40px; background: linear-gradient(180deg, #3a3c36 0%, #22241e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: otl-figure 8s ease-in-out infinite; }
.scn-olinto-trace-lost .tree-distant { position:absolute; bottom:25%; right:20%; width:30px; height:60px; background: radial-gradient(ellipse 60% 100% at 50% 100%, #5a5e4a 0%, #3a3e2a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; filter: blur(2px); animation: otl-tree 12s ease-in-out infinite alternate; }
.scn-olinto-trace-lost .cloud-slow-a { position:absolute; top:15%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(200,200,200,.1) 100%); border-radius:50%; filter: blur(8px); animation: otl-drift-a 45s linear infinite; }
.scn-olinto-trace-lost .cloud-slow-b { position:absolute; top:25%; right:5%; width:80px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(200,200,200,.05) 100%); border-radius:50%; filter: blur(6px); animation: otl-drift-b 60s linear infinite reverse; }

@keyframes otl-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes otl-field { 0% { transform: scaleY(1); } 50% { transform: scaleY(.98); } 100% { transform: scaleY(1); } }
@keyframes otl-figure { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(1px) translateY(-1px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(-1px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes otl-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes otl-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes otl-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-greenlaw-arrival { background: linear-gradient(180deg, #7aaacc 0%, #b8d8e8 30%, #e8e8d8 100%), radial-gradient(ellipse at 50% 0%, #f0e8d0 0%, transparent 60%); }
.scn-greenlaw-arrival .sky-sunlit { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a9abc 0%, #a8c8d8 50%, #c8d8d8 100%); animation: ga-sky 12s ease-in-out infinite alternate; }
.scn-greenlaw-arrival .castle-tower { position:absolute; bottom:25%; left:15%; width:40px; height:90px; background: linear-gradient(180deg, #d8ccc0 0%, #b8a898 100%); border-radius: 10% 10% 5% 5%; box-shadow: 4px 0 12px rgba(0,0,0,.2); animation: ga-tower 14s ease-in-out infinite alternate; }
.scn-greenlaw-arrival .castle-wall { position:absolute; bottom:20%; left:20%; right:10%; height:60px; background: linear-gradient(180deg, #d0c4b8 0%, #b0a090 100%); border-radius: 5% 5% 10% 10% / 20% 20% 30% 30%; box-shadow: 0 4px 16px rgba(0,0,0,.15); }
.scn-greenlaw-arrival .hedge-row { position:absolute; bottom:22%; left:5%; right:5%; height:20px; background: linear-gradient(180deg, #5a8a4a 0%, #3a6a2a 100%); border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%; filter: blur(1px); }
.scn-greenlaw-arrival .carriage-body { position:absolute; bottom:18%; left:35%; width:60px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 2px 4px 8px rgba(0,0,0,.3); transform-origin: bottom center; animation: ga-carriage 4s ease-in-out infinite; }
.scn-greenlaw-arrival .carriage-wheel { position:absolute; bottom:14%; left:38%; width:16px; height:16px; background: radial-gradient(circle, #6a5a4a 0%, #2a1a0a 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: ga-wheel 2s linear infinite; }
.scn-greenlaw-arrival .horse-figure { position:absolute; bottom:18%; left:55%; width:30px; height:28px; background: radial-gradient(ellipse 90% 100% at 60% 100%, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ga-horse 3s ease-in-out infinite; }
.scn-greenlaw-arrival .shadow-hard { position:absolute; bottom:15%; left:30%; right:10%; height:4px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.3) 30%, rgba(0,0,0,.4) 50%, rgba(0,0,0,.3) 70%, transparent 100%); filter: blur(1px); animation: ga-shadow 5s ease-in-out infinite alternate; }

@keyframes ga-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ga-tower { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ga-carriage { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(.5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ga-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ga-horse { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 60% { transform: translateX(0) translateY(0) rotate(-1deg); } 100% { transform: translateX(-3px) translateY(-1px) rotate(1deg); } }
@keyframes ga-shadow { 0% { transform: scaleX(.9); opacity:.6; } 50% { transform: scaleX(1.1); opacity:.9; } 100% { transform: scaleX(.9); opacity:.6; } }

.scn-siena-operation { background: linear-gradient(180deg, #0f0c1a 0%, #1c142b 40%, #2a1e3c 100%), radial-gradient(ellipse at 30% 70%, #2a1e3c 0%, transparent 70%); }
.scn-siena-operation .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1428 0%, #0f0c1a 100%); animation: sio-wall 20s ease-in-out infinite alternate; }
.scn-siena-operation .table { position:absolute; bottom:15%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1f140a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.7); animation: sio-table 12s ease-in-out infinite alternate; }
.scn-siena-operation .patient { position:absolute; bottom:23%; left:35%; width:22%; height:12%; background: linear-gradient(180deg, #c8b088 0%, #a08060 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); animation: sio-patient 6s ease-in-out infinite; }
.scn-siena-operation .doctor { position:absolute; bottom:20%; right:25%; width:18%; height:35%; background: linear-gradient(180deg, #1c1428 0%, #0f0c1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sio-doctor 5s ease-in-out infinite; }
.scn-siena-operation .candle-glow { position:absolute; bottom:22%; left:48%; width:12%; height:20%; background: radial-gradient(ellipse at 50% 80%, #ffb347 0%, #d9801a 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: sio-candle-glow 3s ease-in-out infinite alternate; }
.scn-siena-operation .candle-flame { position:absolute; bottom:38%; left:50%; width:2%; height:6%; background: radial-gradient(ellipse at 50% 20%, #ffee80 0%, #ffb347 60%, transparent 100%); border-radius: 50%; transform: translateX(-50%); animation: sio-flame 0.8s ease-in-out infinite alternate; }
.scn-siena-operation .shadow { position:absolute; bottom:10%; left:20%; width:60%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: sio-shadow 8s ease-in-out infinite alternate; }
@keyframes sio-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sio-table { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes sio-patient { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-1px) scaleY(1.01) } 50% { transform: translateY(0) scaleY(1) } 75% { transform: translateY(1px) scaleY(0.99) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes sio-doctor { 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(-2deg) } }
@keyframes sio-candle-glow { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes sio-flame { 0% { transform: translateX(-50%) translateY(0) scaleY(1) } 50% { transform: translateX(-50%) translateY(-2px) scaleY(1.15) } 100% { transform: translateX(-50%) translateY(0) scaleY(1) } }
@keyframes sio-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-wire-to-muriel { background: linear-gradient(180deg, #121c1c 0%, #1a2a28 40%, #2a3a38 100%), radial-gradient(ellipse at 70% 30%, #2a3a38 0%, transparent 70%); }
.scn-wire-to-muriel .desk { position:absolute; bottom:20%; left:15%; width:70%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6px; box-shadow: 0 6px 14px rgba(0,0,0,0.5); animation: wim-desk 10s ease-in-out infinite alternate; }
.scn-wire-to-muriel .lamp-glow { position:absolute; bottom:30%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 20%, #f0e68c 0%, #d4c270 40%, transparent 70%); filter: blur(10px); animation: wim-lamp 4s ease-in-out infinite alternate; }
.scn-wire-to-muriel .figure { position:absolute; bottom:22%; left:30%; width:16%; height:40%; background: linear-gradient(180deg, #1a2a28 0%, #0f1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wim-figure 6s ease-in-out infinite; }
.scn-wire-to-muriel .arm { position:absolute; bottom:38%; left:34%; width:12%; height:4%; background: linear-gradient(90deg, #1a2a28 0%, #0f1a1a 100%); border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%; transform-origin: right center; animation: wim-arm 2s ease-in-out infinite alternate; }
.scn-wire-to-muriel .telegram { position:absolute; bottom:30%; left:45%; width:10%; height:6%; background: linear-gradient(180deg, #f5f5dc 0%, #d4d0b8 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: wim-telegram 8s ease-in-out infinite; }
.scn-wire-to-muriel .window { position:absolute; top:12%; right:10%; width:20%; height:30%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: wim-window 15s ease-in-out infinite alternate; }
.scn-wire-to-muriel .clock { position:absolute; bottom:40%; left:12%; width:8%; height:8%; background: radial-gradient(circle, #e0d0b0 0%, #b0a080 70%); border-radius: 50%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: wim-clock 60s steps(60) infinite; }
@keyframes wim-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wim-lamp { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes wim-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes wim-arm { 0% { transform: rotate(-20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-20deg) } }
@keyframes wim-telegram { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wim-window { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes wim-clock { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }

.scn-only-muriel-knows { background: linear-gradient(180deg, #1a1a24 0%, #242436 40%, #323248 100%), radial-gradient(ellipse at 50% 60%, #323248 0%, transparent 70%); }
.scn-only-muriel-knows .counter { position:absolute; bottom:18%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 8px; box-shadow: 0 6px 14px rgba(0,0,0,0.6); animation: omk-counter 12s ease-in-out infinite alternate; }
.scn-only-muriel-knows .clerk { position:absolute; bottom:22%; left:20%; width:16%; height:38%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: omk-clerk 5s ease-in-out infinite; }
.scn-only-muriel-knows .patron { position:absolute; bottom:22%; right:20%; width:14%; height:35%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: omk-patron 6s ease-in-out infinite; }
.scn-only-muriel-knows .telegram { position:absolute; bottom:28%; left:48%; width:8%; height:5%; background: linear-gradient(180deg, #f0f0e0 0%, #d0d0b0 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: omk-telegram 7s ease-in-out infinite; }
.scn-only-muriel-knows .lamp-glow { position:absolute; bottom:30%; left:35%; width:18%; height:25%; background: radial-gradient(ellipse at 50% 30%, #ffe080 0%, #d4b060 40%, transparent 70%); filter: blur(12px); animation: omk-lamp 3s ease-in-out infinite alternate; }
.scn-only-muriel-knows .envelope { position:absolute; bottom:24%; left:45%; width:6%; height:4%; background: linear-gradient(180deg, #e8e0c0 0%, #c8bea0 100%); border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: omk-envelope 9s ease-in-out infinite alternate; }
.scn-only-muriel-knows .shadows { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,0.4) 0%, transparent 60%); animation: omk-shadows 10s ease-in-out infinite alternate; }
@keyframes omk-counter { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes omk-clerk { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes omk-patron { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes omk-telegram { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(4px) translateY(-2px) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes omk-lamp { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes omk-envelope { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes omk-shadows { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-durnford-disappears { background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2a1e 100%), radial-gradient(ellipse at 60% 40%, #3a2a1e 0%, transparent 70%); }
.scn-durnford-disappears .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0 / 80% 80% 0 0; animation: dud-floor 14s ease-in-out infinite alternate; }
.scn-durnford-disappears .wall { position:absolute; top:0; left:0; right:0; bottom:20%; background: linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.5); animation: dud-wall 20s ease-in-out infinite alternate; }
.scn-durnford-disappears .door { position:absolute; bottom:18%; right:15%; width:20%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 0 14px rgba(0,0,0,0.6); animation: dud-door 10s ease-in-out infinite; }
.scn-durnford-disappears .porter { position:absolute; bottom:20%; left:25%; width:16%; height:35%; background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dud-porter 8s ease-in-out infinite; }
.scn-durnford-disappears .clock-face { position:absolute; top:15%; left:10%; width:12%; height:12%; background: radial-gradient(circle, #e8dcc0 0%, #b8a888 70%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: dud-clock-face 3s ease-in-out infinite alternate; }
.scn-durnford-disappears .clock-hands { position:absolute; top:15%; left:10%; width:12%; height:12%; background: transparent; border-radius: 50%; box-shadow: none; animation: dud-clock-hands 60s linear infinite; }
.scn-durnford-disappears .key-rack { position:absolute; top:20%; right:38%; width:2%; height:15%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,0.4); animation: dud-keys 12s ease-in-out infinite alternate; }
.scn-durnford-disappears .desk { position:absolute; bottom:18%; left:35%; width:25%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: dud-desk 15s ease-in-out infinite alternate; }
@keyframes dud-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dud-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dud-door { 0% { transform: rotateY(0) } 25% { transform: rotateY(-3deg) } 50% { transform: rotateY(0) } 75% { transform: rotateY(2deg) } 100% { transform: rotateY(0) } }
@keyframes dud-porter { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes dud-clock-face { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dud-clock-hands { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes dud-keys { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes dud-desk { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }

/* Scene: safe-examined-stamps (ses) */
.scn-safe-examined-stamps {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 100%), radial-gradient(ellipse at 70% 30%, #fff2d0 0%, transparent 60%);
}
.scn-safe-examined-stamps .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8dcc4 0%, #c8b89a 100%); 
  animation: ses-wall 20s ease-in-out infinite alternate;
}
.scn-safe-examined-stamps .table {
  position: absolute; bottom: 15%; left: 10%; right: 30%; height: 40%; 
  background: linear-gradient(180deg, #8b6b4a 0%, #5a3e2a 100%); 
  border-radius: 6px; box-shadow: 0 -6px 20px rgba(0,0,0,0.3);
}
.scn-safe-examined-stamps .safe {
  position: absolute; bottom: 25%; left: 20%; width: 80px; height: 100px; 
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); 
  border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,0.5); 
  animation: ses-safe 30s ease-in-out infinite;
}
.scn-safe-examined-stamps .papers {
  position: absolute; background: #f0e6d0; border-radius: 2px; 
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-safe-examined-stamps .papers-1 {
  bottom: 38%; left: 25%; width: 40px; height: 30px; transform: rotate(-12deg);
  animation: ses-paper 8s ease-in-out infinite;
}
.scn-safe-examined-stamps .papers-2 {
  bottom: 36%; left: 32%; width: 35px; height: 28px; transform: rotate(7deg);
  animation: ses-paper 10s ease-in-out infinite 2s;
}
.scn-safe-examined-stamps .papers-3 {
  bottom: 40%; left: 18%; width: 30px; height: 25px; transform: rotate(-3deg);
  animation: ses-paper 12s ease-in-out infinite 4s;
}
.scn-safe-examined-stamps .figure {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 80px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: ses-figure 6s ease-in-out infinite;
}
.scn-safe-examined-stamps .lamp {
  position: absolute; bottom: 55%; left: 60%; width: 20px; height: 30px; 
  background: linear-gradient(180deg, #b08050 0%, #6a4a30 100%); 
  border-radius: 30% 30% 10% 10%; 
}
.scn-safe-examined-stamps .glow {
  position: absolute; bottom: 55%; left: 60%; width: 120px; height: 120px; 
  background: radial-gradient(circle, rgba(255, 215, 140, 0.4) 0%, transparent 70%); 
  transform: translate(-50%, -50%);
  animation: ses-glow 4s ease-in-out infinite alternate;
}
@keyframes ses-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes ses-safe {
  0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); }
}
@keyframes ses-paper {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(6px); }
  100% { transform: rotate(-8deg) translateX(3px); }
}
@keyframes ses-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-2px) rotate(0deg); }
}
@keyframes ses-glow {
  0% { box-shadow: 0 0 20px 10px rgba(255, 215, 140, 0.3); }
  100% { box-shadow: 0 0 40px 20px rgba(255, 215, 140, 0.6); }
}

/* Scene: stamps-stolen-discovery (ssd) */
.scn-stamps-stolen-discovery {
  background: linear-gradient(180deg, #fff8e0 0%, #e8dcc0 100%), radial-gradient(ellipse at 40% 50%, #fffce8 0%, transparent 80%);
}
.scn-stamps-stolen-discovery .desk {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 50%; 
  background: linear-gradient(180deg, #9c7a5a 0%, #6a5034 100%); 
  border-radius: 8px; box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-stamps-stolen-discovery .stamp-pad {
  position: absolute; bottom: 40%; left: 35%; width: 30px; height: 20px; 
  background: #c8553d; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ssd-pad 12s ease-in-out infinite;
}
.scn-stamps-stolen-discovery .stamp-object {
  position: absolute; bottom: 45%; left: 42%; width: 20px; height: 18px; 
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%); 
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ssd-stamp 15s ease-in-out infinite;
}
.scn-stamps-stolen-discovery .hand {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 50px; 
  background: linear-gradient(180deg, #d4b896 0%, #b08a6a 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; 
  transform-origin: bottom center;
  animation: ssd-hand 5s ease-in-out infinite;
}
.scn-stamps-stolen-discovery .stamps {
  position: absolute; width: 22px; height: 16px; 
  background: linear-gradient(90deg, #f0d8b0 0%, #e0c090 100%); 
  border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.scn-stamps-stolen-discovery .stamps-a {
  bottom: 48%; left: 25%; transform: rotate(-8deg); 
  animation: ssd-stamps 20s ease-in-out infinite;
}
.scn-stamps-stolen-discovery .stamps-b {
  bottom: 50%; left: 30%; transform: rotate(12deg); 
  animation: ssd-stamps 22s ease-in-out infinite 3s;
}
.scn-stamps-stolen-discovery .stamps-c {
  bottom: 46%; left: 20%; transform: rotate(-2deg); 
  animation: ssd-stamps 18s ease-in-out infinite 5s;
}
.scn-stamps-stolen-discovery .magnifier {
  position: absolute; bottom: 35%; left: 55%; width: 24px; height: 32px; 
  background: radial-gradient(circle, #d0e8f0 0%, #90b8c8 50%, transparent 60%); 
  border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: ssd-mag 14s ease-in-out infinite;
}
@keyframes ssd-pad {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); }
}
@keyframes ssd-stamp {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
}
@keyframes ssd-hand {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(10px) translateY(-8px) rotate(10deg); }
  50% { transform: translateX(12px) translateY(-10px) rotate(8deg); }
  75% { transform: translateX(6px) translateY(-4px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ssd-stamps {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(8px); }
  100% { transform: rotate(-5deg) translateX(2px); }
}
@keyframes ssd-mag {
  0% { transform: rotate(0deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-10deg); }
}

/* Scene: forged-document-fear (fdf) */
.scn-forged-document-fear {
  background: linear-gradient(180deg, #1e1a24 0%, #2d2636 40%, #1a1520 100%), radial-gradient(ellipse at 50% 40%, #4a3a5a 0%, transparent 80%);
}
.scn-forged-document-fear .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0f0c14 0%, #1a1520 100%);
  animation: fdf-dark 30s ease-in-out infinite alternate;
}
.scn-forged-document-fear .spotlight {
  position: absolute; bottom: 30%; left: 20%; right: 20%; top: 10%; 
  background: radial-gradient(ellipse at 50% 100%, rgba(255,240,200,0.6) 0%, transparent 70%);
  animation: fdf-spotlight 6s ease-in-out infinite alternate;
}
.scn-forged-document-fear .document {
  position: absolute; bottom: 35%; left: 25%; width: 100px; height: 70px; 
  background: linear-gradient(180deg, #f5ead0 0%, #d4c0a0 100%); 
  border-radius: 2px; box-shadow: 0 6px 16px rgba(0,0,0,0.7);
  animation: fdf-document 4s ease-in-out infinite;
}
.scn-forged-document-fear .ink-bottle {
  position: absolute; bottom: 40%; left: 45%; width: 14px; height: 20px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); 
  border-radius: 30% 30% 10% 10%; 
  animation: fdf-ink 12s ease-in-out infinite;
}
.scn-forged-document-fear .pen {
  position: absolute; bottom: 45%; left: 38%; width: 40px; height: 4px; 
  background: linear-gradient(90deg, #8a7a6a 0%, #c0b0a0 50%, #6a5a4a 100%); 
  border-radius: 2px; transform: rotate(30deg); transform-origin: left center;
  animation: fdf-pen 2s ease-in-out infinite;
}
.scn-forged-document-fear .hand-signing {
  position: absolute; bottom: 40%; left: 30%; width: 22px; height: 40px; 
  background: linear-gradient(180deg, #d4b896 0%, #b08a6a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center;
  animation: fdf-hand 3s ease-in-out infinite;
}
.scn-forged-document-fear .shadow-figure {
  position: absolute; bottom: 10%; left: 60%; width: 80px; height: 140px; 
  background: linear-gradient(180deg, #1a1520 0%, #0a0810 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  opacity: 0.8; transform: scaleX(-1);
  animation: fdf-shadow 20s ease-in-out infinite;
}
@keyframes fdf-dark {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes fdf-spotlight {
  0% { opacity: 0.6; } 100% { opacity: 1; }
}
@keyframes fdf-document {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-3px); }
  100% { transform: rotate(-1deg) translateY(-1px); }
}
@keyframes fdf-ink {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); }
}
@keyframes fdf-pen {
  0% { transform: rotate(25deg) translateX(0); }
  25% { transform: rotate(35deg) translateX(5px); }
  50% { transform: rotate(20deg) translateX(10px); }
  75% { transform: rotate(30deg) translateX(8px); }
  100% { transform: rotate(25deg) translateX(0); }
}
@keyframes fdf-hand {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(8px) translateY(-4px) rotate(5deg); }
  100% { transform: translateX(0) translateY(-2px) rotate(-2deg); }
}
@keyframes fdf-shadow {
  0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-6px); } 100% { transform: scaleX(-1) translateY(0); }
}

/* Scene: detective-description (ded) */
.scn-detective-description {
  background: linear-gradient(180deg, #e8f0f5 0%, #c0d0d8 100%), radial-gradient(ellipse at 30% 20%, #f0f8ff 0%, transparent 70%);
}
.scn-detective-description .room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d8e4ec 0%, #b0c4cc 100%);
  animation: ded-room 40s ease-in-out infinite alternate;
}
.scn-detective-description .window {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 100px; 
  background: linear-gradient(180deg, #b0d4e8 0%, #80a8c0 100%); 
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
}
.scn-detective-description .sunbeam {
  position: absolute; top: 20%; left: 15%; width: 120px; height: 200px; 
  background: linear-gradient(135deg, rgba(255,255,240,0.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: ded-beam 15s ease-in-out infinite;
}
.scn-detective-description .officer {
  position: absolute; bottom: 25%; left: 40%; width: 28px; height: 70px; 
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center;
  animation: ded-officer 8s ease-in-out infinite;
}
.scn-detective-description .chair {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 50px; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); 
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ded-chair 20s ease-in-out infinite;
}
.scn-detective-description .hat {
  position: absolute; bottom: 65%; left: 38%; width: 30px; height: 12px; 
  background: #2a2a2a; border-radius: 50% 50% 10% 10%; 
  box-shadow: 0 -2px 4px rgba(0,0,0,0.4);
  animation: ded-hat 12s ease-in-out infinite;
}
.scn-detective-description .bag {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 20px; 
  background: #d4a070; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ded-bag 18s ease-in-out infinite;
}
@keyframes ded-room {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; }
}
@keyframes ded-beam {
  0% { opacity: 0.3; transform: skewX(-10deg); }
  50% { opacity: 0.6; transform: skewX(-5deg) translateY(10px); }
  100% { opacity: 0.4; transform: skewX(-12deg); }
}
@keyframes ded-officer {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes ded-chair {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); }
}
@keyframes ded-hat {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
}
@keyframes ded-bag {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}

.scn-german-embassy {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 30%, #bfaa8a 60%, #a89070 100%),
    radial-gradient(ellipse at 30% 20%, #f5ecd0 0%, transparent 70%),
    linear-gradient(180deg, #7a6a5a 0%, transparent 100%);
}
.scn-german-embassy .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #ede2d0 0%, #d8c8b0 50%, #c4b498 100%);
  animation: ge-wall 20s ease-in-out infinite alternate;
}
.scn-german-embassy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-top: 3px solid #b09878;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.15);
}
.scn-german-embassy .window-frame {
  position: absolute; top: 8%; left: 60%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%);
  border: 6px solid #9a8a6e; border-radius: 4px;
  box-shadow: 0 0 30px rgba(200,190,150,0.3);
  animation: ge-window 15s ease-in-out infinite alternate;
}
.scn-german-embassy .desk {
  position: absolute; bottom: 18%; left: 15%; width: 160px; height: 70px;
  background: linear-gradient(180deg, #6a4a2e 0%, #4a3020 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3), inset 0 2px 4px #8a6a4e;
  transform: perspective(300px) rotateX(5deg);
  animation: ge-desk 8s ease-in-out infinite alternate;
}
.scn-german-embassy .figure {
  position: absolute; bottom: 22%; left: 28%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 60%, #0a0a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ge-figure 6s ease-in-out infinite;
}
.scn-german-embassy .document {
  position: absolute; bottom: 22%; left: 20%; width: 40px; height: 28px;
  background: linear-gradient(135deg, #f5ead0 0%, #e8d8b8 50%, #dcc8a0 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform: rotate(-5deg);
  animation: ge-doc 10s ease-in-out infinite alternate;
}
.scn-german-embassy .molding {
  position: absolute; top: 22%; left: 35%; width: 200px; height: 12px;
  background: linear-gradient(180deg, #c8b898 0%, #b09878 50%, #a08868 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  animation: ge-mold 25s ease-in-out infinite alternate;
}
.scn-german-embassy .light-shaft {
  position: absolute; top: 0; left: 65%; width: 80px; bottom: 30%;
  background: linear-gradient(180deg, rgba(245,236,208,0.3) 0%, rgba(245,236,208,0.05) 100%);
  filter: blur(12px);
  animation: ge-light 12s ease-in-out infinite alternate;
}

@keyframes ge-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes ge-window { 0% { box-shadow: 0 0 20px rgba(200,190,150,0.2); } 50% { box-shadow: 0 0 40px rgba(220,210,180,0.4); } 100% { box-shadow: 0 0 30px rgba(200,190,150,0.25); } }
@keyframes ge-desk { 0% { transform: perspective(300px) rotateX(5deg) translateY(0); } 50% { transform: perspective(300px) rotateX(4deg) translateY(-1px); } 100% { transform: perspective(300px) rotateX(5deg) translateY(0); } }
@keyframes ge-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-1deg) translateY(-1px); } 50% { transform: translateX(4px) rotate(1deg) translateY(0); } 75% { transform: translateX(2px) rotate(-1deg) translateY(-1px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ge-doc { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-4deg) scale(1.02); } 100% { transform: rotate(-6deg) scale(1); } }
@keyframes ge-mold { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ge-light { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

.scn-hotel-cecil {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a40 30%, #3a3a50 60%, #4a4a5e 100%),
    radial-gradient(ellipse at 40% 50%, #4a4a5e 0%, transparent 80%),
    linear-gradient(180deg, #0a0a1a 0%, transparent 60%);
}
.scn-hotel-cecil .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2e2e42 0%, #3a3a4e 50%, #2a2a3a 100%);
  animation: hc-wall 18s ease-in-out infinite alternate;
}
.scn-hotel-cecil .lamp-stand {
  position: absolute; bottom: 20%; left: 25%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: hc-lamp 7s ease-in-out infinite alternate;
}
.scn-hotel-cecil .lamp-glow {
  position: absolute; bottom: 42%; left: 23%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e8c878 0%, #c8a858 40%, #a08030 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,168,88,0.3), 0 0 80px 20px rgba(200,168,88,0.15);
  animation: hc-glow 4s ease-in-out infinite alternate;
}
.scn-hotel-cecil .desk {
  position: absolute; bottom: 8%; left: 20%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: hc-desk 12s ease-in-out infinite alternate;
}
.scn-hotel-cecil .chair-back {
  position: absolute; bottom: 18%; left: 28%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
  animation: hc-chair 9s ease-in-out infinite;
}
.scn-hotel-cecil .figure-seated {
  position: absolute; bottom: 16%; left: 24%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hc-figure 6s ease-in-out infinite;
}
.scn-hotel-cecil .window-high {
  position: absolute; top: 10%; right: 20%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 50%, #0a0a2e 100%);
  border: 4px solid #4a4a5e; border-radius: 3px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: hc-window 20s ease-in-out infinite alternate;
}
.scn-hotel-cecil .curtain {
  position: absolute; top: 10%; right: 18%; width: 30px; bottom: 40%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 50%, #1a0a1a 100%);
  border-radius: 4px 0 0 4px;
  filter: blur(2px);
  animation: hc-curtain 15s ease-in-out infinite alternate;
}

@keyframes hc-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hc-lamp { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes hc-glow { 0% { opacity: 0.7; transform: scale(1); } 33% { opacity: 0.9; transform: scale(1.1); } 66% { opacity: 0.8; transform: scale(0.95); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes hc-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hc-chair { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes hc-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg) translateY(-1px); } 50% { transform: translateX(4px) rotate(-1deg) translateY(0); } 75% { transform: translateX(2px) rotate(1deg) translateY(-1px); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hc-window { 0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); } 50% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(0,0,0,0.4); } 100% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); } }
@keyframes hc-curtain { 0% { transform: translateX(0); opacity: 0.8; } 50% { transform: translateX(-3px); opacity: 0.9; } 100% { transform: translateX(0); opacity: 0.8; } }

.scn-school-principal {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #e0d4c0 30%, #d0c0a8 60%, #c0b098 100%),
    radial-gradient(ellipse at 60% 30%, #f8f0e0 0%, transparent 70%),
    linear-gradient(180deg, #b0a088 0%, transparent 100%);
}
.scn-school-principal .office-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #e8dcc8 0%, #dcccb4 50%, #d0c0a8 100%);
  animation: sp-wall 20s ease-in-out infinite alternate;
}
.scn-school-principal .bookshelf {
  position: absolute; top: 8%; right: 8%; width: 70px; bottom: 35%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 50%, #3a2010 100%);
  border-radius: 3px; box-shadow: 0 0 30px rgba(0,0,0,0.15);
  animation: sp-shelf 25s ease-in-out infinite alternate;
}
.scn-school-principal .desk-front {
  position: absolute; bottom: 15%; left: 25%; width: 140px; height: 50px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.2), inset 0 2px 4px #7a6050;
  animation: sp-desk 10s ease-in-out infinite alternate;
}
.scn-school-principal .chair-principal {
  position: absolute; bottom: 12%; left: 35%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: sp-chair 8s ease-in-out infinite;
}
.scn-school-principal .figure-principal {
  position: absolute; bottom: 20%; left: 38%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #3a3038 0%, #1a1820 60%, #0a0a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sp-figure 7s ease-in-out infinite;
}
.scn-school-principal .window-wide {
  position: absolute; top: 6%; left: 55%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #e8f0e8 0%, #d8e0d0 50%, #c0c8b8 100%);
  border: 6px solid #a08870; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,240,0.4), 0 0 30px rgba(200,200,180,0.2);
  animation: sp-window 18s ease-in-out infinite alternate;
}
.scn-school-principal .papers {
  position: absolute; bottom: 18%; left: 28%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #f8f0e0 0%, #ece0c8 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  transform: rotate(-2deg);
  animation: sp-papers 12s ease-in-out infinite alternate;
}
.scn-school-principal .pen-holder {
  position: absolute; bottom: 20%; left: 40%; width: 14px; height: 16px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 2px; transform: rotate(10deg);
  animation: sp-pen 9s ease-in-out infinite alternate;
}

@keyframes sp-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.93; } }
@keyframes sp-shelf { 0% { box-shadow: 0 0 20px rgba(0,0,0,0.1); } 50% { box-shadow: 0 0 40px rgba(0,0,0,0.2); } 100% { box-shadow: 0 0 30px rgba(0,0,0,0.15); } }
@keyframes sp-desk { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sp-chair { 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 sp-figure { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(-1deg) translateY(-1px); } 66% { transform: translateX(-1px) rotate(1deg) translateY(0); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sp-window { 0% { opacity: 0.85; box-shadow: inset 0 0 20px rgba(255,255,240,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,240,0.5), 0 0 40px rgba(200,200,180,0.3); } 100% { opacity: 0.9; box-shadow: inset 0 0 20px rgba(255,255,240,0.35); } }
@keyframes sp-papers { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes sp-pen { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }

.scn-lydia-moreton {
  background:
    linear-gradient(180deg, #c8b8a0 0%, #b0a088 30%, #988870 60%, #807060 100%),
    radial-gradient(ellipse at 50% 20%, #d8c8b0 0%, transparent 70%),
    linear-gradient(180deg, #605040 0%, transparent 100%);
}
.scn-lydia-moreton .hall-wall {
  position: absolute; inset: 0 0 22% 0;
  background: linear-gradient(135deg, #d4c4ac 0%, #c0b098 50%, #ac9c84 100%);
  border-bottom: 4px solid #8a7a6a;
  animation: lm-wall 22s ease-in-out infinite alternate;
}
.scn-lydia-moreton .stone-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #4a3a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
}
.scn-lydia-moreton .archway {
  position: absolute; top: 12%; left: 35%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 60%, #5a4a3a 100%);
  border-radius: 50px 50px 0 0 / 60px 60px 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  animation: lm-arch 30s ease-in-out infinite alternate;
}
.scn-lydia-moreton .footman {
  position: absolute; bottom: 8%; left: 45%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #2a1a20 0%, #1a0a10 60%, #0a0008 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform-origin: bottom center;
  animation: lm-footman 8s ease-in-out infinite;
}
.scn-lydia-moreton .door {
  position: absolute; bottom: 15%; right: 12%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 50%, #2a1810 100%);
  border: 3px solid #4a3020; border-radius: 3px;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
  animation: lm-door 15s ease-in-out infinite alternate;
}
.scn-lydia-moreton .chandelier {
  position: absolute; top: 4%; left: 50%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #c8b080 0%, #a89060 50%, #886840 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px rgba(200,176,128,0.2);
  animation: lm-chandelier 12s ease-in-out infinite alternate;
}
.scn-lydia-moreton .light-ray {
  position: absolute; top: 8%; left: 35%; width: 100px; bottom: 40%;
  background: linear-gradient(180deg, rgba(240,232,216,0.15) 0%, rgba(240,232,216,0.05) 60%, transparent 100%);
  filter: blur(8px);
  animation: lm-ray 14s ease-in-out infinite alternate;
}
.scn-lydia-moreton .wainscot {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
}

@keyframes lm-wall { 0% { opacity: 0.88; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes lm-arch { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.15); } 50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.25); } 100% { box-shadow: inset 0 0 40px rgba(0,0,0,0.2); } }
@keyframes lm-footman { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(-1deg) translateY(-1px); } 66% { transform: translateX(-2px) rotate(1deg) translateY(0); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lm-door { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.93; } }
@keyframes lm-chandelier { 0% { transform: translateX(-50%) rotate(-2deg); } 33% { transform: translateX(-50%) rotate(2deg); } 66% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes lm-ray { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

.scn-muriel-found {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a38 40%, #1e1e2a 100%), radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-muriel-found .bg-overcast {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 50%, #2a2a38 100%);
  animation: mf-sky 14s ease-in-out infinite alternate;
}
.scn-muriel-found .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #2e2e3a 0%, #1a1a24 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  border-radius: 2% 2% 0 0;
  animation: mf-floor 12s ease-in-out infinite;
}
.scn-muriel-found .folding-door-left {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 22%;
  height: 70%;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-right: 2px solid #2a1a0a;
  border-radius: 4% 0 0 4%;
  transform-origin: left center;
  animation: mf-door-open 8s ease-in-out infinite alternate;
}
.scn-muriel-found .folding-door-right {
  position: absolute;
  bottom: 20%;
  left: 32%;
  width: 22%;
  height: 70%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 100%);
  border-left: 2px solid #2a1a0a;
  border-radius: 0 4% 4% 0;
  transform-origin: right center;
  animation: mf-door-open 8s ease-in-out infinite alternate-reverse;
}
.scn-muriel-found .window {
  position: absolute;
  bottom: 50%;
  left: 55%;
  width: 20%;
  height: 30%;
  background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%);
  border: 4px solid #4a3a2a;
  border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: mf-window-fade 18s ease-in-out infinite alternate;
}
.scn-muriel-found .figure-muriel {
  position: absolute;
  bottom: 5%;
  left: 38%;
  width: 8%;
  height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mf-walk 6s ease-in-out infinite;
  box-shadow: -4px 0 8px rgba(0,0,0,.5);
}
.scn-muriel-found .shadow-pane {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: mf-shadow-pulse 4s ease-in-out infinite alternate;
}
@keyframes mf-sky {
  0% { opacity: .6; background-position: 0 0; }
  50% { opacity: .8; background-position: 0 10%; }
  100% { opacity: .7; background-position: 0 5%; }
}
@keyframes mf-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mf-door-open {
  0% { transform: skewY(0deg); }
  50% { transform: skewY(-3deg); }
  100% { transform: skewY(0deg); }
}
@keyframes mf-window-fade {
  0% { opacity: .7; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
  50% { opacity: .9; box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
  100% { opacity: .75; box-shadow: inset 0 0 25px rgba(0,0,0,.35); }
}
@keyframes mf-walk {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(4px) translateY(-3px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes mf-shadow-pulse {
  0% { opacity: .5; }
  50% { opacity: .7; }
  100% { opacity: .5; }
}

.scn-hope-for-durnford {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 50%, #0a0a14 100%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-hope-for-durnford .bg-darkroom {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #12121e 0%, #0a0a14 100%);
  animation: hd-dark 20s ease-in-out infinite alternate;
}
.scn-hope-for-durnford .bed {
  position: absolute;
  bottom: 15%;
  left: 25%;
  width: 50%;
  height: 45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 6% 6% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.8);
  animation: hd-bed 10s ease-in-out infinite;
}
.scn-hope-for-durnford .figure-durnford {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 7%;
  height: 25%;
  background: linear-gradient(180deg, #2e2e3e 0%, #1a1a28 50%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-lying 6s ease-in-out infinite;
}
.scn-hope-for-durnford .figure-miss-leithcourt {
  position: absolute;
  bottom: 10%;
  left: 55%;
  width: 8%;
  height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-sob 8s ease-in-out infinite;
}
.scn-hope-for-durnford .lamp {
  position: absolute;
  bottom: 55%;
  left: 18%;
  width: 10%;
  height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #a08060 0%, #503820 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(160,128,96,.2);
  animation: hd-lamp-flicker 4s ease-in-out infinite alternate;
}
.scn-hope-for-durnford .shadow-veil {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%);
  animation: hd-veil-pulse 5s ease-in-out infinite alternate;
}
@keyframes hd-dark {
  0% { opacity: .5; }
  50% { opacity: .7; }
  100% { opacity: .6; }
}
@keyframes hd-bed {
  0% { transform: translateY(0); box-shadow: 0 8px 20px rgba(0,0,0,.8); }
  50% { transform: translateY(-2px); box-shadow: 0 12px 25px rgba(0,0,0,.9); }
  100% { transform: translateY(0); box-shadow: 0 8px 20px rgba(0,0,0,.8); }
}
@keyframes hd-lying {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hd-sob {
  0% { transform: translateY(0) scale(1); }
  25% { transform: translateY(-5px) scale(1.02); }
  50% { transform: translateY(-2px) scale(1); }
  75% { transform: translateY(-4px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes hd-lamp-flicker {
  0% { opacity: .8; box-shadow: 0 0 30px 12px rgba(160,128,96,.2); }
  50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(160,128,96,.4); }
  100% { opacity: .85; box-shadow: 0 0 35px 14px rgba(160,128,96,.25); }
}
@keyframes hd-veil-pulse {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .65; }
}

.scn-muriel-at-bedside {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #06060e 100%), radial-gradient(ellipse at 30% 50%, #1a1a2e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-muriel-at-bedside .bg-dimroom {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #222236 0%, #12121e 100%);
  animation: mb-dim 15s ease-in-out infinite alternate;
}
.scn-muriel-at-bedside .bed {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 60%;
  height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #181828 100%);
  border-radius: 8% 8% 25% 25%;
  box-shadow: 0 10px 25px rgba(0,0,0,.7);
  animation: mb-bed 12s ease-in-out infinite;
}
.scn-muriel-at-bedside .figure-nurse {
  position: absolute;
  bottom: 12%;
  left: 30%;
  width: 7%;
  height: 26%;
  background: linear-gradient(180deg, #2e2e3e 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-nurse 7s ease-in-out infinite;
}
.scn-muriel-at-bedside .figure-muriel {
  position: absolute;
  bottom: 8%;
  left: 52%;
  width: 8%;
  height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-bend 5s ease-in-out infinite;
  box-shadow: -3px 0 6px rgba(0,0,0,.5);
}
.scn-muriel-at-bedside .glow-source {
  position: absolute;
  bottom: 55%;
  left: 40%;
  width: 12%;
  height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #c0a060 0%, #806030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(192,160,96,.15);
  animation: mb-glow 3s ease-in-out infinite alternate;
}
.scn-muriel-at-bedside .curtain-left {
  position: absolute;
  bottom: 25%;
  left: 5%;
  width: 15%;
  height: 55%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 0 0 40%;
  transform-origin: top left;
  animation: mb-curtain 20s ease-in-out infinite alternate;
}
.scn-muriel-at-bedside .curtain-right {
  position: absolute;
  bottom: 25%;
  right: 5%;
  width: 15%;
  height: 55%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 20% 40% 0;
  transform-origin: top right;
  animation: mb-curtain 20s ease-in-out infinite alternate-reverse;
}
@keyframes mb-dim {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .7; }
}
@keyframes mb-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes mb-nurse {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes mb-bend {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  50% { transform: translateY(-4px) rotate(3deg) scaleX(0.95); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes mb-glow {
  0% { opacity: .7; box-shadow: 0 0 40px 20px rgba(192,160,96,.15); }
  50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(192,160,96,.3); }
  100% { opacity: .8; box-shadow: 0 0 45px 22px rgba(192,160,96,.2); }
}
@keyframes mb-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}

.scn-secret-arrangements {
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 40%, #06060e 100%), radial-gradient(ellipse at 50% 0%, #2a2a3a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-secret-arrangements .bg-study {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121e 100%);
  animation: sa-room 18s ease-in-out infinite alternate;
}
.scn-secret-arrangements .desk {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 60%;
  height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: sa-desk 14s ease-in-out infinite;
}
.scn-secret-arrangements .figure-writing {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 8%;
  height: 28%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-write 6s ease-in-out infinite;
}
.scn-secret-arrangements .lamp {
  position: absolute;
  bottom: 55%;
  left: 25%;
  width: 10%;
  height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #c8a060 0%, #a07030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,160,96,.15);
  animation: sa-lamp-flicker 3s ease-in-out infinite alternate;
}
.scn-secret-arrangements .papers {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 20%;
  height: 10%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 2%;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: sa-papers 8s ease-in-out infinite;
}
.scn-secret-arrangements .shadow-cast {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 70%;
  height: 15%;
  background: linear-gradient(90deg, rgba(0,0,0,.6) 0%, transparent 50%, rgba(0,0,0,.6) 100%);
  animation: sa-shadow 10s ease-in-out infinite alternate;
}
.scn-secret-arrangements .envelope {
  position: absolute;
  bottom: 38%;
  left: 48%;
  width: 8%;
  height: 5%;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  border-radius: 2%;
  transform: rotate(8deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,.4);
  animation: sa-envelope 12s ease-in-out infinite;
}
@keyframes sa-room {
  0% { opacity: .5; }
  50% { opacity: .7; }
  100% { opacity: .6; }
}
@keyframes sa-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sa-write {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes sa-lamp-flicker {
  0% { opacity: .8; box-shadow: 0 0 30px 15px rgba(200,160,96,.15); }
  50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(200,160,96,.3); }
  100% { opacity: .85; box-shadow: 0 0 35px 18px rgba(200,160,96,.2); }
}
@keyframes sa-papers {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes sa-shadow {
  0% { opacity: .4; }
  50% { opacity: .6; }
  100% { opacity: .4; }
}
@keyframes sa-envelope {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-1px); }
  100% { transform: rotate(8deg) translateY(0); }
}

.scn-boats-recaptured {
  background:
    linear-gradient(180deg, #0b1a2e 0%, #1a2e4a 40%, #2c4058 70%, #1a2e3a 100%),
    radial-gradient(ellipse at 30% 60%, #2a4a6a 0%, transparent 60%),
    radial-gradient(ellipse at 70% 40%, #1a3a5a 0%, transparent 50%);
  animation: br-bg 20s ease-in-out infinite alternate;
}
.scn-boats-recaptured .moon {
  position: absolute;
  top: 8%;
  right: 22%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #d4e0f0 0%, #b0c8e0 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(180,200,230,0.4), 0 0 80px 40px rgba(180,200,230,0.15);
  animation: br-moon 35s ease-in-out infinite alternate;
}
.scn-boats-recaptured .water {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #0e1e30 0%, #16263a 40%, #1a2e40 100%);
  animation: br-water 12s ease-in-out infinite alternate;
}
.scn-boats-recaptured .boat {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 100px;
  height: 25px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  transform: rotate(-2deg);
  animation: br-boat 6s ease-in-out infinite alternate;
}
.scn-boats-recaptured .figure {
  position: absolute;
  bottom: 28%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: br-figure 4s ease-in-out infinite;
}
.scn-boats-recaptured .figure-a { left: 38%; }
.scn-boats-recaptured .figure-b { left: 45%; }
.scn-boats-recaptured .figure-c { left: 52%; animation-delay: -1s; }
.scn-boats-recaptured .reflection {
  position: absolute;
  bottom: 15%;
  left: 38%;
  width: 70px;
  height: 15px;
  background: linear-gradient(180deg, rgba(180,200,230,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: br-reflect 6s ease-in-out infinite alternate;
}
.scn-boats-recaptured .wave {
  position: absolute;
  bottom: 10%;
  width: 200%;
  height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(180,200,230,0.15) 30%, transparent 60%);
  animation: br-wave 8s linear infinite;
}
.scn-boats-recaptured .wave-1 { left: -50%; }
.scn-boats-recaptured .wave-2 { left: -30%; animation-delay: -4s; animation-direction: reverse; }
@keyframes br-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes br-moon { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(5px, -3px) scale(1.02); } 100% { transform: translate(-2px, 2px) scale(0.98); } }
@keyframes br-water { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.95; transform: scaleY(0.98); } }
@keyframes br-boat { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes br-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes br-reflect { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.05); } 100% { opacity: 0.4; transform: scaleX(0.95); } }
@keyframes br-wave { 0% { transform: translateX(0); } 100% { transform: translateX(200px); } }

.scn-dawn-of-freedom {
  background:
    linear-gradient(180deg, #f5c8a0 0%, #e0a070 20%, #b86840 40%, #804030 60%, #402820 80%, #1a0a05 100%),
    radial-gradient(ellipse at 70% 40%, #f0d0a0 0%, transparent 70%),
    radial-gradient(ellipse at 30% 60%, #d08850 0%, transparent 50%);
  animation: df-bg 15s ease-in-out infinite alternate;
}
.scn-dawn-of-freedom .sky-dawn {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffccaa 0%, #ffaa77 30%, #dd8855 60%, #bb6630 100%);
  animation: df-sky 12s ease-in-out infinite alternate;
}
.scn-dawn-of-freedom .sun {
  position: absolute;
  top: 12%;
  right: 30%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #ffe0a0 0%, #ffcc66 40%, #f0a040 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,200,80,0.5), 0 0 120px 60px rgba(255,200,80,0.2);
  animation: df-sun 20s ease-in-out infinite alternate;
}
.scn-dawn-of-freedom .water-lake {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #2a4a5a 0%, #1a3a4a 40%, #0a1a2a 100%);
  animation: df-water 10s ease-in-out infinite alternate;
}
.scn-dawn-of-freedom .shore {
  position: absolute;
  bottom: 28%;
  left: 10%;
  right: 60%;
  height: 12%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 0 20% 0 0;
}
.scn-dawn-of-freedom .boat-shore {
  position: absolute;
  bottom: 25%;
  left: 15%;
  width: 90px;
  height: 22px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a12 100%);
  border-radius: 0 0 30% 30% / 0 0 70% 70%;
  transform: rotate(3deg);
  animation: df-boat 5s ease-in-out infinite alternate;
}
.scn-dawn-of-freedom .figure {
  position: absolute;
  bottom: 32%;
  width: 18px;
  height: 38px;
  background: linear-gradient(180deg, #1a1520 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-dawn-of-freedom .elma {
  left: 30%;
  animation: df-figure1 4s ease-in-out infinite;
}
.scn-dawn-of-freedom .narrator {
  left: 38%;
  animation: df-figure2 4.5s ease-in-out infinite alternate;
}
.scn-dawn-of-freedom .undergrowth {
  position: absolute;
  bottom: 28%;
  left: 0;
  right: 0;
  height: 10%;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a3a12 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  filter: blur(2px);
  animation: df-ug 8s ease-in-out infinite alternate;
}
@keyframes df-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes df-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes df-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 20px rgba(255,200,80,0.4); } 50% { transform: translateY(-5px) scale(1.05); box-shadow: 0 0 80px 40px rgba(255,200,80,0.6); } 100% { transform: translateY(3px) scale(0.98); box-shadow: 0 0 50px 25px rgba(255,200,80,0.3); } }
@keyframes df-water { 0% { opacity: 0.95; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.01); } 100% { opacity: 0.9; transform: scaleY(0.98); } }
@keyframes df-boat { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(1px); } }
@keyframes df-figure1 { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(-2deg); } 60% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes df-figure2 { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(5px) rotate(3deg); } }
@keyframes df-ug { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }

.scn-forest-wander {
  background:
    linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 40%, #0a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #3a4a3a 0%, transparent 70%);
  animation: fw-bg 25s ease-in-out infinite alternate;
}
.scn-forest-wander .forest-bg {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 50%, #0a1a0a 100%);
  filter: blur(4px);
  animation: fw-forest 20s ease-in-out infinite alternate;
}
.scn-forest-wander .tree {
  position: absolute;
  bottom: 20%;
  width: 12px;
  height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: fw-tree 8s ease-in-out infinite alternate;
}
.scn-forest-wander .tree-1 { left: 15%; animation-delay: -2s; }
.scn-forest-wander .tree-2 { right: 18%; animation-delay: -5s; }
.scn-forest-wander .spring {
  position: absolute;
  bottom: 18%;
  left: 40%;
  width: 30px;
  height: 15px;
  background: radial-gradient(ellipse at center, #4a6a5a 0%, #2a4a3a 70%, transparent 80%);
  border-radius: 50%;
  animation: fw-spring 6s ease-in-out infinite alternate;
}
.scn-forest-wander .figure {
  position: absolute;
  bottom: 20%;
  width: 16px;
  height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fw-walk 5s ease-in-out infinite;
}
.scn-forest-wander .walker-a { left: 28%; }
.scn-forest-wander .walker-b { left: 38%; animation-delay: -1.5s; }
.scn-forest-wander .walker-c { left: 48%; animation-delay: -3s; }
.scn-forest-wander .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
}
@keyframes fw-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fw-forest { 0% { opacity: 0.9; transform: scale(0.98); } 50% { opacity: 1; transform: scale(1); } 100% { opacity: 0.95; transform: scale(1.02); } }
@keyframes fw-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes fw-spring { 0% { box-shadow: 0 0 10px 2px rgba(80,120,100,0.3); } 50% { box-shadow: 0 0 20px 6px rgba(80,120,100,0.5); } 100% { box-shadow: 0 0 8px 1px rgba(80,120,100,0.2); } }
@keyframes fw-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(4px) translateY(0) rotate(-1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

.scn-night-watch {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4a 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 60% 20%, #3a3a6a 0%, transparent 60%),
    radial-gradient(ellipse at 20% 50%, #1a1a3a 0%, transparent 40%);
  animation: nw-bg 30s ease-in-out infinite alternate;
}
.scn-night-watch .night-sky {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #2a2a4a 100%);
  animation: nw-sky 20s ease-in-out infinite alternate;
}
.scn-night-watch .star {
  position: absolute;
  width: 3px;
  height: 3px;
  background: #d0d8f0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,210,240,0.5);
  animation: nw-star 4s ease-in-out infinite alternate;
}
.scn-night-watch .star-1 { top: 10%; left: 20%; animation-delay: -1s; }
.scn-night-watch .star-2 { top: 15%; right: 35%; animation-delay: -2.5s; }
.scn-night-watch .star-3 { top: 8%; left: 65%; animation-delay: -3.5s; }
.scn-night-watch .sleeping-figure {
  position: absolute;
  bottom: 8%;
  left: 30%;
  width: 60px;
  height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nw-sleep 6s ease-in-out infinite alternate;
}
.scn-night-watch .watching-figure {
  position: absolute;
  bottom: 12%;
  left: 55%;
  width: 20px;
  height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nw-watch 5s ease-in-out infinite alternate;
}
.scn-night-watch .wolf {
  position: absolute;
  bottom: 5%;
  right: 10%;
  width: 50px;
  height: 30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: nw-wolf 8s ease-in-out infinite;
}
.scn-night-watch .ground-night {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 10%;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
}
@keyframes nw-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nw-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes nw-star { 0% { opacity: 0.5; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.9); } }
@keyframes nw-sleep { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(0.98) translateY(1px); } }
@keyframes nw-watch { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-3deg); } 100% { transform: translateX(-2px) rotate(2deg); } }
@keyframes nw-wolf { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-5px) rotate(-5deg); } 60% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(5px) rotate(5deg); } }

.scn-rannoch-tragedy-told {
  background: linear-gradient(180deg, #f2e2c6 0%, #d9b78a 60%, #bf9e6b 100%),
              radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.15) 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-rannoch-tragedy-told .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #ebe1c9 0%, #d2b98a 100%);
}
.scn-rannoch-tragedy-told .window-frame {
  position: absolute; top: 5%; left: 10%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #d4b88c 0%, #b8986a 100%);
  border: 6px solid #8a6e4a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: ran-window 8s ease-in-out infinite alternate;
}
.scn-rannoch-tragedy-told .curtain-left {
  position: absolute; top: 2%; left: 8%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #a6795e 0%, #7a5a44 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  transform-origin: left center;
  animation: ran-curtain 12s ease-in-out infinite alternate;
  filter: drop-shadow(4px 0 8px rgba(0,0,0,0.2));
}
.scn-rannoch-tragedy-told .curtain-right {
  position: absolute; top: 2%; right: 8%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #a6795e 0%, #7a5a44 100%);
  border-radius: 60% 0 0 60% / 40% 0 0 40%;
  transform-origin: right center;
  animation: ran-curtain 12s ease-in-out infinite alternate-reverse;
  filter: drop-shadow(-4px 0 8px rgba(0,0,0,0.2));
}
.scn-rannoch-tragedy-told .table {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 30%; height: 5%; background: linear-gradient(180deg, #5e3e2e 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-rannoch-tragedy-told .lamp {
  position: absolute; bottom: 20%; left: 55%; transform: translateX(-50%);
  width: 8%; height: 12%; background: radial-gradient(circle at 50% 30%, #ffd88a 0%, #c88a44 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(200,138,68,0.6);
  animation: ran-lamp 3s ease-in-out infinite alternate;
}
.scn-rannoch-tragedy-told .figure-woman {
  position: absolute; bottom: 12%; left: 38%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #7a5a44 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ran-figure 6s ease-in-out infinite alternate;
}
.scn-rannoch-tragedy-told .figure-hand {
  position: absolute; bottom: 18%; left: 42%; width: 3%; height: 6%;
  background: linear-gradient(180deg, #a6795e 0%, #5a3a2a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ran-hand 4s ease-in-out infinite;
}
@keyframes ran-window { 0% { opacity:0.9; } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(0,0,0,0.4); } 100% { opacity:0.85; } }
@keyframes ran-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.08); } 100% { transform: scaleX(1); } }
@keyframes ran-lamp { 0% { transform: translateX(-50%) scale(1); box-shadow:0 0 30px 15px rgba(200,138,68,0.5); } 50% { transform: translateX(-50%) scale(1.02); box-shadow:0 0 50px 25px rgba(200,138,68,0.7); } 100% { transform: translateX(-50%) scale(0.98); box-shadow:0 0 35px 18px rgba(200,138,68,0.55); } }
@keyframes ran-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ran-hand { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-2px) rotate(5deg); } }

.scn-cross-clue-again {
  background: linear-gradient(180deg, #e8dcc4 0%, #cbb396 60%, #b09a7a 100%),
              radial-gradient(ellipse at 50% 90%, rgba(0,0,0,0.2) 0%, transparent 60%);
  position: relative;
  height: 100%;
}
.scn-cross-clue-again .bg-wall {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #e8dcc4 0%, #d4bfa0 100%);
}
.scn-cross-clue-again .desk {
  position: absolute; bottom:12%; left:15%; right:15%; height:8%;
  background: linear-gradient(180deg, #6a503a 0%, #4a3426 100%);
  border-radius: 6px;
}
.scn-cross-clue-again .cross {
  position: absolute; bottom:18%; left:42%; width:6%; height:10%;
  background: radial-gradient(ellipse at 50% 50%, #c8a060 0%, #8a6a3a 100%);
  border-radius: 20% 20% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(138,106,58,0.6);
  animation: cro-cross 4s ease-in-out infinite;
}
.scn-cross-clue-again .hand-reaching {
  position: absolute; bottom:16%; left:53%; width:10%; height:18%;
  background: linear-gradient(180deg, #b08a6a 0%, #7a5a3a 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom right;
  animation: cro-hand 3s ease-in-out infinite alternate;
}
.scn-cross-clue-again .lamp-desk {
  position: absolute; bottom:20%; left:28%; width:12%; height:20%;
  background: radial-gradient(ellipse at 50% 30%, #ffe8a8 0%, #d4a060 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 -10px 40px 15px rgba(212,160,96,0.5);
  animation: cro-lamp 5s ease-in-out infinite alternate;
}
.scn-cross-clue-again .shadow-hand {
  position: absolute; bottom:14%; left:56%; width:12%; height:14%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(6px);
  transform-origin: top;
  animation: cro-shadow 3s ease-in-out infinite alternate;
}
@keyframes cro-cross { 0% { transform: scale(1) rotate(0deg); box-shadow:0 0 15px 4px rgba(138,106,58,0.4); } 50% { transform: scale(1.05) rotate(3deg); box-shadow:0 0 30px 10px rgba(138,106,58,0.7); } 100% { transform: scale(0.95) rotate(-2deg); box-shadow:0 0 20px 6px rgba(138,106,58,0.5); } }
@keyframes cro-hand { 0% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(-8px,2px) rotate(0deg); } 100% { transform: translate(-15px,5px) rotate(3deg); } }
@keyframes cro-lamp { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.03); opacity:1; box-shadow:0 -10px 50px 20px rgba(212,160,96,0.6); } 100% { transform: scale(0.97); opacity:0.85; } }
@keyframes cro-shadow { 0% { transform: scale(1) translate(0,0); opacity:0.5; } 50% { transform: scale(1.1) translate(-5px,3px); opacity:0.9; } 100% { transform: scale(0.9) translate(-8px,0); opacity:0.4; } }

.scn-woodroffe-absent {
  background: linear-gradient(180deg, #e0cfb8 0%, #c4ab8e 55%, #a68a6c 100%),
              radial-gradient(ellipse at 50% 70%, rgba(0,0,0,0.15) 0%, transparent 60%);
  position: relative;
  height: 100%;
}
.scn-woodroffe-absent .bg-wall {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #e0cfb8 0%, #c4ab8e 100%);
}
.scn-woodroffe-absent .door-frame {
  position: absolute; right:8%; bottom:0; width:30%; height:80%;
  background: linear-gradient(180deg, #6a503a 0%, #4a3426 100%);
  border-radius: 8px 8px 0 0;
}
.scn-woodroffe-absent .door-open {
  position: absolute; right:20%; bottom:0; width:18%; height:75%;
  background: linear-gradient(180deg, #4a3426 0%, #2a1a12 100%);
  border-radius: 0 0 6px 6px;
  transform-origin: right center;
  animation: woo-door 8s ease-in-out infinite;
}
.scn-woodroffe-absent .figure-exit {
  position: absolute; bottom:5%; right:35%; width:14%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: woo-figure 5s ease-in-out infinite alternate;
}
.scn-woodroffe-absent .suitcase {
  position: absolute; bottom:2%; right:32%; width:12%; height:10%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 6px;
  transform-origin: bottom center;
  animation: woo-suitcase 5s ease-in-out infinite alternate;
}
.scn-woodroffe-absent .floor-shadow {
  position: absolute; bottom:0; left:0; right:0; height:5%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, transparent 100%);
}
@keyframes woo-door { 0% { transform: rotate(0deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(0deg); } }
@keyframes woo-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-20px) rotate(-2deg); } 100% { transform: translateX(-40px) rotate(0deg); } }
@keyframes woo-suitcase { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-15px,3px) rotate(5deg); } 100% { transform: translate(-30px,0) rotate(0deg); } }

.scn-safe-at-last {
  background: linear-gradient(180deg, #f4e4c8 0%, #d9b88a 50%, #b8986a 100%),
              radial-gradient(ellipse at 50% 60%, rgba(180,120,60,0.2) 0%, transparent 70%);
  position: relative;
  height: 100%;
}
.scn-safe-at-last .bg-room {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #f4e4c8 0%, #e0c8a8 100%);
}
.scn-safe-at-last .fireplace {
  position: absolute; bottom:10%; left:5%; width:30%; height:40%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
}
.scn-safe-at-last .fire-glow {
  position: absolute; bottom:12%; left:10%; width:20%; height:18%;
  background: radial-gradient(ellipse at 50% 30%, #ffaa40 0%, #ff6620 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 40px rgba(255,170,64,0.3);
  animation: saf-fire 4s ease-in-out infinite alternate;
}
.scn-safe-at-last .armchair {
  position: absolute; bottom:15%; left:40%; width:30%; height:35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3426 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: saf-chair 10s ease-in-out infinite alternate;
}
.scn-safe-at-last .figure-sitting {
  position: absolute; bottom:20%; left:46%; width:12%; height:20%;
  background: linear-gradient(180deg, #b08a6a 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: saf-sit 8s ease-in-out infinite alternate;
}
.scn-safe-at-last .figure-standing {
  position: absolute; bottom:5%; left:60%; width:14%; height:28%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: saf-stand 6s ease-in-out infinite alternate;
}
.scn-safe-at-last .rug {
  position: absolute; bottom:0; left:20%; right:20%; height:6%;
  background: linear-gradient(180deg, #a68a6a 0%, #7a5a3a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-safe-at-last .lamp-warm {
  position: absolute; top:5%; right:15%; width:12%; height:18%;
  background: radial-gradient(ellipse at 50% 30%, #ffe8a8 0%, #d4a060 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 50px 30px rgba(212,160,96,0.4);
  animation: saf-lamp 8s ease-in-out infinite alternate;
}
@keyframes saf-fire { 0% { transform: scale(1) translateY(0); opacity:0.8; } 50% { transform: scale(1.05) translateY(-4px); opacity:1; } 100% { transform: scale(0.95) translateY(2px); opacity:0.7; } }
@keyframes saf-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes saf-sit { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes saf-stand { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(5px,-4px) rotate(2deg); } 100% { transform: translate(10px,0) rotate(0deg); } }
@keyframes saf-lamp { 0% { transform: scale(1); box-shadow:0 0 40px 20px rgba(212,160,96,0.3); } 50% { transform: scale(1.03); box-shadow:0 0 60px 30px rgba(212,160,96,0.5); } 100% { transform: scale(0.97); box-shadow:0 0 50px 25px rgba(212,160,96,0.35); } }

/* ---------- detain-attempt-failed ---------- */
.scn-detain-attempt-failed {
  background: 
    linear-gradient(180deg, #c8d8e8 0%, #e8e0d0 60%, #d0c8a0 100%),
    linear-gradient(180deg, #a8b8c8 0%, transparent 50%, #7a6a5a 100%);
}
.scn-detain-attempt-failed .sky-seen { position:absolute; top:0; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #b8d0e0 0%, #d8e0f0 40%, #f0f0f0 100%); border-bottom:1px solid #8a7a6a; }
.scn-detain-attempt-failed .room-wall { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 30%, #8a7a6a 70%, #6a5a4a 100%); opacity:0.6; }
.scn-detain-attempt-failed .window-frame { position:absolute; top:2%; left:22%; width:56%; height:38%; border:6px solid #4a3a2a; background: transparent; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
.scn-detain-attempt-failed .table { position:absolute; bottom:18%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 3px 10px rgba(0,0,0,0.5); }
.scn-detain-attempt-failed .safe { position:absolute; bottom:15%; right:18%; width:16%; height:24%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border:3px solid #4a3a2a; border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: daf-breath 6s ease-in-out infinite; }
.scn-detain-attempt-failed .captain { position:absolute; bottom:10%; left:45%; width:14%; height:28%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: daf-pace 4s ease-in-out infinite; }
.scn-detain-attempt-failed .lamp-glow { position:absolute; top:8%; left:25%; width:12%; height:18%; background: radial-gradient(ellipse at 50% 100%, #ffe0a0 0%, transparent 70%); opacity:0.8; animation: daf-flicker 3s ease-in-out infinite alternate; }
@keyframes daf-breath { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes daf-pace { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(0deg); } 75% { transform: translateX(8px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes daf-flicker { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(1); } }

/* ---------- theory-keys-stolen ---------- */
.scn-theory-keys-stolen {
  background: 
    linear-gradient(135deg, #d0c8b0 0%, #b0a890 30%, #908070 100%),
    radial-gradient(ellipse at 60% 40%, #ffffff 0%, transparent 70%);
}
.scn-theory-keys-stolen .wall-back { position:absolute; inset:0; background: linear-gradient(180deg, #6a5a4a 0%, #8a7a6a 100%); opacity:0.3; }
.scn-theory-keys-stolen .safe-front { position:absolute; bottom:20%; left:30%; width:30%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border:4px solid #4a3a2a; border-radius:6px; box-shadow: 0 8px 20px rgba(0,0,0,0.7); }
.scn-theory-keys-stolen .safe-door { position:absolute; bottom:22%; left:33%; width:24%; height:36%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border:2px solid #3a2a1a; border-radius:3px; animation: tks-swing 8s ease-in-out infinite; transform-origin:left center; }
.scn-theory-keys-stolen .detective { position:absolute; bottom:10%; right:25%; width:20%; height:50%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: tks-peer 5s ease-in-out infinite; }
.scn-theory-keys-stolen .overhead-light { position:absolute; top:2%; left:40%; width:20%; height:20%; background: radial-gradient(circle at 50% 0%, #ffe0a0 0%, transparent 80%); opacity:0.9; animation: tks-glow 3s ease-in-out infinite alternate; }
.scn-theory-keys-stolen .shadow-pool { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%); opacity:0.6; }
.scn-theory-keys-stolen .key-placed { position:absolute; bottom:30%; left:44%; width:4%; height:8%; background: #c0a060; border-radius:40% 40% 20% 20%; box-shadow: 0 0 8px 2px #ffd080; animation: tks-spark 4s ease-in-out infinite; }
@keyframes tks-swing { 0%,100% { transform: rotateY(0deg); } 50% { transform: rotateY(-15deg); } }
@keyframes tks-peer { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-5px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tks-glow { 0% { opacity:0.7; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.1); } }
@keyframes tks-spark { 0%,100% { opacity:0.5; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } }

/* ---------- motive-conjecture ---------- */
.scn-motive-conjecture {
  background: 
    linear-gradient(135deg, #807060 0%, #a09080 40%, #c0b0a0 100%),
    radial-gradient(ellipse at 70% 30%, #ffffff 0%, transparent 60%);
}
.scn-motive-conjecture .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); opacity:0.5; }
.scn-motive-conjecture .window-right { position:absolute; top:12%; right:8%; width:30%; height:30%; background: linear-gradient(180deg, #b0c8d8 0%, #d8e8f0 100%); border:5px solid #4a3a2a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); }
.scn-motive-conjecture .door-left { position:absolute; bottom:5%; left:5%; width:20%; height:50%; background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 100%); border-radius:3px; border-left:3px solid #2a1a0a; }
.scn-motive-conjecture .scot-entry { position:absolute; bottom:0; left:3%; width:15%; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: mco-enter 6s ease-in-out infinite; }
.scn-motive-conjecture .safe-corner { position:absolute; bottom:10%; left:55%; width:18%; height:35%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border:3px solid #3a2a1a; border-radius:5px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-motive-conjecture .floor-shadow { position:absolute; bottom:0; left:0; width:100%; height:15%; background: linear-gradient(0deg, rgba(0,0,0,0.3) 0%, transparent 100%); }
.scn-motive-conjecture .desk-clutter { position:absolute; bottom:25%; left:35%; width:20%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:3px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: mco-shift 12s ease-in-out infinite; }
@keyframes mco-enter { 0% { transform: translateX(-30px) translateY(20px) rotate(5deg); opacity:0; } 20% { opacity:1; } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 80% { transform: translateX(10px) translateY(-5px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes mco-shift { 0%,100% { transform: translateX(0); } 50% { transform: translateX(4px); } }

/* ---------- train-station-clue ---------- */
.scn-train-station-clue {
  background: 
    linear-gradient(0deg, #2a3a4a 0%, #4a6a8a 60%, #6a8a9a 100%),
    radial-gradient(ellipse at 50% 80%, #3a4a5a 0%, transparent 80%);
}
.scn-train-station-clue .platform-bg { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #3a3a3a 0%, #5a5a5a 100%); border-top:2px solid #7a7a6a; }
.scn-train-station-clue .tracks { position:absolute; bottom:20%; left:0; right:0; height:5%; background: repeating-linear-gradient(90deg, #2a2a2a 0px, #2a2a2a 30px, #4a4a4a 30px, #4a4a4a 35px); }
.scn-train-station-clue .train-body { position:absolute; bottom:22%; left:10%; width:50%; height:18%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:10px 10px 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: tsc-arrive 15s linear infinite; }
.scn-train-station-clue .lady-black { position:absolute; bottom:8%; left:35%; width:10%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin:bottom center; animation: tsc-wait 6s ease-in-out infinite; }
.scn-train-station-clue .detective-hat { position:absolute; bottom:10%; left:55%; width:8%; height:22%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation: tsc-tilt 4s ease-in-out infinite; }
.scn-train-station-clue .bench { position:absolute; bottom:8%; left:20%; width:15%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:3px; }
.scn-train-station-clue .light-pool { position:absolute; top:30%; left:40%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(255,220,150,0.3) 0%, transparent 70%); animation: tsc-pulse 5s ease-in-out infinite alternate; }
.scn-train-station-clue .pillar { position:absolute; bottom:0; left:70%; width:4%; height:60%; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); border-radius:4px; }
@keyframes tsc-arrive { 0% { transform: translateX(-80vw); } 30% { transform: translateX(0); } 70% { transform: translateX(0); } 100% { transform: translateX(80vw); } }
@keyframes tsc-wait { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes tsc-tilt { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes tsc-pulse { 0% { opacity:0.5; } 100% { opacity:1; } }

/* passport-problem */
.scn-passport-problem {
  background:
    linear-gradient(180deg, #f2e8d8 0%, #c8b8a0 30%, #9a8870 70%, #6a5a48 100%),
    radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 60%);
}
.scn-passport-problem .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%); }
.scn-passport-problem .window { position:absolute; top:8%; left:25%; width:40%; height:50%; background: radial-gradient(ellipse, #fffbf0 0%, #ccc0a0 70%); border-radius:10% / 20%; opacity:0.4; animation: pp-window 6s ease-in-out infinite alternate; }
.scn-passport-problem .desk { position:absolute; bottom:10%; left:10%; right:10%; height:25%; background: linear-gradient(160deg, #8a6a42 0%, #5a4028 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-passport-problem .official { position:absolute; bottom:25%; left:25%; width:20%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-official 5s ease-in-out infinite; }
.scn-passport-problem .passport { position:absolute; bottom:30%; left:40%; width:15%; height:12%; background: linear-gradient(135deg, #d0b090 0%, #b09070 100%); border-radius: 6% 6% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); transform: rotate(-5deg); animation: pp-passport 4s ease-in-out infinite alternate; }
.scn-passport-problem .stamp { position:absolute; bottom:33%; left:46%; width:6%; height:6%; background: radial-gradient(circle, #7a3820 0%, #5a2810 100%); border-radius:50%; box-shadow: 0 0 4px #5a2810; animation: pp-stamp 3s ease-in-out infinite; }
.scn-passport-problem .shadow { position:absolute; bottom:35%; left:20%; width:28%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 90%); animation: pp-shadow 5s ease-in-out infinite alternate; }
.scn-passport-problem .pen { position:absolute; bottom:26%; left:48%; width:2%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 100%); border-radius: 20% 20% 0 0; transform: rotate(10deg); animation: pp-pen 3s ease-in-out infinite; }
@keyframes pp-window { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.05); } 100% { opacity:0.3; transform: scaleX(1); } }
@keyframes pp-official { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-5px) rotate(1deg); } }
@keyframes pp-passport { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(0deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes pp-stamp { 0%,100% { opacity:0.8; box-shadow: 0 0 4px #5a2810; } 50% { opacity:1; box-shadow: 0 0 10px #7a3820; } }
@keyframes pp-shadow { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.9; transform: scaleY(1.1); } 100% { opacity:0.6; transform: scaleY(1); } }
@keyframes pp-pen { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } }

/* defiance-passport */
.scn-defiance-passport {
  background:
    linear-gradient(180deg, #f5efe2 0%, #d4c4b0 40%, #a09078 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 70%);
}
.scn-defiance-passport .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%); }
.scn-defiance-passport .desk { position:absolute; bottom:8%; left:8%; right:8%; height:18%; background: linear-gradient(160deg, #7a5a38 0%, #4a3020 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -6px 14px rgba(0,0,0,0.4); }
.scn-defiance-passport .official { position:absolute; bottom:18%; left:20%; width:18%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-official 6s ease-in-out infinite; }
.scn-defiance-passport .protagonist { position:absolute; bottom:18%; right:15%; width:16%; height:55%; background: linear-gradient(180deg, #2a2018 0%, #0a0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(0); animation: dp-protag 8s ease-in-out infinite; }
.scn-defiance-passport .passport { position:absolute; bottom:14%; left:42%; width:12%; height:8%; background: linear-gradient(135deg, #d0b090 0%, #b09070 100%); border-radius: 10% 10% 14% 14%; box-shadow: 0 3px 8px rgba(0,0,0,0.5); transform: rotate(15deg); animation: dp-passport 5s ease-in-out infinite alternate; }
.scn-defiance-passport .spotlight { position:absolute; top:0; left:30%; width:40%; height:100%; background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.6) 0%, transparent 80%); animation: dp-spotlight 7s ease-in-out infinite alternate; }
.scn-defiance-passport .shadow { position:absolute; bottom:20%; right:10%; width:20%; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 80%); animation: dp-shadow 6s ease-in-out infinite alternate; }
@keyframes dp-official { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(-1deg); } }
@keyframes dp-protag { 0%,100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(6px) scaleY(1.02); } }
@keyframes dp-passport { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(10deg) translateX(-4px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes dp-spotlight { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes dp-shadow { 0% { opacity:0.6; transform: scaleX(1); } 50% { opacity:0.9; transform: scaleX(1.2); } 100% { opacity:0.6; transform: scaleX(1); } }

/* governor-general-mention */
.scn-governor-general-mention {
  background:
    linear-gradient(180deg, #f0e6d6 0%, #c0b0a0 50%, #8a7a6a 100%),
    radial-gradient(ellipse at 30% 15%, #fff8ee 0%, transparent 70%);
}
.scn-governor-general-mention .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.12) 100%); }
.scn-governor-general-mention .desk { position:absolute; bottom:6%; left:12%; right:12%; height:20%; background: linear-gradient(160deg, #6a4a30 0%, #3a2818 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -5px 12px rgba(0,0,0,0.35); }
.scn-governor-general-mention .official { position:absolute; bottom:18%; left:30%; width:22%; height:48%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(3deg); animation: gg-official 6s ease-in-out infinite; }
.scn-governor-general-mention .portrait { position:absolute; top:10%; left:60%; width:20%; height:30%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border: 3px solid #7a4a1a; border-radius: 4% 4% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); transform: scale(0.95); animation: gg-portrait 12s ease-in-out infinite alternate; }
.scn-governor-general-mention .lamp { position:absolute; top:12%; left:35%; width:8%; height:12%; background: radial-gradient(circle, #ffe0a0 0%, #d0a070 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 30px 8px rgba(208,160,112,0.5); animation: gg-lamp 5s ease-in-out infinite alternate; }
.scn-governor-general-mention .shadow { position:absolute; bottom:20%; left:25%; width:30%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 80%); animation: gg-shadow 5s ease-in-out infinite alternate; }
.scn-governor-general-mention .door { position:absolute; top:0; right:8%; width:14%; height:100%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-left: 2px solid #4a2a10; transform: scaleX(0.8); animation: gg-door 15s ease-in-out infinite; }
@keyframes gg-official { 0%,100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-4px); } }
@keyframes gg-portrait { 0% { transform: scale(0.95) rotate(0); opacity:0.8; } 50% { transform: scale(1) rotate(1deg); opacity:1; } 100% { transform: scale(0.95) rotate(0); opacity:0.8; } }
@keyframes gg-lamp { 0% { opacity:0.7; box-shadow: 0 0 20px 6px #d0a070; } 50% { opacity:1; box-shadow: 0 0 40px 12px #f0c080; } 100% { opacity:0.7; box-shadow: 0 0 20px 6px #d0a070; } }
@keyframes gg-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.1); } 100% { opacity:0.5; transform: scaleX(1); } }
@keyframes gg-door { 0%,100% { transform: scaleX(0.8) translateX(0); } 50% { transform: scaleX(0.85) translateX(-5px); } }

/* hotel-abo */
.scn-hotel-abo {
  background:
    linear-gradient(180deg, #1a1820 0%, #2a2840 40%, #1a1820 70%, #101018 100%),
    radial-gradient(ellipse at 40% 50%, #2a2840 0%, transparent 70%);
}
.scn-hotel-abo .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); }
.scn-hotel-abo .lamp { position:absolute; top:20%; left:35%; width:12%; height:18%; background: radial-gradient(circle, #f0c070 0%, #c08030 80%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: 0 0 50px 20px rgba(192,128,48,0.6); animation: ha-lamp 6s ease-in-out infinite alternate; }
.scn-hotel-abo .table { position:absolute; bottom:20%; left:25%; width:50%; height:10%; background: linear-gradient(160deg, #4a3828 0%, #2a1a10 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -3px 10px rgba(0,0,0,0.5); }
.scn-hotel-abo .chair { position:absolute; bottom:15%; left:30%; width:12%; height:25%; background: linear-gradient(180deg, #3a281a 0%, #1a0e06 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ha-chair 8s ease-in-out infinite; }
.scn-hotel-abo .figure { position:absolute; bottom:22%; left:28%; width:10%; height:30%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: translateX(0); animation: ha-figure 5s ease-in-out infinite; }
.scn-hotel-abo .window-night { position:absolute; top:15%; right:12%; width:20%; height:40%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a30 100%); border-radius: 10% 10% 10% 10%; box-shadow: inset 0 0 20px rgba(255,255,255,0.05); border: 2px solid #3a2a1a; animation: ha-window 12s ease-in-out infinite alternate; }
.scn-hotel-abo .curtain { position:absolute; top:15%; right:12%; width:10%; height:45%; background: linear-gradient(180deg, #4a2018 0%, #2a1008 100%); border-radius: 0 0 10% 10%; opacity:0.8; transform: scaleX(0.6); animation: ha-curtain 9s ease-in-out infinite alternate; }
@keyframes ha-lamp { 0% { opacity:0.7; box-shadow: 0 0 40px 16px #c08030; } 50% { opacity:1; box-shadow: 0 0 60px 24px #f0c070; } 100% { opacity:0.7; box-shadow: 0 0 40px 16px #c08030; } }
@keyframes ha-chair { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes ha-figure { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(-1deg); } }
@keyframes ha-window { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes ha-curtain { 0% { transform: scaleX(0.6) translateX(0); } 50% { transform: scaleX(0.7) translateX(-5px); } 100% { transform: scaleX(0.6) translateX(0); } }

/* ----- scene: escape-options (eo) ----- */
.scn-escape-options {
  background:
    linear-gradient(0deg, #0a1a2a 0%, #1a2a3a 40%, #2a3a5a 70%, #3a4a6a 100%),
    radial-gradient(ellipse at 60% 20%, #4a6a8a 0%, transparent 60%);
}
.scn-escape-options .moon {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0e0f0 0%, #b0c8e0 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(176,200,224,0.3);
  animation: eo-moon-glow 8s ease-in-out infinite alternate;
}
.scn-escape-options .forest-bg {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #0a1a1a 0%, #1a2a2a 50%, #2a3a3a 100%);
  clip-path: polygon(0% 60%, 15% 20%, 30% 50%, 50% 10%, 70% 40%, 85% 15%, 100% 45%, 100% 100%, 0% 100%);
  opacity: 0.7;
  animation: eo-forest-sway 20s ease-in-out infinite alternate;
}
.scn-escape-options .stream {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 18%;
  background: linear-gradient(0deg, #2a4a6a 0%, #3a5a7a 50%, #4a6a8a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: eo-stream-flow 14s ease-in-out infinite alternate;
}
.scn-escape-options .boat {
  position: absolute; bottom: 16%; left: 40%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: eo-boat-bob 5s ease-in-out infinite;
}
.scn-escape-options .figure-helmsman {
  position: absolute; bottom: 27%; left: 44%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eo-walk 4s ease-in-out infinite;
}
.scn-escape-options .figure-lady {
  position: absolute; bottom: 26%; left: 38%; width: 12px; height: 26px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eo-walk 4s ease-in-out infinite 0.5s;
}
.scn-escape-options .driftwood {
  position: absolute; bottom: 12%; left: 20%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #3a2a1a, #2a1a0a);
  border-radius: 3px;
  transform: rotate(15deg);
  animation: eo-drift 12s linear infinite;
}

@keyframes eo-moon-glow { 0% { box-shadow: 0 0 40px 10px rgba(176,200,224,0.2); } 50% { box-shadow: 0 0 70px 20px rgba(176,200,224,0.4); } 100% { box-shadow: 0 0 50px 15px rgba(176,200,224,0.3); } }
@keyframes eo-forest-sway { 0% { transform: skewX(0deg); } 50% { transform: skewX(2deg); } 100% { transform: skewX(-1deg); } }
@keyframes eo-stream-flow { 0% { background-position: 0% 0%; } 50% { background-position: 100% 0%; } 100% { background-position: 0% 0%; } }
@keyframes eo-boat-bob { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes eo-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 eo-drift { 0% { transform: translateX(0) rotate(15deg); } 50% { transform: translateX(40px) rotate(10deg); } 100% { transform: translateX(80px) rotate(5deg); } }

/* ----- scene: danger-closing (dc) ----- */
.scn-danger-closing {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a5a 80%),
    radial-gradient(ellipse at 50% 100%, #1a1a4a 0%, transparent 60%);
}
.scn-danger-closing .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #0a0a2a 0%, #1a1a4a 50%, #2a2a5a 100%);
  animation: dc-water 20s ease-in-out infinite alternate;
}
.scn-danger-closing .moon-path {
  position: absolute; bottom: 10%; left: 45%; width: 120px; height: 100%;
  background: linear-gradient(0deg, rgba(200,210,230,0.15) 0%, rgba(200,210,230,0.05) 60%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  transform: skewX(-10deg);
  animation: dc-moon-path 6s ease-in-out infinite alternate;
}
.scn-danger-closing .boat-center {
  position: absolute; bottom: 30%; left: 35%; width: 70px; height: 25px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: rotate(3deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
  animation: dc-boat-bob 4s ease-in-out infinite;
}
.scn-danger-closing .figure-protagonist {
  position: absolute; bottom: 40%; left: 38%; 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: dc-figure-turn 6s ease-in-out infinite;
}
.scn-danger-closing .figure-lady-boat {
  position: absolute; bottom: 39%; left: 32%; width: 14px; 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: dc-figure-turn 6s ease-in-out infinite 0.8s;
}
.scn-danger-closing .boat-pursuer-1 {
  position: absolute; bottom: 28%; left: 12%; width: 50px; height: 18px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: rotate(-8deg);
  animation: dc-pursuer-approach 15s linear infinite;
}
.scn-danger-closing .boat-pursuer-2 {
  position: absolute; bottom: 32%; left: 60%; width: 55px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: rotate(12deg);
  animation: dc-pursuer-approach 18s linear infinite 2s;
}
.scn-danger-closing .boat-pursuer-3 {
  position: absolute; bottom: 20%; left: 80%; width: 45px; height: 16px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: rotate(5deg);
  animation: dc-pursuer-approach 20s linear infinite 4s;
}
.scn-danger-closing .moon {
  position: absolute; top: 6%; right: 20%; width: 35px; height: 35px;
  background: radial-gradient(circle, #c8d8e8 0%, #a8b8d0 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(168,184,208,0.2);
  animation: dc-moon-glow 7s ease-in-out infinite alternate;
}

@keyframes dc-water { 0% { background-position: 0% 0%; } 50% { background-position: 100% 0%; } 100% { background-position: 50% 0%; } }
@keyframes dc-moon-path { 0% { transform: skewX(-10deg) scaleY(1); } 50% { transform: skewX(-8deg) scaleY(1.05); } 100% { transform: skewX(-12deg) scaleY(0.95); } }
@keyframes dc-boat-bob { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes dc-figure-turn { 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 dc-pursuer-approach { 0% { transform: rotate(-8deg) translateX(0) scale(0.7); opacity: 0.3; } 25% { opacity: 0.6; } 50% { transform: rotate(-5deg) translateX(-30px) scale(0.85); opacity: 0.8; } 75% { opacity: 0.9; } 100% { transform: rotate(-2deg) translateX(-60px) scale(1); opacity: 1; } }
@keyframes dc-moon-glow { 0% { box-shadow: 0 0 30px 8px rgba(168,184,208,0.15); } 50% { box-shadow: 0 0 50px 15px rgba(168,184,208,0.3); } 100% { box-shadow: 0 0 40px 12px rgba(168,184,208,0.2); } }

/* ----- scene: orders-shouted (os) ----- */
.scn-orders-shouted {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a5a 80%, #0a0a1a 100%),
    radial-gradient(ellipse at 70% 30%, #2a3a5a 0%, transparent 70%);
}
.scn-orders-shouted .sky-dark {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0c0c1c 0%, #1a1a3a 100%);
  animation: os-sky-pulse 10s ease-in-out infinite alternate;
}
.scn-orders-shouted .tree-silhouettes {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1a1a 50%, #2a2a2a 100%);
  clip-path: polygon(0% 40%, 10% 20%, 20% 50%, 35% 15%, 50% 45%, 65% 10%, 80% 35%, 100% 20%, 100% 100%, 0% 100%);
  opacity: 0.8;
  animation: os-trees-way 25s ease-in-out infinite alternate;
}
.scn-orders-shouted .boat-fleeing {
  position: absolute; bottom: 18%; left: 30%; width: 90px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: rotate(8deg);
  animation: os-boat-speed 3s ease-in-out infinite;
}
.scn-orders-shouted .figure-man {
  position: absolute; bottom: 32%; left: 33%; width: 16px; 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: os-figure-duck 2s ease-in-out infinite;
}
.scn-orders-shouted .figure-woman {
  position: absolute; bottom: 30%; left: 28%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: os-figure-duck 2s ease-in-out infinite 0.5s;
}
.scn-orders-shouted .muzzle-flash {
  position: absolute; bottom: 35%; left: 60%; width: 12px; height: 12px;
  background: radial-gradient(circle, #fffaca 0%, #ffd060 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,96,0.6);
  animation: os-flash-burst 0.6s ease-out infinite;
}
.scn-orders-shouted .pursuer-boats {
  position: absolute; bottom: 22%; left: 60%; width: 120px; height: 40px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20'%3E%3Cpath d='M2,18 L12,4 L20,10 L30,2 L38,16 Z' fill='%232a1a0a'/%3E%3C/svg%3E") repeat-x;
  background-size: 40px 20px;
  opacity: 0.6;
  animation: os-pursuers-move 8s linear infinite;
}

@keyframes os-sky-pulse { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes os-trees-way { 0% { transform: skewX(0deg); } 50% { transform: skewX(3deg); } 100% { transform: skewX(-2deg); } }
@keyframes os-boat-speed { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(6deg) translateX(5px); } 100% { transform: rotate(8deg) translateX(0); } }
@keyframes os-figure-duck { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-5px) rotate(-10deg); } 60% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes os-flash-burst { 0% { transform: scale(0.2); opacity: 0; } 20% { transform: scale(1.5); opacity: 1; } 40% { transform: scale(0.8); opacity: 0.5; } 100% { transform: scale(0); opacity: 0; } }
@keyframes os-pursuers-move { 0% { background-position: 0 0; } 100% { background-position: -80px 0; } }

/* ----- scene: trap-between (tb) ----- */
.scn-trap-between {
  background:
    linear-gradient(0deg, #0a0a1a 0%, #1a1a2a 30%, #2a2a4a 60%, #1a1a3a 100%),
    radial-gradient(ellipse at 30% 50%, #2a3a5a 0%, transparent 50%);
}
.scn-trap-between .bog-mid {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #1a2a1a 0%, #2a3a2a 40%, #3a4a3a 100%);
  border-radius: 0 0 40% 40% / 0 0 70% 70%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: tb-bog-shift 25s ease-in-out infinite alternate;
}
.scn-trap-between .reeds-left {
  position: absolute; bottom: 20%; left: 5%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(0% 0%, 20% 30%, 40% 10%, 60% 40%, 80% 20%, 100% 50%, 90% 100%, 0% 100%);
  animation: tb-reeds-sway 8s ease-in-out infinite alternate;
}
.scn-trap-between .reeds-right {
  position: absolute; bottom: 25%; right: 5%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(100% 0%, 80% 20%, 60% 5%, 40% 35%, 20% 15%, 0% 45%, 10% 100%, 100% 100%);
  animation: tb-reeds-sway 8s ease-in-out infinite alternate 2s;
}
.scn-trap-between .figure-group-left {
  position: absolute; bottom: 28%; left: 15%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 0 2px rgba(0,0,0,0.3);
  animation: tb-figure-advance 14s ease-in-out infinite;
}
.scn-trap-between .figure-group-right {
  position: absolute; bottom: 32%; right: 15%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 0 2px rgba(0,0,0,0.3);
  animation: tb-figure-advance 14s ease-in-out infinite 3s;
}
.scn-trap-between .signal-flash-1 {
  position: absolute; bottom: 40%; left: 18%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd060 0%, #e8a030 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(232,160,48,0.5);
  animation: tb-signal-glint 2s ease-out infinite;
}
.scn-trap-between .signal-flash-2 {
  position: absolute; bottom: 45%; right: 18%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd060 0%, #e8a030 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(232,160,48,0.5);
  animation: tb-signal-glint 2s ease-out infinite 1s;
}
.scn-trap-between .moon-reflection {
  position: absolute; bottom: 10%; left: 50%; width: 50px; height: 60px;
  background: linear-gradient(0deg, rgba(200,210,230,0.1) 0%, rgba(200,210,230,0.05) 50%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%) scaleY(0.4);
  animation: tb-reflection-ripple 10s ease-in-out infinite;
}

@keyframes tb-bog-shift { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes tb-reeds-sway { 0% { transform: skewX(0deg); } 50% { transform: skewX(4deg); } 100% { transform: skewX(-4deg); } }
@keyframes tb-figure-advance { 0% { transform: translateX(0) scale(1); opacity: 0.6; } 25% { transform: translateX(5px) scale(1.04); opacity: 0.8; } 50% { transform: translateX(10px) scale(1.08); opacity: 1; } 75% { transform: translateX(5px) scale(1.04); opacity: 0.8; } 100% { transform: translateX(0) scale(1); opacity: 0.6; } }
@keyframes tb-signal-glint { 0% { transform: scale(0.3); opacity: 0; } 20% { transform: scale(1.2); opacity: 1; } 40% { transform: scale(0.8); opacity: 0.5; } 100% { transform: scale(0); opacity: 0; } }
@keyframes tb-reflection-ripple { 0% { transform: translateX(-50%) scaleY(0.4) translateY(0); } 50% { transform: translateX(-50%) scaleY(0.45) translateY(2px); } 100% { transform: translateX(-50%) scaleY(0.4) translateY(0); } }

/* Scene 1: ferrari-inquiry */
.scn-ferrari-inquiry {
  background: linear-gradient(180deg, #f5e6d3 0%, #d4c4a8 40%, #c4b094 100%),
              radial-gradient(ellipse at 50% 80%, #ffe6b3 0%, transparent 60%);
}
.scn-ferrari-inquiry .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 100%);
  animation: fi-wall 20s ease-in-out infinite alternate;
}
.scn-ferrari-inquiry .bar-counter {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #8b7355 0%, #5a4a35 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  animation: fi-counter 8s ease-in-out infinite alternate;
}
.scn-ferrari-inquiry .bottle {
  position: absolute; bottom: 30%; left: 20%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #3a7a3a 0%, #2a5a2a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: fi-bottle 6s ease-in-out infinite;
}
.scn-ferrari-inquiry .glass {
  position: absolute; bottom: 30%; left: 30%; width: 16px; height: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,200,200,0.2) 100%);
  border-radius: 0 0 10px 10px;
  box-shadow: inset -2px -2px 4px rgba(0,0,0,0.1);
  animation: fi-glass 12s ease-in-out infinite;
}
.scn-ferrari-inquiry .figure-narrator {
  position: absolute; bottom: 28%; left: 10%; width: 20px; 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: fi-walk-narrator 10s ease-in-out infinite;
}
.scn-ferrari-inquiry .figure-proprietor {
  position: absolute; bottom: 28%; right: 15%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fi-stand-proprietor 8s ease-in-out infinite alternate;
}
.scn-ferrari-inquiry .lamp-light {
  position: absolute; top: 5%; left: 50%; width: 30px; height: 20px;
  background: radial-gradient(circle, #ffdd99 0%, #ccaa66 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  transform: translateX(-50%);
  animation: fi-lamp 4s ease-in-out infinite alternate;
}
.scn-ferrari-inquiry .shadow-top {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, transparent 100%);
  animation: fi-shadow-top 15s ease-in-out infinite;
}
@keyframes fi-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fi-counter { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fi-bottle { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 75% { transform: rotate(-3deg); } }
@keyframes fi-glass { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes fi-walk-narrator { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(5px) rotate(-2deg); } }
@keyframes fi-stand-proprietor { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes fi-lamp { 0% { opacity: 0.8; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.9; transform: translateX(-50%) scale(0.95); } }
@keyframes fi-shadow-top { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* Scene 2: olinto-employment */
.scn-olinto-employment {
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 50%, #a89880 100%),
              radial-gradient(ellipse at 30% 70%, #f0e0d0 0%, transparent 70%);
}
.scn-olinto-employment .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8c8b0 0%, #c0b0a0 100%);
  animation: oe-room 25s ease-in-out infinite alternate;
}
.scn-olinto-employment .table {
  position: absolute; bottom: 25%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: oe-table 12s ease-in-out infinite;
}
.scn-olinto-employment .chair-left {
  position: absolute; bottom: 15%; left: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: oe-chair 6s ease-in-out infinite alternate;
}
.scn-olinto-employment .chair-right {
  position: absolute; bottom: 15%; right: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: oe-chair 6s ease-in-out infinite alternate-reverse;
}
.scn-olinto-employment .figure-narrator-sit {
  position: absolute; bottom: 32%; left: 28%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oe-sit 14s ease-in-out infinite;
}
.scn-olinto-employment .figure-russian-stand {
  position: absolute; bottom: 28%; right: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: oe-stand 10s ease-in-out infinite alternate;
}
.scn-olinto-employment .door {
  position: absolute; bottom: 22%; left: 50%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 5px;
  transform: translateX(-50%);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: oe-door 20s ease-in-out infinite;
}
.scn-olinto-employment .clock {
  position: absolute; top: 15%; left: 60%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffddaa 0%, #ccaa66 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,170,100,0.5);
  animation: oe-clock 2s steps(60) infinite;
}
@keyframes oe-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes oe-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes oe-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes oe-sit { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes oe-stand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes oe-door { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.3); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes oe-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* Scene 3: cook-suspicion */
.scn-cook-suspicion {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 30% 50%, #6a5a4a 0%, transparent 80%);
}
.scn-cook-suspicion .bg-kitchen {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  animation: cs-kitchen 18s ease-in-out infinite alternate;
}
.scn-cook-suspicion .table-counter {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 0 0 10px 10px;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: cs-counter 10s ease-in-out infinite alternate;
}
.scn-cook-suspicion .cook-silhouette {
  position: absolute; bottom: 30%; right: 15%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cs-cook 4s ease-in-out infinite;
}
.scn-cook-suspicion .knife {
  position: absolute; bottom: 35%; right: 12%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #aa8866 0%, #886644 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(20deg);
  animation: cs-knife 1.5s ease-in-out infinite;
}
.scn-cook-suspicion .light-flicker {
  position: absolute; top: 10%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffaa66 0%, #cc7733 50%, transparent 100%);
  filter: blur(8px);
  animation: cs-flicker 0.3s linear infinite;
}
.scn-cook-suspicion .shadow-sharp {
  position: absolute; bottom: 30%; left: 25%; width: 60px; height: 30px;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(2px);
  animation: cs-shadow 5s ease-in-out infinite alternate;
}
.scn-cook-suspicion .figure-proprietor-back {
  position: absolute; bottom: 30%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: cs-back 8s ease-in-out infinite alternate;
}
@keyframes cs-kitchen { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cs-counter { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cs-cook { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 75% { transform: rotate(-5deg); } }
@keyframes cs-knife { 0%,100% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(25deg) scale(1.1); } }
@keyframes cs-flicker { 0%,100% { opacity: 0.9; transform: scale(1); } 50% { opacity: 0.6; transform: scale(0.8); } }
@keyframes cs-shadow { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-10deg) translateX(5px); } 100% { transform: skewX(-10deg) translateX(0); } }
@keyframes cs-back { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }

/* Scene 4: bribe-information */
.scn-bribe-information {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, transparent 80%);
}
.scn-bribe-information .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: bi-bg 15s ease-in-out infinite alternate;
}
.scn-bribe-information .hand-giving {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
  animation: bi-hand-give 3s ease-in-out infinite;
}
.scn-bribe-information .hand-taking {
  position: absolute; bottom: 20%; right: 25%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
  animation: bi-hand-take 3s ease-in-out infinite;
}
.scn-bribe-information .coin {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 14px;
  background: radial-gradient(circle at 35% 35%, #ffddaa 0%, #ccaa66 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(255,220,170,0.5);
  transform: translateX(-50%);
  animation: bi-coin 1.5s ease-in-out infinite;
}
.scn-bribe-information .youth-profile {
  position: absolute; bottom: 28%; right: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 30% 30% 50% / 60% 40% 40% 60%;
  transform: scaleX(-1);
  animation: bi-youth 6s ease-in-out infinite;
}
.scn-bribe-information .shadow-creep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: bi-shadow 12s ease-in-out infinite alternate;
}
.scn-bribe-information .glow-coin {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,220,170,0.4) 0%, transparent 70%);
  transform: translateX(-50%);
  filter: blur(4px);
  animation: bi-glow 2s ease-in-out infinite alternate;
}
@keyframes bi-bg { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes bi-hand-give { 0%,100% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(10px, -5px) rotate(5deg); } 50% { transform: translate(20px, 0) rotate(0deg); } 75% { transform: translate(10px, 5px) rotate(-5deg); } }
@keyframes bi-hand-take { 0%,100% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(-10px, -5px) rotate(-5deg); } 50% { transform: translate(-20px, 0) rotate(0deg); } 75% { transform: translate(-10px, 5px) rotate(5deg); } }
@keyframes bi-coin { 0%,100% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-10px) scale(1.1); } }
@keyframes bi-youth { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes bi-shadow { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes bi-glow { 0% { opacity: 0.5; transform: translateX(-50%) scale(1); } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.3); } 100% { opacity: 0.4; transform: translateX(-50%) scale(0.9); } }

.scn-elma-responds {
  background:
    radial-gradient(ellipse at 50% 40%, rgba(60,40,20,0.6) 0%, transparent 70%),
    linear-gradient(180deg, #2a1b0e 0%, #1f1207 30%, #0d0804 100%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-elma-responds .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #3e2b1a 0%, #281a0d 100%);
  animation: er-wall 20s ease-in-out infinite alternate;
}
.scn-elma-responds .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2c1e0e 0%, #1a1008 100%);
  border-radius: 30% 70% 0 0 / 20% 30% 0 0;
  animation: er-floor 30s ease-in-out infinite alternate;
}
.scn-elma-responds .table {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 12px;
  background: linear-gradient(180deg, #4a3220 0%, #2c1a0e 100%);
  border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: er-table 10s ease-in-out infinite;
}
.scn-elma-responds .lamp {
  position: absolute; bottom: 40%; left: 45%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #e8b060 0%, #a07030 50%, #402010 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.3);
  animation: er-lamp 2s ease-in-out infinite alternate;
}
.scn-elma-responds .figure-nun {
  position: absolute; bottom: 16%; left: 20%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1e1414 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: er-nun 5s ease-in-out infinite;
}
.scn-elma-responds .figure-elma {
  position: absolute; bottom: 18%; right: 18%; width: 22px; height: 54px;
  background: linear-gradient(180deg, #2a2020 0%, #0e0a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: er-elma 6s ease-in-out infinite;
}
.scn-elma-responds .paper {
  position: absolute; bottom: 26%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 18px;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a888 100%);
  border-radius: 2px; rotate: -2deg;
  animation: er-paper 12s ease-in-out infinite alternate;
}
.scn-elma-responds .window {
  position: absolute; top: 8%; right: 12%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8), 0 0 8px rgba(100,140,180,0.2);
  animation: er-window 30s ease-in-out infinite alternate;
}
@keyframes er-wall { 0% { opacity:0.9 } 50% { opacity:0.7 } 100% { opacity:0.9 } }
@keyframes er-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes er-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(1px) } }
@keyframes er-lamp { 0% { box-shadow: 0 0 20px 6px #b08040; opacity:0.8 } 50% { box-shadow: 0 0 40px 12px #e8a050; opacity:1 } 100% { box-shadow: 0 0 25px 8px #b08040; opacity:0.85 } }
@keyframes er-nun { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes er-elma { 0% { transform: rotate(1deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes er-paper { 0% { rotate:-2deg } 50% { rotate:3deg } 100% { rotate:-2deg } }
@keyframes er-window { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.6 } }

.scn-schusselburg-fear {
  background:
    radial-gradient(ellipse at 50% 20%, #1a2a3a 0%, transparent 70%),
    linear-gradient(180deg, #0e141a 0%, #060a0e 100%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-schusselburg-fear .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #1c2228 0%, #101418 100%);
  animation: sf-wall 25s ease-in-out infinite alternate;
}
.scn-schusselburg-fear .bars {
  position: absolute; top: 0; left: 10%; right: 10%; height: 100%;
  background: repeating-linear-gradient(90deg, #2a3038 0px, #2a3038 4px, transparent 4px, transparent 20px);
  opacity: 0.6;
  animation: sf-bars 30s linear infinite;
}
.scn-schusselburg-fear .window {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.9), 0 0 10px rgba(100,140,200,0.15);
  animation: sf-window 40s ease-in-out infinite alternate;
}
.scn-schusselburg-fear .cot {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 20px;
  background: linear-gradient(180deg, #3a3030 0%, #1a1414 100%);
  border-radius: 4px;
  animation: sf-cot 10s ease-in-out infinite alternate;
}
.scn-schusselburg-fear .figure {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: sf-figure 8s ease-in-out infinite;
}
.scn-schusselburg-fear .moonlight {
  position: absolute; top: 8%; left: 46%; width: 30px; height: 60px;
  background: linear-gradient(180deg, rgba(180,200,230,0.08) 0%, transparent 100%);
  filter: blur(4px);
  animation: sf-moonlight 20s ease-in-out infinite alternate;
}
.scn-schusselburg-fear .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: sf-shadow 15s ease-in-out infinite alternate;
}
@keyframes sf-wall { 0% { opacity:0.85 } 50% { opacity:0.7 } 100% { opacity:0.85 } }
@keyframes sf-bars { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes sf-window { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes sf-cot { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sf-figure { 0% { transform: translateX(-50%) rotate(-1deg) } 25% { transform: translateX(-45%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-55%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(1deg) } }
@keyframes sf-moonlight { 0% { opacity:0.1 } 50% { opacity:0.3 } 100% { opacity:0.1 } }
@keyframes sf-shadow { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }

.scn-maimed-by-friends {
  background:
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #1a0e0a 0%, #0d0604 100%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-maimed-by-friends .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2c1c12 0%, #1a0e08 100%);
  animation: mb-wall 30s ease-in-out infinite alternate;
}
.scn-maimed-by-friends .bed {
  position: absolute; bottom: 16%; left: 20%; right: 20%; height: 14px;
  background: linear-gradient(180deg, #3c2a20 0%, #1c1410 100%);
  border-radius: 6px;
  animation: mb-bed 12s ease-in-out infinite alternate;
}
.scn-maimed-by-friends .figure-nun {
  position: absolute; bottom: 14%; left: 10%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #2c2020 0%, #14100e 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%;
  animation: mb-nun 7s ease-in-out infinite;
}
.scn-maimed-by-friends .figure-elma {
  position: absolute; bottom: 18%; right: 15%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1e1414 0%, #0a0808 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 25% 25%;
  animation: mb-elma 8s ease-in-out infinite;
}
.scn-maimed-by-friends .bandage {
  position: absolute; bottom: 24%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 10px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
  animation: mb-bandage 6s ease-in-out infinite alternate;
}
.scn-maimed-by-friends .lamp {
  position: absolute; bottom: 42%; left: 40%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 40%, #c08050 0%, #804020 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px #a06030, 0 0 40px 12px rgba(160,96,48,0.4);
  animation: mb-lamp 2s ease-in-out infinite alternate;
}
.scn-maimed-by-friends .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: mb-shadow 20s ease-in-out infinite alternate;
}
@keyframes mb-wall { 0% { opacity:0.9 } 50% { opacity:0.7 } 100% { opacity:0.9 } }
@keyframes mb-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mb-nun { 0% { transform: rotate(-1deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes mb-elma { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mb-bandage { 0% { width:30px; opacity:0.7 } 50% { width:34px; opacity:1 } 100% { width:30px; opacity:0.7 } }
@keyframes mb-lamp { 0% { box-shadow: 0 0 15px 4px #804020; opacity:0.7 } 50% { box-shadow: 0 0 30px 10px #c08050; opacity:1 } 100% { box-shadow: 0 0 18px 5px #804020; opacity:0.8 } }
@keyframes mb-shadow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

.scn-elma-trusts {
  background:
    radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%),
    linear-gradient(180deg, #2a1a10 0%, #180d08 100%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-elma-trusts .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #3c281a 0%, #24150c 100%);
  animation: et-wall 30s ease-in-out infinite alternate;
}
.scn-elma-trusts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2e1c10 0%, #1a0e08 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: et-floor 20s ease-in-out infinite alternate;
}
.scn-elma-trusts .rug {
  position: absolute; bottom: 14%; left: 20%; right: 20%; height: 12px;
  background: linear-gradient(180deg, #5a3a2a 0%, #382214 100%);
  border-radius: 8px;
  animation: et-rug 25s ease-in-out infinite alternate;
}
.scn-elma-trusts .figure-nun {
  position: absolute; bottom: 16%; left: 20%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #2e2222 0%, #181010 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: et-nun 6s ease-in-out infinite;
}
.scn-elma-trusts .figure-elma {
  position: absolute; bottom: 16%; right: 25%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #221818 0%, #0e0a0a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: et-elma 7s ease-in-out infinite;
}
.scn-elma-trusts .hand {
  position: absolute; bottom: 30%; left: 32%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #4a3830 0%, #281c18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: et-hand 4s ease-in-out infinite alternate;
}
.scn-elma-trusts .glow {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,170,120,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: et-glow 5s ease-in-out infinite alternate;
}
.scn-elma-trusts .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: et-shadow 25s ease-in-out infinite alternate;
}
@keyframes et-wall { 0% { opacity:0.85 } 50% { opacity:0.7 } 100% { opacity:0.85 } }
@keyframes et-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes et-rug { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes et-nun { 0% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes et-elma { 0% { transform: rotate(1deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes et-hand { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes et-glow { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.3 } }
@keyframes et-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* scene: chater-meeting-debated */
.scn-chater-meeting-debated { background: linear-gradient(180deg, #2d1b2d 0%, #6b3a2a 60%, #a55a3a 100%), radial-gradient(ellipse at 50% 60%, #3a1a2a 0%, transparent 70%); }
.scn-chater-meeting-debated .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #3a2a3a 0%, #5a3a2a 40%, #2a1a2a 100%); }
.scn-chater-meeting-debated .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 60% 60% 0 0 / 20% 20% 0 0; }
.scn-chater-meeting-debated .cupboard { position:absolute; right:20%; bottom:20%; width:16%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border:2px solid #5a4a3a; border-radius:4%; box-shadow: inset 0 -6px 12px #0a0a0a; animation: cmd-creak 8s ease-in-out infinite; }
.scn-chater-meeting-debated .figure { position:absolute; left:35%; bottom:22%; width:12%; height:50%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cmd-figure 3s ease-in-out infinite; }
.scn-chater-meeting-debated .lamp { position:absolute; left:50%; bottom:62%; width:6%; height:8%; background: radial-gradient(circle, #e08040 0%, #c06020 60%, #a04010 100%); border-radius:50%; box-shadow: 0 0 20px 8px #c06020, 0 0 40px 16px rgba(192,96,32,.4); animation: cmd-flicker 0.8s ease-in-out infinite alternate; }
.scn-chater-meeting-debated .shadow { position:absolute; left:38%; bottom:10%; width:30%; height:6%; background: linear-gradient(90deg, transparent, rgba(0,0,0,0.6) 50%, transparent); border-radius:50%; filter: blur(4px); animation: cmd-shadow 8s ease-in-out infinite; }
.scn-chater-meeting-debated .desk { position:absolute; left:30%; bottom:12%; width:40%; height:8%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
@keyframes cmd-creak { 0%,100% { transform: rotate(0deg) } 10%,90% { transform: rotate(1deg) } 20%,80% { transform: rotate(0deg) } 30%,70% { transform: rotate(0.5deg) } 40%,60% { transform: rotate(-0.3deg) } 50% { transform: rotate(-1deg) } }
@keyframes cmd-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4%) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4%) rotate(3deg) } }
@keyframes cmd-flicker { 0% { opacity:0.7; box-shadow: 0 0 15px 6px #b05020, 0 0 30px 12px rgba(176,80,32,0.3) } 50% { opacity:0.9; box-shadow: 0 0 30px 12px #e08040, 0 0 60px 24px rgba(224,128,64,0.5) } 100% { opacity:0.6; box-shadow: 0 0 10px 4px #a04010, 0 0 20px 8px rgba(160,64,16,0.2) } }
@keyframes cmd-shadow { 0%,100% { transform: translateX(0) scale(1); opacity:0.7 } 50% { transform: translateX(10%) scale(0.9); opacity:0.9 } }

/* scene: chater-leaves */
.scn-chater-leaves { background: linear-gradient(180deg, #8899aa 0%, #aabbcc 40%, #bbccdd 100%), radial-gradient(ellipse at 50% 0%, #ccddee 0%, transparent 70%); }
.scn-chater-leaves .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #a0b0c0 0%, #c0d0e0 100%); animation: cl-sky 15s ease-in-out infinite alternate; }
.scn-chater-leaves .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6b7b6b 0%, #4b5b4b 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.2); animation: cl-hills 12s ease-in-out infinite alternate; }
.scn-chater-leaves .tree { position:absolute; right:20%; bottom:35%; width:8%; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: cl-tree 18s ease-in-out infinite; }
.scn-chater-leaves .figure { position:absolute; left:30%; bottom:28%; width:10%; height:35%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cl-walk 6s ease-in-out infinite; }
.scn-chater-leaves .cloud-a { position:absolute; top:10%; left:10%; width:25%; height:8%; background: linear-gradient(90deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(8px); animation: cl-drift-a 40s linear infinite; }
.scn-chater-leaves .cloud-b { position:absolute; top:15%; left:60%; width:20%; height:6%; background: linear-gradient(90deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter: blur(6px); animation: cl-drift-b 55s linear infinite reverse; }
@keyframes cl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cl-hills { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes cl-tree { 0%,100% { transform: rotate(0deg) scale(1) } 25% { transform: rotate(1deg) scale(1.02) } 75% { transform: rotate(-1deg) scale(0.98) } }
@keyframes cl-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8%) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-8%) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cl-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(150vw) } }
@keyframes cl-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* scene: chater-south */
.scn-chater-south { background: linear-gradient(180deg, #6b7b8b 0%, #8b9bab 50%, #abbbcb 100%), radial-gradient(ellipse at 70% 0%, #8b9bab 0%, transparent 80%); }
.scn-chater-south .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #abbbcb 0%, #8b9bab 100%); animation: cs-sky 20s ease-in-out infinite alternate; }
.scn-chater-south .building-left { position:absolute; left:5%; bottom:30%; width:25%; height:55%; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); }
.scn-chater-south .building-right { position:absolute; right:5%; bottom:25%; width:30%; height:60%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.4); }
.scn-chater-south .lamp { position:absolute; left:50%; bottom:40%; width:4%; height:10%; background: radial-gradient(circle at 50% 20%, #a09050 0%, #706030 60%, #403020 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 12px 4px rgba(160,144,80,0.4); animation: cs-lamp 6s ease-in-out infinite alternate; }
.scn-chater-south .figure { position:absolute; left:35%; bottom:22%; width:8%; height:30%; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-figure 8s ease-in-out infinite; }
.scn-chater-south .cab { position:absolute; left:55%; bottom:20%; width:18%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: cs-cab 15s ease-in-out infinite; }
.scn-chater-south .fog { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, rgba(200,210,220,0.3) 0%, transparent 70%); animation: cs-fog 30s ease-in-out infinite alternate; }
@keyframes cs-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cs-lamp { 0% { opacity:0.6; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.7; transform: scale(0.98) } }
@keyframes cs-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5%) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-5%) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cs-cab { 0%,100% { transform: translateX(0) translateY(0) } 25% { transform: translateX(8%) translateY(-2%) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(-8%) translateY(-1%) } }
@keyframes cs-fog { 0% { opacity:0.3; transform: translateY(0) } 50% { opacity:0.6; transform: translateY(-10%) } 100% { opacity:0.2; transform: translateY(5%) } }

/* scene: maid-overheard */
.scn-maid-overheard { background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a8 50%, #a89888 100%), radial-gradient(ellipse at 30% 70%, #eeddcc 0%, transparent 70%); }
.scn-maid-overheard .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #d8c8b8 0%, #c8b8a8 60%, #b8a898 100%); }
.scn-maid-overheard .window { position:absolute; right:10%; top:15%; width:20%; height:40%; background: linear-gradient(180deg, #ffffe0 0%, #d0c8a0 100%); border-radius:4%; box-shadow: 0 0 30px 10px rgba(255,255,224,0.5); animation: mo-light 4s ease-in-out infinite alternate; }
.scn-maid-overheard .door { position:absolute; left:5%; bottom:0; width:18%; height:75%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border:2px solid #3a2a1a; border-radius:4% 4% 0 0; box-shadow: inset 0 0 12px #2a1a0a; animation: mo-door 0.6s ease-in-out infinite; }
.scn-maid-overheard .desk { position:absolute; left:30%; bottom:12%; width:30%; height:10%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:6% 6% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-maid-overheard .figure-man { position:absolute; left:50%; bottom:18%; width:14%; height:55%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mo-man 1.5s ease-in-out infinite; }
.scn-maid-overheard .figure-woman { position:absolute; left:30%; bottom:15%; width:12%; height:50%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mo-woman 1.2s ease-in-out infinite; }
.scn-maid-overheard .papers { position:absolute; left:35%; bottom:25%; width:8%; height:1%; background: #e0d0b0; border-radius:10%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: mo-papers 0.8s ease-in-out infinite; }
.scn-maid-overheard .shadow { position:absolute; left:20%; bottom:5%; width:60%; height:2%; background: linear-gradient(90deg, transparent, rgba(0,0,0,0.3) 50%, transparent); border-radius:50%; filter: blur(4px); animation: mo-shadow 2s ease-in-out infinite; }
@keyframes mo-light { 0% { opacity:0.8; box-shadow: 0 0 20px 6px rgba(255,255,224,0.4) } 50% { opacity:1; box-shadow: 0 0 40px 16px rgba(255,255,224,0.7) } 100% { opacity:0.7; box-shadow: 0 0 30px 10px rgba(255,255,224,0.3) } }
@keyframes mo-door { 0%,100% { transform: translateX(0) rotate(0deg) } 10%,90% { transform: translateX(2%) rotate(1deg) } 20%,80% { transform: translateX(0) rotate(0deg) } 30%,70% { transform: translateX(-1%) rotate(-0.5deg) } 40%,60% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1%) rotate(0.8deg) } }
@keyframes mo-man { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(6%) rotate(4deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-6%) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mo-woman { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(5%) rotate(-3deg) } 40% { transform: translateX(-3%) rotate(2deg) } 60% { transform: translateX(7%) rotate(-4deg) } 80% { transform: translateX(-2%) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mo-papers { 0% { transform: translate(0,0) rotate(0deg); opacity:1 } 50% { transform: translate(20%,-50%) rotate(45deg); opacity:0.6 } 100% { transform: translate(-10%,-30%) rotate(-30deg); opacity:0.8 } }
@keyframes mo-shadow { 0%,100% { transform: translateX(0) scale(1); opacity:0.5 } 50% { transform: translateX(15%) scale(0.9); opacity:0.8 } }

/* tea-revelation */
.scn-tea-revelation { background: linear-gradient(180deg, #f5ebe0 0%, #d4c4a8 40%, #b8a68a 100%), radial-gradient(ellipse at 50% 30%, #fff8f0 0%, transparent 60%); }
.scn-tea-revelation .wall { position:absolute; inset:0; background: linear-gradient(135deg, #e8dcc8 0%, #cbb59a 100%); }
.scn-tea-revelation .window { position:absolute; top:8%; left:38%; width:24%; height:55%; background: linear-gradient(135deg, #fff8f0 0%, #f0dcc8 100%); border:4px solid #a08060; border-radius:4px; box-shadow: inset 0 0 30px #ffe0b0, 0 0 40px #ffe0b099; animation: tr-window 6s ease-in-out infinite; }
.scn-tea-revelation .curtain-left { position:absolute; top:8%; left:38%; width:12%; height:55%; background: linear-gradient(90deg, #a07050 0%, #c89070 100%); border-radius:0 4px 4px 0; transform-origin: left; animation: tr-curtain 8s ease-in-out infinite; }
.scn-tea-revelation .curtain-right { position:absolute; top:8%; right:38%; width:12%; height:55%; background: linear-gradient(90deg, #c89070 0%, #a07050 100%); border-radius:4px 0 0 4px; transform-origin: right; animation: tr-curtain 8s ease-in-out infinite reverse; }
.scn-tea-revelation .table { position:absolute; bottom:20%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-tea-revelation .teacup { position:absolute; bottom:30%; left:50%; width:6%; height:8%; background: radial-gradient(ellipse at 50% 30%, #f0ece0 0%, #d4c8b8 70%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: tr-cup 3s ease-in-out infinite; }
.scn-tea-revelation .figure1 { position:absolute; bottom:22%; left:44%; width:10%; height:28%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-fig1 4s ease-in-out infinite; }
.scn-tea-revelation .figure2 { position:absolute; bottom:22%; right:44%; width:10%; height:28%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-fig2 3.6s ease-in-out infinite; }
.scn-tea-revelation .shadow { position:absolute; bottom:22%; left:35%; width:30%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 80%); animation: tr-shadow 4s ease-in-out infinite; }
@keyframes tr-window { 0%,100% { box-shadow: inset 0 0 30px #ffe0b0, 0 0 40px #ffe0b099; } 50% { box-shadow: inset 0 0 20px #ffe0b0, 0 0 60px #ffe0b0cc; } }
@keyframes tr-curtain { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.92); } }
@keyframes tr-cup { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes tr-fig1 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes tr-fig2 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(1deg); } }
@keyframes tr-shadow { 0%,100% { opacity:.4; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.1); } }

/* whole-story-begins */
.scn-whole-story-begins { background: linear-gradient(180deg, #f5ebe0 0%, #d4c4a8 40%, #b8a68a 100%), radial-gradient(ellipse at 50% 50%, #fff8f0 0%, transparent 70%); }
.scn-whole-story-begins .room-deep { position:absolute; inset:0; background: linear-gradient(135deg, #e8dcc8 0%, #b8a68a 100%); }
.scn-whole-story-begins .desk { position:absolute; bottom:15%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 8px 16px rgba(0,0,0,.3); }
.scn-whole-story-begins .lamp { position:absolute; bottom:30%; left:22%; width:10%; height:18%; background: radial-gradient(ellipse at 50% 20%, #f0c860 0%, #b08830 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 40px #f0c86066; animation: ws-lamp 5s ease-in-out infinite alternate; }
.scn-whole-story-begins .chair-left { position:absolute; bottom:12%; left:25%; width:14%; height:25%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 8% 8%; transform-origin: bottom center; animation: ws-chair 7s ease-in-out infinite; }
.scn-whole-story-begins .chair-right { position:absolute; bottom:12%; right:25%; width:14%; height:25%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 8% 8%; transform-origin: bottom center; animation: ws-chair 7s ease-in-out infinite reverse; }
.scn-whole-story-begins .figure-narrator { position:absolute; bottom:14%; left:28%; width:10%; height:22%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ws-fig1 4s ease-in-out infinite; }
.scn-whole-story-begins .figure-listener { position:absolute; bottom:14%; right:28%; width:10%; height:22%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ws-fig2 3.2s ease-in-out infinite; }
.scn-whole-story-begins .clock { position:absolute; top:12%; right:15%; width:6%; height:6%; background: radial-gradient(circle, #f0e0c0 0%, #a08060 100%); border-radius:50%; box-shadow: inset 0 0 8px #4a3a2a; animation: ws-clock 1s steps(2) infinite; }
@keyframes ws-lamp { 0%,100% { opacity:.9; box-shadow: 0 0 30px #f0c86066; } 50% { opacity:1; box-shadow: 0 0 50px #f0c86099; } }
@keyframes ws-chair { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 75% { transform: rotate(-1deg); } }
@keyframes ws-fig1 { 0%,100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
@keyframes ws-fig2 { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-3px); } }
@keyframes ws-clock { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } }

/* malta-theft */
.scn-malta-theft { background: linear-gradient(180deg, #f5ebe0 0%, #d4c4a8 40%, #b8a68a 100%), radial-gradient(ellipse at 50% 40%, #fff8f0 0%, transparent 60%); }
.scn-malta-theft .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #e8dcc8 0%, #b8a68a 100%); }
.scn-malta-theft .safe { position:absolute; bottom:20%; left:28%; width:20%; height:30%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border:4px solid #5a5a6a; border-radius:6px; box-shadow: inset 0 0 20px #0a0a1a; animation: mt-safe 12s ease-in-out infinite; }
.scn-malta-theft .papers { position:absolute; bottom:25%; left:50%; width:30%; height:8%; background: linear-gradient(90deg, #f0e8d0 0%, #e0d0b0 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.1); transform: rotate(-4deg); animation: mt-papers 6s ease-in-out infinite; }
.scn-malta-theft .lamp { position:absolute; top:15%; left:42%; width:8%; height:15%; background: radial-gradient(ellipse at 50% 30%, #f0c860 0%, #b08830 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 40px #f0c86066; animation: mt-lamp 4s ease-in-out infinite alternate; }
.scn-malta-theft .figure-thief { position:absolute; bottom:10%; left:30%; 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 center; animation: mt-thief 3.5s ease-in-out infinite; }
.scn-malta-theft .map { position:absolute; top:14%; left:18%; width:22%; height:18%; background: linear-gradient(135deg, #d4c8b0 0%, #b8a88a 100%); border:2px solid #8a7a5a; border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.2); }
.scn-malta-theft .shadow-stripe { position:absolute; top:0; left:50%; width:4%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.3) 100%); animation: mt-stripe 8s linear infinite; }
@keyframes mt-safe { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); box-shadow: inset 0 0 30px #0a0a1a; } }
@keyframes mt-papers { 0%,100% { transform: rotate(-4deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(3px); } }
@keyframes mt-lamp { 0%,100% { opacity:.8; } 50% { opacity:1; } }
@keyframes mt-thief { 0%,100% { transform: translateX(0); } 25% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(-8px) rotate(-2deg); } }
@keyframes mt-stripe { 0%,100% { opacity:.3; } 50% { opacity:.6; } }

/* muriel-confirms */
.scn-muriel-confirms { background: linear-gradient(180deg, #f5ebe0 0%, #d4c4a8 40%, #b8a68a 100%), radial-gradient(ellipse at 50% 50%, #fff8f0 0%, transparent 70%); }
.scn-muriel-confirms .wall-panel { position:absolute; inset:0; background: linear-gradient(135deg, #e8dcc8 0%, #b8a68a 100%); }
.scn-muriel-confirms .fireplace { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:40%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:8% 8% 4% 4%; box-shadow: inset 0 -10px 20px #1a0a00; }
.scn-muriel-confirms .fire { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:10%; height:14%; background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #ff6000 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px #ff600099, 0 0 80px #ff600066; animation: mc-fire 0.8s ease-in-out infinite alternate; }
.scn-muriel-confirms .rug { position:absolute; bottom:0; left:20%; width:60%; height:12%; background: linear-gradient(90deg, #c8553d 0%, #a0461a 50%, #c8553d 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; animation: mc-rug 12s ease-in-out infinite; }
.scn-muriel-confirms .figure-jack { position:absolute; bottom:18%; left:35%; width:10%; height:28%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-jack 4.5s ease-in-out infinite; }
.scn-muriel-confirms .figure-muriel { position:absolute; bottom:18%; right:35%; width:9%; height:26%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-muriel 4s ease-in-out infinite; }
.scn-muriel-confirms .painting { position:absolute; top:8%; left:50%; transform:translateX(-50%); width:22%; height:18%; background: linear-gradient(135deg, #3a5a3a 0%, #1a3a1a 100%); border:4px solid #6a5a3a; border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
@keyframes mc-fire { 0% { transform: translateX(-50%) scaleY(1); opacity:.9; } 100% { transform: translateX(-50%) scaleY(1.15); opacity:1; } }
@keyframes mc-rug { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } }
@keyframes mc-jack { 0%,100% { transform: translateX(0); } 25% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes mc-muriel { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-1px) rotate(-0.5deg); } }

/* man-woman-mystery */
.scn-man-woman-mystery {
  background: linear-gradient(180deg, #0f0c29 0%, #302b63 50%, #24243e 100%), radial-gradient(ellipse at 30% 60%, #302b63 0%, transparent 70%);
}
.scn-man-woman-mystery .bg-deep {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a153a 0%, transparent 100%); opacity:.6;
  animation: mwm-deep 12s ease-in-out infinite alternate;
}
.scn-man-woman-mystery .bg-mid {
  position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, #2c2555 0%, transparent 100%); opacity:.5;
}
.scn-man-woman-mystery .porthole {
  position:absolute; top:12%; left:10%; width:80px; height:80px; border-radius:50%; background: radial-gradient(circle at 40% 40%, #6a7a9a 0%, #1a224a 70%); box-shadow:0 0 30px 10px rgba(80,100,160,.3);
  animation: mwm-porthole 8s ease-in-out infinite alternate;
}
.scn-man-woman-mystery .table {
  position:absolute; bottom:18%; left:25%; right:25%; height:18px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.5);
}
.scn-man-woman-mystery .figure-left {
  position:absolute; bottom:20%; left:30%; width:24px; height:44px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center;
  animation: mwm-lurch 5s ease-in-out infinite;
}
.scn-man-woman-mystery .figure-right {
  position:absolute; bottom:20%; right:30%; width:22px; height:42px; background: linear-gradient(180deg, #2a2a3e 0%, #15152a 100%); border-radius:45% 55% 40% 40% / 55% 60% 40% 40%; transform-origin:bottom center;
  animation: mwm-lurch 6s ease-in-out infinite reverse;
}
.scn-man-woman-mystery .lamp {
  position:absolute; bottom:45%; left:50%; width:10px; height:16px; transform:translateX(-50%); background: radial-gradient(circle at 50% 0%, #ffd080 0%, #b08040 100%); border-radius:60% 60% 20% 20%; box-shadow:0 0 40px 12px rgba(255,208,128,.4);
  animation: mwm-lamp 2s ease-in-out infinite alternate;
}
.scn-man-woman-mystery .curtain {
  position:absolute; top:0; right:0; width:40px; height:100%; background: linear-gradient(90deg, #3a2a4a 0%, #1a1a2e 100%); border-radius:0 0 0 20px; filter:blur(2px);
  animation: mwm-curtain 9s ease-in-out infinite alternate;
}
@keyframes mwm-deep { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes mwm-porthole { 0% { transform:scale(1); } 50% { transform:scale(1.05); } 100% { transform:scale(0.98); } }
@keyframes mwm-lurch { 0% { transform: rotate(-2deg) translateX(0); } 30% { transform: rotate(1deg) translateX(4px); } 60% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes mwm-lamp { 0% { opacity:.7; box-shadow:0 0 25px 8px rgba(255,208,128,.3); } 50% { opacity:1; box-shadow:0 0 50px 16px rgba(255,208,128,.6); } 100% { opacity:.8; box-shadow:0 0 30px 10px rgba(255,208,128,.4); } }
@keyframes mwm-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-6px); } 100% { transform: translateX(4px); } }

/* planned-clever */
.scn-planned-clever {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #4a3a2a 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 20%, #6a4a2a 0%, transparent 60%);
}
.scn-planned-clever .bg-wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, transparent 100%); opacity:.7;
}
.scn-planned-clever .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%);
}
.scn-planned-clever .crate {
  position:absolute; bottom:25%; left:15%; width:50px; height:40px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.5);
}
.scn-planned-clever .guns {
  position:absolute; bottom:32%; left:18%; width:36px; height:14px; background: linear-gradient(90deg, #2a2a2a 0%, #4a4a4a 50%, #2a2a2a 100%); border-radius:40% 40% 10% 10% / 60% 60% 20% 20%; transform:rotate(-20deg); box-shadow:0 2px 4px rgba(0,0,0,.4);
  animation: pc-guns 3s ease-in-out infinite alternate;
}
.scn-planned-clever .figure {
  position:absolute; bottom:20%; left:45%; width:26px; height:48px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:45% 55% 40% 40% / 55% 60% 40% 40%; transform-origin:bottom center;
  animation: pc-figure 4s ease-in-out infinite;
}
.scn-planned-clever .plans {
  position:absolute; bottom:28%; left:35%; width:40px; height:30px; background: linear-gradient(135deg, #c8b88a 0%, #a09070 100%); border-radius:2px; transform:rotate(-10deg); box-shadow:0 2px 6px rgba(0,0,0,.3);
  animation: pc-plans 6s ease-in-out infinite;
}
.scn-planned-clever .lantern {
  position:absolute; top:20%; left:55%; width:14px; height:20px; background: radial-gradient(circle at 50% 0%, #ffc060 0%, #a07020 100%); border-radius:50% 50% 30% 30%; box-shadow:0 0 30px 10px rgba(255,192,96,.5);
  animation: pc-lantern 2.5s ease-in-out infinite alternate;
}
.scn-planned-clever .shelf {
  position:absolute; top:20%; right:8%; width:60px; height:8px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.3);
  animation: pc-shelf 8s ease-in-out infinite alternate;
}
@keyframes pc-guns { 0% { transform:rotate(-20deg) translateY(0); } 50% { transform:rotate(-18deg) translateY(-2px); } 100% { transform:rotate(-22deg) translateY(1px); } }
@keyframes pc-figure { 0% { transform: rotate(-1deg) translateX(0); } 30% { transform: rotate(2deg) translateX(3px); } 70% { transform: rotate(-2deg) translateX(-1px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes pc-plans { 0% { transform:rotate(-10deg) scale(1); } 50% { transform:rotate(-8deg) scale(1.02); } 100% { transform:rotate(-12deg) scale(0.98); } }
@keyframes pc-lantern { 0% { opacity:.7; box-shadow:0 0 20px 6px rgba(255,192,96,.3); } 50% { opacity:1; box-shadow:0 0 40px 14px rgba(255,192,96,.6); } 100% { opacity:.8; box-shadow:0 0 25px 8px rgba(255,192,96,.4); } }
@keyframes pc-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }

/* torn-photo-discussion */
.scn-torn-photo-discussion {
  background: linear-gradient(180deg, #1a1528 0%, #2a2035 40%, #1e1a2c 80%, #0f0c1a 100%), radial-gradient(ellipse at 40% 50%, #3a2a4a 0%, transparent 70%);
}
.scn-torn-photo-discussion .bg-wall {
  position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2035 0%, transparent 100%); opacity:.6;
}
.scn-torn-photo-discussion .bg-table {
  position:absolute; bottom:0; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:20% 20% 0 0 / 60% 60% 0 0;
}
.scn-torn-photo-discussion .lamp {
  position:absolute; bottom:50%; left:50%; width:12px; height:20px; transform:translateX(-50%); background: radial-gradient(circle at 50% 0%, #e0a050 0%, #804020 100%); border-radius:60% 60% 20% 20%; box-shadow:0 0 35px 10px rgba(224,160,80,.5);
  animation: tpd-lamp 1.5s ease-in-out infinite alternate;
}
.scn-torn-photo-discussion .figure-left {
  position:absolute; bottom:35%; left:20%; width:28px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:45% 55% 40% 40% / 55% 60% 40% 40%; transform-origin:bottom center;
  animation: tpd-figure 3s ease-in-out infinite;
}
.scn-torn-photo-discussion .figure-right {
  position:absolute; bottom:35%; right:20%; width:26px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #15152a 100%); border-radius:55% 45% 40% 40% / 60% 55% 40% 40%; transform-origin:bottom center;
  animation: tpd-figure 3.7s ease-in-out infinite reverse;
}
.scn-torn-photo-discussion .photo-fragment {
  position:absolute; bottom:37%; left:45%; width:24px; height:30px; background: linear-gradient(135deg, #d0c0a0 0%, #a09070 100%); border-radius:2px; transform:rotate(15deg); box-shadow:0 2px 4px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.2);
  animation: tpd-photo 4s ease-in-out infinite;
}
.scn-torn-photo-discussion .hand {
  position:absolute; bottom:38%; left:42%; width:12px; height:18px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius:40% 60% 30% 50% / 50% 60% 40% 40%; transform-origin:80% 100%;
  animation: tpd-hand 2.5s ease-in-out infinite alternate;
}
@keyframes tpd-lamp { 0% { opacity:.6; box-shadow:0 0 20px 6px rgba(224,160,80,.3); } 30% { opacity:.9; box-shadow:0 0 40px 12px rgba(224,160,80,.5); } 60% { opacity:.7; box-shadow:0 0 25px 8px rgba(224,160,80,.4); } 100% { opacity:.8; box-shadow:0 0 30px 10px rgba(224,160,80,.45); } }
@keyframes tpd-figure { 0% { transform: rotate(-2deg) translateX(0); } 25% { transform: rotate(1deg) translateX(4px); } 50% { transform: rotate(-1deg) translateX(-2px); } 75% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes tpd-photo { 0% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(17deg) translateY(-3px); } 100% { transform:rotate(13deg) translateY(1px); } }
@keyframes tpd-hand { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(5px); } 100% { transform: rotate(5deg) translateX(-2px); } }

/* report-to-london */
.scn-report-to-london {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 30%, #d4bf90 60%, #c0a870 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-report-to-london .bg-wall {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d4a8 0%, #d4bf90 100%); opacity:.5;
}
.scn-report-to-london .window {
  position:absolute; top:15%; left:10%; width:100px; height:140px; background: radial-gradient(ellipse at 30% 40%, #d0e8ff 0%, #a0c8e8 100%); border:6px solid #8a6a3a; border-radius:4px; box-shadow:0 8px 20px rgba(0,0,0,.2);
  animation: rtl-window 10s ease-in-out infinite alternate;
}
.scn-report-to-london .sunrays {
  position:absolute; top:15%; left:10%; width:100px; height:140px; background: linear-gradient(135deg, rgba(255,255,200,.4) 0%, transparent 100%); filter:blur(8px);
  animation: rtl-rays 20s linear infinite;
}
.scn-report-to-london .desk {
  position:absolute; bottom:15%; left:35%; right:15%; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.3);
}
.scn-report-to-london .figure {
  position:absolute; bottom:16%; left:42%; width:28px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:45% 55% 40% 40% / 50% 60% 40% 40%; transform-origin:bottom center;
  animation: rtl-figure 5s ease-in-out infinite;
}
.scn-report-to-london .papers {
  position:absolute; bottom:18%; left:35%; width:30px; height:24px; background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%); border-radius:2px; transform:rotate(-5deg); box-shadow:0 2px 4px rgba(0,0,0,.2);
  animation: rtl-papers 8s ease-in-out infinite;
}
.scn-report-to-london .inkwell {
  position:absolute; bottom:20%; left:33%; width:12px; height:14px; background: radial-gradient(circle at 50% 30%, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow:0 2px 4px rgba(0,0,0,.3);
}
.scn-report-to-london .globe {
  position:absolute; bottom:20%; right:18%; width:32px; height:32px; border-radius:50%; background: radial-gradient(circle at 40% 40%, #6a8a4a 0%, #3a5a2a 50%, #2a3a1a 100%); box-shadow:0 4px 8px rgba(0,0,0,.3);
  animation: rtl-globe 30s linear infinite;
}
@keyframes rtl-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes rtl-rays { 0% { transform: translateX(-10px) translateY(0); } 50% { transform: translateX(5px) translateY(-10px); } 100% { transform: translateX(-10px) translateY(0); } }
@keyframes rtl-figure { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-2deg) translateY(1px); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes rtl-papers { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-3px); } 100% { transform:rotate(-7deg) translateY(2px); } }
@keyframes rtl-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* woodroffe-assassin */
.scn-woodroffe-assassin {
  background: 
    linear-gradient(180deg, #0d0a1a 0%, #1a1428 40%, #2c2044 70%, #1a1428 100%),
    radial-gradient(ellipse at 50% 80%, #2c2044 0%, transparent 60%);
}
.scn-woodroffe-assassin .room-bg {
  position:absolute; inset:0; background:linear-gradient(135deg, #0f0b1e 0%, #1f1730 60%, #2a1f3a 100%);
}
.scn-woodroffe-assassin .wall-shadow {
  position:absolute; right:0; bottom:0; width:35%; height:60%;
  background:linear-gradient(135deg, transparent 30%, #0a0815);
  animation: wa-shadow 8s ease-in-out infinite alternate;
}
.scn-woodroffe-assassin .lamp-glow {
  position:absolute; bottom:42%; left:32%; width:120px; height:120px;
  background:radial-gradient(circle, rgba(200,160,80,.6) 0%, rgba(200,160,80,.1) 40%, transparent 70%);
  border-radius:50%;
  animation: wa-glow 3s ease-in-out infinite alternate;
}
.scn-woodroffe-assassin .lamp-body {
  position:absolute; bottom:44%; left:38%; width:8px; height:18px;
  background:linear-gradient(180deg, #4a3a20, #2a1a10); border-radius:2px;
}
.scn-woodroffe-assassin .table {
  position:absolute; bottom:38%; left:30%; width:100px; height:8px;
  background:linear-gradient(180deg, #3a2a18, #2a1a0e); border-radius:2px;
  box-shadow:0 4px 8px rgba(0,0,0,.6);
}
.scn-woodroffe-assassin .figure-assassin {
  position:absolute; bottom:12%; left:58%; width:28px; height:80px;
  background:linear-gradient(180deg, #1a1424 0%, #0e0a1a 80%, #080412 100%);
  border-radius:40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation: wa-assassin 6s ease-in-out infinite;
}
.scn-woodroffe-assassin .figure-victim {
  position:absolute; bottom:10%; left:42%; width:26px; height:74px;
  background:linear-gradient(180deg, #2a1e34 0%, #1a1228 70%, #140e20 100%);
  border-radius:45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin:bottom center;
  animation: wa-victim 5s ease-in-out infinite alternate;
}
.scn-woodroffe-assassin .door-slab {
  position:absolute; right:10%; top:10%; width:50px; height:90%;
  background:linear-gradient(180deg, #1a1428, #0e0a1a);
  border-radius:4px;
  box-shadow: inset -4px 0 6px rgba(0,0,0,.5);
}
.scn-woodroffe-assassin .floor-line {
  position:absolute; bottom:8%; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent 5%, #2a1e3a 30%, #1a1230 70%, transparent 95%);
  animation: wa-floor 10s ease-in-out infinite alternate;
}
@keyframes wa-shadow {
  0% { opacity:.5; transform:scaleX(1) }
  50% { opacity:.8; transform:scaleX(1.05) }
  100% { opacity:.6; transform:scaleX(.95) }
}
@keyframes wa-glow {
  0% { opacity:.6; transform:scale(1) }
  50% { opacity:1; transform:scale(1.1) }
  100% { opacity:.7; transform:scale(.9) }
}
@keyframes wa-assassin {
  0% { transform:translateX(0) rotate(0deg) }
  25% { transform:translateX(3px) rotate(2deg) }
  50% { transform:translateX(-2px) rotate(-1deg) }
  75% { transform:translateX(4px) rotate(1deg) }
  100% { transform:translateX(0) rotate(0deg) }
}
@keyframes wa-victim {
  0% { transform:translateY(0) }
  50% { transform:translateY(-2px) }
  100% { transform:translateY(1px) }
}
@keyframes wa-floor {
  0% { opacity:.3 }
  50% { opacity:.6 }
  100% { opacity:.4 }
}

/* spy-recognized */
.scn-spy-recognized {
  background:
    linear-gradient(180deg, #0f1420 0%, #1a2030 40%, #2a3040 80%, #1a2030 100%),
    radial-gradient(ellipse at 30% 50%, #1a2030 0%, transparent 60%);
}
.scn-spy-recognized .wall-bg {
  position:absolute; inset:0; background:linear-gradient(135deg, #121724, #1c2232);
}
.scn-spy-recognized .window-frame {
  position:absolute; left:15%; top:10%; width:50%; height:70%;
  border:4px solid #2a3a4a; background:radial-gradient(circle at 50% 50%, #0a1a2a, #1a2a3a);
  border-radius:8px;
  animation: sr-window 12s ease-in-out infinite alternate;
}
.scn-spy-recognized .curtain-left {
  position:absolute; left:13%; top:8%; width:16%; height:72%;
  background:linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #1a2028 100%);
  border-radius:4px; transform-origin:left center;
  animation: sr-curtain-l 8s ease-in-out infinite alternate;
}
.scn-spy-recognized .curtain-right {
  position:absolute; right:32%; top:8%; width:16%; height:72%;
  background:linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #1a2028 100%);
  border-radius:4px; transform-origin:right center;
  animation: sr-curtain-r 8s ease-in-out infinite alternate-reverse;
}
.scn-spy-recognized .figure-spy {
  position:absolute; bottom:10%; left:30%; width:24px; height:70px;
  background:linear-gradient(180deg, #0e1422 0%, #060a14 80%);
  border-radius:40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation: sr-spy 10s ease-in-out infinite;
}
.scn-spy-recognized .street-lamp {
  position:absolute; bottom:30%; left:5%; width:6px; height:20px;
  background:linear-gradient(180deg, #2a3a4a, #1a2028); border-radius:2px;
}
.scn-spy-recognized .fog {
  position:absolute; inset:0; background:radial-gradient(ellipse at 40% 60%, rgba(100,120,140,.2), transparent);
  filter:blur(10px);
  animation: sr-fog 20s ease-in-out infinite alternate;
}
.scn-spy-recognized .shadow-blob {
  position:absolute; bottom:5%; left:20%; width:80px; height:20px;
  background:radial-gradient(ellipse, rgba(0,0,0,.4), transparent);
  animation: sr-blob 6s ease-in-out infinite alternate;
}
@keyframes sr-window {
  0% { background:radial-gradient(circle at 50% 50%, #0a1a2a, #1a2a3a); }
  50% { background:radial-gradient(circle at 30% 30%, #14202e, #1a2a3a); }
  100% { background:radial-gradient(circle at 70% 40%, #0e1a24, #1a2a3a); }
}
@keyframes sr-curtain-l {
  0% { transform:scaleX(1) }
  50% { transform:scaleX(1.02) }
  100% { transform:scaleX(.98) }
}
@keyframes sr-curtain-r {
  0% { transform:scaleX(1) }
  50% { transform:scaleX(1.02) }
  100% { transform:scaleX(.98) }
}
@keyframes sr-spy {
  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 sr-fog {
  0% { opacity:.3; transform:scale(.9) }
  50% { opacity:.6; transform:scale(1.05) }
  100% { opacity:.4; transform:scale(.95) }
}
@keyframes sr-blob {
  0% { transform:scaleX(1) }
  50% { transform:scaleX(1.1) }
  100% { transform:scaleX(.9) }
}

/* elma-arrives */
.scn-elma-arrives {
  background:
    linear-gradient(180deg, #f5e6c4 0%, #ecd4a8 40%, #dbbd8a 70%, #c9a66a 100%),
    radial-gradient(ellipse at 50% 30%, #f5e6c4 0%, transparent 60%);
}
.scn-elma-arrives .doorway-bg {
  position:absolute; inset:0; background:radial-gradient(ellipse at 50% 40%, #ffefcf, #e8d4a8);
}
.scn-elma-arrives .door-left {
  position:absolute; left:10%; top:5%; width:35%; height:95%;
  background:linear-gradient(180deg, #8a6e4a, #6a5030);
  border-radius:8px 0 0 8px;
  transform-origin:left center;
  animation: ea-door-l 4s ease-in-out infinite alternate;
}
.scn-elma-arrives .door-right {
  position:absolute; right:10%; top:5%; width:35%; height:95%;
  background:linear-gradient(180deg, #8a6e4a, #6a5030);
  border-radius:0 8px 8px 0;
  transform-origin:right center;
  animation: ea-door-r 4s ease-in-out infinite alternate-reverse;
}
.scn-elma-arrives .figure-me {
  position:absolute; bottom:10%; left:35%; width:28px; height:90px;
  background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 80%, #1a1008 100%);
  border-radius:45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin:bottom center;
  animation: ea-me 3s ease-in-out infinite;
}
.scn-elma-arrives .figure-elma {
  position:absolute; bottom:10%; right:32%; width:26px; height:86px;
  background:linear-gradient(180deg, #4a3a28 0%, #2a1a10 90%);
  border-radius:45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin:bottom center;
  animation: ea-elma 3s ease-in-out infinite alternate;
}
.scn-elma-arrives .light-shaft {
  position:absolute; left:35%; top:0; width:30%; height:100%;
  background:linear-gradient(180deg, rgba(255,240,200,.3) 0%, rgba(255,240,200,.1) 60%, transparent);
  filter:blur(6px);
  animation: ea-shaft 5s ease-in-out infinite alternate;
}
.scn-elma-arrives .floor-pattern {
  position:absolute; bottom:5%; left:0; right:0; height:6px;
  background:linear-gradient(90deg, #c8a678 20%, #b8925a 40%, #c8a678 60%, #b8925a 80%);
}
.scn-elma-arrives .warm-haze {
  position:absolute; inset:0; background:radial-gradient(ellipse at 60% 50%, rgba(255,220,160,.15), transparent);
  filter:blur(8px);
  animation: ea-haze 7s ease-in-out infinite alternate;
}
@keyframes ea-door-l {
  0% { transform:perspective(800px) rotateY(0deg) }
  50% { transform:perspective(800px) rotateY(-15deg) }
  100% { transform:perspective(800px) rotateY(0deg) }
}
@keyframes ea-door-r {
  0% { transform:perspective(800px) rotateY(0deg) }
  50% { transform:perspective(800px) rotateY(15deg) }
  100% { transform:perspective(800px) rotateY(0deg) }
}
@keyframes ea-me {
  0% { transform:translateX(0) translateY(0) rotate(-2deg) }
  33% { transform:translateX(8px) translateY(-3px) rotate(1deg) }
  66% { transform:translateX(4px) translateY(2px) rotate(-1deg) }
  100% { transform:translateX(0) translateY(0) rotate(0deg) }
}
@keyframes ea-elma {
  0% { transform:translateX(0) rotate(2deg) }
  50% { transform:translateX(-6px) rotate(-1deg) }
  100% { transform:translateX(0) rotate(0deg) }
}
@keyframes ea-shaft {
  0% { opacity:.4; transform:scaleX(1) }
  50% { opacity:.8; transform:scaleX(1.05) }
  100% { opacity:.5; transform:scaleX(.95) }
}
@keyframes ea-haze {
  0% { opacity:.5; transform:scale(.95) }
  50% { opacity:.8; transform:scale(1.02) }
  100% { opacity:.6; transform:scale(.98) }
}

/* reunion */
.scn-reunion {
  background:
    linear-gradient(180deg, #e8d4a8 0%, #dbbd8a 40%, #c9a66a 70%, #b8925a 100%),
    radial-gradient(ellipse at 70% 30%, #f0dbb0 0%, transparent 60%);
}
.scn-reunion .room-back {
  position:absolute; inset:0; background:linear-gradient(135deg, #dcc094, #c9a66a);
}
.scn-reunion .desk-surface {
  position:absolute; bottom:25%; left:20%; width:40%; height:6px;
  background:linear-gradient(180deg, #6a5030, #4a3820);
  border-radius:2px;
  box-shadow:0 4px 8px rgba(0,0,0,.3);
}
.scn-reunion .chair {
  position:absolute; bottom:16%; left:24%; width:32px; height:50px;
  background:linear-gradient(180deg, #4a3820, #2a1a0e);
  border-radius:10% 10% 0 0;
  box-shadow:0 2px 4px rgba(0,0,0,.4);
}
.scn-reunion .figure-writer {
  position:absolute; bottom:12%; left:28%; width:24px; height:70px;
  background:linear-gradient(180deg, #3a2a1a 0%, #1a1008 80%);
  border-radius:45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin:bottom center;
  animation: ru-writer 4s ease-in-out infinite;
}
.scn-reunion .figure-muriel {
  position:absolute; bottom:10%; right:30%; width:26px; height:78px;
  background:linear-gradient(180deg, #4a3a28 0%, #2a1a10 90%);
  border-radius:45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin:bottom center;
  animation: ru-muriel 5s ease-in-out infinite alternate;
}
.scn-reunion .figure-elma {
  position:absolute; bottom:10%; right:20%; width:24px; height:72px;
  background:linear-gradient(180deg, #5a4a38 0%, #3a2818 90%);
  border-radius:45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin:bottom center;
  animation: ru-elma-arr 6s ease-in-out infinite alternate;
}
.scn-reunion .coat-draped {
  position:absolute; bottom:14%; right:14%; width:30px; height:40px;
  background:linear-gradient(180deg, #6a5a48, #4a3828);
  border-radius:30% 30% 20% 20%;
  transform-origin:top center;
  animation: ru-coat 7s ease-in-out infinite alternate;
}
.scn-reunion .note-paper {
  position:absolute; bottom:30%; left:35%; width:40px; height:30px;
  background:linear-gradient(135deg, #f5e6c4, #e8d4a8);
  border-radius:2px;
  box-shadow:0 2px 4px rgba(0,0,0,.2);
}
.scn-reunion .candle {
  position:absolute; bottom:30%; left:50%; width:6px; height:20px;
  background:linear-gradient(180deg, #f0dbb0, #dbbd8a);
  border-radius:2px;
  box-shadow:0 0 12px 4px rgba(240,200,100,.4);
  animation: ru-candle 3s ease-in-out infinite alternate;
}
@keyframes ru-writer {
  0% { transform:translateX(0) rotate(0deg) }
  30% { transform:translateX(2px) rotate(1deg) }
  60% { transform:translateX(-1px) rotate(-1deg) }
  100% { transform:translateX(0) rotate(0deg) }
}
@keyframes ru-muriel {
  0% { transform:translateY(0) rotate(-2deg) }
  50% { transform:translateY(-4px) rotate(0deg) }
  100% { transform:translateY(0) rotate(2deg) }
}
@keyframes ru-elma-arr {
  0% { transform:translateX(0) translateY(0) }
  50% { transform:translateX(5px) translateY(-2px) }
  100% { transform:translateX(0) translateY(0) }
}
@keyframes ru-coat {
  0% { transform:rotate(0deg) scale(1) }
  50% { transform:rotate(3deg) scale(1.02) }
  100% { transform:rotate(-2deg) scale(.98) }
}
@keyframes ru-candle {
  0% { box-shadow:0 0 8px 2px rgba(240,200,100,.4); opacity:.7 }
  50% { box-shadow:0 0 18px 6px rgba(240,200,100,.7); opacity:1 }
  100% { box-shadow:0 0 12px 4px rgba(240,200,100,.5); opacity:.8 }
}

/* cross-clue - moonlit graveyard */
.scn-cross-clue {
  background: linear-gradient(180deg, #0b0e2a 0%, #1a1a4e 40%, #2a2a6e 100%), radial-gradient(ellipse at 50% 20%, #3a3a7e 0%, transparent 60%);
}
.scn-cross-clue .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #181c3a 0%, transparent 100%); animation: ccl-sky 15s ease-in-out infinite alternate; }
.scn-cross-clue .moon { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #e8e8f0 0%, #b0b0c8 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 20px rgba(200,200,230,0.3); animation: ccl-moon 20s ease-in-out infinite; }
.scn-cross-clue .trees { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a2a1a 0%, #0e1e0e 100%); clip-path: polygon(0% 100%, 5% 20%, 10% 100%, 20% 10%, 30% 100%, 40% 30%, 50% 100%, 60% 5%, 70% 100%, 80% 15%, 90% 100%, 100% 0%, 100% 100%); animation: ccl-trees 25s ease-in-out infinite alternate; }
.scn-cross-clue .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); }
.scn-cross-clue .grave { position:absolute; bottom:15%; left:30%; width:60px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); transform: rotate(-5deg); animation: ccl-grave 8s ease-in-out infinite; }
.scn-cross-clue .figure { position:absolute; bottom:20%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ccl-figure 4s ease-in-out infinite; }
.scn-cross-clue .lantern { position:absolute; bottom:22%; left:22%; width:10px; height:14px; background: radial-gradient(circle, #f0d060 0%, #c08040 70%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 24px 8px rgba(240,208,96,0.5); animation: ccl-lantern 3s ease-in-out infinite alternate; }
.scn-cross-clue .cloud { position:absolute; top:12%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(200,200,230,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: ccl-cloud 40s linear infinite; }
@keyframes ccl-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes ccl-moon { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-5px); box-shadow: 0 0 100px 25px rgba(200,200,230,0.4); } 100% { transform: scale(1) translateY(0); } }
@keyframes ccl-trees { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ccl-grave { 0%,100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(-4deg); } }
@keyframes ccl-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 ccl-lantern { 0% { box-shadow: 0 0 20px 6px rgba(240,208,96,0.4); opacity:0.8; transform: rotate(-3deg); } 50% { box-shadow: 0 0 40px 12px rgba(240,208,96,0.7); opacity:1; transform: rotate(3deg); } 100% { box-shadow: 0 0 24px 8px rgba(240,208,96,0.5); opacity:0.9; transform: rotate(-3deg); } }
@keyframes ccl-cloud { 0% { transform: translateX(-120px); } 100% { transform: translateX(120vw); } }

/* peril-warning - sunlit kennel courtyard */
.scn-peril-warning {
  background: linear-gradient(180deg, #fce8c0 0%, #f0d4a0 40%, #e0c080 100%), radial-gradient(ellipse at 50% 80%, #ffedc0 0%, transparent 60%);
}
.scn-peril-warning .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fdf4d8 0%, transparent 100%); animation: pwl-sky 12s ease-in-out infinite alternate; }
.scn-peril-warning .sun { position:absolute; top:5%; left:60%; width:80px; height:80px; background: radial-gradient(circle, #fff8e0 0%, #fce8b0 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 120px 40px rgba(255,240,180,0.4); animation: pwl-sun 18s ease-in-out infinite; }
.scn-peril-warning .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c8b080 0%, #a08868 100%); }
.scn-peril-warning .fence { position:absolute; bottom:30%; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 8px, transparent 8px, transparent 18px); animation: pwl-fence 20s ease-in-out infinite alternate; }
.scn-peril-warning .building { position:absolute; bottom:25%; left:20%; width:120px; height:100px; background: linear-gradient(180deg, #a08060 0%, #806848 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: pwl-building 15s ease-in-out infinite; }
.scn-peril-warning .figure1 { position:absolute; bottom:20%; left:50%; width:22px; height:44px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pwl-figure1 4s ease-in-out infinite; }
.scn-peril-warning .figure2 { position:absolute; bottom:20%; left:62%; width:22px; height:44px; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pwl-figure2 5s ease-in-out infinite; }
@keyframes pwl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pwl-sun { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 120px 40px rgba(255,240,180,0.4); } 50% { transform: scale(1.05) translateY(-3px); box-shadow: 0 0 160px 50px rgba(255,240,180,0.6); } 100% { transform: scale(1) translateY(0); } }
@keyframes pwl-fence { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.8; transform: scaleY(1); } }
@keyframes pwl-building { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pwl-figure1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(6px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(12px) translateY(0) rotate(-1deg); } 75% { transform: translateX(18px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }
@keyframes pwl-figure2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* leithcourt-deflect - sunlit London street */
.scn-leithcourt-deflect {
  background: linear-gradient(180deg, #dce8f0 0%, #c4d4e0 40%, #b0c4d0 100%), radial-gradient(ellipse at 50% 100%, #e0ecf8 0%, transparent 60%);
}
.scn-leithcourt-deflect .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e0ecf8 0%, transparent 100%); animation: lcd-sky 14s ease-in-out infinite alternate; }
.scn-leithcourt-deflect .building { position:absolute; bottom:20%; right:10%; width:180px; height:180px; background: linear-gradient(180deg, #c8b8a8 0%, #a09080 100%); border-radius:6% 6% 0 0; box-shadow: -8px 0 16px rgba(0,0,0,0.1); animation: lcd-building 12s ease-in-out infinite; }
.scn-leithcourt-deflect .street { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #889898 0%, #6a7a7a 100%); }
.scn-leithcourt-deflect .figure { position:absolute; bottom:15%; left:20%; width:24px; height:48px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lcd-figure 5s ease-in-out infinite; }
.scn-leithcourt-deflect .telegram { position:absolute; bottom:28%; left:18%; width:40px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius:5%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); transform: rotate(10deg); animation: lcd-telegram 6s ease-in-out infinite alternate; }
.scn-leithcourt-deflect .lamp { position:absolute; bottom:20%; left:35%; width:8px; height:60px; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); border-radius:10% 10% 20% 20%; animation: lcd-lamp 8s ease-in-out infinite; }
.scn-leithcourt-deflect .cloud { position:absolute; top:12%; right:8%; width:120px; height:24px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent 100%); border-radius:50%; filter: blur(10px); animation: lcd-cloud 35s linear infinite; }
@keyframes lcd-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes lcd-building { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes lcd-figure { 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(0deg); } }
@keyframes lcd-telegram { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.02); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes lcd-lamp { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes lcd-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

/* london-bound - overcast train compartment */
.scn-london-bound {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 50%, #3a4a5a 100%), radial-gradient(ellipse at 50% 60%, #4a5a6a 0%, transparent 70%);
}
.scn-london-bound .window { position:absolute; top:10%; left:10%; width:60%; height:35%; background: linear-gradient(180deg, #8898a8 0%, #5a6a7a 100%); border-radius:4%; border: 6px solid #2a3a4a; box-shadow: inset 0 0 40px rgba(0,0,0,0.4); animation: lbn-window 20s ease-in-out infinite alternate; }
.scn-london-bound .seat { position:absolute; bottom:15%; left:20%; width:70%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); animation: lbn-seat 10s ease-in-out infinite; }
.scn-london-bound .table { position:absolute; bottom:25%; left:15%; width:120px; height:20px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:4%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: lbn-table 8s ease-in-out infinite; }
.scn-london-bound .figure { position:absolute; bottom:20%; left:30%; width:28px; 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: lbn-figure 6s ease-in-out infinite; }
.scn-london-bound .rack { position:absolute; top:8%; left:15%; width:50%; height:10px; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius:4%; animation: lbn-rack 12s ease-in-out infinite alternate; }
.scn-london-bound .lamp { position:absolute; top:5%; left:70%; width:12px; height:30px; background: radial-gradient(circle, #f0e0c0 0%, #b09070 70%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 6px rgba(240,224,192,0.3); animation: lbn-lamp 4s ease-in-out infinite alternate; }
@keyframes lbn-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes lbn-seat { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes lbn-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes lbn-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes lbn-rack { 0% { opacity:0.8; transform: translateY(0); } 50% { opacity:1; transform: translateY(-2px); } 100% { opacity:0.8; transform: translateY(0); } }
@keyframes lbn-lamp { 0% { box-shadow: 0 0 15px 4px rgba(240,224,192,0.2); opacity:0.7; transform: rotate(-2deg); } 50% { box-shadow: 0 0 30px 10px rgba(240,224,192,0.5); opacity:1; transform: rotate(2deg); } 100% { box-shadow: 0 0 20px 6px rgba(240,224,192,0.3); opacity:0.8; transform: rotate(-2deg); } }

/* elma-in-russia */
.scn-elma-in-russia {
  background: 
    linear-gradient(180deg, #1c1a2e 0%, #2a2440 40%, #3b2f4e 100%),
    radial-gradient(ellipse at 60% 60%, #4a3a5e 0%, transparent 80%);
}
.scn-elma-in-russia .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a2440 0%, #1c1a2e 100%); }
.scn-elma-in-russia .bg-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3b2f4e 0%, #1c1a2e 100%); }
.scn-elma-in-russia .window { position:absolute; top:12%; left:55%; width:28%; height:35%; background: radial-gradient(ellipse at 50% 50%, #4a6a8a 0%, #2a3a4a 70%); border:3px solid #4a3a2e; border-radius:4%; animation: eir-window 12s ease-in-out infinite alternate; }
.scn-elma-in-russia .table { position:absolute; bottom:22%; left:50%; width:50%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:10% 10% 5% 5%; }
.scn-elma-in-russia .candle { position:absolute; bottom:30%; left:62%; width:4px; height:14px; background: linear-gradient(180deg, #f0d0a0 0%, #d0b080 100%); border-radius:2px; transform:rotate(-2deg); animation: eir-candle 3s ease-in-out infinite; }
.scn-elma-in-russia .glow { position:absolute; bottom:28%; left:60%; width:12px; height:12px; background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%); border-radius:50%; animation: eir-glow 2s ease-in-out infinite alternate; }
.scn-elma-in-russia .figure-seated { position:absolute; bottom:22%; left:38%; width:16%; height:22%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eir-breathe 4s ease-in-out infinite; }
.scn-elma-in-russia .figure-standing { position:absolute; bottom:20%; left:72%; width:14%; height:26%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eir-breathe 5s ease-in-out infinite 1s; }
.scn-elma-in-russia .shadow { position:absolute; bottom:20%; left:36%; width:20%; height:30%; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(8px); animation: eir-shadow 6s ease-in-out infinite alternate; }
@keyframes eir-window { 0% { opacity:0.6; transform:scaleY(1); } 50% { opacity:0.9; transform:scaleY(1.02); } 100% { opacity:0.7; transform:scaleY(0.98); } }
@keyframes eir-candle { 0% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-1px); } 100% { transform:rotate(-1deg) translateY(0); } }
@keyframes eir-glow { 0% { opacity:0.7; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.8; transform:scale(1); } }
@keyframes eir-breathe { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(1.01); } 100% { transform:translateY(0) scale(1); } }
@keyframes eir-shadow { 0% { transform:translateX(0) scale(1); opacity:0.3; } 50% { transform:translateX(3px) scale(1.05); opacity:0.4; } 100% { transform:translateX(-2px) scale(0.95); opacity:0.25; } }

/* marked-for-death */
.scn-marked-for-death {
  background: 
    linear-gradient(90deg, #0a0a12 0%, #1a1a2a 50%, #0a0a12 100%),
    radial-gradient(ellipse at 30% 50%, #2a2a3a 0%, transparent 70%);
}
.scn-marked-for-death .bg { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #0e0e1a 0%, #14142a 100%); }
.scn-marked-for-death .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); }
.scn-marked-for-death .wall { position:absolute; top:0; left:40%; width:20%; height:85%; background: linear-gradient(180deg, #1e1e2e 0%, #14142a 100%); border-left:2px solid #2a2a3a; border-right:2px solid #2a2a3a; }
.scn-marked-for-death .lamp { position:absolute; top:10%; left:48%; width:6px; height:12px; background: #3a3a4a; border-radius:2px; transform-origin: top center; animation: mfd-lamp 4s ease-in-out infinite; }
.scn-marked-for-death .light-halo { position:absolute; top:10%; left:46%; width:8%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(220,200,180,0.3) 0%, transparent 70%); animation: mfd-halo 3s ease-in-out infinite alternate; }
.scn-marked-for-death .figure { position:absolute; bottom:20%; left:45%; width:16%; height:30%; background: linear-gradient(180deg, #1c1c2c 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mfd-figure 5s ease-in-out infinite; }
.scn-marked-for-death .shadow-figure { position:absolute; bottom:18%; left:43%; width:20%; height:35%; background: rgba(0,0,0,0.5); border-radius:50%; filter:blur(10px); animation: mfd-shadow 6s ease-in-out infinite alternate; }
.scn-marked-for-death .shadow-hand { position:absolute; bottom:25%; left:40%; width:10%; height:8%; background: rgba(0,0,0,0.4); border-radius:30%; filter:blur(5px); animation: mfd-hand 3s ease-in-out infinite; }
@keyframes mfd-lamp { 0% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-2deg); } }
@keyframes mfd-halo { 0% { opacity:0.3; transform:scaleY(1); } 50% { opacity:0.6; transform:scaleY(1.2); } 100% { opacity:0.4; transform:scaleY(0.9); } }
@keyframes mfd-figure { 0% { transform:translateY(0) scale(1); } 30% { transform:translateY(-3px) scale(1.02); } 60% { transform:translateY(0) scale(1); } 100% { transform:translateY(2px) scale(0.98); } }
@keyframes mfd-shadow { 0% { transform:translateX(0) scale(1); opacity:0.5; } 50% { transform:translateX(5px) scale(1.1); opacity:0.6; } 100% { transform:translateX(-3px) scale(0.9); opacity:0.4; } }
@keyframes mfd-hand { 0% { transform:translate(0,0) rotate(0deg); } 50% { transform:translate(2px,-1px) rotate(5deg); } 100% { transform:translate(-1px,1px) rotate(-3deg); } }

/* muriel-address */
.scn-muriel-address {
  background: 
    linear-gradient(180deg, #f5f0e0 0%, #ede4d0 50%, #d8cbb8 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,255,230,0.4) 0%, transparent 60%);
}
.scn-muriel-address .bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #f5f0e0 0%, #e8ddd0 100%); }
.scn-muriel-address .window { position:absolute; top:8%; left:15%; width:35%; height:50%; background: radial-gradient(ellipse at 50% 50%, #c8d8e8 0%, #a0b8d0 70%); border:6px solid #b0a090; border-radius:6% 6% 4% 4%; box-shadow: inset 0 0 20px rgba(80,80,90,0.3); animation: mua-window 8s ease-in-out infinite alternate; }
.scn-muriel-address .curtain-left { position:absolute; top:6%; left:12%; width:12%; height:55%; background: linear-gradient(180deg, #d0c8b0 0%, #c0b8a0 100%); border-radius:0 10% 10% 0; transform-origin: top left; animation: mua-curtain 10s ease-in-out infinite; }
.scn-muriel-address .curtain-right { position:absolute; top:6%; right:52%; left:auto; width:12%; height:55%; background: linear-gradient(180deg, #d0c8b0 0%, #c0b8a0 100%); border-radius:10% 0 0 10%; transform-origin: top right; animation: mua-curtain 10s ease-in-out infinite reverse; }
.scn-muriel-address .sofa { position:absolute; bottom:22%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #b8a890 0%, #9a8a78 100%); border-radius:20% 20% 8% 8%; box-shadow: 0 -4px 10px rgba(0,0,0,0.1); }
.scn-muriel-address .table { position:absolute; bottom:25%; left:50%; width:18%; height:8%; background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); border-radius:8%; transform:translateX(-50%); }
.scn-muriel-address .teacup { position:absolute; bottom:28%; left:52%; width:5%; height:6%; background: linear-gradient(180deg, #e0d8c8 0%, #c0b8a8 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.1); animation: mua-sip 6s ease-in-out infinite; }
.scn-muriel-address .figure { position:absolute; bottom:22%; left:38%; width:18%; height:24%; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mua-breathe 5s ease-in-out infinite; }
.scn-muriel-address .dust-mote { position:absolute; top:20%; left:45%; width:3%; height:3%; background: radial-gradient(circle, rgba(255,255,230,0.6) 0%, transparent 70%); border-radius:50%; filter:blur(2px); animation: mua-dust 30s linear infinite; }
@keyframes mua-window { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.01); } 100% { opacity:0.8; transform:scale(0.99); } }
@keyframes mua-curtain { 0% { transform:rotate(0deg) translateX(0); } 50% { transform:rotate(2deg) translateX(2px); } 100% { transform:rotate(-1deg) translateX(-1px); } }
@keyframes mua-sip { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-2px) rotate(5deg); } 50% { transform:translateY(0) rotate(0deg); } 75% { transform:translateY(-1px) rotate(-3deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes mua-breathe { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-1px) scale(1.01); } 100% { transform:translateY(0) scale(1); } }
@keyframes mua-dust { 0% { transform:translateY(0) translateX(0) rotate(0deg); opacity:0.3; } 25% { transform:translateY(-10px) translateX(5px) rotate(90deg); opacity:0.6; } 50% { transform:translateY(-20px) translateX(-5px) rotate(180deg); opacity:0.2; } 75% { transform:translateY(-30px) translateX(3px) rotate(270deg); opacity:0.5; } 100% { transform:translateY(-40px) translateX(-2px) rotate(360deg); opacity:0.3; } }

/* prearranged-flight */
.scn-prearranged-flight {
  background: 
    linear-gradient(180deg, #f0e8d8 0%, #d8ccb0 50%, #c0b098 100%),
    radial-gradient(ellipse at 50% 50%, rgba(220,200,170,0.3) 0%, transparent 70%);
}
.scn-prearranged-flight .bg { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #f0e8d8 0%, #d8ccb0 100%); }
.scn-prearranged-flight .floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #c0b098 0%, #a09080 100%); }
.scn-prearranged-flight .table { position:absolute; bottom:18%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #b0a090 0%, #9a8a78 100%); border-radius:5%; box-shadow: 0 -4px 8px rgba(0,0,0,0.1); }
.scn-prearranged-flight .chair { position:absolute; bottom:20%; left:28%; width:16%; height:22%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:20% 20% 5% 5%; transform-origin: bottom center; animation: paf-chair 6s ease-in-out infinite; }
.scn-prearranged-flight .chandelier { position:absolute; top:4%; left:40%; width:20%; height:15%; background: radial-gradient(ellipse at 50% 50%, #d0c0a0 0%, #b0a080 60%, #907060 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 30px rgba(200,180,150,0.4); animation: paf-chand 8s ease-in-out infinite; }
.scn-prearranged-flight .figure-standing { position:absolute; bottom:12%; left:50%; width:14%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: paf-stand 5s ease-in-out infinite; }
.scn-prearranged-flight .figure-sitting { position:absolute; bottom:20%; left:35%; width:16%; height:22%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: paf-sit 4s ease-in-out infinite; }
.scn-prearranged-flight .shadow-hard { position:absolute; bottom:12%; left:48%; width:18%; height:25%; background: rgba(0,0,0,0.3); border-radius:40%; filter:blur(6px); animation: paf-shadow 7s ease-in-out infinite alternate; }
.scn-prearranged-flight .stain { position:absolute; bottom:8%; left:45%; width:8%; height:4%; background: radial-gradient(ellipse, #5e3a2a 0%, transparent 70%); border-radius:50%; opacity:0.4; animation: paf-stain 12s ease-in-out infinite alternate; }
@keyframes paf-chair { 0% { transform:rotate(0deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-2px); } 100% { transform:rotate(-1deg) translateY(0); } }
@keyframes paf-chand { 0% { transform:rotate(0deg) scale(1); } 25% { transform:rotate(5deg) scale(1.02); } 75% { transform:rotate(-5deg) scale(0.98); } 100% { transform:rotate(0deg) scale(1); } }
@keyframes paf-stand { 0% { transform:translateY(0) scale(1); } 20% { transform:translateY(-3px) scale(1.02); } 40% { transform:translateY(0) scale(1); } 60% { transform:translateY(2px) scale(0.98); } 100% { transform:translateY(0) scale(1); } }
@keyframes paf-sit { 0% { transform:translateY(0) scale(1) rotate(0deg); } 30% { transform:translateY(-1px) scale(1.01) rotate(-2deg); } 60% { transform:translateY(0) scale(1) rotate(0deg); } 100% { transform:translateY(1px) scale(0.99) rotate(1deg); } }
@keyframes paf-shadow { 0% { transform:translateX(0) scale(1); opacity:0.3; } 50% { transform:translateX(4px) scale(1.1); opacity:0.5; } 100% { transform:translateX(-3px) scale(0.9); opacity:0.25; } }
@keyframes paf-stain { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.6; transform:scale(1.1); } 100% { opacity:0.4; transform:scale(0.95); } }

.scn-imperial-decree {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e3d5b0 50%, #c9b896 100%),
    radial-gradient(ellipse at 30% 0%, rgba(255,235,190,0.4) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-imperial-decree .window {
  position: absolute; top: 8%; left: 65%; width: 28%; height: 40%;
  background: linear-gradient(180deg, #a3c1d9 0%, #c7dbe8 50%, #dce8f0 100%);
  border-radius: 4px 4px 12px 12px;
  box-shadow: inset 0 0 20px rgba(255,255,220,0.3);
  animation: imd-window 12s ease-in-out infinite alternate;
}
.scn-imperial-decree .desk {
  position: absolute; bottom: 0; left: 5%; width: 90%; height: 35%;
  background: linear-gradient(180deg, #8b6e4e 0%, #6b5036 40%, #4a3520 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-imperial-decree .document {
  position: absolute; bottom: 20%; left: 30%; width: 35%; height: 18%;
  background: linear-gradient(135deg, #faf3e0 0%, #efe4ca 50%, #ddd2b0 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.15);
  animation: imd-doc 8s ease-in-out infinite;
}
.scn-imperial-decree .seal {
  position: absolute; bottom: 22%; left: 48%; width: 10%; height: auto;
  aspect-ratio: 1;
  background: radial-gradient(circle, #9e4a3a 0%, #6e2a1a 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 2px rgba(110,42,26,0.5);
  animation: imd-seal 4s ease-in-out infinite;
}
.scn-imperial-decree .inkwell {
  position: absolute; bottom: 25%; left: 68%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-imperial-decree .quill {
  position: absolute; bottom: 30%; left: 72%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: imd-quill 6s ease-in-out infinite alternate;
}
@keyframes imd-window { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes imd-doc    { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes imd-seal   { 0% { transform: scale(1); box-shadow: 0 0 12px 2px rgba(110,42,26,0.5); } 50% { transform: scale(1.05); box-shadow: 0 0 18px 4px rgba(110,42,26,0.6); } 100% { transform: scale(1); box-shadow: 0 0 12px 2px rgba(110,42,26,0.5); } }
@keyframes imd-quill  { 0% { transform: rotate(12deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(12deg); } }

.scn-boranski-cowed {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #b8a888 100%),
    radial-gradient(ellipse at 20% 80%, rgba(200,180,150,0.3) 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-boranski-cowed .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.05) 100%);
}
.scn-boranski-cowed .figure-cowering {
  position: absolute; bottom: 10%; left: 30%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bor-cower 3s ease-in-out infinite;
}
.scn-boranski-cowed .figure-standing {
  position: absolute; bottom: 10%; right: 25%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bor-stand 6s ease-in-out infinite;
}
.scn-boranski-cowed .torn-passport-1 {
  position: absolute; bottom: 35%; left: 50%; width: 14%; height: 10%;
  background: #f5eed5;
  clip-path: polygon(0 0, 70% 10%, 100% 0, 90% 40%, 100% 100%, 60% 80%, 20% 100%, 0 80%);
  box-shadow: 1px 2px 4px rgba(0,0,0,0.2);
  animation: bor-torn1 7s ease-in-out infinite alternate;
}
.scn-boranski-cowed .torn-passport-2 {
  position: absolute; bottom: 32%; left: 58%; width: 12%; height: 8%;
  background: #f5eed5;
  clip-path: polygon(0 0, 60% 15%, 100% 0, 85% 30%, 100% 70%, 50% 100%, 10% 90%, 0 60%);
  box-shadow: 1px 2px 4px rgba(0,0,0,0.2);
  animation: bor-torn2 7s ease-in-out infinite alternate 1s;
}
.scn-boranski-cowed .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, transparent 100%);
}
@keyframes bor-cower { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(-2px) scaleY(0.98); } 50% { transform: translateX(0) scaleY(0.96); } 75% { transform: translateX(2px) scaleY(0.98); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes bor-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes bor-torn1 { 0% { transform: translate(0,0) rotate(-2deg); opacity:0.9; } 50% { transform: translate(2px,-1px) rotate(4deg); opacity:1; } 100% { transform: translate(0,0) rotate(-2deg); opacity:0.9; } }
@keyframes bor-torn2 { 0% { transform: translate(0,0) rotate(3deg); opacity:0.8; } 50% { transform: translate(-1px,1px) rotate(-1deg); opacity:1; } 100% { transform: translate(0,0) rotate(3deg); opacity:0.8; } }

.scn-baron-oberg-name {
  background:
    linear-gradient(180deg, #d9c8a8 0%, #b8a484 50%, #9a8264 100%),
    radial-gradient(circle at 50% 30%, rgba(255,200,120,0.3) 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-baron-oberg-name .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.05) 0%, transparent 40%, rgba(0,0,0,0.1) 100%);
}
.scn-baron-oberg-name .table {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #7a5e3e 0%, #5a3e1e 100%);
  border-radius: 30% 30% 8px 8px / 80% 80% 8px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-baron-oberg-name .figure-left {
  position: absolute; bottom: 28%; left: 20%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bar-left 4s ease-in-out infinite;
}
.scn-baron-oberg-name .figure-right {
  position: absolute; bottom: 28%; right: 20%; width: 14%; height: 48%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bar-right 3.5s ease-in-out infinite;
}
.scn-baron-oberg-name .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 -20px 30px 15px rgba(200,160,96,0.4);
  animation: bar-lamp 2s ease-in-out infinite alternate;
}
.scn-baron-oberg-name .shadow-on-wall {
  position: absolute; top: 15%; left: 15%; width: 40%; height: 50%;
  background: rgba(0,0,0,0.2);
  filter: blur(12px);
  border-radius: 40%;
  animation: bar-shadow 5s ease-in-out infinite alternate;
}
@keyframes bar-left { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(3deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes bar-right { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-4deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes bar-lamp  { 0% { opacity: 0.85; box-shadow: 0 -15px 25px 12px rgba(200,160,96,0.3); } 50% { opacity: 1; box-shadow: 0 -25px 40px 20px rgba(200,160,96,0.5); } 100% { opacity: 0.9; box-shadow: 0 -15px 25px 12px rgba(200,160,96,0.3); } }
@keyframes bar-shadow { 0% { transform: translateX(0) scale(1); opacity:0.5; } 50% { transform: translateX(10px) scale(1.1); opacity:0.7; } 100% { transform: translateX(0) scale(1); opacity:0.5; } }

.scn-finland-oppression {
  background:
    linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-finland-oppression .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8a9aaa 0%, #5a6a7a 50%, #3a4a5a 100%);
  animation: fin-sky 20s ease-in-out infinite alternate;
}
.scn-finland-oppression .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: fin-water 8s ease-in-out infinite;
}
.scn-finland-oppression .shore {
  position: absolute; bottom: 18%; left: 5%; right: 60%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 70% 0 0 / 80% 40% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
}
.scn-finland-oppression .figure {
  position: absolute; bottom: 22%; left: 20%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fin-fig 6s ease-in-out infinite;
}
.scn-finland-oppression .boat {
  position: absolute; bottom: 30%; left: 60%; width: 15%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0 40%, 20% 0, 80% 0, 100% 40%, 80% 100%, 20% 100%);
  animation: fin-boat 12s ease-in-out infinite;
}
.scn-finland-oppression .cloud {
  position: absolute; top: 12%; left: 10%; width: 35%; height: 10%;
  background: linear-gradient(180deg, rgba(200,210,220,0.4) 0%, rgba(180,190,200,0.1) 100%);
  filter: blur(8px);
  border-radius: 50%;
  animation: fin-cloud 30s linear infinite;
}
@keyframes fin-sky   { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.7; } }
@keyframes fin-water { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-8px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes fin-fig   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fin-boat  { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(4px) translateY(1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes fin-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

/* ----- yacht-crew-question (calm, bright-interior) ----- */
.scn-yacht-crew-question {
  background: linear-gradient(135deg, #f5f0e8 0%, #e8dcc8 50%, #d4c8b4 100%),
              radial-gradient(circle at 70% 40%, rgba(255,240,210,0.6) 0%, transparent 50%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.08);
}
.scn-yacht-crew-question .cabin-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #e8ddd0 0%, #c4b8a8 100%);
}
.scn-yacht-crew-question .porthole {
  position: absolute;
  top: 12%;
  left: 18%;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 6px solid #8a7e6e;
  background: radial-gradient(circle at 30% 30%, #9cc8e8 0%, #5a8eb0 60%, #2a4a6a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3), 0 0 0 3px #6a5e4e;
  animation: ycq-porthole 12s ease-in-out infinite alternate;
}
.scn-yacht-crew-question .table {
  position: absolute;
  bottom: 20%;
  left: 8%;
  right: 8%;
  height: 18px;
  background: linear-gradient(180deg, #6a4e34 0%, #4a3420 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-yacht-crew-question .chair {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #8a6e4a 0%, #5a3e26 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
  animation: ycq-chair 6s ease-in-out infinite alternate;
}
.scn-yacht-crew-question .figure-captain {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ycq-figure 10s ease-in-out infinite;
}
.scn-yacht-crew-question .chart {
  position: absolute;
  bottom: 22%;
  left: 48%;
  width: 36px;
  height: 24px;
  background: linear-gradient(180deg, #f0e6c8 0%, #d4c4a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  animation: ycq-chart 8s ease-in-out infinite alternate;
}
.scn-yacht-crew-question .lamp {
  position: absolute;
  top: 10%;
  left: 55%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #b08a4a 0%, #6a4e20 100%);
  border-radius: 4px 4px 50% 50%;
  box-shadow: 0 0 20px 6px rgba(200,170,100,0.4);
  animation: ycq-lamp-glow 4s ease-in-out infinite alternate;
}
.scn-yacht-crew-question .shadow {
  position: absolute;
  bottom: 20%;
  left: 38%;
  width: 50px;
  height: 8px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: ycq-shadow 10s ease-in-out infinite alternate;
}
@keyframes ycq-porthole {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(0.98); }
}
@keyframes ycq-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ycq-figure {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}
@keyframes ycq-chart {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes ycq-lamp-glow {
  0% { box-shadow: 0 0 12px 3px rgba(200,170,100,0.3); }
  50% { box-shadow: 0 0 28px 8px rgba(220,190,110,0.6); }
  100% { box-shadow: 0 0 16px 4px rgba(200,170,100,0.4); }
}
@keyframes ycq-shadow {
  0% { opacity: 0.15; transform: scaleX(1); }
  50% { opacity: 0.25; transform: scaleX(1.1); }
  100% { opacity: 0.2; transform: scaleX(0.95); }
}

/* ----- vermouth-nasi (warm, bright-interior) ----- */
.scn-vermouth-nasi {
  background: linear-gradient(135deg, #c8a86e 0%, #b09050 50%, #a08040 100%),
              radial-gradient(circle at 30% 60%, rgba(255,200,100,0.4) 0%, transparent 60%);
}
.scn-vermouth-nasi .bar-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #a08860 0%, #7a6a4a 100%);
}
.scn-vermouth-nasi .window-night {
  position: absolute;
  top: 15%;
  right: 12%;
  width: 80px;
  height: 60px;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%);
  border-radius: 6px;
  border: 4px solid #6a5a3a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 0 2px #4a3a2a;
  animation: vn-window 18s ease-in-out infinite alternate;
}
.scn-vermouth-nasi .counter {
  position: absolute;
  bottom: 20%;
  left: 0;
  right: 0;
  height: 24px;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%);
  border-top: 3px solid #7a6a4a;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-vermouth-nasi .bottle {
  position: absolute;
  bottom: 22%;
  left: 22%;
  width: 14px;
  height: 44px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: vn-bottle 6s ease-in-out infinite alternate;
}
.scn-vermouth-nasi .glass-a {
  position: absolute;
  bottom: 20%;
  left: 38%;
  width: 16px;
  height: 28px;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, rgba(255,220,160,0.7) 100%);
  border-radius: 4px 4px 20% 20%;
  border: 1px solid #c0a870;
  box-shadow: 0 0 10px 2px rgba(255,200,100,0.3);
  animation: vn-glass 5s ease-in-out infinite;
}
.scn-vermouth-nasi .glass-b {
  position: absolute;
  bottom: 20%;
  left: 52%;
  width: 16px;
  height: 26px;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,220,160,0.6) 100%);
  border-radius: 4px 4px 20% 20%;
  border: 1px solid #c0a870;
  box-shadow: 0 0 8px 1px rgba(255,200,100,0.2);
  animation: vn-glass 5s ease-in-out infinite reverse;
}
.scn-vermouth-nasi .figure-hornby {
  position: absolute;
  bottom: 20%;
  left: 60%;
  width: 36px;
  height: 64px;
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vn-figure 8s ease-in-out infinite;
}
.scn-vermouth-nasi .stool {
  position: absolute;
  bottom: 20%;
  left: 68%;
  width: 20px;
  height: 34px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a18 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: vn-stool 10s ease-in-out infinite alternate;
}
.scn-vermouth-nasi .lamp-warm {
  position: absolute;
  top: 8%;
  left: 45%;
  width: 16px;
  height: 30px;
  background: linear-gradient(180deg, #d0a060 0%, #a07030 100%);
  border-radius: 4px 4px 50% 50%;
  box-shadow: 0 0 30px 10px rgba(255,180,80,0.5);
  animation: vn-lamp 4s ease-in-out infinite alternate;
}
@keyframes vn-window {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes vn-bottle {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes vn-glass {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
  50% { transform: translateY(-1px) rotate(2deg); opacity: 1; }
  100% { transform: translateY(0) rotate(-1deg); opacity: 0.9; }
}
@keyframes vn-figure {
  0% { transform: translateX(0); }
  50% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0); }
}
@keyframes vn-stool {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes vn-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(255,180,80,0.4); }
  50% { box-shadow: 0 0 40px 15px rgba(255,200,100,0.7); }
  100% { box-shadow: 0 0 25px 8px rgba(255,180,80,0.5); }
}

/* ----- captain-mackintosh-report (tense, bright-interior) ----- */
.scn-captain-mackintosh-report {
  background: linear-gradient(180deg, #d4d0c8 0%, #b8b0a8 40%, #9a928a 100%),
              radial-gradient(circle at 50% 30%, rgba(255,250,240,0.6) 0%, transparent 50%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.15);
}
.scn-captain-mackintosh-report .interior-desk {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #bab2aa 0%, #a49c94 100%);
}
.scn-captain-mackintosh-report .desk-lamp {
  position: absolute;
  top: 12%;
  left: 58%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 6px;
  box-shadow: 0 0 40px 12px rgba(255,220,180,0.5);
  animation: cmr-lamp 3s ease-in-out infinite alternate;
}
.scn-captain-mackintosh-report .figure-reporting {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 40px;
  height: 68px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: cmr-figure 6s ease-in-out infinite;
}
.scn-captain-mackintosh-report .papers {
  position: absolute;
  bottom: 24%;
  left: 42%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d4c8a8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: cmr-papers 8s ease-in-out infinite alternate;
}
.scn-captain-mackintosh-report .scar-shadow {
  position: absolute;
  bottom: 22%;
  left: 28%;
  width: 20px;
  height: 16px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: cmr-scar 4s ease-in-out infinite alternate;
}
.scn-captain-mackintosh-report .chair-back {
  position: absolute;
  bottom: 18%;
  left: 48%;
  width: 24px;
  height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset -3px 0 6px rgba(0,0,0,0.2);
  animation: cmr-chair 7s ease-in-out infinite alternate;
}
.scn-captain-mackintosh-report .clock {
  position: absolute;
  top: 6%;
  left: 12%;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 3px solid #6a5a4a;
  background: radial-gradient(circle at 40% 40%, #f0e8d0 0%, #d4c8a8 100%);
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: cmr-clock 60s linear infinite;
}
.scn-captain-mackintosh-report .inkwell {
  position: absolute;
  bottom: 24%;
  left: 54%;
  width: 12px;
  height: 16px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: cmr-ink 2s ease-in-out infinite;
}
@keyframes cmr-lamp {
  0% { box-shadow: 0 0 30px 8px rgba(255,220,180,0.4); }
  50% { box-shadow: 0 0 50px 18px rgba(255,230,200,0.7); }
  100% { box-shadow: 0 0 35px 10px rgba(255,220,180,0.5); }
}
@keyframes cmr-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cmr-papers {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes cmr-scar {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes cmr-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cmr-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes cmr-ink {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

/* ----- suspicions-captain (dark mood, bright-interior) ----- */
.scn-suspicions-captain {
  background: linear-gradient(180deg, #c8c0b8 0%, #a09888 50%, #807870 100%),
              radial-gradient(ellipse at 50% 10%, rgba(220,210,200,0.4) 0%, transparent 60%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.25);
}
.scn-suspicions-captain .room-floor {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #b0a898 0%, #908880 60%, #6a625a 100%);
}
.scn-suspicions-captain .overhead-light {
  position: absolute;
  top: -10%;
  left: 50%;
  width: 120px;
  height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 0%, rgba(255,240,220,0.8) 0%, rgba(255,240,220,0.1) 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: sc-light 5s ease-in-out infinite alternate;
}
.scn-suspicions-captain .table-interrogation {
  position: absolute;
  bottom: 22%;
  left: 20%;
  right: 20%;
  height: 16px;
  background: linear-gradient(180deg, #5a4e42 0%, #3a2e22 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-suspicions-captain .figure-suspect {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 42px;
  height: 72px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  animation: sc-suspect 6s ease-in-out infinite;
}
.scn-suspicions-captain .figure-officer {
  position: absolute;
  bottom: 20%;
  left: 60%;
  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;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: sc-officer 8s ease-in-out infinite alternate;
}
.scn-suspicions-captain .shadow-figure {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 60px;
  height: 80px;
  background: rgba(0,0,0,0.2);
  filter: blur(8px);
  transform: skewX(-10deg);
  animation: sc-shadow 4s ease-in-out infinite alternate;
}
.scn-suspicions-captain .file-folder {
  position: absolute;
  bottom: 24%;
  left: 30%;
  width: 20px;
  height: 26px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: sc-folder 3s ease-in-out infinite;
}
.scn-suspicions-captain .chain {
  position: absolute;
  bottom: 18%;
  left: 46%;
  width: 8px;
  height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.2);
  animation: sc-chain 2s ease-in-out infinite alternate;
}
@keyframes sc-light {
  0% { opacity: 0.7; filter: blur(15px); }
  50% { opacity: 1; filter: blur(25px); }
  100% { opacity: 0.8; filter: blur(20px); }
}
@keyframes sc-suspect {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sc-officer {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sc-shadow {
  0% { opacity: 0.15; transform: skewX(-8deg) scaleY(1); }
  50% { opacity: 0.35; transform: skewX(-14deg) scaleY(1.1); }
  100% { opacity: 0.2; transform: skewX(-10deg) scaleY(1); }
}
@keyframes sc-folder {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes sc-chain {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}

/* quay-wait – tense dusk */
.scn-quay-wait {
  background:
    linear-gradient(180deg, #2a2a4e 0%, #4a3a5e 30%, #6a5a3a 60%, #3a3a2a 100%),
    radial-gradient(ellipse at 50% 0%, #7a6a4a 0%, transparent 70%);
}
.scn-quay-wait .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, #5a4a3a 50%, transparent 100%);
  animation: qw-sky 14s ease-in-out infinite alternate;
}
.scn-quay-wait .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 30% 20% 0 0 / 60% 50% 0 0;
  animation: qw-sea 6s ease-in-out infinite alternate;
}
.scn-quay-wait .quay {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%);
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-quay-wait .figure {
  position: absolute; bottom: 28%; left: 40%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: qw-walk 3s ease-in-out infinite;
}
.scn-quay-wait .ship {
  position: absolute; bottom: 45%; left: 70%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20%;
  clip-path: polygon(0% 30%, 100% 30%, 90% 100%, 10% 100%);
  animation: qw-bob 8s ease-in-out infinite;
}
.scn-quay-wait .rain-1,
.scn-quay-wait .rain-2 {
  position: absolute; width: 2px; height: 80px;
  background: rgba(180,180,200,0.3);
  filter: blur(1px);
}
.scn-quay-wait .rain-1 {
  left: 20%; top: -10%;
  animation: qw-rain 0.6s linear infinite;
}
.scn-quay-wait .rain-2 {
  left: 60%; top: -20%;
  animation: qw-rain 0.7s linear infinite 0.3s;
}
@keyframes qw-sky { 0%,100% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(0.95); } }
@keyframes qw-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes qw-walk { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } }
@keyframes qw-bob { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes qw-rain { 0% { transform: translateY(0); opacity: 0.3; } 100% { transform: translateY(120vh); opacity: 0; } }

/* follow-to-hotel – tense dark */
.scn-follow-to-hotel {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a1a1a 70%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a3a 0%, transparent 80%);
}
.scn-follow-to-hotel .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
}
.scn-follow-to-hotel .building {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-follow-to-hotel .doorway {
  position: absolute; bottom: 30%; left: 42%; width: 16%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 20px #5a4a3a;
}
.scn-follow-to-hotel .lamp {
  position: absolute; bottom: 40%; left: 48%; width: 8px; height: 12px;
  background: radial-gradient(circle, #c08040 0%, #806030 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #a07030, 0 0 60px 20px rgba(160,112,48,0.3);
  animation: fh-lamp 0.8s ease-in-out infinite alternate;
}
.scn-follow-to-hotel .spy {
  position: absolute; bottom: 25%; left: 10%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: fh-spy 4s ease-in-out infinite;
}
.scn-follow-to-hotel .figures {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 30px;
  background: #0a0a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: fh-figures 3s ease-in-out infinite;
}
.scn-follow-to-hotel .rain {
  position: absolute; left: 0; right: 0; top: 0; bottom: 0;
  background: repeating-linear-gradient(0deg,
    transparent, transparent 3px,
    rgba(200,200,220,0.1) 3px, rgba(200,200,220,0.1) 4px);
  animation: fh-rain 0.5s linear infinite;
}
@keyframes fh-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 6px #a07030; } 50% { opacity: 1; box-shadow: 0 0 40px 15px #c08040, 0 0 80px 30px rgba(192,128,64,0.3); } 100% { opacity: 0.8; box-shadow: 0 0 25px 8px #a07030; } }
@keyframes fh-spy { 0%,100% { transform: translateX(0) translateY(0); } 30% { transform: translateX(10px) translateY(-2px) rotate(2deg); } 60% { transform: translateX(5px) translateY(1px) rotate(-1deg); } }
@keyframes fh-figures { 0%,100% { transform: translateX(0); } 50% { transform: translateX(8px); } }
@keyframes fh-rain { 0% { transform: translateY(0); } 100% { transform: translateY(10px); } }

/* waiter-observes – calm bright interior */
.scn-waiter-observes {
  background:
    linear-gradient(180deg, #e8d8c8 0%, #d4c4b4 30%, #c0a890 70%, #a08870 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0d0 0%, transparent 60%);
}
.scn-waiter-observes .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8c8b8 0%, #c8b8a8 100%);
}
.scn-waiter-observes .window {
  position: absolute; top: 10%; right: 10%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #f8f0e0 0%, #c0b8a0 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px #fff8f0;
  animation: wo-window 10s ease-in-out infinite alternate;
}
.scn-waiter-observes .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #b09880 0%, #908070 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.2);
}
.scn-waiter-observes .waiter {
  position: absolute; bottom: 25%; left: 8%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: wo-waiter 6s ease-in-out infinite;
}
.scn-waiter-observes .lady {
  position: absolute; bottom: 28%; left: 35%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: wo-lady 5s ease-in-out infinite;
}
.scn-waiter-observes .gentleman {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: wo-gentleman 7s ease-in-out infinite;
}
.scn-waiter-observes .candle {
  position: absolute; bottom: 35%; left: 43%; width: 4px; height: 10px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 30%;
  box-shadow: 0 0 20px 6px #f0d090, 0 0 40px 12px rgba(240,208,144,0.3);
  animation: wo-candle 2s ease-in-out infinite alternate;
}
@keyframes wo-window { 0%,100% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(0.97); opacity: 1; } }
@keyframes wo-waiter { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes wo-lady { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg); } }
@keyframes wo-gentleman { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes wo-candle { 0% { opacity: 0.8; transform: scaleY(0.95); } 50% { opacity: 1; transform: scaleY(1); } 100% { opacity: 0.9; transform: scaleY(0.98); } }

/* elma-note – tense dim interior */
.scn-elma-note {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 40%, #1a0a0a 70%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a2a 0%, transparent 80%);
}
.scn-elma-note .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
}
.scn-elma-note .table {
  position: absolute; bottom: 15%; left: 5%; width: 90%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(20deg);
}
.scn-elma-note .lamp {
  position: absolute; bottom: 35%; left: 35%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #c08040 0%, #806030 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 8px #a07030, 0 0 60px 20px rgba(160,112,48,0.3);
  animation: en-lamp 0.5s ease-in-out infinite alternate;
}
.scn-elma-note .note {
  position: absolute; bottom: 25%; left: 40%; width: 18%; height: 12%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 4% 2% 4% 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: en-note 3s ease-in-out infinite;
}
.scn-elma-note .hand {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  clip-path: polygon(0 20%, 100% 20%, 80% 100%, 20% 100%);
  animation: en-hand 1.5s ease-in-out infinite;
}
.scn-elma-note .shadow {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: en-shadow 4s ease-in-out infinite alternate;
}
@keyframes en-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 4px #a07030; } 50% { opacity: 1; box-shadow: 0 0 40px 12px #c08040, 0 0 80px 25px rgba(192,128,64,0.3); } 100% { opacity: 0.8; box-shadow: 0 0 25px 6px #a07030; } }
@keyframes en-note { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(1deg); } }
@keyframes en-hand { 0%,100% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-3px) rotate(3deg); } 60% { transform: translateY(1px) rotate(-2deg); } }
@keyframes en-shadow { 0%,100% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.5; transform: translateX(10px); } }

/* Scene 1: elma-heath-details (calm, firelit) */
.scn-elma-heath-details {
  background: 
    linear-gradient(180deg, #3a1e0e 0%, #4a2a12 30%, #6a3a1a 60%, #2a1008 100%),
    radial-gradient(ellipse at 40% 80%, #b85a2a 0%, transparent 70%);
}
.scn-elma-heath-details .room-bg {
  position: absolute; inset: 0; background: inherit; 
  background: linear-gradient(180deg, #2a1008 0%, #4a2a12 50%, #3a1e0e 100%);
  animation: ehd-room 12s ease-in-out infinite alternate;
}
.scn-elma-heath-details .fireplace {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 100px;
  background: linear-gradient(180deg, #5a2a12 0%, #2a0e04 100%);
  border-radius: 10px 10px 4px 4px;
  box-shadow: inset 0 0 30px #4a1a08;
}
.scn-elma-heath-details .fire-glow {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-10px);
  width: 40px; height: 50px;
  background: radial-gradient(circle, #e08030 0%, #b05020 50%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 60px 20px #c06020, 0 0 100px 40px rgba(192,96,32,0.3);
  animation: ehd-fire 2s ease-in-out infinite alternate;
}
.scn-elma-heath-details .mantel {
  position: absolute; bottom: 42%; left: 25%; right: 25%; height: 8px;
  background: linear-gradient(90deg, #4a2a12, #6a3a1a, #4a2a12);
  border-radius: 2px;
  animation: ehd-mantle 15s ease-in-out infinite alternate;
}
.scn-elma-heath-details .armchair-left {
  position: absolute; bottom: 12%; left: 10%; width: 60px; height: 80px;
  background: radial-gradient(ellipse 60% 70% at 50% 60%, #3a1a0a 0%, #1a0a04 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: ehd-sit 14s ease-in-out infinite;
}
.scn-elma-heath-details .armchair-right {
  position: absolute; bottom: 12%; right: 10%; width: 60px; height: 80px;
  background: radial-gradient(ellipse 60% 70% at 50% 60%, #3a1a0a 0%, #1a0a04 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: ehd-sit 14s ease-in-out infinite 1s;
}
.scn-elma-heath-details .window {
  position: absolute; top: 5%; left: 60%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 30%, #1a2a3a 100%);
  border-radius: 4px;
  border: 6px solid #3a2a1a;
  box-shadow: inset 0 0 20px #3a4a5a;
  animation: ehd-window 20s ease-in-out infinite alternate;
}
.scn-elma-heath-details .candle {
  position: absolute; bottom: 35%; left: 70%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #d0a060 0%, #a08040 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 5px #f0c060;
  animation: ehd-candle 3s ease-in-out infinite alternate;
}
@keyframes ehd-room { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ehd-fire { 0% { transform: scale(1) rotate(-2deg); opacity:0.8 } 50% { transform: scale(1.05) rotate(1deg); opacity:1 } 100% { transform: scale(0.95) rotate(0deg); opacity:0.85 } }
@keyframes ehd-mantle { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes ehd-sit { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes ehd-window { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }
@keyframes ehd-candle { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.05) scaleX(0.95) } 100% { transform: scaleY(0.95) scaleX(1.05) } }

/* Scene 2: teasing-about-elma (warm, firelit) */
.scn-teasing-about-elma {
  background: 
    linear-gradient(180deg, #4a2a12 0%, #6a3a1a 30%, #8a4a2a 60%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #c07030 0%, transparent 60%);
}
.scn-teasing-about-elma .room-warm {
  position: absolute; inset: 0; background: inherit;
  background: linear-gradient(180deg, #3a1a0a 0%, #5a2a12 40%, #4a1e08 100%);
  animation: tea-room 18s ease-in-out infinite alternate;
}
.scn-teasing-about-elma .figure-left {
  position: absolute; bottom: 15%; left: 15%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: tea-figleft 6s ease-in-out infinite;
}
.scn-teasing-about-elma .figure-right {
  position: absolute; bottom: 15%; right: 15%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: tea-figright 6s ease-in-out infinite 0.5s;
}
.scn-teasing-about-elma .table {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 18px;
  background: linear-gradient(180deg, #4a2a12, #2a1006);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: tea-table 20s ease-in-out infinite alternate;
}
.scn-teasing-about-elma .candle-mid {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-10px);
  width: 12px; height: 24px;
  background: linear-gradient(180deg, #d0a060 0%, #a08040 100%);
  border-radius: 3px;
  box-shadow: 0 0 30px 8px #f0c060;
  animation: tea-candle 2.5s ease-in-out infinite alternate;
}
.scn-teasing-about-elma .curtain-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #5a2a12 0%, #6a3a1a 60%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: tea-curtain 25s ease-in-out infinite alternate;
}
.scn-teasing-about-elma .curtain-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(270deg, #5a2a12 0%, #6a3a1a 60%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: tea-curtain 25s ease-in-out infinite alternate-reverse;
}
@keyframes tea-room { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tea-figleft { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes tea-figright { 0% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(1deg) } }
@keyframes tea-table { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(1px) } }
@keyframes tea-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.9 } 50% { transform: scaleY(1.08) rotate(2deg); opacity:1 } 100% { transform: scaleY(0.95) rotate(0deg); opacity:0.85 } }
@keyframes tea-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(2px) } }

/* Scene 3: mystery-absorbs (tense, dim-interior) */
.scn-mystery-absorbs {
  background: 
    linear-gradient(180deg, #121a2a 0%, #1a2436 30%, #2a3a4a 60%, #0a0e16 100%),
    radial-gradient(ellipse at 30% 50%, #2a4a6a 0%, transparent 60%);
}
.scn-mystery-absorbs .room-dim {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #0a0e16 0%, #1a2436 50%, #121a2a 100%);
  animation: mys-room 8s ease-in-out infinite alternate;
}
.scn-mystery-absorbs .desk {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 180px; height: 60px;
  background: linear-gradient(180deg, #2a201a 0%, #1a140e 100%);
  border-radius: 6px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6), inset 0 2px 4px #3a2a1a;
}
.scn-mystery-absorbs .papers {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 30px;
  background: #2a2a1a;
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: mys-paper 14s ease-in-out infinite;
}
.scn-mystery-absorbs .magnifier {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 30px;
  background: radial-gradient(circle, #5a6a7a 0%, #2a3a4a 50%, transparent 60%);
  border-radius: 50%;
  border: 3px solid #6a7a8a;
  transform: rotate(15deg);
  animation: mys-mag 10s ease-in-out infinite alternate;
}
.scn-mystery-absorbs .shadow-figure {
  position: absolute; bottom: 25%; right: 15%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #0a0e16 0%, #020304 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mys-fig 5s ease-in-out infinite;
}
.scn-mystery-absorbs .lamp {
  position: absolute; top: 15%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #b0a080 0%, #807060 100%);
  border-radius: 4px;
  box-shadow: 0 0 60px 20px #c0a060, 0 0 100px 40px rgba(192,160,96,0.2);
  animation: mys-lamp 3s ease-in-out infinite alternate;
}
.scn-mystery-absorbs .clock {
  position: absolute; top: 8%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #3a4a5a 0%, #2a3038 100%);
  border-radius: 50%;
  border: 4px solid #4a5a6a;
  animation: mys-clock 2s steps(2) infinite;
}
.scn-mystery-absorbs .letter {
  position: absolute; bottom: 22%; left: 45%; width: 30px; height: 20px;
  background: #3a3020;
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: mys-let 20s ease-in-out infinite alternate;
}
@keyframes mys-room { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes mys-paper { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(12deg) translateY(1px) } }
@keyframes mys-mag { 0% { transform: rotate(15deg) scale(1) } 50% { transform: rotate(20deg) scale(1.05) } 100% { transform: rotate(10deg) scale(0.95) } }
@keyframes mys-fig { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes mys-lamp { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:0.85; transform: scale(0.98) } }
@keyframes mys-clock { 0% { transform: rotate(0deg) } 50% { transform: rotate(180deg) } 100% { transform: rotate(360deg) } }
@keyframes mys-let { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-7deg) translateY(1px) } }

/* Scene 4: uncle-warns (tense, bright-interior) */
.scn-uncle-warns {
  background: 
    linear-gradient(180deg, #e8d8b0 0%, #c8b890 30%, #a08870 60%, #605040 100%),
    radial-gradient(ellipse at 40% 70%, #f0e0c0 0%, transparent 60%);
}
.scn-uncle-warns .room-bright {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #d0c0a0 0%, #b8a888 50%, #a09078 100%);
  animation: unw-room 20s ease-in-out infinite alternate;
}
.scn-uncle-warns .window-sun {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #f0e8d0 0%, #c0b090 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%);
  animation: unw-win 25s ease-in-out infinite alternate;
}
.scn-uncle-warns .sunbeam {
  position: absolute; top: 10%; left: 25%; width: 30%; height: 40%;
  background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  animation: unw-beam 8s ease-in-out infinite alternate;
}
.scn-uncle-warns .uncle-figure {
  position: absolute; bottom: 15%; left: 35%; width: 55px; height: 120px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: unw-unc 4s ease-in-out infinite;
}
.scn-uncle-warns .chair {
  position: absolute; bottom: 10%; right: 20%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a140e 100%);
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: unw-chair 30s ease-in-out infinite alternate;
}
.scn-uncle-warns .table-tea {
  position: absolute; bottom: 15%; left: 55%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-uncle-warns .curtain-move {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(270deg, #5a4a3a 0%, #3a2a1a 60%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: unw-curt 18s ease-in-out infinite alternate;
}
@keyframes unw-room { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes unw-win { 0% { clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%) } 50% { clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%) } 100% { clip-path: polygon(0 0, 100% 0, 90% 100%, 0 100%) } }
@keyframes unw-beam { 0% { opacity:0.3; transform: rotate(0deg) } 50% { opacity:0.6; transform: rotate(2deg) } 100% { opacity:0.4; transform: rotate(-2deg) } }
@keyframes unw-unc { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-0.5deg) } }
@keyframes unw-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes unw-curt { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(2px) } }

.scn-motive-fortune {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a50 40%, #3a2a2a 70%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 60%);
}
.scn-motive-fortune .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  animation: mf-wall 18s ease-in-out infinite alternate;
}
.scn-motive-fortune .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
  animation: mf-floor 12s ease-in-out infinite alternate;
}
.scn-motive-fortune .desk {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 50%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-motive-fortune .candle {
  position: absolute; bottom: 34%; left: 50%; width: 8px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8b0 0%, #c8a870 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 6px rgba(200,168,112,.5);
}
.scn-motive-fortune .flame {
  position: absolute; bottom: 76%; left: 50%; width: 10px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #ffcc44 0%, #ff8833 60%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 24px 6px #ff8833, 0 0 48px 12px rgba(255,136,51,.3);
  animation: mf-flame 1.5s ease-in-out infinite alternate;
}
.scn-motive-fortune .figure {
  position: absolute; bottom: 24%; left: 38%; 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: mf-figure 4s ease-in-out infinite;
}
.scn-motive-fortune .window {
  position: absolute; top: 12%; right: 10%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%);
  border: 2px solid #3a3a5a; border-radius: 2px;
  box-shadow: inset 0 0 12px rgba(0,0,0,.8);
  animation: mf-window 8s ease-in-out infinite alternate;
}
.scn-motive-fortune .shadow-pool {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: mf-shadow 5s ease-in-out infinite;
}
@keyframes mf-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes mf-floor { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes mf-flame { 0% { transform: translateX(-50%) scaleY(1) scaleX(1) rotate(-2deg); opacity: .9 } 50% { transform: translateX(-50%) scaleY(1.2) scaleX(.9) rotate(2deg); opacity: 1 } 100% { transform: translateX(-50%) scaleY(1.1) scaleX(.95) rotate(-1deg); opacity: .85 } }
@keyframes mf-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(4px) translateY(0) rotate(0deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes mf-window { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .4 } }
@keyframes mf-shadow { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.1) scaleY(0.9) } 100% { transform: scaleX(1) scaleY(1) } }

.scn-operation-siena {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a40 40%, #1a1a2e 70%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a40 0%, transparent 60%);
}
.scn-operation-siena .bg-cell {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  animation: os-wall 16s ease-in-out infinite alternate;
}
.scn-operation-siena .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
  animation: os-floor 14s ease-in-out infinite alternate;
}
.scn-operation-siena .bars {
  position: absolute; top: 8%; left: 10%; width: 4px; height: 50px;
  background: #4a4a5a; border-radius: 2px;
  box-shadow: 14px 0 #4a4a5a, 28px 0 #4a4a5a, 42px 0 #4a4a5a, 0 14px 0 0 #4a4a5a, 14px 14px #4a4a5a, 28px 14px #4a4a5a, 42px 14px #4a4a5a;
  animation: os-bars 8s ease-in-out infinite alternate;
}
.scn-operation-siena .window-light {
  position: absolute; top: 10%; left: 10%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(200,200,220,.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: os-light 10s ease-in-out infinite alternate;
}
.scn-operation-siena .table {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 3px 8px rgba(0,0,0,.5);
}
.scn-operation-siena .stool {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: os-stool 6s ease-in-out infinite;
}
.scn-operation-siena .figure {
  position: absolute; bottom: 22%; left: 44%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: os-figure 5s ease-in-out infinite;
}
.scn-operation-siena .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 100%);
  animation: os-shadow 7s ease-in-out infinite;
}
@keyframes os-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes os-floor { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes os-bars { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .7 } }
@keyframes os-light { 0% { opacity: .1; transform: scale(1) } 50% { opacity: .3; transform: scale(1.2) } 100% { opacity: .15; transform: scale(1.1) } }
@keyframes os-stool { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes os-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(1px) translateY(-2px) rotate(1deg) } 60% { transform: translateX(-1px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes os-shadow { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.05) scaleY(0.95) } 100% { transform: scaleX(1) scaleY(1) } }

.scn-mystery-solved {
  background: linear-gradient(180deg, #c8b090 0%, #a88870 40%, #8a6a50 70%, #6a4a30 100%),
              radial-gradient(ellipse at 50% 70%, #d8c8b0 0%, transparent 60%);
}
.scn-mystery-solved .bg-room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c8b098 0%, #a88870 100%);
  animation: ms-wall 20s ease-in-out infinite alternate;
}
.scn-mystery-solved .fireplace {
  position: absolute; bottom: 20%; left: 8%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.5);
}
.scn-mystery-solved .armchair-left {
  position: absolute; bottom: 18%; left: 28%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #8a6a50 0%, #6a4a30 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: ms-chair 10s ease-in-out infinite;
}
.scn-mystery-solved .armchair-right {
  position: absolute; bottom: 18%; right: 28%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #8a6a50 0%, #6a4a30 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: ms-chair 10s ease-in-out infinite 3s;
}
.scn-mystery-solved .table {
  position: absolute; bottom: 14%; left: 50%; width: 90px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #7a5a40 0%, #9a7a60 50%, #7a5a40 100%);
  border-radius: 4px; box-shadow: 0 3px 8px rgba(0,0,0,.4);
}
.scn-mystery-solved .tea-cup {
  position: absolute; bottom: 18%; left: 50%; width: 16px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8c8 0%, #c8b8a8 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
}
.scn-mystery-solved .steam {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, rgba(255,255,255,.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: ms-steam 4s ease-in-out infinite;
}
.scn-mystery-solved .figure-left {
  position: absolute; bottom: 18%; left: 28%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-figure 6s ease-in-out infinite;
}
.scn-mystery-solved .figure-right {
  position: absolute; bottom: 18%; right: 28%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ms-figure 6s ease-in-out infinite 2s;
}
@keyframes ms-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes ms-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ms-steam { 0% { transform: translateX(-50%) scaleY(1); opacity: .3 } 50% { transform: translateX(-50%) scaleY(1.3) translateY(-8px); opacity: .5 } 100% { transform: translateX(-50%) scaleY(1); opacity: .2 } }
@keyframes ms-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(-2px) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }

.scn-epilogue-marriages {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 30%, #e0f0e0 70%, #8a9a5a 100%),
              radial-gradient(ellipse at 50% 0%, #c0f0ff 0%, transparent 60%);
}
.scn-epilogue-marriages .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 100%);
  animation: em-sky 20s ease-in-out infinite alternate;
}
.scn-epilogue-marriages .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a9a5a 0%, #6a7a4a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.1);
  animation: em-grass 15s ease-in-out infinite alternate;
}
.scn-epilogue-marriages .path {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.1);
}
.scn-epilogue-marriages .tree-left {
  position: absolute; bottom: 32%; left: 6%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,.15);
  animation: em-tree 12s ease-in-out infinite;
}
.scn-epilogue-marriages .tree-right {
  position: absolute; bottom: 32%; right: 8%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,.15);
  animation: em-tree 12s ease-in-out infinite 4s;
}
.scn-epilogue-marriages .figure-male {
  position: absolute; bottom: 18%; left: 44%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: em-figure 5s ease-in-out infinite;
}
.scn-epilogue-marriages .figure-female {
  position: absolute; bottom: 18%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: em-figure 5s ease-in-out infinite 2.5s;
}
.scn-epilogue-marriages .sunrays {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,.2) 0%, transparent 100%);
  clip-path: polygon(50% 0, 60% 100%, 40% 100%);
  filter: blur(20px);
  animation: em-rays 8s ease-in-out infinite alternate;
}
.scn-epilogue-marriages .clouds {
  position: absolute; top: 8%; left: 10%; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.5) 0%, transparent 100%);
  filter: blur(12px);
  animation: em-cloud 40s linear infinite;
}
@keyframes em-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes em-grass { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes em-tree { 0% { transform: rotate(0deg) } 25% { transform: rotate(1deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes em-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 60% { transform: translateX(1px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes em-rays { 0% { opacity: .1; transform: scaleY(1) } 50% { opacity: .3; transform: scaleY(1.1) } 100% { opacity: .15; transform: scaleY(1) } }
@keyframes em-cloud { 0% { transform: translateX(-150px) } 100% { transform: translateX(120vw) } }

.scn-back-in-london {
  background:
    linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 30%, #6a7a8a 0%, transparent 70%);
}
.scn-back-in-london .window-frame {
  position: absolute;
  top: 5%; left: 15%;
  width: 70%; height: 55%;
  background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: bil-frame 12s ease-in-out infinite alternate;
}
.scn-back-in-london .glass {
  position: absolute;
  top: 8%; left: 18%;
  width: 64%; height: 49%;
  background: linear-gradient(180deg, rgba(180,195,210,0.3) 0%, rgba(120,140,160,0.2) 100%);
  border-radius: 2%;
  box-shadow: 0 0 30px rgba(200,220,240,0.1);
  animation: bil-glass 20s linear infinite;
}
.scn-back-in-london .seat {
  position: absolute;
  bottom: 8%; left: 10%;
  width: 35%; height: 20%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.5);
  animation: bil-seat 6s ease-in-out infinite alternate;
}
.scn-back-in-london .figure-silhouette {
  position: absolute;
  bottom: 10%; left: 32%;
  width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bil-figure 8s ease-in-out infinite;
}
.scn-back-in-london .lamp-overhead {
  position: absolute;
  top: 2%; left: 45%;
  width: 10%; height: 4%;
  background: radial-gradient(circle, #b0a080 0%, #806040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #b0a080, 0 0 40px 12px rgba(176,160,128,0.3);
  animation: bil-lamp 3s ease-in-out infinite alternate;
}
.scn-back-in-london .landscape-outside {
  position: absolute;
  top: 10%; left: 20%;
  width: 60%; height: 45%;
  background:
    linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%),
    radial-gradient(ellipse at 30% 50%, #7a8a9a 0%, transparent 60%);
  border-radius: 2%;
  filter: blur(4px);
  animation: bil-landscape 30s linear infinite alternate;
}
.scn-back-in-london .fog-atmosphere {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 20%, rgba(200,210,220,0.2) 0%, transparent 80%);
  animation: bil-fog 15s ease-in-out infinite alternate;
}
@keyframes bil-frame {
  0% { transform: scale(1); }
  50% { transform: scale(1.01) translateY(-2px); }
  100% { transform: scale(1); }
}
@keyframes bil-glass {
  0% { opacity: 0.7; }
  50% { opacity: 0.5; }
  100% { opacity: 0.7; }
}
@keyframes bil-seat {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px) translateY(-1px); }
  100% { transform: translateX(0); }
}
@keyframes bil-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bil-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 15px 5px #b0a080; }
  50% { opacity: 1; box-shadow: 0 0 25px 10px #c0b090; }
  100% { opacity: 0.9; box-shadow: 0 0 18px 6px #b0a080; }
}
@keyframes bil-landscape {
  0% { transform: translateX(0); }
  100% { transform: translateX(-30px); }
}
@keyframes bil-fog {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

.scn-durnford-return {
  background:
    linear-gradient(180deg, #b89878 0%, #a08060 40%, #806040 100%),
    radial-gradient(ellipse at 50% 80%, #c0a080 0%, transparent 70%);
}
.scn-durnford-return .wall-backdrop {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d0b898 0%, #b89878 100%);
  box-shadow: inset 0 10px 40px rgba(60,40,20,0.3);
  animation: dr-wall 20s ease-in-out infinite alternate;
}
.scn-durnford-return .fireplace-hearth {
  position: absolute;
  bottom: 15%; left: 10%;
  width: 30%; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px rgba(200,120,60,0.4);
  animation: dr-hearth 4s ease-in-out infinite alternate;
}
.scn-durnford-return .fire-flame {
  position: absolute;
  bottom: 30%; left: 15%;
  width: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #e8a040 0%, #c06020 50%, #8a3010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(3px);
  animation: dr-fire 2s ease-in-out infinite alternate;
}
.scn-durnford-return .armchair {
  position: absolute;
  bottom: 5%; left: 45%;
  width: 35%; height: 40%;
  background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: dr-chair 8s ease-in-out infinite;
}
.scn-durnford-return .figure-returning {
  position: absolute;
  bottom: 10%; left: 38%;
  width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dr-figure 5s ease-in-out infinite;
}
.scn-durnford-return .side-table {
  position: absolute;
  bottom: 8%; right: 12%;
  width: 20%; height: 15%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: dr-table 12s ease-in-out infinite alternate;
}
.scn-durnford-return .lamp-glow {
  position: absolute;
  top: 5%; right: 20%;
  width: 8%; height: 8%;
  background: radial-gradient(circle, #f0d080 0%, #d0a060 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #f0d080, 0 0 80px 30px rgba(240,208,128,0.3);
  animation: dr-lamp 4s ease-in-out infinite alternate;
}
.scn-durnford-return .window-bright {
  position: absolute;
  top: 8%; left: 5%;
  width: 25%; height: 35%;
  background: linear-gradient(180deg, #d8e0e8 0%, #b0c0d0 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.2);
  animation: dr-window 18s linear infinite;
}
@keyframes dr-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes dr-hearth {
  0% { box-shadow: 0 0 20px rgba(200,120,60,0.3); }
  100% { box-shadow: 0 0 50px rgba(200,120,60,0.6); }
}
@keyframes dr-fire {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.8; }
  50% { transform: scaleY(1.2) rotate(2deg); opacity: 1; }
  100% { transform: scaleY(0.9) rotate(0deg); opacity: 0.9; }
}
@keyframes dr-chair {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px) translateY(-2px); }
  100% { transform: translateX(0); }
}
@keyframes dr-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes dr-table {
  0% { transform: scale(1); }
  50% { transform: scale(0.98); }
  100% { transform: scale(1); }
}
@keyframes dr-lamp {
  0% { box-shadow: 0 0 30px 10px #f0d080, 0 0 60px 20px rgba(240,208,128,0.2); opacity: 0.9; }
  50% { box-shadow: 0 0 50px 20px #f0d080, 0 0 90px 35px rgba(240,208,128,0.4); opacity: 1; }
  100% { box-shadow: 0 0 35px 12px #f0d080, 0 0 70px 25px rgba(240,208,128,0.3); opacity: 0.95; }
}
@keyframes dr-window {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

.scn-recruiting-service {
  background:
    linear-gradient(180deg, #c8b8a8 0%, #a89888 50%, #887868 100%),
    radial-gradient(ellipse at 50% 20%, #d8c8b8 0%, transparent 60%);
}
.scn-recruiting-service .carpet-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: rs-carpet 15s ease-in-out infinite alternate;
}
.scn-recruiting-service .desk-surface {
  position: absolute;
  bottom: 15%; left: 25%;
  width: 50%; height: 12%;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 5%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.4);
  animation: rs-desk 8s ease-in-out infinite;
}
.scn-recruiting-service .papers-stack {
  position: absolute;
  bottom: 22%; left: 30%;
  width: 15%; height: 5%;
  background: linear-gradient(135deg, #e8d8c8 0%, #c8b8a8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.3);
  animation: rs-papers 6s ease-in-out infinite alternate;
}
.scn-recruiting-service .figure-recruit {
  position: absolute;
  bottom: 12%; left: 42%;
  width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-figure 10s ease-in-out infinite;
}
.scn-recruiting-service .window-city {
  position: absolute;
  top: 8%; left: 60%;
  width: 25%; height: 35%;
  background: linear-gradient(180deg, #b0c0d0 0%, #8090a0 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 15px rgba(255,255,255,0.2);
  animation: rs-window 12s linear infinite alternate;
}
.scn-recruiting-service .desk-lamp {
  position: absolute;
  top: 12%; left: 25%;
  width: 8%; height: 10%;
  background: radial-gradient(circle, #e0c080 0%, #b09860 70%);
  border-radius: 50%;
  box-shadow: 0 0 35px 15px #e0c080, 0 0 70px 30px rgba(224,192,128,0.3);
  animation: rs-lamp 3s ease-in-out infinite alternate;
}
.scn-recruiting-service .picture-frame {
  position: absolute;
  top: 10%; left: 10%;
  width: 15%; height: 20%;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: rs-picture 18s ease-in-out infinite;
}
@keyframes rs-carpet {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.95; transform: scaleY(1); }
}
@keyframes rs-desk {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-3px) scale(0.98); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes rs-papers {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rs-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes rs-window {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes rs-lamp {
  0% { box-shadow: 0 0 25px 10px #e0c080, 0 0 50px 20px rgba(224,192,128,0.2); opacity: 0.85; }
  50% { box-shadow: 0 0 45px 18px #e0c080, 0 0 80px 35px rgba(224,192,128,0.4); opacity: 1; }
  100% { box-shadow: 0 0 30px 12px #e0c080, 0 0 60px 25px rgba(224,192,128,0.3); opacity: 0.9; }
}
@keyframes rs-picture {
  0% { transform: scale(1); }
  50% { transform: scale(0.95); }
  100% { transform: scale(1); }
}

.scn-major-bartlett {
  background:
    linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 40%, #5a4a3a 100%),
    radial-gradient(ellipse at 40% 30%, #9a8a7a 0%, transparent 70%);
}
.scn-major-bartlett .room-back {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #a89888 0%, #7a6a5a 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.4);
  animation: mb-room 6s ease-in-out infinite alternate;
}
.scn-major-bartlett .dining-table {
  position: absolute;
  bottom: 15%; left: 20%;
  width: 60%; height: 8%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: mb-table 3s ease-in-out infinite alternate;
}
.scn-major-bartlett .figure-a {
  position: absolute;
  bottom: 18%; left: 25%;
  width: 12%; height: 38%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-figA 4s ease-in-out infinite;
}
.scn-major-bartlett .figure-b {
  position: absolute;
  bottom: 18%; right: 30%;
  width: 12%; height: 38%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-figB 4.5s ease-in-out infinite;
}
.scn-major-bartlett .window-hard {
  position: absolute;
  top: 5%; left: 5%;
  width: 30%; height: 40%;
  background: linear-gradient(180deg, #d8e0e8 0%, #b0c0d0 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.5), 0 0 20px rgba(255,255,255,0.2);
  animation: mb-window 3s linear infinite alternate;
}
.scn-major-bartlett .ceiling-lamp {
  position: absolute;
  top: 2%; left: 45%;
  width: 10%; height: 6%;
  background: radial-gradient(circle, #e0d0c0 0%, #c0b0a0 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #e0d0c0, 0 0 100px 40px rgba(224,208,192,0.3);
  animation: mb-lamp 2s ease-in-out infinite alternate;
}
.scn-major-bartlett .sharp-shadow {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: linear-gradient(135deg, transparent 30%, rgba(0,0,0,0.3) 100%);
  pointer-events: none;
  animation: mb-shadow 5s ease-in-out infinite alternate;
}
@keyframes mb-room {
  0% { opacity: 0.9; }
  100% { opacity: 1; }
}
@keyframes mb-table {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}
@keyframes mb-figA {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(5px) rotate(0deg); }
  50% { transform: translateX(10px) rotate(3deg); }
  75% { transform: translateX(5px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes mb-figB {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-3px) rotate(0deg); }
  50% { transform: translateX(-6px) rotate(-2deg); }
  75% { transform: translateX(-3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes mb-window {
  0% { opacity: 0.8; box-shadow: 0 0 20px rgba(255,255,255,0.3); }
  50% { opacity: 1; box-shadow: 0 0 40px rgba(255,255,255,0.6); }
  100% { opacity: 0.9; box-shadow: 0 0 25px rgba(255,255,255,0.4); }
}
@keyframes mb-lamp {
  0% { box-shadow: 0 0 30px 10px #e0d0c0, 0 0 60px 20px rgba(224,208,192,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 60px 25px #e0d0c0, 0 0 120px 50px rgba(224,208,192,0.5); opacity: 1; }
  100% { box-shadow: 0 0 40px 15px #e0d0c0, 0 0 80px 30px rgba(224,208,192,0.3); opacity: 0.9; }
}
@keyframes mb-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.4; }
}

/* scene: durnford-recovers */
.scn-durnford-recovers { background: linear-gradient(180deg, #f5e0c0 0%, #c8a87a 50%, #a08050 100%), radial-gradient(ellipse at 30% 80%, #d4b48a 0%, transparent 70%); }
.scn-durnford-recovers .bg-warm { position:absolute; inset:0; background: linear-gradient(135deg, #f5e8d0 0%, #dcc8a0 100%); opacity:0.6; animation: dr-bg-pulse 8s ease-in-out infinite alternate; }
.scn-durnford-recovers .window-light { position:absolute; top:15%; left:55%; width:35%; height:40%; background: radial-gradient(ellipse at 40% 30%, #fff8e0 0%, #e8d8b0 50%, transparent 80%); border-radius: 10% 10% 0 0; filter: blur(4px); animation: dr-window 6s ease-in-out infinite alternate; }
.scn-durnford-recovers .curtain { position:absolute; top:12%; left:52%; width:38%; height:45%; background: linear-gradient(180deg, rgba(220,200,160,0.4) 0%, rgba(180,160,120,0.2) 100%); border-radius: 0 0 40% 40%; filter: blur(3px); animation: dr-curtain 14s ease-in-out infinite; }
.scn-durnford-recovers .bed { position:absolute; bottom:10%; left:20%; width:60%; height:35%; background: linear-gradient(180deg, #c8a870 0%, #a88850 100%); border-radius: 12% 12% 8% 8% / 60% 60% 40% 40%; box-shadow: inset 0 -12px 20px rgba(0,0,0,0.15); animation: dr-bed 10s ease-in-out infinite alternate; }
.scn-durnford-recovers .figure-recumbent { position:absolute; bottom:18%; left:35%; width:18%; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: center 70%; animation: dr-breath 3s ease-in-out infinite; }
.scn-durnford-recovers .lamp { position:absolute; top:8%; left:30%; width:8%; height:12%; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c89040 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 8px rgba(200,144,64,0.5), 0 0 60px 20px rgba(200,144,64,0.2); animation: dr-lamp-glow 2s ease-in-out infinite alternate; }
.scn-durnford-recovers .bottle { position:absolute; bottom:12%; right:20%; width:5%; height:16%; background: linear-gradient(180deg, #a08860 0%, #7a6848 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-10deg); animation: dr-bottle 12s ease-in-out infinite; }
@keyframes dr-bg-pulse { 0%{opacity:0.5;transform:scale(1)} 50%{opacity:0.7;transform:scale(1.02)} 100%{opacity:0.6;transform:scale(1)} }
@keyframes dr-window { 0%{opacity:0.7;filter:blur(4px)} 50%{opacity:1;filter:blur(2px)} 100%{opacity:0.8;filter:blur(5px)} }
@keyframes dr-curtain { 0%{transform:translateX(0) scaleX(1)} 33%{transform:translateX(3px) scaleX(0.97)} 66%{transform:translateX(-2px) scaleX(1.03)} 100%{transform:translateX(0) scaleX(1)} }
@keyframes dr-bed { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes dr-breath { 0%{transform:scaleY(1) translateY(0)} 50%{transform:scaleY(1.02) translateY(-2px)} 100%{transform:scaleY(1) translateY(0)} }
@keyframes dr-lamp-glow { 0%{box-shadow:0 0 20px 5px rgba(200,144,64,0.4),0 0 40px 10px rgba(200,144,64,0.1);opacity:0.8} 50%{box-shadow:0 0 40px 12px rgba(200,144,64,0.7),0 0 80px 25px rgba(200,144,64,0.3);opacity:1} 100%{box-shadow:0 0 25px 6px rgba(200,144,64,0.5),0 0 50px 15px rgba(200,144,64,0.15);opacity:0.85} }
@keyframes dr-bottle { 0%{transform:rotate(-10deg) translateY(0)} 50%{transform:rotate(-8deg) translateY(-1px) scale(1.01)} 100%{transform:rotate(-10deg) translateY(0)} }

/* scene: truth-from-muriel */
.scn-truth-from-muriel { background: linear-gradient(180deg, #f0d8a8 0%, #d8bc88 40%, #b89860 100%), radial-gradient(ellipse at 70% 90%, #e8ca90 0%, transparent 80%); }
.scn-truth-from-muriel .bg-tense-bright { position:absolute; inset:0; background: linear-gradient(135deg, #f5e0b0 0%, #d8b880 100%); opacity:0.5; animation: tm-bg 5s linear infinite alternate; }
.scn-truth-from-muriel .figure-left { position:absolute; bottom:10%; left:15%; width:18%; height:35%; background: linear-gradient(180deg, #6a5240 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: tm-figure-left 4s ease-in-out infinite; }
.scn-truth-from-muriel .figure-right { position:absolute; bottom:10%; right:15%; width:20%; height:38%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: tm-figure-right 4.5s ease-in-out infinite; }
.scn-truth-from-muriel .table { position:absolute; bottom:12%; left:45%; width:10%; height:8%; background: linear-gradient(180deg, #b89060 0%, #98784a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,0.2); animation: tm-table 6s ease-in-out infinite; }
.scn-truth-from-muriel .lamp-harsh { position:absolute; top:10%; left:45%; width:8%; height:14%; background: radial-gradient(circle at 50% 40%, #ffe0a0 0%, #d0a060 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 40px 10px rgba(208,160,96,0.6), 0 0 80px 25px rgba(208,160,96,0.3); animation: tm-lamp 1.5s ease-in-out infinite alternate; }
.scn-truth-from-muriel .shadow-bar { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(135deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.05) 40%, transparent 60%); pointer-events:none; animation: tm-shadow 3s ease-in-out infinite; }
@keyframes tm-bg { 0%{opacity:0.4} 50%{opacity:0.7} 100%{opacity:0.5} }
@keyframes tm-figure-left { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(5px) rotate(2deg)} 50%{transform:translateX(0) rotate(0deg)} 75%{transform:translateX(8px) rotate(-2deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes tm-figure-right { 0%{transform:translateX(0) rotate(0deg) scaleY(1)} 30%{transform:translateX(-6px) rotate(-1deg) scaleY(0.98)} 60%{transform:translateX(0) rotate(0deg) scaleY(1)} 100%{transform:translateX(-3px) rotate(1deg) scaleY(1)} }
@keyframes tm-table { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-1px) scale(1.01)} 100%{transform:translateY(0) scale(1)} }
@keyframes tm-lamp { 0%{box-shadow:0 0 30px 8px rgba(208,160,96,0.5),0 0 60px 18px rgba(208,160,96,0.2);opacity:0.9} 50%{box-shadow:0 0 50px 15px rgba(208,160,96,0.8),0 0 100px 35px rgba(208,160,96,0.4);opacity:1} 100%{box-shadow:0 0 35px 10px rgba(208,160,96,0.6),0 0 70px 22px rgba(208,160,96,0.25);opacity:0.85} }
@keyframes tm-shadow { 0%{opacity:0.3} 50%{opacity:0.6} 100%{opacity:0.3} }

/* scene: elma-silent */
.scn-elma-silent { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 30%, #3a3a5a 60%, #2a2a44 100%), radial-gradient(ellipse at 50% 80%, #4a4a6a 0%, transparent 80%); }
.scn-elma-silent .bg-dim { position:absolute; inset:0; background: linear-gradient(135deg, #0e0e1a 0%, #1a1a2e 100%); opacity:0.7; animation: es-bg 12s ease-in-out infinite alternate; }
.scn-elma-silent .desk { position:absolute; bottom:15%; left:25%; width:50%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 6% 6% 10% 10% / 40% 40% 30% 30%; box-shadow: inset 0 4px 10px rgba(0,0,0,0.5); animation: es-desk 8s ease-in-out infinite; }
.scn-elma-silent .chair { position:absolute; bottom:12%; left:45%; width:12%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 60% 60% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: es-chair 6s ease-in-out infinite; }
.scn-elma-silent .figure-seated { position:absolute; bottom:22%; left:44%; width:14%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: es-figure 4s ease-in-out infinite; }
.scn-elma-silent .lamp-small { position:absolute; bottom:32%; left:42%; width:6%; height:10%; background: radial-gradient(circle at 50% 20%, #e0a050 0%, #8a6030 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 6px rgba(224,160,80,0.5), 0 0 40px 15px rgba(224,160,80,0.2); animation: es-lamp 2.5s ease-in-out infinite alternate; }
.scn-elma-silent .letter { position:absolute; bottom:20%; left:60%; width:12%; height:16%; background: linear-gradient(180deg, #c8b080 0%, #a08860 100%); border-radius: 4% 4% 10% 10% / 20% 20% 30% 30%; transform: rotate(5deg); animation: es-letter 15s linear infinite; }
.scn-elma-silent .window-dark { position:absolute; top:8%; right:10%; width:30%; height:35%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: es-window 20s ease-in-out infinite alternate; }
@keyframes es-bg { 0%{opacity:0.6} 50%{opacity:0.8} 100%{opacity:0.7} }
@keyframes es-desk { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes es-chair { 0%{transform:rotate(0deg) translateY(0)} 33%{transform:rotate(1deg) translateY(-1px)} 66%{transform:rotate(-1deg) translateY(0)} 100%{transform:rotate(0deg) translateY(0)} }
@keyframes es-figure { 0%{transform:rotate(0deg) scaleY(1)} 25%{transform:rotate(2deg) scaleY(0.98)} 50%{transform:rotate(-1deg) scaleY(1)} 75%{transform:rotate(1deg) scaleY(0.99)} 100%{transform:rotate(0deg) scaleY(1)} }
@keyframes es-lamp { 0%{box-shadow:0 0 15px 4px rgba(224,160,80,0.4),0 0 30px 10px rgba(224,160,80,0.15);opacity:0.7} 50%{box-shadow:0 0 25px 8px rgba(224,160,80,0.6),0 0 50px 20px rgba(224,160,80,0.25);opacity:1} 100%{box-shadow:0 0 18px 5px rgba(224,160,80,0.45),0 0 35px 12px rgba(224,160,80,0.18);opacity:0.8} }
@keyframes es-letter { 0%{transform:rotate(5deg) translateX(0)} 50%{transform:rotate(3deg) translateX(2px)} 100%{transform:rotate(5deg) translateX(0)} }
@keyframes es-window { 0%{opacity:0.3;filter:blur(3px)} 50%{opacity:0.5;filter:blur(1px)} 100%{opacity:0.35;filter:blur(4px)} }

/* scene: princess-note */
.scn-princess-note { background: linear-gradient(180deg, #f5f0e8 0%, #e8ddd0 40%, #d8c8b8 100%), radial-gradient(ellipse at 60% 40%, #f0e8d8 0%, transparent 80%); }
.scn-princess-note .bg-calm-bright { position:absolute; inset:0; background: linear-gradient(135deg, #faf5ea 0%, #ede3d4 100%); opacity:0.5; animation: pn-bg 15s ease-in-out infinite alternate; }
.scn-princess-note .window-soft { position:absolute; top:10%; left:60%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 30%, #fff8f0 0%, #e8ddd0 50%, transparent 80%); border-radius: 10% 10% 0 0; filter: blur(5px); animation: pn-window 12s ease-in-out infinite alternate; }
.scn-princess-note .desk-calm { position:absolute; bottom:12%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%); border-radius: 8% 8% 12% 12% / 30% 30% 40% 40%; box-shadow: inset 0 2px 8px rgba(0,0,0,0.1); animation: pn-desk 20s ease-in-out infinite; }
.scn-princess-note .letter-unfolded { position:absolute; bottom:18%; left:55%; width:16%; height:18%; background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b8 100%); border-radius: 2% 2% 10% 10% / 10% 10% 20% 20%; transform: rotate(-2deg); box-shadow: 0 1px 6px rgba(0,0,0,0.1); animation: pn-letter 25s linear infinite; }
.scn-princess-note .teacup { position:absolute; bottom:14%; left:35%; width:8%; height:10%; background: radial-gradient(circle at 50% 40%, #e8ddd0 0%, #b8a890 70%); border-radius: 30% 30% 20% 20% / 40% 40% 25% 25%; animation: pn-teacup 9s ease-in-out infinite; }
.scn-princess-note .chair-calm { position:absolute; bottom:10%; left:20%; width:14%; height:32%; background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%); border-radius: 60% 60% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pn-chair 14s ease-in-out infinite; }
.scn-princess-note .plant { position:absolute; bottom:15%; right:15%; width:12%; height:20%; background: radial-gradient(ellipse at 50% 80%, #6a8a5a 0%, #3a5a2a 70%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; filter: blur(1px); animation: pn-plant 8s ease-in-out infinite; }
@keyframes pn-bg { 0%{opacity:0.4;transform:scale(1)} 50%{opacity:0.6;transform:scale(1.01)} 100%{opacity:0.5;transform:scale(1)} }
@keyframes pn-window { 0%{opacity:0.6;filter:blur(5px)} 50%{opacity:0.9;filter:blur(2px)} 100%{opacity:0.7;filter:blur(6px)} }
@keyframes pn-desk { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes pn-letter { 0%{transform:rotate(-2deg) translateX(0)} 50%{transform:rotate(-1deg) translateX(2px) scale(1.005)} 100%{transform:rotate(-2deg) translateX(0)} }
@keyframes pn-teacup { 0%{transform:rotate(0deg) translateY(0)} 33%{transform:rotate(1deg) translateY(-1px)} 66%{transform:rotate(-1deg) translateY(0)} 100%{transform:rotate(0deg) translateY(0)} }
@keyframes pn-chair { 0%{transform:rotate(0deg) scaleY(1)} 50%{transform:rotate(1deg) scaleY(0.99)} 100%{transform:rotate(0deg) scaleY(1)} }
@keyframes pn-plant { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-2px) scale(1.01)} 100%{transform:translateY(0) scale(1)} }

/* one block per scene id. Append to style.css. */
.scn-unsolved-mediterranean { background: linear-gradient(180deg, #c96a3a 0%, #7a4a5a 35%, #2a2a5a 70%, #0e1a2e 100%), radial-gradient(ellipse at 50% 0%, #f0a060 0%, transparent 60%); }
.scn-unsolved-mediterranean .sky-dusk  { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d98a4a 0%, #8a5a6a 40%, #3a3a6a 70%, transparent 100%); animation: um-sky 8s ease-in-out infinite alternate; }
.scn-unsolved-mediterranean .sea-wave  { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #0a1a2a 0%, #1a3a5a 40%, #2a4a6a 100%); animation: um-sea 5s ease-in-out infinite alternate; }
.scn-unsolved-mediterranean .ship-hull { position:absolute; bottom:35%; left:32%; width:120px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 0 40% 40% 0 / 0 60% 60% 0; box-shadow: 0 6px 12px rgba(0,0,0,.6); animation: um-ship 4s ease-in-out infinite alternate; }
.scn-unsolved-mediterranean .sail-main { position:absolute; bottom:55%; left:40%; width:50px; height:80px; background: linear-gradient(180deg, #e8d0b0 0%, #b09878 100%); border-radius: 20% 10% 10% 20%; box-shadow: inset -4px 0 10px rgba(0,0,0,.3); animation: um-sail 6s ease-in-out infinite alternate; }
.scn-unsolved-mediterranean .horizon-mtn { position:absolute; bottom:50%; left:0; right:0; height:18%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; opacity: .6; animation: um-mtn 12s ease-in-out infinite alternate; }
.scn-unsolved-mediterranean .figure-shore { position:absolute; bottom:38%; left:65%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: um-walk 3s ease-in-out infinite; }
.scn-unsolved-mediterranean .lantern-pulse { position:absolute; bottom:42%; left:60%; width:8px; height:8px; background: radial-gradient(circle, #ffc060 0%, #d08030 60%); border-radius: 50%; box-shadow: 0 0 20px 6px #d08030, 0 0 40px 12px rgba(208,128,48,.4); animation: um-lantern 2s ease-in-out infinite alternate; }
.scn-unsolved-mediterranean .cloud-slow { position:absolute; top:8%; right:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,200,150,.3) 0%, rgba(255,200,150,.05) 100%); border-radius: 50%; filter: blur(8px); animation: um-cloud 40s linear infinite; }
@keyframes um-sky    { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes um-sea    { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes um-ship   { 0% { transform: translate(0,0) rotate(-1deg); } 50% { transform: translate(2px,-3px) rotate(1deg); } 100% { transform: translate(-1px,0) rotate(0); } }
@keyframes um-sail   { 0% { transform: skewX(0) translate(0); } 50% { transform: skewX(-2deg) translate(2px); } 100% { transform: skewX(0) translate(0); } }
@keyframes um-mtn    { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes um-walk   { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes um-lantern{ 0% { box-shadow: 0 0 12px 4px #d08030, 0 0 24px 8px rgba(208,128,48,.3); opacity:.8; } 50% { box-shadow: 0 0 30px 10px #ffd060, 0 0 60px 20px rgba(255,208,96,.6); opacity:1; } 100% { box-shadow: 0 0 18px 6px #d08030, 0 0 36px 10px rgba(208,128,48,.4); opacity:.85; } }
@keyframes um-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-cork-street-closed { background: linear-gradient(180deg, #1e1a16 0%, #2a221e 40%, #3a302a 100%), radial-gradient(ellipse at 50% 80%, #3a302a 0%, transparent 70%); }
.scn-cork-street-closed .wall-bg  { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a322a 0%, #2a221a 100%); animation: cs-wall 20s ease-in-out infinite alternate; }
.scn-cork-street-closed .floor-plank { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a221a 0%, #1e1610 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.5); border-radius: 0; animation: cs-floor 30s linear infinite; }
.scn-cork-street-closed .door-closed { position:absolute; bottom:30%; left:35%; width:80px; height:130px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: -3px 0 6px rgba(0,0,0,.4), 3px 0 6px rgba(0,0,0,.2); animation: cs-door 12s ease-in-out infinite alternate; }
.scn-cork-street-closed .lamp-glow { position:absolute; bottom:65%; left:65%; width:12px; height:12px; background: radial-gradient(circle, #e8c060 0%, #a08040 60%); border-radius: 50%; box-shadow: 0 0 30px 10px #a08040, 0 0 60px 20px rgba(160,128,64,.3); animation: cs-lamp 6s ease-in-out infinite alternate; }
.scn-cork-street-closed .porter-silhouette { position:absolute; bottom:28%; left:52%; width:22px; height:50px; background: linear-gradient(180deg, #1a1612 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-porter 8s ease-in-out infinite; }
.scn-cork-street-closed .coat-stand { position:absolute; bottom:30%; left:20%; width:18px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: cs-stand 15s ease-in-out infinite alternate; }
@keyframes cs-wall { 0% { opacity:.95; } 50% { opacity:1; } 100% { opacity:.92; } }
@keyframes cs-floor { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes cs-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01) translateY(-1px); } 100% { transform: scaleX(1); } }
@keyframes cs-lamp { 0% { box-shadow: 0 0 20px 6px #a08040, 0 0 40px 12px rgba(160,128,64,.2); opacity:.85; } 50% { box-shadow: 0 0 40px 14px #d0a050, 0 0 80px 24px rgba(208,160,80,.5); opacity:1; } 100% { box-shadow: 0 0 24px 8px #a08040, 0 0 48px 16px rgba(160,128,64,.3); opacity:.9; } }
@keyframes cs-porter { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes cs-stand { 0% { transform: rotate(0); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0); } }

.scn-uncle-news-rannoch { background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 50%, #c0b098 100%), radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 60%); }
.scn-uncle-news-rannoch .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.1); animation: un-wall 10s ease-in-out infinite alternate; }
.scn-uncle-news-rannoch .window-light { position:absolute; top:8%; right:12%; width:90px; height:120px; background: linear-gradient(180deg, #f8f0d0 0%, #e8d8b0 100%); border-radius: 6px; box-shadow: 0 0 60px 30px rgba(248,240,208,.3); animation: un-window 8s ease-in-out infinite alternate; }
.scn-uncle-news-rannoch .chair-left { position:absolute; bottom:25%; left:22%; width:60px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 4px 6px 12px rgba(0,0,0,.3); animation: un-chair 9s ease-in-out infinite alternate; }
.scn-uncle-news-rannoch .chair-right { position:absolute; bottom:25%; right:22%; width:60px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: -4px 6px 12px rgba(0,0,0,.3); animation: un-chair 9s ease-in-out infinite alternate-reverse; }
.scn-uncle-news-rannoch .figure-uncle { position:absolute; bottom:22%; left:26%; width:28px; height:60px; background: linear-gradient(180deg, #2a221a 0%, #1a120e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: un-figure1 4s ease-in-out infinite; }
.scn-uncle-news-rannoch .figure-narrator { position:absolute; bottom:22%; right:26%; width:26px; height:58px; background: linear-gradient(180deg, #1e1a16 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: un-figure2 4.5s ease-in-out infinite; }
.scn-uncle-news-rannoch .newspaper-flutter { position:absolute; bottom:38%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: un-news 3s ease-in-out infinite alternate; }
@keyframes un-wall { 0% { opacity:.95; } 50% { opacity:1; } 100% { opacity:.92; } }
@keyframes un-window { 0% { opacity:.8; box-shadow: 0 0 30px 15px rgba(248,240,208,.2); } 50% { opacity:1; box-shadow: 0 0 70px 35px rgba(248,240,208,.4); } 100% { opacity:.85; box-shadow: 0 0 40px 20px rgba(248,240,208,.25); } }
@keyframes un-chair { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes un-figure1 { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(4px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-4px) translateY(-1px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes un-figure2 { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes un-news { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(4deg) scale(1.02); } 100% { transform: rotate(0) scale(1); } }

.scn-flight-details { background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 50%, #c8b098 100%), radial-gradient(ellipse at 80% 50%, #fff8e8 0%, transparent 60%); }
.scn-flight-details .foyer-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e8d8c0 0%, #d0c0a8 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.1); animation: fd-wall 6s ease-in-out infinite alternate; }
.scn-flight-details .door-open { position:absolute; bottom:25%; right:10%; width:70px; height:140px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 4px 4px 0; box-shadow: -4px 0 10px rgba(0,0,0,.5); transform-origin: left center; animation: fd-door 2.5s ease-in-out infinite alternate; }
.scn-flight-details .figure-leaving { position:absolute; bottom:28%; left:32%; width:24px; height:56px; background: linear-gradient(180deg, #2a1a14 0%, #120a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fd-leave 3s ease-in-out infinite; }
.scn-flight-details .figure-holding { position:absolute; bottom:28%; right:35%; width:26px; height:54px; background: linear-gradient(180deg, #1e160e 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fd-hold 3.5s ease-in-out infinite alternate; }
.scn-flight-details .suitcase-drop { position:absolute; bottom:20%; left:45%; width:30px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 2px 4px 8px rgba(0,0,0,.4); animation: fd-suitcase 4s ease-in-out infinite; }
.scn-flight-details .telegram-scatter { position:absolute; bottom:18%; left:30%; width:20px; height:12px; background: #f0e8d0; border-radius: 1px; box-shadow: 0 0 4px rgba(0,0,0,.2); animation: fd-telegram 5s ease-in-out infinite alternate; }
@keyframes fd-wall { 0% { opacity:.92; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes fd-door { 0% { transform: rotate(0deg); } 50% { transform: rotate(-12deg); } 100% { transform: rotate(0deg); } }
@keyframes fd-leave { 0% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(20px) translateY(-3px) rotate(5deg); } 70% { transform: translateX(40px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(60px) translateY(0) rotate(0); } }
@keyframes fd-hold { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-5px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes fd-suitcase { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(8px) translateY(-4px) rotate(10deg); } 50% { transform: translateX(16px) translateY(0) rotate(0); } 75% { transform: translateX(8px) translateY(-3px) rotate(-10deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes fd-telegram { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-10px) rotate(15deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-same-people { background: linear-gradient(180deg, #e8e0d0 0%, #c4b8a4 40%, #9a8c7a 100%), radial-gradient(ellipse at 60% 80%, #c4b8a4 0%, transparent 60%); }
.scn-same-people .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #d8cfc0 0%, #b8a894 50%, #8a7c6a 100%); }
.scn-same-people .window-frame { position:absolute; top:8%; left:55%; width:28%; height:45%; border:6px solid #5a4e3e; background: radial-gradient(circle at 50% 40%, #b8c8d0 0%, #7a8a94 100%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.3), 0 6px 12px rgba(0,0,0,.4); animation: sp-window 6s ease-in-out infinite alternate; }
.scn-same-people .table { position:absolute; bottom:18%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #6b5e4a 0%, #4a3e2e 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: perspective(600px) rotateX(2deg); }
.scn-same-people .figure-left { position:absolute; bottom:22%; left:30%; width:12%; height:35%; background: linear-gradient(135deg, #2a2420 0%, #161210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sp-fig-l 5s ease-in-out infinite; }
.scn-same-people .figure-right { position:absolute; bottom:24%; left:56%; width:13%; height:38%; background: linear-gradient(135deg, #3a3028 0%, #1a1612 100%); border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%; transform-origin: bottom center; animation: sp-fig-r 4.5s ease-in-out infinite; }
.scn-same-people .lamp-glow { position:absolute; top:15%; left:42%; width:8%; height:6%; background: radial-gradient(circle, #ffda80 0%, #c8a050 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,218,128,.4); animation: sp-lamp 3s ease-in-out infinite alternate; }
.scn-same-people .shadow-pool { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.4) 0%, transparent 70%); animation: sp-shadow 8s ease-in-out infinite alternate; }
@keyframes sp-window { 0% { opacity:.85; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.9; transform: scale(.98) } }
@keyframes sp-fig-l { 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 sp-fig-r { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sp-lamp { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(1) } }
@keyframes sp-shadow { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.5; transform: translateY(4px) } 100% { opacity:.3; transform: translateY(0) } }

.scn-woodroffe-names { background: linear-gradient(180deg, #c8bcb0 0%, #a89a88 40%, #7a6c5a 100%), radial-gradient(ellipse at 30% 90%, #a89a88 0%, transparent 60%); }
.scn-woodroffe-names .bg-cabin { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #b8a898 0%, #9a8a7a 50%, #6a5a4a 100%); }
.scn-woodroffe-names .desk { position:absolute; bottom:25%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #6b4e3a 0%, #4a3322 100%); border-radius:6px; box-shadow: 0 6px 12px rgba(0,0,0,.5); transform: perspective(800px) rotateX(5deg); }
.scn-woodroffe-names .map { position:absolute; bottom:30%; left:25%; width:20%; height:18%; background: linear-gradient(135deg, #d8c8a8 0%, #b8a080 50%, #8a7058 100%); border-radius:2px; transform: rotate(2deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: wn-map 12s ease-in-out infinite alternate; }
.scn-woodroffe-names .model-yacht { position:absolute; bottom:38%; left:52%; width:14%; height:10%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform-origin: bottom center; animation: wn-yacht 8s ease-in-out infinite; }
.scn-woodroffe-names .figure-desk { position:absolute; bottom:24%; left:16%; width:14%; height:34%; background: linear-gradient(180deg, #2a2420 0%, #161210 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: wn-fig 5s ease-in-out infinite; }
.scn-woodroffe-names .lamp-desk { position:absolute; bottom:36%; left:58%; width:8%; height:12%; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #c89050 60%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 10px rgba(255,208,128,.5); animation: wn-lamp 4s ease-in-out infinite alternate; }
.scn-woodroffe-names .book { position:absolute; bottom:26%; left:64%; width:6%; height:8%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius:2px; transform: rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: wn-book 10s ease-in-out infinite alternate; }
@keyframes wn-map { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(-1deg) scale(1) } }
@keyframes wn-yacht { 0% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(0deg) translateY(-2px) } 50% { transform: rotate(3deg) translateY(0) } 75% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes wn-fig { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wn-lamp { 0% { opacity:.8; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.85; transform: scale(1) } }
@keyframes wn-book { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }

.scn-durnford-upset { background: linear-gradient(180deg, #e0d6c8 0%, #c4b8a4 40%, #9a8c7a 100%), radial-gradient(ellipse at 50% 70%, #c4b8a4 0%, transparent 60%); }
.scn-durnford-upset .room-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(135deg, #d0c0b0 0%, #a89880 50%, #7a6a5a 100%); }
.scn-durnford-upset .dining-table { position:absolute; bottom:10%; left:15%; width:70%; height:14%; background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%); border-radius:8px; box-shadow: 0 8px 16px rgba(0,0,0,.5); transform: perspective(800px) rotateX(3deg); }
.scn-durnford-upset .chair-empty { position:absolute; bottom:14%; left:48%; width:12%; height:20%; background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: du-chair 7s ease-in-out infinite; }
.scn-durnford-upset .figure-seated { position:absolute; bottom:16%; left:24%; width:14%; height:34%; background: linear-gradient(180deg, #3a3430 0%, #1a1612 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: du-seat 5s ease-in-out infinite; }
.scn-durnford-upset .figure-standing { position:absolute; bottom:20%; left:60%; width:12%; height:40%; background: linear-gradient(180deg, #4a4038 0%, #1a1612 100%); border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%; transform-origin: bottom center; animation: du-stand 4s ease-in-out infinite; }
.scn-durnford-upset .pendant-lamp { position:absolute; top:8%; left:36%; width:16%; height:8%; background: radial-gradient(ellipse at 50% 0%, #ffda80 0%, #c8a050 60%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 60px 20px rgba(255,218,128,.4); transform-origin: top center; animation: du-lamp 4s ease-in-out infinite alternate; }
.scn-durnford-upset .plate { position:absolute; bottom:14%; left:32%; width:10%; height:4%; background: radial-gradient(circle, #e8d8c0 0%, #c0b0a0 70%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: du-plate 9s ease-in-out infinite alternate; }
.scn-durnford-upset .glass { position:absolute; bottom:18%; left:40%; width:4%; height:8%; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(200,180,160,.2) 100%); border-radius: 0 0 30% 30%; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: du-glass 6s ease-in-out infinite; }
@keyframes du-chair { 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(0) } }
@keyframes du-seat { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-1px) rotate(-1deg) } 60% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes du-stand { 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(0) } }
@keyframes du-lamp { 0% { transform: rotate(-3deg); opacity:.8 } 50% { transform: rotate(0deg); opacity:1 } 100% { transform: rotate(3deg); opacity:.85 } }
@keyframes du-plate { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.02) rotate(2deg) } 100% { transform: scale(1) rotate(-2deg) } }
@keyframes du-glass { 0% { transform: translateY(0) rotate(0); opacity:.6 } 50% { transform: translateY(-2px) rotate(3deg); opacity:.8 } 100% { transform: translateY(0) rotate(0); opacity:.6 } }

.scn-after-theater { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 40%, #3a3a5a 100%), radial-gradient(ellipse at 50% 0%, #3a3a5a 0%, transparent 70%); }
.scn-after-theater .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #2a2a4a 100%); animation: at-sky 20s ease-in-out infinite alternate; }
.scn-after-theater .street { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-after-theater .pillar-left { position:absolute; bottom:0; left:10%; width:8%; height:70%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 4px 0 12px rgba(0,0,0,.5); }
.scn-after-theater .pillar-right { position:absolute; bottom:0; right:10%; width:8%; height:70%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: -4px 0 12px rgba(0,0,0,.5); }
.scn-after-theater .wicker-chair { position:absolute; bottom:12%; left:38%; width:20%; height:18%; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); animation: at-chair 9s ease-in-out infinite; }
.scn-after-theater .figure-smoking { position:absolute; bottom:18%; left:40%; width:14%; height:36%; background: linear-gradient(180deg, #2a2420 0%, #161210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: at-fig 5s ease-in-out infinite; }
.scn-after-theater .cigar-glow { position:absolute; bottom:32%; left:46%; width:4%; height:4%; background: radial-gradient(circle, #ff7040 0%, #e04020 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 16px 4px rgba(255,112,64,.6); animation: at-cigar 2s ease-in-out infinite alternate; }
.scn-after-theater .street-lamp { position:absolute; bottom:40%; left:48%; width:6%; height:14%; background: radial-gradient(ellipse at 50% 30%, #ffda80 0%, #c8a050 60%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 80px 30px rgba(255,218,128,.3); animation: at-lamp 4s ease-in-out infinite alternate; }
@keyframes at-sky { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.75 } }
@keyframes at-chair { 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(0) } }
@keyframes at-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(0) } }
@keyframes at-cigar { 0% { opacity:.6; transform: scale(.95) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(1) } }
@keyframes at-lamp { 0% { opacity:.7; transform: scale(.95) rotate(-1deg) } 50% { opacity:1; transform: scale(1.05) rotate(0) } 100% { opacity:.8; transform: scale(1) rotate(1deg) } }

/* mystery-deepens */
.scn-mystery-deepens {
  background: 
    linear-gradient(180deg, #2a1633 0%, #5e2b3a 30%, #a84f3a 60%, #d97a3a 80%, #e8a040 100%),
    radial-gradient(ellipse at 50% 0%, #f4b855 0%, transparent 60%);
}
.scn-mystery-deepens .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1e1028 0%, #4a1a2e 40%, transparent 100%);
  animation: md-sky 12s ease-in-out infinite alternate;
}
.scn-mystery-deepens .sun {
  position: absolute; bottom: 42%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f4c860 0%, #e08030 50%, transparent 70%);
  border-radius: 50%;
  animation: md-sun 10s ease-in-out infinite alternate;
}
.scn-mystery-deepens .cloud-a,
.scn-mystery-deepens .cloud-b {
  position: absolute; height: 20px; background: linear-gradient(180deg, rgba(255,210,150,0.6) 0%, rgba(255,180,100,0.1) 100%);
  filter: blur(5px); border-radius: 50%;
}
.scn-mystery-deepens .cloud-a { top: 14%; left: -10%; width: 120px; animation: md-drift-a 45s linear infinite; }
.scn-mystery-deepens .cloud-b { top: 22%; left: 30%; width: 80px; animation: md-drift-b 55s linear infinite reverse; }
.scn-mystery-deepens .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a28 100%);
  animation: md-wave 6s ease-in-out infinite;
}
.scn-mystery-deepens .yacht {
  position: absolute; bottom: 28%; left: 30%; width: 140px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 0 0 30% 30% / 0 0 100% 100%;
  clip-path: polygon(5% 0%, 40% 100%, 60% 100%, 95% 0%);
  animation: md-bob 9s ease-in-out infinite;
}
.scn-mystery-deepens .fishing-boat {
  position: absolute; bottom: 30%; right: 15%; width: 60px; height: 30px;
  background: linear-gradient(135deg, #2e1a12 0%, #1a0e0a 100%);
  border-radius: 0 0 40% 40%;
  animation: md-bob 11s ease-in-out infinite 0.5s;
}
.scn-mystery-deepens .figure {
  position: absolute; bottom: 32%; left: 42%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a121a 0%, #0a060a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-figure 5s ease-in-out infinite;
}
.scn-mystery-deepens .bandage {
  position: absolute; bottom: 52%; left: 42%; width: 10px; height: 4px;
  background: #6a2a1a;
  border-radius: 20%;
  transform: rotate(-20deg);
  animation: md-bandage 5s ease-in-out infinite;
}
@keyframes md-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes md-sun { 0% { transform: translateX(-50%) scale(1); opacity: 0.8; } 50% { transform: translateX(-50%) translateY(-8px) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.9; } }
@keyframes md-drift-a { 0% { transform: translateX(0); } 50% { transform: translateX(70vw); } 100% { transform: translateX(140vw); } }
@keyframes md-drift-b { 0% { transform: translateX(0); } 50% { transform: translateX(-60vw); } 100% { transform: translateX(-120vw); } }
@keyframes md-wave { 0% { transform: translateY(0px) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0px) } }
@keyframes md-bob { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes md-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes md-bandage { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.1); } 100% { transform: rotate(-20deg) scaleX(1); } }

/* board-yacht-dinner */
.scn-board-yacht-dinner {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #8a5a3a 60%, #b07a5a 100%),
    radial-gradient(ellipse at 50% 30%, #f0c8a8 0%, transparent 50%);
}
.scn-board-yacht-dinner .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: byd-deck 8s ease-in-out infinite;
}
.scn-board-yacht-dinner .awning {
  position: absolute; top: 5%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(135deg, #f0e0c8 0%, #d0b898 50%, #b09878 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  transform-origin: top center;
  animation: byd-awning 12s ease-in-out infinite alternate;
}
.scn-board-yacht-dinner .chair {
  position: absolute; bottom: 12%; left: 45%; width: 50px; height: 70px;
  background: repeating-linear-gradient(45deg, #6a5a4a 0px, #6a5a4a 2px, #5a4a3a 2px, #5a4a3a 4px);
  border-radius: 10% 10% 0 0;
  transform-origin: bottom center;
  animation: byd-chair 9s ease-in-out infinite;
}
.scn-board-yacht-dinner .figure-standing {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: byd-stand 6s ease-in-out infinite;
}
.scn-board-yacht-dinner .figure-seated {
  position: absolute; bottom: 14%; left: 45%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: byd-seated 7s ease-in-out infinite 0.5s;
}
.scn-board-yacht-dinner .lamp {
  position: absolute; top: 10%; left: 48%; width: 14px; height: 18px;
  background: radial-gradient(circle at 50% 100%, #f0d080 0%, #d0a060 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(240,208,128,0.4);
  animation: byd-lamp 4s ease-in-out infinite alternate;
}
.scn-board-yacht-dinner .table {
  position: absolute; bottom: 12%; left: 40%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 20%;
  animation: byd-table 10s ease-in-out infinite;
}
.scn-board-yacht-dinner .railing {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 6px;
  background: #4a3a2a;
  animation: byd-rail 12s ease-in-out infinite;
}
@keyframes byd-deck { 0% { transform: skewX(0deg); } 50% { transform: skewX(1deg); } 100% { transform: skewX(0deg); } }
@keyframes byd-awning { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes byd-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes byd-stand { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes byd-seated { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes byd-lamp { 0% { box-shadow: 0 0 20px 8px rgba(240,208,128,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 40px 16px rgba(240,208,128,0.6); opacity: 1; } 100% { box-shadow: 0 0 25px 10px rgba(240,208,128,0.5); opacity: 0.9; } }
@keyframes byd-table { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes byd-rail { 0% { opacity: 1; } 50% { opacity: 0.7; } 100% { opacity: 1; } }

/* dinner-talk-yacht */
.scn-dinner-talk-yacht {
  background: 
    linear-gradient(180deg, #f0e0c8 0%, #d0b898 30%, #a08060 60%, #806040 100%),
    radial-gradient(ellipse at 50% 0%, #fff4e8 0%, transparent 60%);
}
.scn-dinner-talk-yacht .wall {
  position: absolute; inset: 0 0 30% 0;
  background: repeating-linear-gradient(90deg, #b8a088 0px, #b8a088 2px, #a09078 2px, #a09078 4px);
  opacity: 0.3;
  animation: dty-wall 20s linear infinite;
}
.scn-dinner-talk-yacht .table {
  position: absolute; bottom: 20%; left: 50%; width: 160px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 40% / 60%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: dty-table 10s ease-in-out infinite;
}
.scn-dinner-talk-yacht .chair-left,
.scn-dinner-talk-yacht .chair-right {
  position: absolute; bottom: 18%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-dinner-talk-yacht .chair-left { left: 20%; animation: dty-chair-l 8s ease-in-out infinite; }
.scn-dinner-talk-yacht .chair-right { right: 20%; animation: dty-chair-r 8s ease-in-out infinite 0.5s; }
.scn-dinner-talk-yacht .flowers {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 40px;
  background: radial-gradient(circle, #f0b0a0 0%, #d08060 50%, transparent 70%);
  border-radius: 50%;
  animation: dty-flowers 6s ease-in-out infinite;
}
.scn-dinner-talk-yacht .vase {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-dinner-talk-yacht .window {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 25%;
  background: radial-gradient(ellipse, #2a1a1a 0%, #0a0606 100%);
  border: 6px solid #4a3a2a;
  border-radius: 4%;
  animation: dty-window 12s ease-in-out infinite alternate;
}
.scn-dinner-talk-yacht .light {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 60px; height: 40px;
  background: radial-gradient(circle at 50% 100%, #f0d888 0%, transparent 70%);
  animation: dty-light 5s ease-in-out infinite alternate;
}
.scn-dinner-talk-yacht .silver-left,
.scn-dinner-talk-yacht .silver-right {
  position: absolute; bottom: 26%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 20%;
}
.scn-dinner-talk-yacht .silver-left { left: 38%; transform: rotate(-15deg); animation: dty-silver-l 7s ease-in-out infinite; }
.scn-dinner-talk-yacht .silver-right { right: 38%; transform: rotate(15deg); animation: dty-silver-r 7s ease-in-out infinite 0.3s; }
@keyframes dty-wall { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }
@keyframes dty-table { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.01); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes dty-chair-l { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes dty-chair-r { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes dty-flowers { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes dty-window { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes dty-light { 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(1); } }
@keyframes dty-silver-l { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes dty-silver-r { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

/* customs-bribe-suspicion */
.scn-customs-bribe-suspicion {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1e12 30%, #1a120a 60%, #0e0a06 100%),
    radial-gradient(ellipse at 50% 0%, #6a4a2a 0%, transparent 60%);
}
.scn-customs-bribe-suspicion .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
  animation: cbs-desk 8s ease-in-out infinite;
}
.scn-customs-bribe-suspicion .envelope {
  position: absolute; bottom: 25%; left: 45%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #c8a888 0%, #a88868 100%);
  border-radius: 4%;
  transform-origin: center;
  animation: cbs-envelope 6s ease-in-out infinite;
}
.scn-customs-bribe-suspicion .money-stack {
  position: absolute; bottom: 28%; left: 48%; width: 30px; height: 15px;
  background: repeating-linear-gradient(0deg, #a89878 0px, #a89878 3px, #b8a888 3px, #b8a888 6px);
  border-radius: 2px;
  animation: cbs-money 7s ease-in-out infinite 0.5s;
}
.scn-customs-bribe-suspicion .hand {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a121a 0%, #0a060a 100%);
  border-radius: 60% 40% 30% 50% / 40% 40% 60% 60%;
  transform-origin: bottom left;
  animation: cbs-hand 5s ease-in-out infinite;
}
.scn-customs-bribe-suspicion .lamp-spot {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #f0c060 0%, transparent 70%);
  animation: cbs-lamp 4s ease-in-out infinite alternate;
}
.scn-customs-bribe-suspicion .shadow-figure {
  position: absolute; bottom: 10%; right: 10%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #0a060a 0%, #000 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  filter: blur(8px);
  opacity: 0.6;
  animation: cbs-shadow 10s ease-in-out infinite;
}
.scn-customs-bribe-suspicion .window-bar {
  position: absolute; top: 2%; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, #1a121a 30px, #1a121a 32px);
  animation: cbs-bars 20s linear infinite;
}
@keyframes cbs-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes cbs-envelope { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(3deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes cbs-money { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cbs-hand { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cbs-lamp { 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(1); } }
@keyframes cbs-shadow { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-10px) scale(1.05); opacity: 0.7; } 100% { transform: translateY(0) scale(1); opacity: 0.5; } }
@keyframes cbs-bars { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }

/* consulate-mysterious-yacht – calm bright interior with harbor view */
.scn-consulate-mysterious-yacht {
  background: 
    linear-gradient(180deg, #f5f0e0 0%, #dcd4c0 100%),
    radial-gradient(ellipse at 60% 20%, #e8e0cc 0%, transparent 80%);
}
.scn-consulate-mysterious-yacht .bg-walls {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #f0e8d8 0%, #e0d4b8 50%, #f0e8d8 100%);
  box-shadow: inset 0 0 60px rgba(120,100,70,0.12);
  animation: cym-walls 20s ease-in-out infinite alternate;
}
.scn-consulate-mysterious-yacht .window {
  position: absolute; top: 12%; left: 58%; width: 100px; height: 130px;
  background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 100%);
  border-radius: 8% 8% 6% 6%;
  box-shadow: inset 0 0 30px #b0d0e0, 0 4px 12px rgba(0,0,0,0.15);
  animation: cym-window 8s ease-in-out infinite alternate;
}
.scn-consulate-mysterious-yacht .yacht {
  position: absolute; top: 20%; left: 55%; width: 60px; height: 30px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  clip-path: polygon(10% 60%, 10% 30%, 25% 20%, 40% 20%, 60% 15%, 80% 15%, 90% 25%, 90% 55%, 80% 70%, 20% 70%);
  animation: cym-yacht 15s ease-in-out infinite alternate;
  filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.2));
}
.scn-consulate-mysterious-yacht .desk {
  position: absolute; bottom: 18%; left: 10%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #8b7355 0%, #6b5340 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: cym-desk 12s ease-in-out infinite alternate;
}
.scn-consulate-mysterious-yacht .chair {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cym-chair 4s ease-in-out infinite;
}
.scn-consulate-mysterious-yacht .clerk {
  position: absolute; bottom: 20%; left: 14%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #d4b48a 0%, #b09070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cym-clerk 6s ease-in-out infinite;
}
.scn-consulate-mysterious-yacht .lamp {
  position: absolute; top: 30%; left: 8%; width: 16px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #ffe0a0 0%, #d0b070 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,0.3);
  animation: cym-lamp 3s ease-in-out infinite alternate;
}
.scn-consulate-mysterious-yacht .paper {
  position: absolute; bottom: 22%; left: 15%; width: 20px; height: 14px;
  background: #f0e8d0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: cym-paper 5s ease-in-out infinite alternate;
}

@keyframes cym-walls { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cym-window { 0% { transform: scaleY(1); box-shadow: inset 0 0 30px #b0d0e0; } 50% { transform: scaleY(1.03); box-shadow: inset 0 0 40px #c0e0f0; } 100% { transform: scaleY(0.97); box-shadow: inset 0 0 25px #a0c0d0; } }
@keyframes cym-yacht { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes cym-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cym-chair { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } }
@keyframes cym-clerk { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes cym-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 6px rgba(255,200,100,0.2); } 50% { opacity: 1; box-shadow: 0 0 40px 14px rgba(255,200,100,0.4); } 100% { opacity: 0.75; box-shadow: 0 0 25px 8px rgba(255,200,100,0.25); } }
@keyframes cym-paper { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(-3deg); } 100% { transform: translateX(-2px) rotate(2deg); } }

/* consulate-mad-stoker – tense bright interior with harsh shadows */
.scn-consulate-mad-stoker {
  background: 
    linear-gradient(180deg, #e8e0d0 0%, #d0c0a8 100%),
    radial-gradient(ellipse at 40% 60%, #c8b8a0 0%, transparent 70%);
}
.scn-consulate-mad-stoker .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8cfbf 0%, #c0b5a0 100%);
  box-shadow: inset 0 0 80px rgba(60,40,20,0.1);
  animation: cms-wall 15s ease-in-out infinite alternate;
}
.scn-consulate-mad-stoker .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a09078 0%, #8a7a62 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  animation: cms-floor 12s ease-in-out infinite alternate;
}
.scn-consulate-mad-stoker .mad-stoker {
  position: absolute; bottom: 20%; left: 40%; width: 36px; height: 68px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cms-mad 0.8s ease-in-out infinite;
}
.scn-consulate-mad-stoker .captain {
  position: absolute; bottom: 18%; left: 25%; width: 34px; height: 64px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cms-captain 1.2s ease-in-out infinite alternate;
}
.scn-consulate-mad-stoker .door {
  position: absolute; bottom: 20%; right: 12%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a42 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
  animation: cms-door 20s ease-in-out infinite;
}
.scn-consulate-mad-stoker .shadow-left {
  position: absolute; bottom: 18%; left: 20%; width: 50px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: cms-shadow 3s ease-in-out infinite alternate;
}
.scn-consulate-mad-stoker .shadow-right {
  position: absolute; bottom: 18%; right: 18%; width: 40px; height: 35px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%);
  filter: blur(6px);
  animation: cms-shadow 3s ease-in-out infinite alternate-reverse;
}
.scn-consulate-mad-stoker .desk {
  position: absolute; bottom: 22%; left: 55%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #9a8a72 0%, #7a6a52 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: cms-desk 5s ease-in-out infinite alternate;
}

@keyframes cms-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes cms-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cms-mad { 0% { transform: translateX(0) rotate(0deg) scale(1,1); } 25% { transform: translateX(8px) rotate(5deg) scale(1.05,0.95); } 50% { transform: translateX(0) rotate(0deg) scale(1,1); } 75% { transform: translateX(-8px) rotate(-5deg) scale(0.95,1.05); } 100% { transform: translateX(0) rotate(0deg) scale(1,1); } }
@keyframes cms-captain { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes cms-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1.02); } }
@keyframes cms-shadow { 0% { transform: scaleX(1) scaleY(0.8); opacity: 0.5; } 50% { transform: scaleX(1.2) scaleY(1.1); opacity: 1; } 100% { transform: scaleX(0.9) scaleY(0.7); opacity: 0.6; } }
@keyframes cms-desk { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

/* hornby-introduction – warm bright interior, welcoming */
.scn-hornby-introduction {
  background: 
    linear-gradient(180deg, #f8f0e0 0%, #ede0c8 100%),
    radial-gradient(ellipse at 70% 30%, #f0e0c0 0%, transparent 80%);
}
.scn-hornby-introduction .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e6d0 0%, #e0d0b8 100%);
  box-shadow: inset 0 0 50px rgba(150,100,50,0.08);
  animation: hin-room 20s ease-in-out infinite alternate;
}
.scn-hornby-introduction .doorway {
  position: absolute; bottom: 14%; right: 15%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09078 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.15);
  animation: hin-doorway 10s ease-in-out infinite alternate;
}
.scn-hornby-introduction .hornby {
  position: absolute; bottom: 18%; right: 20%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #8a7a62 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hin-hornby 6s ease-in-out infinite alternate;
}
.scn-hornby-introduction .narrator-seated {
  position: absolute; bottom: 16%; left: 25%; width: 34px; height: 56px;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: hin-narrator 4s ease-in-out infinite;
}
.scn-hornby-introduction .chair {
  position: absolute; bottom: 14%; left: 28%; width: 44px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hin-chair 8s ease-in-out infinite alternate;
}
.scn-hornby-introduction .desk {
  position: absolute; bottom: 20%; left: 12%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #8b7355 0%, #6b5340 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: hin-desk 12s ease-in-out infinite alternate;
}
.scn-hornby-introduction .smoke {
  position: absolute; top: 40%; left: 22%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,160,0.4) 0%, transparent 80%);
  filter: blur(6px);
  animation: hin-smoke 4s ease-out infinite;
}
.scn-hornby-introduction .lamp {
  position: absolute; top: 20%; left: 10%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 20%, #ffe0a0 0%, #d0b870 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 40px 12px rgba(255,200,100,0.35);
  animation: hin-lamp 3s ease-in-out infinite alternate;
}

@keyframes hin-room { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hin-doorway { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes hin-hornby { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes hin-narrator { 0%, 100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 75% { transform: rotate(-2deg) translateY(1px); } }
@keyframes hin-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes hin-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hin-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.3; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }
@keyframes hin-lamp { 0% { opacity: 0.8; box-shadow: 0 0 30px 8px rgba(255,200,100,0.3); } 50% { opacity: 1; box-shadow: 0 0 50px 16px rgba(255,200,100,0.5); } 100% { opacity: 0.85; box-shadow: 0 0 35px 10px rgba(255,200,100,0.35); } }

/* letters-thanks-leghorn – calm bright study, writing letters */
.scn-letters-thanks-leghorn {
  background: 
    linear-gradient(180deg, #f5f0e0 0%, #e8e0d0 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8d8 0%, transparent 80%);
}
.scn-letters-thanks-leghorn .bg-study {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d4c0 100%);
  box-shadow: inset 0 0 40px rgba(100,80,50,0.08);
  animation: ltl-study 18s ease-in-out infinite alternate;
}
.scn-letters-thanks-leghorn .window {
  position: absolute; top: 14%; left: 10%; width: 90px; height: 120px;
  background: linear-gradient(180deg, #d0e0f0 0%, #b0c8e0 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 30px #c0d8e8, 0 4px 12px rgba(0,0,0,0.1);
  animation: ltl-window 8s ease-in-out infinite alternate;
}
.scn-letters-thanks-leghorn .desk {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #8b7355 0%, #6b5340 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: ltl-desk 12s ease-in-out infinite alternate;
}
.scn-letters-thanks-leghorn .inkwell {
  position: absolute; bottom: 28%; left: 28%; width: 12px; height: 16px;
  background: #2a1a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 6px 2px rgba(0,0,0,0.2);
  animation: ltl-inkwell 20s ease-in-out infinite;
}
.scn-letters-thanks-leghorn .paper-sheet {
  position: absolute; bottom: 24%; left: 35%; width: 30px; height: 20px;
  background: #f8f0e0;
  border-radius: 2px;
  transform: rotate(2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: ltl-paper 6s ease-in-out infinite alternate;
}
.scn-letters-thanks-leghorn .hand {
  position: absolute; bottom: 22%; left: 38%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #e0c8a8 0%, #c0a888 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: ltl-hand 3s ease-in-out infinite alternate;
}
.scn-letters-thanks-leghorn .chair {
  position: absolute; bottom: 16%; left: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ltl-chair 7s ease-in-out infinite alternate;
}
.scn-letters-thanks-leghorn .seal-stamp {
  position: absolute; bottom: 26%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d48a6a 0%, #a06040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ltl-stamp 10s ease-in-out infinite alternate;
}

@keyframes ltl-study { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ltl-window { 0% { transform: scaleY(1); box-shadow: inset 0 0 30px #c0d8e8; } 50% { transform: scaleY(1.02); box-shadow: inset 0 0 40px #d0e0f0; } 100% { transform: scaleY(0.98); box-shadow: inset 0 0 25px #b0c8d8; } }
@keyframes ltl-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ltl-inkwell { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes ltl-paper { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(4deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(-1px); } }
@keyframes ltl-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(2deg); } }
@keyframes ltl-chair { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes ltl-stamp { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(0.95) rotate(-5deg); } }

.scn-devotion-questioned {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 40%, #0d0d0d 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-devotion-questioned .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.6); animation: dq-wall 20s ease-in-out infinite alternate; }
.scn-devotion-questioned .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #0f0a05 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 15px rgba(0,0,0,.8); }
.scn-devotion-questioned .lamp { position:absolute; bottom:35%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(circle at 50% 80%, #ffcc80 0%, #b08040 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px 8px #c09040, 0 0 40px 16px rgba(192,144,64,.3); animation: dq-lamp 2s ease-in-out infinite alternate; }
.scn-devotion-questioned .light-cone { position:absolute; bottom:30%; left:42%; width:16%; height:40%; background: linear-gradient(180deg, rgba(255,210,140,.15) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 55% 100%, 45% 100%); transform-origin: top center; animation: dq-light 4s ease-in-out infinite alternate; }
.scn-devotion-questioned .figure-left { position:absolute; bottom:30%; left:30%; width:22px; height:40px; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dq-figureL 5s ease-in-out infinite; }
.scn-devotion-questioned .figure-right { position:absolute; bottom:30%; right:30%; width:24px; height:42px; background: linear-gradient(135deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dq-figureR 6s ease-in-out infinite; }
.scn-devotion-questioned .desk { position:absolute; bottom:22%; left:20%; right:20%; height:14%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 8px 12px rgba(0,0,0,.5); }
@keyframes dq-wall { 0%,100% { opacity:1 } 50% { opacity:.85 } }
@keyframes dq-lamp { 0% { box-shadow: 0 0 16px 6px #c09040, 0 0 32px 10px rgba(192,144,64,.3); opacity:.9 } 50% { box-shadow: 0 0 28px 12px #ffd080, 0 0 50px 20px rgba(255,208,128,.5); opacity:1 } 100% { box-shadow: 0 0 20px 8px #c09040, 0 0 36px 12px rgba(192,144,64,.35); opacity:.92 } }
@keyframes dq-light { 0% { transform: rotate(-2deg) scaleY(1); opacity:.8 } 50% { transform: rotate(2deg) scaleY(1.05); opacity:1 } 100% { transform: rotate(-1deg) scaleY(.98); opacity:.85 } }
@keyframes dq-figureL { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(1px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dq-figureR { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-rewards-unknown {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0f0f0f 100%),
              radial-gradient(ellipse at 40% 70%, #1a2a3a 0%, transparent 60%);
}
.scn-rewards-unknown .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #12121a 0%, #080810 100%); box-shadow: inset 0 15px 30px rgba(0,0,0,.7); }
.scn-rewards-unknown .desk { position:absolute; bottom:18%; left:20%; right:20%; height:16%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,.6); }
.scn-rewards-unknown .candle { position:absolute; bottom:34%; left:40%; width:12px; height:30px; background: linear-gradient(180deg, #f5e6c8 0%, #c8b090 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px 4px #806040; animation: ru-candle 3s ease-in-out infinite; }
.scn-rewards-unknown .flame { position:absolute; bottom:48%; left:40%; width:8px; height:12px; transform:translateX(50%); background: radial-gradient(circle at 50% 100%, #ffaa50 0%, #ff6600 60%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 10px #ff8800; animation: ru-flame 1.5s ease-in-out infinite alternate; }
.scn-rewards-unknown .shadow-figure { position:absolute; bottom:18%; right:28%; width:30px; height:70px; background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ru-shadow 7s ease-in-out infinite alternate; }
.scn-rewards-unknown .map { position:absolute; bottom:20%; left:25%; width:60px; height:40px; background: linear-gradient(135deg, #d4c494 0%, #b8a070 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.4); transform-origin: center left; animation: ru-map 12s ease-in-out infinite; }
.scn-rewards-unknown .hand { position:absolute; bottom:22%; left:32%; width:18px; height:22px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ru-hand 4s ease-in-out infinite; }
@keyframes ru-candle { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.02) } }
@keyframes ru-flame { 0% { transform: scaleY(1) rotate(-5deg); opacity:.9 } 50% { transform: scaleY(1.3) rotate(5deg); opacity:1 } 100% { transform: scaleY(.95) rotate(-2deg); opacity:.95 } }
@keyframes ru-shadow { 0% { transform: scaleY(1) translateX(0) } 50% { transform: scaleY(1.02) translateX(2px) } 100% { transform: scaleY(.98) translateX(-1px) } }
@keyframes ru-map { 0% { transform: scaleX(1) rotate(0) } 25% { transform: scaleX(1.02) rotate(2deg) } 50% { transform: scaleX(.98) rotate(-1deg) } 75% { transform: scaleX(1.01) rotate(1deg) } 100% { transform: scaleX(1) rotate(0) } }
@keyframes ru-hand { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(8deg) } 70% { transform: translateX(1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-test-of-affection {
  background: linear-gradient(180deg, #1a1a0a 0%, #2a1a0a 30%, #0f0f05 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-test-of-affection .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0d0d05 0%, #1a120a 100%); }
.scn-test-of-affection .door { position:absolute; bottom:15%; left:50%; width:140px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,.8); }
.scn-test-of-affection .lock { position:absolute; bottom:45%; left:50%; width:10px; height:14px; transform:translateX(-50%); background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%); border-radius: 3px; box-shadow: 0 0 8px 2px #a0461a; animation: ta-lock 3s ease-in-out infinite alternate; }
.scn-test-of-affection .hand-left { position:absolute; bottom:32%; left:38%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ta-handL 5s ease-in-out infinite; }
.scn-test-of-affection .hand-right { position:absolute; bottom:32%; right:38%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ta-handR 4s ease-in-out infinite; }
.scn-test-of-affection .light-pool { position:absolute; bottom:30%; left:40%; width:20%; height:25%; background: radial-gradient(ellipse at 50% 100%, rgba(255,210,100,.12) 0%, transparent 70%); animation: ta-light 6s ease-in-out infinite alternate; }
.scn-test-of-affection .shadow-stripes { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0px, transparent 8px, rgba(0,0,0,.15) 8px, rgba(0,0,0,.15) 12px); animation: ta-shadows 8s ease-in-out infinite; }
@keyframes ta-lock { 0% { box-shadow: 0 0 6px 2px #a0461a; transform: translateX(-50%) scale(1) } 50% { box-shadow: 0 0 16px 6px #c8553d; transform: translateX(-50%) scale(1.05) } 100% { box-shadow: 0 0 8px 3px #a0461a; transform: translateX(-50%) scale(.98) } }
@keyframes ta-handL { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(4px) rotate(10deg) } 60% { transform: translateX(2px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ta-handR { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(-3px) rotate(-8deg) } 50% { transform: translateX(-1px) rotate(4deg) } 80% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ta-light { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.08) } 100% { opacity:.75; transform: scaleY(.95) } }
@keyframes ta-shadows { 0%,100% { opacity:.5 } 50% { opacity:.8 } }

.scn-spy-sees {
  background: linear-gradient(180deg, #0a0a14 0%, #14141e 40%, #0a0a0f 100%),
              radial-gradient(ellipse at 70% 50%, #1a1a2a 0%, transparent 60%);
}
.scn-spy-sees .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0f0f1a 0%, #1a1a2a 100%); }
.scn-spy-sees .window { position:absolute; top:15%; right:18%; width:90px; height:130px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 4% 4% 10% 10%; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-spy-sees .curtain-left { position:absolute; top:12%; right:27%; width:20px; height:80px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0f1a 100%); border-radius: 0 30% 30% 0; transform-origin: top right; animation: ss-curtain 6s ease-in-out infinite alternate; }
.scn-spy-sees .curtain-right { position:absolute; top:12%; right:8%; width:20px; height:80px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0f1a 100%); border-radius: 30% 0 0 30%; transform-origin: top left; animation: ss-curtain 6s ease-in-out infinite alternate-reverse; }
.scn-spy-sees .spy-figure { position:absolute; bottom:18%; right:25%; width:30px; height:70px; background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ss-spy 8s ease-in-out infinite alternate; box-shadow: 0 0 15px rgba(0,0,0,.5); }
.scn-spy-sees .protagonist { position:absolute; bottom:20%; left:30%; width:26px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-pro 5s ease-in-out infinite; }
.scn-spy-sees .table-lamp { position:absolute; bottom:15%; left:15%; width:14px; height:20px; background: radial-gradient(circle at 50% 80%, #ffd080 0%, #b08040 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 12px 6px #c09040; animation: ss-lamp 3s ease-in-out infinite alternate; }
@keyframes ss-curtain { 0% { transform: rotate(0) scaleX(1) } 50% { transform: rotate(3deg) scaleX(1.05) } 100% { transform: rotate(-2deg) scaleX(.98) } }
@keyframes ss-spy { 0% { transform: rotate(0) translateY(0) } 40% { transform: rotate(-4deg) translateY(-2px) } 70% { transform: rotate(2deg) translateY(1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes ss-pro { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(2px) rotate(0) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ss-lamp { 0% { box-shadow: 0 0 8px 4px #c09040; opacity:.85 } 50% { box-shadow: 0 0 20px 10px #ffd080; opacity:1 } 100% { box-shadow: 0 0 12px 6px #c09040; opacity:.9 } }

.scn-finland-scene {
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 30%, #3a3a4a 60%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}

.scn-finland-scene .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 50%, #3a3a4a 100%);
  animation: fi-sky 14s ease-in-out infinite alternate;
}

.scn-finland-scene .water {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 50%, #1a1a2a 100%);
  border-radius: 30% 50% 0 0 / 20% 40% 0 0;
  animation: fi-water 6s ease-in-out infinite alternate;
}

.scn-finland-scene .quay {
  position: absolute; bottom: 30%; left: 10%; right: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  animation: fi-quay 12s ease-in-out infinite;
}

.scn-finland-scene .forest {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 40% 30% 0 0 / 50% 40% 0 0;
  filter: blur(2px);
  animation: fi-forest 20s linear infinite alternate;
}

.scn-finland-scene .ship {
  position: absolute; bottom: 30%; left: 60%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 20% 10% 10% / 60% 30% 20% 20%;
  transform-origin: bottom center;
  animation: fi-ship 8s ease-in-out infinite alternate;
}

.scn-finland-scene .figure {
  position: absolute; bottom: 30%; left: 25%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 50%;
  transform-origin: bottom center;
  animation: fi-figure 4s ease-in-out infinite;
}

.scn-finland-scene .lantern {
  position: absolute; bottom: 35%; left: 28%; width: 8px; height: 10px;
  background: radial-gradient(circle, #c0a060 0%, #8a7040 70%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 20px 6px #8a7040, 0 0 40px 12px rgba(138,112,64,0.4);
  animation: fi-lantern 3s ease-in-out infinite alternate;
}

@keyframes fi-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes fi-water { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes fi-quay { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes fi-forest { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes fi-ship { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(0deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes fi-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(8px) translateY(0) rotate(1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(16px) translateY(0) rotate(-2deg) } }
@keyframes fi-lantern { 0% { box-shadow: 0 0 15px 4px #8a7040, 0 0 30px 8px rgba(138,112,64,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 25px 8px #c0a060, 0 0 50px 15px rgba(192,160,96,0.5); opacity: 1 } 100% { box-shadow: 0 0 18px 5px #8a7040, 0 0 35px 10px rgba(138,112,64,0.35); opacity: 0.85 } }

.scn-elma-located {
  background: linear-gradient(135deg, #f0e8d0 0%, #d8d0b8 40%, #c0b8a0 100%),
              radial-gradient(ellipse at 80% 50%, #e0d8c0 0%, transparent 60%);
}

.scn-elma-located .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8d0b8 0%, #c8c0a8 60%, #b8b098 100%);
  animation: el-wall 10s ease-in-out infinite alternate;
}

.scn-elma-located .window-lit {
  position: absolute; top: 20%; left: 60%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #f0e0a0 60%, #c8b880 100%);
  border: 4px solid #8a7a5a;
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(240,224,160,0.3);
  animation: el-window 3s ease-in-out infinite alternate;
}

.scn-elma-located .desk {
  position: absolute; bottom: 20%; left: 40%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: el-desk 8s ease-in-out infinite;
}

.scn-elma-located .chair {
  position: absolute; bottom: 15%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: el-chair 12s ease-in-out infinite;
}

.scn-elma-located .figure-sit {
  position: absolute; bottom: 30%; left: 38%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 50%;
  transform-origin: bottom center;
  animation: el-sit 4s ease-in-out infinite;
}

.scn-elma-located .figure-stand {
  position: absolute; bottom: 25%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: el-stand 3s ease-in-out infinite;
}

.scn-elma-located .rug {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 10px;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a5a4a 50%, #6a4a3a 100%);
  border-radius: 30% 30% 0 0;
  opacity: 0.6;
  animation: el-rug 15s linear infinite;
}

@keyframes el-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes el-window { 0% { box-shadow: 0 0 30px 15px rgba(240,224,160,0.25); opacity: 0.9 } 50% { box-shadow: 0 0 50px 25px rgba(240,224,160,0.45); opacity: 1 } 100% { box-shadow: 0 0 35px 18px rgba(240,224,160,0.3); opacity: 0.95 } }
@keyframes el-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes el-chair { 0% { transform: translateX(0) } 25% { transform: translateX(-1px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) } }
@keyframes el-sit { 0% { transform: rotate(0deg) } 25% { transform: rotate(-2deg) translateX(-1px) } 50% { transform: rotate(0deg) } 75% { transform: rotate(2deg) translateX(1px) } 100% { transform: rotate(0deg) } }
@keyframes el-stand { 0% { transform: rotate(0deg) translateY(0) } 20% { transform: rotate(-1deg) translateY(-1px) } 40% { transform: rotate(1deg) translateY(0) } 60% { transform: rotate(-1deg) translateY(-2px) } 80% { transform: rotate(0deg) translateY(0) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes el-rug { 0% { opacity: 0.5; transform: scaleX(1) } 50% { opacity: 0.7; transform: scaleX(1.02) } 100% { opacity: 0.5; transform: scaleX(1) } }

.scn-boranski-evades {
  background: linear-gradient(180deg, #d8c8a8 0%, #c8b898 40%, #b8a888 100%),
              radial-gradient(ellipse at 70% 30%, #e0d0b0 0%, transparent 60%);
}

.scn-boranski-evades .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c8b898 0%, #b8a888 60%, #a89878 100%);
  animation: bo-wall 12s ease-in-out infinite alternate;
}

.scn-boranski-evades .door {
  position: absolute; bottom: 20%; right: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border: 2px solid #2a1a0a;
  border-radius: 4px 0 0 4px;
  transform-origin: right center;
  animation: bo-door 6s ease-in-out infinite;
}

.scn-boranski-evades .table {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 15px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: bo-table 8s ease-in-out infinite;
}

.scn-boranski-evades .chair {
  position: absolute; bottom: 20%; left: 45%; width: 25px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: bo-chair 10s ease-in-out infinite;
}

.scn-boranski-evades .figure-bor {
  position: absolute; bottom: 25%; left: 50%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bo-fig 4s ease-in-out infinite;
}

.scn-boranski-evades .shadow-bor {
  position: absolute; bottom: 18%; left: 52%; width: 20px; height: 12px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: bo-shadow 4s ease-in-out infinite;
}

.scn-boranski-evades .lamp-sw {
  position: absolute; top: 30%; left: 70%; width: 10px; height: 14px;
  background: radial-gradient(circle, #f0e0a0 0%, #c8b060 80%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(200,176,96,0.4);
  animation: bo-lamp 3s ease-in-out infinite alternate;
}

@keyframes bo-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes bo-door { 0% { transform: skewY(0deg) } 25% { transform: skewY(-3deg) } 50% { transform: skewY(0deg) } 75% { transform: skewY(2deg) } 100% { transform: skewY(0deg) } }
@keyframes bo-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes bo-chair { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-1px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bo-fig { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(-2px) rotate(-2deg) } 40% { transform: translateX(0) rotate(0deg) } 60% { transform: translateX(2px) rotate(2deg) } 80% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes bo-shadow { 0% { transform: translateX(0) scaleX(1) } 20% { transform: translateX(-2px) scaleX(0.9) } 40% { transform: translateX(0) scaleX(1) } 60% { transform: translateX(2px) scaleX(1.1) } 80% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(-1px) scaleX(0.95) } }
@keyframes bo-lamp { 0% { box-shadow: 0 0 20px 6px rgba(200,176,96,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 40px 15px rgba(200,176,96,0.6); opacity: 1 } 100% { box-shadow: 0 0 25px 8px rgba(200,176,96,0.35); opacity: 0.85 } }

.scn-instructions-given {
  background: linear-gradient(180deg, #e8d8b8 0%, #d8c8a8 50%, #c8b898 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 70%);
}

.scn-instructions-given .desk-top {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.3);
  animation: in-desk 10s ease-in-out infinite alternate;
}

.scn-instructions-given .map {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 70px;
  background: linear-gradient(135deg, #d0c0a0 0%, #b8a888 50%, #a89878 100%);
  border: 2px solid #8a7a5a;
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: in-map 12s ease-in-out infinite;
}

.scn-instructions-given .hand-left {
  position: absolute; bottom: 35%; left: 28%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 20% 20% 40% / 50% 30% 30% 50%;
  transform-origin: right center;
  animation: in-hand-l 4s ease-in-out infinite;
}

.scn-instructions-given .hand-right {
  position: absolute; bottom: 35%; left: 55%; width: 18px; height: 12px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 40% 40% 20% / 30% 50% 50% 30%;
  transform-origin: left center;
  animation: in-hand-r 4s ease-in-out infinite reverse;
}

.scn-instructions-given .lamp-bright {
  position: absolute; top: 15%; left: 50%; width: 16px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #fff0c0 0%, #e0c080 70%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 20px rgba(224,192,128,0.4);
  animation: in-lamp 3s ease-in-out infinite alternate;
}

.scn-instructions-given .inkwell {
  position: absolute; bottom: 30%; left: 42%; width: 14px; height: 16px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: in-ink 8s ease-in-out infinite;
}

@keyframes in-desk { 0% { opacity: 0.9; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.01) } 100% { opacity: 0.9; transform: scaleY(1) } }
@keyframes in-map { 0% { transform: rotate(-5deg) translateX(0) } 25% { transform: rotate(-4deg) translateX(1px) } 50% { transform: rotate(-5deg) translateX(0) } 75% { transform: rotate(-6deg) translateX(-1px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes in-hand-l { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-8deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(5deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes in-hand-r { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(8deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-5deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes in-lamp { 0% { box-shadow: 0 0 30px 15px rgba(224,192,128,0.3); opacity: 0.85 } 50% { box-shadow: 0 0 50px 25px rgba(224,192,128,0.6); opacity: 1 } 100% { box-shadow: 0 0 35px 18px rgba(224,192,128,0.35); opacity: 0.9 } }
@keyframes in-ink { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }

/* rannoch-castle-tennis */
.scn-rannoch-castle-tennis {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #b0e0e6 40%, #f0e68c 70%, #deb887 100%),
    radial-gradient(ellipse at 50% 100%, #c8b882 0%, transparent 60%);
}
.scn-rannoch-castle-tennis .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 50%, #e0f0ff 100%);
  animation: rc-sky 10s ease-in-out infinite alternate;
}
.scn-rannoch-castle-tennis .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 60%, #3b5323 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: rc-hills 8s ease-in-out infinite alternate;
}
.scn-rannoch-castle-tennis .castle-tower {
  position: absolute; bottom: 28%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #a0937d 0%, #6b5b4e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-rannoch-castle-tennis .castle-tower.left { left: 20%; }
.scn-rannoch-castle-tennis .castle-tower.right { left: 65%; }
.scn-rannoch-castle-tennis .castle-tower::before {
  content: ''; position: absolute; top: -8px; left: -4px; right: -4px; height: 12px;
  background: linear-gradient(90deg, #6b5b4e 25%, transparent 25%, #6b5b4e 50%, transparent 50%, #6b5b4e 75%, transparent 75%);
  background-size: 12px 100%;
  animation: rc-crenellate 4s infinite linear;
}
.scn-rannoch-castle-tennis .net {
  position: absolute; bottom: 25%; left: 45%; width: 10%; height: 20%;
  background: repeating-linear-gradient(90deg, transparent, transparent 4px, rgba(255,255,255,0.6) 4px, rgba(255,255,255,0.6) 6px);
  border: 1px solid rgba(255,255,255,0.5);
  border-radius: 2px;
  animation: rc-net 3s ease-in-out infinite alternate;
}
.scn-rannoch-castle-tennis .player {
  position: absolute; bottom: 25%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #fff5ee 0%, #f5deb3 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
}
.scn-rannoch-castle-tennis .player1 { left: 38%; animation: rc-run1 2s ease-in-out infinite; }
.scn-rannoch-castle-tennis .player2 { left: 58%; animation: rc-run2 2.3s ease-in-out infinite; transform: scaleX(-1); }
.scn-rannoch-castle-tennis .ball {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #fffacd 0%, #daa520 80%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(218,165,32,0.5);
  animation: rc-ball 1.5s ease-in-out infinite;
}
.scn-rannoch-castle-tennis .cloud {
  position: absolute; top: 10%; left: -10%; width: 100px; height: 25px;
  background: linear-gradient(90deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.3) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: rc-cloud 30s linear infinite;
}
@keyframes rc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rc-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rc-crenellate { 0% { background-position: 0 0; } 100% { background-position: -12px 0; } }
@keyframes rc-net { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes rc-run1 { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(2deg); } }
@keyframes rc-run2 { 0%,100% { transform: translateX(0) scaleX(-1) rotate(2deg); } 25% { transform: translateX(-6px) scaleX(-1) rotate(-1deg); } 50% { transform: translateX(-12px) scaleX(-1) rotate(1deg); } 75% { transform: translateX(-18px) scaleX(-1) rotate(-2deg); } }
@keyframes rc-ball { 0% { transform: translate(-20px, -10px); } 15% { transform: translate(-5px, -30px); } 30% { transform: translate(10px, -15px); } 45% { transform: translate(25px, -5px); } 60% { transform: translate(20px, -20px); } 75% { transform: translate(10px, -10px); } 100% { transform: translate(-20px, 0); } }
@keyframes rc-cloud { 0% { transform: translateX(-120%) scale(1); } 50% { transform: translateX(50vw) scale(1.1); } 100% { transform: translateX(110vw) scale(0.9); } }

/* tea-muriel-meeting */
.scn-tea-muriel-meeting {
  background: 
    linear-gradient(180deg, #b0e0e6 0%, #f0e68c 40%, #faebd7 70%, #f5deb3 100%),
    radial-gradient(ellipse at 70% 30%, #fff8dc 0%, transparent 60%);
}
.scn-tea-muriel-meeting .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #f0e68c 60%, transparent 100%);
  animation: tm-sky 12s ease-in-out infinite alternate;
}
.scn-tea-muriel-meeting .lawn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7ccd7c 0%, #4c8b4c 50%, #2e5a2e 100%);
  border-radius: 30% 70% 0 0 / 50% 90% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,50,0,0.3);
  animation: tm-lawn 6s ease-in-out infinite alternate;
}
.scn-tea-muriel-meeting .table {
  position: absolute; bottom: 28%; left: 30%; width: 70px; height: 30px;
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: tm-table 8s ease-in-out infinite;
}
.scn-tea-muriel-meeting .teapot {
  position: absolute; bottom: 35%; left: 38%; width: 20px; height: 24px;
  background: radial-gradient(ellipse at 50% 30%, #d3d3d3 0%, #a9a9a9 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tm-steam 3s ease-in-out infinite alternate;
}
.scn-tea-muriel-meeting .teapot::after {
  content: ''; position: absolute; top: -6px; left: 50%; transform: translateX(-50%);
  width: 4px; height: 8px;
  background: linear-gradient(180deg, transparent 0%, rgba(200,200,200,0.5) 100%);
  border-radius: 50%;
  animation: tm-steam-rise 2s ease-out infinite;
}
.scn-tea-muriel-meeting .figure {
  position: absolute; bottom: 22%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #f5f5dc 0%, #e3c9a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-tea-muriel-meeting .figure-a { left: 20%; animation: tm-walk-a 5s ease-in-out infinite; }
.scn-tea-muriel-meeting .figure-b { left: 55%; animation: tm-walk-b 5.3s ease-in-out infinite; transform: scaleX(-1); }
.scn-tea-muriel-meeting .parasol {
  position: absolute; bottom: 30%; left: 17%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f4a460 0%, #daa520 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: bottom center;
  animation: tm-parasol 4s ease-in-out infinite alternate;
}
.scn-tea-muriel-meeting .flowers {
  position: absolute; bottom: 10%; left: 10%; width: 25px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #c8553d 0%, transparent 60%), radial-gradient(circle at 30% 80%, #daa520 0%, transparent 50%);
  border-radius: 50%;
  animation: tm-flowers 6s ease-in-out infinite;
}
@keyframes tm-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes tm-lawn { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes tm-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes tm-steam { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(0.95); } }
@keyframes tm-steam-rise { 0% { opacity: 0.8; transform: translateY(0) scale(1); } 100% { opacity: 0; transform: translateY(-15px) scale(1.5); } }
@keyframes tm-walk-a { 0%,100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(10px) rotate(1deg); } 50% { transform: translateX(20px) rotate(-1deg); } 75% { transform: translateX(30px) rotate(1deg); } }
@keyframes tm-walk-b { 0%,100% { transform: translateX(0) scaleX(-1) rotate(1deg); } 25% { transform: translateX(-8px) scaleX(-1) rotate(-1deg); } 50% { transform: translateX(-16px) scaleX(-1) rotate(1deg); } 75% { transform: translateX(-24px) scaleX(-1) rotate(-1deg); } }
@keyframes tm-parasol { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes tm-flowers { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }

/* banqueting-hall-talk */
.scn-banqueting-hall-talk {
  background: 
    linear-gradient(90deg, #c4a46b 0%, #deb887 20%, #d2b48c 50%, #c4a46b 80%, #b8860b 100%),
    radial-gradient(ellipse at 50% 40%, #f5deb3 0%, transparent 70%);
}
.scn-banqueting-hall-talk .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #b8860b 0px, #b8860b 2px, transparent 2px, transparent 6px);
  opacity: 0.1;
  animation: bh-wall 12s linear infinite;
}
.scn-banqueting-hall-talk .window {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 100px;
  background: linear-gradient(135deg, #87CEEB 0%, #b0e0e6 50%, #e0f0ff 100%);
  border: 4px solid #8b7355;
  border-radius: 4px;
  box-shadow: 0 0 20px 8px rgba(135,206,235,0.3);
  animation: bh-window 10s ease-in-out infinite alternate;
}
.scn-banqueting-hall-talk .curtain {
  position: absolute; top: 8%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #a0522d 0%, #8b4513 50%, #654321 100%);
  border-radius: 0 0 40% 40%;
}
.scn-banqueting-hall-talk .curtain.left { left: 38%; animation: bh-curtain-l 6s ease-in-out infinite alternate; }
.scn-banqueting-hall-talk .curtain.right { right: 38%; animation: bh-curtain-r 6.5s ease-in-out infinite alternate; }
.scn-banqueting-hall-talk .armchair {
  position: absolute; bottom: 12%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-banqueting-hall-talk .armchair.left { left: 25%; }
.scn-banqueting-hall-talk .armchair.right { right: 25%; }
.scn-banqueting-hall-talk .figure {
  position: absolute; bottom: 18%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #d3c5a0 0%, #b8a87c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-banqueting-hall-talk .figure.sitting-left { left: 26%; animation: bh-sit-l 5s ease-in-out infinite; }
.scn-banqueting-hall-talk .figure.sitting-right { right: 26%; animation: bh-sit-r 5.5s ease-in-out infinite; transform: scaleX(-1); }
.scn-banqueting-hall-talk .fire {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 70%, #ff7f50 0%, #ff4500 40%, #8b0000 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,69,0,0.5);
  animation: bh-fire 2s ease-in-out infinite alternate;
}
@keyframes bh-wall { 0% { background-position: 0 0; } 100% { background-position: 10px 0; } }
@keyframes bh-window { 0% { opacity: 0.7; box-shadow: 0 0 10px 4px rgba(135,206,235,0.2); } 50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(135,206,235,0.5); } 100% { opacity: 0.8; } }
@keyframes bh-curtain-l { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes bh-curtain-r { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes bh-sit-l { 0%,100% { transform: rotate(0); } 25% { transform: rotate(-3deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(-1deg); } }
@keyframes bh-sit-r { 0%,100% { transform: scaleX(-1) rotate(0); } 25% { transform: scaleX(-1) rotate(3deg); } 50% { transform: scaleX(-1) rotate(-2deg); } 75% { transform: scaleX(-1) rotate(1deg); } }
@keyframes bh-fire { 0% { transform: translateX(-50%) scale(1); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.9; } }

/* leithcourt-speculation */
.scn-leithcourt-speculation {
  background: 
    linear-gradient(180deg, #fdf5e6 0%, #faebd7 30%, #f5deb3 70%, #deb887 100%),
    radial-gradient(ellipse at 30% 60%, #fffacd 0%, transparent 50%);
}
.scn-leithcourt-speculation .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, #d2b48c 0px, #d2b48c 1px, transparent 1px, transparent 3px);
  opacity: 0.15;
}
.scn-leithcourt-speculation .painting {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(135deg, #7e6b4d 0%, #a08060 50%, #c8b882 100%);
  border: 3px solid #5c3a1e;
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: ls-painting 12s ease-in-out infinite;
}
.scn-leithcourt-speculation .lamp {
  position: absolute; top: 12%; left: 15%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #fffacd 0%, #daa520 80%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 24px 8px rgba(218,165,32,0.4);
  animation: ls-lamp 4s ease-in-out infinite alternate;
}
.scn-leithcourt-speculation .chair {
  position: absolute; bottom: 16%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #5c3317 0%, #3a2310 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-leithcourt-speculation .chair.left { left: 25%; }
.scn-leithcourt-speculation .chair.right { right: 25%; }
.scn-leithcourt-speculation .figure {
  position: absolute; bottom: 22%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #e3c9a0 0%, #c8b882 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-leithcourt-speculation .figure.profile-left { left: 26%; animation: ls-head-l 6s ease-in-out infinite; }
.scn-leithcourt-speculation .figure.profile-right { right: 26%; animation: ls-head-r 6.5s ease-in-out infinite; transform: scaleX(-1); }
.scn-leithcourt-speculation .carpet {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(90deg, #8b7765 0%, #a09080 25%, #8b7765 50%, #a09080 75%, #8b7765 100%);
  border-radius: 20% 20% 0 0;
  opacity: 0.7;
  animation: ls-carpet 20s linear infinite;
}
@keyframes ls-painting { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ls-lamp { 0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(218,165,32,0.3); } 50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(218,165,32,0.5); } 100% { opacity: 0.8; } }
@keyframes ls-head-l { 0%,100% { transform: rotate(0); } 25% { transform: rotate(-4deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(-1deg); } }
@keyframes ls-head-r { 0%,100% { transform: scaleX(-1) rotate(0); } 25% { transform: scaleX(-1) rotate(4deg); } 50% { transform: scaleX(-1) rotate(-2deg); } 75% { transform: scaleX(-1) rotate(1deg); } }
@keyframes ls-carpet { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }

/* restaurant-name-forgotten - tense dim interior with candle */
.scn-restaurant-name-forgotten {
  background: linear-gradient(180deg, #2a1a0e 0%, #1f1208 40%, #150c05 100%),
              radial-gradient(ellipse at 50% 70%, #4a2a12 0%, transparent 60%);
}
.scn-restaurant-name-forgotten .rnf-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1208 100%);
  animation: rnf-wall-shift 12s ease-in-out infinite alternate;
}
.scn-restaurant-name-forgotten .rnf-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a0e 0%, #0d0802 100%);
  border-radius: 20% 20% 0 0;
}
.scn-restaurant-name-forgotten .rnf-table {
  position: absolute; bottom: 22%; left: 50%; width: 140px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: rnf-table-bob 8s ease-in-out infinite;
}
.scn-restaurant-name-forgotten .rnf-candle-flame {
  position: absolute; bottom: 38%; left: 50%; width: 10px; height: 20px;
  transform: translateX(-55%);
  background: radial-gradient(circle, #ffb060 0%, #ff8020 50%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 10px #ff8020, 0 0 60px 20px rgba(255,128,32,.3);
  animation: rnf-candle 0.8s ease-in-out infinite alternate;
}
.scn-restaurant-name-forgotten .rnf-figure-sitting {
  position: absolute; bottom: 18%; left: 42%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0702 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rnf-sit 4s ease-in-out infinite;
}
.scn-restaurant-name-forgotten .rnf-figure-standing {
  position: absolute; bottom: 18%; right: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0702 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: rnf-stand 4.5s ease-in-out infinite;
}
.scn-restaurant-name-forgotten .rnf-shadow {
  position: absolute; bottom: 18%; left: 52%; width: 80px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%);
  border-radius: 50%;
  animation: rnf-shadow-sway 5s ease-in-out infinite;
}
@keyframes rnf-wall-shift {
  0% { opacity: .7; }
  50% { opacity: .85; }
  100% { opacity: .7; }
}
@keyframes rnf-table-bob {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes rnf-candle {
  0% { box-shadow: 0 0 25px 8px #ff8020, 0 0 50px 15px rgba(255,128,32,.3); opacity: .9; }
  50% { box-shadow: 0 0 35px 12px #ffa040, 0 0 70px 25px rgba(255,160,64,.5); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px #ff6020, 0 0 40px 10px rgba(255,96,32,.25); opacity: .85; }
}
@keyframes rnf-sit {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(1px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(2px) translateY(0) rotate(0); }
  75% { transform: translateX(1px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes rnf-stand {
  0% { transform: translateX(0) rotate(0); }
  33% { transform: translateX(-2px) rotate(-1deg); }
  66% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes rnf-shadow-sway {
  0%, 100% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(3px) scaleX(1.1); }
}

/* enigma-deepens - dark dim interior with lantern and body */
.scn-enigma-deepens {
  background: linear-gradient(180deg, #0e101a 0%, #080b12 50%, #030508 100%),
              radial-gradient(ellipse at 40% 60%, #1a2030 0%, transparent 70%);
}
.scn-enigma-deepens .eni-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #12151e 0%, #0a0c14 100%);
  animation: eni-wall-pulse 15s ease-in-out infinite alternate;
}
.scn-enigma-deepens .eni-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0c0e14 0%, #030408 100%);
  border-radius: 30% 30% 0 0;
}
.scn-enigma-deepens .eni-lantern {
  position: absolute; bottom: 30%; left: 38%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a08 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 0 20px 8px #b08040;
  animation: eni-lantern-flicker 3s ease-in-out infinite;
}
.scn-enigma-deepens .eni-lantern-halo {
  position: absolute; bottom: 25%; left: 35%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(176,128,64,.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: eni-halo-pulse 4s ease-in-out infinite;
}
.scn-enigma-deepens .eni-figure-standing {
  position: absolute; bottom: 15%; right: 30%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #1a1a24 0%, #0f0f18 100%);
  border-radius: 35% 35% 25% 25% / 40% 40% 25% 25%;
  transform-origin: bottom center;
  animation: eni-stand-tremble 5s ease-in-out infinite;
}
.scn-enigma-deepens .eni-figure-prone {
  position: absolute; bottom: 22%; left: 45%; width: 50px; height: 18px;
  background: linear-gradient(180deg, #1a1a24 0%, #0f0f18 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  transform-origin: left center;
  animation: eni-prone-still 8s ease-in-out infinite;
}
.scn-enigma-deepens .eni-shadow {
  position: absolute; bottom: 22%; left: 40%; width: 100px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: eni-shadow-sway 6s ease-in-out infinite;
}
@keyframes eni-wall-pulse {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .6; }
}
@keyframes eni-lantern-flicker {
  0% { box-shadow: 0 0 15px 6px #b08040; opacity: .9; }
  30% { box-shadow: 0 0 25px 10px #c09050; opacity: 1; }
  60% { box-shadow: 0 0 12px 4px #a07030; opacity: .8; }
  100% { box-shadow: 0 0 18px 7px #b08040; opacity: .95; }
}
@keyframes eni-halo-pulse {
  0%, 100% { transform: scale(1); opacity: .3; }
  50% { transform: scale(1.1); opacity: .5; }
}
@keyframes eni-stand-tremble {
  0% { transform: translateX(0) rotate(0); }
  20% { transform: translateX(1px) rotate(1deg); }
  40% { transform: translateX(-1px) rotate(-1deg); }
  60% { transform: translateX(0) rotate(0); }
  80% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(-1px) rotate(1deg); }
}
@keyframes eni-prone-still {
  0%, 100% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-4deg) translateX(1px); }
}
@keyframes eni-shadow-sway {
  0%, 100% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(2px) scaleX(1.05); }
}

/* detective-agrees - tense dim interior, two figures, lamp, blue eye glow */
.scn-detective-agrees {
  background: linear-gradient(180deg, #1f1410 0%, #150d0a 40%, #0c0805 100%),
              radial-gradient(ellipse at 50% 50%, #3a2218 0%, transparent 60%);
}
.scn-detective-agrees .dea-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  animation: dea-wall-dim 10s ease-in-out infinite alternate;
}
.scn-detective-agrees .dea-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0d0705 100%);
  border-radius: 15% 15% 0 0;
}
.scn-detective-agrees .dea-desk {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 12px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a160c 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: dea-desk-bob 7s ease-in-out infinite;
}
.scn-detective-agrees .dea-lamp {
  position: absolute; bottom: 26%; left: 35%; width: 14px; height: 18px;
  background: radial-gradient(circle, #c08040 0%, #8a5a20 60%, transparent 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 0 25px 8px #c08040, 0 0 50px 16px rgba(192,128,64,.3);
  animation: dea-lamp-flicker 0.9s ease-in-out infinite alternate;
}
.scn-detective-agrees .dea-figure-left {
  position: absolute; bottom: 16%; left: 25%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0705 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: dea-left-sway 4s ease-in-out infinite;
}
.scn-detective-agrees .dea-figure-right {
  position: absolute; bottom: 16%; right: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a0e08 0%, #0d0705 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: dea-right-sway 4.5s ease-in-out infinite;
}
.scn-detective-agrees .dea-eye-glow {
  position: absolute; bottom: 34%; right: 28%; width: 4px; height: 4px;
  background: radial-gradient(circle, #80b0ff 0%, #4060b0 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px #6090e0, 0 0 20px 8px rgba(64,96,176,.4);
  animation: dea-eye-pulse 2s ease-in-out infinite;
}
@keyframes dea-wall-dim {
  0% { opacity: .7; }
  50% { opacity: .85; }
  100% { opacity: .75; }
}
@keyframes dea-desk-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes dea-lamp-flicker {
  0% { box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); opacity: .9; }
  50% { box-shadow: 0 0 30px 10px #d09050, 0 0 60px 18px rgba(208,144,80,.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #b07030, 0 0 35px 10px rgba(176,112,48,.25); opacity: .85; }
}
@keyframes dea-left-sway {
  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(1deg); }
}
@keyframes dea-right-sway {
  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(-1deg); }
}
@keyframes dea-eye-pulse {
  0% { box-shadow: 0 0 8px 3px #6090e0, 0 0 15px 6px rgba(96,144,224,.3); opacity: .7; }
  50% { box-shadow: 0 0 14px 6px #80b0ff, 0 0 25px 10px rgba(128,176,255,.5); opacity: 1; }
  100% { box-shadow: 0 0 10px 4px #6090e0, 0 0 18px 7px rgba(96,144,224,.35); opacity: .8; }
}

/* letter-to-hutcheson - calm dim interior with desk, candle, window, starry night outside */
.scn-letter-to-hutcheson {
  background: linear-gradient(180deg, #1a1410 0%, #120d0a 40%, #0a0705 100%),
              radial-gradient(ellipse at 50% 70%, #2a1a0e 0%, transparent 60%);
}
.scn-letter-to-hutcheson .lth-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a100a 100%);
  animation: lth-wall-soft 20s ease-in-out infinite alternate;
}
.scn-letter-to-hutcheson .lth-desk {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 14px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a160c 100%);
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-letter-to-hutcheson .lth-candle {
  position: absolute; bottom: 25%; left: 30%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a220e 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #c08040;
  animation: lth-candle-glow 5s ease-in-out infinite;
}
.scn-letter-to-hutcheson .lth-paper {
  position: absolute; bottom: 20%; left: 38%; width: 40px; height: 28px;
  background: linear-gradient(180deg, #efe0c0 0%, #d0c0a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  transform: rotate(-3deg);
  animation: lth-paper-settle 8s ease-in-out infinite;
}
.scn-letter-to-hutcheson .lth-quill {
  position: absolute; bottom: 26%; left: 48%; width: 2px; height: 18px;
  background: linear-gradient(180deg, #c0a080 0%, #806040 100%);
  border-radius: 40% 40% 0 0;
  transform-origin: bottom center;
  animation: lth-quill-move 4s ease-in-out infinite;
}
.scn-letter-to-hutcheson .lth-figure {
  position: absolute; bottom: 18%; right: 20%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0702 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: lth-figure-breathe 6s ease-in-out infinite;
}
.scn-letter-to-hutcheson .lth-window {
  position: absolute; top: 8%; right: 12%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #0a0a1a 0%, #141428 100%);
  border: 3px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,.05);
  animation: lth-window-twinkle 12s ease-in-out infinite;
}
.scn-letter-to-hutcheson .lth-star-1 {
  position: absolute; top: 15%; right: 22%; width: 3px; height: 3px;
  background: radial-gradient(circle, #ffffff 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,.6);
  animation: lth-star1 4s ease-in-out infinite;
}
.scn-letter-to-hutcheson .lth-star-2 {
  position: absolute; top: 20%; right: 18%; width: 2px; height: 2px;
  background: radial-gradient(circle, #ffffff 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(255,255,255,.5);
  animation: lth-star2 5s ease-in-out infinite alternate;
}
@keyframes lth-wall-soft {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .7; }
}
@keyframes lth-candle-glow {
  0%, 100% { box-shadow: 0 0 18px 6px #c08040; opacity: .9; }
  50% { box-shadow: 0 0 28px 10px #d09050; opacity: 1; }
}
@keyframes lth-paper-settle {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-1px); }
}
@keyframes lth-quill-move {
  0% { transform: rotate(-10deg) translateY(0); }
  25% { transform: rotate(-5deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-8deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes lth-figure-breathe {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes lth-window-twinkle {
  0%, 100% { background: linear-gradient(180deg, #0a0a1a 0%, #141428 100%); }
  50% { background: linear-gradient(180deg, #0c0c1e 0%, #181830 100%); }
}
@keyframes lth-star1 {
  0%, 100% { opacity: .5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.5); }
}
@keyframes lth-star2 {
  0% { opacity: .4; transform: scale(0.8); }
  100% { opacity: .9; transform: scale(1.2); }
}

.scn-leithcourt-wood-watch {
  background: linear-gradient(180deg, #2a1a3a 0%, #5a3a2a 50%, #8a5a3a 100%), radial-gradient(ellipse at 20% 30%, #8a5a3a66 0%, transparent 70%);
}
.scn-leithcourt-wood-watch .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #6a4a3a 70%, transparent 100%);
  animation: lww-sky 15s ease-in-out infinite alternate;
}
.scn-leithcourt-wood-watch .tree-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 40%, #1a1a2e 40%);
  mask-image: radial-gradient(circle at 30% 60%, black 30%, transparent 32%),
              radial-gradient(circle at 70% 50%, black 25%, transparent 27%);
  -webkit-mask-composite: source-over;
  mask-composite: add;
  animation: lww-tree-bg 10s ease-in-out infinite alternate;
}
.scn-leithcourt-wood-watch .tree-fg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 45%, #0e0e1a 45%);
  mask-image: radial-gradient(circle at 40% 70%, black 20%, transparent 22%),
              radial-gradient(circle at 60% 65%, black 15%, transparent 17%);
  -webkit-mask-composite: source-over;
  mask-composite: add;
  animation: lww-tree-fg 8s ease-in-out infinite alternate;
}
.scn-leithcourt-wood-watch .hill {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 30px #00000033;
  animation: lww-hill 20s ease-in-out infinite alternate;
}
.scn-leithcourt-wood-watch .path {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #3a3a2a 40%, #4a4a3a 100%);
  border-radius: 50% 50% 30% 30% / 20% 20% 60% 60%;
  transform: skewX(-2deg);
  animation: lww-path 5s ease-in-out infinite alternate;
}
.scn-leithcourt-wood-watch .figure {
  position: absolute; bottom: 28%; left: 30%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lww-figure 4s ease-in-out infinite;
}
.scn-leithcourt-wood-watch .glow {
  position: absolute; bottom: 25%; right: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b08040 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b0804066;
  animation: lww-glow 2s ease-in-out infinite alternate;
}
@keyframes lww-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes lww-tree-bg {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(3px) scaleY(0.98); }
  100% { transform: translateX(-2px) scaleY(1); }
}
@keyframes lww-tree-fg {
  0% { transform: translateX(0) scaleX(1); }
  40% { transform: translateX(-1px) scaleX(1.02); }
  80% { transform: translateX(2px) scaleX(0.98); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes lww-hill {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes lww-path {
  0% { transform: skewX(-2deg) scaleX(1); }
  50% { transform: skewX(0deg) scaleX(0.98); }
  100% { transform: skewX(-2deg) scaleX(1); }
}
@keyframes lww-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lww-glow {
  0% { opacity: 0.4; transform: scale(0.9); }
  100% { opacity: 0.8; transform: scale(1.2); }
}

.scn-return-from-shooting {
  background: linear-gradient(135deg, #3a2a1a 0%, #5a3a2a 40%, #8a6a4a 100%), radial-gradient(circle at 80% 60%, #5a3a2a66 0%, transparent 60%);
}
.scn-return-from-shooting .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 0 0;
  animation: rfs-wall 20s ease-in-out infinite alternate;
}
.scn-return-from-shooting .fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 140px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px #00000033, 0 5px 15px #0000004d;
  animation: rfs-fireplace 8s ease-in-out infinite alternate;
}
.scn-return-from-shooting .fire {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 60px;
  background: linear-gradient(180deg, #ff8a30 0%, #ff6020 40%, #cc4000 70%, #802000 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 15px #ff8a3066, 0 0 80px 30px #ff8a3033;
  animation: rfs-fire 1.5s ease-in-out infinite alternate;
}
.scn-return-from-shooting .armchair {
  position: absolute; bottom: 18%; left: 38%;
  width: 50px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #4a3a2a 80%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px #00000033;
  animation: rfs-chair 6s ease-in-out infinite alternate;
}
.scn-return-from-shooting .table {
  position: absolute; bottom: 15%; left: 55%;
  width: 30px; height: 10px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px #00000033;
  animation: rfs-table 10s ease-in-out infinite alternate;
}
.scn-return-from-shooting .teacup {
  position: absolute; bottom: 18%; left: 55%;
  width: 10px; height: 12px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 4px 2px #0000001a;
  transform: translateX(10px) rotate(5deg);
  animation: rfs-cup 4s ease-in-out infinite alternate;
}
.scn-return-from-shooting .window {
  position: absolute; top: 10%; right: 8%;
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a4a6a 0%, #4a6a8a 50%, #2a3a4a 100%);
  border: 3px solid #3a2a1a;
  border-radius: 4%;
  box-shadow: inset 0 0 10px #ffffff1a, 0 0 20px #6a8aaa33;
  animation: rfs-window 12s ease-in-out infinite alternate;
}
@keyframes rfs-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes rfs-fireplace {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes rfs-fire {
  0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); }
  30% { transform: translateX(-50%) scaleY(1.15) rotate(0deg); }
  60% { transform: translateX(-50%) scaleY(0.95) rotate(2deg); }
  100% { transform: translateX(-50%) scaleY(1.05) rotate(0deg); }
}
@keyframes rfs-chair {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(2px) scale(0.98); }
  100% { transform: translateX(-1px) scale(1); }
}
@keyframes rfs-table {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(1px) scaleX(0.95); }
  100% { transform: translateX(-1px) scaleX(1); }
}
@keyframes rfs-cup {
  0% { transform: translateX(10px) rotate(5deg); }
  50% { transform: translateX(12px) rotate(-3deg) translateY(-1px); }
  100% { transform: translateX(8px) rotate(4deg); }
}
@keyframes rfs-window {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

.scn-photograph-recognized {
  background: linear-gradient(135deg, #1a0a0a 0%, #3a1a0a 40%, #5a2a1a 100%), radial-gradient(circle at 60% 40%, #5a2a1a33 0%, transparent 60%);
}
.scn-photograph-recognized .bg-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, #1a0a0a 0%, #0a0505 100%);
  animation: pr-bg 12s ease-in-out infinite alternate;
}
.scn-photograph-recognized .glow {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 60% 40%, #ff8a304d 0%, transparent 60%);
  animation: pr-glow 3s ease-in-out infinite alternate;
}
.scn-photograph-recognized .frame {
  position: absolute; top: 30%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(135deg, #5e2a1a 0%, #7a3a2a 40%, #4a1a0a 100%);
  border: 3px solid #c0a060;
  border-radius: 8%;
  box-shadow: 0 4px 12px #00000066, 0 0 30px #ff8a3033;
  animation: pr-frame 2s ease-in-out infinite alternate;
}
.scn-photograph-recognized .photo {
  position: absolute; top: 34%; left: 53%; transform: translateX(-53%);
  width: 40px; height: 55px;
  background: radial-gradient(ellipse at 50% 50%, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 4%;
  box-shadow: inset 0 0 8px #00000066;
  clip-path: inset(0 0 20% 0); /* silhouette of head/shoulders: use shape instead */
  /* Use silhouette profile with border-radius */
  clip-path: none;
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: translateX(-53%) rotate(3deg);
  animation: pr-photo 5s ease-in-out infinite alternate;
}
.scn-photograph-recognized .hand {
  position: absolute; bottom: 30%; left: 42%;
  width: 22px; height: 16px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(20deg);
  animation: pr-hand 1.5s ease-in-out infinite alternate;
}
.scn-photograph-recognized .torn-edge {
  position: absolute; top: 35%; left: 48%;
  width: 12px; height: 8px;
  background: #2a1a0a;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 80%);
  opacity: 0.7;
  animation: pr-torn 3s ease-in-out infinite alternate;
}
.scn-photograph-recognized .spark {
  position: absolute; top: 20%; left: 70%;
  width: 4px; height: 4px;
  background: radial-gradient(circle, #ffa060 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffa06066;
  animation: pr-spark 0.8s ease-in-out infinite alternate;
}
@keyframes pr-bg {
  0% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes pr-glow {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes pr-frame {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(3deg) scale(1.01); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes pr-photo {
  0% { transform: translateX(-53%) rotate(3deg) scale(1); }
  50% { transform: translateX(-53%) rotate(-2deg) scale(0.98); }
  100% { transform: translateX(-53%) rotate(1deg) scale(1); }
}
@keyframes pr-hand {
  0% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(22deg) translateX(2px); }
  100% { transform: rotate(18deg) translateX(-1px); }
}
@keyframes pr-torn {
  0% { transform: scale(1); }
  50% { transform: scale(1.1) rotate(5deg); }
  100% { transform: scale(0.95) rotate(-3deg); }
}
@keyframes pr-spark {
  0% { transform: translate(0, 0); opacity: 0; }
  50% { transform: translate(-4px, -5px); opacity: 1; }
  100% { transform: translate(2px, -8px); opacity: 0.5; }
}

.scn-photograph-details {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #6a3a2a 100%), radial-gradient(circle at 70% 30%, #6a3a2a66 0%, transparent 60%);
}
.scn-photograph-details .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: pd-wall 15s ease-in-out infinite alternate;
}
.scn-photograph-details .fireplace {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 130px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 12% 12% 6% 6%;
  box-shadow: inset 0 -8px 20px #00000033;
  animation: pd-fireplace 10s ease-in-out infinite alternate;
}
.scn-photograph-details .fire {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #ff7a20 0%, #cc4000 50%, #801000 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px #ff7a2066, 0 0 60px 20px #ff7a2033;
  animation: pd-fire 2.5s ease-in-out infinite alternate;
}
.scn-photograph-details .table {
  position: absolute; bottom: 12%; left: 30%;
  width: 60px; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px #0000004d;
  animation: pd-table 8s ease-in-out infinite alternate;
}
.scn-photograph-details .photo {
  position: absolute; bottom: 14%; left: 33%;
  width: 30px; height: 40px;
  background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%);
  border: 2px solid #5a3a2a;
  border-radius: 6%;
  transform: rotate(-4deg);
  box-shadow: 0 2px 6px #00000066;
  animation: pd-photo 6s ease-in-out infinite alternate;
}
.scn-photograph-details .chair {
  position: absolute; bottom: 10%; left: 60%;
  width: 40px; height: 45px;
  background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #3a2a1a 80%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px #00000033;
  animation: pd-chair 12s ease-in-out infinite alternate;
}
.scn-photograph-details .cushion {
  position: absolute; bottom: 12%; left: 62%;
  width: 20px; height: 18px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: pd-cushion 7s ease-in-out infinite alternate;
}
@keyframes pd-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes pd-fireplace {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.01); }
  100% { transform: translateX(-50%) scaleY(0.99); }
}
@keyframes pd-fire {
  0% { transform: translateX(-50%) scaleY(1) rotate(-3deg); }
  30% { transform: translateX(-50%) scaleY(1.1) rotate(0deg); }
  70% { transform: translateX(-50%) scaleY(0.95) rotate(2deg); }
  100% { transform: translateX(-50%) scaleY(1.05) rotate(-1deg); }
}
@keyframes pd-table {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(2px) scaleX(0.97); }
  100% { transform: translateX(-1px) scaleX(1); }
}
@keyframes pd-photo {
  0% { transform: rotate(-4deg) scale(1); }
  50% { transform: rotate(-2deg) scale(0.98); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes pd-chair {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(1px) scale(0.99); }
  100% { transform: translateX(-1px) scale(1); }
}
@keyframes pd-cushion {
  0% { transform: rotate(5deg) scale(1); }
  50% { transform: rotate(8deg) scale(0.96); }
  100% { transform: rotate(3deg) scale(1); }
}

/* voices-in-wood */
.scn-voices-in-wood { background: linear-gradient(180deg, #2a1a3e 0%, #4a3a2e 60%, #6a5a3e 100%), radial-gradient(ellipse at 50% 0%, #8a7a5e 0%, transparent 60%); }
.scn-voices-in-wood .sky-dusk { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a2a4e 0%, #6a4a2e 100%); animation: viv-sky 12s ease-in-out infinite alternate; }
.scn-voices-in-wood .trees-back { position:absolute; bottom:35%; left:0; right:0; height:65%; background: repeating-linear-gradient(90deg, #2a2a3a 0%, #2a2a3a 8px, transparent 8px, transparent 18px); animation: viv-trees 6s ease-in-out infinite; }
.scn-voices-in-wood .trees-fore-a { position:absolute; bottom:30%; left:15%; width:14px; height:70%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 0 0; transform-origin: bottom; animation: viv-tree-a 4s ease-in-out infinite alternate; }
.scn-voices-in-wood .trees-fore-b { position:absolute; bottom:32%; left:75%; width:12px; height:65%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 0 0; transform-origin: bottom; animation: viv-tree-b 5s ease-in-out infinite alternate; animation-delay: -2s; }
.scn-voices-in-wood .ground-wood { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; }
.scn-voices-in-wood .figure-wood { position:absolute; bottom:35%; left:50%; width:18px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: viv-figure 10s ease-in-out infinite; }
.scn-voices-in-wood .glow-wood { position:absolute; bottom:45%; left:55%; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,208,128,0.6), 0 0 40px 14px rgba(255,208,128,0.2); animation: viv-glow 3s ease-in-out infinite alternate; }
.scn-voices-in-wood .shadow-wood { position:absolute; bottom:33%; left:45%; width:30px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: viv-shadow 5s ease-in-out infinite alternate; }
@keyframes viv-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes viv-trees { 0% { transform: translateX(0) } 30% { transform: translateX(-2px) } 70% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes viv-tree-a { 0% { transform: scaleY(1) rotate(-1deg) } 50% { transform: scaleY(1.02) rotate(1deg) } 100% { transform: scaleY(0.98) rotate(-0.5deg) } }
@keyframes viv-tree-b { 0% { transform: scaleY(0.98) rotate(0.5deg) } 50% { transform: scaleY(1.01) rotate(-1deg) } 100% { transform: scaleY(1) rotate(0deg) } }
@keyframes viv-figure { 0% { transform: translateX(-50%) rotate(-1deg) } 30% { transform: translateX(-50%) rotate(0.5deg) } 70% { transform: translateX(-50%) rotate(-0.8deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes viv-glow { 0% { opacity:0.6; box-shadow: 0 0 12px 4px rgba(255,208,128,0.5) } 50% { opacity:1; box-shadow: 0 0 28px 8px rgba(255,208,128,0.9), 0 0 50px 18px rgba(255,208,128,0.3) } 100% { opacity:0.7; box-shadow: 0 0 16px 5px rgba(255,208,128,0.6) } }
@keyframes viv-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) opacity:0.7 } 100% { transform: scaleX(1) opacity:1 } }

/* body-found */
.scn-body-found { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a1a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%); }
.scn-body-found .wall-interior { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5); }
.scn-body-found .floor-interior { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); }
.scn-body-found .window-dim { position:absolute; top:15%; left:60%; width:40px; height:60px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(100,100,180,0.3); animation: body-win 8s ease-in-out infinite alternate; }
.scn-body-found .body-floor { position:absolute; bottom:28%; left:35%; width:60px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: body-fall 15s ease-in-out infinite; }
.scn-body-found .curtain-shadow { position:absolute; top:0; left:10%; width:20px; height:100%; background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: body-curtain 12s ease-in-out infinite alternate; }
.scn-body-found .object-table { position:absolute; bottom:30%; left:70%; width:30px; height:14px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.4); }
.scn-body-found .hand-reach { position:absolute; bottom:30%; left:38%; width:10px; height:20px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%; transform: rotate(20deg); animation: body-hand 6s ease-in-out infinite; }
@keyframes body-win { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.3 } }
@keyframes body-fall { 0% { transform: rotate(-10deg) translateY(0) } 30% { transform: rotate(-8deg) translateY(-2px) } 70% { transform: rotate(-12deg) translateY(1px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes body-curtain { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes body-hand { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) translateX(2px) } 100% { transform: rotate(18deg) } }

/* chase-fugitive */
.scn-chase-fugitive { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #3a3a4a 100%), radial-gradient(ellipse at 50% 60%, #4a4a5a 0%, transparent 60%); }
.scn-chase-fugitive .wall-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: 2px 0 10px rgba(0,0,0,0.5); }
.scn-chase-fugitive .wall-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(270deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: -2px 0 10px rgba(0,0,0,0.5); }
.scn-chase-fugitive .floor-chase { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); }
.scn-chase-fugitive .doorway { position:absolute; bottom:20%; left:50%; width:30%; height:80%; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #1a1a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 15px rgba(0,0,0,0.8); }
.scn-chase-fugitive .pursuer { position:absolute; bottom:20%; left:25%; width:16px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 40% 40% 60%; transform-origin: bottom; animation: chase-pursuer 1.5s ease-in-out infinite; }
.scn-chase-fugitive .fugitive { position:absolute; bottom:20%; left:55%; width:14px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 40% 40% 60%; transform-origin: bottom; animation: chase-fugitive 1.5s ease-in-out infinite reverse; }
.scn-chase-fugitive .lantern-wall { position:absolute; bottom:50%; left:10%; width:10px; height:10px; background: radial-gradient(circle, #ffb060 0%, #b06020 70%); border-radius:50%; box-shadow: 0 0 18px 4px rgba(255,176,96,0.6); animation: chase-lantern 2s ease-in-out infinite alternate; }
@keyframes chase-pursuer { 0% { transform: translateX(0) rotate(-3deg) scaleY(1) } 25% { transform: translateX(6px) rotate(2deg) scaleY(1.02) } 50% { transform: translateX(12px) rotate(-1deg) scaleY(0.98) } 75% { transform: translateX(18px) rotate(1deg) scaleY(1.01) } 100% { transform: translateX(24px) rotate(0) scaleY(1) } }
@keyframes chase-fugitive { 0% { transform: translateX(0) rotate(1deg) scaleY(1) } 25% { transform: translateX(-5px) rotate(-2deg) scaleY(1.01) } 50% { transform: translateX(-10px) rotate(1deg) scaleY(0.99) } 75% { transform: translateX(-15px) rotate(-1deg) scaleY(1.02) } 100% { transform: translateX(-20px) rotate(0) scaleY(1) } }
@keyframes chase-lantern { 0% { opacity:0.7; box-shadow: 0 0 12px 3px rgba(255,176,96,0.5) } 50% { opacity:1; box-shadow: 0 0 24px 8px rgba(255,176,96,0.8) } 100% { opacity:0.8; box-shadow: 0 0 16px 4px rgba(255,176,96,0.6) } }

/* rannoch-hall-again */
.scn-rannoch-hall-again { background: linear-gradient(180deg, #c8a878 0%, #a08050 40%, #806040 100%), radial-gradient(ellipse at 50% 30%, #e8c888 0%, transparent 60%); }
.scn-rannoch-hall-again .wall-hall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #d8b890 0%, #b09060 100%); box-shadow: inset 0 -30px 50px rgba(0,0,0,0.2); }
.scn-rannoch-hall-again .floor-hall { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #705030 0%, #503020 100%); }
.scn-rannoch-hall-again .pillar-left { position:absolute; top:0; left:15%; width:6%; height:80%; background: linear-gradient(90deg, #c8a878 0%, #a08050 30%, #c8a878 60%, #a08050 100%); border-radius: 10% 10% 0 0; box-shadow: 2px 0 10px rgba(0,0,0,0.3); }
.scn-rannoch-hall-again .pillar-right { position:absolute; top:0; right:15%; width:6%; height:80%; background: linear-gradient(90deg, #c8a878 0%, #a08050 30%, #c8a878 60%, #a08050 100%); border-radius: 10% 10% 0 0; box-shadow: -2px 0 10px rgba(0,0,0,0.3); }
.scn-rannoch-hall-again .chandelier { position:absolute; top:5%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse, #e0c080 0%, #c8a060 50%, #a08040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 30px 10px rgba(224,192,128,0.5); animation: ran-chandelier 4s ease-in-out infinite alternate; }
.scn-rannoch-hall-again .guests { position:absolute; bottom:25%; left:20%; right:20%; height:30%; background: repeating-linear-gradient(90deg, #3a2a1a 0%, #3a2a1a 8px, transparent 8px, transparent 16px); mask-image: radial-gradient(ellipse at 50% 0%, black 30%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at 50% 0%, black 30%, transparent 70%); animation: ran-guests 12s ease-in-out infinite; }
.scn-rannoch-hall-again .protagonist { position:absolute; bottom:25%; left:45%; width:20px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ran-protagonist 8s ease-in-out infinite; }
.scn-rannoch-hall-again .table-hall { position:absolute; bottom:25%; left:35%; width:80px; height:8px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
@keyframes ran-chandelier { 0% { opacity:0.8; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.03) } 100% { opacity:0.9; transform: translateX(-50%) scale(0.98) } }
@keyframes ran-guests { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes ran-protagonist { 0% { transform: translateX(-50%) rotate(-1deg) } 30% { transform: translateX(-50%) rotate(0.5deg) } 70% { transform: translateX(-50%) rotate(-0.5deg) } 100% { transform: translateX(-50%) rotate(0) } }

/* silence-fear: tense + bright-interior — warm ochre interior, sharp shadows, uneasy stillness */
.scn-silence-fear { background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #6a5a4a 0%, transparent 70%); }
.scn-silence-fear .wall    { position:absolute; inset:5%; background: linear-gradient(135deg, #6a5a4a, #4a3a2a); box-shadow: inset 0 0 60px #1a0a00; border-radius:4px; }
.scn-silence-fear .window  { position:absolute; inset:15% 60% 40% 15%; background: linear-gradient(180deg, #2a3a5a 0%, #5a7a9a 100%); border:8px solid #2a1a0a; border-radius:4px; box-shadow: inset 0 0 30px #0a0a1a, 0 0 20px rgba(42, 58, 90, 0.5); animation: sf-window 12s ease-in-out infinite alternate; }
.scn-silence-fear .figure  { position:absolute; bottom:10%; left:42%; width:12%; height:50%; background: #1a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-figure 4s ease-in-out infinite; }
.scn-silence-fear .lamp    { position:absolute; top:18%; left:46%; width:8%; height:12%; background: radial-gradient(circle at 50% 50%, #ffd080 0%, #b08040 60%, #5a3a1a 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255, 208, 128, 0.4), 0 0 120px 40px rgba(255, 208, 128, 0.1); animation: sf-lamp 3s ease-in-out infinite alternate; }
.scn-silence-fear .shadow  { position:absolute; left:30%; bottom:0; width:50%; height:100%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 70%, transparent 100%); transform-origin: bottom center; animation: sf-shadow 5s ease-in-out infinite alternate; }
.scn-silence-fear .desk    { position:absolute; bottom:0; left:15%; width:70%; height:12%; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:6px 6px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.5); }
.scn-silence-fear .paper   { position:absolute; bottom:14%; left:48%; width:10%; height:12%; background: #d4c4a0; transform: rotate(-8deg) translateX(-50%); border-radius:2px; box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: sf-paper 6s ease-in-out infinite; }
.scn-silence-fear .chair   { position:absolute; bottom:0; left:22%; width:18%; height:25%; background: linear-gradient(180deg, #3a2a1a, #1a0a00); border-radius:8px 8px 0 0; transform-origin: bottom center; }

@keyframes sf-window  { 0% { opacity:0.7; background-position: 0% 0%; } 50% { opacity:1; background-position: 50% 100%; } 100% { opacity:0.8; background-position: 100% 50%; } }
@keyframes sf-figure  { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sf-lamp    { 0% { transform: scale(1) translateY(0); opacity:0.8; box-shadow: 0 0 40px 10px rgba(255,208,128,0.3); } 50% { transform: scale(1.05) translateY(-2px); opacity:1; box-shadow: 0 0 80px 30px rgba(255,208,128,0.5); } 100% { transform: scale(0.95) translateY(1px); opacity:0.75; box-shadow: 0 0 30px 5px rgba(255,208,128,0.2); } }
@keyframes sf-shadow  { 0% { transform: scaleX(1) translateX(0); opacity:0.6; } 50% { transform: scaleX(1.2) translateX(-10px); opacity:0.8; } 100% { transform: scaleX(0.8) translateX(10px); opacity:0.5; } }
@keyframes sf-paper   { 0% { transform: rotate(-8deg) translateX(-50%) translateY(0); } 50% { transform: rotate(8deg) translateX(-50%) translateY(-2px); } 100% { transform: rotate(-8deg) translateX(-50%) translateY(0); } }

/* minister-de-witte: tense + bright-interior — rich dark wood office, two figures locked */
.scn-minister-de-witte { background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #8a7a6a 0%, transparent 70%); }
.scn-minister-de-witte .wall-wainscot { position:absolute; bottom:30%; height:70%; left:0; right:0; background: linear-gradient(90deg, #5a4a3a, #7a6a5a, #5a4a3a); border-bottom: 8px solid #1a0a00; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); }
.scn-minister-de-witte .floor         { position:absolute; bottom:0; height:30%; left:0; right:0; background: linear-gradient(180deg, #3a2a1a, #1a0a00); box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); }
.scn-minister-de-witte .desk          { position:absolute; bottom:12%; right:10%; width:45%; height:22%; background: linear-gradient(135deg, #2a1a0a, #4a3a2a); border-radius: 4px 4px 0 0; box-shadow: 0 8px 30px rgba(0,0,0,0.6); transform: perspective(800px) rotateX(5deg); }
.scn-minister-de-witte .minister      { position:absolute; bottom:15%; right:22%; width:16%; height:45%; background: #1a0a00; border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-minister 5s ease-in-out infinite; }
.scn-minister-de-witte .protagonist   { position:absolute; bottom:8%; left:12%; width:14%; height:48%; background: #2a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mw-protagonist 4s ease-in-out infinite; }
.scn-minister-de-witte .window        { position:absolute; top:8%; left:8%; width:22%; height:45%; background: linear-gradient(180deg, #9ac0e0 0%, #6a8aaa 100%); border: 8px solid #2a1a0a; border-radius: 4px; box-shadow: inset 0 0 30px #fff, 0 0 40px rgba(154, 192, 224, 0.3); }
.scn-minister-de-witte .flag          { position:absolute; top:8%; right:12%; width:18%; height:12%; background: linear-gradient(180deg, #4a6a8a 33%, #b0c0d0 33% 66%, #a0461a 66%); transform: skewX(-10deg); border-radius: 2px; box-shadow: 2px 2px 10px rgba(0,0,0,0.3); animation: mw-flag 8s ease-in-out infinite; }
.scn-minister-de-witte .chair-ante    { position:absolute; bottom:5%; left:22%; width:18%; height:20%; background: linear-gradient(180deg, #3a2a1a, #1a0a00); border-radius: 6px 6px 0 0; transform-origin: bottom center; }

@keyframes mw-minister      { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(3deg) scaleX(1.02); } 60% { transform: translateY(0) rotate(-2deg) scaleX(0.98); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mw-protagonist   { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-2deg); } 75% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mw-flag          { 0% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-5deg) translateY(-4px); } 100% { transform: skewX(-10deg) translateY(0); } }

/* farewell-defiant: tense + bright-interior — cold palace, figure leaving through doorway */
.scn-farewell-defiant { background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%), radial-gradient(ellipse at 50% 100%, #6a7a8a 0%, transparent 70%); }
.scn-farewell-defiant .wall           { position:absolute; inset:5%; background: linear-gradient(135deg, #5a6a7a, #3a4a5a); box-shadow: inset 0 0 80px #0a1a2a; border-radius: 4px; }
.scn-farewell-defiant .doorway        { position:absolute; inset:8% 35% 12% 35%; background: linear-gradient(180deg, #1a2a3a, #0a1a2a); border: 10px solid #2a3a4a; border-radius: 60% 60% 8% 8% / 30% 30% 8% 8%; box-shadow: inset 0 0 100px #000, 0 0 40px rgba(0,0,0,0.5); }
.scn-farewell-defiant .floor          { position:absolute; bottom:0; height:12%; left:0; right:0; background: linear-gradient(180deg, #4a5a6a, #2a3a4a); box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); }
.scn-farewell-defiant .figure-leaving { position:absolute; bottom:5%; left:40%; width:10%; height:45%; background: #0a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fd-figure 6s ease-in-out infinite; z-index:2; }
.scn-farewell-defiant .baron          { position:absolute; bottom:8%; right:18%; width:14%; height:42%; background: #1a2a3a; border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fd-baron 5s ease-in-out infinite; }
.scn-farewell-defiant .light-beam     { position:absolute; top:0; left:38%; width:14%; height:100%; background: linear-gradient(180deg, rgba(200,220,240,0.3) 0%, rgba(200,220,240,0.1) 50%, transparent 100%); transform-origin: top center; animation: fd-beam 4s ease-in-out infinite; z-index:1; }
.scn-farewell-defiant .shadow         { position:absolute; bottom:5%; left:38%; width:12%; height:8%; background: rgba(0,0,0,0.6); border-radius: 50%; transform: translateX(30px) scale(1.4); animation: fd-shadow 6s ease-in-out infinite; z-index:1; }

@keyframes fd-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(-3deg); } 50% { transform: translateX(25px) rotate(0deg) scaleX(0.95); } 75% { transform: translateX(40px) rotate(2deg); } 100% { transform: translateX(60px) rotate(0deg); } }
@keyframes fd-baron  { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(5deg) scaleX(1.03); } 60% { transform: translateY(0) rotate(-3deg) scaleX(0.97); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fd-beam   { 0% { transform: scaleX(1) translateY(0); opacity:0.6; } 50% { transform: scaleX(1.2) translateY(-10px); opacity:1; } 100% { transform: scaleX(0.8) translateY(10px); opacity:0.4; } }
@keyframes fd-shadow { 0% { transform: translateX(20px) scale(1.2); opacity:0.7; } 50% { transform: translateX(60px) scale(1.6); opacity:0.9; } 100% { transform: translateX(20px) scale(1.2); opacity:0.7; } }

/* escaped-palace: tense + overcast — muted blue-grey, hotel room, figure at window */
.scn-escaped-palace { background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 50%, #7a8a9a 0%, transparent 70%); }
.scn-escaped-palace .window-frame { position:absolute; inset:5% 10% 5% 45%; border: 14px solid #2a3a4a; border-radius: 6px; background: linear-gradient(180deg, #8a9aaa, #6a7a8a); box-shadow: inset 0 0 40px #4a5a6a, 0 0 30px rgba(0,0,0,0.3); z-index:2; }
.scn-escaped-palace .cityscape    { position:absolute; inset:5% 10% 5% 45%; background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 50%, #5a6a7a 100%); border-radius: 4px; z-index:1; animation: ep-city 20s linear infinite; }
.scn-escaped-palace .hotel-room   { position:absolute; inset:5% 0% 5% 0%; background: linear-gradient(135deg, #3a4a5a, #2a3a4a); z-index:0; }
.scn-escaped-palace .figure       { position:absolute; bottom:8%; left:20%; width:16%; height:50%; background: #1a2a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ep-figure 5s ease-in-out infinite; z-index:3; }
.scn-escaped-palace .cigar        { position:absolute; top:32%; left:28%; width:4%; height:2%; background: radial-gradient(circle, #d08040, #8a5020); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(208, 128, 64, 0.5); animation: ep-cigar 3s ease-in-out infinite alternate; z-index:4; }
.scn-escaped-palace .chair        { position:absolute; bottom:5%; left:5%; width:18%; height:28%; background: linear-gradient(180deg, #2a3a4a, #1a2a3a); border-radius: 6px 6px 0 0; transform-origin: bottom center; z-index:1; }
.scn-escaped-palace .lamp         { position:absolute; top:15%; left:5%; width:8%; height:18%; background: radial-gradient(circle at 50% 20%, #c0b080, #8a7a5a, #4a3a2a); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 10px rgba(192, 176, 128, 0.3); animation: ep-lamp 6s ease-in-out infinite alternate; z-index:1; }

@keyframes ep-figure  { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(8px) rotate(3deg); } 60% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ep-cigar   { 0% { transform: scale(1); opacity:0.6; box-shadow: 0 0 20px 5px rgba(208,128,64,0.3); } 50% { transform: scale(1.2); opacity:1; box-shadow: 0 0 50px 15px rgba(208,128,64,0.6); } 100% { transform: scale(0.9); opacity:0.5; box-shadow: 0 0 10px 2px rgba(208,128,64,0.2); } }
@keyframes ep-city    { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes ep-lamp    { 0% { transform: translateY(0); opacity:0.8; box-shadow: 0 0 30px 5px rgba(192,176,128,0.2); } 50% { transform: translateY(-2px); opacity:1; box-shadow: 0 0 60px 20px rgba(192,176,128,0.4); } 100% { transform: translateY(0); opacity:0.7; box-shadow: 0 0 20px 3px rgba(192,176,128,0.1); } }

.scn-sleepless-night {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 50%, #12122a 100%), radial-gradient(ellipse at 70% 30%, rgba(100,150,255,0.15) 0%, transparent 70%);
}
.scn-sleepless-night .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1a 100%);
}
.scn-sleepless-night .window {
  position: absolute; top: 10%; left: 30%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #2a4a6e 0%, #4a6a8e 100%);
  border: 4px solid #3a2a1a;
  box-shadow: inset 0 0 20px rgba(100,150,255,0.2);
  border-radius: 4px;
  animation: sn-window 10s ease-in-out infinite;
}
.scn-sleepless-night .moon {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 20px;
  background: radial-gradient(circle, #e8f0ff 0%, #a0b8d0 70%, #8098b0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px #a0b8d0, 0 0 60px rgba(160,184,208,0.4);
  animation: sn-moon 8s ease-in-out infinite alternate;
}
.scn-sleepless-night .gaslamp {
  position: absolute; bottom: 20%; left: 60%;
  width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b06020 70%, #5a2010 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px #ffd080, 0 0 80px rgba(255,208,128,0.3);
  animation: sn-glow 3s ease-in-out infinite alternate;
}
.scn-sleepless-night .bed {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 5px 10px rgba(0,0,0,0.5);
}
.scn-sleepless-night .figure {
  position: absolute; bottom: 8%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sn-breathe 4s ease-in-out infinite;
}
.scn-sleepless-night .book {
  position: absolute; bottom: 12%; left: 35%; width: 4%; height: 3%;
  background: #2a1a0a;
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
@keyframes sn-window {
  0% { background: linear-gradient(180deg, #2a4a6e 0%, #4a6a8e 100%); opacity: 0.9; }
  50% { background: linear-gradient(180deg, #1a3a5e 0%, #3a5a7e 100%); opacity: 1; }
  100% { background: linear-gradient(180deg, #2a4a6e 0%, #4a6a8e 100%); opacity: 0.9; }
}
@keyframes sn-moon {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-3px) scale(1.05); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes sn-glow {
  0% { box-shadow: 0 0 30px #b06020, 0 0 60px rgba(176,96,32,0.2); opacity: 0.7; }
  50% { box-shadow: 0 0 50px #ffd080, 0 0 100px rgba(255,208,128,0.4); opacity: 1; }
  100% { box-shadow: 0 0 35px #b06020, 0 0 70px rgba(176,96,32,0.25); opacity: 0.8; }
}
@keyframes sn-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}

.scn-murder-news {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 40%, #f5deb3 70%, #8B7355 100%), radial-gradient(ellipse at 80% 20%, rgba(255,215,0,0.2) 0%, transparent 50%);
}
.scn-murder-news .sky {
  position: absolute; inset: 0 0 40% 0;
  background: transparent;
}
.scn-murder-news .sun {
  position: absolute; top: 8%; right: 15%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #fff9c4 0%, #ffeb3b 60%, #fbc02d 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px #ffeb3b, 0 0 120px rgba(255,235,59,0.3);
  animation: mn-sun 12s ease-in-out infinite alternate;
}
.scn-murder-news .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-murder-news .tree-left {
  position: absolute; bottom: 30%; left: 8%;
  width: 8px; height: 50%;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: mn-tree-sway 6s ease-in-out infinite alternate;
}
.scn-murder-news .tree-right {
  position: absolute; bottom: 30%; right: 8%;
  width: 8px; height: 50%;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: mn-tree-sway 7s ease-in-out infinite alternate-reverse;
}
.scn-murder-news .figure-left {
  position: absolute; bottom: 28%; left: 35%;
  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: mn-figure-move 5s ease-in-out infinite;
}
.scn-murder-news .figure-right {
  position: absolute; bottom: 28%; right: 35%;
  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: mn-figure-move 6s ease-in-out infinite -1s;
}
@keyframes mn-sun {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(10px, -5px) scale(1.1); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes mn-tree-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes mn-figure-move {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(-3deg) scaleY(1.02); }
  50% { transform: rotate(0deg) scaleY(1); }
  75% { transform: rotate(3deg) scaleY(1.02); }
  100% { transform: rotate(0deg) scaleY(1); }
}

.scn-man-body-surprise {
  background: linear-gradient(180deg, #ffeb3b 0%, #ff9800 40%, #e65100 100%), radial-gradient(ellipse at 50% 30%, rgba(255,235,59,0.3) 0%, transparent 60%);
}
.scn-man-body-surprise .sky {
  position: absolute; inset: 0;
  background: transparent;
}
.scn-man-body-surprise .branch {
  position: absolute; top: 0; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #4e342e 0%, #3e2723 100%);
  border-radius: 40% 60% 0 0;
  animation: mbs-branch 5s ease-in-out infinite alternate;
}
.scn-man-body-surprise .trunk {
  position: absolute; top: 5%; left: 48%; width: 4%; height: 40%;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 4px;
  transform-origin: top center;
  animation: mbs-trunk 7s ease-in-out infinite alternate;
}
.scn-man-body-surprise .figure {
  position: absolute; bottom: 25%; left: 45%; transform: translateX(-50%);
  width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mbs-figure 4s ease-in-out infinite;
}
.scn-man-body-surprise .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
}
.scn-man-body-surprise .shadow {
  position: absolute; bottom: 15%; left: 40%; width: 25%; height: 10%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  transform: rotateX(60deg);
  animation: mbs-shadow 6s ease-in-out infinite alternate;
}
.scn-man-body-surprise .dapple {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,255,0.2) 0%, transparent 5%),
    radial-gradient(circle at 60% 50%, rgba(255,255,255,0.15) 0%, transparent 8%),
    radial-gradient(circle at 80% 35%, rgba(255,255,255,0.1) 0%, transparent 6%);
  animation: mbs-dapple 12s linear infinite;
}
@keyframes mbs-branch {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1.5deg); }
  100% { transform: rotate(-0.5deg); }
}
@keyframes mbs-trunk {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes mbs-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(1deg) scaleY(1.01); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-50%) rotate(-1deg) scaleY(1.01); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes mbs-shadow {
  0% { transform: rotateX(60deg) scaleX(1); }
  50% { transform: rotateX(60deg) scaleX(0.9); }
  100% { transform: rotateX(60deg) scaleX(1); }
}
@keyframes mbs-dapple {
  0% { opacity: 0.5; background-position: 0% 0%, 0% 0%, 0% 0%; }
  50% { opacity: 0.8; background-position: 10% 5%, -5% -3%, 7% -2%; }
  100% { opacity: 0.5; background-position: 0% 0%, 0% 0%, 0% 0%; }
}

.scn-dumfries-mortuary {
  background: linear-gradient(180deg, #1e1e1e 0%, #0a0a0a 100%), radial-gradient(ellipse at 50% 35%, rgba(200,200,200,0.15) 0%, transparent 60%);
}
.scn-dumfries-mortuary .floor {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a2a 0%, #141414 100%);
}
.scn-dumfries-mortuary .table {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 -5px 15px rgba(0,0,0,0.5);
}
.scn-dumfries-mortuary .sheet {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 25%;
  background: linear-gradient(180deg, #d0d0d0 0%, #a0a0a0 100%);
  border-radius: 10px 10px 40px 40px / 20px 20px 60px 60px;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: dm-sheet 8s ease-in-out infinite;
}
.scn-dumfries-mortuary .body-bump {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #b0b0b0 0%, #808080 100%);
  border-radius: 50% / 30%;
  animation: dm-bump 6s ease-in-out infinite alternate;
}
.scn-dumfries-mortuary .light {
  position: absolute; top: 0; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.2) 0%, transparent 70%);
  animation: dm-light 4s ease-in-out infinite alternate;
}
.scn-dumfries-mortuary .shadow {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 5%;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  transform: rotateX(60deg);
}
.scn-dumfries-mortuary .hand {
  position: absolute; bottom: 25%; left: 40%; width: 10px; height: 15px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: dm-hand 5s ease-in-out infinite;
}
@keyframes dm-sheet {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes dm-bump {
  0% { transform: scaleX(1) scaleY(1); }
  50% { transform: scaleX(0.98) scaleY(1.03); }
  100% { transform: scaleX(1) scaleY(1); }
}
@keyframes dm-light {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes dm-hand {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}

.scn-lydia-interview {
  background: linear-gradient(135deg, #f5e6d0 0%, #e8d5b0 100%), radial-gradient(ellipse at 50% 20%, #fff5e0 0%, transparent 70%);
}
.scn-lydia-interview .li-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0dfc0 0%, #d8c4a0 100%);
}
.scn-lydia-interview .li-window {
  position: absolute; top: 10%; left: 15%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #c8e8f0 0%, #a0d0e0 100%);
  border: 4px solid #b09070;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: li-window-glow 6s ease-in-out infinite alternate;
}
.scn-lydia-interview .li-table {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #8b6f4a 0%, #6b4f2a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-lydia-interview .li-chair1,
.scn-lydia-interview .li-chair2 {
  position: absolute; bottom: 25%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #6b4f2a 0%, #4a3520 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: li-chair-sway 4s ease-in-out infinite;
}
.scn-lydia-interview .li-chair1 { left: 30%; }
.scn-lydia-interview .li-chair2 { left: 55%; animation-delay: -2s; }
.scn-lydia-interview .li-lamp {
  position: absolute; top: 15%; right: 20%; width: 6%; height: 15%;
  background: radial-gradient(circle at 50% 0%, #ffd080 0%, #c08040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px rgba(255,200,100,0.5);
  animation: li-lamp-flicker 3s ease-in-out infinite alternate;
}
.scn-lydia-interview .li-rug {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(90deg, #a08060 0%, #c0a080 20%, #a08060 50%, #806040 80%, #a08060 100%);
  border-radius: 50% / 100% 100% 0 0;
  opacity: 0.6;
}
@keyframes li-window-glow {
  0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.2); opacity: 0.9; }
  50% { box-shadow: inset 0 0 30px rgba(255,255,200,0.4); opacity: 1; }
  100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); opacity: 0.85; }
}
@keyframes li-chair-sway {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(1.5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes li-lamp-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 25px rgba(255,200,100,0.4); }
  50% { opacity: 1; box-shadow: 0 0 40px rgba(255,200,100,0.6); }
  100% { opacity: 0.7; box-shadow: 0 0 20px rgba(255,200,100,0.3); }
}

.scn-elma-letters {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a110c 100%), radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 60%);
}
.scn-elma-letters .el-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a20 0%, #1a120c 100%);
}
.scn-elma-letters .el-desk {
  position: absolute; bottom: 15%; left: 15%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0c 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-elma-letters .el-lamp {
  position: absolute; top: 20%; left: 40%; width: 8%; height: 25%;
  background: radial-gradient(circle at 50% 0%, #e0a060 0%, #804020 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 40px #c08040;
  animation: el-lamp-glow 2s ease-in-out infinite alternate;
}
.scn-elma-letters .el-letter {
  position: absolute; bottom: 30%; left: 30%; width: 20%; height: 15%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: el-letter-rustle 5s ease-in-out infinite;
}
.scn-elma-letters .el-hand {
  position: absolute; bottom: 25%; left: 35%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #d0a080 0%, #a08060 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: el-hand-move 4s ease-in-out infinite;
}
.scn-elma-letters .el-inkwell {
  position: absolute; bottom: 25%; left: 55%; width: 5%; height: 8%;
  background: radial-gradient(circle, #2a1a0c 0%, #1a0c04 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-elma-letters .el-curtain {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 0 0 0 40%;
  opacity: 0.8;
}
@keyframes el-lamp-glow {
  0% { opacity: 0.8; box-shadow: 0 0 30px #c08040; }
  50% { opacity: 1; box-shadow: 0 0 50px #e0a060; }
  100% { opacity: 0.6; box-shadow: 0 0 25px #c08040; }
}
@keyframes el-letter-rustle {
  0% { transform: rotate(-5deg) translateX(0); }
  25% { transform: rotate(-3deg) translateX(2px); }
  50% { transform: rotate(-7deg) translateX(-1px); }
  75% { transform: rotate(-4deg) translateX(1px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes el-hand-move {
  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); }
}

.scn-elma-final-letter {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b8a0 100%), linear-gradient(135deg, #ffffff30 0%, #00000040 100%);
}
.scn-elma-final-letter .ef-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8b0 100%);
}
.scn-elma-final-letter .ef-desk {
  position: absolute; bottom: 15%; left: 10%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #8b7050 0%, #5a4a30 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
}
.scn-elma-final-letter .ef-letter {
  position: absolute; bottom: 25%; left: 30%; width: 25%; height: 20%;
  background: #f0e0c0;
  transform: skew(-5deg) rotate(10deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: ef-letter-tremble 0.5s ease-in-out infinite;
}
.scn-elma-final-letter .ef-hand {
  position: absolute; bottom: 25%; left: 35%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(15deg);
  animation: ef-hand-shake 1s ease-in-out infinite;
}
.scn-elma-final-letter .ef-pen {
  position: absolute; bottom: 30%; left: 55%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0c 100%);
  transform: rotate(-30deg);
  border-radius: 2px;
}
.scn-elma-final-letter .ef-candle {
  position: absolute; bottom: 30%; left: 20%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px #ffd080;
  animation: ef-candle-flicker 0.3s ease-in-out infinite alternate;
}
.scn-elma-final-letter .ef-shadow {
  position: absolute; bottom: 15%; left: 0; width: 100%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #00000030 100%);
  pointer-events: none;
}
@keyframes ef-letter-tremble {
  0% { transform: translateX(0) rotate(10deg); }
  25% { transform: translateX(1px) rotate(12deg); }
  50% { transform: translateX(-1px) rotate(8deg); }
  75% { transform: translateX(1px) rotate(11deg); }
  100% { transform: translateX(0) rotate(10deg); }
}
@keyframes ef-hand-shake {
  0% { transform: translateX(0) rotate(15deg); }
  25% { transform: translateX(2px) rotate(20deg); }
  50% { transform: translateX(-2px) rotate(10deg); }
  75% { transform: translateX(1px) rotate(17deg); }
  100% { transform: translateX(0) rotate(15deg); }
}
@keyframes ef-candle-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 15px #ffd080; }
  50% { opacity: 1; box-shadow: 0 0 25px #ffd080; }
  100% { opacity: 0.6; box-shadow: 0 0 10px #ffd080; }
}

.scn-woodroffe-address {
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a898 100%), linear-gradient(135deg, #ffffff20 0%, #00000010 100%);
}
.scn-woodroffe-address .wa-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 100%);
}
.scn-woodroffe-address .wa-door {
  position: absolute; left: 30%; top: 10%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3520 100%);
  border: 4px solid #3a2510;
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: wa-door-open 10s ease-in-out infinite;
}
.scn-woodroffe-address .wa-number {
  position: absolute; top: 45%; left: 42%; width: 8%; height: 10%;
  background: #e0d0b0;
  border: 2px solid #4a3520;
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
}
.scn-woodroffe-address .wa-figure {
  position: absolute; bottom: 15%; left: 15%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a120e 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wa-figure-walk 6s ease-in-out infinite;
}
.scn-woodroffe-address .wa-floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 12%;
  background: linear-gradient(90deg, #8b7050 0%, #a08060 50%, #8b7050 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
}
.scn-woodroffe-address .wa-light {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 30% 20%, #fff5e0 0%, transparent 60%);
  animation: wa-light-beam 8s linear infinite;
}
@keyframes wa-door-open {
  0% { transform: rotateY(0deg); }
  25% { transform: rotateY(15deg); }
  50% { transform: rotateY(0deg); }
  75% { transform: rotateY(-10deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes wa-figure-walk {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(20px) rotate(3deg) scaleY(0.98); }
  50% { transform: translateX(40px) rotate(-2deg) scaleY(1); }
  75% { transform: translateX(60px) rotate(2deg) scaleY(0.98); }
  100% { transform: translateX(80px) rotate(0deg) scaleY(1); }
}
@keyframes wa-light-beam {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

.scn-mystery-told-durnford { background: linear-gradient(180deg, #f7e8c0 0%, #f0d6a0 50%, #d4b080 100%), radial-gradient(ellipse at 30% 20%, #fff5e0 0%, transparent 60%); }
.scn-mystery-told-durnford .mt-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a2d5f2 0%, #d0e8f0 70%, transparent 100%); }
.scn-mystery-told-durnford .mt-sea { position:absolute; top:40%; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #5b8fab 0%, #3a6a7a 100%); }
.scn-mystery-told-durnford .mt-deck { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b6b4a 0%, #5a3e2a 100%); }
.scn-mystery-told-durnford .mt-cloud { position:absolute; top:15%; left:10%; width:100px; height:30px; background: radial-gradient(ellipse, rgba(255,255,255,0.8) 0%, transparent 70%); filter: blur(5px); animation: mt-cloud 20s linear infinite; }
.scn-mystery-told-durnford .mt-figure1 { position:absolute; bottom:15%; left:30%; width:24px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mt-fig1 4s ease-in-out infinite; }
.scn-mystery-told-durnford .mt-figure2 { position:absolute; bottom:18%; right:25%; width:22px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: mt-fig2 5s ease-in-out infinite; }
.scn-mystery-told-durnford .mt-yacht { position:absolute; bottom:30%; left:60%; width:50px; height:14px; background: linear-gradient(90deg, #5a3e2a 0%, #3a2a1a 100%); border-radius: 30% 50% 20% 20%; transform: rotate(3deg); animation: mt-yacht 3s ease-in-out infinite alternate; }
@keyframes mt-cloud { 0% { transform: translateX(-120px); } 50% { transform: translateX(40vw); } 100% { transform: translateX(120vw); } }
@keyframes mt-fig1 { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes mt-fig2 { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes mt-yacht { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(4deg) translateY(0); } }

.scn-lola-name-shock { background: linear-gradient(135deg, #d4c8a0 0%, #b8a080 50%, #8a6a4a 100%), radial-gradient(ellipse at 40% 50%, #e0d4b8 0%, transparent 80%); }
.scn-lola-name-shock .ln-bg { position:absolute; inset:0; background: linear-gradient(180deg, #a08060 0%, #604830 100%); }
.scn-lola-name-shock .ln-window { position:absolute; top:10%; left:20%; width:40%; height:30%; background: linear-gradient(135deg, #f0e8d0 0%, #c8b898 100%); border-radius: 4px; box-shadow: 0 0 20px rgba(255,240,200,0.6); }
.scn-lola-name-shock .ln-ray { position:absolute; top:0; left:30%; width:10%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.1) 0%, transparent 100%); transform: skewX(-20deg); animation: ln-ray 4s ease-in-out infinite alternate; }
.scn-lola-name-shock .ln-figure1 { position:absolute; bottom:10%; left:15%; width:28px; height:80px; background: linear-gradient(180deg, #2a1a0e 0%, #0e0a06 100%); border-radius: 40% 30% 20% 20% / 60% 40% 30% 30%; transform-origin: bottom center; animation: ln-fig1 1s ease-in-out infinite; }
.scn-lola-name-shock .ln-figure2 { position:absolute; bottom:10%; right:20%; width:26px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: ln-fig2 0.8s ease-in-out infinite; }
.scn-lola-name-shock .ln-paper { position:absolute; top:45%; left:45%; width:40px; height:30px; background: #f0e0c0; border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: ln-paper 2s ease-in-out infinite; }
@keyframes ln-ray { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.2; } }
@keyframes ln-fig1 { 0% { transform: rotate(0) translateY(0); } 20% { transform: rotate(-5deg) translateY(-10px); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes ln-fig2 { 0% { transform: rotate(0) translateY(0); } 15% { transform: rotate(10deg) translateY(-15px); } 60% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes ln-paper { 0% { transform: rotate(-5deg) translateX(0); } 30% { transform: rotate(-15deg) translateX(10px); } 70% { transform: rotate(5deg) translateX(-5px); } 100% { transform: rotate(-5deg) translateX(0); } }

.scn-bitter-memories { background: linear-gradient(180deg, #f5d8b0 0%, #d4b080 50%, #a08050 100%), radial-gradient(ellipse at 70% 30%, #ffe8c0 0%, transparent 70%); }
.scn-bitter-memories .bm-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c8d8 0%, #d8e0e8 70%, transparent 100%); }
.scn-bitter-memories .bm-sea { position:absolute; top:40%; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #6b8a9a 0%, #3a5a6a 100%); }
.scn-bitter-memories .bm-deck { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); }
.scn-bitter-memories .bm-sun { position:absolute; top:20%; left:75%; width:40px; height:40px; background: radial-gradient(circle, #ffe8a0 0%, #ffd070 60%, transparent 100%); border-radius:50%; animation: bm-sun 8s ease-in-out infinite alternate; }
.scn-bitter-memories .bm-figure { position:absolute; bottom:10%; left:20%; width:24px; height:70px; background: linear-gradient(180deg, #2a1a0e 0%, #0e0a06 100%); border-radius: 40% 30% 20% 20% / 60% 40% 30% 30%; transform-origin: bottom center; animation: bm-walk 2s steps(4) infinite; }
.scn-bitter-memories .bm-shadow { position:absolute; bottom:10%; left:20%; width:30px; height:10px; background: rgba(0,0,0,0.3); border-radius: 50%; transform: translateX(12px); animation: bm-shadow 2s steps(4) infinite; }
.scn-bitter-memories .bm-cloud { position:absolute; top:12%; right:5%; width:60px; height:20px; background: rgba(255,255,255,0.5); filter: blur(4px); border-radius: 50%; animation: bm-cloud 30s linear infinite reverse; }
@keyframes bm-sun { 0% { transform: scale(0.9); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }
@keyframes bm-walk { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-4px) rotate(-2deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes bm-shadow { 0% { transform: translateX(12px) scale(1); opacity:0.3; } 25% { transform: translateX(15px) scale(0.9); opacity:0.2; } 50% { transform: translateX(12px) scale(1); opacity:0.3; } 75% { transform: translateX(9px) scale(1.1); opacity:0.4; } 100% { transform: translateX(12px) scale(1); opacity:0.3; } }
@keyframes bm-cloud { 0% { transform: translateX(0); } 50% { transform: translateX(-40vw); } 100% { transform: translateX(-80vw); } }

.scn-durnford-conceals { background: linear-gradient(135deg, #c8b898 0%, #a08050 50%, #806040 100%), radial-gradient(ellipse at 60% 40%, #e0d0b8 0%, transparent 70%); }
.scn-durnford-conceals .dc-bg { position:absolute; inset:0; background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%); }
.scn-durnford-conceals .dc-window { position:absolute; top:10%; right:15%; width:30%; height:25%; background: radial-gradient(ellipse, #f0e8d0 0%, #c8b898 100%); border-radius: 4px; box-shadow: 0 0 30px rgba(255,240,200,0.4); }
.scn-durnford-conceals .dc-lamp { position:absolute; top:30%; left:25%; width:6px; height:10px; background: #c08040; border-radius: 50%; box-shadow: 0 0 20px 6px #c08040; animation: dc-lamp 2s ease-in-out infinite alternate; }
.scn-durnford-conceals .dc-safe { position:absolute; bottom:20%; left:35%; width:60px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0e 100%); border-radius: 4px; border: 2px solid #3a2a1a; animation: dc-safe 6s ease-in-out infinite; }
.scn-durnford-conceals .dc-figure1 { position:absolute; bottom:15%; left:10%; width:26px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 40% 30% 20% 20% / 60% 40% 30% 30%; transform-origin: bottom center; animation: dc-fig1 3s ease-in-out infinite; }
.scn-durnford-conceals .dc-figure2 { position:absolute; bottom:15%; right:20%; width:22px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: dc-fig2 4s ease-in-out infinite; }
@keyframes dc-lamp { 0% { opacity:0.7; box-shadow: 0 0 10px 2px #c08040; } 50% { opacity:1; box-shadow: 0 0 30px 10px #ffd060; } 100% { opacity:0.8; box-shadow: 0 0 15px 4px #c08040; } }
@keyframes dc-safe { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes dc-fig1 { 0% { transform: rotate(-2deg) translateY(0); } 30% { transform: rotate(5deg) translateY(-5px); } 70% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes dc-fig2 { 0% { transform: rotate(0) translateY(0); } 40% { transform: rotate(-4deg) translateY(-3px); } 80% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }

/* one block per scene id. Append to style.css. */
.scn-chater-profession { background: linear-gradient(180deg, #d4c4a8 0%, #c0b090 50%, #a89880 100%), radial-gradient(ellipse at 20% 50%, #eee0c8 0%, transparent 60%); }
.scn-chater-profession .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #c8b8a0 0%, #e0d0b8 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.1); }
.scn-chater-profession .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b7355 0%, #6b5740 100%); border-top: 2px solid #a08060; }
.scn-chater-profession .window { position:absolute; top:15%; left:10%; width:40%; height:40%; background: linear-gradient(180deg, #b8d8e8 0%, #d8e8f0 100%); border: 4px solid #6a5a4a; box-shadow: 0 0 20px rgba(255,255,240,.2); animation: ch-window 8s ease-in-out infinite alternate; }
.scn-chater-profession .desk { position:absolute; bottom:30%; left:5%; width:30%; height:10%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-chater-profession .chair { position:absolute; bottom:30%; left:12%; width:6%; height:12%; background: linear-gradient(180deg, #7a6040 0%, #4a3020 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform: translateY(-4%); animation: ch-chair 12s ease-in-out infinite; }
.scn-chater-profession .bookshelf { position:absolute; top:15%; right:10%; width:20%; height:45%; background: repeating-linear-gradient(180deg, #8b7355 0px, #8b7355 4px, #a08060 4px, #a08060 8px, #c0a880 8px, #c0a880 12px); border: 2px solid #5a4030; box-shadow: inset 0 0 10px rgba(0,0,0,.2); }
.scn-chater-profession .picture { position:absolute; top:20%; left:55%; width:10%; height:20%; background: linear-gradient(135deg, #c8b8a0 0%, #e0d0b8 100%); border: 3px solid #4a3828; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: ch-pic 15s ease-in-out infinite alternate; }
.scn-chater-profession .lamp { position:absolute; bottom:35%; right:12%; width:4%; height:8%; background: radial-gradient(circle at 50% 0%, #f0e0a0 0%, #c8b060 50%, transparent 70%); box-shadow: 0 0 12px 4px rgba(240,224,160,.5); animation: ch-lamp 6s ease-in-out infinite alternate; }
@keyframes ch-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ch-chair { 0%,100% { transform: translateY(-4%) rotate(0deg); } 50% { transform: translateY(-6%) rotate(2deg); } }
@keyframes ch-pic { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes ch-lamp { 0% { box-shadow: 0 0 8px 2px rgba(240,224,160,.4); } 50% { box-shadow: 0 0 16px 6px rgba(240,224,160,.7); } 100% { box-shadow: 0 0 10px 3px rgba(240,224,160,.5); } }

.scn-captain-cut-lie { background: linear-gradient(180deg, #2a1e1a 0%, #3a2a24 50%, #1a120e 100%), radial-gradient(ellipse at 50% 30%, #6a4a3a 0%, transparent 70%); }
.scn-captain-cut-lie .ceiling { position:absolute; top:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a100c 0%, #2a1e18 100%); }
.scn-captain-cut-lie .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a20 0%, #1a0e0a 100%); }
.scn-captain-cut-lie .wall-left { position:absolute; top:20%; left:0; width:30%; height:50%; background: linear-gradient(180deg, #4a3628 0%, #2a1e12 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-captain-cut-lie .wall-right { position:absolute; top:20%; right:0; width:30%; height:50%; background: linear-gradient(180deg, #4a3628 0%, #2a1e12 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-captain-cut-lie .bulb { position:absolute; top:10%; left:50%; width:8px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #f0c860 0%, #c08030 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(240,200,96,.6), 0 0 60px 20px rgba(240,200,96,.3); animation: cc-bulb 2s steps(2) infinite; }
.scn-captain-cut-lie .crate { position:absolute; bottom:30%; left:20%; width:15%; height:12%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border: 2px solid #2a1a0e; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: cc-crate 4s ease-in-out infinite; }
.scn-captain-cut-lie .rifles { position:absolute; top:25%; left:35%; width:30%; height:8%; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 2px, #3a2a1a 2px, #3a2a1a 4px, #7a6a5a 4px, #7a6a5a 6px, #3a2a1a 6px, #3a2a1a 8px, #5a4a3a 8px, #5a4a3a 10px); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.5); animation: cc-rifles 5s ease-in-out infinite alternate; }
.scn-captain-cut-lie .shadow { position:absolute; bottom:30%; left:25%; width:40%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); transform: skewX(-20deg); animation: cc-shadow 3s ease-in-out infinite alternate; }
@keyframes cc-bulb { 0% { box-shadow: 0 0 30px 10px rgba(240,200,96,.6), 0 0 60px 20px rgba(240,200,96,.3); } 50% { box-shadow: 0 0 40px 15px rgba(240,200,96,.8), 0 0 70px 25px rgba(240,200,96,.4); } 100% { box-shadow: 0 0 30px 10px rgba(240,200,96,.6), 0 0 60px 20px rgba(240,200,96,.3); } }
@keyframes cc-crate { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cc-rifles { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cc-shadow { 0% { transform: skewX(-20deg) translateX(0); } 50% { transform: skewX(-20deg) translateX(5px); } 100% { transform: skewX(-20deg) translateX(0); } }

.scn-torn-photograph-found { background: linear-gradient(180deg, #2c2c4a 0%, #4a3a5a 30%, #6a4a3a 60%, #3a2a2a 100%), radial-gradient(ellipse at 50% 0%, #8a6a5a 0%, transparent 70%); }
.scn-torn-photograph-found .wall-dusk { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); }
.scn-torn-photograph-found .floor-dusk { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-top: 2px solid #3a2a2a; }
.scn-torn-photograph-found .window-dusk { position:absolute; top:15%; left:8%; width:35%; height:45%; background: linear-gradient(180deg, #8a6a5a 0%, #4a3a5a 100%); border: 4px solid #2a1a2a; box-shadow: 0 0 15px rgba(138,106,90,.3); animation: tp-window 10s ease-in-out infinite alternate; }
.scn-torn-photograph-found .curtain { position:absolute; top:13%; left:5%; width:40%; height:50%; background: linear-gradient(90deg, rgba(50,30,40,.7) 0%, transparent 30%, transparent 70%, rgba(50,30,40,.7) 100%); animation: tp-curtain 12s ease-in-out infinite; }
.scn-torn-photograph-found .couch { position:absolute; bottom:30%; left:20%; width:50%; height:20%; background: linear-gradient(180deg, #4a3028 0%, #2a1810 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-torn-photograph-found .shadow-couch { position:absolute; bottom:28%; left:18%; width:55%; height:5%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); border-radius: 50%; animation: tp-shadow 6s ease-in-out infinite alternate; }
.scn-torn-photograph-found .photo-torn { position:absolute; bottom:28%; left:38%; width:4%; height:6%; background: linear-gradient(135deg, #d0b8a0 0%, #a08060 100%); clip-path: polygon(0% 0%, 80% 0%, 100% 30%, 100% 100%, 0% 100%); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: tp-photo 4s ease-in-out infinite; }
.scn-torn-photograph-found .dust-mote { position:absolute; top:20%; left:70%; width:2px; height:2px; background: rgba(255,255,240,.4); border-radius: 50%; box-shadow: 0 0 4px rgba(255,255,240,.2); animation: tp-dust 8s ease-in-out infinite; }
@keyframes tp-window { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes tp-curtain { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes tp-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes tp-photo { 0%,100% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(3deg) scale(1.05); } }
@keyframes tp-dust { 0% { transform: translate(0,0); opacity:0.2; } 50% { transform: translate(-5px, -8px); opacity:0.8; } 100% { transform: translate(0,0); opacity:0.2; } }

.scn-yacht-night-smoke { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 40%, #2a2a5a 100%), radial-gradient(ellipse at 30% 40%, #4a4a7a 0%, transparent 70%); }
.scn-yacht-night-smoke .sky-night { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 100%); }
.scn-yacht-night-smoke .stars { position:absolute; top:5%; left:0; right:0; height:40%; background: repeating-linear-gradient(90deg, white 0px, white 1px, transparent 1px, transparent 20px), repeating-linear-gradient(180deg, white 0px, white 1px, transparent 1px, transparent 30px); background-size: 10px 10px; opacity: 0.3; animation: yn-stars 30s linear infinite; }
.scn-yacht-night-smoke .moon { position:absolute; top:10%; right:15%; width:30px; height:30px; background: radial-gradient(circle, #e8e8e0 0%, #c0c0b8 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(232,232,224,.3), 0 0 40px 16px rgba(232,232,224,.1); animation: yn-moon 12s ease-in-out infinite alternate; }
.scn-yacht-night-smoke .sea-back { position:absolute; bottom:25%; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 100%); animation: yn-sea 8s ease-in-out infinite alternate; }
.scn-yacht-night-smoke .sea-front { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%); animation: yn-sea 10s ease-in-out infinite alternate-reverse; box-shadow: inset 0 4px 10px rgba(0,0,0,.3); }
.scn-yacht-night-smoke .yacht { position:absolute; bottom:28%; left:30%; width:15%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 0 0 40% 40% / 0 0 100% 100%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: yn-yacht 6s ease-in-out infinite; }
.scn-yacht-night-smoke .mast { position:absolute; bottom:35%; left:35%; width:2px; height:12%; background: #1a1a1a; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-yacht-night-smoke .smoke-a { position:absolute; bottom:36%; left:32%; width:6px; height:8px; background: rgba(180,180,200,.2); border-radius: 50%; filter: blur(3px); animation: yn-smoke-a 15s ease-in-out infinite; }
.scn-yacht-night-smoke .smoke-b { position:absolute; bottom:36%; left:32%; width:8px; height:10px; background: rgba(180,180,200,.15); border-radius: 50%; filter: blur(4px); animation: yn-smoke-b 20s ease-in-out infinite; animation-delay: -5s; }
@keyframes yn-stars { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }
@keyframes yn-moon { 0% { box-shadow: 0 0 20px 8px rgba(232,232,224,.3), 0 0 40px 16px rgba(232,232,224,.1); } 50% { box-shadow: 0 0 25px 12px rgba(232,232,224,.4), 0 0 50px 20px rgba(232,232,224,.15); } 100% { box-shadow: 0 0 20px 8px rgba(232,232,224,.3), 0 0 40px 16px rgba(232,232,224,.1); } }
@keyframes yn-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes yn-yacht { 0%,100% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes yn-smoke-a { 0% { transform: translate(0,0) scale(1); opacity:0.2; } 50% { transform: translate(-10px, -20px) scale(2); opacity:0; } 100% { transform: translate(0,0) scale(1); opacity:0.2; } }
@keyframes yn-smoke-b { 0% { transform: translate(0,0) scale(1); opacity:0.15; } 50% { transform: translate(-8px, -15px) scale(2.5); opacity:0; } 100% { transform: translate(0,0) scale(1); opacity:0.15; } }

.scn-surprise-who {
  background:
    linear-gradient(180deg, #2a1f4e 0%, #5a3a3a 40%, #8a5a3a 70%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 80%, #b07a4a 0%, transparent 60%);
}
.scn-surprise-who .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1f4e 0%, transparent 100%);
  animation: su-sky 12s ease-in-out infinite alternate;
}
.scn-surprise-who .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: su-hills 8s ease-in-out infinite alternate;
}
.scn-surprise-who .figure {
  position: absolute; bottom: 30%; left: 45%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: su-figure 6s ease-in-out infinite;
}
.scn-surprise-who .tree {
  position: absolute; bottom: 30%; left: 8%; width: 30px; height: 100px;
  background: #1a1a1a;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: su-tree 6s ease-in-out infinite;
}
.scn-surprise-who .bush1 {
  position: absolute; bottom: 25%; left: 5%; width: 60px; height: 25px;
  background: #2a2a1a;
  border-radius: 50%;
  animation: su-bush1 10s ease-in-out infinite;
}
.scn-surprise-who .bush2 {
  position: absolute; bottom: 28%; right: 8%; width: 50px; height: 20px;
  background: #2a2a1a;
  border-radius: 50%;
  animation: su-bush2 12s ease-in-out infinite;
  animation-delay: -4s;
}
@keyframes su-sky {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes su-hills {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes su-figure {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(3deg); }
}
@keyframes su-tree {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-2deg); }
}
@keyframes su-bush1 {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
@keyframes su-bush2 {
  0%, 100% { transform: scale(1.05); }
  50% { transform: scale(1); }
}

.scn-chase-abandoned {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #4a3a2a 50%, #7a5a3a 70%, #2a1a0a 100%),
    radial-gradient(ellipse at 30% 70%, #b07a4a 0%, transparent 50%);
}
.scn-chase-abandoned .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, transparent 100%);
  animation: ca-sky 10s ease-in-out infinite alternate;
}
.scn-chase-abandoned .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 60% 0 0 / 70% 50% 0 0;
  animation: ca-hills 8s ease-in-out infinite alternate;
}
.scn-chase-abandoned .stream {
  position: absolute; bottom: 22%; left: 0; width: 100%; height: 5%;
  background: linear-gradient(90deg, #4a6a7a 0%, #3a5a6a 50%, #4a6a7a 100%);
  animation: ca-stream 4s linear infinite;
}
.scn-chase-abandoned .bank {
  position: absolute; bottom: 20%; right: 0; width: 60%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 0 0 0 / 100% 0 0 0;
  animation: ca-bank 6s ease-in-out infinite;
}
.scn-chase-abandoned .tree {
  position: absolute; bottom: 30%; left: 5%; width: 40px; height: 120px;
  background: #1a1a1a;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: ca-tree 5s ease-in-out infinite;
}
.scn-chase-abandoned .body {
  position: absolute; bottom: 25%; left: 6%; width: 14px; height: 10px;
  background: #0a0a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ca-body 3s ease-in-out infinite;
}
.scn-chase-abandoned .figure1 {
  position: absolute; bottom: 30%; right: 35%; width: 12px; height: 25px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-run1 2s ease-in-out infinite;
}
.scn-chase-abandoned .figure2 {
  position: absolute; bottom: 30%; right: 18%; width: 12px; height: 25px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-run2 2s ease-in-out infinite;
  animation-delay: -0.5s;
}
@keyframes ca-sky {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes ca-hills {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes ca-stream {
  0% { background-position: 0 0; }
  100% { background-position: 100% 0; }
}
@keyframes ca-bank {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ca-tree {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
}
@keyframes ca-body {
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
}
@keyframes ca-run1 {
  0%, 100% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(15px) rotate(2deg); }
}
@keyframes ca-run2 {
  0%, 100% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(15px) rotate(-2deg); }
}

.scn-decision-to-go {
  background:
    linear-gradient(180deg, #2a1a3e 0%, #5a2a2a 40%, #7a4a3a 70%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 60%, #b07040 0%, transparent 60%);
}
.scn-decision-to-go .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a3e 0%, transparent 100%);
  animation: de-sky 14s ease-in-out infinite alternate;
}
.scn-decision-to-go .castle {
  position: absolute; bottom: 20%; left: 50%; width: 35%; height: 50%;
  background: #2a1a0a;
  clip-path: polygon(0% 100%, 15% 80%, 15% 60%, 25% 60%, 25% 80%, 35% 80%, 35% 50%, 45% 50%, 45% 70%, 55% 70%, 55% 100%);
  animation: de-castle 8s ease-in-out infinite;
}
.scn-decision-to-go .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  box-shadow: 0 -4px 10px rgba(0,0,0,.3);
}
.scn-decision-to-go .figure1 {
  position: absolute; bottom: 18%; left: 30%; width: 10px; height: 22px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: de-walk1 3s ease-in-out infinite;
}
.scn-decision-to-go .figure2 {
  position: absolute; bottom: 18%; left: 38%; width: 12px; height: 24px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: de-walk2 3s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-decision-to-go .lantern {
  position: absolute; bottom: 28%; left: 52%; width: 8px; height: 8px;
  background: #f0c068;
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(240,192,104,0.7), 0 0 40px 10px rgba(240,192,104,0.3);
  animation: de-lantern 2s ease-in-out infinite;
}
.scn-decision-to-go .cloud {
  position: absolute; top: 15%; right: 10%; width: 70px; height: 15px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: de-cloud 45s linear infinite;
}
@keyframes de-sky {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes de-castle {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes de-walk1 {
  0%, 100% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(20px) translateY(-2px) rotate(2deg); }
}
@keyframes de-walk2 {
  0%, 100% { transform: translateX(0) translateY(0) rotate(2deg); }
  50% { transform: translateX(20px) translateY(-2px) rotate(-2deg); }
}
@keyframes de-lantern {
  0%, 100% { box-shadow: 0 0 20px 5px rgba(240,192,104,0.7), 0 0 40px 10px rgba(240,192,104,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 30px 8px rgba(240,192,104,1), 0 0 60px 20px rgba(240,192,104,0.6); opacity: 1; }
}
@keyframes de-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-200px); }
}

.scn-police-report {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a1e 40%, #3a2a1e 70%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-police-report .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a1e 0%, #1a1a0e 100%);
}
.scn-police-report .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e0a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
}
.scn-police-report .desk {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-police-report .lamp {
  position: absolute; bottom: 38%; left: 45%; width: 10px; height: 12px;
  background: #d0a060;
  border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 25px 8px rgba(208,160,96,0.7), 0 0 40px 15px rgba(208,160,96,0.3);
  animation: po-lamp 3s ease-in-out infinite;
}
.scn-police-report .figure-sitting {
  position: absolute; bottom: 22%; left: 25%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: po-sit 5s ease-in-out infinite;
}
.scn-police-report .figure-standing {
  position: absolute; bottom: 18%; left: 55%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: po-stand 6s ease-in-out infinite;
}
.scn-police-report .window {
  position: absolute; top: 15%; right: 10%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 2px solid #3a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: po-window 8s ease-in-out infinite;
}
@keyframes po-lamp {
  0%, 100% { box-shadow: 0 0 25px 8px rgba(208,160,96,0.7), 0 0 40px 15px rgba(208,160,96,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 35px 12px rgba(208,160,96,1), 0 0 60px 25px rgba(208,160,96,0.5); opacity: 1; }
}
@keyframes po-sit {
  0%, 100% { transform: scale(1) translateX(0); }
  50% { transform: scale(1.02) translateX(2px); }
}
@keyframes po-stand {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes po-window {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}

.scn-father\'s-role {
  background: 
    linear-gradient(135deg, #f4e4c1 0%, #d4b88a 40%, #b0956a 100%),
    radial-gradient(ellipse at 20% 30%, #fff8e7 0%, transparent 60%);
}
.scn-father\'s-role .room-wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #dac4a0 0%, #c4a880 50%, #b0956a 100%);
  animation: fth-wall 10s ease-in-out infinite alternate;
}
.scn-father\'s-role .room-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #7a5f3a 0%, #4d3921 100%);
  border-top: 3px solid #8c6e44;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: fth-floor 8s ease-in-out infinite alternate;
}
.scn-father\'s-role .window-light {
  position: absolute;
  top: 8%;
  left: 12%;
  width: 40%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #ffeac2 0%, #b8a075 60%, transparent 80%);
  border-radius: 20% 20% 0 0;
  opacity: 0.6;
  animation: fth-light 6s ease-in-out infinite alternate;
}
.scn-father\'s-role .lamp {
  position: absolute;
  top: 22%;
  right: 18%;
  width: 18px;
  height: 28px;
  background: radial-gradient(ellipse at 50% 100%, #f0c060 0%, #d09030 60%, transparent 80%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 40px 12px rgba(240,192,96,0.5), 0 0 80px 20px rgba(240,192,96,0.2);
  animation: fth-lamp 4s ease-in-out infinite alternate;
}
.scn-father\'s-role .table {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 40%;
  height: 5%;
  background: linear-gradient(180deg, #6b4d2a 0%, #3e2b15 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: fth-table 12s ease-in-out infinite alternate;
}
.scn-father\'s-role .figure-left {
  position: absolute;
  bottom: 12%;
  left: 18%;
  width: 8%;
  height: 28%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1c120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fth-fig-left 5s ease-in-out infinite;
}
.scn-father\'s-role .figure-right {
  position: absolute;
  bottom: 19%;
  right: 24%;
  width: 7%;
  height: 22%;
  background: linear-gradient(135deg, #4a3620 0%, #2a1e0e 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fth-fig-right 4s ease-in-out infinite;
}
.scn-father\'s-role .cushion {
  position: absolute;
  bottom: 15%;
  left: 42%;
  width: 16%;
  height: 4%;
  background: linear-gradient(180deg, #8c6e44 0%, #5e4530 100%);
  border-radius: 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: fth-cushion 15s ease-in-out infinite alternate;
}
.scn-father\'s-role .dust-motes {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(255,230,180,0.15) 2px, transparent 2px);
  background-size: 40px 40px;
  filter: blur(1px);
  pointer-events: none;
  animation: fth-dust 12s linear infinite;
}
@keyframes fth-wall {
  0% { opacity: 0.95; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.03); }
  100% { opacity: 0.92; filter: brightness(0.98); }
}
@keyframes fth-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes fth-light {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.75; transform: scale(1.02); }
  100% { opacity: 0.55; transform: scale(0.98); }
}
@keyframes fth-lamp {
  0% { box-shadow: 0 0 30px 8px rgba(240,192,96,0.4), 0 0 60px 15px rgba(240,192,96,0.15); opacity: 0.9; }
  50% { box-shadow: 0 0 50px 16px rgba(240,192,96,0.6), 0 0 100px 25px rgba(240,192,96,0.3); opacity: 1; }
  100% { box-shadow: 0 0 35px 10px rgba(240,192,96,0.45), 0 0 70px 18px rgba(240,192,96,0.2); opacity: 0.85; }
}
@keyframes fth-table {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.01) translateY(-1px); }
  100% { transform: scaleX(0.99) translateY(1px); }
}
@keyframes fth-fig-left {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fth-fig-right {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-1px) rotate(3deg); }
  66% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fth-cushion {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.05); }
  100% { transform: translateY(1px) scale(0.98); }
}
@keyframes fth-dust {
  0% { background-position: 0 0; }
  100% { background-position: 40px 40px; }
}

/* Scene: flight-from-trap */
.scn-flight-from-trap {
  background:
    linear-gradient(180deg, #1a1410 0%, #2c2018 30%, #3a2a1e 60%, #1a1410 100%),
    radial-gradient(ellipse at 30% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-flight-from-trap .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #2c1e16 0%, #1a120e 100%);
  z-index: 0;
}
.scn-flight-from-trap .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #3e2c1e 0%, #2a1c12 100%);
  border-radius: 0 0 10% 10% / 0 0 20% 20%;
  z-index: 1;
}
.scn-flight-from-trap .trap-door {
  position: absolute;
  bottom: 22%;
  left: 38%;
  width: 60px;
  height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1c12 100%);
  border-radius: 4px;
  transform: rotate(-15deg);
  transform-origin: left center;
  animation: ft-trap 2s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-flight-from-trap .table {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 80px;
  height: 50px;
  background: linear-gradient(180deg, #6a5038 0%, #3a2818 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  z-index: 3;
}
.scn-flight-from-trap .lantern {
  position: absolute;
  bottom: 32%;
  left: 58%;
  width: 12px;
  height: 18px;
  background: radial-gradient(circle at 50% 30%, #ffd680 0%, #c08040 100%);
  border-radius: 4px;
  box-shadow: 0 0 24px 6px #c08040, 0 0 48px 12px rgba(192,128,64,0.4);
  animation: ft-lantern 3s ease-in-out infinite alternate;
  z-index: 4;
}
.scn-flight-from-trap .figure {
  position: absolute;
  bottom: 18%;
  left: 20%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ft-figure 2.5s ease-in-out infinite;
  z-index: 5;
}
.scn-flight-from-trap .light-shaft {
  position: absolute;
  top: 0;
  left: 30%;
  width: 120px;
  height: 100%;
  background: linear-gradient(180deg, rgba(255,214,128,0.15) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ft-shaft 4s ease-in-out infinite alternate;
  z-index: 6;
}
.scn-flight-from-trap .shadow {
  position: absolute;
  bottom: 18%;
  left: 18%;
  width: 40px;
  height: 12px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: ft-shadow 2.5s ease-in-out infinite;
  z-index: 0;
}
@keyframes ft-trap {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(-10deg) translateY(2px); }
  100% { transform: rotate(-15deg); }
}
@keyframes ft-lantern {
  0% { box-shadow: 0 0 18px 4px #c08040; opacity: 0.85; }
  50% { box-shadow: 0 0 32px 10px #ffd060; opacity: 1; }
  100% { box-shadow: 0 0 22px 5px #c08040; opacity: 0.9; }
}
@keyframes ft-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  33% { transform: translateX(8px) translateY(-4px) rotate(2deg); }
  66% { transform: translateX(16px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(24px) translateY(0) rotate(0deg); }
}
@keyframes ft-shaft {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.1); }
  100% { opacity: 0.7; transform: scaleX(0.95); }
}
@keyframes ft-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(10px) scaleX(1.2); opacity: 0.3; }
  100% { transform: translateX(20px) scaleX(1); opacity: 0.5; }
}

/* Scene: escape-downstairs */
.scn-escape-downstairs {
  background:
    linear-gradient(180deg, #1e1614 0%, #2a1c18 40%, #3a2a22 70%, #1e1614 100%),
    radial-gradient(ellipse at 50% 80%, #4a3228 0%, transparent 60%);
}
.scn-escape-downstairs .wall-left {
  position: absolute;
  left: 0;
  top: 0;
  width: 25%;
  height: 100%;
  background: linear-gradient(90deg, #2a1c18 0%, #1a120e 100%);
  z-index: 1;
}
.scn-escape-downstairs .wall-right {
  position: absolute;
  right: 0;
  top: 0;
  width: 25%;
  height: 100%;
  background: linear-gradient(270deg, #2a1c18 0%, #1a120e 100%);
  z-index: 1;
}
.scn-escape-downstairs .stairs {
  position: absolute;
  bottom: 0;
  left: 25%;
  width: 50%;
  height: 100%;
  background: repeating-linear-gradient(0deg, #3e2a20 0px, #3e2a20 12px, #2a1c14 12px, #2a1c14 14px);
  clip-path: polygon(5% 0, 95% 0, 100% 100%, 0% 100%);
  animation: ed-stairs 6s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-escape-downstairs .figure {
  position: absolute;
  bottom: 60%;
  left: 42%;
  width: 20px;
  height: 44px;
  background: linear-gradient(180deg, #1e1816 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ed-figure 3s ease-in-out infinite;
  z-index: 3;
}
.scn-escape-downstairs .door {
  position: absolute;
  bottom: 8%;
  left: 43%;
  width: 60px;
  height: 90px;
  background: linear-gradient(180deg, #4a3428 0%, #2a1c14 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  transform: rotateY(5deg);
  z-index: 4;
}
.scn-escape-downstairs .light-above {
  position: absolute;
  top: 0;
  left: 35%;
  width: 30%;
  height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,0.2) 0%, transparent 70%);
  animation: ed-light 5s ease-in-out infinite alternate;
  z-index: 5;
}
.scn-escape-downstairs .shadow-stairs {
  position: absolute;
  bottom: 0;
  left: 25%;
  width: 50%;
  height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(6px);
  z-index: 0;
}
@keyframes ed-stairs {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0px); }
}
@keyframes ed-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  33% { transform: translateX(-6px) translateY(-10px) rotate(1deg); }
  66% { transform: translateX(-12px) translateY(-20px) rotate(-1deg); }
  100% { transform: translateX(-18px) translateY(-30px) rotate(0deg); }
}
@keyframes ed-light {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.7; transform: scaleY(0.9); }
}

/* Scene: shot-in-passage */
.scn-shot-in-passage {
  background: linear-gradient(180deg, #1a1512 0%, #2a1f1a 40%, #1e1a18 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a22 0%, transparent 60%);
}
.scn-shot-in-passage .pss-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1714 0%, #2a1c16 50%, #1c1411 100%);
  animation: pss-bg-shift 12s ease-in-out infinite alternate;
}
.scn-shot-in-passage .pss-wall-left {
  position: absolute; left: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #4a362e 0%, #2e221c 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,.5);
  animation: pss-wall 8s ease-in-out infinite alternate;
}
.scn-shot-in-passage .pss-wall-right {
  position: absolute; right: 0; top: 0; width: 35%; height: 100%;
  background: linear-gradient(270deg, #4a362e 0%, #2e221c 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,.5);
}
.scn-shot-in-passage .pss-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1812 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,.6);
}
.scn-shot-in-passage .pss-door {
  position: absolute; bottom: 18%; left: 48%; width: 60px; height: 90px;
  margin-left: -30px;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2618 100%);
  border: 2px solid #2a1a10;
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.7), inset 0 2px 4px rgba(255,200,150,.15);
  animation: pss-door 15s ease-in-out infinite;
}
.scn-shot-in-passage .pss-figure {
  position: absolute; bottom: 19%; left: 42%; width: 20px; height: 40px;
  margin-left: -10px;
  background: linear-gradient(180deg, #1c1410 0%, #0c0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pss-walk 3s ease-in-out infinite;
}
.scn-shot-in-passage .pss-lamp {
  position: absolute; top: 20%; right: 18%; width: 12px; height: 16px;
  border-radius: 50% 50% 40% 40%;
  background: radial-gradient(circle, #d49a5a 0%, #8a6030 100%);
  box-shadow: 0 0 20px 6px #b07040, 0 0 40px 12px rgba(176,112,64,.3);
  animation: pss-flicker 1.2s ease-in-out infinite alternate;
}
.scn-shot-in-passage .pss-flash {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 30px;
  margin-left: -15px;
  background: radial-gradient(circle, #fffbe8 0%, #ffe080 40%, transparent 70%);
  border-radius: 50%;
  opacity: 0;
  animation: pss-muzzle 0.4s ease-out 0.5s;
}
.scn-shot-in-passage .pss-shadow {
  position: absolute; bottom: 19%; left: 41%; width: 30px; height: 8px;
  margin-left: -15px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  transform: skewX(-15deg) scaleY(0.5);
  filter: blur(2px);
  animation: pss-shadow 3s ease-in-out infinite;
}

@keyframes pss-bg-shift {
  0%, 100% { opacity: .8; background-position: 0% 0%; }
  50% { opacity: 1; background-position: 2% 1%; }
}
@keyframes pss-wall {
  0% { transform: translateX(0); }
  50% { transform: translateX(-2px); }
  100% { transform: translateX(0); }
}
@keyframes pss-door {
  0% { transform: none; }
  50% { transform: translateX(-2px) translateY(1px); }
  100% { transform: none; }
}
@keyframes pss-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-2px) 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(0deg); }
}
@keyframes pss-flicker {
  0% { opacity: .75; box-shadow: 0 0 14px 4px #b07040, 0 0 28px 8px rgba(176,112,64,.2); }
  50% { opacity: 1; box-shadow: 0 0 24px 8px #e0a860, 0 0 48px 16px rgba(224,168,96,.5); }
  100% { opacity: .8; box-shadow: 0 0 16px 5px #906830, 0 0 32px 10px rgba(144,104,48,.3); }
}
@keyframes pss-muzzle {
  0% { transform: scale(0); opacity: 1; }
  60% { transform: scale(1.8); opacity: .6; }
  100% { transform: scale(2.2); opacity: 0; }
}
@keyframes pss-shadow {
  0% { opacity: 0.4; transform: skewX(-15deg) scaleY(0.5) translateX(0); }
  50% { opacity: 0.6; transform: skewX(-10deg) scaleY(0.6) translateX(4px); }
  100% { opacity: 0.4; transform: skewX(-15deg) scaleY(0.5) translateX(0); }
}

/* Scene: chagrin-olinto-false */
.scn-chagrin-olinto-false {
  background: linear-gradient(180deg, #7faac0 0%, #bcd4e6 40%, #e8f0f8 70%, #fcf8f0 100%),
              radial-gradient(ellipse at 70% 10%, #ffe890 0%, transparent 50%);
}
.scn-chagrin-olinto-false .oln-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6d9eb5 0%, #aecadd 60%, #e0edf5 100%);
  animation: oln-sky 18s ease-in-out infinite alternate;
}
.scn-chagrin-olinto-false .oln-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(180deg, #a89a7a 0%, #8a7a5a 30%, #5a4e36 100%);
  border-radius: 30% 20% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}
.scn-chagrin-olinto-false .oln-sun {
  position: absolute; top: 8%; right: 12%; width: 40px; height: 40px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff8d0 0%, #fce598 30%, transparent 70%);
  box-shadow: 0 0 40px 20px rgba(252,229,152,.6), 0 0 80px 40px rgba(252,229,152,.3);
  animation: oln-sun-pulse 6s ease-in-out infinite;
}
.scn-chagrin-olinto-false .oln-figure {
  position: absolute; bottom: 28%; left: 35%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oln-walk 4s ease-in-out infinite;
}
.scn-chagrin-olinto-false .oln-shadow {
  position: absolute; bottom: 26%; left: 34%; width: 28px; height: 6px;
  margin-left: -5px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  transform: scaleY(0.4);
  filter: blur(2px);
  animation: oln-shadow-shift 4s ease-in-out infinite;
}
.scn-chagrin-olinto-false .oln-carriage-body {
  position: absolute; bottom: 26%; left: 55%; width: 60px; height: 36px;
  margin-left: -30px;
  background: linear-gradient(135deg, #3a302a 0%, #1e1814 100%);
  border-radius: 12% 12% 6% 6% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: oln-carriage-bob 3s ease-in-out infinite;
}
.scn-chagrin-olinto-false .oln-wheel-left {
  position: absolute; bottom: 22%; left: 47%; width: 16px; height: 16px;
  margin-left: -8px;
  background: radial-gradient(circle, #2a221c 30%, #0e0a08 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: oln-wheel-spin 2s linear infinite;
}
.scn-chagrin-olinto-false .oln-wheel-right {
  position: absolute; bottom: 22%; left: 63%; width: 16px; height: 16px;
  margin-left: -8px;
  background: radial-gradient(circle, #2a221c 30%, #0e0a08 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: oln-wheel-spin 2s linear 0.2s infinite;
}
.scn-chagrin-olinto-false .oln-cloud {
  position: absolute; top: 12%; left: 20%; width: 70px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: oln-cloud-drift 30s linear infinite;
}

@keyframes oln-sky {
  0% { opacity: .85; background-position: 0% 0%; }
  50% { opacity: 1; background-position: 2% 1%; }
  100% { opacity: .9; background-position: -1% 0%; }
}
@keyframes oln-sun-pulse {
  0% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(252,229,152,.6); }
  50% { transform: scale(1.08); box-shadow: 0 0 60px 30px rgba(252,229,152,.8); }
  100% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(252,229,152,.6); }
}
@keyframes oln-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(15px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes oln-shadow-shift {
  0% { transform: scaleY(0.4) translateX(0); opacity: .5; }
  50% { transform: scaleY(0.5) translateX(5px); opacity: .7; }
  100% { transform: scaleY(0.4) translateX(0); opacity: .5; }
}
@keyframes oln-carriage-bob {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes oln-wheel-spin {
  0% { transform: rotate(0deg) scaleX(1); }
  100% { transform: rotate(360deg) scaleX(1); }
}
@keyframes oln-cloud-drift {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}

.scn-flight-from-trap {
  background: linear-gradient(135deg, #1a1a2e 0%, #0f0f1a 60%, #1a1a2e 100%),
              radial-gradient(ellipse at 30% 80%, #2a2a40 0%, transparent 60%);
}
.scn-flight-from-trap .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 70%, #0f0f1a 100%);
  animation: ft-wall 12s ease-in-out infinite alternate;
}
.scn-flight-from-trap .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-flight-from-trap .trapdoor {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 6px rgba(0,0,0,.5);
  transform-origin: left bottom;
  animation: ft-trapdoor 3s ease-in-out infinite alternate;
}
.scn-flight-from-trap .figure-running {
  position: absolute; bottom: 18%; left: 20%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ft-run 4s ease-in-out infinite;
}
.scn-flight-from-trap .lantern {
  position: absolute; bottom: 30%; left: 60%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #d0a060 0%, #8a5a20 70%, transparent 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 40px 12px #b07040, 0 0 80px 24px rgba(176,112,64,.3);
  animation: ft-flicker 2s ease-in-out infinite;
}
.scn-flight-from-trap .shadow {
  position: absolute; bottom: 16%; left: 15%; width: 60px; height: 20px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: ft-shift 4s ease-in-out infinite;
}
.scn-flight-from-trap .dust-a,
.scn-flight-from-trap .dust-b {
  position: absolute; width: 6px; height: 6px;
  background: rgba(200,200,220,.2);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-flight-from-trap .dust-a {
  top: 30%; left: 40%;
  animation: ft-drift-a 8s linear infinite;
}
.scn-flight-from-trap .dust-b {
  top: 50%; left: 70%;
  animation: ft-drift-b 10s linear infinite;
  animation-delay: -4s;
}
@keyframes ft-wall {
  0% { opacity: .8; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}
@keyframes ft-trapdoor {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(-30deg); }
  60% { transform: translateX(-50%) rotate(-60deg); }
  100% { transform: translateX(-50%) rotate(-90deg); }
}
@keyframes ft-run {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(30px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(60px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(90px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(120px) translateY(0) rotate(0deg); }
}
@keyframes ft-flicker {
  0% { opacity: .7; transform: scale(1); box-shadow: 0 0 30px 8px #b07040; }
  25% { opacity: .9; transform: scale(1.02); box-shadow: 0 0 50px 14px #b07040; }
  50% { opacity: .6; transform: scale(.98); box-shadow: 0 0 20px 4px #b07040; }
  75% { opacity: .8; transform: scale(1.01); box-shadow: 0 0 40px 10px #b07040; }
  100% { opacity: .7; transform: scale(1); box-shadow: 0 0 30px 8px #b07040; }
}
@keyframes ft-shift {
  0% { transform: translateX(0) scale(1); opacity: .5; }
  50% { transform: translateX(40px) scale(1.1); opacity: .3; }
  100% { transform: translateX(0) scale(1); opacity: .5; }
}
@keyframes ft-drift-a {
  0% { transform: translateY(0) translateX(0); opacity: .3; }
  50% { transform: translateY(-40px) translateX(20px); opacity: .1; }
  100% { transform: translateY(-80px) translateX(0); opacity: 0; }
}
@keyframes ft-drift-b {
  0% { transform: translateY(0) translateX(0); opacity: .4; }
  50% { transform: translateY(-30px) translateX(-10px); opacity: .2; }
  100% { transform: translateY(-60px) translateX(0); opacity: 0; }
}

/* scn-chagrin-olinto-false */
.scn-chagrin-olinto-false {
  background:
    linear-gradient(180deg, #f5d8a0 0%, #f0b070 30%, #c08050 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 60%);
  overflow: hidden;
}
.scn-chagrin-olinto-false .bg-sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe6b0 0%, #f0b070 100%);
  opacity: 0.9;
  animation: ch-sky 8s ease-in-out infinite alternate;
}
.scn-chagrin-olinto-false .sun {
  position: absolute;
  top: 12%;
  left: 65%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd080 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255, 200, 100, 0.5);
  animation: ch-sun 6s ease-in-out infinite alternate;
}
.scn-chagrin-olinto-false .clouds {
  position: absolute;
  top: 18%;
  left: 0;
  right: 0;
  height: 40px;
  background: radial-gradient(ellipse at 20% 50%, rgba(255, 255, 255, 0.6) 0%, transparent 60%),
    radial-gradient(ellipse at 80% 50%, rgba(255, 255, 255, 0.4) 0%, transparent 50%);
  filter: blur(6px);
  animation: ch-clouds 30s linear infinite;
}
.scn-chagrin-olinto-false .buildings {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 35%;
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%),
    repeating-linear-gradient(90deg, transparent 0 20px, rgba(0,0,0,0.3) 20px 22px);
  border-radius: 5% 5% 0 0;
  clip-path: polygon(0% 100%, 0% 60%, 5% 55%, 8% 70%, 12% 50%, 18% 65%, 22% 45%, 30% 60%, 35% 40%, 42% 55%, 48% 35%, 55% 50%, 60% 30%, 68% 45%, 72% 25%, 80% 40%, 86% 20%, 92% 35%, 100% 15%, 100% 100%);
  animation: ch-buildings 12s ease-in-out infinite alternate;
}
.scn-chagrin-olinto-false .street {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-top: 2px solid #5a4a3a;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: ch-street 10s ease-in-out infinite alternate;
}
.scn-chagrin-olinto-false .figure {
  position: absolute;
  bottom: 26%;
  left: 40%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 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: ch-figure 4s ease-in-out infinite;
}
.scn-chagrin-olinto-false .shadow {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 60px;
  height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-10px);
  animation: ch-shadow 4s ease-in-out infinite;
}
@keyframes ch-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ch-sun {
  0% { transform: scale(0.95); box-shadow: 0 0 30px 15px rgba(255,200,100,0.4); }
  50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(255,200,100,0.6); }
  100% { transform: scale(0.98); box-shadow: 0 0 35px 18px rgba(255,200,100,0.45); }
}
@keyframes ch-clouds {
  0% { transform: translateX(-20px); opacity: 0.5; }
  50% { transform: translateX(20px); opacity: 0.8; }
  100% { transform: translateX(-20px); opacity: 0.5; }
}
@keyframes ch-buildings {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.9); }
}
@keyframes ch-street {
  0% { background: linear-gradient(180deg, #4a3a2a, #2a1a0a); }
  50% { background: linear-gradient(180deg, #5a4a3a, #3a2a1a); }
  100% { background: linear-gradient(180deg, #4a3a2a, #2a1a0a); }
}
@keyframes ch-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(24px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes ch-shadow {
  0% { transform: translateX(-10px) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(6px) scaleX(1.2); opacity: 0.8; }
  100% { transform: translateX(-10px) scaleX(1); opacity: 0.6; }
}

.scn-escape-downstairs {
  background:
    linear-gradient(180deg, #1a1822 0%, #0e0c14 50%, #05040a 100%),
    radial-gradient(ellipse at 50% 15%, #2a2438 0%, transparent 60%);
}

.scn-escape-downstairs .wall-back {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 20%, rgba(60,50,80,0.3) 0%, transparent 70%);
  animation: esd-ambient 6s ease-in-out infinite alternate;
}

.scn-escape-downstairs .lamp {
  position: absolute;
  top: 6%;
  left: 18%;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: radial-gradient(circle, #f0c040 0%, #b08030 60%, #402000 100%);
  box-shadow: 0 0 30px 8px rgba(240,192,64,0.6), 0 0 60px 16px rgba(160,100,30,0.3);
  animation: esd-lamp-flicker 2s ease-in-out infinite;
}

.scn-escape-downstairs .stairs {
  position: absolute;
  bottom: 0;
  left: 5%;
  width: 90%;
  height: 75%;
  background: linear-gradient(180deg, #2a2220 0%, #1a1210 100%);
  transform: skewX(-10deg) translateX(-10px);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  clip-path: polygon(0% 0%, 100% 5%, 100% 100%, 0% 95%);
  animation: esd-stairs-pulse 4s ease-in-out infinite;
}

.scn-escape-downstairs .bannister {
  position: absolute;
  bottom: 65%;
  left: 8%;
  width: 4px;
  height: 30%;
  background: linear-gradient(180deg, #4a3a2a, #1a120a);
  transform: skewX(-10deg);
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
  animation: esd-rail-shake 3s ease-in-out infinite;
}

.scn-escape-downstairs .figure {
  position: absolute;
  bottom: 35%;
  left: 35%;
  width: 22px;
  height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  z-index: 2;
  animation: esd-figure-run 1.5s ease-in-out infinite;
}

.scn-escape-downstairs .shadow {
  position: absolute;
  bottom: 25%;
  left: 25%;
  width: 30px;
  height: 60px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(4px);
  transform: skewX(-10deg) scaleY(0.6) rotate(5deg);
  animation: esd-shadow-stretch 1.5s ease-in-out infinite;
  z-index: 1;
}

.scn-escape-downstairs .door {
  position: absolute;
  bottom: 4%;
  right: 12%;
  width: 28px;
  height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 4px 4px 0 0;
  border: 1px solid #4a3a2a;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.6), 0 4px 8px rgba(0,0,0,0.8);
  animation: esd-door-shake 2s ease-in-out infinite;
}

.scn-escape-downstairs .door::after {
  content: "";
  position: absolute;
  right: 6px;
  top: 50%;
  width: 4px;
  height: 4px;
  background: #b09070;
  border-radius: 50%;
  box-shadow: 0 0 4px #d0b090;
}

.scn-escape-downstairs .dust {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: transparent;
  box-shadow:
    40px 30px 0 2px rgba(200,180,160,0.15),
    120px 80px 0 1px rgba(200,180,160,0.1),
    200px 50px 0 3px rgba(200,180,160,0.12),
    300px 120px 0 2px rgba(200,180,160,0.08),
    80px 200px 0 1px rgba(200,180,160,0.15);
  animation: esd-dust-drift 8s linear infinite;
}

@keyframes esd-ambient {
  0%   { opacity: 0.8; }
  50%  { opacity: 1; }
  100% { opacity: 0.7; }
}

@keyframes esd-lamp-flicker {
  0%   { box-shadow: 0 0 25px 6px rgba(240,192,64,0.5), 0 0 50px 12px rgba(160,100,30,0.25); opacity: 0.85; }
  50%  { box-shadow: 0 0 40px 12px rgba(240,192,64,0.8), 0 0 80px 24px rgba(160,100,30,0.5); opacity: 1; }
  100% { box-shadow: 0 0 20px 4px rgba(240,192,64,0.4), 0 0 40px 10px rgba(160,100,30,0.2); opacity: 0.75; }
}

@keyframes esd-stairs-pulse {
  0%   { transform: skewX(-10deg) translateX(-10px) scaleY(1); }
  50%  { transform: skewX(-10deg) translateX(-10px) scaleY(1.01); }
  100% { transform: skewX(-10deg) translateX(-10px) scaleY(1); }
}

@keyframes esd-rail-shake {
  0%   { transform: skewX(-10deg) translateX(0); }
  25%  { transform: skewX(-10deg) translateX(1px) rotate(0.5deg); }
  50%  { transform: skewX(-10deg) translateX(-1px) rotate(-0.3deg); }
  100% { transform: skewX(-10deg) translateX(0); }
}

@keyframes esd-figure-run {
  0%   { transform: translateX(0) translateY(0) rotate(0deg); }
  25%  { transform: translateX(6px) translateY(-2px) rotate(-3deg); }
  50%  { transform: translateX(12px) translateY(0) rotate(2deg); }
  75%  { transform: translateX(18px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(24px) translateY(0) rotate(0deg); }
}

@keyframes esd-shadow-stretch {
  0%   { transform: skewX(-10deg) scaleY(0.6) rotate(5deg) translateX(0); }
  50%  { transform: skewX(-10deg) scaleY(0.8) rotate(6deg) translateX(4px); }
  100% { transform: skewX(-10deg) scaleY(0.6) rotate(5deg) translateX(0); }
}

@keyframes esd-door-shake {
  0%   { transform: rotate(0deg); }
  20%  { transform: rotate(1deg); }
  40%  { transform: rotate(-0.5deg); }
  60%  { transform: rotate(0.5deg); }
  80%  { transform: rotate(-1deg); }
  100% { transform: rotate(0deg); }
}

@keyframes esd-dust-drift {
  0%   { transform: translateY(0) scale(1); opacity: 0.3; }
  50%  { transform: translateY(-15px) scale(1.2); opacity: 0.6; }
  100% { transform: translateY(-30px) scale(0.9); opacity: 0.1; }
}

.scn-shot-in-passage {
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 45% 50%, #3a2a1a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-shot-in-passage .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a1a2a 0%, #0d0d1a 50%, #2a1a0a 100%);
  opacity: 0.8;
}
.scn-shot-in-passage .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #2a1a0a 0%, #1a120a 100%);
  border-top: 2px solid #3a2a1a;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-shot-in-passage .door {
  position: absolute; right: 20%; bottom: 20%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.5);
  transform-origin: right center;
  animation: sp-door 3s ease-in-out infinite alternate;
}
.scn-shot-in-passage .figure-assailant {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp-assailant 1.5s ease-in-out infinite alternate;
}
.scn-shot-in-passage .flash {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffffaa 0%, #ffcc44 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,204,68,0.6);
  animation: sp-flash 0.3s ease-in-out infinite;
}
.scn-shot-in-passage .lantern {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffcc44 0%, #aa6600 60%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 5px rgba(255,204,68,0.5);
  animation: sp-lantern 4s ease-in-out infinite alternate;
}
.scn-shot-in-passage .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sp-shadow 6s ease-in-out infinite alternate;
}
@keyframes sp-door {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(-15deg); }
  100% { transform: rotateY(0deg); }
}
@keyframes sp-assailant {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(15px) rotate(-5deg); }
  70% { transform: translateX(-10px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sp-flash {
  0%, 100% { opacity: 0; transform: scale(0.5); }
  10% { opacity: 1; transform: scale(1.2); }
  30% { opacity: 0.8; transform: scale(1); }
  60% { opacity: 0.4; transform: scale(0.8); }
}
@keyframes sp-lantern {
  0% { transform: translateY(0) rotate(-3deg); box-shadow: 0 0 15px 3px rgba(255,204,68,0.4); }
  50% { transform: translateY(-2px) rotate(3deg); box-shadow: 0 0 25px 6px rgba(255,204,68,0.6); }
  100% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 15px 3px rgba(255,204,68,0.4); }
}
@keyframes sp-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(10px) scaleX(1.2); opacity: 0.8; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.6; }
}

.scn-fathers-role {
  background: linear-gradient(180deg, #fdf5e6 0%, #d4b882 60%, #8b7355 100%),
              radial-gradient(circle at 55% 55%, rgba(255,215,0,0.2) 0%, transparent 60%);
}
.scn-fathers-role .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #f5e6c8 0%, #c4a87a 100%);
}
.scn-fathers-role .desk {
  position:absolute; bottom:10%; left:10%; right:10%; height:35%;
  background: linear-gradient(135deg, #6b4226, #3e2723);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 6px rgba(0,0,0,0.3);
}
.scn-fathers-role .lamp {
  position:absolute; bottom:42%; left:55%; width:40px; height:60px;
  background: radial-gradient(circle at 50% 100%, #ffd700, #cc8800);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: far-lamp 3s ease-in-out infinite;
}
.scn-fathers-role .figure {
  position:absolute; bottom:10%; left:28%; width:50px; height:80px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: far-figure 4s ease-in-out infinite;
}
.scn-fathers-role .document {
  position:absolute; bottom:18%; left:42%; width:40px; height:28px;
  background: #f0e0c0; border-radius: 2px; transform: rotate(-5deg);
  animation: far-document 6s ease-in-out infinite;
}
.scn-fathers-role .shadow {
  position:absolute; bottom:10%; left:25%; right:50%; height:5px;
  background: rgba(0,0,0,0.3); filter: blur(4px);
  animation: far-shadow 3s ease-in-out infinite;
}
.scn-fathers-role .window {
  position:absolute; top:8%; left:8%; width:18%; height:30%;
  background: repeating-linear-gradient(0deg, #3e2723, #3e2723 2px, transparent 2px, transparent 10px),
              linear-gradient(135deg, #fff8e7, #e0c080);
  border: 4px solid #3e2723; border-radius: 4px;
  animation: far-window 8s ease-in-out infinite alternate;
}
@keyframes far-lamp {
  0% { opacity:0.9; box-shadow: 0 0 20px #ffd700, 0 0 40px rgba(255,215,0,0.5); }
  50% { opacity:1; box-shadow: 0 0 30px #ffd700, 0 0 60px rgba(255,215,0,0.7); }
  100% { opacity:0.85; box-shadow: 0 0 15px #ffd700, 0 0 30px rgba(255,215,0,0.4); }
}
@keyframes far-figure {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes far-document {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(-6deg); }
  100% { transform: rotate(-4deg); }
}
@keyframes far-shadow {
  0% { transform: scaleX(1); opacity:0.3; }
  50% { transform: scaleX(0.95); opacity:0.4; }
  100% { transform: scaleX(1); opacity:0.3; }
}
@keyframes far-window {
  0% { opacity:0.8; box-shadow: inset 0 0 10px rgba(0,0,0,0.1); }
  50% { opacity:1; box-shadow: inset 0 0 6px rgba(0,0,0,0.05); }
  100% { opacity:0.8; box-shadow: inset 0 0 10px rgba(0,0,0,0.1); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.bg-corner { position: absolute; pointer-events: none; }
.cap-1 { position: absolute; pointer-events: none; }
.cap-2 { position: absolute; pointer-events: none; }
.door-barr { position: absolute; pointer-events: none; }
.elma-lead { position: absolute; pointer-events: none; }
.sentry-gun { position: absolute; pointer-events: none; }
.sister { position: absolute; pointer-events: none; }
.speaker-lead { position: absolute; pointer-events: none; }
.torch-flicker { position: absolute; pointer-events: none; }
.wind { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-happy-ending-reunion {
  background:
    linear-gradient(180deg, #fdd89e 0%, #f9b07a 30%, #e07a5f 60%, #7b4b6b 100%),
    radial-gradient(ellipse at 30% 60%, #fce6c0 0%, transparent 60%),
    radial-gradient(ellipse at 70% 50%, #f7c59f 0%, transparent 50%);
}
.scn-happy-ending-reunion .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fdd89e 0%, #fce6c0 40%, #f9b07a 100%);
  animation: her-sky 12s ease-in-out infinite alternate;
}
.scn-happy-ending-reunion .sea {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(180deg, #3b7a8a 0%, #2a5f70 30%, #1a3f50 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: her-sea 8s ease-in-out infinite alternate;
}
.scn-happy-ending-reunion .sun {
  position: absolute;
  top: 52%; left: 50%;
  width: 60px; height: 60px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #ffeec2 0%, #ffd59e 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,213,158,0.5), 0 0 140px 60px rgba(255,213,158,0.3);
  animation: her-glow 7s ease-in-out infinite alternate;
}
.scn-happy-ending-reunion .cloud-a {
  position: absolute;
  top: 12%; left: 15%;
  width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  filter: blur(8px);
  border-radius: 50%;
  animation: her-cloud-a 40s linear infinite;
}
.scn-happy-ending-reunion .cloud-b {
  position: absolute;
  top: 20%; right: 10%;
  width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  filter: blur(6px);
  border-radius: 50%;
  animation: her-cloud-b 55s linear infinite reverse;
}
.scn-happy-ending-reunion .ship-1 {
  position: absolute;
  bottom: 28%; left: 25%;
  width: 70px; height: 35px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: her-ship 6s ease-in-out infinite;
}
.scn-happy-ending-reunion .ship-2 {
  position: absolute;
  bottom: 30%; right: 20%;
  width: 55px; height: 28px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a10 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: her-ship 8s ease-in-out infinite 2s;
}
.scn-happy-ending-reunion .figure-a {
  position: absolute;
  bottom: 15%; left: 40%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: her-figure 4s ease-in-out infinite;
}
.scn-happy-ending-reunion .figure-b {
  position: absolute;
  bottom: 15%; left: 48%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: her-figure 4s ease-in-out infinite 0.5s;
}
@keyframes her-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes her-sea {
  0% { background-position: 0 0; }
  50% { background-position: 10% 2%; }
  100% { background-position: -10% 0; }
}
@keyframes her-glow {
  0% { box-shadow: 0 0 60px 30px rgba(255,213,158,0.5), 0 0 120px 50px rgba(255,213,158,0.3); }
  50% { box-shadow: 0 0 100px 50px rgba(255,213,158,0.7), 0 0 160px 80px rgba(255,213,158,0.4); }
  100% { box-shadow: 0 0 70px 35px rgba(255,213,158,0.5), 0 0 130px 60px rgba(255,213,158,0.3); }
}
@keyframes her-cloud-a {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(110vw); }
}
@keyframes her-cloud-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
@keyframes her-ship {
  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 her-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(1px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-1px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

.scn-confronting-baron-oberg {
  background: linear-gradient(135deg, #d4c9b8 0%, #b8a694 50%, #9a8878 100%),
              radial-gradient(ellipse at 20% 80%, #c8b8a0 0%, transparent 70%);
}
.scn-confronting-baron-oberg .wall-back {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89880 100%);
  border-bottom: 2px solid #8a7a6a;
}
.scn-confronting-baron-oberg .wall-side {
  position: absolute; top: 0; right: 0; width: 30%; height: 60%;
  background: linear-gradient(180deg, #b0a090 0%, #908070 100%);
  transform: skewX(-5deg); box-shadow: -8px 0 12px rgba(0,0,0,0.2);
}
.scn-confronting-baron-oberg .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-confronting-baron-oberg .desk {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-confronting-baron-oberg .oberg-figure {
  position: absolute; bottom: 20%; left: 45%; width: 22%; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bo-oberg 6s ease-in-out infinite alternate;
}
.scn-confronting-baron-oberg .gregg-figure {
  position: absolute; bottom: 18%; left: 20%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bo-gregg 8s ease-in-out infinite alternate;
}
.scn-confronting-baron-oberg .lamp {
  position: absolute; top: 10%; left: 70%; width: 12px; height: 20px;
  background: #b09070; border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px #d0b090;
}
.scn-confronting-baron-oberg .lamp-glow {
  position: absolute; top: 8%; left: 65%; width: 30%; height: 40%;
  background: radial-gradient(ellipse, rgba(200,180,150,0.3) 0%, transparent 70%);
  animation: bo-glow 3s ease-in-out infinite alternate;
}
@keyframes bo-oberg {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bo-gregg {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(4px) scale(0.98); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes bo-glow {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

.scn-oberg-false-accusation {
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #0a0a0a 100%),
              radial-gradient(ellipse at 70% 50%, #3a3a3a 0%, transparent 70%);
}
.scn-oberg-false-accusation .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a1a 0%, #0a0a0a 100%);
}
.scn-oberg-false-accusation .light-cone {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(200,180,150,0.15) 0%, transparent 80%);
  clip-path: polygon(20% 0, 80% 0, 90% 100%, 10% 100%);
  animation: fa-cone 5s ease-in-out infinite alternate;
}
.scn-oberg-false-accusation .oberg-profile {
  position: absolute; bottom: 20%; right: 25%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #c8b8a8 0%, #9a8a7a 100%);
  border-radius: 50% 40% 30% 50% / 60% 50% 40% 50%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.6);
  animation: fa-oberg 4s ease-in-out infinite alternate;
}
.scn-oberg-false-accusation .gregg-silhouette {
  position: absolute; bottom: 15%; left: 10%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #050505 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  filter: blur(1px);
  animation: fa-gregg 7s ease-in-out infinite;
}
.scn-oberg-false-accusation .table {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.8);
}
.scn-oberg-false-accusation .carpet {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
@keyframes fa-cone {
  0% { opacity: 0.7; transform: scaleX(0.95); }
  100% { opacity: 1; transform: scaleX(1.05); }
}
@keyframes fa-oberg {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes fa-gregg {
  0% { transform: translateX(0) scale(1); }
  25% { transform: translateX(2px) scale(0.97); }
  50% { transform: translateX(0) scale(1); }
  75% { transform: translateX(-2px) scale(0.97); }
  100% { transform: translateX(0) scale(1); }
}

.scn-oberg-threatens-imprisonment {
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1a1a 40%, #2a2a2a 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, transparent 70%);
}
.scn-oberg-threatens-imprisonment .cell-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border: 4px solid #3a3a3a;
}
.scn-oberg-threatens-imprisonment .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%);
}
.scn-oberg-threatens-imprisonment .table-close {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.9);
}
.scn-oberg-threatens-imprisonment .hand-slams {
  position: absolute; bottom: 25%; left: 50%; width: 12%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b8a8 0%, #8a7a6a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: ti-hand 0.8s ease-in-out infinite alternate;
}
.scn-oberg-threatens-imprisonment .gregg-defiant {
  position: absolute; bottom: 20%; left: 10%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #1a1a1a 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: ti-gregg 6s ease-in-out infinite;
}
.scn-oberg-threatens-imprisonment .chains {
  position: absolute; bottom: 50%; left: 70%; width: 8%; height: 30%;
  background: repeating-linear-gradient(0deg, #6a6a6a 0px, #6a6a6a 6px, #4a4a4a 6px, #4a4a4a 12px);
  border-radius: 4px; opacity: 0.6;
  animation: ti-chains 2s ease-in-out infinite;
}
@keyframes ti-hand {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  100% { transform: translateX(-50%) translateY(-6px) scale(1.1); }
}
@keyframes ti-gregg {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ti-chains {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}

.scn-train-to-st-petersburg {
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #000a1a 100%),
              radial-gradient(ellipse at 50% 0%, #2a3a4a 0%, transparent 60%);
}
.scn-train-to-st-petersburg .window-frame {
  position: absolute; top: 8%; left: 10%; width: 40%; height: 55%;
  border: 8px solid #2a2a2a; border-radius: 6px;
  background: #0a0a1a; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-train-to-st-petersburg .night-sky {
  position: absolute; top: 10%; left: 12%; width: 36%; height: 50%;
  background: linear-gradient(180deg, #0a1a2a 0%, #001020 100%);
  animation: tp-sky 30s linear infinite;
}
.scn-train-to-st-petersburg .seat {
  position: absolute; bottom: 10%; left: 60%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10px 10px 4px 4px;
  transform: perspective(200px) rotateX(10deg);
}
.scn-train-to-st-petersburg .figure-profile {
  position: absolute; bottom: 18%; left: 55%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #050515 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  animation: tp-figure 4s ease-in-out infinite alternate;
}
.scn-train-to-st-petersburg .curtain {
  position: absolute; top: 5%; right: 5%; width: 8%; height: 70%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 2px; filter: blur(1px);
  animation: tp-curtain 6s ease-in-out infinite alternate;
}
.scn-train-to-st-petersburg .handrail {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 1%;
  background: #8a7a6a; border-radius: 2px;
  transform: perspective(100px) rotateX(5deg);
}
.scn-train-to-st-petersburg .passing-lights {
  position: absolute; top: 15%; left: 15%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 30% 40%, rgba(255,200,100,0.1) 0%, transparent 50%),
              radial-gradient(ellipse at 70% 60%, rgba(255,200,100,0.08) 0%, transparent 50%);
  animation: tp-lights 8s linear infinite;
}
@keyframes tp-sky {
  0% { background-position: 0 0; }
  100% { background-position: 0 -200px; }
}
@keyframes tp-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tp-curtain {
  0% { transform: translateX(0) scaleY(1); }
  100% { transform: translateX(-8px) scaleY(0.95); }
}
@keyframes tp-lights {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(10px); }
  100% { opacity: 0.3; transform: translateY(0); }
}

/* Scenes in order */

/* yacht-description-match — wide horizon, sunlit, tense */
.scn-yacht-description-match {
  background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 30%, #f0e68c 60%, #f5deb3 100%), radial-gradient(ellipse at 50% 0%, #ffd70033 0%, transparent 60%);
}
.scn-yacht-description-match .sky { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #4a90d9 0%, #87ceeb 70%, #f0e68c 100%); animation:ydm-sky 8s ease-in-out infinite alternate; }
.scn-yacht-description-match .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background:linear-gradient(180deg, #2e6b8a 0%, #1a3f5a 100%); border-radius:0 0 50% 50% / 0 0 20% 20%; animation:ydm-sea 6s ease-in-out infinite alternate; }
.scn-yacht-description-match .yacht { position:absolute; bottom:35%; left:20%; width:35%; height:30%; background:linear-gradient(135deg, #f5f5f0 0%, #dcdcdc 50%, #c8c8c0 100%); border-radius:0 0 40% 40%; box-shadow:0 8px 24px rgba(0,0,0,.3); animation:ydm-yacht 12s ease-in-out infinite; }
.scn-yacht-description-match .funnel { position:absolute; bottom:50%; left:30%; width:6%; height:25%; background:linear-gradient(180deg, #daa520 0%, #b8860b 100%); border-radius:20% 20% 0 0; transform:skewX(-3deg); animation:ydm-funnel 5s ease-in-out infinite alternate; }
.scn-yacht-description-match .deck { position:absolute; bottom:35%; left:18%; right:40%; height:4%; background:linear-gradient(90deg, #e8e0d0 0%, #f5f0e0 50%, #e8e0d0 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,.2); }
.scn-yacht-description-match .figure { position:absolute; bottom:30%; left:62%; width:6%; height:16%; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30%; transform-origin:bottom center; animation:ydm-figure 4s ease-in-out infinite; }
.scn-yacht-description-match .sword { position:absolute; bottom:36%; left:65%; width:0.5%; height:20%; background:linear-gradient(180deg, #c0c0c0 0%, #888888 100%); border-radius:2px; transform:rotate(15deg); transform-origin:bottom center; animation:ydm-sword 3s ease-in-out infinite alternate; }
.scn-yacht-description-match .cloud-a { position:absolute; top:12%; left:10%; width:20%; height:8%; background:radial-gradient(ellipse, rgba(255,255,255,.4) 0%, transparent 70%); filter:blur(4px); animation:ydm-cloud-a 30s linear infinite; }
.scn-yacht-description-match .cloud-b { position:absolute; top:8%; right:15%; width:15%; height:6%; background:radial-gradient(ellipse, rgba(255,255,255,.3) 0%, transparent 70%); filter:blur(3px); animation:ydm-cloud-b 40s linear infinite reverse; }
@keyframes ydm-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ydm-sea { 0% { transform:translateY(0) } 50% { transform:translateY(2px) } 100% { transform:translateY(-1px) } }
@keyframes ydm-yacht { 0%,100% { transform:rotateX(0) } 50% { transform:rotateX(2deg) translateY(-2px) } }
@keyframes ydm-funnel { 0% { transform:skewX(-3deg) scaleY(1) } 50% { transform:skewX(0deg) scaleY(1.02) } 100% { transform:skewX(-3deg) scaleY(.98) } }
@keyframes ydm-figure { 0% { transform:rotate(0) } 25% { transform:rotate(2deg) } 50% { transform:rotate(-1deg) } 75% { transform:rotate(1deg) } 100% { transform:rotate(0) } }
@keyframes ydm-sword { 0% { transform:rotate(12deg) } 50% { transform:rotate(18deg) } 100% { transform:rotate(14deg) } }
@keyframes ydm-cloud-a { 0% { transform:translateX(-20vw) } 100% { transform:translateX(120vw) } }
@keyframes ydm-cloud-b { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }

/* captain-mackintosh-identity — interior cutaway, sunlit, tense */
.scn-captain-mackintosh-identity {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #c0b090 100%), radial-gradient(ellipse at 30% 50%, #ffdd99 0%, transparent 60%);
}
.scn-captain-mackintosh-identity .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(90deg, #8b7355 0%, #a08060 50%, #8b7355 100%); border-radius:0 0 10% 10%; }
.scn-captain-mackintosh-identity .wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #f0e6d0 0%, #e0d0b8 100%); }
.scn-captain-mackintosh-identity .marble { position:absolute; bottom:30%; left:35%; right:35%; height:15%; background:radial-gradient(circle at 30% 40%, #ffffff 0%, #d0d0c8 60%, #b0b0a8 100%); border-radius:8px; box-shadow:0 4px 12px rgba(0,0,0,.2); animation:cmi-marble 10s ease-in-out infinite alternate; }
.scn-captain-mackintosh-identity .arch { position:absolute; bottom:30%; left:40%; right:40%; height:20%; background:linear-gradient(180deg, #f5e8d8 0%, #e8d8c0 100%); border-radius:40% 40% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.1); animation:cmi-arch 8s ease-in-out infinite; }
.scn-captain-mackintosh-identity .pink { position:absolute; bottom:35%; left:60%; right:12%; height:40%; background:linear-gradient(135deg, #f5c0c0 0%, #e8a0a0 50%, #d08080 100%); border-radius:20% 20% 0 0; box-shadow:inset 0 4px 20px rgba(0,0,0,.15); opacity:.85; }
.scn-captain-mackintosh-identity .figure { position:absolute; bottom:25%; left:52%; width:8%; height:30%; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30%; transform-origin:bottom center; animation:cmi-figure 4s ease-in-out infinite; }
.scn-captain-mackintosh-identity .lamp { position:absolute; bottom:50%; left:48%; width:4%; height:8%; background:radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(255,208,128,.5); animation:cmi-lamp 5s ease-in-out infinite alternate; }
@keyframes cmi-marble { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cmi-arch { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } }
@keyframes cmi-figure { 0% { transform:rotate(0) } 25% { transform:rotate(1deg) translateX(2px) } 50% { transform:rotate(-1deg) translateX(-1px) } 75% { transform:rotate(0) translateX(1px) } 100% { transform:rotate(0) } }
@keyframes cmi-lamp { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }

/* durnford-enemy-revealed — close-up, tense, sunlit */
.scn-durnford-enemy-revealed {
  background: linear-gradient(135deg, #fff5e0 0%, #ffcc80 40%, #ffaa55 100%), radial-gradient(circle at 80% 30%, #ffffff 0%, transparent 50%);
}
.scn-durnford-enemy-revealed .bg { position:absolute; inset:0; background:linear-gradient(135deg, #ffe0b0 0%, #f5c080 100%); opacity:.6; }
.scn-durnford-enemy-revealed .figure-left { position:absolute; bottom:10%; left:8%; width:30%; height:80%; background:linear-gradient(180deg, #2a2a3a 0%, #151520 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:der-figure-left 6s ease-in-out infinite; }
.scn-durnford-enemy-revealed .figure-right { position:absolute; bottom:15%; right:10%; width:28%; height:70%; background:linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:der-figure-right 5s ease-in-out infinite; }
.scn-durnford-enemy-revealed .shadow { position:absolute; bottom:0; left:20%; right:20%; height:20%; background:linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.3) 100%); border-radius:50%; filter:blur(10px); animation:der-shadow 8s ease-in-out infinite alternate; }
.scn-durnford-enemy-revealed .glare { position:absolute; top:10%; right:15%; width:20%; height:20%; background:radial-gradient(circle, rgba(255,255,200,.6) 0%, transparent 70%); animation:der-glare 4s ease-in-out infinite alternate; }
@keyframes der-figure-left { 0% { transform:rotate(0) translateY(0) } 25% { transform:rotate(-2deg) translateY(-3px) } 50% { transform:rotate(1deg) translateY(-1px) } 75% { transform:rotate(-1deg) translateY(-2px) } 100% { transform:rotate(0) } }
@keyframes der-figure-right { 0% { transform:rotate(0) } 33% { transform:rotate(3deg) scale(1.02) } 66% { transform:rotate(-2deg) scale(.98) } 100% { transform:rotate(0) } }
@keyframes der-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.4 } }
@keyframes der-glare { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.5 } }

/* leithcourt-flees-castle — vertical shaft, tense, dim-interior */
.scn-leithcourt-flees-castle {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a2a2a 60%, #2a1a1a 100%), radial-gradient(circle at 50% 20%, #4a3a2a 0%, transparent 60%);
}
.scn-leithcourt-flees-castle .wall { position:absolute; inset:0; background:linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%); }
.scn-leithcourt-flees-castle .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); }
.scn-leithcourt-flees-castle .pillar-left { position:absolute; top:0; bottom:0; left:8%; width:6%; background:linear-gradient(90deg, #3a3a4a 0%, #4a4a5a 40%, #3a3a4a 100%); box-shadow:4px 0 12px rgba(0,0,0,.5); animation:lfc-pillar 15s ease-in-out infinite alternate; }
.scn-leithcourt-flees-castle .pillar-right { position:absolute; top:0; bottom:0; right:8%; width:6%; background:linear-gradient(90deg, #3a3a4a 0%, #4a4a5a 40%, #3a3a4a 100%); box-shadow:-4px 0 12px rgba(0,0,0,.5); animation:lfc-pillar 15s ease-in-out infinite alternate-reverse; }
.scn-leithcourt-flees-castle .cupboard { position:absolute; bottom:20%; left:40%; right:40%; height:45%; background:linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 8px 24px rgba(0,0,0,.6); animation:lfc-cupboard 8s ease-in-out infinite; }
.scn-leithcourt-flees-castle .figure-drugged { position:absolute; bottom:25%; left:42%; right:42%; height:20%; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30%; transform-origin:bottom center; animation:lfc-drugged 10s ease-in-out infinite; }
.scn-leithcourt-flees-castle .figure-fleeing { position:absolute; bottom:10%; right:15%; width:10%; height:40%; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30%; transform-origin:bottom center; animation:lfc-fleeing 6s ease-in-out infinite; }
.scn-leithcourt-flees-castle .lamp { position:absolute; top:5%; left:45%; right:45%; height:4%; background:radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius:50%; box-shadow:0 0 40px 15px rgba(192,128,64,.6), 0 0 80px 30px rgba(192,64,0,.3); animation:lfc-lamp 4s ease-in-out infinite alternate; }
@keyframes lfc-pillar { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes lfc-cupboard { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.01) } }
@keyframes lfc-drugged { 0%,100% { transform:rotate(0) translateY(0) } 25% { transform:rotate(-1deg) translateY(2px) } 50% { transform:rotate(1deg) translateY(-1px) } 75% { transform:rotate(0) translateY(1px) } }
@keyframes lfc-fleeing { 0% { transform:translateX(0) } 25% { transform:translateX(-10%) scale(.98) } 50% { transform:translateX(-20%) } 75% { transform:translateX(-10%) scale(1.02) } 100% { transform:translateX(0) } }
@keyframes lfc-lamp { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }

.scn-electric-chair-trap {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 30%, #1a0a0a 70%, #0a0a12 100%),
    radial-gradient(ellipse at 80% 40%, #2a1a2a 0%, transparent 60%);
}
.scn-electric-chair-trap .wall   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1a2e 0%, #1a0a1a 100%); }
.scn-electric-chair-trap .floor  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1210 0%, #2a1a18 100%); }
.scn-electric-chair-trap .chair  { position:absolute; bottom:25%; left:30%; width:90px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px rgba(0,0,0,.7); animation: ect-chair 4s ease-in-out infinite; }
.scn-electric-chair-trap .plate  { position:absolute; bottom:26%; left:34%; width:70px; height:6px; background: #4a3a2a; border-radius:2px; box-shadow: 0 0 10px 2px rgba(100,50,20,.3); animation: ect-plate 3s ease-in-out infinite alternate; }
.scn-electric-chair-trap .wire-a { position:absolute; bottom:40%; right:45%; width:3px; height:50px; background: #5a5a5a; transform-origin: top left; animation: ect-wire1 2s ease-in-out infinite alternate; }
.scn-electric-chair-trap .wire-b { position:absolute; bottom:35%; left:46%; width:2px; height:40px; background: #5a5a6a; transform-origin: bottom right; animation: ect-wire2 2.5s ease-in-out infinite reverse; }
.scn-electric-chair-trap .shadow { position:absolute; bottom:28%; left:25%; width:100px; height:50px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); animation: ect-shadow 5s ease-in-out infinite; }
.scn-electric-chair-trap .figure { position:absolute; bottom:22%; left:18%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ect-figure 6s ease-in-out infinite; }
@keyframes ect-chair   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ect-plate   { 0% { opacity:.4; } 50% { opacity:.8; box-shadow: 0 0 20px 4px rgba(180,80,20,.5); } 100% { opacity:.4; } }
@keyframes ect-wire1   { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes ect-wire2   { 0% { transform: rotate(3deg) translateY(0); } 100% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes ect-shadow  { 0% { transform: scaleX(1) scaleY(1); opacity:.5; } 50% { transform: scaleX(1.2) scaleY(0.8); opacity:.7; } 100% { transform: scaleX(1) scaleY(1); opacity:.5; } }
@keyframes ect-figure  { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-2deg); } 50% { transform: translateX(10px) rotate(2deg); } 75% { transform: translateX(15px) rotate(-1deg); } 100% { transform: translateX(20px) rotate(0deg); } }

.scn-restaurant-milano-vanished {
  background: 
    linear-gradient(180deg, #6a6a6a 0%, #8a8a8a 30%, #7a7a7a 60%, #5a5a5a 100%),
    radial-gradient(ellipse at 60% 100%, #7a7a7a 0%, transparent 70%);
}
.scn-restaurant-milano-vanished .sky     { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a8a8a 0%, #6a6a6a 100%); animation: rmv-sky 20s ease-in-out infinite alternate; }
.scn-restaurant-milano-vanished .street  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #4a4a4a 0%, #6a6a6a 100%); }
.scn-restaurant-milano-vanished .fence   { position:absolute; bottom:38%; left:20%; width:60%; height:10px; background: #6a6a5a; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: rmv-fence 8s ease-in-out infinite; }
.scn-restaurant-milano-vanished .sign    { position:absolute; bottom:44%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 100%); border-radius:5px 5px 0 0; transform: rotate(-5deg); animation: rmv-sign 10s ease-in-out infinite alternate; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-restaurant-milano-vanished .figure  { position:absolute; bottom:8%; left:35%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rmv-figure 4s ease-in-out infinite; }
.scn-restaurant-milano-vanished .debris  { position:absolute; bottom:10%; left:55%; width:30px; height:20px; background: #5a4a3a; border-radius:10% 20% 0% 0%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: rmv-debris 6s ease-in-out infinite alternate; }
.scn-restaurant-milano-vanished .shadow  { position:absolute; bottom:0; left:30%; width:60px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: rmv-shadow 4s ease-in-out infinite; }
@keyframes rmv-sky    { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes rmv-fence  { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rmv-sign   { 0% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(8deg) scale(1.05); } 100% { transform: rotate(-8deg) scale(1); } }
@keyframes rmv-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-2deg); } 50% { transform: translateX(16px) rotate(2deg); } 75% { transform: translateX(8px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rmv-debris { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-2px) rotate(5deg); } }
@keyframes rmv-shadow { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.3); opacity:.7; } 100% { transform: scaleX(1); opacity:.5; } }

.scn-woodroffe-identity-confirmed {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 30%, #dcc4a8 60%, #d0b898 100%),
    radial-gradient(ellipse at 50% 20%, #faf0e0 0%, transparent 60%);
}
.scn-woodroffe-identity-confirmed .room-bg { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #e8d4b8 0%, #dcc4a8 100%); }
.scn-woodroffe-identity-confirmed .window  { position:absolute; top:15%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #b8c8d8 0%, #a0b8c8 100%); border: 6px solid #b09878; border-radius:5px; box-shadow: inset 0 0 20px rgba(0,0,0,.1); }
.scn-woodroffe-identity-confirmed .carpet  { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(90deg, #8a6a4a 0%, #a08060 50%, #8a6a4a 100%); border-radius:30% 30% 0 0 / 50% 50% 0 0; }
.scn-woodroffe-identity-confirmed .sofa    { position:absolute; bottom:15%; left:45%; width:80px; height:40px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: wic-sofa 6s ease-in-out infinite alternate; }
.scn-woodroffe-identity-confirmed .figure-f{ position:absolute; bottom:18%; left:50%; width:16px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wic-figure-f 4s ease-in-out infinite; }
.scn-woodroffe-identity-confirmed .figure-m{ position:absolute; bottom:18%; left:58%; width:18px; height:42px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wic-figure-m 4s ease-in-out infinite reverse; }
.scn-woodroffe-identity-confirmed .photo   { position:absolute; top:20%; left:75%; width:30px; height:40px; background: linear-gradient(135deg, #b8a080 0%, #9a8060 100%); border:3px solid #6a5a4a; border-radius:3px; box-shadow: 0 0 10px rgba(0,0,0,.3); animation: wic-photo 3s ease-in-out infinite alternate; }
@keyframes wic-sofa     { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wic-figure-f { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(6px) rotate(1deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wic-figure-m { 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 wic-photo    { 0% { transform: scale(1) rotate(0deg); opacity:.9; } 50% { transform: scale(1.05) rotate(2deg); opacity:1; } 100% { transform: scale(1) rotate(0deg); opacity:.8; } }

.scn-leithcourt-solitary-walk {
  background: 
    linear-gradient(180deg, #8a9a8a 0%, #7a8a7a 30%, #6a7a6a 60%, #5a6a5a 100%),
    radial-gradient(ellipse at 50% 0%, #9aae9a 0%, transparent 60%);
}
.scn-leithcourt-solitary-walk .sky        { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #9aae9a 0%, #7a8a7a 100%); animation: lsw-sky 30s ease-in-out infinite alternate; }
.scn-leithcourt-solitary-walk .trees-back { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(0deg, #5a7a5a 0%, #4a6a4a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; filter: blur(3px); animation: lsw-treesb 20s ease-in-out infinite; }
.scn-leithcourt-solitary-walk .trees-mid  { position:absolute; bottom:20%; left:10%; width:80%; height:30%; background: repeating-linear-gradient(0deg, #4a6a4a 0px, #4a6a4a 8px, transparent 8px, transparent 16px); border-radius: 20% 20% 0 0; clip-path: polygon(0% 0%, 15% 10%, 30% 0%, 45% 15%, 60% 0%, 75% 10%, 90% 0%, 100% 15%, 100% 100%, 0% 100%); animation: lsw-treesm 25s ease-in-out infinite alternate; }
.scn-leithcourt-solitary-walk .path       { position:absolute; bottom:15%; left:30%; width:40%; height:30%; background: linear-gradient(90deg, #6a7a6a 0%, #7a8a7a 50%, #6a7a6a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; opacity:.6; }
.scn-leithcourt-solitary-walk .figure     { position:absolute; bottom:18%; left:35%; width:14px; height:36px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lsw-figure 8s ease-in-out infinite; }
.scn-leithcourt-solitary-walk .bush       { position:absolute; bottom:20%; right:15%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, #3a5a2a 100%); border-radius:50%; filter: blur(2px); animation: lsw-bush 12s ease-in-out infinite; }
@keyframes lsw-sky    { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes lsw-treesb { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes lsw-treesm { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lsw-figure { 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 lsw-bush   { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(1) rotate(0deg); } }

.scn-item-red-priest-letter {
  background: linear-gradient(180deg, #e8d8c0 0%, #c4b090 40%, #9a7e5e 100%), radial-gradient(ellipse at 70% 60%, #fff6e0 0%, transparent 60%);
}
.scn-item-red-priest-letter .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d4c4a8 0%, #b8a484 50%, #8c7650 100%); 
  animation: rpl-wall 12s ease-in-out infinite alternate;
}
.scn-item-red-priest-letter .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 30%; 
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); 
  border-radius: 4px; box-shadow: 0 10px 20px rgba(0,0,0,0.5); 
  animation: rpl-desk 8s ease-in-out infinite alternate;
}
.scn-item-red-priest-letter .letter {
  position: absolute; bottom: 28%; left: 38%; width: 40px; height: 50px; 
  background: #f5ecd0; border: 1px solid #c0a880; 
  transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); 
  animation: rpl-letter 4s ease-in-out infinite;
}
.scn-item-red-priest-letter .lamp-glow {
  position: absolute; bottom: 38%; left: 55%; width: 80px; height: 80px; 
  background: radial-gradient(circle, #ffd080 0%, #f0b050 40%, transparent 70%); 
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(240,176,80,0.6); 
  animation: rpl-lamp 3s ease-in-out infinite alternate;
}
.scn-item-red-priest-letter .priest {
  position: absolute; bottom: 22%; left: 60%; width: 40px; height: 80px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; 
  transform-origin: bottom center; 
  animation: rpl-priest 6s ease-in-out infinite;
}
.scn-item-red-priest-letter .hand {
  position: absolute; bottom: 30%; left: 42%; width: 14px; height: 16px; 
  background: #c8b490; border-radius: 30% 30% 20% 20%; 
  animation: rpl-hand 4s ease-in-out infinite alternate;
}
.scn-item-red-priest-letter .shadow-strip {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%; 
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%); 
  pointer-events: none; animation: rpl-shadow 8s ease-in-out infinite alternate;
}
@keyframes rpl-wall {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes rpl-desk {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes rpl-letter {
  0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(3px); }
}
@keyframes rpl-lamp {
  0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.9; }
}
@keyframes rpl-priest {
  0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); }
}
@keyframes rpl-hand {
  0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rpl-shadow {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}

.scn-princess-zurloff-protection {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 30%, #b8a88c 70%, #8a7a60 100%), radial-gradient(ellipse at 30% 40%, #fff8e8 0%, transparent 60%);
}
.scn-princess-zurloff-protection .room-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8dcc8 0%, #c8b8a0 50%, #a89878 100%); 
  animation: zpf-wall 15s ease-in-out infinite alternate;
}
.scn-princess-zurloff-protection .window {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 100px; 
  background: linear-gradient(180deg, #c0e0ff 0%, #a0c8f0 50%, #80a8d0 100%); 
  border: 4px solid #6a5a4a; border-radius: 4px; 
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3); 
  animation: zpf-window 8s ease-in-out infinite alternate;
}
.scn-princess-zurloff-protection .curtain {
  position: absolute; top: 12%; left: 55%; width: 30px; height: 110px; 
  background: linear-gradient(180deg, #a08060 0%, #806040 100%); 
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.2); 
  animation: zpf-curtain 6s ease-in-out infinite alternate;
}
.scn-princess-zurloff-protection .sofa {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%; 
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); 
  border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%; 
  box-shadow: 0 8px 16px rgba(0,0,0,0.4); 
}
.scn-princess-zurloff-protection .princess {
  position: absolute; bottom: 38%; left: 30%; width: 30px; height: 60px; 
  background: linear-gradient(180deg, #e0c8b0 0%, #c0a888 50%, #a08868 100%); 
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; 
  animation: zpf-figure 5s ease-in-out infinite;
}
.scn-princess-zurloff-protection .elma {
  position: absolute; bottom: 36%; left: 48%; width: 28px; height: 55px; 
  background: linear-gradient(180deg, #b8a090 0%, #988078 50%, #786058 100%); 
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; 
  animation: zpf-figure 5s ease-in-out infinite 0.5s;
}
.scn-princess-zurloff-protection .rug {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 15%; 
  background: linear-gradient(90deg, #805040 0%, #a07060 20%, #c09080 50%, #a07060 80%, #805040 100%); 
  border-radius: 30% 30% 10% 10%; 
  animation: zpf-rug 10s ease-in-out infinite alternate;
}
.scn-princess-zurloff-protection .warm-light {
  position: absolute; top: 20%; left: 30%; width: 120px; height: 120px; 
  background: radial-gradient(circle, #ffe8c0 0%, #ffd8a0 30%, transparent 70%); 
  border-radius: 50%; pointer-events: none; 
  animation: zpf-light 4s ease-in-out infinite alternate;
}
@keyframes zpf-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; }
}
@keyframes zpf-window {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); }
}
@keyframes zpf-curtain {
  0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(0); }
}
@keyframes zpf-figure {
  0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); }
}
@keyframes zpf-rug {
  0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; }
}
@keyframes zpf-light {
  0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); }
}

.scn-plot-discussion-at-mansion {
  background: linear-gradient(180deg, #e8d4b8 0%, #c4ac90 30%, #a08468 60%, #7a6048 100%), radial-gradient(ellipse at 50% 70%, #fff0d0 0%, transparent 60%);
}
.scn-plot-discussion-at-mansion .table {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 35%; 
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3828 100%); 
  border-radius: 10px; box-shadow: 0 10px 20px rgba(0,0,0,0.6); 
  animation: pdm-table 9s ease-in-out infinite alternate;
}
.scn-plot-discussion-at-mansion .paper {
  position: absolute; bottom: 32%; left: 40%; width: 50px; height: 40px; 
  background: #f5e8d0; transform: rotate(2deg); 
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3); 
  animation: pdm-paper 4s ease-in-out infinite;
}
.scn-plot-discussion-at-mansion .cross {
  position: absolute; bottom: 35%; left: 46%; width: 12px; height: 18px; 
  background: #c0a000; /* gold */ border-radius: 2px; 
  box-shadow: 0 0 8px 2px rgba(192,160,0,0.5); 
  animation: pdm-cross 6s ease-in-out infinite alternate;
}
.scn-plot-discussion-at-mansion .figure-kampf {
  position: absolute; bottom: 22%; left: 25%; width: 30px; height: 60px; 
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); 
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; 
  animation: pdm-figure 5s ease-in-out infinite;
}
.scn-plot-discussion-at-mansion .figure-princess {
  position: absolute; bottom: 24%; left: 50%; width: 28px; height: 55px; 
  background: linear-gradient(180deg, #c8b098 0%, #a08870 100%); 
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; 
  animation: pdm-figure 5s ease-in-out infinite 0.3s;
}
.scn-plot-discussion-at-mansion .figure-speaker {
  position: absolute; bottom: 20%; right: 20%; width: 32px; height: 62px; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); 
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; 
  animation: pdm-figure 5s ease-in-out infinite 0.6s;
}
.scn-plot-discussion-at-mansion .lamp-top {
  position: absolute; top: 10%; left: 45%; width: 40px; height: 50px; 
  background: radial-gradient(circle at 50% 20%, #f0c060 0%, #d0a040 40%, transparent 70%); 
  border-radius: 20px; box-shadow: 0 0 30px 15px rgba(208,160,64,0.6); 
  animation: pdm-lamp 3s ease-in-out infinite alternate;
}
@keyframes pdm-table {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); }
}
@keyframes pdm-paper {
  0%,100% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(0deg) translateX(2px); }
}
@keyframes pdm-cross {
  0% { opacity: 0.9; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.9; transform: scale(0.95); }
}
@keyframes pdm-figure {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pdm-lamp {
  0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); }
}

.scn-durnford-reveals-truth {
  background: linear-gradient(180deg, #2a2a2a 0%, #3a3a3a 30%, #4a4a4a 60%, #2a2a2a 100%), radial-gradient(ellipse at 60% 50%, #5a5a5a 0%, transparent 60%);
}
.scn-durnford-reveals-truth .bg-panel {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a3a3a 0%, #2a2a2a 50%, #1a1a1a 100%); 
  animation: drt-panel 12s ease-in-out infinite alternate;
}
.scn-durnford-reveals-truth .document {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 80px; 
  background: #e8dcc8; border: 1px solid #c0b090; 
  transform: rotate(-3deg); box-shadow: 2px 2px 8px rgba(0,0,0,0.8); 
  animation: drt-doc 5s ease-in-out infinite alternate;
}
.scn-durnford-reveals-truth .hand-grip {
  position: absolute; bottom: 35%; left: 38%; width: 16px; height: 20px; 
  background: #b8a088; border-radius: 30% 30% 20% 20%; 
  animation: drt-hand 4s ease-in-out infinite;
}
.scn-durnford-reveals-truth .durnford-silhouette {
  position: absolute; bottom: 10%; left: 20%; width: 50px; height: 100px; 
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%); 
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%; 
  animation: drt-figure 6s ease-in-out infinite;
}
.scn-durnford-reveals-truth .light-ray {
  position: absolute; top: 0; left: 50%; width: 100px; height: 200px; 
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%); 
  transform: rotate(-15deg); transform-origin: top center; 
  animation: drt-ray 8s ease-in-out infinite alternate;
}
.scn-durnford-reveals-truth .shadow-overlay {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); 
  pointer-events: none; animation: drt-shadow 10s ease-in-out infinite alternate;
}
@keyframes drt-panel {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes drt-doc {
  0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(5px); } 100% { transform: rotate(-3deg) translateX(0); }
}
@keyframes drt-hand {
  0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes drt-figure {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes drt-ray {
  0% { opacity: 0.2; transform: rotate(-20deg); } 50% { opacity: 0.6; transform: rotate(-10deg); } 100% { opacity: 0.2; transform: rotate(-20deg); }
}
@keyframes drt-shadow {
  0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}

/* scene: jack-durnford-shot (jds) */
.scn-jack-durnford-shot { background: linear-gradient(180deg, #f0ece0 0%, #d8d0c0 30%, #c0b8a8 60%, #a09888 100%), radial-gradient(ellipse at 50% 0%, #ffffff80 0%, transparent 70%); }
.scn-jack-durnford-shot .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #e8e0d0 0%, #c8c0b0 50%, #b0a898 100%); }
.scn-jack-durnford-shot .window-light { position:absolute; top:10%; left:60%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 50%, #fff5e6 0%, #d0c8b0 70%, transparent 100%); border-radius: 20% 20% 40% 40%; animation: jds-window 6s ease-in-out infinite alternate; }
.scn-jack-durnford-shot .bed { position:absolute; bottom:8%; left:10%; width:60%; height:25%; background: linear-gradient(180deg, #b0a898 0%, #908878 100%); border-radius: 10% 10% 4% 4% / 30% 30% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.3); }
.scn-jack-durnford-shot .patient { position:absolute; bottom:12%; left:30%; width:20%; height:18%; background: linear-gradient(180deg, #a09080 0%, #706858 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.3); animation: jds-patient 4s ease-in-out infinite alternate; }
.scn-jack-durnford-shot .lamp { position:absolute; top:20%; left:20%; width:8%; height:12%; background: linear-gradient(180deg, #c0a880 0%, #a08860 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px #ffe0a0; animation: jds-lamp 3s ease-in-out infinite alternate; }
.scn-jack-durnford-shot .iv-stand { position:absolute; bottom:10%; left:55%; width:3%; height:30%; background: linear-gradient(180deg, #908878 0%, #605850 100%); border-radius: 10% 10% 5% 5%; transform-origin: bottom; animation: jds-iv 5s ease-in-out infinite; }
.scn-jack-durnford-shot .curtain { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(135deg, #c8b8a0 0%, #b0a090 50%, #908070 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 30% 100%); filter: blur(2px); animation: jds-curtain 10s ease-in-out infinite alternate; }
@keyframes jds-window { 0% { opacity:0.6; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.05) } 100% { opacity:0.7; transform: scaleX(0.95) } }
@keyframes jds-patient { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes jds-lamp { 0% { box-shadow: 0 0 20px 5px #ffe0a0; } 50% { box-shadow: 0 0 40px 15px #ffe0a0; } 100% { box-shadow: 0 0 25px 8px #ffe0a0; } }
@keyframes jds-iv { 0% { transform: rotate(0deg) } 33% { transform: rotate(1deg) } 66% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes jds-curtain { 0% { transform: translateX(0) } 100% { transform: translateX(-5px) } }

/* scene: leithcourt-murder-reveal (lmr) */
.scn-leithcourt-murder-reveal { background: linear-gradient(180deg, #d0c8b8 0%, #b8b0a0 30%, #a09888 60%, #888078 100%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 60%); }
.scn-leithcourt-murder-reveal .study-wall { position:absolute; inset:0; background: linear-gradient(135deg, #c8c0b0 0%, #b0a898 50%, #988878 100%); }
.scn-leithcourt-murder-reveal .portrait { position:absolute; top:10%; left:5%; width:25%; height:35%; background: linear-gradient(180deg, #a09078 0%, #706050 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.4); transform: rotate(-2deg); animation: lmr-portrait 12s ease-in-out infinite alternate; }
.scn-leithcourt-murder-reveal .table { position:absolute; bottom:10%; left:25%; width:45%; height:12%; background: linear-gradient(180deg, #806850 0%, #605040 100%); border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%; box-shadow: 0 6px 16px rgba(0,0,0,.4); transform: perspective(200px) rotateX(10deg); }
.scn-leithcourt-murder-reveal .lamp { position:absolute; top:25%; left:35%; width:10%; height:15%; background: linear-gradient(180deg, #c8a870 0%, #a08860 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 40px 15px #f0c880; animation: lmr-lamp 4s ease-in-out infinite alternate; }
.scn-leithcourt-murder-reveal .muriel-figure { position:absolute; bottom:18%; left:20%; width:16%; height:34%; background: linear-gradient(180deg, #686060 0%, #484040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lmr-muriel 6s ease-in-out infinite; }
.scn-leithcourt-murder-reveal .listener-silhouette { position:absolute; bottom:18%; right:20%; width:15%; height:32%; background: linear-gradient(180deg, #383038 0%, #202020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: lmr-listener 8s ease-in-out infinite alternate; }
.scn-leithcourt-murder-reveal .window-pane { position:absolute; top:15%; right:8%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 50%, #f0e8d8 0%, #c0b8a8 70%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 20px rgba(0,0,0,.2); animation: lmr-window 10s ease-in-out infinite alternate; }
@keyframes lmr-portrait { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(0deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes lmr-lamp { 0% { transform: rotate(0deg); box-shadow: 0 0 25px 8px #f0c880; } 33% { transform: rotate(1deg); box-shadow: 0 0 35px 12px #f0c880; } 66% { transform: rotate(-1deg); box-shadow: 0 0 30px 10px #f0c880; } 100% { transform: rotate(0deg); box-shadow: 0 0 25px 8px #f0c880; } }
@keyframes lmr-muriel { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-3px) translateY(1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes lmr-listener { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lmr-window { 0% { opacity:0.7; transform: scaleY(1) } 50% { opacity:0.9; transform: scaleY(1.03) } 100% { opacity:0.75; transform: scaleY(0.97) } }

/* scene: yacht-explosion-death (yed) */
.scn-yacht-explosion-death { background: linear-gradient(180deg, #0a0a14 0%, #141428 30%, #1a1a30 60%, #202040 100%), radial-gradient(ellipse at 70% 60%, #ff6000 0%, #ff400030 30%, transparent 70%); }
.scn-yacht-explosion-death .night-sky { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 50%, #2a2a4a 0%, #0a0a1a 100%); animation: yed-sky 15s ease-in-out infinite alternate; }
.scn-yacht-explosion-death .explosion-glow { position:absolute; top:20%; right:10%; width:50%; height:50%; background: radial-gradient(circle at 50% 50%, #ff8000 0%, #ff400060 30%, transparent 70%); border-radius: 50%; filter: blur(15px); mix-blend-mode: screen; animation: yed-exp 3s ease-in-out infinite alternate; }
.scn-yacht-explosion-death .yacht { position:absolute; bottom:25%; right:20%; width:30%; height:12%; background: linear-gradient(135deg, #3a2a1a 0%, #1a0a0a 100%); clip-path: polygon(0 30%, 30% 0, 100% 0, 100% 100%, 20% 100%, 0 60%); box-shadow: inset 0 -4px 8px rgba(255,100,0,.3); transform-origin: right center; animation: yed-yacht 2s ease-in-out infinite; }
.scn-yacht-explosion-death .flames { position:absolute; top:18%; right:15%; width:20%; height:20%; background: radial-gradient(circle at 60% 40%, #ffcc00 0%, #ff6600 40%, #cc3300 70%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(3px); animation: yed-flames 0.8s ease-in-out infinite alternate; }
.scn-yacht-explosion-death .debris { position:absolute; top:10%; left:10%; width:12%; height:8%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(20% 40%, 80% 20%, 100% 80%, 30% 100%, 10% 60%); transform: rotate(45deg); animation: yed-debris 4s linear infinite; }
.scn-yacht-explosion-death .water { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 50%, #2a2a5a 100%); border-top: 2px solid #ff800030; box-shadow: inset 0 10px 20px #00000080; animation: yed-water 6s ease-in-out infinite alternate; }
@keyframes yed-sky { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:0.9; transform: scale(0.98) } }
@keyframes yed-exp { 0% { transform: scale(1); opacity:0.7 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(0.9); opacity:0.8 } }
@keyframes yed-yacht { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(3deg) translateX(2px) } 50% { transform: rotate(-2deg) translateX(-1px) } 75% { transform: rotate(1deg) translateX(1px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes yed-flames { 0% { transform: scaleY(1); opacity:0.8 } 100% { transform: scaleY(1.4); opacity:1 } }
@keyframes yed-debris { 0% { transform: rotate(45deg) translateX(0) translateY(0) } 25% { transform: rotate(60deg) translateX(20px) translateY(-30px); opacity:0.9 } 50% { transform: rotate(90deg) translateX(40px) translateY(-60px); opacity:0.7 } 75% { transform: rotate(120deg) translateX(60px) translateY(-90px); opacity:0.4 } 100% { transform: rotate(180deg) translateX(80px) translateY(-120px); opacity:0 } }
@keyframes yed-water { 0% { transform: translateY(0); background-position: 0 0 } 50% { transform: translateY(4px); background-position: 0 10px } 100% { transform: translateY(0); background-position: 0 0 } }

/* scene: final-justice-october (fjo) */
.scn-final-justice-october { background: linear-gradient(180deg, #fff5e6 0%, #f0d8b0 30%, #d8b880 60%, #c0a060 100%), radial-gradient(ellipse at 50% 0%, #fff9e0 0%, transparent 70%); }
.scn-final-justice-october .sunlit-wall { position:absolute; inset:0; background: linear-gradient(135deg, #f0e0c0 0%, #d8c0a0 50%, #c0a080 100%); }
.scn-final-justice-october .window { position:absolute; top:20%; left:60%; width:30%; height:45%; background: radial-gradient(ellipse at 50% 50%, #fff0d0 0%, #d0b890 70%); border-radius: 20% 20% 30% 30%; box-shadow: inset 0 0 30px rgba(255,200,100,.5); animation: fjo-window 8s ease-in-out infinite alternate; }
.scn-final-justice-october .desk { position:absolute; bottom:12%; left:10%; width:50%; height:14%; background: linear-gradient(180deg, #b09070 0%, #907050 100%); border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.3); transform: perspective(300px) rotateX(5deg); animation: fjo-desk 10s ease-in-out infinite; }
.scn-final-justice-october .paper { position:absolute; bottom:20%; left:20%; width:18%; height:10%; background: linear-gradient(180deg, #fff8e0 0%, #f0e0c0 100%); border-radius: 5%; box-shadow: 0 2px 8px rgba(0,0,0,.2); transform: rotate(-3deg); animation: fjo-paper 6s ease-in-out infinite alternate; }
.scn-final-justice-october .quill { position:absolute; bottom:22%; left:38%; width:2%; height:20%; background: linear-gradient(180deg, #d0c0a0 0%, #b09070 100%); border-radius: 50% 50% 30% 30% / 10% 10% 40% 40%; transform: rotate(15deg); transform-origin: bottom; animation: fjo-quill 4s ease-in-out infinite alternate; }
.scn-final-justice-october .elma-figure { position:absolute; bottom:12%; left:40%; width:14%; height:30%; background: linear-gradient(180deg, #b8a090 0%, #786858 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: fjo-elma 7s ease-in-out infinite; }
.scn-final-justice-october .sunbeams { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(135deg, #fff8e0 0%, transparent 40%, #fff0c0 60%, transparent 100%); mix-blend-mode: overlay; opacity:0.4; animation: fjo-beams 12s ease-in-out infinite alternate; }
@keyframes fjo-window { 0% { transform: scaleY(1) scaleX(1); opacity:0.8 } 50% { transform: scaleY(1.05) scaleX(1.02); opacity:1 } 100% { transform: scaleY(0.96) scaleX(0.98); opacity:0.85 } }
@keyframes fjo-desk { 0% { transform: perspective(300px) rotateX(5deg) translateY(0) } 50% { transform: perspective(300px) rotateX(4deg) translateY(-2px) } 100% { transform: perspective(300px) rotateX(5deg) translateY(0) } }
@keyframes fjo-paper { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes fjo-quill { 0% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(18deg) scaleY(1.05) } 100% { transform: rotate(13deg) scaleY(0.95) } }
@keyframes fjo-elma { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes fjo-beams { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.5; transform: scale(1.05) } 100% { opacity:0.35; transform: scale(0.95) } }

.scn-captain-durnford-reaction {
  background: linear-gradient(180deg, #87CEEB 0%, #FFCF9A 60%, #E6A865 100%), radial-gradient(ellipse at 70% 30%, #FFD700 0%, transparent 60%);
}
.scn-captain-durnford-reaction .bg-sky { position:absolute; inset:0; background: linear-gradient(180deg, #4A90D9 0%, #87CEEB 40%, #FFCF9A 100%); animation: cdr1-sky 8s ease-in-out infinite alternate; }
.scn-captain-durnford-reaction .sun { position:absolute; top:15%; right:20%; width:70px; height:70px; background: radial-gradient(circle, #FFF7B0 0%, #FFD700 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px #FFD700, 0 0 120px 40px rgba(255,215,0,0.3); animation: cdr1-sun 6s ease-in-out infinite alternate; }
.scn-captain-durnford-reaction .window-frame { position:absolute; top:10%; left:10%; width:35%; height:80%; border: 6px solid #3B2F1A; border-radius:8% 8% 0 0; background: transparent; box-shadow: inset 0 0 40px rgba(0,0,0,0.3); }
.scn-captain-durnford-reaction .figure-captain { position:absolute; bottom:10%; left:15%; width:60px; height:130px; background: linear-gradient(180deg, #1A1A1A 0%, #2E2E2E 60%, #111111 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cdr1-captain 4s ease-in-out infinite; box-shadow: -10px 0 20px rgba(0,0,0,0.5); }
.scn-captain-durnford-reaction .shadow { position:absolute; bottom:5%; left:12%; width:80px; height:10px; background: rgba(0,0,0,0.4); border-radius:50%; filter: blur(4px); animation: cdr1-shadow 4s ease-in-out infinite; }
.scn-captain-durnford-reaction .table { position:absolute; bottom:8%; left:5%; width:40%; height:14px; background: linear-gradient(180deg, #5C4033 0%, #3B2F1A 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
@keyframes cdr1-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cdr1-sun { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.85; } }
@keyframes cdr1-captain { 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 cdr1-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(1); opacity:0.3; } }

.scn-durnford-bitter-memory {
  background: linear-gradient(180deg, #1B1B2F 0%, #16213E 50%, #0F3460 100%), radial-gradient(ellipse at 50% 80%, #1A5276 0%, transparent 70%);
}
.scn-durnford-bitter-memory .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #2C2C3E 0%, #1B1B2F 70%, #121212 100%); }
.scn-durnford-bitter-memory .table { position:absolute; bottom:15%; left:50%; width:60%; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #3E2723 0%, #2C1B18 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: dbm2-table 10s ease-in-out infinite alternate; }
.scn-durnford-bitter-memory .figure-memory { position:absolute; bottom:22%; left:35%; width:50px; height:110px; background: linear-gradient(180deg, #252540 0%, #1A1A2E 60%, #101018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dbm2-figure 12s ease-in-out infinite; }
.scn-durnford-bitter-memory .photograph { position:absolute; top:25%; left:20%; width:80px; height:100px; background: linear-gradient(135deg, #D3C9A3 0%, #A89B7A 50%, #7D6E52 100%); border-radius:4px; opacity:0.6; box-shadow: 0 0 20px rgba(255,200,100,0.2); animation: dbm2-photo 8s ease-in-out infinite alternate; clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); transform: rotate(-3deg); }
.scn-durnford-bitter-memory .shadow-memory { position:absolute; bottom:18%; left:30%; width:70px; height:12px; background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(6px); animation: dbm2-shadow 12s ease-in-out infinite; }
.scn-durnford-bitter-memory .memory-glow { position:absolute; top:30%; left:25%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,200,100,0.15) 0%, transparent 70%); border-radius:50%; animation: dbm2-glow 9s ease-in-out infinite alternate; }
@keyframes dbm2-table { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.98); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes dbm2-figure { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 33% { transform: translateX(-3px) rotate(-1deg) scaleY(0.98); } 66% { transform: translateX(2px) rotate(0deg) scaleY(1); } 100% { transform: translateX(0) rotate(1deg) scaleY(1); } }
@keyframes dbm2-photo { 0% { opacity:0.4; filter: brightness(0.5); } 50% { opacity:0.7; filter: brightness(0.8); } 100% { opacity:0.5; filter: brightness(0.6); } }
@keyframes dbm2-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(5px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes dbm2-glow { 0% { transform: scale(1); opacity:0.1; } 50% { transform: scale(1.2); opacity:0.25; } 100% { transform: scale(0.9); opacity:0.15; } }

.scn-gregg-olinto-meeting {
  background: linear-gradient(180deg, #1C2833 0%, #2C3E50 40%, #34495E 100%), radial-gradient(ellipse at 50% 20%, #2E4053 0%, transparent 70%);
}
.scn-gregg-olinto-meeting .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #2C3E50 0%, #1C2833 100%); }
.scn-gregg-olinto-meeting .shutters-left { position:absolute; left:0; top:10%; width:25%; height:80%; background: linear-gradient(90deg, #5D4037 0%, #3E2723 100%); border-right: 4px solid #2C1B18; animation: gom3-shutter 20s ease-in-out infinite; }
.scn-gregg-olinto-meeting .shutters-right { position:absolute; right:0; top:10%; width:25%; height:80%; background: linear-gradient(270deg, #5D4037 0%, #3E2723 100%); border-left: 4px solid #2C1B18; animation: gom3-shutter 20s ease-in-out infinite reverse; }
.scn-gregg-olinto-meeting .figure-gregg { position:absolute; bottom:18%; left:20%; width:55px; height:120px; background: linear-gradient(180deg, #212F3D 0%, #1A252F 60%, #0E151C 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gom3-figure-left 6s ease-in-out infinite; }
.scn-gregg-olinto-meeting .figure-olinto { position:absolute; bottom:18%; right:20%; width:55px; height:110px; background: linear-gradient(180deg, #2E1C16 0%, #3E2723 60%, #1A0F0C 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gom3-figure-right 6s ease-in-out infinite; }
.scn-gregg-olinto-meeting .lamp { position:absolute; top:15%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #F4D03F 0%, #E67E22 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 40px 10px rgba(230,126,34,0.4), 0 0 100px 30px rgba(230,126,34,0.1); animation: gom3-lamp 4s ease-in-out infinite alternate; }
.scn-gregg-olinto-meeting .table-meeting { position:absolute; bottom:12%; left:35%; width:40%; height:10px; background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%); border-radius:4px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: gom3-table 8s ease-in-out infinite; }
@keyframes gom3-shutter { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes gom3-figure-left { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gom3-figure-right { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gom3-lamp { 0% { transform: scale(1) rotate(-2deg); opacity:0.8; box-shadow: 0 0 30px 8px rgba(230,126,34,0.3); } 50% { transform: scale(1.03) rotate(0deg); opacity:1; box-shadow: 0 0 50px 15px rgba(230,126,34,0.5); } 100% { transform: scale(1) rotate(2deg); opacity:0.85; box-shadow: 0 0 35px 10px rgba(230,126,34,0.35); } }
@keyframes gom3-table { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }

.scn-deadly-trap-revealed {
  background: linear-gradient(180deg, #0D0D1A 0%, #1A1A2E 50%, #2D2D44 100%), radial-gradient(ellipse at 30% 60%, #2C2C3E 0%, transparent 60%);
}
.scn-deadly-trap-revealed .bg-trap { position:absolute; inset:0; background: linear-gradient(180deg, #1A1A2E 0%, #0D0D1A 100%); }
.scn-deadly-trap-revealed .figure-gregg-trap { position:absolute; bottom:20%; left:20%; width:55px; height:125px; background: linear-gradient(180deg, #212F3D 0%, #1A252F 60%, #0E151C 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dtr4-figure-gregg 5s ease-in-out infinite; }
.scn-deadly-trap-revealed .figure-olinto-trap { position:absolute; bottom:20%; right:25%; width:55px; height:115px; background: linear-gradient(180deg, #2E1C16 0%, #3E2723 60%, #1A0F0C 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dtr4-figure-olinto 5s ease-in-out infinite; }
.scn-deadly-trap-revealed .shadow-trap { position:absolute; bottom:15%; left:28%; width:100px; height:20px; background: rgba(0,0,0,0.6); border-radius:50%; filter: blur(8px); animation: dtr4-shadow 7s ease-in-out infinite; }
.scn-deadly-trap-revealed .lamp-trap { position:absolute; top:30%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #F39C12 0%, #D35400 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 8px rgba(211,84,0,0.4), 0 0 80px 20px rgba(211,84,0,0.15); animation: dtr4-lamp 3s ease-in-out infinite alternate; }
.scn-deadly-trap-revealed .door { position:absolute; right:8%; top:5%; width:20%; height:95%; background: linear-gradient(180deg, #2C1B18 0%, #1A0F0C 100%); border:4px solid #3E2723; border-radius:4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.7); }
@keyframes dtr4-figure-gregg { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-10px) rotate(-3deg) scaleY(0.95); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dtr4-figure-olinto { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg) scaleY(0.95); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dtr4-shadow { 0% { transform: scaleX(1) translateX(0); opacity:0.6; } 50% { transform: scaleX(1.2) translateX(5px); opacity:0.8; } 100% { transform: scaleX(1) translateX(0); opacity:0.5; } }
@keyframes dtr4-lamp { 0% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity:0.8; box-shadow: 0 0 25px 6px rgba(211,84,0,0.3); } 50% { transform: translateX(-50%) scale(1.02) rotate(0deg); opacity:1; box-shadow: 0 0 40px 12px rgba(211,84,0,0.5); } 100% { transform: translateX(-50%) scale(1) rotate(2deg); opacity:0.9; box-shadow: 0 0 30px 8px rgba(211,84,0,0.35); } }

/* Scene 1: muriel-secret-visit — dim interior / secret meeting */
.scn-muriel-secret-visit { background:
  linear-gradient(135deg, #0c081a 0%, #18152e 40%, #221f3a 70%, #2a2545 100%),
  radial-gradient(ellipse at 30% 20%, #3a3560 0%, transparent 70%);
  box-shadow: inset 0 0 60px rgba(8,4,20,.6);
}
.scn-muriel-secret-visit .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #1a1730 0%, #2a2548 50%, #1f1c38 100%); }
.scn-muriel-secret-visit .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a2540 0%, #1f1c30 30%, #14101e 100%); }
.scn-muriel-secret-visit .window { position:absolute; top:18%; right:22%; width:70px; height:90px; background: linear-gradient(180deg, #2a4070 0%, #1a3058 50%, #0e1c3a 100%); border:3px solid #3a3555; border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(90,140,220,.4), 0 0 30px rgba(60,100,180,.3); }
.scn-muriel-secret-visit .moonbeam { position:absolute; top:18%; right:24%; width:100px; height:260px; background: linear-gradient(180deg, rgba(160,200,255,.12) 0%, rgba(160,200,255,.06) 40%, transparent 100%); transform: skewX(-8deg); filter: blur(4px); opacity:.6; animation: msv-beam 6s ease-in-out infinite alternate; }
.scn-muriel-secret-visit .door { position:absolute; bottom:25%; left:12%; width:60px; height:110px; background: linear-gradient(180deg, #1e1a34 0%, #14102a 50%, #0e0c20 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 0 8px rgba(0,0,0,.4); border-left:2px solid #3a3555; }
.scn-muriel-secret-visit .figure-muriel { position:absolute; bottom:24%; left:36%; width:24px; height:46px; background: linear-gradient(180deg, #2a2a40 0%, #1e1e32 40%, #141428 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: msv-enter 5s ease-in-out infinite; }
.scn-muriel-secret-visit .candle { position:absolute; bottom:30%; left:56%; width:6px; height:20px; background: linear-gradient(180deg, #c8a078 0%, #a08050 60%, #705038 100%); border-radius: 40% 40% 20% 20%; transform: rotate(2deg); }
.scn-muriel-secret-visit .candle-glow { position:absolute; bottom:42%; left:56%; width:30px; height:30px; transform: translate(-50%, -50%); background: radial-gradient(circle, #ffd080 0%, #e8a040 30%, #c07030 55%, transparent 70%); border-radius:50%; opacity:.8; animation: msv-candle 3s ease-in-out infinite alternate; }
.scn-muriel-secret-visit .shadow-move { position:absolute; bottom:24%; left:30%; width:80px; height:20px; background: radial-gradient(ellipse at 50% 100%, rgba(10,8,20,.6) 0%, transparent 70%); filter: blur(6px); animation: msv-shadow 5s ease-in-out infinite; }
@keyframes msv-beam { 0% { opacity:.4; filter: blur(6px); } 50% { opacity:.8; filter: blur(3px); } 100% { opacity:.5; filter: blur(5px); } }
@keyframes msv-enter { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity:.3; } 20% { opacity:1; transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(6px) translateY(-1px) rotate(-1deg); } 80% { transform: translateX(-4px) translateY(0) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes msv-candle { 0% { transform: translate(-50%, -50%) scale(1); opacity:.7; } 50% { transform: translate(-50%, -50%) scale(1.2); opacity:1; } 100% { transform: translate(-50%, -50%) scale(.9); opacity:.6; } }
@keyframes msv-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(8px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }

/* Scene 2: hidden-body-search — overcast / tense search */
.scn-hidden-body-search { background:
  linear-gradient(180deg, #5a6070 0%, #4a5065 30%, #3a4055 60%, #2a3040 100%),
  radial-gradient(ellipse at 50% 100%, #4a5065 0%, transparent 70%);
}
.scn-hidden-body-search .sky-overcast { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a7080 0%, #5a6070 40%, #4a5065 100%); animation: thb-sky 15s ease-in-out infinite alternate; }
.scn-hidden-body-search .ground-search { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a4035 0%, #2a3028 40%, #1a2018 100%); border-radius: 30% 20% 0 0 / 20% 15% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.4); }
.scn-hidden-body-search .tree-1 { position:absolute; bottom:32%; left:10%; width:14px; height:100px; background: linear-gradient(180deg, #2a3028 0%, #1a2018 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 4px 6px rgba(0,0,0,.5); transform: rotate(-3deg); }
.scn-hidden-body-search .tree-2 { position:absolute; bottom:34%; left:38%; width:10px; height:80px; background: linear-gradient(180deg, #3a4035 0%, #2a3028 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 4px 6px rgba(0,0,0,.5); transform: rotate(2deg); }
.scn-hidden-body-search .tree-3 { position:absolute; bottom:30%; right:8%; width:16px; height:110px; background: linear-gradient(180deg, #2a3028 0%, #1a2018 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 4px 6px rgba(0,0,0,.5); transform: rotate(4deg); }
.scn-hidden-body-search .figure-search-1 { position:absolute; bottom:35%; left:28%; width:22px; height:44px; background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 50%, #0e0e14 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: thb-search1 6s ease-in-out infinite; }
.scn-hidden-body-search .figure-search-2 { position:absolute; bottom:35%; left:58%; width:22px; height:44px; background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 50%, #0e0e14 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: thb-search2 7s ease-in-out infinite 1s; }
.scn-hidden-body-search .hidden-site { position:absolute; bottom:24%; left:48%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 100%, #1a2018 0%, #2a3028 60%, transparent 100%); border-radius: 50%; box-shadow: inset 0 2px 6px rgba(0,0,0,.6); opacity:.7; animation: thb-site 4s ease-in-out infinite alternate; }
@keyframes thb-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes thb-search1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(10px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(20px) translateY(0) rotate(-1deg); } 75% { transform: translateX(10px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes thb-search2 { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 25% { transform: translateX(-8px) translateY(-2px) rotate(-3deg); } 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 thb-site { 0% { transform: scale(1); opacity:.5; } 50% { transform: scale(1.1); opacity:.8; } 100% { transform: scale(.95); opacity:.6; } }

/* Scene 3: body-in-hidden-glen — dusk / grim discovery */
.scn-body-in-hidden-glen { background:
  linear-gradient(180deg, #1a1a3a 0%, #2a2050 30%, #3a2a60 60%, #2a1a40 100%),
  radial-gradient(ellipse at 50% 100%, #4a3a6a 0%, transparent 70%);
}
.scn-body-in-hidden-glen .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3060 0%, #2a1a4a 40%, #1a0e30 100%); animation: bhg-sky 12s ease-in-out infinite alternate; }
.scn-body-in-hidden-glen .glen-wall-left { position:absolute; bottom:20%; left:0; width:35%; height:55%; background: linear-gradient(135deg, #2a2040 0%, #1a1a30 50%, #0e0e20 100%); border-radius: 0 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-body-in-hidden-glen .glen-wall-right { position:absolute; bottom:20%; right:0; width:40%; height:60%; background: linear-gradient(225deg, #2a2040 0%, #1a1a30 50%, #0e0e20 100%); border-radius: 40% 0 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-body-in-hidden-glen .tree-thicket { position:absolute; bottom:28%; left:38%; width:24%; height:50%; background: linear-gradient(180deg, #1a1a28 0%, #0e0e1a 60%); border-radius: 30% 30% 0 0; clip-path: polygon(20% 100%, 30% 30%, 40% 100%, 50% 20%, 60% 100%, 70% 35%, 80% 100%); filter: blur(1px); }
.scn-body-in-hidden-glen .figure-a { position:absolute; bottom:28%; left:28%; width:22px; height:44px; background: linear-gradient(180deg, #1a1a28 0%, #0e0e1a 50%, #060610 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: bhg-fig-a 8s ease-in-out infinite; }
.scn-body-in-hidden-glen .figure-b { position:absolute; bottom:28%; left:56%; width:22px; height:44px; background: linear-gradient(180deg, #1a1a28 0%, #0e0e1a 50%, #060610 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: bhg-fig-b 9s ease-in-out infinite 1.5s; }
.scn-body-in-hidden-glen .disturbed-earth { position:absolute; bottom:22%; left:44%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 100%, #1a1a20 0%, #2a2a38 40%, transparent 70%); border-radius: 50%; box-shadow: inset 0 4px 10px rgba(0,0,0,.6); animation: bhg-earth 5s ease-in-out infinite alternate; }
.scn-body-in-hidden-glen .branch-tool { position:absolute; bottom:25%; left:42%; width:30px; height:4px; background: linear-gradient(90deg, #2a2028 0%, #1a141e 80%); border-radius: 20%; transform: rotate(-20deg); transform-origin: left center; animation: bhg-branch 4s ease-in-out infinite alternate; }
@keyframes bhg-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.5; } }
@keyframes bhg-fig-a { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(-6px) translateY(-3px) rotate(1deg); } 60% { transform: translateX(-12px) translateY(-1px) rotate(-3deg); } 100% { transform: translateX(-18px) translateY(-2px) rotate(0deg); } }
@keyframes bhg-fig-b { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 30% { transform: translateX(8px) translateY(-2px) rotate(-1deg); } 60% { transform: translateX(16px) translateY(-3px) rotate(3deg); } 100% { transform: translateX(24px) translateY(-1px) rotate(0deg); } }
@keyframes bhg-earth { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(-2deg); } 100% { transform: scale(.95) rotate(2deg); } }
@keyframes bhg-branch { 0% { transform: rotate(-25deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.1); } 100% { transform: rotate(-25deg) scaleX(1); } }

/* Scene 4: murder-return-to-glen — dim interior / police station */
.scn-murder-return-to-glen { background:
  linear-gradient(135deg, #0e0c18 0%, #1a1830 40%, #282448 70%, #302c50 100%),
  radial-gradient(ellipse at 60% 40%, #403c68 0%, transparent 70%);
}
.scn-murder-return-to-glen .room-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #1a1830 0%, #282448 50%, #201e3a 100%); }
.scn-murder-return-to-glen .desk { position:absolute; bottom:20%; left:22%; width:56%; height:18%; background: linear-gradient(180deg, #3a3550 0%, #2a2540 60%, #1a1830 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.4); }
.scn-murder-return-to-glen .desk-lamp { position:absolute; bottom:36%; left:36%; width:16px; height:34px; background: linear-gradient(180deg, #605840 0%, #4a4030 60%, #2a2018 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-6deg); }
.scn-murder-return-to-glen .lamp-glow { position:absolute; bottom:48%; left:36%; width:80px; height:80px; transform: translate(-50%, -50%); background: radial-gradient(circle, #c8a860 0%, #a08040 25%, #705028 50%, transparent 70%); border-radius:50%; opacity:.7; animation: mrg-glow 4s ease-in-out infinite alternate; }
.scn-murder-return-to-glen .figure-gregg { position:absolute; bottom:22%; left:32%; width:24px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 50%, #060610 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: mrg-gregg 7s ease-in-out infinite; }
.scn-murder-return-to-glen .figure-mackenzie { position:absolute; bottom:22%; left:56%; width:26px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 50%, #060610 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: mrg-mack 8s ease-in-out infinite 2s; }
.scn-murder-return-to-glen .shadow-corner { position:absolute; bottom:0; right:0; width:40%; height:60%; background: linear-gradient(135deg, transparent 0%, rgba(6,4,12,.5) 100%); pointer-events:none; }
@keyframes mrg-glow { 0% { transform: translate(-50%, -50%) scale(1); opacity:.6; } 50% { transform: translate(-50%, -50%) scale(1.2); opacity:.9; } 100% { transform: translate(-50%, -50%) scale(.95); opacity:.5; } }
@keyframes mrg-gregg { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(4px) translateY(0) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes mrg-mack { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 50% { transform: translateX(-4px) translateY(0) rotate(1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }

/* chater-hospital-refusal */
.scn-chater-hospital-refusal {
  background: linear-gradient(180deg, #d9c9b0 0%, #b8a28a 50%, #8a7a6a 100%), radial-gradient(ellipse at 50% 60%, #c9b89a 0%, transparent 70%);
}
.scn-chater-hospital-refusal .room-bg { position:absolute; inset:0; background:linear-gradient(135deg, #e0d4c0 0%, #c8b8a0 100%); }
.scn-chater-hospital-refusal .window { position:absolute; top:8%; right:10%; width:35%; height:55%; background:linear-gradient(180deg, #7a8a8a 0%, #4a5a5a 100%); border:6px solid #8a7a6a; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.3); animation:h1-window 14s ease-in-out infinite alternate; }
.scn-chater-hospital-refusal .bed { position:absolute; bottom:15%; left:12%; width:60%; height:35%; background:linear-gradient(180deg, #b0a090 0%, #908070 100%); border-radius:10px 10px 30px 30px; box-shadow:0 -5px 15px rgba(0,0,0,.2); }
.scn-chater-hospital-refusal .lamp { position:absolute; bottom:30%; right:25%; width:12%; height:20%; background:linear-gradient(180deg, #b87878 0%, #8a5a5a 100%); border-radius:30% 30% 10% 10%; box-shadow:0 0 15px #b87878; }
.scn-chater-hospital-refusal .lamp-glow { position:absolute; bottom:30%; right:25%; width:12%; height:20%; background:radial-gradient(circle at 50% 20%, #e0a0a0 0%, transparent 60%); animation:h1-glow 4s ease-in-out infinite; }
.scn-chater-hospital-refusal .figure-bed { position:absolute; bottom:18%; left:20%; width:20%; height:25%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; opacity:.7; }
.scn-chater-hospital-refusal .shadow-figure { position:absolute; bottom:22%; right:15%; width:15%; height:40%; background:rgba(20,20,20,.3); border-radius:30% 30% 10% 10%; filter:blur(4px); animation:h1-shadow 8s ease-in-out infinite; }
.scn-chater-hospital-refusal .curtain { position:absolute; top:0; right:10%; width:38%; height:60%; background:linear-gradient(180deg, #c8b8a0 0%, #a89880 100%); opacity:.6; transform-origin:top right; animation:h1-curtain 12s ease-in-out infinite alternate; }
@keyframes h1-window {
  0% { filter:brightness(1); box-shadow:inset 0 0 20px rgba(0,0,0,.3); }
  50% { filter:brightness(1.1); box-shadow:inset 0 0 30px rgba(0,0,0,.2); }
  100% { filter:brightness(.95); box-shadow:inset 0 0 15px rgba(0,0,0,.4); }
}
@keyframes h1-glow {
  0%,100% { opacity:.6; transform:scale(1); }
  50% { opacity:1; transform:scale(1.1); }
}
@keyframes h1-shadow {
  0% { transform:translateX(0) scale(1); opacity:.3; }
  50% { transform:translateX(-5px) scale(1.05); opacity:.5; }
  100% { transform:translateX(3px) scale(.95); opacity:.3; }
}
@keyframes h1-curtain {
  0% { transform:rotate(0deg) scaleX(1); }
  100% { transform:rotate(-5deg) scaleX(1.1); }
}

/* chater-searches-castle */
.scn-chater-searches-castle {
  background: linear-gradient(180deg, #c8a878 0%, #a08060 50%, #7a5a3a 100%), radial-gradient(ellipse at 50% 30%, #d8b890 0%, transparent 70%);
}
.scn-chater-searches-castle .wall { position:absolute; inset:0; background:linear-gradient(135deg, #b09878 0%, #8a7050 100%); }
.scn-chater-searches-castle .bookshelf { position:absolute; top:5%; right:5%; width:25%; height:60%; background:linear-gradient(90deg, #6a4a2a 0%, #5a3a1a 100%); border-radius:4px; box-shadow:inset -4px 0 10px rgba(0,0,0,.4); }
.scn-chater-searches-castle .cupboard { position:absolute; bottom:10%; left:50%; width:20%; height:40%; transform:translateX(-50%); background:linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:2px; border:2px solid #4a2a0a; box-shadow:0 4px 10px rgba(0,0,0,.5); }
.scn-chater-searches-castle .panel { position:absolute; bottom:30%; left:45%; width:8%; height:25%; background:linear-gradient(180deg, #a87848 0%, #885828 100%); border:1px solid #6a3a0a; transform:skewX(-5deg); animation:sc-panel 6s ease-in-out infinite; cursor:pointer; }
.scn-chater-searches-castle .map { position:absolute; top:15%; left:10%; width:30%; height:25%; background:linear-gradient(180deg, #e0c8a0 0%, #c8a878 100%); border:2px solid #8a6a3a; border-radius:2px; box-shadow:0 2px 8px rgba(0,0,0,.3); animation:sc-map 10s ease-in-out infinite alternate; }
.scn-chater-searches-castle .figure-tap { position:absolute; bottom:25%; left:48%; width:10%; height:30%; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sc-tap 3s ease-in-out infinite; }
.scn-chater-searches-castle .candle { position:absolute; bottom:40%; left:60%; width:3%; height:12%; background:linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%); border-radius:50% 50% 5% 5%; box-shadow:0 0 10px #f0e0c0; }
.scn-chater-searches-castle .candle-glow { position:absolute; bottom:40%; left:60%; width:3%; height:12%; background:radial-gradient(circle at 50% 0%, #ffd080 0%, transparent 50%); animation:sc-candle 2s ease-in-out infinite; }
@keyframes sc-panel {
  0%,100% { transform:skewX(-5deg) translateX(0); }
  50% { transform:skewX(-3deg) translateX(2px); }
}
@keyframes sc-map {
  0% { transform:scale(1) rotate(0deg); }
  50% { transform:scale(1.03) rotate(1deg); }
  100% { transform:scale(1) rotate(-1deg); }
}
@keyframes sc-tap {
  0% { transform:translateX(0) translateY(0) rotate(0deg); }
  25% { transform:translateX(3px) translateY(-1px) rotate(2deg); }
  50% { transform:translateX(0) translateY(-2px) rotate(-1deg); }
  75% { transform:translateX(-3px) translateY(-1px) rotate(2deg); }
  100% { transform:translateX(0) translateY(0) rotate(0deg); }
}
@keyframes sc-candle {
  0%,100% { opacity:.8; transform:scaleY(1); }
  50% { opacity:1; transform:scaleY(1.1); }
}

/* chater-bribe-attempt */
.scn-chater-bribe-attempt {
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b098 50%, #a08870 100%), radial-gradient(ellipse at 50% 70%, #d8c0a8 0%, transparent 70%);
}
.scn-chater-bribe-attempt .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #8a7050 0%, #6a5230 100%); }
.scn-chater-bribe-attempt .table { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:50%; height:15%; background:linear-gradient(180deg, #b09878 0%, #907858 100%); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.3); }
.scn-chater-bribe-attempt .coin { position:absolute; bottom:38%; left:55%; width:5%; height:5%; background:radial-gradient(circle, #f0d080 0%, #c8a040 100%); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.4); animation:br-coin 4s ease-in-out infinite; }
.scn-chater-bribe-attempt .figure1 { position:absolute; bottom:20%; left:20%; width:15%; height:30%; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:br-figure1 6s ease-in-out infinite; }
.scn-chater-bribe-attempt .figure2 { position:absolute; bottom:20%; right:20%; width:15%; height:30%; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:br-figure2 8s ease-in-out infinite; }
.scn-chater-bribe-attempt .window-light { position:absolute; top:0; left:20%; width:30%; height:100%; background:linear-gradient(180deg, rgba(255,240,200,.2) 0%, transparent 100%); animation:br-light 12s ease-in-out infinite alternate; }
.scn-chater-bribe-attempt .shadow { position:absolute; bottom:0; left:10%; width:80%; height:40%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%); animation:br-shadow 10s ease-in-out infinite; }
@keyframes br-coin {
  0%,100% { transform:scale(1) rotate(0deg); filter:brightness(.9); }
  50% { transform:scale(1.2) rotate(10deg); filter:brightness(1.1); opacity:.8; }
}
@keyframes br-figure1 {
  0% { transform:translateX(0) rotate(0deg); }
  33% { transform:translateX(2px) rotate(2deg) translateY(-1px); }
  66% { transform:translateX(-1px) rotate(-1deg) translateY(0); }
  100% { transform:translateX(0) rotate(0deg); }
}
@keyframes br-figure2 {
  0% { transform:translateX(0) rotate(0deg) scale(1); }
  50% { transform:translateX(-2px) rotate(1deg) scale(1.02); }
  100% { transform:translateX(0) rotate(0deg) scale(1); }
}
@keyframes br-light {
  0% { opacity:.8; transform:translateX(-5px); }
  100% { opacity:1; transform:translateX(5px); }
}
@keyframes br-shadow {
  0% { transform:scaleY(1); opacity:.5; }
  50% { transform:scaleY(1.1); opacity:.6; }
  100% { transform:scaleY(1); opacity:.4; }
}

/* journey-to-finland */
.scn-journey-to-finland {
  background: linear-gradient(180deg, #a0b0b8 0%, #808a90 50%, #5a666a 100%), radial-gradient(ellipse at 50% 40%, #b0c0c8 0%, transparent 70%);
}
.scn-journey-to-finland .wall { position:absolute; inset:0; background:linear-gradient(135deg, #889898 0%, #687878 100%); }
.scn-journey-to-finland .desk { position:absolute; bottom:15%; left:10%; right:10%; height:40%; background:linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:4px; box-shadow:inset 0 -4px 10px rgba(0,0,0,.4); }
.scn-journey-to-finland .passport { position:absolute; bottom:30%; left:20%; width:15%; height:20%; background:linear-gradient(180deg, #e8d8c0 0%, #c8b098 100%); border:2px solid #4a3a2a; border-radius:2px; transform:rotate(-10deg); animation:jf-passport 6s ease-in-out infinite; }
.scn-journey-to-finland .document { position:absolute; bottom:30%; right:20%; width:20%; height:25%; background:linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); border:1px solid #8a7a5a; border-radius:2px; transform:rotate(5deg); animation:jf-document 8s ease-in-out infinite alternate; }
.scn-journey-to-finland .figure-official { position:absolute; bottom:20%; left:5%; width:12%; height:35%; background:linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:jf-official 3s ease-in-out infinite; }
.scn-journey-to-finland .figure-gregg { position:absolute; bottom:20%; right:5%; width:12%; height:35%; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:jf-gregg 5s ease-in-out infinite; }
.scn-journey-to-finland .globe { position:absolute; bottom:40%; left:40%; width:18%; height:20%; background:radial-gradient(circle at 30% 30%, #a0b0a0 0%, #5a6a5a 100%); border-radius:50%; box-shadow:0 0 20px rgba(0,0,0,.3); animation:jf-globe 20s linear infinite; }
@keyframes jf-passport {
  0%,100% { transform:rotate(-10deg) translateX(0); }
  50% { transform:rotate(-8deg) translateX(2px); }
}
@keyframes jf-document {
  0% { transform:rotate(5deg) scale(1); filter:brightness(1); }
  100% { transform:rotate(8deg) scale(1.05); filter:brightness(1.1); }
}
@keyframes jf-official {
  0% { transform:translateY(0) rotate(0deg); }
  25% { transform:translateY(-2px) rotate(1deg); }
  50% { transform:translateY(0) rotate(-1deg); }
  75% { transform:translateY(-1px) rotate(1deg); }
  100% { transform:translateY(0) rotate(0deg); }
}
@keyframes jf-gregg {
  0% { transform:translateX(0) scale(1); }
  33% { transform:translateX(2px) scale(1.02); }
  66% { transform:translateX(-1px) scale(.98); }
  100% { transform:translateX(0) scale(1); }
}
@keyframes jf-globe {
  0% { transform:rotate(0deg); }
  100% { transform:rotate(360deg); }
}

/* consulate-safe-motive – tense bright interior */
.scn-consulate-safe-motive {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d9cbb8 40%, #bfab98 100%),
    radial-gradient(ellipse at 30% 70%, #fdf6ed 0%, transparent 60%);
}
.scn-consulate-safe-motive .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #e8dac8 0%, #c8b89f 100%); animation: csm-wall 12s ease-in-out infinite alternate;
}
.scn-consulate-safe-motive .safe {
  position:absolute; bottom:20%; left:10%; width:120px; height:90px; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:8px; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: csm-safe 8s ease-in-out infinite alternate;
}
.scn-consulate-safe-motive .desk {
  position:absolute; bottom:10%; left:5%; right:5%; height:60px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:4px; box-shadow: 0 -2px 6px rgba(0,0,0,.3); animation: csm-desk 6s ease-in-out infinite;
}
.scn-consulate-safe-motive .lamp {
  position:absolute; bottom:55%; left:25%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 0, #ffd080 0%, #c09050 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 -20px 60px 20px #ffd080; animation: csm-lamp 4s ease-in-out infinite alternate;
}
.scn-consulate-safe-motive .figure1 {
  position:absolute; bottom:12%; left:30%; width:24px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom; animation: csm-fig1 3s ease-in-out infinite;
}
.scn-consulate-safe-motive .figure2 {
  position:absolute; bottom:12%; right:30%; width:22px; height:58px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom; animation: csm-fig2 3.5s ease-in-out infinite alternate;
}
.scn-consulate-safe-motive .shadow {
  position:absolute; bottom:10%; left:20%; width:140px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.25) 0%, transparent 70%); animation: csm-shadow 5s ease-in-out infinite;
}
.scn-consulate-safe-motive .documents {
  position:absolute; bottom:14%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); border-radius:2px; transform: rotate(-8deg); box-shadow: 2px 2px 6px rgba(0,0,0,.2); animation: csm-docs 7s ease-in-out infinite;
}
@keyframes csm-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes csm-safe { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes csm-desk { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes csm-lamp { 0% { opacity:0.85; box-shadow: 0 -20px 40px 15px #ffd080 } 50% { opacity:1; box-shadow: 0 -20px 80px 30px #ffd080 } 100% { opacity:0.9; box-shadow: 0 -20px 50px 18px #ffd080 } }
@keyframes csm-fig1 { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(24px) rotate(1deg) } 100% { transform: translateX(32px) rotate(0) } }
@keyframes csm-fig2 { 0% { transform: translateX(0) rotate(0) scaleY(1) } 50% { transform: translateX(-10px) rotate(3deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes csm-shadow { 0% { opacity:0.5; transform:scaleX(1) } 50% { opacity:0.7; transform:scaleX(1.1) } 100% { opacity:0.5; transform:scaleX(1) } }
@keyframes csm-docs { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-3px) } 100% { transform: rotate(-8deg) translateY(0) } }

/* olinto-reveals-plot – dark dim interior */
.scn-olinto-reveals-plot {
  background:
    linear-gradient(180deg, #16162a 0%, #1e1e32 40%, #0a0a16 100%),
    radial-gradient(ellipse at 40% 60%, #2a2a44 0%, transparent 70%);
}
.scn-olinto-reveals-plot .walls {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a1a30 0%, #0f0f20 100%); animation: orp-walls 15s ease-in-out infinite alternate;
}
.scn-olinto-reveals-plot .table {
  position:absolute; bottom:5%; left:20%; right:20%; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:6px; box-shadow: 0 4px 8px rgba(0,0,0,.8); animation: orp-table 8s ease-in-out infinite;
}
.scn-olinto-reveals-plot .candle {
  position:absolute; bottom:20%; left:45%; width:10px; height:30px; background: linear-gradient(180deg, #e0b060 0%, #a07030 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 -20px 40px 12px #ffa040; animation: orp-candle 3s ease-in-out infinite alternate;
}
.scn-olinto-reveals-plot .figure-olinto {
  position:absolute; bottom:5%; left:30%; width:28px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom; animation: orp-fig1 4s ease-in-out infinite;
}
.scn-olinto-reveals-plot .figure-elma {
  position:absolute; bottom:5%; right:30%; width:24px; height:60px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom; animation: orp-fig2 4.5s ease-in-out infinite alternate;
}
.scn-olinto-reveals-plot .window-night {
  position:absolute; top:10%; right:10%; width:60px; height:80px; background: linear-gradient(180deg, #0a0a20 0%, #1a1a30 100%); border-radius:4px; box-shadow: inset 0 0 10px rgba(0,0,0,.6); animation: orp-window 12s ease-in-out infinite alternate;
}
.scn-olinto-reveals-plot .shadowy-hand {
  position:absolute; bottom:12%; left:38%; width:12px; height:16px; background: radial-gradient(ellipse at 50% 0, #0a0a1a 0%, transparent 70%); border-radius:50%; transform: rotate(20deg); animation: orp-hand 6s ease-in-out infinite;
}
@keyframes orp-walls { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes orp-table { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes orp-candle { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:0.85; transform: scaleY(0.98) } }
@keyframes orp-fig1 { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(-6px) rotate(2deg) } 50% { transform: translateX(-12px) rotate(-1deg) } 75% { transform: translateX(-18px) rotate(3deg) } 100% { transform: translateX(-24px) rotate(0) } }
@keyframes orp-fig2 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(8px) scaleY(1.03) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes orp-window { 0% { opacity:0.6; box-shadow: inset 0 0 6px rgba(0,0,0,.7) } 50% { opacity:0.8; box-shadow: inset 0 0 12px rgba(0,0,0,.9) } 100% { opacity:0.6; box-shadow: inset 0 0 6px rgba(0,0,0,.7) } }
@keyframes orp-hand { 0% { transform: rotate(20deg) translate(0,0) } 50% { transform: rotate(25deg) translate(2px,-2px) } 100% { transform: rotate(20deg) translate(0,0) } }

/* yacht-iris-scuttled – dark dim interior (below decks) */
.scn-yacht-iris-scuttled {
  background:
    linear-gradient(180deg, #0f1a1f 0%, #1a2a30 40%, #060e12 100%),
    radial-gradient(ellipse at 30% 80%, #1a2a30 0%, transparent 60%);
}
.scn-yacht-iris-scuttled .hull {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a2a30 0%, #0a121a 100%); animation: yis-hull 20s ease-in-out infinite alternate;
}
.scn-yacht-iris-scuttled .porthole {
  position:absolute; top:30%; right:15%; width:50px; height:50px; background: radial-gradient(circle at 50% 50%, #2a4a5a 0%, #0a1a2a 70%); border-radius:50%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); animation: yis-porthole 10s ease-in-out infinite;
}
.scn-yacht-iris-scuttled .figure-ward {
  position:absolute; bottom:5%; left:25%; width:26px; height:65px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom; animation: yis-fig 5s ease-in-out infinite;
}
.scn-yacht-iris-scuttled .lantern {
  position:absolute; bottom:40%; left:40%; width:14px; height:20px; background: radial-gradient(circle at 50% 0, #c08040 0%, #905020 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 30px 10px #b07030; animation: yis-lantern 4s ease-in-out infinite alternate;
}
.scn-yacht-iris-scuttled .papers {
  position:absolute; bottom:20%; left:35%; width:50px; height:40px; background: linear-gradient(180deg, #e8e0c0 0%, #c8b888 100%); border-radius:2px; transform: rotate(-5deg); box-shadow: 1px 1px 4px rgba(0,0,0,.3); animation: yis-papers 8s ease-in-out infinite;
}
.scn-yacht-iris-scuttled .water-seep {
  position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(20,60,80,0.3) 0%, rgba(10,40,60,0.7) 100%); border-radius:40% 60% 0 0 / 100% 100% 0 0; animation: yis-water 12s ease-in-out infinite alternate;
}
.scn-yacht-iris-scuttled .chain {
  position:absolute; bottom:45%; left:20%; width:8px; height:80px; background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 50%, #2a2a2a 100%); border-radius:4px; animation: yis-chain 15s linear infinite;
}
@keyframes yis-hull { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes yis-porthole { 0% { opacity:0.5; transform:scale(1) } 50% { opacity:0.7; transform:scale(1.05) } 100% { opacity:0.5; transform:scale(1) } }
@keyframes yis-fig { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(10px) rotate(2deg) } 50% { transform: translateX(20px) rotate(-1deg) } 75% { transform: translateX(30px) rotate(3deg) } 100% { transform: translateX(40px) rotate(0) } }
@keyframes yis-lantern { 0% { opacity:0.7; transform: rotate(-5deg) } 50% { opacity:1; transform: rotate(5deg) } 100% { opacity:0.8; transform: rotate(-3deg) } }
@keyframes yis-papers { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-4px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes yis-water { 0% { transform: translateY(0); opacity:0.5 } 50% { transform: translateY(5px); opacity:0.7 } 100% { transform: translateY(0); opacity:0.5 } }
@keyframes yis-chain { 0% { transform: translateY(0) } 100% { transform: translateY(30px) } }

/* elma-writes-her-story – dark mood, bright interior (lamp), warm gold/white */
.scn-elma-writes-her-story {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #0e0e16 100%),
    radial-gradient(ellipse at 60% 70%, #2a2a3e 0%, transparent 70%);
}
.scn-elma-writes-her-story .room {
  position:absolute; inset:0; background: linear-gradient(135deg, #22223a 0%, #12122a 100%); animation: ews-room 15s ease-in-out infinite alternate;
}
.scn-elma-writes-her-story .desk {
  position:absolute; bottom:5%; left:15%; right:15%; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6px; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: ews-desk 7s ease-in-out infinite;
}
.scn-elma-writes-her-story .lamp-glow {
  position:absolute; bottom:45%; left:40%; width:30px; height:30px; background: radial-gradient(circle at 50% 50%, #ffe0a0 0%, #d0a060 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 80px 40px #ffd080; animation: ews-lamp 3s ease-in-out infinite alternate;
}
.scn-elma-writes-her-story .figure-elma {
  position:absolute; bottom:5%; left:38%; width:28px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom; animation: ews-fig 4s ease-in-out infinite;
}
.scn-elma-writes-her-story .paper {
  position:absolute; bottom:25%; left:35%; width:60px; height:45px; background: linear-gradient(180deg, #f8f0d0 0%, #d8c8a0 100%); border-radius:3px; transform: rotate(-4deg); box-shadow: 2px 2px 8px rgba(0,0,0,.3); animation: ews-paper 6s ease-in-out infinite;
}
.scn-elma-writes-her-story .inkwell {
  position:absolute; bottom:22%; left:48%; width:12px; height:14px; background: radial-gradient(circle at 50% 30%, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 4px rgba(0,0,0,.5); animation: ews-ink 9s ease-in-out infinite alternate;
}
.scn-elma-writes-her-story .clock {
  position:absolute; top:10%; right:15%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 30% 30%; box-shadow: inset 0 2px 6px rgba(255,255,255,.1); animation: ews-clock 12s linear infinite;
}
.scn-elma-writes-her-story .shadow-bar {
  position:absolute; top:20%; left:0; width:100%; height:8px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.2) 50%, transparent 100%); filter: blur(3px); animation: ews-bar 10s ease-in-out infinite alternate;
}
@keyframes ews-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ews-desk { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes ews-lamp { 0% { opacity:0.85; box-shadow: 0 0 60px 30px #ffd080 } 50% { opacity:1; box-shadow: 0 0 100px 50px #ffd080 } 100% { opacity:0.9; box-shadow: 0 0 70px 35px #ffd080 } }
@keyframes ews-fig { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(6px) rotate(1deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(2deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes ews-paper { 0% { transform: rotate(-4deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-5px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes ews-ink { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes ews-clock { 0% { transform: rotate(0) } 50% { transform: rotate(180deg) } 100% { transform: rotate(360deg) } }
@keyframes ews-bar { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* body-gone-cross-found */
.scn-body-gone-cross-found { background: linear-gradient(180deg, #4a6b6e 0%, #8aa38a 40%, #c0b28a 70%), radial-gradient(ellipse at 30% 20%, #e0d4b0 0%, transparent 60%); }
.scn-body-gone-cross-found .bgc-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b8c8d0 0%, #d4c8a0 60%, #e8d8b0 100%); animation: bgc-sky 15s ease-in-out infinite alternate; }
.scn-body-gone-cross-found .bgc-forest { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.3); animation: bgc-forest 18s ease-in-out infinite alternate; }
.scn-body-gone-cross-found .bgc-ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a6a4a 0%, #4a4a2a 100%); border-radius: 20% 30% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.3); }
.scn-body-gone-cross-found .bgc-cross { position:absolute; bottom:40%; left:50%; width:14px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #c8553d 0%, #a0461a 70%); border-radius: 2px; box-shadow: 0 0 30px 8px #c8553d, 0 0 60px 16px rgba(200,85,61,.4); animation: bgc-glow 2s ease-in-out infinite alternate; }
.scn-body-gone-cross-found .bgc-figure-left { position:absolute; bottom:18%; left:30%; 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: bgc-walk 4s ease-in-out infinite; }
.scn-body-gone-cross-found .bgc-figure-right { position:absolute; bottom:18%; right:30%; width:18px; height:38px; background: linear-gradient(180deg, #1e2a1e 0%, #0e1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bgc-walk 4s ease-in-out infinite 1.5s; }
.scn-body-gone-cross-found .bgc-leaf { position:absolute; top:50%; left:20%; width:8px; height:8px; background: #5a6a3a; border-radius: 50% 0; filter: blur(1px); animation: bgc-drift 7s ease-in-out infinite; }
@keyframes bgc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes bgc-forest { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes bgc-glow { 0% { box-shadow: 0 0 20px 4px #c8553d, 0 0 40px 8px rgba(200,85,61,.3); opacity:.8 } 50% { box-shadow: 0 0 40px 12px #d96a4a, 0 0 70px 18px rgba(217,106,74,.5); opacity:1 } 100% { box-shadow: 0 0 24px 6px #c8553d, 0 0 48px 10px rgba(200,85,61,.35); opacity:.85 } }
@keyframes bgc-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) scale(1) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) scale(1.02) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) scale(1) } 75% { transform: translateX(8px) translateY(-1px) rotate(1deg) scale(.98) } 100% { transform: translateX(0) translateY(0) rotate(0) scale(1) } }
@keyframes bgc-drift { 0% { transform: translate(0,0) rotate(0) scale(1); opacity:.6 } 33% { transform: translate(15px,-10px) rotate(30deg) scale(1.1); opacity:.8 } 66% { transform: translate(30px,-20px) rotate(60deg) scale(.9); opacity:.5 } 100% { transform: translate(45px,-30px) rotate(90deg) scale(1); opacity:.7 } }

/* olinto-alive-in-london */
.scn-olinto-alive-in-london { background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #9a8e70 100%), repeating-linear-gradient(90deg, transparent 0, transparent 40px, rgba(0,0,0,.03) 40px, rgba(0,0,0,.03) 42px); }
.scn-olinto-alive-in-london .oal-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d4c8b0 0%, #b8a88a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.1); }
.scn-olinto-alive-in-london .oal-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a5e4a 0%, #4a3e2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-olinto-alive-in-london .oal-table { position:absolute; bottom:18%; left:50%; width:80px; height:8px; transform:translateX(-50%); background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-olinto-alive-in-london .oal-chair { position:absolute; bottom:20%; left:40%; width:16px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 2px 2px; transform: skewX(-10deg); animation: oal-shift 8s ease-in-out infinite alternate; }
.scn-olinto-alive-in-london .oal-window { position:absolute; top:8%; left:50%; width:60px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #c0d8e0 0%, #a0b8c0 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.1); }
.scn-olinto-alive-in-london .oal-lamp { position:absolute; top:4%; left:60%; width:8px; height:12px; background: radial-gradient(circle, #e8d080 0%, #c8b060 80%); border-radius: 50%; box-shadow: 0 0 30px 10px #e8d080, 0 0 60px 20px rgba(232,208,128,.3); animation: oal-sway 4s ease-in-out infinite; }
.scn-olinto-alive-in-london .oal-waiter { position:absolute; bottom:12%; left:30%; width:14px; height:32px; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oal-walk 6s ease-in-out infinite; }
@keyframes oal-sway { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes oal-walk { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(10px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(20px) translateY(0) rotate(0) } 75% { transform: translateX(10px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes oal-shift { 0% { transform: skewX(-10deg) translateX(0) } 50% { transform: skewX(-8deg) translateX(4px) } 100% { transform: skewX(-10deg) translateX(0) } }

/* confrontation-with-olinto */
.scn-confrontation-with-olinto { background: linear-gradient(180deg, #0e1624 0%, #1a1e3a 40%, #2a2640 70%, #1e1a2e 100%), radial-gradient(ellipse at 60% 80%, #3a2a1a 0%, transparent 60%); }
.scn-confrontation-with-olinto .co-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1e3a 0%, #2e2a4e 50%, #4a3a6e 100%); animation: co-sky 20s ease-in-out infinite alternate; }
.scn-confrontation-with-olinto .co-buildings { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 20% 40% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.5); }
.scn-confrontation-with-olinto .co-cobble { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(45deg, #3a3a4a 0, #3a3a4a 4px, #4a4a5a 4px, #4a4a5a 8px); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-confrontation-with-olinto .co-lantern { position:absolute; bottom:40%; left:25%; width:10px; height:14px; background: radial-gradient(circle, #e8c868 0%, #c8a848 80%); border-radius: 4px; box-shadow: 0 0 40px 12px #e8c868, 0 0 80px 24px rgba(232,200,104,.4); animation: co-lantern 3s ease-in-out infinite alternate; }
.scn-confrontation-with-olinto .co-figure-left { position:absolute; bottom:15%; left:35%; width:22px; height:44px; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: co-figures 5s ease-in-out infinite; }
.scn-confrontation-with-olinto .co-figure-right { position:absolute; bottom:15%; right:35%; width:20px; height:42px; background: linear-gradient(180deg, #1e1e3e 0%, #0e0e2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: co-figures 5s ease-in-out infinite 1s; }
.scn-confrontation-with-olinto .co-door { position:absolute; bottom:20%; right:18%; width:24px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); transform: perspective(60px) rotateY(10deg); animation: co-door 10s ease-in-out infinite; }
@keyframes co-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes co-lantern { 0% { box-shadow: 0 0 30px 8px #e8c868, 0 0 60px 16px rgba(232,200,104,.3); opacity:.8 } 50% { box-shadow: 0 0 50px 16px #f0d878, 0 0 90px 28px rgba(240,216,120,.5); opacity:1 } 100% { box-shadow: 0 0 35px 10px #e8c868, 0 0 65px 18px rgba(232,200,104,.35); opacity:.85 } }
@keyframes co-figures { 0% { transform: translateX(0) translateY(0) rotate(-1deg) scale(1) } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg) scale(1.02) } 50% { transform: translateX(0) translateY(-1px) rotate(-1deg) scale(1) } 75% { transform: translateX(-3px) translateY(1px) rotate(2deg) scale(.98) } 100% { transform: translateX(0) translateY(0) rotate(0) scale(1) } }
@keyframes co-door { 0% { transform: perspective(60px) rotateY(10deg) translateX(0) } 50% { transform: perspective(60px) rotateY(5deg) translateX(2px) } 100% { transform: perspective(60px) rotateY(10deg) translateX(0) } }

/* armida-disappearance-mystery */
.scn-armida-disappearance-mystery { background: linear-gradient(180deg, #1e1e2e 0%, #2a2a3e 40%, #3e3a4e 70%, #1e1a2a 100%), radial-gradient(ellipse at 30% 40%, #4a3a2a 0%, transparent 60%); }
.scn-armida-disappearance-mystery .adm-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.3); }
.scn-armida-disappearance-mystery .adm-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-armida-disappearance-mystery .adm-window { position:absolute; top:10%; left:50%; width:50px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 100%); border-radius: 4px; box-shadow: inset 0 0 15px rgba(0,0,0,.5); animation: adm-window 12s ease-in-out infinite alternate; }
.scn-armida-disappearance-mystery .adm-chair { position:absolute; bottom:25%; left:30%; width:14px; height:18px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 2px 2px; transform: perspective(40px) rotateX(5deg); animation: adm-chair 7s ease-in-out infinite; }
.scn-armida-disappearance-mystery .adm-table { position:absolute; bottom:22%; left:55%; width:40px; height:6px; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 50%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-armida-disappearance-mystery .adm-lamp { position:absolute; bottom:26%; left:55%; width:6px; height:10px; background: radial-gradient(circle, #e8c868 0%, #c8a848 80%); border-radius: 50%; box-shadow: 0 0 40px 12px #e8c868, 0 0 80px 24px rgba(232,200,104,.4); animation: adm-lamp 3s ease-in-out infinite alternate; }
.scn-armida-disappearance-mystery .adm-figure { position:absolute; bottom:15%; left:25%; width:18px; height:38px; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: adm-figure 6s ease-in-out infinite; }
@keyframes adm-window { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes adm-chair { 0% { transform: perspective(40px) rotateX(5deg) translateX(0) } 50% { transform: perspective(40px) rotateX(7deg) translateX(2px) } 100% { transform: perspective(40px) rotateX(5deg) translateX(0) } }
@keyframes adm-lamp { 0% { box-shadow: 0 0 30px 8px #e8c868, 0 0 60px 16px rgba(232,200,104,.3); opacity:.8 } 50% { box-shadow: 0 0 50px 16px #f0d878, 0 0 90px 28px rgba(240,216,120,.5); opacity:1 } 100% { box-shadow: 0 0 35px 10px #e8c868, 0 0 65px 18px rgba(232,200,104,.35); opacity:.85 } }
@keyframes adm-figure { 0% { transform: translateX(0) translateY(0) rotate(0) scale(1) } 30% { transform: translateX(2px) translateY(-1px) rotate(1deg) scale(1.01) } 60% { transform: translateX(0) translateY(1px) rotate(-1deg) scale(.99) } 100% { transform: translateX(0) translateY(0) rotate(0) scale(1) } }

.scn-leghorn-consul-duty {
  background: 
    linear-gradient(180deg, #4b6f8a 0%, #a3c4d6 35%, #d9e6ef 60%),
    radial-gradient(ellipse at 50% 100%, #2c5a6b 0%, transparent 70%);
}
.scn-leghorn-consul-duty .window-frame {
  position: absolute; inset: 5% 5% 45% 5%;
  background: transparent;
  border: 6px solid #5e3a1c;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.5);
  animation: lcd-frame 8s ease-in-out infinite alternate;
}
.scn-leghorn-consul-duty .sky-haze {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7ba9c9 0%, #d4e8f2 100%);
  opacity: 0.8;
  animation: lcd-sky 12s ease-in-out infinite alternate;
}
.scn-leghorn-consul-duty .sea-foam {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2f6480 0%, #1b4b66 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: lcd-sea 15s ease-in-out infinite;
}
.scn-leghorn-consul-duty .yacht-aground {
  position: absolute; bottom: 28%; left: 25%; width: 70px; height: 40px;
  background: linear-gradient(135deg, #a07a4a 0%, #6b4f2e 100%);
  border-radius: 10% 10% 40% 40% / 30% 30% 20% 20%;
  transform: rotate(-7deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: lcd-rock 4s ease-in-out infinite alternate;
}
.scn-leghorn-consul-duty .torpedo-boat {
  position: absolute; bottom: 32%; left: 60%; width: 50px; height: 14px;
  background: linear-gradient(90deg, #3a5068, #1c2b38);
  border-radius: 30% 30% 0 0;
  transform: translateY(0);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: lcd-slide 10s ease-in-out infinite;
}
.scn-leghorn-consul-duty .desk-surface {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #66462a 0%, #3d2a17 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
  animation: lcd-desk 6s ease-in-out infinite alternate;
}
.scn-leghorn-consul-duty .document-detail {
  position: absolute; bottom: 6%; left: 28%; width: 50px; height: 35px;
  background: #f3e6c8;
  border-radius: 2px;
  transform: rotate(-3deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: lcd-paper 5s ease-in-out infinite;
}
.scn-leghorn-consul-duty .seal-stamp {
  position: absolute; bottom: 9%; left: 38%; width: 16px; height: 16px;
  background: radial-gradient(circle, #c8553d 0%, #8a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(200,85,61,0.6);
  animation: lcd-seal 7s ease-in-out infinite alternate;
}
@keyframes lcd-frame { 0% { border-color: #5e3a1c; transform: scale(1); } 50% { border-color: #7a4f28; transform: scale(0.98); } 100% { border-color: #4e2f14; transform: scale(1.01); } }
@keyframes lcd-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes lcd-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes lcd-rock { 0% { transform: rotate(-7deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-8deg) translateY(1px); } }
@keyframes lcd-slide { 0% { left: 60%; } 50% { left: 55%; } 100% { left: 62%; } }
@keyframes lcd-desk { 0% { background: linear-gradient(180deg, #66462a 0%, #3d2a17 100%); } 50% { background: linear-gradient(180deg, #735231 0%, #4a331e 100%); } 100% { background: linear-gradient(180deg, #5a3d22 0%, #312013 100%); } }
@keyframes lcd-paper { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(0.98); } }
@keyframes lcd-seal { 0% { box-shadow: 0 0 6px rgba(200,85,61,0.6); opacity: 0.8; } 50% { box-shadow: 0 0 12px rgba(200,85,61,0.9); opacity: 1; } 100% { box-shadow: 0 0 8px rgba(200,85,61,0.5); opacity: 0.9; } }

.scn-yacht-owner-visit {
  background: 
    linear-gradient(180deg, #e6dcc8 0%, #f5efdf 40%, #efe5d0 100%),
    radial-gradient(ellipse at 50% 100%, #d1c3a8 0%, transparent 70%);
}
.scn-yacht-owner-visit .office-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d9cfb8 0%, #c8bca2 100%);
  border-bottom: 4px solid #a89b80;
  animation: yov-wall 10s ease-in-out infinite alternate;
}
.scn-yacht-owner-visit .floor-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #9c8c72 0%, #75664d 100%);
  border-radius: 20% 20% 0 0;
  animation: yov-floor 12s ease-in-out infinite;
}
.scn-yacht-owner-visit .desk-front {
  position: absolute; bottom: 15%; left: 10%; width: 55%; height: 20%;
  background: linear-gradient(135deg, #7a6536 0%, #5a4826 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
  animation: yov-desk 8s ease-in-out infinite alternate;
}
.scn-yacht-owner-visit .chair-a {
  position: absolute; bottom: 10%; left: 20%; width: 22px; height: 35px;
  background: linear-gradient(180deg, #4a3824, #2f2215);
  border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%;
  transform-origin: bottom;
  animation: yov-chair-a 6s ease-in-out infinite;
}
.scn-yacht-owner-visit .chair-b {
  position: absolute; bottom: 10%; left: 45%; width: 22px; height: 35px;
  background: linear-gradient(180deg, #5a4530, #3c2b1c);
  border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%;
  transform-origin: bottom;
  animation: yov-chair-b 7s ease-in-out infinite alternate;
}
.scn-yacht-owner-visit .figure-hornby {
  position: absolute; bottom: 16%; left: 22%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3b2e1d 0%, #221a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yov-hornby 5s ease-in-out infinite;
}
.scn-yacht-owner-visit .figure-chater {
  position: absolute; bottom: 16%; left: 46%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #4a3f30 0%, #30281e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yov-chater 6s ease-in-out infinite alternate;
}
.scn-yacht-owner-visit .window-light {
  position: absolute; top: 8%; right: 8%; width: 50px; height: 60px;
  background: radial-gradient(circle, #fff9e6 0%, #e0d8b8 60%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(255,249,230,0.3);
  animation: yov-window 9s ease-in-out infinite alternate;
}
@keyframes yov-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes yov-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes yov-desk { 0% { box-shadow: 0 -6px 12px rgba(0,0,0,0.3); } 50% { box-shadow: 0 -4px 8px rgba(0,0,0,0.2); } 100% { box-shadow: 0 -8px 14px rgba(0,0,0,0.35); } }
@keyframes yov-chair-a { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes yov-chair-b { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes yov-hornby { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(3deg); } 60% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes yov-chater { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(3px) scale(1.02); } 100% { transform: translateX(0) scale(0.98); } }
@keyframes yov-window { 0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(255,249,230,0.3); } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(255,249,230,0.5); } 100% { opacity: 0.8; box-shadow: 0 0 40px 20px rgba(255,249,230,0.35); } }

.scn-dinner-aboard-lola {
  background: 
    linear-gradient(180deg, #1a1410 0%, #3a2a1c 40%, #4d3823 100%),
    radial-gradient(ellipse at 50% 100%, #5e4128 0%, transparent 70%);
}
.scn-dinner-aboard-lola .cabin-bulkhead {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1f16 0%, #1f1610 100%);
  border-bottom: 3px solid #4d3823;
  animation: dal-bulk 12s ease-in-out infinite alternate;
}
.scn-dinner-aboard-lola .table-top {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(135deg, #6a4b2e 0%, #3f2d1c 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.7);
  animation: dal-table 8s ease-in-out infinite;
}
.scn-dinner-aboard-lola .candle-flame {
  position: absolute; bottom: 32%; left: 30%; width: 10px; height: 18px;
  background: radial-gradient(circle, #ffdd77 0%, #e8a040 60%, transparent 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 25px 10px rgba(255,221,119,0.5);
  animation: dal-candle 3s ease-in-out infinite alternate;
}
.scn-dinner-aboard-lola .plate-set {
  position: absolute; bottom: 24%; left: 35%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #e8dcc8, #c8b8a0);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: dal-plate 7s ease-in-out infinite alternate;
}
.scn-dinner-aboard-lola .wine-glass {
  position: absolute; bottom: 34%; left: 45%; width: 8px; height: 16px;
  background: linear-gradient(180deg, rgba(180,140,100,0.7) 0%, rgba(100,70,40,0.5) 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  border: 1px solid rgba(200,160,120,0.3);
  animation: dal-wine 9s ease-in-out infinite;
}
.scn-dinner-aboard-lola .figure-hornby-torso {
  position: absolute; bottom: 15%; left: 22%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #35281a 0%, #1d130b 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: dal-hornby 5s ease-in-out infinite alternate;
}
.scn-dinner-aboard-lola .figure-chater-torso {
  position: absolute; bottom: 15%; right: 22%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #30261a 0%, #1a1309 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: dal-chater 6s ease-in-out infinite;
}
.scn-dinner-aboard-lola .porthole-glow {
  position: absolute; top: 8%; right: 8%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,210,130,0.4) 0%, rgba(255,180,60,0.2) 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,210,130,0.2);
  animation: dal-porthole 10s ease-in-out infinite alternate;
}
@keyframes dal-bulk { 0% { opacity: 0.9; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes dal-table { 0% { transform: scale(1); } 50% { transform: scale(0.98); } 100% { transform: scale(1.01); } }
@keyframes dal-candle { 0% { opacity: 0.6; transform: scaleY(0.9); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.7; transform: scaleY(0.95); } }
@keyframes dal-plate { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dal-wine { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes dal-hornby { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(3deg); } 60% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes dal-chater { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-3px) scale(1.02); } 100% { transform: translateX(0) scale(0.98); } }
@keyframes dal-porthole { 0% { opacity: 0.3; box-shadow: 0 0 20px 10px rgba(255,210,130,0.1); } 50% { opacity: 0.6; box-shadow: 0 0 40px 20px rgba(255,210,130,0.3); } 100% { opacity: 0.4; box-shadow: 0 0 25px 12px rgba(255,210,130,0.15); } }

.scn-hidden-armory-on-yacht {
  background: 
    linear-gradient(180deg, #0d0a0a 0%, #1a1412 50%, #241c18 100%),
    radial-gradient(ellipse at 50% 100%, #2c201a 0%, transparent 70%);
}
.scn-hidden-armory-on-yacht .metal-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a2220 0%, #1a1412 100%);
  border-bottom: 2px solid #4a3a32;
  animation: hao-wall 14s ease-in-out infinite alternate;
}
.scn-hidden-armory-on-yacht .weapon-shelf {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #4a3a32, #302620);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.7);
  animation: hao-shelf 10s ease-in-out infinite;
}
.scn-hidden-armory-on-yacht .rifle-silhouette {
  position: absolute; bottom: 38%; left: 20%; width: 50px; height: 8px;
  background: #3a2a22;
  border-radius: 2px 10px 10px 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: hao-rifle 8s ease-in-out infinite alternate;
}
.scn-hidden-armory-on-yacht .pistol-outline {
  position: absolute; bottom: 44%; left: 45%; width: 18px; height: 6px;
  background: #4a3a32;
  border-radius: 2px 8px 8px 2px;
  transform: rotate(-15deg);
  box-shadow: 0 1px 3px rgba(0,0,0,0.6);
  animation: hao-pistol 6s ease-in-out infinite;
}
.scn-hidden-armory-on-yacht .torn-photo {
  position: absolute; bottom: 50%; left: 55%; width: 20px; height: 24px;
  background: #8a7a6a;
  border-radius: 2px;
  clip-path: polygon(0 0, 100% 0, 100% 70%, 80% 70%, 80% 100%, 0 100%);
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: hao-photo 9s ease-in-out infinite alternate;
}
.scn-hidden-armory-on-yacht .safe-unit {
  position: absolute; bottom: 10%; left: 15%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #4a4038, #2a2018);
  border: 2px solid #5a4a40;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: hao-safe 12s ease-in-out infinite;
}
.scn-hidden-armory-on-yacht .shadow-figure {
  position: absolute; bottom: 22%; right: 18%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hao-figure 7s ease-in-out infinite alternate;
}
.scn-hidden-armory-on-yacht .floor-grating {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: repeating-linear-gradient(90deg, #3a2a22 0px, #3a2a22 2px, transparent 2px, transparent 6px);
  opacity: 0.3;
  animation: hao-grating 20s linear infinite;
}
@keyframes hao-wall { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes hao-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes hao-rifle { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes hao-pistol { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-13deg) scale(1.05); } 100% { transform: rotate(-17deg) scale(0.95); } }
@keyframes hao-photo { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes hao-safe { 0% { box-shadow: 0 4px 12px rgba(0,0,0,0.8); } 50% { box-shadow: 0 6px 16px rgba(0,0,0,0.9); } 100% { box-shadow: 0 2px 8px rgba(0,0,0,0.7); } }
@keyframes hao-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(-1px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hao-grating { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }

.scn-baron-oberg-investigation { background: linear-gradient(180deg, #f2e1c0 0%, #d4b48a 30%, #b8956a 100%), radial-gradient(ellipse at 70% 20%, #fff6e0 0%, transparent 60%); }
.scn-baron-oberg-investigation .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e4c9a5 0%, #c3a77a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.1); }
.scn-baron-oberg-investigation .desk { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #7a5b3e 0%, #4b3722 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-baron-oberg-investigation .photograph { position:absolute; bottom:30%; left:35%; width:30%; height:25%; background: radial-gradient(circle at 50% 40%, #fefcf0 0%, #d4c8a0 60%, #a09060 100%); border-radius: 4%; box-shadow: 0 0 20px 6px rgba(255,200,100,0.4); animation: boi-photo 2.5s ease-in-out infinite; }
.scn-baron-oberg-investigation .clock { position:absolute; top:8%; right:18%; width:12%; height:18%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50%; box-shadow: 0 0 0 4px #8a6a4a, 0 0 12px rgba(0,0,0,0.4); display:flex; justify-content:center; align-items:center; animation: boi-clock 8s ease-in-out infinite; }
.scn-baron-oberg-investigation .clock::after { content:''; position:absolute; width:4px; height:40%; background: #d4b48a; border-radius: 2px; transform-origin: bottom center; transform: translateY(-50%) rotate(45deg); }
.scn-baron-oberg-investigation .shadow { position:absolute; bottom:30%; left:20%; width:30%; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%); animation: boi-shadow 4s ease-in-out infinite alternate; }
.scn-baron-oberg-investigation .figure { position:absolute; bottom:30%; left:20%; width:15%; height:50%; background: linear-gradient(180deg, #2a2a3e 0%, #12121e 100%); border-radius: 35% 35% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: boi-sway 5s ease-in-out infinite; }
.scn-baron-oberg-investigation .chair { position:absolute; bottom:2%; left:55%; width:20%; height:25%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-baron-oberg-investigation .magnifier { position:absolute; bottom:20%; left:45%; width:6%; height:8%; background: radial-gradient(circle, #c0c0c0 0%, #808080 60%); border-radius: 50%; border: 2px solid #a08050; box-shadow: 0 0 10px 2px rgba(255,255,255,0.3); animation: boi-magnify 6s ease-in-out infinite alternate; }
@keyframes boi-photo { 0% { box-shadow: 0 0 15px 4px rgba(255,200,100,0.3); opacity:0.9; } 50% { box-shadow: 0 0 30px 10px rgba(255,200,100,0.7); opacity:1; } 100% { box-shadow: 0 0 18px 5px rgba(255,200,100,0.4); opacity:0.95; } }
@keyframes boi-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes boi-shadow { 0% { opacity:0.3; transform: scaleX(1); } 100% { opacity:0.6; transform: scaleX(1.1); } }
@keyframes boi-sway { 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 boi-magnify { 0% { transform: scale(1); } 100% { transform: scale(1.1) rotate(5deg); } }

.scn-durnford-pale-reaction { background: linear-gradient(180deg, #f8e8c0 0%, #dcc8a0 40%, #b09868 100%), radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 70%); }
.scn-durnford-pale-reaction .window { position:absolute; top:5%; left:10%; right:10%; bottom:30%; background: linear-gradient(135deg, #fffbe8 0%, #e8d4b0 60%, #c8b090 100%); border-radius: 2% / 4%; box-shadow: inset 0 0 40px rgba(255,255,200,0.3); animation: dpr-window 12s ease-in-out infinite alternate; }
.scn-durnford-pale-reaction .curtain { position:absolute; top:5%; left:5%; width:15%; height:70%; background: linear-gradient(180deg, #b8a088 0%, #907860 100%); border-radius: 20% 0 0 30%; opacity:0.6; animation: dpr-curtain 8s ease-in-out infinite; }
.scn-durnford-pale-reaction .figure { position:absolute; bottom:20%; left:35%; width:20%; height:55%; background: linear-gradient(180deg, #2a2a3e 0%, #10101a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dpr-figure 6s ease-in-out infinite; }
.scn-durnford-pale-reaction .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 0 0 10% 10%; }
.scn-durnford-pale-reaction .shadows { position:absolute; bottom:15%; left:25%; width:40%; height:15%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%); animation: dpr-shadows 5s ease-in-out infinite alternate; }
.scn-durnford-pale-reaction .hand { position:absolute; bottom:35%; left:45%; width:8%; height:12%; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2a 100%); border-radius: 25% 25% 20% 20%; transform: rotate(15deg); animation: dpr-hand 4s ease-in-out infinite; }
@keyframes dpr-window { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes dpr-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes dpr-figure { 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 dpr-shadows { 0% { opacity:0.3; transform: scaleX(1); } 100% { opacity:0.6; transform: scaleX(1.15); } }
@keyframes dpr-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-durnford-denies-knowledge { background: linear-gradient(180deg, #8fc4e8 0%, #5a90b0 50%, #2a6078 100%), radial-gradient(ellipse at 30% 20%, #b0d8f0 0%, transparent 60%); }
.scn-durnford-denies-knowledge .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0d0f0 0%, #60a0c0 100%); animation: ddk-sky 20s ease-in-out infinite; }
.scn-durnford-denies-knowledge .ocean { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a6078 0%, #1a3850 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; animation: ddk-ocean 7s ease-in-out infinite; }
.scn-durnford-denies-knowledge .deck { position:absolute; bottom:35%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #6a5038 0%, #3a2818 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.4); }
.scn-durnford-denies-knowledge .railing { position:absolute; bottom:42%; left:10%; right:10%; height:3%; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 50%, #4a3a2a 100%); display:flex; justify-content:space-around; }
.scn-durnford-denies-knowledge .railing::before { content:''; position:absolute; bottom:0; left:5%; right:5%; height:100%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 2px, transparent 2px, transparent 6px); }
.scn-durnford-denies-knowledge .figure-a { position:absolute; bottom:30%; left:30%; width:14%; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ddk-figA 5s ease-in-out infinite; }
.scn-durnford-denies-knowledge .figure-b { position:absolute; bottom:30%; left:50%; width:14%; height:40%; background: linear-gradient(180deg, #2a2a3e 0%, #12121e 100%); border-radius: 35% 35% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ddk-figB 6s ease-in-out infinite; }
.scn-durnford-denies-knowledge .sail { position:absolute; top:8%; left:55%; width:18%; height:35%; background: linear-gradient(135deg, #f0f0e8 0%, #c8c8b8 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); border-radius: 0 20% 20% 0; animation: ddk-sail 8s ease-in-out infinite alternate; }
@keyframes ddk-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ddk-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes ddk-figA { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ddk-figB { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-3px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ddk-sail { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.1); } }

.scn-durnford-yacht-identity { background: linear-gradient(180deg, #a0d0f0 0%, #6a9ec0 40%, #3a6a8a 100%), radial-gradient(ellipse at 80% 30%, #c0e8ff 0%, transparent 60%); }
.scn-durnford-yacht-identity .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8d8f0 0%, #78a8c8 100%); animation: dyi-sky 15s ease-in-out infinite; }
.scn-durnford-yacht-identity .ocean { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a5878 0%, #183048 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0; animation: dyi-ocean 6s ease-in-out infinite; }
.scn-durnford-yacht-identity .deck { position:absolute; bottom:35%; left:5%; right:5%; height:12%; background: linear-gradient(180deg, #7a5a42 0%, #4a3020 100%); border-radius: 2% 2% 0 0; transform: rotate(-2deg); }
.scn-durnford-yacht-identity .mast { position:absolute; bottom:35%; left:30%; width:3%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform-origin: bottom center; animation: dyi-mast 10s ease-in-out infinite alternate; }
.scn-durnford-yacht-identity .bugler { position:absolute; bottom:30%; left:25%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 30% 30% 25% 25% / 45% 45% 25% 25%; transform-origin: bottom center; animation: dyi-bugler 4s ease-in-out infinite; }
.scn-durnford-yacht-identity .bugler::after { content:''; position:absolute; top:15%; left:50%; width:30%; height:8%; background: #a08060; border-radius: 40%; transform: translateX(-50%) rotate(15deg); }
.scn-durnford-yacht-identity .runner { position:absolute; bottom:30%; left:55%; width:10%; height:30%; background: linear-gradient(180deg, #2a2a3e 0%, #12121e 100%); border-radius: 25% 25% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: dyi-runner 5s ease-in-out infinite; }
.scn-durnford-yacht-identity .flag { position:absolute; top:5%; left:35%; width:10%; height:15%; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); clip-path: polygon(0% 0%, 100% 20%, 80% 100%, 0% 80%); animation: dyi-flag 3s ease-in-out infinite alternate; }
@keyframes dyi-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes dyi-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(3px); } }
@keyframes dyi-mast { 0% { transform: rotate(0deg); } 100% { transform: rotate(2deg); } }
@keyframes dyi-bugler { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-2px) rotate(2deg); } 80% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dyi-runner { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(10px) translateY(-3px) rotate(5deg); } 50% { transform: translateX(20px) translateY(0) rotate(0deg); } 75% { transform: translateX(30px) translateY(-2px) rotate(-3deg); } 100% { transform: translateX(40px) translateY(0) rotate(0deg); } }
@keyframes dyi-flag { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.2); } }

/* castle-of-kajana */
.scn-castle-of-kajana { background: linear-gradient(180deg, #0a0a1a 0%, #14142a 40%, #1e1e3a 100%), radial-gradient(ellipse at 50% 100%, #1a1a3e 0%, transparent 70%); }
.scn-castle-of-kajana .water { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #0a1a1a 0%, #0a0a1a 100%); animation: ckj-water 12s ease-in-out infinite alternate; }
.scn-castle-of-kajana .sky { position:absolute; top:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #0c0c24 0%, #18183a 60%, #20204a 100%); animation: ckj-sky 20s ease-in-out infinite alternate; }
.scn-castle-of-kajana .castle { position:absolute; bottom:30%; left:50%; width:120px; height:180px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 30px rgba(0,0,0,.8); }
.scn-castle-of-kajana .tower-light { position:absolute; bottom:58%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #cc8844 70%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(255,208,128,.6), 0 0 80px 20px rgba(255,208,128,.3); animation: ckj-light 4s ease-in-out infinite alternate; }
.scn-castle-of-kajana .boat { position:absolute; bottom:18%; left:30%; width:60px; height:12px; background: linear-gradient(90deg, #3a2a1a, #2a1a0a); border-radius: 50% 50% 20% 20%; animation: ckj-boat 8s ease-in-out infinite; }
.scn-castle-of-kajana .nun { position:absolute; bottom:23%; left:50%; width:16px; height:40px; transform:translateX(-50%); background: #1a1a1a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ckj-nun 6s ease-in-out infinite; }
.scn-castle-of-kajana .trees { position:absolute; bottom:30%; left:10%; width:20px; height:60px; background: #1a2a1a; border-radius: 50% 50% 0 0; box-shadow: 80px 0 #1a2a1a, 160px 0 #1a2a1a; filter: blur(2px); animation: ckj-trees 30s linear infinite; }
@keyframes ckj-water { 0% { opacity: .7; transform: scaleY(1) } 50% { opacity: .9; transform: scaleY(1.02) } 100% { opacity: .8; transform: scaleY(1) } }
@keyframes ckj-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes ckj-light { 0% { opacity: .6; box-shadow: 0 0 20px 5px rgba(255,208,128,.4), 0 0 40px 10px rgba(255,208,128,.2) } 50% { opacity: 1; box-shadow: 0 0 60px 15px rgba(255,208,128,.7), 0 0 100px 25px rgba(255,208,128,.4) } 100% { opacity: .7; box-shadow: 0 0 30px 8px rgba(255,208,128,.5), 0 0 60px 15px rgba(255,208,128,.3) } }
@keyframes ckj-boat { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(10px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes ckj-nun { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-3px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ckj-trees { 0% { transform: translateX(0) } 50% { transform: translateX(-15px) } 100% { transform: translateX(-30px) } }

/* rescue-attempt-from-castle */
.scn-rescue-attempt-from-castle { background: linear-gradient(180deg, #0a0a14 0%, #14142a 100%); }
.scn-rescue-attempt-from-castle .bg-corridor { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, #0a0a14 70%); }
.scn-rescue-attempt-from-castle .wall-left { position:absolute; bottom:0; left:0; width:30%; height:70%; background: linear-gradient(90deg, #1a1a2a 0%, #0a0a14 100%); clip-path: polygon(0 0, 100% 20%, 100% 100%, 0 100%); animation: rfc-wall 8s ease-in-out infinite alternate; }
.scn-rescue-attempt-from-castle .wall-right { position:absolute; bottom:0; right:0; width:30%; height:70%; background: linear-gradient(90deg, #0a0a14 0%, #1a1a2a 100%); clip-path: polygon(0 20%, 100% 0, 100% 100%, 0 100%); animation: rfc-wall 8s ease-in-out infinite alternate-reverse; }
.scn-rescue-attempt-from-castle .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); }
.scn-rescue-attempt-from-castle .figure-gregg { position:absolute; bottom:15%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rfc-gregg 2s ease-in-out infinite; }
.scn-rescue-attempt-from-castle .figure-sentry { position:absolute; bottom:15%; right:40%; width:22px; height:55px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rfc-sentry 2s ease-in-out infinite; }
.scn-rescue-attempt-from-castle .light-source { position:absolute; bottom:60%; left:50%; width:15px; height:15px; transform:translateX(-50%); background: radial-gradient(circle, #f0d080 0%, #b09040 60%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(240,208,128,.5); animation: rfc-light 0.5s ease-in-out infinite alternate; }
.scn-rescue-attempt-from-castle .shadow { position:absolute; bottom:10%; left:30%; width:100px; height:20px; background: rgba(0,0,0,.6); filter: blur(6px); border-radius:50%; animation: rfc-shadow 2s ease-in-out infinite; }
@keyframes rfc-wall { 0% { transform: skewX(0) } 50% { transform: skewX(-2deg) } 100% { transform: skewX(0) } }
@keyframes rfc-gregg { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(3px) rotate(5deg) } 50% { transform: translateX(5px) rotate(-3deg) } 75% { transform: translateX(2px) rotate(7deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes rfc-sentry { 0% { transform: translateX(0) rotate(3deg) } 25% { transform: translateX(-3px) rotate(-5deg) } 50% { transform: translateX(-5px) rotate(3deg) } 75% { transform: translateX(-2px) rotate(-7deg) } 100% { transform: translateX(0) rotate(3deg) } }
@keyframes rfc-light { 0% { opacity: .6; box-shadow: 0 0 20px 4px rgba(240,208,128,.3) } 50% { opacity: 1; box-shadow: 0 0 40px 10px rgba(240,208,128,.6) } 100% { opacity: .7; box-shadow: 0 0 25px 6px rgba(240,208,128,.4) } }
@keyframes rfc-shadow { 0% { transform: scaleX(1); opacity: .7 } 50% { transform: scaleX(1.2); opacity: 1 } 100% { transform: scaleX(1); opacity: .7 } }

/* escape-through-forest */
.scn-escape-through-forest { background: linear-gradient(180deg, #0a1a0a 0%, #0a0a0a 100%), radial-gradient(ellipse at 50% 0%, #1a2a1a 0%, transparent 80%); }
.scn-escape-through-forest .bg-forest { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a1a0a 80%); }
.scn-escape-through-forest .tree-left { position:absolute; bottom:0; left:5%; width:30px; height:100%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 30% 0 0; transform-origin: bottom center; animation: etf-tree 15s ease-in-out infinite; }
.scn-escape-through-forest .tree-right { position:absolute; bottom:0; right:5%; width:35px; height:100%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 30% 0 0; transform-origin: bottom center; animation: etf-tree 15s ease-in-out infinite alternate-reverse; }
.scn-escape-through-forest .path { position:absolute; bottom:15%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); clip-path: polygon(10% 0, 90% 0, 80% 100%, 20% 100%); animation: etf-path 12s ease-in-out infinite; }
.scn-escape-through-forest .figure-elma { position:absolute; bottom:20%; left:30%; width:16px; height:48px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: etf-walk 4s ease-in-out infinite; }
.scn-escape-through-forest .figure-gregg-forest { position:absolute; bottom:20%; left:45%; width:18px; height:52px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: etf-walk 4s ease-in-out infinite 0.5s; }
.scn-escape-through-forest .boat-forest { position:absolute; bottom:28%; left:10%; width:40px; height:10px; background: #2a1a0a; border-radius: 50% 50% 20% 20%; transform: rotate(-10deg); animation: etf-boat 10s ease-in-out infinite; }
.scn-escape-through-forest .hut { position:absolute; bottom:18%; right:8%; width:40px; height:30px; background: #2a2a1a; border-radius: 20% 20% 0 0; box-shadow: 0 5px 10px rgba(0,0,0,.5); }
.scn-escape-through-forest .moon-glow { position:absolute; top:10%; right:20%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,220,255,.3) 0%, transparent 70%); border-radius:50%; animation: etf-moon 30s ease-in-out infinite; }
@keyframes etf-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes etf-path { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes etf-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(-2deg) } }
@keyframes etf-boat { 0% { transform: translateX(0) rotate(-10deg) } 50% { transform: translateX(8px) rotate(-8deg) } 100% { transform: translateX(0) rotate(-10deg) } }
@keyframes etf-moon { 0% { opacity: .3; transform: scale(1) } 50% { opacity: .6; transform: scale(1.05) } 100% { opacity: .3; transform: scale(1) } }

/* boranski-arranged-release */
.scn-boranski-arranged-release { background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 100%); }
.scn-boranski-arranged-release .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 100%); }
.scn-boranski-arranged-release .window-bright { position:absolute; top:10%; left:10%; width:40%; height:50%; background: linear-gradient(180deg, #b0d8f0 0%, #90b8d0 100%); border: 4px solid #6a5a4a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,.3); animation: bar-window 8s ease-in-out infinite; }
.scn-boranski-arranged-release .desk { position:absolute; bottom:15%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-boranski-arranged-release .lamp { position:absolute; bottom:25%; left:30%; width:10px; height:20px; background: #8a7a6a; border-radius: 4px 4px 0 0; box-shadow: 0 0 20px 6px rgba(255,220,150,.6); animation: bar-lamp 3s ease-in-out infinite alternate; }
.scn-boranski-arranged-release .figure-officer { position:absolute; bottom:15%; left:10%; width:20px; height:55px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bar-officer 6s ease-in-out infinite; }
.scn-boranski-arranged-release .figure-gregg-release { position:absolute; bottom:15%; left:45%; width:18px; 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: bar-gregg 5s ease-in-out infinite; }
.scn-boranski-arranged-release .figure-boranski { position:absolute; bottom:15%; right:15%; width:22px; height:45px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bar-boranski 7s ease-in-out infinite; }
@keyframes bar-window { 0% { opacity: .8; transform: scaleX(1) } 50% { opacity: 1; transform: scaleX(1.02) } 100% { opacity: .9; transform: scaleX(1) } }
@keyframes bar-lamp { 0% { opacity: .7; box-shadow: 0 0 15px 4px rgba(255,220,150,.4) } 50% { opacity: 1; box-shadow: 0 0 30px 8px rgba(255,220,150,.7) } 100% { opacity: .8; box-shadow: 0 0 20px 6px rgba(255,220,150,.5) } }
@keyframes bar-officer { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bar-gregg { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes bar-boranski { 0% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }

/* item-torn-photograph-elma – bright interior, calm */
.scn-item-torn-photograph-elma {
  background: linear-gradient(180deg, #fbe9d7 0%, #e8d5b7 100%), radial-gradient(ellipse at 40% 30%, #fff8e7 0%, transparent 60%);
}
.scn-item-torn-photograph-elma .window {
  position: absolute; top: 10%; left: 5%; width: 40%; height: 60%;
  background: linear-gradient(135deg, #fff9e6 0%, #d4c4a8 100%);
  border-radius: 5px; box-shadow: inset 0 0 30px rgba(255,255,220,0.5);
  animation: si-tpe-window-light 8s ease-in-out infinite alternate;
}
.scn-item-torn-photograph-elma .drape-left {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(to right, #a08060, #705038);
  border-radius: 0 40% 0 40%;
  animation: si-tpe-drape-sway 6s ease-in-out infinite alternate;
}
.scn-item-torn-photograph-elma .drape-right {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(to left, #a08060, #705038);
  border-radius: 40% 0 40% 0;
  animation: si-tpe-drape-sway 6s ease-in-out infinite alternate-reverse;
}
.scn-item-torn-photograph-elma .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #6d5438, #4d3a24);
  border-radius: 5px; box-shadow: 0 5px 15px rgba(0,0,0,0.3);
}
.scn-item-torn-photograph-elma .hand {
  position: absolute; bottom: 18%; left: 30%; width: 10%; height: 20%;
  background: linear-gradient(to bottom, #dbb88c, #c49a6e, #a67c52);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom right;
  animation: si-tpe-hand-tremor 2s ease-in-out infinite;
}
.scn-item-torn-photograph-elma .photo-left {
  position: absolute; bottom: 20%; left: 32%; width: 15%; height: 25%;
  background: #f2e0c0; border-radius: 3px;
  clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%);
  animation: si-tpe-photo-float 4s ease-in-out infinite alternate;
}
.scn-item-torn-photograph-elma .photo-right {
  position: absolute; bottom: 20%; left: 45%; width: 15%; height: 25%;
  background: #f2e0c0; border-radius: 3px;
  clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%);
  animation: si-tpe-photo-float 4s ease-in-out infinite alternate-reverse;
}
@keyframes si-tpe-window-light {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.85; transform: scale(0.98); }
}
@keyframes si-tpe-drape-sway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes si-tpe-hand-tremor {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(1px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(-1px) translateY(1px) rotate(-2deg); }
}
@keyframes si-tpe-photo-float {
  0% { transform: translateY(0) rotate(-10deg); }
  50% { transform: translateY(-2px) rotate(-9deg); }
  100% { transform: translateY(1px) rotate(-11deg); }
}

/* body-in-rannoch-wood – dusk, dark */
.scn-body-in-rannoch-wood {
  background: linear-gradient(180deg, #1a1a2e 0%, #3a2a4e 30%, #4d3a5e 60%, #6b4f6f 100%);
}
.scn-body-in-rannoch-wood .sky {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.3), transparent);
  animation: si-rw-sky-pulse 12s ease-in-out infinite alternate;
}
.scn-body-in-rannoch-wood .moon {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px;
  background: #f0d090; border-radius: 50%;
  box-shadow: 0 0 30px #f0d090;
  animation: si-rw-moon-glow 6s ease-in-out infinite alternate;
}
.scn-body-in-rannoch-wood .trees-bg {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: #0d1b0d;
  clip-path: polygon(0% 100%, 5% 20%, 10% 100%, 20% 30%, 30% 100%, 40% 10%, 50% 100%, 60% 25%, 70% 100%, 80% 15%, 90% 100%, 100% 30%);
  animation: si-rw-trees-sway 10s ease-in-out infinite alternate;
}
.scn-body-in-rannoch-wood .trees-mid {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 35%;
  background: #162a16;
  clip-path: polygon(0% 100%, 3% 10%, 8% 100%, 15% 30%, 22% 100%, 30% 20%, 38% 100%, 45% 40%, 52% 100%, 60% 15%, 70% 100%, 75% 50%, 85% 100%, 92% 25%, 100% 100%);
  animation: si-rw-trees-sway 10s ease-in-out infinite alternate-reverse;
}
.scn-body-in-rannoch-wood .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(to top, #0f1a0f, #1a2a1a);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: si-rw-ground 8s ease-in-out infinite alternate;
}
.scn-body-in-rannoch-wood .body {
  position: absolute; bottom: 15%; left: 30%; width: 8%; height: 15%;
  background: linear-gradient(to bottom, #4a3a3a, #2a1a1a);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  animation: si-rw-body-still 4s ease-in-out infinite;
}
.scn-body-in-rannoch-wood .figure-fleeing {
  position: absolute; bottom: 10%; left: 20%; width: 6%; height: 20%;
  background: #1a1a2a;
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: si-rw-flee 15s linear infinite;
}
.scn-body-in-rannoch-wood .shadow {
  position: absolute; bottom: 15%; left: 28%; width: 12%; height: 5%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5), transparent);
  animation: si-rw-shadow-pulse 4s ease-in-out infinite alternate;
}
@keyframes si-rw-sky-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes si-rw-moon-glow {
  0% { box-shadow: 0 0 20px #f0d090; }
  50% { box-shadow: 0 0 40px #f0d090; }
  100% { box-shadow: 0 0 30px #f0d090; }
}
@keyframes si-rw-trees-sway {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(1px) scaleY(1.01); }
  100% { transform: translateX(-1px) scaleY(0.99); }
}
@keyframes si-rw-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes si-rw-body-still {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(0.99) rotate(1deg); }
  100% { transform: scaleY(1) rotate(-1deg); }
}
@keyframes si-rw-flee {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(80px) rotate(-5deg); }
  50% { transform: translateX(160px) rotate(3deg); }
  75% { transform: translateX(240px) rotate(-2deg); }
  100% { transform: translateX(320px) rotate(0deg); }
}
@keyframes si-rw-shadow-pulse {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(0.9); }
}

/* murder-victim-discrepancy – sunlit, tense */
.scn-murder-victim-discrepancy {
  background: linear-gradient(180deg, #4a90d9 0%, #7ab8f5 40%, #c0e0ff 100%),
              radial-gradient(circle at 50% 10%, #fff8e0 0%, transparent 60%);
}
.scn-murder-victim-discrepancy .sun {
  position: absolute; top: 10%; left: 70%; width: 50px; height: 50px;
  background: #fff8e0; border-radius: 50%;
  box-shadow: 0 0 60px #fff8e0;
  animation: si-mvd-sun-pulse 2s ease-in-out infinite alternate;
}
.scn-murder-victim-discrepancy .cloud {
  position: absolute; top: 20%; left: 0; width: 20%; height: 10%;
  background: rgba(255,255,255,0.8); border-radius: 50%; filter: blur(8px);
  animation: si-mvd-cloud 10s linear infinite;
}
.scn-murder-victim-discrepancy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(to top, #8b7355, #b09860);
  border-radius: 30% 70% 0 0 / 100% 100% 0 0;
  animation: si-mvd-ground 8s ease-in-out infinite alternate;
}
.scn-murder-victim-discrepancy .victim {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 12%;
  background: linear-gradient(to bottom, #6b5b4b, #3b2b1b);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform: rotate(-10deg);
  animation: si-mvd-victim 5s ease-in-out infinite;
}
.scn-murder-victim-discrepancy .groom {
  position: absolute; bottom: 20%; left: 50%; width: 8%; height: 25%;
  background: linear-gradient(to bottom, #3a3a4a, #1a1a2a);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: si-mvd-groom-tremble 0.5s ease-in-out infinite;
}
.scn-murder-victim-discrepancy .shadow-harsh {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 3%;
  background: rgba(0,0,0,0.6); filter: blur(2px); transform: skewX(-20deg);
  animation: si-mvd-shadow-pulse 1s ease-in-out infinite alternate;
}
.scn-murder-victim-discrepancy .cloth {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 5%;
  background: #e8d8c0; border-radius: 5px; transform: rotate(5deg);
  animation: si-mvd-cloth-flutter 3s ease-in-out infinite alternate;
}
@keyframes si-mvd-sun-pulse {
  0% { box-shadow: 0 0 40px #fff8e0; transform: scale(1); }
  50% { box-shadow: 0 0 80px #fff8e0; transform: scale(1.05); }
  100% { box-shadow: 0 0 50px #fff8e0; transform: scale(0.95); }
}
@keyframes si-mvd-cloud {
  0% { transform: translateX(-20vw); opacity: 0.6; }
  50% { transform: translateX(40vw); opacity: 1; }
  100% { transform: translateX(100vw); opacity: 0.3; }
}
@keyframes si-mvd-ground {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1.01); }
}
@keyframes si-mvd-victim {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-1px); }
  100% { transform: rotate(-12deg) translateY(1px); }
}
@keyframes si-mvd-groom-tremble {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(2deg) scaleY(1.02); }
  50% { transform: rotate(-2deg) scaleY(0.98); }
  75% { transform: rotate(3deg) scaleY(1.01); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes si-mvd-shadow-pulse {
  0% { opacity: 0.5; transform: skewX(-20deg) scaleX(1); }
  50% { opacity: 0.8; transform: skewX(-18deg) scaleX(1.1); }
  100% { opacity: 0.5; transform: skewX(-22deg) scaleX(0.9); }
}
@keyframes si-mvd-cloth-flutter {
  0% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(7deg) translateX(1px); }
  100% { transform: rotate(3deg) translateX(-1px); }
}

/* stolen-keys-suspicion – bright interior, tense */
.scn-stolen-keys-suspicion {
  background: linear-gradient(to right, #e8d8c0, #f0e0c5),
              radial-gradient(circle at 50% 50%, #fff5e0 0%, transparent 100%);
}
.scn-stolen-keys-suspicion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(to top, #7a6a5a, #9a8a7a);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: si-sks-floor 10s ease-in-out infinite alternate;
}
.scn-stolen-keys-suspicion .safe {
  position: absolute; bottom: 25%; left: 15%; width: 20%; height: 30%;
  background: linear-gradient(to right, #5a4a3a, #4a3a2a);
  border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: si-sks-safe 8s ease-in-out infinite alternate;
}
.scn-stolen-keys-suspicion .table {
  position: absolute; bottom: 30%; left: 45%; width: 25%; height: 10%;
  background: linear-gradient(to bottom, #8b7a6a, #6b5a4a);
  border-radius: 5px; box-shadow: 0 5px 10px rgba(0,0,0,0.3);
  animation: si-sks-table 6s ease-in-out infinite;
}
.scn-stolen-keys-suspicion .chair {
  position: absolute; bottom: 30%; left: 65%; width: 10%; height: 25%;
  background: linear-gradient(to right, #6b5a4a, #5a4a3a);
  border-radius: 10% 10% 50% 50% / 20% 20% 80% 80%;
  transform-origin: bottom center;
  animation: si-sks-chair 5s ease-in-out infinite;
}
.scn-stolen-keys-suspicion .keys {
  position: absolute; bottom: 35%; left: 48%; width: 15%; height: 5%;
  background: radial-gradient(circle at 30% 50%, #d0b080, #a08060);
  border-radius: 2px;
  animation: si-sks-keys-shake 2s ease-in-out infinite;
}
.scn-stolen-keys-suspicion .figure {
  position: absolute; bottom: 25%; left: 40%; width: 10%; height: 30%;
  background: linear-gradient(to bottom, #3a3a4a, #1a1a2a);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: si-sks-figure-breathe 4s ease-in-out infinite;
}
.scn-stolen-keys-suspicion .keyhole {
  position: absolute; bottom: 40%; left: 25%; width: 8px; height: 8px;
  background: #1a1a1a; border-radius: 50%;
  box-shadow: 0 0 10px #b09060;
  animation: si-sks-keyhole-glow 3s ease-in-out infinite alternate;
}
@keyframes si-sks-floor {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(0.98); }
  100% { opacity: 0.9; transform: scaleY(1.01); }
}
@keyframes si-sks-safe {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes si-sks-table {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes si-sks-chair {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(1px); }
}
@keyframes si-sks-keys-shake {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(10deg); }
  60% { transform: translateX(-2px) rotate(-10deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes si-sks-figure-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.98) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes si-sks-keyhole-glow {
  0% { box-shadow: 0 0 5px #b09060; }
  50% { box-shadow: 0 0 15px #b09060, 0 0 30px rgba(176,144,96,0.5); }
  100% { box-shadow: 0 0 5px #b09060; }
}
/* end per-scene blocks */
