/* 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-traddles-future-judge {
  background: 
    linear-gradient(180deg, #1a1008 0%, #3a2010 50%, #1a0800 100%),
    radial-gradient(ellipse at 40% 60%, #6a3010 0%, transparent 70%);
}
.scn-traddles-future-judge .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1808 0%, #1a0a02 100%);
  animation: tfj-wall-pulse 10s ease-in-out infinite alternate;
}
.scn-traddles-future-judge .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #4a2a15 0%, #2a1508 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.6);
}
.scn-traddles-future-judge .lamp {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 22px;
  background: radial-gradient(circle at 50% 80%, #ffd080 0%, #c08040 60%, #804020 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 24px 8px #b07030, 0 0 48px 16px rgba(176,112,48,0.4);
  animation: tfj-lamp-flicker 2s ease-in-out infinite alternate;
}
.scn-traddles-future-judge .figure-main {
  position: absolute; bottom: 23%; left: 55%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a0e06 0%, #0f0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tfj-figure-sway 6s ease-in-out infinite;
}
.scn-traddles-future-judge .figure-second {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1408 0%, #120a04 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: tfj-figure-sway 6s ease-in-out infinite 1s;
}
.scn-traddles-future-judge .paper {
  position: absolute; bottom: 10%; left: 50%; width: 36px; height: 24px;
  background: linear-gradient(180deg, #d4b080 0%, #b09060 100%);
  border-radius: 2px;
  transform: rotate(-4deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-traddles-future-judge .shadow {
  position: absolute; bottom: 5%; left: 48%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  opacity: 0.5;
  animation: tfj-shadow-sway 8s ease-in-out infinite alternate;
}
.scn-traddles-future-judge .glow {
  position: absolute; bottom: 15%; left: 25%; width: 120px; height: 100px;
  background: radial-gradient(ellipse at 40% 60%, rgba(255,200,100,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: tfj-glow-pulse 4s ease-in-out infinite alternate;
}
@keyframes tfj-wall-pulse {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.88; }
}
@keyframes tfj-lamp-flicker {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.9; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,0.3); }
  40% { transform: scaleY(1.04) scaleX(0.96); opacity: 1; box-shadow: 0 0 28px 10px #d09050, 0 0 56px 18px rgba(208,144,80,0.5); }
  70% { transform: scaleY(0.97) scaleX(1.02); opacity: 0.85; }
  100% { transform: scaleY(1) scaleX(1); opacity: 0.92; box-shadow: 0 0 22px 7px #b07030, 0 0 44px 14px rgba(176,112,48,0.35); }
}
@keyframes tfj-figure-sway {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  60% { transform: translateX(-1px) translateY(0) rotate(-0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes tfj-shadow-sway {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(3px) scaleX(0.9); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes tfj-glow-pulse {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.5; transform: scale(1.05); }
  100% { opacity: 0.35; transform: scale(0.98); }
}

.scn-peg-mother-deathbed { background: linear-gradient(180deg, #2a1f2e 0%, #1f1724 40%, #14101a 100%), radial-gradient(ellipse at 50% 0%, #3f2a47 0%, transparent 70%); }
.scn-peg-mother-deathbed .dawn-sky { position:absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #5a4a5e 0%, #2a1f2e 80%); animation: pmd-dawn 15s ease-in-out infinite alternate; }
.scn-peg-mother-deathbed .bed-frame { position:absolute; bottom: 5%; left: 50%; transform: translateX(-50%); width: 85%; height: 60%; background: linear-gradient(180deg, #2c2018 0%, #1a100c 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-peg-mother-deathbed .figure-fig { position:absolute; bottom: 25%; left: 42%; width: 20px; height: 32px; background: linear-gradient(180deg, #4a3a42 0%, #2a1a22 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pmd-stir 8s ease-in-out infinite; }
.scn-peg-mother-deathbed .pillow { position:absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 40px; height: 20px; background: radial-gradient(ellipse at 50% 30%, #c8b8a8 0%, #9a8a7a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-peg-mother-deathbed .window-light { position:absolute; top: 12%; left: 15%; width: 30px; height: 45px; background: linear-gradient(180deg, rgba(200,180,160,.5) 0%, rgba(200,180,160,.1) 100%); border-radius: 4px; box-shadow: 0 0 40px 10px rgba(200,180,160,.3); animation: pmd-light 12s ease-in-out infinite alternate; }
.scn-peg-mother-deathbed .blanket { position:absolute; bottom: 8%; left: 20%; width: 60%; height: 18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 50% 50% 0 0; opacity: .8; }
@keyframes pmd-dawn { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .8 } }
@keyframes pmd-stir { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(-1px) rotate(0) } }
@keyframes pmd-light { 0% { opacity: .2; box-shadow: 0 0 20px 5px rgba(200,180,160,.1) } 50% { opacity: .5; box-shadow: 0 0 60px 15px rgba(200,180,160,.3) } 100% { opacity: .3; box-shadow: 0 0 30px 8px rgba(200,180,160,.15) } }

.scn-peg-warning-given { background: linear-gradient(180deg, #c8b8a0 0%, #a89880 50%, #807060 100%), radial-gradient(ellipse at 50% 100%, #908070 0%, transparent 70%); }
.scn-peg-warning-given .room-wall { position:absolute; inset: 0; background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%); }
.scn-peg-warning-given .door-frame { position:absolute; bottom: 10%; right: 8%; width: 15%; height: 70%; background: linear-gradient(90deg, #6a5a4a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.3); }
.scn-peg-warning-given .figure-murdstone { position:absolute; bottom: 12%; right: 25%; width: 22px; height: 48px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pwg-stiff 6s ease-in-out infinite; }
.scn-peg-warning-given .figure-peggotty { position:absolute; bottom: 12%; left: 30%; width: 24px; height: 42px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pwg-step 4s ease-in-out infinite; }
.scn-peg-warning-given .shadow-stripe { position:absolute; top: 30%; left: 40%; width: 20%; height: 30%; background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, transparent 100%); transform: skewX(-10deg); animation: pwg-shadow 7s ease-in-out infinite alternate; }
.scn-peg-warning-given .carpet { position:absolute; bottom:0; left:8%; width:84%; height:10%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; }
@keyframes pwg-stiff { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes pwg-step { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(1deg) } 50% { transform: translateX(-6px) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pwg-shadow { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

.scn-peg-plans-yarmouth { background: linear-gradient(180deg, #2a1a10 0%, #1a1008 50%, #0a0804 100%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 70%); }
.scn-peg-plans-yarmouth .hearth { position:absolute; bottom: 5%; left: 50%; transform: translateX(-50%); width: 60%; height: 50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-peg-plans-yarmouth .fire-glow { position:absolute; bottom: 20%; left: 38%; width: 24%; height: 30%; background: radial-gradient(ellipse at 50% 80%, #ff8030 0%, #ff6020 30%, #401000 100%); border-radius: 50%; filter: blur(8px); animation: ppy-fire 3s ease-in-out infinite alternate; }
.scn-peg-plans-yarmouth .log { position:absolute; bottom: 18%; left: 42%; width: 16%; height: 6%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%; transform: rotate(5deg); }
.scn-peg-plans-yarmouth .figure-peggotty-seated { position:absolute; bottom: 14%; left: 35%; width: 26px; height: 40px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ppy-rock 5s ease-in-out infinite; }
.scn-peg-plans-yarmouth .figure-davy { position:absolute; bottom: 14%; left: 50%; width: 18px; height: 34px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ppy-list 6s ease-in-out infinite; }
.scn-peg-plans-yarmouth .mantel { position:absolute; bottom: 48%; left: 30%; width: 40%; height: 4%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
@keyframes ppy-fire { 0% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .7; transform: scale(.98) } }
@keyframes ppy-rock { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ppy-list { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-2deg) } }

.scn-invitation-to-yarmouth { background: linear-gradient(180deg, #d8c8a8 0%, #c0b090 50%, #a89878 100%), radial-gradient(ellipse at 50% 0%, #e8d8b8 0%, transparent 70%); }
.scn-invitation-to-yarmouth .window-frame { position:absolute; top: 5%; right: 8%; width: 25%; height: 50%; background: linear-gradient(180deg, #b8a890 0%, #8a7a6a 100%); border-radius: 8%; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-invitation-to-yarmouth .sunbeam { position:absolute; top: 10%; right: 20%; width: 8%; height: 60%; background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 100%); transform: skewX(-15deg); filter: blur(4px); animation: ity-beam 12s ease-in-out infinite alternate; }
.scn-invitation-to-yarmouth .figure-peggotty-standing { position:absolute; bottom: 12%; left: 30%; width: 24px; height: 48px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ity-gesture 5s ease-in-out infinite; }
.scn-invitation-to-yarmouth .figure-davy-listening { position:absolute; bottom: 12%; left: 45%; width: 18px; height: 36px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ity-nod 4s ease-in-out infinite; }
.scn-invitation-to-yarmouth .floor { position:absolute; bottom:0; left:0; right:0; height: 12%; background: linear-gradient(180deg, #b8a080 0%, #9a8870 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,.2); }
.scn-invitation-to-yarmouth .wall-warm { position:absolute; inset: 0; background: linear-gradient(180deg, #e8d8c0 0%, #d0c0a8 100%); z-index: -1; }
@keyframes ity-beam { 0% { opacity: .3; transform: skewX(-15deg) translateX(0) } 50% { opacity: .6; transform: skewX(-15deg) translateX(10px) } 100% { opacity: .4; transform: skewX(-15deg) translateX(-5px) } }
@keyframes ity-gesture { 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 ity-nod { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-jealousy-over-kitt { background: linear-gradient(180deg, #f5ead0 0%, #d9c9a8 30%, #b3a084 60%, #8a7a5e 100%), radial-gradient(ellipse at 50% 0%, #fff6e0 0%, transparent 70%); }
.scn-jealousy-over-kitt .wall-back { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #f0e6d0 0%, #c0b090 50%, #8a7a5e 100%); }
.scn-jealousy-over-kitt .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #6b5a3e 0%, #8a764e 100%); }
.scn-jealousy-over-kitt .shadow-stripe-a { position:absolute; top:20%; left:10%; width:30%; height:60%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 30%, transparent 70%); animation: jek-stripe 6s ease-in-out infinite alternate; }
.scn-jealousy-over-kitt .shadow-stripe-b { position:absolute; top:20%; right:10%; width:30%; height:60%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.25) 30%, transparent 70%); animation: jek-stripe 6s ease-in-out infinite alternate-reverse; }
.scn-jealousy-over-kitt .figure-dora { position:absolute; bottom:28%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jek-dora 4s ease-in-out infinite; }
.scn-jealousy-over-kitt .figure-kitt { position:absolute; bottom:28%; right:25%; width:40px; height:80px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jek-kitt 4s ease-in-out infinite; }
.scn-jealousy-over-kitt .tension-line { position:absolute; top:50%; left:45%; width:10%; height:2px; background: rgba(128,0,0,0.6); box-shadow: 0 0 12px 4px rgba(128,0,0,0.3); animation: jek-tension 2s ease-in-out infinite; }
@keyframes jek-stripe { 0% { opacity:0.6; transform:skewX(10deg); } 50% { opacity:1; transform:skewX(-5deg); } 100% { opacity:0.6; transform:skewX(10deg); } }
@keyframes jek-dora { 0%,100% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(-8px) rotate(2deg); } }
@keyframes jek-kitt { 0%,100% { transform:translateX(0) rotate(2deg); } 50% { transform:translateX(8px) rotate(-2deg); } }
@keyframes jek-tension { 0%,100% { opacity:0.4; transform:scaleX(1); } 50% { opacity:1; transform:scaleX(1.5); } }

.scn-idle-happy-time { background: linear-gradient(180deg, #f7e8c8 0%, #ecd4a0 30%, #d4b880 60%, #b89a60 100%), radial-gradient(ellipse at 50% 50%, #ffedc0 0%, transparent 70%); }
.scn-idle-happy-time .wall-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0d8b0 0%, #e0c090 100%); }
.scn-idle-happy-time .floor-wood { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #a08050 0%, #c0a060 100%); }
.scn-idle-happy-time .mangle-box { position:absolute; bottom:22%; left:15%; width:70px; height:50px; background: linear-gradient(135deg, #8a6a3e 0%, #5a4a2a 100%); border-radius:8%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4); animation: iht-mangle 10s ease-in-out infinite; }
.scn-idle-happy-time .table-round { position:absolute; bottom:18%; left:50%; width:80px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #b09060 0%, #8a7040 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-idle-happy-time .figure-left { position:absolute; bottom:25%; left:35%; width:36px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iht-left 5s ease-in-out infinite; }
.scn-idle-happy-time .figure-right { position:absolute; bottom:25%; right:35%; width:36px; height:70px; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iht-right 5s ease-in-out infinite; }
.scn-idle-happy-time .love-glow { position:absolute; bottom:40%; left:50%; width:100px; height:100px; transform:translate(-50%,50%); background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%); animation: iht-glow 8s ease-in-out infinite alternate; }
@keyframes iht-mangle { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(2deg); } }
@keyframes iht-left { 0%,100% { transform:translateX(0) rotate(-3deg); } 50% { transform:translateX(4px) rotate(3deg); } }
@keyframes iht-right { 0%,100% { transform:translateX(0) rotate(3deg); } 50% { transform:translateX(-4px) rotate(-3deg); } }
@keyframes iht-glow { 0% { opacity:0.5; transform:translate(-50%,50%) scale(0.9); } 100% { opacity:1; transform:translate(-50%,50%) scale(1.1); } }

.scn-letter-to-agnes { background: linear-gradient(180deg, #c8d8e8 0%, #a8b8c8 30%, #8898a8 60%, #687888 100%), radial-gradient(ellipse at 50% 30%, #d0ddf0 0%, transparent 70%); }
.scn-letter-to-agnes .wall-cool { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d0d8e0 0%, #b0b8c0 100%); }
.scn-letter-to-agnes .window-light { position:absolute; top:10%; left:30%; width:40%; height:50%; background: linear-gradient(135deg, rgba(200,220,255,0.5) 0%, rgba(200,220,255,0.1) 100%); border: 2px solid rgba(100,120,140,0.3); border-radius:4% 4% 0 0; animation: lta-window 12s ease-in-out infinite alternate; }
.scn-letter-to-agnes .desk { position:absolute; bottom:15%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #8a6a3e 0%, #5a4a2a 100%); border-radius:4%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-letter-to-agnes .chair { position:absolute; bottom:5%; left:38%; width:24%; height:20%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 4% 4%; }
.scn-letter-to-agnes .figure-writing { position:absolute; bottom:12%; left:40%; width:40px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lta-write 6s ease-in-out infinite; }
.scn-letter-to-agnes .paper-glow { position:absolute; bottom:18%; left:45%; width:60px; height:40px; background: radial-gradient(circle, #f0e8c0 0%, #e0d0a0 40%, transparent 70%); box-shadow: 0 0 30px 8px rgba(240,232,192,0.5); animation: lta-paper 4s ease-in-out infinite alternate; }
.scn-letter-to-agnes .inkwell { position:absolute; bottom:15%; left:38%; width:14px; height:18px; background: #1a1a1a; border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: lta-ink 3s ease-in-out infinite; }
@keyframes lta-window { 0% { opacity:0.6; } 50% { opacity:1; box-shadow: 0 0 20px 4px rgba(200,220,255,0.3); } 100% { opacity:0.7; } }
@keyframes lta-write { 0%,100% { transform:translateX(0) rotate(-5deg); } 50% { transform:translateX(6px) rotate(5deg); } }
@keyframes lta-paper { 0% { opacity:0.8; transform:scale(1); } 100% { opacity:1; transform:scale(1.05); } }
@keyframes lta-ink { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }

.scn-traddles-appearance { background: linear-gradient(180deg, #f0ead8 0%, #d8ccb0 30%, #b8a888 60%, #988868 100%), radial-gradient(ellipse at 50% 30%, #faf0e0 0%, transparent 70%); }
.scn-traddles-appearance .wall-calm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%); }
.scn-traddles-appearance .door-frame { position:absolute; top:5%; left:20%; width:60%; height:70%; background: linear-gradient(to right, #8a7a5a 0%, #6a5a3a 30%, #8a7a5a 60%, #6a5a3a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.2); animation: tda-door 15s ease-in-out infinite; }
.scn-traddles-appearance .floor-planks { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #7a6a4a 0%, #a09070 100%); }
.scn-traddles-appearance .figure-traddles { position:absolute; bottom:20%; left:38%; width:40px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tda-traddles 6s ease-in-out infinite; }
.scn-traddles-appearance .hand-hat { position:absolute; bottom:40%; left:42%; width:20px; height:20px; background: #3a2a1a; border-radius:50%; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: tda-hand 4s ease-in-out infinite; }
.scn-traddles-appearance .entrance-glow { position:absolute; top:5%; left:20%; width:60%; height:70%; background: radial-gradient(ellipse at 50% 80%, rgba(255,240,200,0.3) 0%, transparent 60%); animation: tda-glow 8s ease-in-out infinite alternate; }
@keyframes tda-door { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes tda-traddles { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-4px) rotate(2deg); } }
@keyframes tda-hand { 0%,100% { transform:translate(0,0) rotate(10deg); } 50% { transform:translate(4px,-2px) rotate(-5deg); } }
@keyframes tda-glow { 0% { opacity:0.4; } 100% { opacity:0.8; } }

.scn-murdstone-firmness-quarrel { background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 60%), radial-gradient(ellipse at 70% 30%, #f5e8d0 0%, transparent 60%); }
.scn-murdstone-firmness-quarrel .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #d4c4a8 0%, #b8a488 100%); }
.scn-murdstone-firmness-quarrel .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a60 0%, #6a5a40 100%); }
.scn-murdstone-firmness-quarrel .window-frame { position:absolute; top:10%; left:10%; width:30%; height:45%; border:6px solid #4a3a2a; background: #a0c8e8; }
.scn-murdstone-firmness-quarrel .window-pane { position:absolute; top:10%; left:10%; width:30%; height:45%; background: linear-gradient(135deg, #b0d0f0 0%, #90b8d8 100%); opacity:0.5; animation: mfq-light 6s ease-in-out infinite alternate; }
.scn-murdstone-firmness-quarrel .table { position:absolute; bottom:20%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,0.5); }
.scn-murdstone-firmness-quarrel .figure-stern { position:absolute; bottom:38%; left:50%; width:24px; height:60px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: mfq-stern 4s ease-in-out infinite; }
.scn-murdstone-firmness-quarrel .figure-clara { position:absolute; bottom:35%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #6a5050 0%, #4a3030 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mfq-clara 5s ease-in-out infinite; }
.scn-murdstone-firmness-quarrel .figure-jane { position:absolute; bottom:37%; left:70%; width:22px; height:55px; background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; animation: mfq-jane 4.5s ease-in-out infinite; }
.scn-murdstone-firmness-quarrel .shadow-stripe { position:absolute; top:0; left:45%; width:10%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 100%); animation: mfq-shadow 8s ease-in-out infinite alternate; }
@keyframes mfq-light { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes mfq-stern { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(2deg); } 70% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mfq-clara { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(3deg); } 75% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mfq-jane { 0% { transform: translateX(0) scaleY(1); } 40% { transform: translateX(-5px) scaleY(0.97); } 80% { transform: translateX(3px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes mfq-shadow { 0% { opacity:0.2; } 100% { opacity:0.6; } }

.scn-jane-threatens-departure { background: linear-gradient(180deg, #d8c8b0 0%, #b8a48a 60%), radial-gradient(ellipse at 60% 40%, #f0e0d0 0%, transparent 50%); }
.scn-jane-threatens-departure .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #d0b898 0%, #a08870 100%); }
.scn-jane-threatens-departure .door { position:absolute; left:70%; top:10%; width:20%; height:80%; background: linear-gradient(180deg, #604830 0%, #403020 100%); border:4px solid #2a1a0a; }
.scn-jane-threatens-departure .jane-figure { position:absolute; bottom:30%; left:68%; width:20px; height:55px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation: jtd-jane 6s ease-in-out infinite; }
.scn-jane-threatens-departure .edward-figure { position:absolute; bottom:35%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:50% 50% 35% 35% / 55% 55% 35% 35%; animation: jtd-edward 5s ease-in-out infinite; }
.scn-jane-threatens-departure .candle { position:absolute; bottom:45%; left:55%; width:4px; height:12px; background: linear-gradient(180deg, #e8c080 0%, #c8a060 100%); border-radius:2px; }
.scn-jane-threatens-departure .candle-glow { position:absolute; bottom:42%; left:54%; width:12px; height:12px; background: radial-gradient(circle, #f0d090 0%, transparent 100%); opacity:0.6; animation: jtd-glow 3s ease-in-out infinite alternate; }
.scn-jane-threatens-departure .table-leg { position:absolute; bottom:22%; left:50%; width:6px; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:2px; }
.scn-jane-threatens-departure .shadow-jane { position:absolute; bottom:0; left:65%; width:30%; height:10%; background: rgba(0,0,0,0.2); filter: blur(4px); animation: jtd-shadow 7s ease-in-out infinite alternate; }
@keyframes jtd-jane { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-4px) rotate(2deg); } 70% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes jtd-edward { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03) translateY(-1px); } 100% { transform: scaleY(1); } }
@keyframes jtd-glow { 0% { opacity:0.4; transform: scale(0.8); } 50% { opacity:0.8; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes jtd-shadow { 0% { opacity:0.1; } 100% { opacity:0.3; } }

.scn-murdstone-resentment { background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 70%, #3a2a4e 0%, transparent 70%); }
.scn-murdstone-resentment .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a14 0%, #141420 100%); }
.scn-murdstone-resentment .wall-panel { position:absolute; top:10%; left:10%; width:80%; height:70%; border:4px solid #2a2a3a; background: linear-gradient(180deg, #1a1a28 0%, #0e0e18 100%); }
.scn-murdstone-resentment .chair-back { position:absolute; bottom:25%; left:40%; width:30%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:20% 20% 5% 5%; }
.scn-murdstone-resentment .murdstone-silhouette { position:absolute; bottom:35%; left:45%; width:20px; height:55px; background: linear-gradient(180deg, #0a0a14 0%, #000 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation: mrs-silhouette 7s ease-in-out infinite; }
.scn-murdstone-resentment .fireplace { position:absolute; bottom:10%; left:20%; width:40%; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:0 0 20% 20%; }
.scn-murdstone-resentment .embers { position:absolute; bottom:12%; left:30%; width:12%; height:8%; background: radial-gradient(circle, #c85a3d 0%, #a03a1a 50%, transparent 100%); animation: mrs-ember 4s ease-in-out infinite alternate; }
.scn-murdstone-resentment .coal-scuttle { position:absolute; bottom:5%; left:65%; width:8%; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:30% 30% 10% 10%; }
@keyframes mrs-silhouette { 0% { transform: translateY(0) scaleX(1); } 40% { transform: translateY(-3px) scaleX(0.95); } 80% { transform: translateY(1px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes mrs-ember { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:0.4; transform: scale(0.8); } }

.scn-morning-lesson-firmness { background: linear-gradient(180deg, #e8e0d0 0%, #c8b898 60%), radial-gradient(ellipse at 80% 20%, #f8f0e0 0%, transparent 60%); }
.scn-morning-lesson-firmness .morning-sky { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #b0c8e8 0%, #d0e0f0 100%); }
.scn-morning-lesson-firmness .window-cross { position:absolute; top:5%; left:5%; width:30%; height:40%; border:4px solid #4a3a2a; background: rgba(176,200,232,0.5); }
.scn-morning-lesson-firmness .desk { position:absolute; bottom:10%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, #6a5a40 0%, #4a3a20 100%); border-radius:4px; }
.scn-morning-lesson-firmness .book-open { position:absolute; bottom:18%; left:35%; width:20%; height:10%; background: linear-gradient(180deg, #c8b89a 0%, #a89878 100%); border-radius:2px; transform:rotate(2deg); animation: mlf-book 8s ease-in-out infinite alternate; }
.scn-morning-lesson-firmness .davy-figure { position:absolute; bottom:20%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mlf-davy 5s ease-in-out infinite; }
.scn-morning-lesson-firmness .murdstone-figure { position:absolute; bottom:35%; left:55%; width:22px; height:60px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation: mlf-murdstone 6s ease-in-out infinite; }
.scn-morning-lesson-firmness .clara-figure { position:absolute; bottom:25%; left:65%; width:18px; height:50px; background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mlf-clara 5.5s ease-in-out infinite; }
.scn-morning-lesson-firmness .shadow-sharp { position:absolute; bottom:0; left:40%; width:20%; height:8%; background: rgba(0,0,0,0.15); filter: blur(3px); animation: mlf-shadow 10s ease-in-out infinite alternate; }
@keyframes mlf-book { 0% { transform: rotate(0deg); } 50% { transform: rotate(4deg) scale(1.02); } 100% { transform: rotate(0deg); } }
@keyframes mlf-davy { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-1px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mlf-murdstone { 0% { transform: translateX(0) scaleY(1); } 40% { transform: translateX(3px) scaleY(0.97); } 80% { transform: translateX(-2px) scaleY(1.03); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes mlf-clara { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes mlf-shadow { 0% { opacity:0.1; } 50% { opacity:0.2; } 100% { opacity:0.05; } }

.scn-inquirie-about-health { background: linear-gradient(180deg, #e8dac0 0%, #d4c4a8 50%, #b8a88c 100%), radial-gradient(ellipse at 30% 60%, #f2e6c8 0%, transparent 70%); }
.scn-inquirie-about-health .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f2e6d0 0%, #e0d0b8 100%); }
.scn-inquirie-about-health .window-frame { position:absolute; top:8%; left:25%; width:100px; height:140px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 6px; box-shadow: 0 0 0 2px #5a4a3a; animation: iq-frame 10s ease-in-out infinite alternate; }
.scn-inquirie-about-health .window-glass { position:absolute; top:10.5%; left:27.5%; width:70px; height:118px; background: linear-gradient(180deg, #c8e0ff 0%, #90b8e8 100%); border-radius: 4px; opacity: 0.85; animation: iq-glass 6s ease-in-out infinite alternate; }
.scn-inquirie-about-health .table { position:absolute; bottom:20%; left:35%; width:160px; height:20px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-inquirie-about-health .chair { position:absolute; bottom:12%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; animation: iq-chair 8s ease-in-out infinite alternate; }
.scn-inquirie-about-health .figure { position:absolute; bottom:14%; left:38%; width:28px; height:60px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: iq-fig 7s ease-in-out infinite; }
.scn-inquirie-about-health .book { position:absolute; bottom:22%; left:45%; width:22px; height:14px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 2px; transform: rotate(-10deg); animation: iq-book 5s ease-in-out infinite alternate; }
.scn-inquirie-about-health .candle { position:absolute; bottom:22%; left:50%; width:6px; height:18px; background: linear-gradient(180deg, #e8d0a0 0%, #c8b080 100%); border-radius: 50% 50% 20% 20%; }
.scn-inquirie-about-health .candle-glow { position:absolute; bottom:22%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #f0c860 0%, #e8a030 50%, transparent 80%); border-radius: 50%; transform: translate(-50%, -50%); animation: iq-candle 3s ease-in-out infinite alternate; }
@keyframes iq-frame { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes iq-glass { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes iq-chair { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes iq-fig { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(4px) rotate(-2deg); } 75% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(8px) rotate(0); } }
@keyframes iq-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes iq-candle { 0% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.7; } 50% { transform: translate(-50%, -50%) scale(1.2); opacity: 1; } 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.8; } }

.scn-proposal-of-employment { background: linear-gradient(180deg, #c8c0a8 0%, #b0a890 50%, #a09880 100%), radial-gradient(ellipse at 50% 40%, #d8d0b8 0%, transparent 70%); }
.scn-proposal-of-employment .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d8d0b8 0%, #c8b8a0 100%); }
.scn-proposal-of-employment .desk { position:absolute; bottom:18%; left:25%; width:200px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: prp-desk 12s ease-in-out infinite alternate; }
.scn-proposal-of-employment .desk-edge { position:absolute; bottom:18%; left:25%; width:200px; height:4px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); }
.scn-proposal-of-employment .figure-sitting { position:absolute; bottom:15%; left:35%; width:30px; height:55px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: prp-sit 9s ease-in-out infinite; }
.scn-proposal-of-employment .figure-standing { position:absolute; bottom:10%; left:55%; width:28px; height:70px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 45% 45% 40% 40% / 70% 70% 30% 30%; animation: prp-stand 7s ease-in-out infinite; }
.scn-proposal-of-employment .paper { position:absolute; bottom:22%; left:45%; width:40px; height:28px; background: linear-gradient(180deg, #f0e8d8 0%, #d8d0b8 100%); border-radius: 2px; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.scn-proposal-of-employment .paper-glow { position:absolute; bottom:22%; left:45%; width:50px; height:38px; background: radial-gradient(circle, #fff8e8 0%, transparent 70%); opacity: 0.4; animation: prp-paper 5s ease-in-out infinite alternate; }
.scn-proposal-of-employment .shadow { position:absolute; bottom:8%; left:30%; width:140px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 80%); animation: prp-shadow 10s ease-in-out infinite alternate; }
@keyframes prp-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes prp-sit { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-1px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes prp-stand { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-2px) rotate(0); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes prp-paper { 0% { opacity: 0.3; transform: translateY(0) rotate(-15deg); } 50% { opacity: 0.5; transform: translateY(-2px) rotate(-13deg); } 100% { opacity: 0.4; transform: translateY(0) rotate(-17deg); } }
@keyframes prp-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.05); opacity: 0.4; } 100% { transform: scaleX(1); opacity: 0.5; } }

.scn-agnes-joyful-meeting { background: linear-gradient(180deg, #d8c8a8 0%, #c0b090 50%, #a89878 100%), radial-gradient(ellipse at 40% 30%, #e8d8b8 0%, transparent 70%); }
.scn-agnes-joyful-meeting .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); }
.scn-agnes-joyful-meeting .wall-panels { position:absolute; top:0; left:0; right:0; bottom:45%; background: linear-gradient(90deg, #b8a888 0%, #d8c8a8 30%, #c8b898 60%, #b0a080 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-agnes-joyful-meeting .fireplace { position:absolute; bottom:35%; left:50%; width:120px; height:80px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20%; }
.scn-agnes-joyful-meeting .mantel { position:absolute; bottom:55%; left:48%; width:140px; height:10px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); transform: translateX(-50%); border-radius: 2px; }
.scn-agnes-joyful-meeting .figure-left { position:absolute; bottom:18%; left:35%; width:32px; height:68px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: agn-left 6s ease-in-out infinite; }
.scn-agnes-joyful-meeting .figure-right { position:absolute; bottom:18%; left:55%; width:30px; height:66px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: agn-right 6s ease-in-out infinite reverse; }
.scn-agnes-joyful-meeting .embrace { position:absolute; bottom:22%; left:44%; width:20px; height:20px; background: radial-gradient(circle, #e0c8a8 0%, transparent 70%); opacity: 0.4; animation: agn-embrace 4s ease-in-out infinite alternate; }
.scn-agnes-joyful-meeting .warm-glow { position:absolute; top:30%; left:40%; width:200px; height:200px; background: radial-gradient(circle, #f0d8a8 0%, #c8a068 40%, transparent 80%); opacity: 0.3; animation: agn-glow 8s ease-in-out infinite alternate; }
@keyframes agn-left { 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 agn-right { 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 agn-embrace { 0% { transform: scale(0.8); opacity: 0.2; } 50% { transform: scale(1.2); opacity: 0.5; } 100% { transform: scale(1); opacity: 0.3; } }
@keyframes agn-glow { 0% { opacity: 0.2; transform: scale(0.95); } 50% { opacity: 0.4; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(1); } }

.scn-change-at-home { background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 30% 50%, #5a4a3a 0%, transparent 70%); }
.scn-change-at-home .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-change-at-home .wall-left { position:absolute; top:0; left:0; width:50%; bottom:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-change-at-home .wall-right { position:absolute; top:0; right:0; width:50%; bottom:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-change-at-home .door { position:absolute; bottom:30%; left:45%; width:60px; height:100px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 4px; box-shadow: 0 0 0 2px #3a2a1a; }
.scn-change-at-home .figure-agnes { position:absolute; bottom:15%; left:40%; width:28px; height:60px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: chg-agnes 8s ease-in-out infinite; }
.scn-change-at-home .figure-david { position:absolute; bottom:15%; left:50%; width:30px; height:62px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: chg-david 8s ease-in-out infinite reverse; }
.scn-change-at-home .shadow-creep { position:absolute; bottom:10%; left:35%; width:120px; height:60px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%); animation: chg-shadow 10s ease-in-out infinite alternate; }
.scn-change-at-home .lamp { position:absolute; bottom:35%; left:20%; width:10px; height:30px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 50% 50% 20% 20%; }
.scn-change-at-home .lamp-glow { position:absolute; bottom:35%; left:20%; width:80px; height:80px; background: radial-gradient(circle, #e0a060 0%, #a06020 50%, transparent 80%); transform: translate(-50%, -50%); animation: chg-lamp 4s ease-in-out infinite alternate; }
@keyframes chg-agnes { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(3deg); } 50% { transform: translateY(1px) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes chg-david { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(1px) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(3deg); } 75% { transform: translateY(2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes chg-shadow { 0% { opacity: 0.4; transform: scaleX(0.95); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(1); } }
@keyframes chg-lamp { 0% { opacity: 0.6; 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(1); } }

.scn-aunt-betsey-approval {
  background:
    linear-gradient(180deg, #3a1a0a 0%, #1a0e05 100%),
    radial-gradient(ellipse at 50% 70%, #c06030 0%, transparent 70%);
}
.scn-aunt-betsey-approval .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1208 0%, #1a0a04 100%); animation: aba-wall 12s ease-in-out infinite alternate; }
.scn-aunt-betsey-approval .fireplace { position:absolute; bottom:10%; left:20%; width:40%; height:60%; background: linear-gradient(180deg, #4a2818 0%, #2a140c 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,.6); }
.scn-aunt-betsey-approval .flames { position:absolute; bottom:20%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 100%, #e08040 0%, #c06020 40%, transparent 70%); animation: aba-flames 2s ease-in-out infinite alternate; }
.scn-aunt-betsey-approval .mantle { position:absolute; bottom:72%; left:18%; width:44%; height:6%; background: linear-gradient(180deg, #6a4030 0%, #3a2018 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-aunt-betsey-approval .figure-aunt { position:absolute; bottom:15%; left:25%; width:20%; height:45%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aba-sit 6s ease-in-out infinite; }
.scn-aunt-betsey-approval .figure-narrator { position:absolute; bottom:12%; right:20%; width:18%; height:50%; background: linear-gradient(180deg, #1a120e 0%, #0e0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aba-stand 4s ease-in-out infinite; }
.scn-aunt-betsey-approval .glow-floor { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(192,96,48,.4) 0%, transparent 60%); animation: aba-glow 3s ease-in-out infinite alternate; }
@keyframes aba-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes aba-flames { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 50% { transform: scaleY(1.15) translateY(-3px); opacity:1; } 100% { transform: scaleY(1) translateY(0); opacity:.85; } }
@keyframes aba-sit { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes aba-stand { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes aba-glow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.35; } }

.scn-agnes-secret-denial {
  background:
    linear-gradient(180deg, #d4c8b0 0%, #b8a890 50%, #8a7a68 100%),
    radial-gradient(ellipse at 60% 30%, #f0e8d8 0%, transparent 60%);
}
.scn-agnes-secret-denial .window { position:absolute; top:8%; left:10%; width:40%; height:55%; background: linear-gradient(180deg, #e8dfd0 0%, #c8beae 80%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.1); animation: asd-window 10s ease-in-out infinite alternate; }
.scn-agnes-secret-denial .curtain { position:absolute; top:8%; left:8%; width:44%; height:60%; background: linear-gradient(90deg, rgba(200,180,160,.6) 0%, transparent 30%, transparent 70%, rgba(200,180,160,.6) 100%); }
.scn-agnes-secret-denial .lightbeam { position:absolute; top:20%; left:15%; width:20%; height:70%; background: linear-gradient(180deg, rgba(240,230,210,.3) 0%, rgba(240,230,210,.05) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: asd-beam 8s ease-in-out infinite; }
.scn-agnes-secret-denial .figure-agnes { position:absolute; bottom:20%; left:35%; width:16%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: asd-agnes 6s ease-in-out infinite; }
.scn-agnes-secret-denial .figure-trotwood { position:absolute; bottom:18%; left:50%; width:18%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: asd-trot 7s ease-in-out infinite; }
.scn-agnes-secret-denial .arm-hold { position:absolute; bottom:38%; left:44%; width:14%; height:10%; background: #4a3a2a; border-radius: 50% 50% 0 0; transform: rotate(-20deg); animation: asd-arm 4s ease-in-out infinite; }
.scn-agnes-secret-denial .floor { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #8a7a68 0%, #6a5a48 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
@keyframes asd-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes asd-beam { 0%,100% { opacity:.2; } 50% { opacity:.4; } }
@keyframes asd-agnes { 0%,100% { transform: rotate(-1deg) translateX(0); } 50% { transform: rotate(1deg) translateX(-2px); } }
@keyframes asd-trot { 0%,100% { transform: rotate(1deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(2px); } }
@keyframes asd-arm { 0%,100% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-15deg) scaleY(1.1); } }

.scn-agnes-confession {
  background:
    linear-gradient(180deg, #c8b898 0%, #a09078 50%, #706050 100%),
    radial-gradient(ellipse at 40% 40%, #e0d0b8 0%, transparent 60%);
}
.scn-agnes-confession .window { position:absolute; top:5%; right:5%; width:35%; height:50%; background: linear-gradient(180deg, #e0d4c0 0%, #c0b4a0 80%); border-radius: 8% 8% 4% 4%; animation: ac-window 12s ease-in-out infinite alternate; }
.scn-agnes-confession .curtain { position:absolute; top:5%; right:3%; width:39%; height:55%; background: linear-gradient(90deg, rgba(180,160,140,.5) 0%, transparent 40%, transparent 60%, rgba(180,160,140,.5) 100%); }
.scn-agnes-confession .lightbeam { position:absolute; top:15%; right:10%; width:18%; height:65%; background: linear-gradient(180deg, rgba(220,200,180,.3) 0%, rgba(220,200,180,.05) 100%); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); animation: ac-beam 9s ease-in-out infinite; }
.scn-agnes-confession .figure-aunt { position:absolute; bottom:20%; left:20%; width:18%; height:38%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-aunt 5s ease-in-out infinite; }
.scn-agnes-confession .figure-trotwood { position:absolute; bottom:15%; left:40%; width:20%; height:48%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-trot 6s ease-in-out infinite; }
.scn-agnes-confession .table { position:absolute; bottom:15%; left:28%; width:20%; height:4%; background: linear-gradient(180deg, #6a5a48 0%, #4a3a28 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-agnes-confession .floor { position:absolute; bottom:0; left:0; right:0; height:16%; background: linear-gradient(180deg, #706050 0%, #504030 100%); box-shadow: inset 0 6px 16px rgba(0,0,0,.25); }
@keyframes ac-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes ac-beam { 0%,100% { opacity:.1; } 50% { opacity:.35; } }
@keyframes ac-aunt { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } }
@keyframes ac-trot { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }

.scn-dora-last-request {
  background:
    linear-gradient(180deg, #d8c8b0 0%, #b8a890 50%, #9a8a78 100%),
    radial-gradient(ellipse at 65% 30%, #f0e0c8 0%, transparent 70%);
}
.scn-dora-last-request .window { position:absolute; top:10%; left:5%; width:50%; height:50%; background: linear-gradient(180deg, #e8dcc8 0%, #c8bca8 80%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.1); animation: dlr-window 14s ease-in-out infinite alternate; }
.scn-dora-last-request .curtain { position:absolute; top:10%; left:3%; width:54%; height:55%; background: linear-gradient(90deg, rgba(200,180,160,.5) 0%, transparent 30%, transparent 70%, rgba(200,180,160,.5) 100%); }
.scn-dora-last-request .lightbeam { position:absolute; top:20%; left:8%; width:25%; height:60%; background: linear-gradient(180deg, rgba(230,210,190,.25) 0%, rgba(230,210,190,.05) 100%); clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%); animation: dlr-beam 10s ease-in-out infinite; }
.scn-dora-last-request .figure-agnes { position:absolute; bottom:18%; left:40%; width:16%; height:42%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dlr-agnes 7s ease-in-out infinite; }
.scn-dora-last-request .figure-trotwood { position:absolute; bottom:15%; left:52%; width:18%; height:48%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dlr-trot 8s ease-in-out infinite; }
.scn-dora-last-request .arm-hold { position:absolute; bottom:38%; left:46%; width:16%; height:8%; background: #4a3a2a; border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: dlr-arm 5s ease-in-out infinite; }
.scn-dora-last-request .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #9a8a78 0%, #7a6a58 100%); box-shadow: inset 0 6px 16px rgba(0,0,0,.2); }
.scn-dora-last-request .chair { position:absolute; bottom:15%; right:15%; width:12%; height:18%; background: linear-gradient(180deg, #6a5a48 0%, #4a3a28 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: dlr-chair 9s ease-in-out infinite; }
@keyframes dlr-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes dlr-beam { 0%,100% { opacity:.1; } 50% { opacity:.3; } }
@keyframes dlr-agnes { 0%,100% { transform: rotate(-1deg) scaleY(1); } 50% { transform: rotate(1deg) scaleY(1.02); } }
@keyframes dlr-trot { 0%,100% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes dlr-arm { 0%,100% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(1.1); } }
@keyframes dlr-chair { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }

/* Scene 1: jip-found-and-dora-dances */
.scn-jip-found-and-dora-dances {
  background:
    linear-gradient(180deg, #2b1d0e 0%, #4a3520 40%, #5e4530 100%),
    radial-gradient(ellipse at 30% 70%, #5e4530 0%, transparent 70%);
}
.scn-jip-found-and-dora-dances .room { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #5e4530 0%, #2b1d0e 100%); }
.scn-jip-found-and-dora-dances .table { position:absolute; bottom:20%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 6px 12px rgba(0,0,0,0.6); }
.scn-jip-found-and-dora-dances .dog { position:absolute; bottom:20%; left:42%; width:18px; height:12px; background: #3a2a1a; border-radius: 50% 50% 40% 40% / 60% 40% 40% 40%; animation: jfd-dog 4s ease-in-out infinite; }
.scn-jip-found-and-dora-dances .figure-dora { position:absolute; bottom:30%; left:55%; width:16px; height:28px; background: linear-gradient(180deg, #8a6040 0%, #5a3828 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jfd-dance 3s ease-in-out infinite; }
.scn-jip-found-and-dora-dances .supper-bowl { position:absolute; bottom:28%; left:38%; width:12px; height:8px; background: #6a4a2a; border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.4); }
.scn-jip-found-and-dora-dances .candle { position:absolute; top:30%; left:25%; width:4px; height:18px; background: linear-gradient(180deg, #d4b070 0%, #8a6a40 100%); border-radius: 2px; transform: rotate(-8deg); }
.scn-jip-found-and-dora-dances .candle-glow { position:absolute; top:28%; left:24%; width:20px; height:20px; background: radial-gradient(circle, #ffd060 0%, rgba(255,208,96,0.4) 40%, transparent 70%); border-radius: 50%; animation: jfd-glow 3s ease-in-out infinite alternate; }
@keyframes jfd-dog { 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 jfd-dance { 0% { transform: translateY(0) rotate(-3deg) scale(1); } 25% { transform: translateY(-4px) rotate(0deg) scale(1.05); } 50% { transform: translateY(0) rotate(3deg) scale(1); } 75% { transform: translateY(-2px) rotate(0deg) scale(1.02); } 100% { transform: translateY(0) rotate(-3deg) scale(1); } }
@keyframes jfd-glow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(1.05); } }

/* Scene 2: aunt-urges-dover-visit */
.scn-aunt-urges-dover-visit {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #e8dcc8 50%, #d8c8b0 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e8 0%, transparent 60%);
}
.scn-aunt-urges-dover-visit .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0e8d8 0%, #e0d4c0 100%); }
.scn-aunt-urges-dover-visit .window { position:absolute; top:10%; right:8%; width:30%; height:40%; background: linear-gradient(135deg, #c8e8f8 0%, #a0d0e8 100%); border: 4px solid #b8a898; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: aud-sun 8s ease-in-out infinite alternate; }
.scn-aunt-urges-dover-visit .aunt { position:absolute; bottom:20%; left:35%; width:20px; height:34px; background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aud-breathe 6s ease-in-out infinite; }
.scn-aunt-urges-dover-visit .chair { position:absolute; bottom:18%; left:33%; width:26px; height:24px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); }
.scn-aunt-urges-dover-visit .letter { position:absolute; bottom:30%; left:45%; width:14px; height:10px; background: #e8dcc8; border-radius: 1px; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: aud-float 5s ease-in-out infinite; }
.scn-aunt-urges-dover-visit .sunbeam { position:absolute; top:10%; right:8%; width:30%; height:40%; background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 100%); animation: aud-beam 10s ease-in-out infinite alternate; }
@keyframes aud-sun { 0% { opacity:0.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:0.85; transform:scaleY(0.98); } }
@keyframes aud-breathe { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(1.01) translateY(-1px); } 50% { transform: scaleY(1) translateY(0); } 75% { transform: scaleY(0.99) translateY(1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes aud-float { 0% { transform: translateY(0) rotate(10deg); } 50% { transform: translateY(-3px) rotate(12deg); } 100% { transform: translateY(0) rotate(10deg); } }
@keyframes aud-beam { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

/* Scene 3: micawber-in-canterbury */
.scn-micawber-in-canterbury {
  background:
    linear-gradient(180deg, #8a8a7a 0%, #6a6a5a 40%, #4a4a3a 100%),
    radial-gradient(ellipse at 50% 0%, #9a9a8a 0%, transparent 70%);
}
.scn-micawber-in-canterbury .sky { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8b8a8 0%, #8a8a7a 100%); animation: mic-cloud 30s linear infinite; }
.scn-micawber-in-canterbury .building { position:absolute; bottom:10%; left:10%; width:40%; height:70%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 0 20px rgba(0,0,0,0.3); }
.scn-micawber-in-canterbury .doorway { position:absolute; bottom:10%; left:20%; width:15%; height:25%; background: #2a1e12; border-radius: 4px 4px 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
.scn-micawber-in-canterbury .figure-micawber { position:absolute; bottom:20%; left:32%; width:18px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mic-gesture 4s ease-in-out infinite; }
.scn-micawber-in-canterbury .figure-david { position:absolute; bottom:20%; left:38%; width:16px; height:32px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mic-nod 5s ease-in-out infinite; }
.scn-micawber-in-canterbury .cobbles { position:absolute; bottom:0; left:0; right:0; height:10%; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #4a3a2a 4px, #5a4a3a 8px); }
@keyframes mic-cloud { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }
@keyframes mic-gesture { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(5deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-1px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mic-nod { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Scene 4: david-confides-in-agnes */
.scn-david-confides-in-agnes {
  background:
    linear-gradient(180deg, #1a0e0a 0%, #2a1a12 40%, #3a2218 100%),
    radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 70%);
}
.scn-david-confides-in-agnes .room-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 70%, #3a2218 0%, #0a0604 100%); }
.scn-david-confides-in-agnes .fireplace { position:absolute; bottom:15%; left:25%; width:30%; height:40%; background: linear-gradient(180deg, #2a1a12 0%, #0a0a08 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6); }
.scn-david-confides-in-agnes .fire { position:absolute; bottom:15%; left:32%; width:16%; height:18%; background: radial-gradient(ellipse at 50% 100%, #ff6020 0%, #ff4020 30%, #ff2000 60%, transparent 80%); border-radius: 50% 50% 0 0; animation: dca-fire 2s ease-in-out infinite alternate; }
.scn-david-confides-in-agnes .figure-david { position:absolute; bottom:20%; left:35%; width:18px; height:34px; background: linear-gradient(180deg, #1a120e 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dca-seated 5s ease-in-out infinite; }
.scn-david-confides-in-agnes .figure-agnes { position:absolute; bottom:20%; left:45%; width:16px; height:32px; background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dca-seated 5s ease-in-out infinite reverse; }
.scn-david-confides-in-agnes .hearth-glow { position:absolute; bottom:10%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(255,80,20,0.2) 0%, transparent 80%); animation: dca-glow 4s ease-in-out infinite alternate; }
.scn-david-confides-in-agnes .shadow { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); }
@keyframes dca-fire { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-2px); } 100% { transform: scaleY(0.9) translateY(0); } }
@keyframes dca-seated { 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 dca-glow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* letter-paper-duty */
.scn-letter-paper-duty { background: linear-gradient(180deg, #f5e6d3 0%, #e0c8a8 60%, #c8b090 100%), radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 70%); }
.scn-letter-paper-duty .desk { position:absolute; bottom:0; left:0; right:0; top:55%; background: linear-gradient(180deg, #b09070 0%, #8a7058 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-letter-paper-duty .paper { position:absolute; bottom:30%; left:30%; width:40%; height:50%; background: #f9f2e0; border-radius: 2% 2% 1% 1%; box-shadow: 0 6px 12px rgba(0,0,0,.15), inset 0 0 0 1px #dcc8b0; transform: rotate(-2deg); animation: lpd-paper 12s ease-in-out infinite alternate; }
.scn-letter-paper-duty .stamp { position:absolute; bottom:65%; left:48%; width:12%; height:8%; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: lpd-stamp 6s ease-in-out infinite alternate; }
.scn-letter-paper-duty .pen { position:absolute; bottom:35%; left:22%; width:2%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(15deg) translateY(-50%); transform-origin: bottom center; box-shadow: 0 2px 3px rgba(0,0,0,.3); }
.scn-letter-paper-duty .inkwell { position:absolute; bottom:20%; left:25%; width:6%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 3px 6px rgba(0,0,0,.3); }
.scn-letter-paper-duty .shadow-paper { position:absolute; bottom:28%; left:32%; width:42%; height:48%; background: rgba(0,0,0,.08); border-radius: 2% 2% 1% 1%; filter: blur(8px); animation: lpd-shadow 12s ease-in-out infinite alternate; }
.scn-letter-paper-duty .light-spot { position:absolute; top:30%; left:35%; width:30%; height:30%; background: radial-gradient(circle, rgba(255,255,200,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(30px); animation: lpd-light 8s ease-in-out infinite alternate; }
@keyframes lpd-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes lpd-stamp { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes lpd-shadow { 0% { opacity:0.6; transform: translateY(2px); } 50% { opacity:0.9; transform: translateY(-2px); } 100% { opacity:0.6; transform: translateY(2px); } }
@keyframes lpd-light { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.6; transform: scale(1); } }

/* guard-call-at-door */
.scn-guard-call-at-door { background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 60%, #9a8a7a 100%), radial-gradient(ellipse at 50% 40%, #f0e8d8 0%, transparent 80%); }
.scn-guard-call-at-door .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); }
.scn-guard-call-at-door .wall { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #e0d4c4 0%, #c8b8a8 100%); }
.scn-guard-call-at-door .door { position:absolute; bottom:30%; left:15%; width:25%; height:70%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 5% 5% 0 0 / 10% 10% 0 0; box-shadow: inset -6px 0 10px rgba(0,0,0,.3); }
.scn-guard-call-at-door .guard { position:absolute; bottom:30%; left:42%; width:18%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: gcd-guard 6s ease-in-out infinite alternate; }
.scn-guard-call-at-door .child { position:absolute; bottom:30%; left:68%; width:12%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 25% 25%; transform-origin: bottom center; animation: gcd-child 4s ease-in-out infinite alternate; }
.scn-guard-call-at-door .counter { position:absolute; bottom:30%; left:55%; width:40%; height:15%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 6px rgba(0,0,0,.2); }
.scn-guard-call-at-door .window { position:absolute; top:15%; left:20%; width:20%; height:40%; background: radial-gradient(ellipse at 50% 50%, #c0d0e0 0%, #8090a0 100%); border-radius: 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.2); animation: gcd-window 12s ease-in-out infinite alternate; }
@keyframes gcd-guard { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes gcd-child { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(2px) translateY(-2px) scale(1.02); } 100% { transform: translateX(0) translateY(0) scale(1); } }
@keyframes gcd-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* old-woman-fibbitson */
.scn-old-woman-fibbitson { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #6a3a1a 70%, #3a1a0a 100%), radial-gradient(ellipse at 60% 80%, #d06020 0%, transparent 60%); }
.scn-old-woman-fibbitson .hearth { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; }
.scn-old-woman-fibbitson .fire { position:absolute; bottom:30%; left:20%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 70%, #ff8030 0%, #d06020 40%, #803010 70%, transparent 100%); border-radius: 50%; animation: owf-fire 3s ease-in-out infinite alternate; }
.scn-old-woman-fibbitson .chair-big { position:absolute; bottom:25%; left:50%; width:35%; height:55%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10% / 50% 50% 15% 15%; box-shadow: -8px 0 12px rgba(0,0,0,.5); }
.scn-old-woman-fibbitson .figure-bundle { position:absolute; bottom:30%; left:52%; width:20%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: owf-bundle 6s ease-in-out infinite alternate; }
.scn-old-woman-fibbitson .figure-small { position:absolute; bottom:25%; left:35%; width:15%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%; transform-origin: bottom center; animation: owf-small 8s ease-in-out infinite alternate; }
.scn-old-woman-fibbitson .shadow { position:absolute; bottom:20%; left:45%; width:50%; height:30%; background: rgba(0,0,0,.4); border-radius: 40%; filter: blur(15px); animation: owf-shadow 5s ease-in-out infinite alternate; }
.scn-old-woman-fibbitson .glow { position:absolute; top:10%; left:30%; width:40%; height:80%; background: radial-gradient(ellipse at 50% 60%, rgba(255,120,30,.15) 0%, transparent 70%); border-radius: 50%; filter: blur(20px); animation: owf-glow 4s ease-in-out infinite alternate; }
@keyframes owf-fire { 0% { transform: scale(1) rotate(-5deg); opacity:0.8; } 50% { transform: scale(1.08) rotate(3deg); opacity:1; } 100% { transform: scale(1) rotate(-5deg); opacity:0.8; } }
@keyframes owf-bundle { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes owf-small { 0% { transform: translateX(0); } 50% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes owf-shadow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes owf-glow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(1); } }

/* flute-blowing-request */
.scn-flute-blowing-request { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #6a3a1a 70%, #3a1a0a 100%), radial-gradient(ellipse at 40% 60%, #d07020 0%, transparent 70%); }
.scn-flute-blowing-request .fireplace { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0; }
.scn-flute-blowing-request .flame { position:absolute; bottom:30%; left:30%; width:20%; height:45%; background: radial-gradient(ellipse at 50% 60%, #ff9040 0%, #d06020 30%, #802010 60%, transparent 100%); border-radius: 50%; animation: fbr-flame 2.5s ease-in-out infinite alternate; }
.scn-flute-blowing-request .armchair { position:absolute; bottom:25%; right:10%; width:40%; height:60%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10% / 50% 50% 15% 15%; box-shadow: -10px 0 15px rgba(0,0,0,.5); }
.scn-flute-blowing-request .figure-old { position:absolute; bottom:28%; right:15%; width:20%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: fbr-figure 8s ease-in-out infinite alternate; }
.scn-flute-blowing-request .hands { position:absolute; bottom:40%; right:28%; width:10%; height:8%; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: fbr-hands 4s ease-in-out infinite alternate; }
.scn-flute-blowing-request .flute { position:absolute; bottom:50%; right:30%; width:15%; height:3%; background: linear-gradient(90deg, #8a7a5a 0%, #c0a070 50%, #8a7a5a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(20deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: fbr-flute 3s ease-in-out infinite alternate; }
.scn-flute-blowing-request .warm-glow { position:absolute; top:5%; left:20%; width:60%; height:90%; background: radial-gradient(ellipse at 40% 50%, rgba(255,150,50,.12) 0%, transparent 70%); border-radius: 50%; filter: blur(25px); animation: fbr-glow 6s ease-in-out infinite alternate; }
@keyframes fbr-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.9; } 50% { transform: scaleY(1.1) rotate(3deg); opacity:1; } 100% { transform: scaleY(1) rotate(-2deg); opacity:0.9; } }
@keyframes fbr-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fbr-hands { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fbr-flute { 0% { transform: rotate(18deg) scaleX(1); } 50% { transform: rotate(22deg) scaleX(1.05); } 100% { transform: rotate(18deg) scaleX(1); } }
@keyframes fbr-glow { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(1); } }

.scn-peggotty-prepares-letter {
  background: linear-gradient(180deg, #f5e6c8 0%, #e3c9a0 50%, #c8a87a 100%),
              radial-gradient(ellipse at 30% 70%, #ffe8c0 0%, transparent 60%);
}
.scn-peggotty-prepares-letter .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0dbb0 0%, #e8cfa0 100%); }
.scn-peggotty-prepares-letter .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8b6f47 0%, #6a5235 100%); border-radius:20% 20% 0 0; }
.scn-peggotty-prepares-letter .desk { position:absolute; bottom:25%; left:25%; width:40%; height:18%; background: linear-gradient(180deg, #a07850 0%, #7a5a35 100%); border-radius:4px 4px 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-peggotty-prepares-letter .candle { position:absolute; bottom:38%; left:48%; width:8px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #c8a070 100%); border-radius:4px; box-shadow: 0 0 12px 4px #ffd090, 0 0 24px 8px rgba(255,208,144,.4); animation: ppl-candle 4s ease-in-out infinite alternate; }
.scn-peggotty-prepares-letter .paper { position:absolute; bottom:30%; left:32%; width:22%; height:14%; background: #faf3e0; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); transform: rotate(-2deg); animation: ppl-paper 6s ease-in-out infinite; }
.scn-peggotty-prepares-letter .pen { position:absolute; bottom:32%; left:30%; width:2px; height:16px; background: #3a2a1a; border-radius:1px; transform: rotate(-20deg); transform-origin: bottom; animation: ppl-pen 3s ease-in-out infinite; }
.scn-peggotty-prepares-letter .figure-sit { position:absolute; bottom:26%; left:30%; width:12%; height:28%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ppl-figure 8s ease-in-out infinite alternate; }
.scn-peggotty-prepares-letter .window { position:absolute; top:8%; right:10%; width:18%; height:30%; background: linear-gradient(180deg, #b0d0e8 0%, #e0f0ff 100%); border:4px solid #8a6a4a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,200,.2); animation: ppl-window 10s ease-in-out infinite alternate; }
.scn-peggotty-prepares-letter .curtain { position:absolute; top:6%; right:6%; width:26%; height:34%; background: linear-gradient(180deg, #c8a070 0%, #a08050 100%); border-radius:0 0 30% 30%; filter:blur(1px); opacity:.8; animation: ppl-curtain 12s ease-in-out infinite; }
@keyframes ppl-candle { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.04) } 100% { opacity:.9; transform: scaleY(.98) } }
@keyframes ppl-paper { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } }
@keyframes ppl-pen { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-22deg) } }
@keyframes ppl-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ppl-window { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ppl-curtain { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-omers-wheelchair {
  background: linear-gradient(180deg, #f5e6c8 0%, #e3c9a0 50%, #d4b080 100%),
              radial-gradient(ellipse at 70% 40%, #ffe8c0 0%, transparent 50%);
}
.scn-omers-wheelchair .bg-wheel { position:absolute; inset:0; background: linear-gradient(180deg, #dec9a0 0%, #c8a870 100%); }
.scn-omers-wheelchair .floor-wheel { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a08860 0%, #7a6430 100%); border-radius:30% 30% 0 0; }
.scn-omers-wheelchair .chair-frame { position:absolute; bottom:22%; left:20%; width:50%; height:30%; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 6px 10px rgba(0,0,0,.4); animation: owc-frame 5s ease-in-out infinite; }
.scn-omers-wheelchair .wheel { position:absolute; bottom:10%; left:18%; width:18%; height:18%; border-radius:50%; background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%); border:3px solid #5a4a3a; box-shadow: 0 0 0 2px #8a7a6a; animation: owc-wheel 2s linear infinite; }
.scn-omers-wheelchair .wheel-spoke { position:absolute; bottom:10%; left:18%; width:18%; height:18%; background: repeating-linear-gradient(0deg, #5a4a3a 0px, #5a4a3a 2px, transparent 2px, transparent 8px); border-radius:50%; animation: owc-spoke 2s linear infinite; }
.scn-omers-wheelchair .figure-chair { position:absolute; bottom:30%; left:28%; width:14%; height:22%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: owc-figure 6s ease-in-out infinite; }
.scn-omers-wheelchair .arm-shine { position:absolute; bottom:34%; left:42%; width:4%; height:10%; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius:20% 20% 50% 50%; transform: rotate(-10deg); animation: owc-arm 2s ease-in-out infinite; }
.scn-omers-wheelchair .stool { position:absolute; bottom:16%; left:55%; width:12%; height:12%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius:8px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
@keyframes owc-frame { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes owc-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes owc-spoke { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes owc-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes owc-arm { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(0deg) } }

.scn-omer-praises-davids-book {
  background: linear-gradient(180deg, #f0dbb0 0%, #e0c898 50%, #c8a870 100%),
              radial-gradient(ellipse at 60% 50%, #ffe8c0 0%, transparent 60%);
}
.scn-omer-praises-davids-book .interior-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e8d0a0 0%, #d0b880 100%); }
.scn-omer-praises-davids-book .armchair { position:absolute; bottom:20%; left:15%; width:55%; height:40%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,.4); }
.scn-omer-praises-davids-book .figure-smoke { position:absolute; bottom:28%; left:28%; width:14%; height:24%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: opb-figure 7s ease-in-out infinite; }
.scn-omer-praises-davids-book .pipe { position:absolute; bottom:42%; left:34%; width:8%; height:6%; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 20% 20% 50%; transform: rotate(-15deg); animation: opb-pipe 3s ease-in-out infinite; }
.scn-omer-praises-davids-book .smoke-wisp { position:absolute; bottom:56%; left:32%; width:2%; height:20%; background: linear-gradient(180deg, rgba(200,180,160,.4) 0%, rgba(200,180,160,0) 100%); border-radius:50%; filter:blur(4px); animation: opb-smoke 6s ease-out infinite; }
.scn-omer-praises-davids-book .book { position:absolute; bottom:30%; left:20%; width:10%; height:12%; background: #5a3a1a; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); transform: rotate(5deg); animation: opb-book 8s ease-in-out infinite alternate; }
.scn-omer-praises-davids-book .table-sm { position:absolute; bottom:22%; left:18%; width:30%; height:6%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:4px; }
@keyframes opb-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes opb-pipe { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-5deg) } }
@keyframes opb-smoke { 0% { opacity:.5; transform: translateY(0) scale(1) } 100% { opacity:0; transform: translateY(-30px) scale(1.5) } }
@keyframes opb-book { 0% { transform: rotate(5deg) } 100% { transform: rotate(-2deg) } }

.scn-omer-asks-about-martha {
  background: linear-gradient(180deg, #eedbb0 0%, #dcc898 50%, #c8a870 100%),
              radial-gradient(ellipse at 40% 60%, #ffe8c0 0%, transparent 50%);
}
.scn-omer-asks-about-martha .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e0c898 0%, #c8a870 100%); }
.scn-omer-asks-about-martha .door-half { position:absolute; top:0; right:10%; width:20%; height:60%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:0 0 10px 10px; border-left:4px solid #5a3a2a; box-shadow: -4px 0 8px rgba(0,0,0,.3); }
.scn-omer-asks-about-martha .figure-doorway { position:absolute; bottom:15%; right:18%; width:10%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: oam-figure-door 6s ease-in-out infinite; }
.scn-omer-asks-about-martha .figure-omer { position:absolute; bottom:25%; left:30%; width:14%; height:22%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oam-figure-omer 8s ease-in-out infinite; }
.scn-omer-asks-about-martha .lamp { position:absolute; bottom:40%; left:50%; width:8px; height:40px; background: linear-gradient(180deg, #f0d080 0%, #c8a050 100%); border-radius:4px; box-shadow: 0 0 20px 6px #ffd090, 0 0 40px 12px rgba(255,208,144,.3); animation: oam-lamp 3s ease-in-out infinite alternate; }
.scn-omer-asks-about-martha .shadow-martha { position:absolute; bottom:10%; right:14%; width:12%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%; opacity:.6; filter:blur(3px); animation: oam-shadow 5s ease-in-out infinite; }
.scn-omer-asks-about-martha .rug { position:absolute; bottom:0; left:10%; width:60%; height:15%; background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 50%, #8a6a4a 100%); border-radius:30% 30% 0 0; }
@keyframes oam-figure-door { 0% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(-3px) } 100% { transform: scaleX(-1) translateY(0) } }
@keyframes oam-figure-omer { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes oam-lamp { 0% { opacity:.8; box-shadow: 0 0 16px 4px #ffd090 } 50% { opacity:1; box-shadow: 0 0 28px 8px #ffd090 } 100% { opacity:.9; box-shadow: 0 0 20px 5px #ffd090 } }
@keyframes oam-shadow { 0%,100% { opacity:.4 } 50% { opacity:.7 } }

.scn-arrival-at-inn { background: linear-gradient(180deg, #2c2a4a 0%, #4a3e5e 40%, #6a5a3a 100%), radial-gradient(ellipse at 50% 100%, #6a5a3a 0%, transparent 60%); }
.scn-arrival-at-inn .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2c2a4a 0%, #5a4e6a 100%); animation: inn-sky 10s ease-in-out infinite alternate; }
.scn-arrival-at-inn .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; }
.scn-arrival-at-inn .inn { position:absolute; bottom:35%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-arrival-at-inn .door { position:absolute; bottom:35%; left:50%; width:30px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0; }
.scn-arrival-at-inn .window-glow { position:absolute; bottom:45%; left:45%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius: 20%; box-shadow: 0 0 30px 8px #d09050, 0 0 50px 15px rgba(208,144,80,.5); animation: inn-glow 3s ease-in-out infinite alternate; }
.scn-arrival-at-inn .lantern { position:absolute; bottom:38%; left:55%; width:8px; height:10px; background: #ffc060; border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,192,96,.7); animation: inn-lantern 4s ease-in-out infinite; }
.scn-arrival-at-inn .figure { position:absolute; bottom:30%; left:35%; 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: inn-walk 5s ease-in-out infinite; }
.scn-arrival-at-inn .cloud { position:absolute; top:15%; left:10%; width:70px; height:16px; background: linear-gradient(180deg, rgba(200,200,220,.4) 0%, rgba(200,200,220,.1) 100%); border-radius: 50%; filter: blur(5px); animation: inn-drift 40s linear infinite; }
@keyframes inn-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes inn-glow { 0% { box-shadow: 0 0 20px 4px #b08040, 0 0 40px 8px rgba(176,128,64,.3); opacity:.9 } 50% { box-shadow: 0 0 35px 12px #ffd080, 0 0 60px 20px rgba(255,208,128,.5); opacity:1 } 100% { box-shadow: 0 0 25px 6px #c09050, 0 0 45px 12px rgba(192,144,80,.35); opacity:.95 } }
@keyframes inn-lantern { 0%,100% { transform: translate(0, 0) rotate(-5deg) } 50% { transform: translate(2px, -2px) rotate(5deg) } }
@keyframes inn-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-2deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes inn-drift { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

.scn-waiter-topsawyer-tale { background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 70%, #7a6a5a 0%, transparent 50%); }
.scn-waiter-topsawyer-tale .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.4); }
.scn-waiter-topsawyer-tale .table { position:absolute; bottom:15%; left:30%; width:150px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-waiter-topsawyer-tale .waiter { position:absolute; bottom:20%; left:40%; width:20px; 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: wat-bow 4s ease-in-out infinite; }
.scn-waiter-topsawyer-tale .child { position:absolute; bottom:17%; left:55%; width:16px; height:28px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wat-look 5s ease-in-out infinite; }
.scn-waiter-topsawyer-tale .glass { position:absolute; bottom:22%; left:48%; width:12px; height:16px; background: rgba(200,200,180,.2); border: 2px solid rgba(200,200,180,.4); border-radius: 0 0 20% 20%; box-shadow: 0 0 10px 2px rgba(200,200,180,.3); animation: wat-fade 6s ease-in-out infinite; }
.scn-waiter-topsawyer-tale .window { position:absolute; top:10%; right:10%; width:40px; height:50px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 10%; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-waiter-topsawyer-tale .shadow { position:absolute; bottom:15%; left:35%; width:120px; height:30px; background: radial-gradient(ellipse at 50% 100%, #1a1a0a 0%, transparent 70%); opacity:.6; animation: wat-shadow 4s ease-in-out infinite alternate; }
@keyframes wat-bow { 0%,100% { transform: rotate(0) } 50% { transform: rotate(-10deg) translateY(-2px) } }
@keyframes wat-look { 0%,100% { transform: rotate(0) } 30% { transform: rotate(5deg) } 70% { transform: rotate(-5deg) } }
@keyframes wat-fade { 0%,100% { opacity:.3 } 50% { opacity:.7 } }
@keyframes wat-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(.9) } 100% { transform: scaleX(1.1) } }

.scn-dinner-chops-pudding { background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 40%, #4a3a1a 100%), radial-gradient(ellipse at 50% 60%, #b09060 0%, transparent 50%); }
.scn-dinner-chops-pudding .table { position:absolute; bottom:10%; left:20%; width:200px; height:20px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 20%; box-shadow: 0 4px 15px rgba(0,0,0,.4); }
.scn-dinner-chops-pudding .plate { position:absolute; bottom:20%; left:35%; width:60px; height:14px; background: radial-gradient(ellipse at 50% 50%, #b0a090 0%, #8a7a6a 100%); border-radius: 50%; }
.scn-dinner-chops-pudding .chops { position:absolute; bottom:24%; left:36%; width:12px; height:12px; background: radial-gradient(circle, #c8553d 0%, #a0461a 70%); border-radius: 50%; animation: din-bounce 2s ease-in-out infinite; }
.scn-dinner-chops-pudding .pudding { position:absolute; bottom:22%; left:45%; width:20px; height:12px; background: radial-gradient(ellipse, #d09050 0%, #a06030 100%); border-radius: 50%; transform: scaleY(.6); animation: din-wobble 3s ease-in-out infinite; }
.scn-dinner-chops-pudding .fork { position:absolute; bottom:25%; left:30%; width:4px; height:20px; background: #a0a0b0; border-radius: 10%; transform: rotate(-30deg); box-shadow: 0 0 4px rgba(0,0,0,.3); animation: din-tap 1.5s ease-in-out infinite alternate; }
.scn-dinner-chops-pudding .knife { position:absolute; bottom:25%; left:55%; width:4px; height:22px; background: #a0a0b0; border-radius: 10%; transform: rotate(20deg); box-shadow: 0 0 4px rgba(0,0,0,.3); animation: din-tap 1.5s ease-in-out infinite alternate-reverse; }
.scn-dinner-chops-pudding .hand { position:absolute; bottom:28%; left:52%; width:14px; height:18px; background: linear-gradient(180deg, #c09070 0%, #a07050 100%); border-radius: 50% 50% 40% 40%; transform: rotate(10deg); animation: din-reach 4s ease-in-out infinite; }
@keyframes din-bounce { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) scale(1.1) } }
@keyframes din-wobble { 0%,100% { transform: scaleY(.6) rotate(0) } 25% { transform: scaleY(.7) rotate(-5deg) } 75% { transform: scaleY(.5) rotate(5deg) } }
@keyframes din-tap { 0% { transform: rotate(-30deg) translateY(0) } 100% { transform: rotate(-30deg) translateY(-3px) } }
@keyframes din-reach { 0%,100% { transform: translateX(0) rotate(10deg) } 50% { transform: translateX(8px) rotate(0) } }

.scn-broken-ribs-tale { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a2a2a 60%, #1a0a0a 100%), radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 60%); }
.scn-broken-ribs-tale .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0a1a 80%); }
.scn-broken-ribs-tale .body { position:absolute; bottom:20%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; }
.scn-broken-ribs-tale .rib-1 { position:absolute; bottom:45%; left:49%; width:14px; height:4px; background: #5e1a1d; border-radius: 50%; transform: rotate(15deg); animation: bro-break 4s ease-in-out infinite; }
.scn-broken-ribs-tale .rib-2 { position:absolute; bottom:40%; left:49%; width:14px; height:4px; background: #5e1a1d; border-radius: 50%; transform: rotate(-10deg); animation: bro-break 4s ease-in-out infinite 1s; }
.scn-broken-ribs-tale .rib-3 { position:absolute; bottom:35%; left:49%; width:14px; height:4px; background: #5e1a1d; border-radius: 50%; transform: rotate(5deg); animation: bro-break 4s ease-in-out infinite 2s; }
.scn-broken-ribs-tale .light { position:absolute; top:10%; right:10%; width:30px; height:30px; background: radial-gradient(circle, #b08040 0%, transparent 70%); box-shadow: 0 0 40px 10px rgba(176,128,64,.3); animation: bro-light 6s ease-in-out infinite alternate; }
.scn-broken-ribs-tale .shadow { position:absolute; bottom:5%; left:20%; width:160px; height:40px; background: radial-gradient(ellipse, #0a0a1a 0%, transparent 70%); opacity:.8; }
.scn-broken-ribs-tale .hand { position:absolute; bottom:25%; left:44%; width:8px; height:14px; background: linear-gradient(180deg, #5a3a3a 0%, #3a1a1a 100%); border-radius: 40%; transform: rotate(20deg); animation: bro-clench 3s ease-in-out infinite; }
@keyframes bro-break { 0%,100% { opacity:1; transform: rotate(15deg) scaleX(1) } 25% { transform: rotate(25deg) scaleX(1.3) } 50% { opacity:.5; transform: rotate(5deg) scaleX(.7) } 75% { transform: rotate(35deg) scaleX(1.2) } }
@keyframes bro-light { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.3; transform: scale(.9) } }
@keyframes bro-clench { 0%,100% { transform: rotate(20deg) scale(1) } 50% { transform: rotate(10deg) scale(1.1) } }

.scn-sophy-educates {
  background: linear-gradient(180deg, #f5f0eb 0%, #e8dfd4 50%, #d4c8b8 100%),
              radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.08);
}
.scn-sophy-educates .wall-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #f0ebe0 0%, #e3d6c8 100%); }
.scn-sophy-educates .window { position:absolute; top:8%; left:15%; width:30%; height:40%; background: linear-gradient(180deg, #dce8f0 0%, #b0c8d8 100%); border:6px solid #b8a898; border-radius:4px; box-shadow: inset 0 0 20px #f0e8d0; animation: se-window 8s ease-in-out infinite alternate; }
.scn-sophy-educates .desk { position:absolute; bottom:18%; left:25%; width:45%; height:12%; background: linear-gradient(180deg, #a08060 0%, #705840 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-sophy-educates .book { position:absolute; bottom:24%; left:30%; width:8%; height:6%; background: linear-gradient(135deg, #c04040 0%, #b03030 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: se-book 6s ease-in-out infinite; }
.scn-sophy-educates .teacher { position:absolute; bottom:20%; left:50%; width:12%; height:28%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: se-teacher 5s ease-in-out infinite; }
.scn-sophy-educates .child-l { position:absolute; bottom:20%; left:28%; width:8%; height:20%; background: linear-gradient(180deg, #5a7a8a 0%, #2a4a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: se-child 7s ease-in-out infinite; }
.scn-sophy-educates .child-r { position:absolute; bottom:20%; right:28%; width:8%; height:18%; background: linear-gradient(180deg, #7a5a6a 0%, #4a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: se-child 7s ease-in-out infinite 2s; }
.scn-sophy-educates .chalkboard { position:absolute; top:12%; left:55%; width:28%; height:32%; background: linear-gradient(135deg, #3a4a3a 0%, #1a2a1a 100%); border:4px solid #8a7a6a; border-radius:2px; box-shadow: inset 0 0 20px rgba(255,255,255,0.05); }
@keyframes se-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes se-book { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes se-teacher { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes se-child { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(-3deg) } }

.scn-aunt-betsey-visits {
  background: linear-gradient(180deg, #f0dcc0 0%, #e0c8a8 50%, #c8b090 100%),
              radial-gradient(ellipse at 50% 20%, #ffecd0 0%, transparent 70%);
  box-shadow: inset 0 0 80px rgba(180,120,60,0.15);
}
.scn-aunt-betsey-visits .wall-warm { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #e8d4b8 0%, #d4b898 100%); }
.scn-aunt-betsey-visits .doorway { position:absolute; top:5%; left:8%; width:15%; height:60%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 0 0 4px 4px; box-shadow: -4px 0 12px rgba(0,0,0,0.3); animation: ab-door 10s ease-in-out infinite alternate; }
.scn-aunt-betsey-visits .armchair { position:absolute; bottom:18%; left:30%; width:25%; height:30%; background: linear-gradient(180deg, #a08060 0%, #705840 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-aunt-betsey-visits .teacup { position:absolute; bottom:32%; left:40%; width:6%; height:4%; background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; animation: ab-cup 4s ease-in-out infinite; }
.scn-aunt-betsey-visits .aunt { position:absolute; bottom:22%; left:38%; width:14%; height:32%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ab-aunt 6s ease-in-out infinite; }
.scn-aunt-betsey-visits .peg { position:absolute; bottom:20%; left:20%; width:10%; height:26%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ab-peg 5s ease-in-out infinite 1s; }
.scn-aunt-betsey-visits .narrator { position:absolute; bottom:18%; right:20%; width:12%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ab-narrator 7s ease-in-out infinite; }
.scn-aunt-betsey-visits .rug { position:absolute; bottom:12%; left:15%; right:15%; height:6%; background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 30%, #6a4a3a 60%, #8a6a5a 100%); border-radius: 20px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
@keyframes ab-door { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ab-cup { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-1px) rotate(3deg) } }
@keyframes ab-aunt { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ab-peg { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes ab-narrator { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }

.scn-barkis-name-accepted {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4ac 50%, #c0a890 100%),
              radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 60%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.08);
}
.scn-barkis-name-accepted .wall-calm { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #e0d4c0 0%, #c8b8a0 100%); }
.scn-barkis-name-accepted .hearth { position:absolute; bottom:10%; left:10%; width:35%; height:60%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; box-shadow: inset 0 -10px 30px #1a0a00; }
.scn-barkis-name-accepted .mantel { position:absolute; bottom:60%; left:8%; width:39%; height:5%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-barkis-name-accepted .clock { position:absolute; bottom:63%; left:18%; width:8%; height:10%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: bna-clock 2s ease-in-out infinite; }
.scn-barkis-name-accepted .miss-betsey { position:absolute; bottom:15%; left:40%; width:12%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: bna-miss 6s ease-in-out infinite; }
.scn-barkis-name-accepted .traddles { position:absolute; bottom:12%; right:25%; width:13%; height:32%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: bna-trad 7s ease-in-out infinite 1s; }
.scn-barkis-name-accepted .letter { position:absolute; bottom:30%; left:48%; width:6%; height:4%; background: linear-gradient(135deg, #f0e8d0 0%, #d0c0a0 100%); border:1px solid #a08060; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: bna-letter 8s ease-in-out infinite; }
@keyframes bna-clock { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes bna-miss { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bna-trad { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes bna-letter { 0% { opacity:0.8; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:0.8; transform: translateY(0) } }

.scn-ruination-revealed {
  background: linear-gradient(180deg, #1a1a2e 0%, #12121f 50%, #0a0a12 100%),
              radial-gradient(ellipse at 30% 80%, #2a1a1a 0%, transparent 60%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.8);
}
.scn-ruination-revealed .wall-dim { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #1e1e30 0%, #141422 100%); }
.scn-ruination-revealed .floor-dark { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-ruination-revealed .aunt-figure { position:absolute; bottom:12%; left:35%; width:14%; height:34%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: rr-aunt 8s ease-in-out infinite; }
.scn-ruination-revealed .narrator-shadow { position:absolute; bottom:10%; right:25%; width:12%; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: rr-narr 7s ease-in-out infinite; }
.scn-ruination-revealed .candle { position:absolute; bottom:30%; left:20%; width:4%; height:8%; background: linear-gradient(180deg, #f0d080 0%, #c08040 50%, #a06030 100%); border-radius: 2px; box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,0.3); animation: rr-candle 3s ease-in-out infinite alternate; }
.scn-ruination-revealed .desk-ruin { position:absolute; bottom:10%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-ruination-revealed .paper-strewn { position:absolute; bottom:16%; left:22%; width:40%; height:2%; background: linear-gradient(90deg, #3a2a2a 0%, #5a4a3a 20%, #3a2a2a 40%, #5a4a3a 60%, #3a2a2a 80%, #5a4a3a 100%); border-radius: 1px; animation: rr-paper 10s ease-in-out infinite; }
.scn-ruination-revealed .window-night { position:absolute; top:10%; right:10%; width:20%; height:35%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); border:4px solid #2a2a3e; border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: rr-window 12s ease-in-out infinite alternate; }
@keyframes rr-aunt { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rr-narr { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes rr-candle { 0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,0.2); opacity:0.9 } 100% { box-shadow: 0 0 30px 10px #d09050, 0 0 50px 16px rgba(208,144,80,0.4); opacity:1 } }
@keyframes rr-paper { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.05) } 100% { opacity:0.5; transform: scaleX(1) } }
@keyframes rr-window { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.3 } }

/* heep-umble-response */
.scn-heep-umble-response { background: linear-gradient(180deg, #e8dcc4 0%, #d4c4a8 40%, #bfaa8a 100%), radial-gradient(ellipse at 30% 40%, #f5ebd0 0%, transparent 60%); }
.scn-heep-umble-response .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e0d0b0 0%, #c8b898 100%); }
.scn-heep-umble-response .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b09878 0%, #8a7a5e 100%); }
.scn-heep-umble-response .window { position:absolute; top:15%; left:30%; width:20%; height:35%; background: linear-gradient(135deg, #c8d8e8 0%, #a0b8d0 100%); border:4px solid #8a7a5e; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,240,200,0.4); }
.scn-heep-umble-response .table { position:absolute; bottom:30%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #8a6a4e 0%, #6a4e34 100%); border-radius:4px; transform: perspective(400px) rotateX(20deg); }
.scn-heep-umble-response .teapot { position:absolute; bottom:38%; left:48%; width:8%; height:12%; background: radial-gradient(ellipse at 50% 30%, #c8a878 0%, #8a6a3e 100%); border-radius:50%; box-shadow: 0 4px 6px rgba(0,0,0,0.3); }
.scn-heep-umble-response .figure-left { position:absolute; bottom:25%; left:25%; width:12%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hee-fig-l 6s ease-in-out infinite; }
.scn-heep-umble-response .figure-right { position:absolute; bottom:25%; right:28%; width:14%; height:42%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hee-fig-r 7s ease-in-out infinite; }
.scn-heep-umble-response .light-ray { position:absolute; top:15%; left:30%; width:20%; height:35%; background: linear-gradient(135deg, rgba(255,240,200,0.2) 0%, rgba(255,240,200,0) 60%); animation: hee-ray 10s ease-in-out infinite alternate; }
@keyframes hee-fig-l { 0%,100% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-2deg) translateY(-1px); } 70% { transform: rotate(2deg) translateY(0); } }
@keyframes hee-fig-r { 0%,100% { transform: rotate(0deg) translateY(0); } 40% { transform: rotate(3deg) translateY(-2px); } 80% { transform: rotate(-1deg) translateY(0); } }
@keyframes hee-ray { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.6; } }

/* london-micawber-encounter */
.scn-london-micawber-encounter { background: linear-gradient(180deg, #d0c0a8 0%, #b8a688 50%, #9a8a6e 100%), radial-gradient(ellipse at 50% 20%, #e8dcc8 0%, transparent 70%); }
.scn-london-micawber-encounter .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%); }
.scn-london-micawber-encounter .floor-planks { position:absolute; bottom:0; left:0; right:0; height:40%; background: repeating-linear-gradient(0deg, #8a7a62 0px, #8a7a62 2px, #9a8a72 2px, #9a8a72 4px); }
.scn-london-micawber-encounter .candelabra { position:absolute; top:5%; left:50%; width:6%; height:30%; background: linear-gradient(180deg, #c8a040 0%, #a08020 100%); border-radius: 0 0 20% 20%; animation: mic-candle 4s ease-in-out infinite alternate; }
.scn-london-micawber-encounter .chair { position:absolute; bottom:30%; left:20%; width:20%; height:30%; background: linear-gradient(180deg, #6a4a32 0%, #4a3220 100%); border-radius: 10% 10% 5% 5%; }
.scn-london-micawber-encounter .figure-micawber { position:absolute; bottom:20%; left:25%; width:14%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mic-mica 8s ease-in-out infinite; }
.scn-london-micawber-encounter .figure-copperfield { position:absolute; bottom:22%; right:25%; width:12%; height:45%; background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mic-cop 9s ease-in-out infinite; }
.scn-london-micawber-encounter .glow { position:absolute; top:5%; left:50%; width:6%; height:30%; background: radial-gradient(ellipse at 50% 0%, #ffe080 0%, transparent 70%); animation: mic-glow 4s ease-in-out infinite alternate; }
.scn-london-micawber-encounter .dust { position:absolute; top:30%; left:40%; width:20%; height:20%; background: radial-gradient(circle, rgba(255,240,200,0.15) 0%, transparent 80%); filter: blur(4px); animation: mic-dust 25s linear infinite; }
@keyframes mic-candle { 0%,100% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.03); } }
@keyframes mic-mica { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-1deg); } }
@keyframes mic-cop { 0%,100% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-2px) rotate(-2deg); } 80% { transform: translateY(2px) rotate(1deg); } }
@keyframes mic-glow { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes mic-dust { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(20px) translateY(-10px); } 100% { transform: translateX(40px) translateY(0); } }

/* medway-coal-proposal */
.scn-medway-coal-proposal { background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 30% 60%, #a06030 0%, transparent 70%); }
.scn-medway-coal-proposal .chimney { position:absolute; top:0; left:40%; width:20%; height:60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 10% 10%; }
.scn-medway-coal-proposal .hearth { position:absolute; bottom:15%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10%; }
.scn-medway-coal-proposal .fire { position:absolute; bottom:20%; left:37%; width:26%; height:15%; background: radial-gradient(ellipse at 50% 100%, #e08020 0%, #c06010 40%, #8a3010 70%, transparent 100%); animation: coa-fire 2s ease-in-out infinite alternate; }
.scn-medway-coal-proposal .coal-scuttle { position:absolute; bottom:20%; right:25%; width:12%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 30% 10% 10%; }
.scn-medway-coal-proposal .figure-mrs-micawber { position:absolute; bottom:18%; left:20%; width:16%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: coa-fig 7s ease-in-out infinite; }
.scn-medway-coal-proposal .arms { position:absolute; bottom:30%; left:20%; width:20%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50%; animation: coa-arms 5s ease-in-out infinite; }
.scn-medway-coal-proposal .sparkle { position:absolute; bottom:25%; left:45%; width:4%; height:4%; background: radial-gradient(circle, #ffc040 0%, transparent 80%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,192,64,0.6); animation: coa-spark 3s ease-in-out infinite; }
@keyframes coa-fire { 0%,100% { opacity:0.8; transform: scaleY(1) translateY(0); } 50% { opacity:1; transform: scaleY(1.1) translateY(-3px); } }
@keyframes coa-fig { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 75% { transform: rotate(-1deg) translateY(1px); } }
@keyframes coa-arms { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(10deg); } }
@keyframes coa-spark { 0%,100% { opacity:0.3; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } }

/* cathedral-town-hope */
.scn-cathedral-town-hope { background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 50%, #050510 100%), radial-gradient(ellipse at 70% 20%, #2a2a4e 0%, transparent 60%); }
.scn-cathedral-town-hope .dark-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); }
.scn-cathedral-town-hope .column { position:absolute; top:0; left:30%; width:10%; height:90%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 4px; box-shadow: inset -2px 0 4px rgba(0,0,0,0.5); }
.scn-cathedral-town-hope .floor-flag { position:absolute; bottom:10%; left:20%; width:60%; height:10%; background: repeating-linear-gradient(90deg, #4a4a5a 0px, #4a4a5a 30px, #3a3a4a 30px, #3a3a4a 60px); }
.scn-cathedral-town-hope .candle { position:absolute; bottom:35%; left:55%; width:4%; height:20%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 0 0 50% 50%; }
.scn-cathedral-town-hope .figure-woman { position:absolute; bottom:15%; left:45%; width:14%; height:45%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cat-fig 9s ease-in-out infinite; box-shadow: 0 0 20px rgba(0,0,0,0.5); }
.scn-cathedral-town-hope .shadow { position:absolute; bottom:10%; left:40%; width:20%; height:8%; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(4px); animation: cat-shadow 9s ease-in-out infinite; }
.scn-cathedral-town-hope .flicker { position:absolute; bottom:35%; left:55%; width:4%; height:20%; background: radial-gradient(ellipse at 50% 0%, #ffd040 0%, transparent 70%); animation: cat-flicker 2.5s ease-in-out infinite alternate; }
@keyframes cat-fig { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 70% { transform: translateY(1px) rotate(-1deg); } }
@keyframes cat-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.1); opacity:0.6; } }
@keyframes cat-flicker { 0%,100% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } }

/* ========== peggotty-finds-emily ========== */
.scn-peggotty-finds-emily {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2510 40%, #4a3018 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 70%);
}
.scn-peggotty-finds-emily .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%);
  animation: peg-wall 12s ease-in-out infinite alternate;
}
.scn-peggotty-finds-emily .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a1008 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-peggotty-finds-emily .fire-glow {
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ff8020 0%, #ff6010 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ff6010, 0 0 80px 40px rgba(255,96,16,.3);
  animation: peg-fire 2s ease-in-out infinite alternate;
}
.scn-peggotty-finds-emily .figure-kneeling {
  position: absolute; bottom: 38%; left: 40%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: peg-kneel 4s ease-in-out infinite;
}
.scn-peggotty-finds-emily .figure-lying {
  position: absolute; bottom: 33%; left: 36%; width: 50px; height: 28px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%;
  transform: rotate(-10deg);
  animation: peg-lying 6s ease-in-out infinite;
}
.scn-peggotty-finds-emily .handkerchief {
  position: absolute; bottom: 46%; left: 41%; width: 16px; height: 12px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: peg-hank 3s ease-in-out infinite alternate;
}
@keyframes peg-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes peg-fire { 0% { transform: scale(1); opacity: .8 } 50% { transform: scale(1.05); opacity: 1 } 100% { transform: scale(.95); opacity: .7 } }
@keyframes peg-kneel { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 75% { transform: translateY(1px) rotate(-2deg) } }
@keyframes peg-lying { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) translateY(1px) } }
@keyframes peg-hank { 0% { transform: rotate(15deg) scaleY(1) } 100% { transform: rotate(12deg) scaleY(0.95) } }

/* ========== emilys-journey-home ========== */
.scn-emilys-journey-home {
  background: linear-gradient(180deg, #a0a090 0%, #c0b0a0 30%, #d0c0b0 60%, #e0d0c0 100%),
              radial-gradient(ellipse at 50% 0%, #d0c0b0 0%, transparent 70%);
}
.scn-emilys-journey-home .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0b0a0 0%, #d0c0b0 100%);
  animation: ejh-sky 20s ease-in-out infinite alternate;
}
.scn-emilys-journey-home .hills {
  position: absolute; bottom: 30%; left: -10%; right: -10%; height: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
  animation: ejh-hills 30s ease-in-out infinite alternate;
}
.scn-emilys-journey-home .path {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #b0a090 0%, #908070 100%);
  border-radius: 10%;
  transform: translateX(-50%) perspective(100px) rotateX(60deg);
  animation: ejh-path 8s ease-in-out infinite;
}
.scn-emilys-journey-home .house {
  position: absolute; bottom: 32%; right: 15%; width: 40px; height: 35px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ejh-house 12s ease-in-out infinite;
}
.scn-emilys-journey-home .figure-walking {
  position: absolute; bottom: 40%; left: 30%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ejh-walk 5s ease-in-out infinite;
}
@keyframes ejh-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes ejh-hills { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(5px) } }
@keyframes ejh-path { 0%,100% { opacity: .8 } 50% { opacity: 1 } }
@keyframes ejh-house { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-1px) } }
@keyframes ejh-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(3deg) } 50% { transform: translateX(16px) rotate(0deg) } 75% { transform: translateX(24px) rotate(-3deg) } 100% { transform: translateX(32px) rotate(0deg) } }

/* ========== martha-rescues-emily ========== */
.scn-martha-rescues-emily {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, transparent 70%);
}
.scn-martha-rescues-emily .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  animation: mre-bg 15s ease-in-out infinite alternate;
}
.scn-martha-rescues-emily .lantern-glow {
  position: absolute; bottom: 40%; left: 38%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #ffa040, 0 0 100px 40px rgba(255,160,64,.3);
  animation: mre-lantern 3s ease-in-out infinite alternate;
}
.scn-martha-rescues-emily .figure-rescuer {
  position: absolute; bottom: 35%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: mre-rescuer 5s ease-in-out infinite;
}
.scn-martha-rescues-emily .figure-rescued {
  position: absolute; bottom: 30%; left: 35%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: mre-rescued 6s ease-in-out infinite;
}
.scn-martha-rescues-emily .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3e 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
@keyframes mre-bg { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .7 } }
@keyframes mre-lantern { 0% { transform: scale(1) rotate(-5deg); opacity: .8 } 50% { transform: scale(1.1) rotate(2deg); opacity: 1 } 100% { transform: scale(.95) rotate(-2deg); opacity: .7 } }
@keyframes mre-rescuer { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(3deg) } 75% { transform: translateY(1px) rotate(-2deg) } }
@keyframes mre-rescued { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-12deg) translateX(2px) } }

/* ========== plan-to-emigrate ========== */
.scn-plan-to-emigrate {
  background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 40%, #a09070 100%),
              radial-gradient(ellipse at 50% 20%, #e0d0b0 0%, transparent 70%);
}
.scn-plan-to-emigrate .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
}
.scn-plan-to-emigrate .window {
  position: absolute; top: 15%; right: 15%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #80a0c0 0%, #a0c0e0 100%);
  border: 4px solid #6a5a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,.3);
  animation: pte-window 10s ease-in-out infinite alternate;
}
.scn-plan-to-emigrate .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 5px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: pte-table 7s ease-in-out infinite;
}
.scn-plan-to-emigrate .map {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 5px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: pte-map 12s ease-in-out infinite;
}
.scn-plan-to-emigrate .ship {
  position: absolute; top: 20%; right: 22%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  transform: rotate(-10deg);
  animation: pte-ship 15s ease-in-out infinite alternate;
}
.scn-plan-to-emigrate .figure {
  position: absolute; bottom: 28%; left: 15%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: pte-figure 4s ease-in-out infinite;
}
@keyframes pte-window { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes pte-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes pte-map { 0%,100% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(-3deg) scaleX(1.02) } }
@keyframes pte-ship { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-12deg) translateY(1px) } }
@keyframes pte-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(0deg) } 75% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-where-are-you-going {
  background: 
    linear-gradient(180deg, #1a1210 0%, #2a1f1a 40%, #1f1410 80%, #0c0806 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a24 0%, transparent 60%);
}
.scn-where-are-you-going .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #2b1f18 0%, #1f1612 100%); }
.scn-where-are-you-going .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #3a2a22 0%, #2b1f18 100%); }
.scn-where-are-you-going .doorframe { position:absolute; bottom:20%; left:50%; width:120px; height:200px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3528 0%, #2b1f18 100%); border-radius:6px 6px 0 0; box-shadow: 0 0 20px rgba(0,0,0,.6); }
.scn-where-are-you-going .door { position:absolute; bottom:20%; left:50%; width:90px; height:180px; transform:translateX(-50%); background: linear-gradient(180deg, #5e4030 0%, #3a2820 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: wyg-door 6s ease-in-out infinite alternate; }
.scn-where-are-you-going .figure-ham { position:absolute; bottom:20%; left:35%; width:40px; height:130px; background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wyg-ham 8s ease-in-out infinite; }
.scn-where-are-you-going .shadow-ham { position:absolute; bottom:18%; left:32%; width:50px; height:20px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(6px); animation: wyg-shadow 8s ease-in-out infinite; }
.scn-where-are-you-going .light-slit { position:absolute; bottom:20%; left:48%; width:4px; height:180px; background: linear-gradient(180deg, transparent 0%, #b0805a 30%, #b0805a 70%, transparent 100%); box-shadow: 0 0 12px 4px rgba(176,128,90,.3); animation: wyg-light 4s ease-in-out infinite alternate; }
@keyframes wyg-door { 0% { transform: translateX(-50%) rotateY(0deg); } 50% { transform: translateX(-50%) rotateY(-5deg); } 100% { transform: translateX(-50%) rotateY(0deg); } }
@keyframes wyg-ham { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(2px) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(1px) rotate(1deg); } }
@keyframes wyg-shadow { 0%,100% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.05); } }
@keyframes wyg-light { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-accompany-tomorrow {
  background: 
    linear-gradient(180deg, #8a8f94 0%, #b5bcc4 30%, #c5ced6 60%, #aeb5bb 100%),
    radial-gradient(ellipse at 50% 20%, #d4dce3 0%, transparent 60%);
}
.scn-accompany-tomorrow .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #bcc4cb 0%, #d5dde5 100%); animation: act-sky 15s ease-in-out infinite alternate; }
.scn-accompany-tomorrow .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a706e 0%, #4a504e 100%); border-radius: 30% 30% 0 0 / 10% 10% 0 0; }
.scn-accompany-tomorrow .path { position:absolute; bottom:30%; left:35%; width:30%; height:10%; background: linear-gradient(90deg, #8a8e8b 0%, #9ca09d 50%, #8a8e8b 100%); border-radius: 20px; box-shadow: 0 2px 8px rgba(0,0,0,.2); transform: perspective(200px) rotateX(15deg); }
.scn-accompany-tomorrow .boat { position:absolute; bottom:40%; left:70%; width:80px; height:30px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1f10 100%); border-radius: 30% 30% 50% 50% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: act-boat 10s ease-in-out infinite; }
.scn-accompany-tomorrow .figure-left { position:absolute; bottom:35%; left:40%; width:16px; height:40px; background: linear-gradient(180deg, #2c3032 0%, #1c2022 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: act-walk-l 6s ease-in-out infinite; }
.scn-accompany-tomorrow .figure-right { position:absolute; bottom:35%; left:48%; width:18px; height:38px; background: linear-gradient(180deg, #2c3032 0%, #1c2022 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: act-walk-r 6s ease-in-out infinite 1s; }
.scn-accompany-tomorrow .distant-hill { position:absolute; bottom:40%; left:10%; width:40%; height:30%; background: linear-gradient(180deg, #5a605e 0%, #3a403e 100%); border-radius: 60% 40% 0 0 / 80% 50% 0 0; box-shadow: 0 4px 20px rgba(0,0,0,.2); animation: act-hill 20s ease-in-out infinite alternate; }
@keyframes act-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes act-boat { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } }
@keyframes act-walk-l { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes act-walk-r { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes act-hill { 0% { transform: scaleX(1) translateX(0); } 100% { transform: scaleX(1.05) translateX(-5px); } }

.scn-candle-in-the-window {
  background: 
    linear-gradient(180deg, #0a101a 0%, #141c2a 40%, #1a2436 100%),
    radial-gradient(ellipse at 50% 20%, #2a3450 0%, transparent 70%);
}
.scn-candle-in-the-window .night-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #0f1825 0%, #1a2436 100%); animation: ciw-sky 10s ease-in-out infinite alternate; }
.scn-candle-in-the-window .moon { position:absolute; top:12%; left:70%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #e8e8e0 0%, #c8c8c0 70%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(200,200,200,.3); animation: ciw-moon 20s ease-in-out infinite alternate; }
.scn-candle-in-the-window .house-wall { position:absolute; bottom:30%; left:50%; width:140px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3028 0%, #2a221a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-candle-in-the-window .window-frame { position:absolute; bottom:40%; left:50%; width:50px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-candle-in-the-window .candle-glow { position:absolute; bottom:42%; left:50%; width:14px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #e8c080 0%, #c08a40 60%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 30px 10px #c08a40, 0 0 60px 20px rgba(192,138,64,.3); animation: ciw-candle 4s ease-in-out infinite alternate; }
.scn-candle-in-the-window .sill-shadow { position:absolute; bottom:35%; left:50%; width:60px; height:8px; transform:translateX(-50%); background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.4) 30%, rgba(0,0,0,.4) 70%, transparent 100%); filter: blur(4px); }
.scn-candle-in-the-window .cloud-wisp { position:absolute; top:18%; left:20%; width:90px; height:12px; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.15) 30%, rgba(255,255,255,.15) 70%, transparent 100%); filter: blur(6px); animation: ciw-cloud 40s linear infinite; }
@keyframes ciw-sky { 0% { opacity:1; } 50% { opacity:0.85; } 100% { opacity:0.9; } }
@keyframes ciw-moon { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(0.98); } 100% { transform: translateX(3px) scale(1.01); } }
@keyframes ciw-candle { 0% { opacity:0.7; transform: translateX(-50%) scale(0.95); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:0.8; transform: translateX(-50%) scale(0.98); } }
@keyframes ciw-cloud { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

.scn-life-afore-me {
  background: 
    linear-gradient(180deg, #080c14 0%, #0e1420 40%, #141c2c 100%),
    radial-gradient(ellipse at 20% 30%, #1a2640 0%, transparent 70%);
}
.scn-life-afore-me .starlit-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0a101c 0%, #101826 100%); animation: lam-sky 12s ease-in-out infinite alternate; }
.scn-life-afore-me .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #101826 0%, #080c14 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.3); animation: lam-sea 8s ease-in-out infinite alternate; }
.scn-life-afore-me .cliff { position:absolute; bottom:20%; left:20%; width:30%; height:40%; background: linear-gradient(180deg, #1a1c22 0%, #0c0e12 100%); border-radius: 0 60% 0 0 / 0 80% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); transform: skewX(-3deg); }
.scn-life-afore-me .figure-woman { position:absolute; bottom:22%; left:32%; width:14px; height:36px; background: linear-gradient(180deg, #1a1c24 0%, #0c0e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lam-figure 5s ease-in-out infinite; }
.scn-life-afore-me .ship-distant { position:absolute; bottom:50%; left:70%; width:40px; height:20px; background: linear-gradient(135deg, #1c2028 0%, #080c10 100%); border-radius: 30% 30% 50% 50% / 50% 50% 30% 30%; transform: rotate(5deg); animation: lam-ship 12s ease-in-out infinite; }
.scn-life-afore-me .wave-foam { position:absolute; bottom:15%; left:0; right:0; height:6px; background: linear-gradient(90deg, transparent 0%, rgba(200,220,240,.1) 30%, rgba(200,220,240,.1) 60%, transparent 100%); filter: blur(2px); animation: lam-foam 10s linear infinite; }
.scn-life-afore-me .star-twinkle { position:absolute; top:18%; left:45%; width:4px; height:4px; background: #ffffff; border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,255,255,.6); animation: lam-star 3s ease-in-out infinite alternate; }
@keyframes lam-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes lam-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes lam-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lam-ship { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-5px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes lam-foam { 0% { background-position: 0 0; } 100% { background-position: 200px 0; } }
@keyframes lam-star { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0.5; transform: scale(0.8); } }

/* Scene 1: why-did-you-praise-her (tense, firelit) */
.scn-why-did-you-praise-her {
  background: 
    linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 40%, #2a0a00 100%),
    radial-gradient(ellipse at 50% 70%, #8b4a2a 0%, transparent 50%);
}
.scn-why-did-you-praise-her .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 100%); animation: wdy-wall 12s ease-in-out infinite alternate; }
.scn-why-did-you-praise-her .hearth { position: absolute; bottom: 15%; left: 20%; width: 60%; height: 25%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-why-did-you-praise-her .fire { position: absolute; bottom: 18%; left: 42%; width: 16%; height: 20%; background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, #a0461a 40%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: wdy-fire 2s ease-in-out infinite alternate; }
.scn-why-did-you-praise-her .figure { position: absolute; bottom: 18%; left: 55%; width: 12%; height: 30%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wdy-figure 4s ease-in-out infinite; }
.scn-why-did-you-praise-her .fender { position: absolute; bottom: 14%; left: 38%; width: 30%; height: 3%; background: linear-gradient(90deg, #5a3a2a 0%, #3a1a0a 50%, #5a3a2a 100%); border-radius: 10%; box-shadow: 0 -2px 6px rgba(0,0,0,.5); }
.scn-why-did-you-praise-her .shadow { position: absolute; bottom: 10%; left: 20%; width: 60%; height: 10%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 100%); animation: wdy-shadow 4s ease-in-out infinite; }
.scn-why-did-you-praise-her .ember { position: absolute; bottom: 23%; left: 50%; width: 2%; height: 2%; background: #c8553d; border-radius: 50%; box-shadow: 0 0 10px 4px #c8553d; animation: wdy-ember 3s ease-in-out infinite alternate; }

@keyframes wdy-wall { 0% { opacity:.95 } 50% { opacity:.75 } 100% { opacity:.9 } }
@keyframes wdy-fire { 0% { transform: scaleY(0.9) translateY(0); opacity:.8 } 50% { transform: scaleY(1.1) translateY(-2%); opacity:1 } 100% { transform: scaleY(0.95) translateY(-1%); opacity:.9 } }
@keyframes wdy-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2%) rotate(1deg) } 50% { transform: translateX(4%) rotate(-1deg) } 75% { transform: translateX(2%) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes wdy-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes wdy-ember { 0% { transform: translate(0, 0) scale(0.8); opacity:.7 } 50% { transform: translate(10%, 5%) scale(1.2); opacity:1 } 100% { transform: translate(5%, 2%) scale(0.9); opacity:.8 } }

/* Scene 2: too-late (dark, dim-interior) */
.scn-too-late {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #12121a 40%, #0a0a12 100%),
    radial-gradient(ellipse at 20% 60%, #2a2a3e 0%, transparent 70%);
}
.scn-too-late .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #0a0a12 0%, #05050a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-too-late .wall-left { position: absolute; top: 0; left: 0; width: 30%; height: 100%; background: linear-gradient(90deg, #12121a 0%, #0a0a12 100%); }
.scn-too-late .doorway { position: absolute; bottom: 20%; left: 10%; width: 20%; height: 55%; background: #0a0a12; border: 2px solid #1a1a2a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-too-late .figure { position: absolute; bottom: 20%; left: 15%; width: 10%; height: 40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: tl-figure 6s ease-in-out infinite; }
.scn-too-late .lamp { position: absolute; top: 15%; left: 40%; width: 3%; height: 5%; background: #b87878; border-radius: 50%; box-shadow: 0 0 30px 8px rgba(184,120,120,.4); animation: tl-lamp 8s ease-in-out infinite alternate; }
.scn-too-late .shadow { position: absolute; bottom: 10%; left: 0; width: 40%; height: 20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.7) 0%, transparent 100%); }
.scn-too-late .frame { position: absolute; top: 5%; left: 10%; width: 20%; height: 15%; background: linear-gradient(180deg, #1a1a2a 0%, #12121a 100%); border: 1px solid #2a2a3e; border-radius: 4%; box-shadow: inset 0 2px 4px rgba(0,0,0,.6); animation: tl-frame 12s ease-in-out infinite alternate; }

@keyframes tl-figure { 0% { transform: translateX(0) scaleY(1); opacity:.6 } 25% { transform: translateX(5%) scaleY(0.95); opacity:.7 } 50% { transform: translateX(10%) scaleY(1); opacity:.8 } 75% { transform: translateX(5%) scaleY(1.05); opacity:.7 } 100% { transform: translateX(0) scaleY(1); opacity:.6 } }
@keyframes tl-lamp { 0% { opacity:.3; box-shadow: 0 0 20px 4px rgba(184,120,120,.2) } 50% { opacity:.7; box-shadow: 0 0 40px 12px rgba(184,120,120,.5) } 100% { opacity:.4; box-shadow: 0 0 25px 6px rgba(184,120,120,.3) } }
@keyframes tl-frame { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(2deg) scale(0.98) } 100% { transform: rotate(-1deg) scale(1) } }

/* Scene 3: do-you-mistrust-me (tense, dim-interior) */
.scn-do-you-mistrust-me {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #24243a 40%, #0f0f1a 100%),
    radial-gradient(ellipse at 70% 50%, #3a3a5a 0%, transparent 60%);
}
.scn-do-you-mistrust-me .room { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, #0f0f1a 100%); }
.scn-do-you-mistrust-me .table { position: absolute; bottom: 20%; left: 20%; width: 60%; height: 15%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 6% 6% 2% 2%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-do-you-mistrust-me .figure-a { position: absolute; bottom: 22%; left: 30%; width: 14%; height: 35%; background: linear-gradient(180deg, #2a2a3e 0%, #0a0a14 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: dym-figure-a 3s ease-in-out infinite; }
.scn-do-you-mistrust-me .figure-b { position: absolute; bottom: 22%; left: 55%; width: 12%; height: 32%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: dym-figure-b 3.5s ease-in-out infinite; }
.scn-do-you-mistrust-me .glance { position: absolute; top: 28%; left: 52%; width: 4%; height: 4%; background: radial-gradient(circle, #b87878 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 15px 5px #b87878; animation: dym-glance 2s ease-in-out infinite alternate; }
.scn-do-you-mistrust-me .chair { position: absolute; bottom: 18%; left: 48%; width: 10%; height: 18%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 2px 4px rgba(0,0,0,.4); }
.scn-do-you-mistrust-me .candle { position: absolute; top: 35%; left: 45%; width: 1.5%; height: 4%; background: #b87878; border-radius: 10%; box-shadow: 0 0 20px 6px rgba(184,120,120,.5); animation: dym-candle 4s ease-in-out infinite alternate; }

@keyframes dym-figure-a { 0% { transform: translateX(0) rotate(-1deg) scaleY(1) } 25% { transform: translateX(3%) rotate(2deg) scaleY(0.95) } 50% { transform: translateX(6%) rotate(-1deg) scaleY(1) } 75% { transform: translateX(3%) rotate(1deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes dym-figure-b { 0% { transform: translateX(0) rotate(1deg) scaleY(1) } 33% { transform: translateX(-2%) rotate(-1deg) scaleY(0.96) } 66% { transform: translateX(-4%) rotate(2deg) scaleY(1.03) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes dym-glance { 0% { opacity:.2; transform: translate(-5%, -5%) scale(0.8) } 50% { opacity:1; transform: translate(0, 0) scale(1.2) } 100% { opacity:.3; transform: translate(5%, 5%) scale(0.9) } }
@keyframes dym-candle { 0% { transform: scaleY(0.9) translateY(0); box-shadow: 0 0 15px 4px rgba(184,120,120,.3) } 50% { transform: scaleY(1.1) translateY(-2%); box-shadow: 0 0 30px 8px rgba(184,120,120,.6) } 100% { transform: scaleY(0.95) translateY(-1%); box-shadow: 0 0 20px 5px rgba(184,120,120,.4) } }

/* Scene 4: trust-like-full-sized-woman (warm, dim-interior) */
.scn-trust-like-full-sized-woman {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0f05 40%, #0f0500 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 60%);
}
.scn-trust-like-full-sized-woman .bg { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 70%, #0f0500 100%); }
.scn-trust-like-full-sized-woman .figure { position: absolute; bottom: 20%; left: 40%; width: 20%; height: 35%; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tlf-figure 5s ease-in-out infinite; }
.scn-trust-like-full-sized-woman .hand { position: absolute; bottom: 30%; left: 55%; width: 6%; height: 10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 40% 40% 30% 30%; transform-origin: top; animation: tlf-hand 4s ease-in-out infinite; }
.scn-trust-like-full-sized-woman .glow { position: absolute; bottom: 28%; left: 38%; width: 25%; height: 25%; background: radial-gradient(circle, #c8553d 0%, transparent 100%); border-radius: 50%; filter: blur(10px); opacity: .3; animation: tlf-glow 6s ease-in-out infinite alternate; }
.scn-trust-like-full-sized-woman .shadow { position: absolute; bottom: 10%; left: 30%; width: 40%; height: 15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 100%); animation: tlf-shadow 5s ease-in-out infinite; }
.scn-trust-like-full-sized-woman .wrist { position: absolute; bottom: 28%; left: 53%; width: 4%; height: 2%; background: #5a3a2a; border-radius: 20%; box-shadow: 0 0 5px 2px rgba(90,58,42,.6); }
.scn-trust-like-full-sized-woman .warmth { position: absolute; bottom: 20%; left: 20%; width: 60%; height: 30%; background: radial-gradient(ellipse at 50% 100%, rgba(200,85,61,.15) 0%, transparent 100%); animation: tlf-warmth 8s ease-in-out infinite alternate; }

@keyframes tlf-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2%) rotate(1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1%) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tlf-hand { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(5%) translateY(-2%) rotate(5deg) } 50% { transform: translateX(10%) translateY(0) rotate(0deg) } 75% { transform: translateX(5%) translateY(2%) rotate(-5deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes tlf-glow { 0% { opacity:.2; transform: scale(0.8) } 50% { opacity:.5; transform: scale(1.1) } 100% { opacity:.3; transform: scale(0.9) } }
@keyframes tlf-shadow { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.5; transform: scaleY(0.8) } 100% { opacity:.4; transform: scaleY(1) } }
@keyframes tlf-warmth { 0% { opacity:.1; transform: scale(0.9) } 50% { opacity:.3; transform: scale(1.1) } 100% { opacity:.15; transform: scale(1) } }

.scn-traddles-home-life {
  background: linear-gradient(180deg, #3c2a1a 0%, #2a1a0a 30%, #4a3020 60%, #2a1a0a 100%), radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 70%);
}
.scn-traddles-home-life .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: thl-bg 12s ease-in-out infinite alternate;
}
.scn-traddles-home-life .fireplace {
  position: absolute; bottom: 10%; left: 50%; width: 100px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 30px #8a6030;
}
.scn-traddles-home-life .fire {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 60px; transform: translateX(-50%); background: radial-gradient(circle, #ffa050 0%, #c06020 60%, #4a2000 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 40px #ff8040, 0 0 80px #ff6020; animation: thl-fire 3s ease-in-out infinite alternate;
}
.scn-traddles-home-life .mantel {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 8px; transform: translateX(-50%); background: linear-gradient(90deg, #5a3a1a, #7a5a3a, #5a3a1a); border-radius: 2px;
}
.scn-traddles-home-life .desk {
  position: absolute; bottom: 8%; left: 30%; width: 80px; height: 50px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-traddles-home-life .figure-sitting {
  position: absolute; bottom: 10%; left: 32%; width: 30px; height: 50px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: thl-sit 4s ease-in-out infinite;
}
.scn-traddles-home-life .figure-standing {
  position: absolute; bottom: 10%; right: 30%; width: 28px; height: 60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: thl-stand 6s ease-in-out infinite;
}
.scn-traddles-home-life .candle {
  position: absolute; bottom: 20%; left: 24%; width: 6px; height: 18px; background: linear-gradient(180deg, #c08040 0%, #8a6020 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 12px 3px #ffa040; animation: thl-candle 5s ease-in-out infinite alternate;
}
@keyframes thl-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes thl-fire { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1) rotate(2deg); } 100% { transform: translateX(-50%) scale(0.95) rotate(-1deg); } }
@keyframes thl-sit { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg); } }
@keyframes thl-stand { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(3px) rotate(-2deg); } 70% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes thl-candle { 0% { box-shadow: 0 0 8px 2px #ffa040; } 50% { box-shadow: 0 0 16px 5px #ffc060; } 100% { box-shadow: 0 0 10px 3px #ff8040; } }

.scn-creakle-magistrate-news {
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 40%, #5a3a2a 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 60%);
}
.scn-creakle-magistrate-news .parlor-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); animation: cmn-bg 14s ease-in-out infinite alternate;
}
.scn-creakle-magistrate-news .fireplace-glowing {
  position: absolute; bottom: 15%; left: 20%; width: 80px; height: 90px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px #8a6030, 0 0 40px #ff8040;
}
.scn-creakle-magistrate-news .armchair {
  position: absolute; bottom: 10%; right: 25%; width: 50px; height: 60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-creakle-magistrate-news .figure-reading {
  position: absolute; bottom: 12%; right: 28%; width: 30px; height: 55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cmn-read 5s ease-in-out infinite;
}
.scn-creakle-magistrate-news .letter {
  position: absolute; bottom: 22%; right: 30%; width: 20px; height: 14px; background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 2px; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: cmn-letter 3s ease-in-out infinite alternate;
}
.scn-creakle-magistrate-news .side-table {
  position: absolute; bottom: 8%; right: 20%; width: 40px; height: 30px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 4px;
}
.scn-creakle-magistrate-news .candle-wax {
  position: absolute; bottom: 25%; left: 30%; width: 5px; height: 20px; background: linear-gradient(180deg, #c08040 0%, #4a2010 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 10px 2px #ffa040; animation: cmn-candle 6s ease-in-out infinite alternate;
}
@keyframes cmn-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cmn-read { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(1deg); } }
@keyframes cmn-letter { 0% { transform: rotate(8deg) scale(1); } 50% { transform: rotate(12deg) scale(1.02); } 100% { transform: rotate(8deg) scale(1); } }
@keyframes cmn-candle { 0% { box-shadow: 0 0 6px 1px #ffa040; } 50% { box-shadow: 0 0 14px 4px #ffc060; } 100% { box-shadow: 0 0 8px 2px #ff8040; } }

.scn-creakle-magistrate-reaction {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #4a3020 0%, transparent 70%);
}
.scn-creakle-magistrate-reaction .dark-room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); animation: cmr-dark 10s ease-in-out infinite alternate;
}
.scn-creakle-magistrate-reaction .firelight-glow {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 100px; transform: translateX(-50%); background: radial-gradient(circle, #ff8040 0%, transparent 70%); border-radius: 50%; animation: cmr-glow 4s ease-in-out infinite alternate;
}
.scn-creakle-magistrate-reaction .silhouette-profile {
  position: absolute; bottom: 15%; left: 40%; width: 40px; height: 70px; background: #0a0000; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: cmr-profile 6s ease-in-out infinite;
}
.scn-creakle-magistrate-reaction .hand-gesture {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 18px; background: #0a0000; border-radius: 40% 40% 50% 50%; animation: cmr-hand 3s ease-in-out infinite;
}
.scn-creakle-magistrate-reaction .wall-shadow {
  position: absolute; bottom: 10%; right: 30%; width: 80px; height: 120px; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); border-radius: 20%; filter: blur(8px); animation: cmr-shadow 8s ease-in-out infinite alternate;
}
@keyframes cmr-dark { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cmr-glow { 0% { transform: translateX(-50%) scale(1); opacity: 0.6; } 50% { transform: translateX(-50%) scale(1.2); opacity: 1; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.5; } }
@keyframes cmr-profile { 0%,100% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(4px); } }
@keyframes cmr-hand { 0% { transform: translate(0,0) rotate(0); } 50% { transform: translate(3px,-2px) rotate(-10deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes cmr-shadow { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }

.scn-heep-and-littimer-prison {
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 50%, #2a2a1a 100%), linear-gradient(0deg, #6a6a5a 0%, transparent 40%);
}
.scn-heep-and-littimer-prison .prison-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); animation: hlp-wall 8s ease-in-out infinite alternate;
}
.scn-heep-and-littimer-prison .barred-window {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #8a8a7a 0%, #6a6a5a 100%); border: 4px solid #4a4a3a; border-radius: 4px; box-shadow: inset 0 0 10px #aaa99a; animation: hlp-window 12s ease-in-out infinite alternate;
}
.scn-heep-and-littimer-prison .prisoner1 {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hlp-pris1 4s ease-in-out infinite;
}
.scn-heep-and-littimer-prison .prisoner2 {
  position: absolute; bottom: 15%; right: 30%; width: 28px; height: 48px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hlp-pris2 5s ease-in-out infinite;
}
.scn-heep-and-littimer-prison .cocoa-cup {
  position: absolute; bottom: 20%; left: 42%; width: 8px; height: 12px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 0 0 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: hlp-cup 3s ease-in-out infinite alternate;
}
.scn-heep-and-littimer-prison .spectacles-man {
  position: absolute; bottom: 18%; right: 10%; width: 20px; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hlp-spec 6s ease-in-out infinite;
}
.scn-heep-and-littimer-prison .floor-line {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, #8a8a7a, transparent); animation: hlp-floor 9s linear infinite alternate;
}
@keyframes hlp-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hlp-window { 0% { opacity: 0.7; box-shadow: inset 0 0 10px #888; } 50% { opacity: 1; box-shadow: inset 0 0 20px #aaa; } 100% { opacity: 0.8; box-shadow: inset 0 0 10px #777; } }
@keyframes hlp-pris1 { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(3px) translateY(-2px); } }
@keyframes hlp-pris2 { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-4px) rotate(2deg); } 70% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hlp-cup { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hlp-spec { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }
@keyframes hlp-floor { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }

.scn-mr-wickfield-confession {
  background:
    radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, #1a1210 60%),
    linear-gradient(180deg, #1f1612 0%, #2a1e18 100%);
}
.scn-mr-wickfield-confession .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2f241d 0%, #1a1210 100%);
  animation: wc-wall 12s ease-in-out infinite alternate;
}
.scn-mr-wickfield-confession .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1e1410 0%, #2b1f18 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.6);
}
.scn-mr-wickfield-confession .table {
  position: absolute; bottom: 18%; left: 50%; width: 100px; height: 15px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3d2e 0%, #3a281f 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
}
.scn-mr-wickfield-confession .candle {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 18px;
  margin-left: -3px;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px rgba(212,160,96,0.5), 0 0 40px 15px rgba(212,160,96,0.2);
  animation: wc-flicker 2s ease-in-out infinite alternate;
}
.scn-mr-wickfield-confession .figure-old {
  position: absolute; bottom: 16%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1c1412 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wc-bow 6s ease-in-out infinite;
}
.scn-mr-wickfield-confession .figure-young {
  position: absolute; bottom: 18%; left: 55%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #1e1815 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wc-tilt 5s ease-in-out infinite alternate;
}
.scn-mr-wickfield-confession .shadow-blob {
  position: absolute; bottom: 10%; left: 30%; width: 140px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(6px);
  animation: wc-shadow 8s ease-in-out infinite;
}
@keyframes wc-wall    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes wc-flicker { 0% { opacity:1; transform: scaleY(1) } 30% { opacity:0.6; transform: scaleY(0.8) } 60% { opacity:1; transform: scaleY(1.05) } 100% { opacity:0.9; transform: scaleY(0.95) } }
@keyframes wc-bow     { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(6deg) } }
@keyframes wc-tilt    { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes wc-shadow  { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }

.scn-mr-wickfield-marriage-pain {
  background:
    radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, #0f0a08 80%),
    linear-gradient(180deg, #1f1210 0%, #0b0705 100%);
}
.scn-mr-wickfield-marriage-pain .wall-dark {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #201615 0%, #0e0807 100%);
  animation: wm-fade 10s ease-in-out infinite alternate;
}
.scn-mr-wickfield-marriage-pain .doorway {
  position: absolute; bottom: 15%; left: 40%; width: 80px; height: 120px;
  background: #0a0504;
  border-radius: 0 0 10px 10px / 0 0 5px 5px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-mr-wickfield-marriage-pain .woman {
  position: absolute; bottom: 20%; left: 30%; width: 32px; height: 55px;
  background: linear-gradient(180deg, #2a1e1a 0%, #140e0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wm-sway 7s ease-in-out infinite;
}
.scn-mr-wickfield-marriage-pain .baby {
  position: absolute; bottom: 20%; left: 33%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #1e1512 0%, #0e0807 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: wm-cradle 4s ease-in-out infinite;
}
.scn-mr-wickfield-marriage-pain .figure-hard {
  position: absolute; bottom: 18%; right: 25%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #0d0806 0%, #050302 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scaleX(1.3);
  animation: wm-stiff 12s ease-in-out infinite;
}
.scn-mr-wickfield-marriage-pain .tear-streak {
  position: absolute; bottom: 40%; left: 31%; width: 2px; height: 10px;
  background: rgba(220,200,180,0.3);
  border-radius: 2px;
  animation: wm-tear 3s ease-in-out infinite;
}
@keyframes wm-fade   { 0% { opacity:0.7 } 100% { opacity:1 } }
@keyframes wm-sway   { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes wm-cradle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes wm-stiff  { 0%,50%,100% { transform: scaleX(1.3) } 25% { transform: scaleX(1.35) } 75% { transform: scaleX(1.25) } }
@keyframes wm-tear   { 0% { opacity:0; transform: translateY(0) } 20% { opacity:0.6; transform: translateY(0) } 60% { opacity:0.4; transform: translateY(6px) } 100% { opacity:0; transform: translateY(10px) } }

.scn-night-ride-anxiety {
  background:
    radial-gradient(ellipse at 50% 70%, #0c1420 0%, #040810 60%),
    linear-gradient(180deg, #0a0f18 0%, #162030 100%);
}
.scn-night-ride-anxiety .sky-stars {
  position: absolute; inset: 0;
  background:
    radial-gradient(1px 1px at 15% 10%, #ffffff 50%, transparent 100%),
    radial-gradient(1px 1px at 60% 5%, #ffffff 50%, transparent 100%),
    radial-gradient(1px 1px at 80% 15%, #aabbff 50%, transparent 100%),
    radial-gradient(1px 1px at 30% 25%, #ffffff 50%, transparent 100%),
    radial-gradient(1px 1px at 70% 30%, #ddddff 50%, transparent 100%),
    radial-gradient(1px 1px at 45% 40%, #ffffff 50%, transparent 100%),
    radial-gradient(1px 1px at 10% 45%, #bbbbff 50%, transparent 100%),
    radial-gradient(1px 1px at 90% 8%, #ffffff 50%, transparent 100%);
  background-size: 100% 100%;
  animation: nr-twinkle 15s ease-in-out infinite alternate;
}
.scn-night-ride-anxiety .horizon {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, transparent 0%, #1a2a3a 20%, #1a2a3a 80%, transparent 100%);
  filter: blur(1px);
  animation: nr-horizon 20s ease-in-out infinite;
}
.scn-night-ride-anxiety .horse-body {
  position: absolute; bottom: 18%; left: 40%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #121a22 0%, #080c12 100%);
  border-radius: 30% 60% 30% 30% / 50% 50% 40% 40%;
  transform: scaleY(0.8);
  animation: nr-gallop 0.8s ease-in-out infinite;
}
.scn-night-ride-anxiety .rider {
  position: absolute; bottom: 38%; left: 44%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a232e 0%, #0a1018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nr-bounce 0.8s ease-in-out infinite;
}
.scn-night-ride-anxiety .cape-stream {
  position: absolute; bottom: 42%; left: 46%; width: 35px; height: 20px;
  background: linear-gradient(180deg, #1a232e 0%, #0a1018 100%);
  border-radius: 0 80% 0 80% / 0 80% 0 80%;
  transform-origin: top left;
  animation: nr-cape 1.2s ease-in-out infinite alternate;
}
.scn-night-ride-anxiety .star-1 {
  position: absolute; top: 8%; left: 20%; width: 3px; height: 3px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.6);
  animation: nr-pulse 4s ease-in-out infinite;
}
.scn-night-ride-anxiety .star-2 {
  position: absolute; top: 12%; right: 25%; width: 2px; height: 2px;
  background: #ddeeff;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(221,238,255,0.5);
  animation: nr-pulse 5s 1s ease-in-out infinite;
}
.scn-night-ride-anxiety .star-3 {
  position: absolute; top: 5%; left: 70%; width: 2px; height: 2px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(255,255,255,0.5);
  animation: nr-pulse 5s 2.5s ease-in-out infinite;
}
@keyframes nr-twinkle { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes nr-horizon { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes nr-gallop  { 0% { transform: scaleY(0.8) translateX(0) } 25% { transform: scaleY(0.75) translateX(1px) } 50% { transform: scaleY(0.8) translateX(0) } 75% { transform: scaleY(0.75) translateX(-1px) } 100% { transform: scaleY(0.8) translateX(0) } }
@keyframes nr-bounce  { 0% { transform: rotate(-2deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes nr-cape   { 0% { transform: rotate(0deg) scaleX(1) } 100% { transform: rotate(-15deg) scaleX(1.2) } }
@keyframes nr-pulse   { 0%,100% { opacity:0.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } }

.scn-dover-house-work {
  background:
    radial-gradient(ellipse at 50% 60%, #1c2b3a 0%, #0f1a24 80%),
    linear-gradient(180deg, #192633 0%, #0f1a24 100%);
}
.scn-dover-house-work .wall-room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1f2d3a 0%, #14202b 100%);
  animation: dh-wall 15s ease-in-out infinite alternate;
}
.scn-dover-house-work .window-frame {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: transparent;
  border: 6px solid #2a3a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-dover-house-work .sea-view {
  position: absolute; bottom: 25%; left: 50%; width: 108px; height: 148px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1c2a38 0%, #0d151e 100%);
  overflow: hidden;
}
.scn-dover-house-work .moon {
  position: absolute; top: 15%; left: 65%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0e8d0 0%, #b8a890 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(240,232,208,0.4), 0 0 40px 15px rgba(240,232,208,0.15);
  animation: dh-moon 30s linear infinite;
}
.scn-dover-house-work .figure-at-desk {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1f2d3a 0%, #111a22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dh-write 6s ease-in-out infinite;
}
.scn-dover-house-work .desk {
  position: absolute; bottom: 18%; left: 35%; width: 70px; height: 12px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1f18 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-dover-house-work .candle-glow {
  position: absolute; bottom: 28%; left: 44%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #d4b080 0%, #a08060 100%);
  border-radius: 3px;
  box-shadow: 0 0 24px 10px rgba(212,176,128,0.5), 0 0 50px 20px rgba(212,176,128,0.2);
  animation: dh-flicker 3s ease-in-out infinite alternate;
}
@keyframes dh-wall   { 0% { opacity:0.8 } 100% { opacity:1 } }
@keyframes dh-moon   { 0% { transform: translateX(0) } 100% { transform: translateX(20px) } }
@keyframes dh-write  { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes dh-flicker { 0% { opacity:1; transform: scaleY(1) } 30% { opacity:0.7; transform: scaleY(0.85) } 60% { opacity:1; transform: scaleY(1.05) } 100% { opacity:0.9; transform: scaleY(0.95) } }

.scn-little-emly-remembered {
  background:
    linear-gradient(180deg, #f7e8c0 0%, #e6c98a 40%, #d4a96a 100%),
    radial-gradient(ellipse at 50% 80%, #f9d99e 0%, transparent 60%);
}
.scn-little-emly-remembered .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #e6d4a8 0%, #dbbc7a 100%); }
.scn-little-emly-remembered .window-frame { position:absolute; top:12%; left:55%; width:100px; height:130px; background: #7a5a3a; border:6px solid #5a3a1a; border-radius:6px; box-shadow:0 4px 12px rgba(0,0,0,.3); animation: em-frame 10s ease-in-out infinite alternate; }
.scn-little-emly-remembered .window-glass { position:absolute; top:16%; left:57.5%; width:90px; height:110px; background: linear-gradient(180deg, #d6e8f0 0%, #b0c8d8 100%); opacity:0.7; border-radius:4px; animation: em-glass 6s ease-in-out infinite alternate; }
.scn-little-emly-remembered .sill { position:absolute; bottom:21%; left:55%; width:100px; height:12px; background: #8a6a4a; border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,.3); }
.scn-little-emly-remembered .chair { position:absolute; bottom:28%; left:30%; width:60px; height:80px; background: linear-gradient(180deg, #b88a5a 0%, #8a6a3a 100%); border-radius:20% 20% 10% 10% / 30% 30% 10% 10%; transform:rotate(2deg); animation: em-chair 8s ease-in-out infinite alternate; }
.scn-little-emly-remembered .figure-little { position:absolute; bottom:30%; left:33%; width:22px; height:40px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: em-figure 4s ease-in-out infinite; }
.scn-little-emly-remembered .dust-mote.a { position:absolute; top:40%; left:20%; width:4px; height:4px; background: rgba(255,230,160,0.6); border-radius:50%; animation: em-dust 12s linear infinite; }
.scn-little-emly-remembered .dust-mote.b { position:absolute; top:50%; left:70%; width:3px; height:3px; background: rgba(255,230,160,0.5); border-radius:50%; animation: em-dust 15s linear infinite 3s; }
@keyframes em-frame { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes em-glass { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes em-chair { 0%,100% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-3px) } }
@keyframes em-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes em-dust { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-20px) scale(0.6) } 50% { transform: translateY(-40px) scale(0.3) } 75% { transform: translateY(-20px) scale(0.7) } 100% { transform: translateY(0) scale(1) } }

.scn-peggetty-rheumatic {
  background:
    linear-gradient(180deg, #3a2c24 0%, #2a1e14 50%, #1e1410 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2e 0%, transparent 70%);
}
.scn-peggetty-rheumatic .bg-room { position:absolute; inset:0; background: linear-gradient(45deg, #3a2c24 0%, #2a1e14 100%); }
.scn-peggetty-rheumatic .bed-base { position:absolute; bottom:20%; left:20%; width:240px; height:110px; background: #4a3a2a; border-radius:12px 12px 6px 6px; box-shadow:0 4px 12px rgba(0,0,0,.5); animation: pg-bed 10s ease-in-out infinite alternate; }
.scn-peggetty-rheumatic .blanket { position:absolute; bottom:26%; left:22%; width:210px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow:inset 0 4px 8px rgba(0,0,0,.3); animation: pg-blanket 12s ease-in-out infinite alternate; }
.scn-peggetty-rheumatic .pillow { position:absolute; bottom:48%; left:30%; width:60px; height:30px; background: #6a5a4a; border-radius:50%; transform:rotate(-5deg); box-shadow:0 2px 6px rgba(0,0,0,.4); animation: pg-pillow 8s ease-in-out infinite alternate; }
.scn-peggetty-rheumatic .figure-peg { position:absolute; bottom:30%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform:rotate(5deg); animation: pg-figure 6s ease-in-out infinite alternate; }
.scn-peggetty-rheumatic .lamp-glow { position:absolute; top:20%; left:60%; width:30px; height:40px; background: radial-gradient(circle at 50% 30%, #d4a86a 0%, #a08040 50%, transparent 100%); border-radius:50%; filter:blur(8px); animation: pg-lamp 5s ease-in-out infinite alternate; }
.scn-peggetty-rheumatic .shadow-corner { position:absolute; bottom:0; right:0; width:100%; height:40%; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); }
.scn-peggetty-rheumatic .dust-mote.a { position:absolute; top:30%; left:15%; width:3px; height:3px; background: rgba(200,180,160,0.4); border-radius:50%; animation: pg-dust 18s linear infinite; }
.scn-peggetty-rheumatic .dust-mote.b { position:absolute; top:50%; left:75%; width:2px; height:2px; background: rgba(200,180,160,0.3); border-radius:50%; animation: pg-dust 22s linear infinite 5s; }
@keyframes pg-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pg-blanket { 0% { translateY(0) } 50% { translateY(-1px) } 100% { translateY(0) } }
@keyframes pg-pillow { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(-5deg) } }
@keyframes pg-figure { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes pg-lamp { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes pg-dust { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-15px) scale(0.5) } 50% { transform: translateY(-30px) scale(0.3) } 75% { transform: translateY(-15px) scale(0.7) } 100% { transform: translateY(0) scale(1) } }

.scn-barkis-willingness {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1e14 50%, #1a100c 100%),
    radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 70%);
}
.scn-barkis-willingness .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #3a2c20 0%, #221810 100%); }
.scn-barkis-willingness .cart-body { position:absolute; bottom:28%; left:40%; width:140px; height:60px; background: #6a4a2a; border-radius:20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow:0 4px 8px rgba(0,0,0,.5); animation: bw-cart 4s ease-in-out infinite alternate; }
.scn-barkis-willingness .cart-wheel { position:absolute; bottom:22%; left:55%; width:40px; height:40px; background: #3a2a1a; border-radius:50%; border:4px solid #5a3a1a; box-shadow:0 2px 6px rgba(0,0,0,.4); animation: bw-wheel 6s linear infinite; }
.scn-barkis-willingness .barkis-figure { position:absolute; bottom:35%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: bw-figure 3s ease-in-out infinite alternate; }
.scn-barkis-willingness .barkis-hat { position:absolute; bottom:62%; left:28%; width:35px; height:20px; background: #2a1a0a; border-radius:50% 50% 0 0; box-shadow:0 -2px 6px rgba(0,0,0,.3); animation: bw-hat 3s ease-in-out infinite alternate; }
.scn-barkis-willingness .speech-puff { position:absolute; top:18%; left:55%; width:50px; height:30px; background: rgba(255,240,200,0.8); border-radius:50%; filter:blur(2px); animation: bw-puff 5s ease-in-out infinite; }
.scn-barkis-willingness .sparkle.a { position:absolute; top:40%; left:20%; width:4px; height:4px; background: #ffd080; border-radius:50%; box-shadow:0 0 8px #ffd080; animation: bw-sparkle 2s ease-in-out infinite; }
.scn-barkis-willingness .sparkle.b { position:absolute; top:30%; left:70%; width:3px; height:3px; background: #ffc060; border-radius:50%; box-shadow:0 0 6px #ffc060; animation: bw-sparkle 3s ease-in-out infinite 1s; }
@keyframes bw-cart { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes bw-wheel { 0% { transform: rotate(0deg) } 25% { transform: rotate(90deg) } 50% { transform: rotate(180deg) } 75% { transform: rotate(270deg) } 100% { transform: rotate(360deg) } }
@keyframes bw-figure { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(0deg) translateY(-5px) } 50% { transform: rotate(5deg) translateY(0) } 75% { transform: rotate(0deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes bw-hat { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(0deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bw-puff { 0%,100% { transform: scale(1) translateX(0); opacity:0.6; } 50% { transform: scale(1.2) translateX(5px); opacity:1; } }
@keyframes bw-sparkle { 0%,100% { opacity:0.2; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } }

.scn-praise-for-cpbarkis {
  background:
    linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 50%, #2a1a12 100%),
    radial-gradient(ellipse at 50% 70%, #6a4a32 0%, transparent 70%);
}
.scn-praise-for-cpbarkis .bg-warm { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2e 0%, #3a2a1e 100%); }
.scn-praise-for-cpbarkis .fireplace { position:absolute; bottom:10%; left:35%; width:120px; height:140px; background: #5a3a2a; border-radius:20% 20% 8% 8% / 30% 30% 10% 10%; box-shadow:inset 0 8px 20px rgba(0,0,0,.5); animation: pb-fire 8s ease-in-out infinite alternate; }
.scn-praise-for-cpbarkis .fire-glow { position:absolute; bottom:18%; left:40%; width:60px; height:50px; background: radial-gradient(circle at 50% 80%, #e8b060 0%, #d09040 40%, transparent 70%); border-radius:50%; filter:blur(10px); animation: pb-glow 4s ease-in-out infinite alternate; }
.scn-praise-for-cpbarkis .figure-left { position:absolute; bottom:28%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(5deg); animation: pb-left 6s ease-in-out infinite alternate; }
.scn-praise-for-cpbarkis .figure-right { position:absolute; bottom:30%; right:20%; width:35px; height:65px; background: linear-gradient(180deg, #6a4a32 0%, #3a2218 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-3deg); animation: pb-right 6s ease-in-out infinite alternate; }
.scn-praise-for-cpbarkis .embrace-arm { position:absolute; bottom:38%; left:25%; width:50px; height:12px; background: #5a3a2a; border-radius:30% 50% 50% 30%; transform:rotate(20deg); transform-origin: left center; animation: pb-arm 5s ease-in-out infinite alternate; }
.scn-praise-for-cpbarkis .hearth-light { position:absolute; bottom:12%; left:30%; width:160px; height:30px; background: linear-gradient(90deg, transparent 0%, #d09850 30%, #c08040 50%, #d09850 70%, transparent 100%); border-radius:50%; filter:blur(6px); animation: pb-hearth 7s ease-in-out infinite alternate; }
.scn-praise-for-cpbarkis .shadow-area { position:absolute; bottom:0; left:0; width:100%; height:20%; background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%); }
@keyframes pb-fire { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-2px); } }
@keyframes pb-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes pb-left { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes pb-right { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes pb-arm { 0% { transform: rotate(20deg) scaleX(1); } 50% { transform: rotate(25deg) scaleX(1.05); } 100% { transform: rotate(20deg) scaleX(1); } }
@keyframes pb-hearth { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-shipwreck-aftermath-arrival { background: linear-gradient(180deg, #3b4a5c 0%, #2a3a4a 40%, #1a2a3a 100%), radial-gradient(ellipse at 40% 80%, #4a5a6a 0%, transparent 70%); }
.scn-shipwreck-aftermath-arrival .storm-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #2a3a4a 100%); animation: s1-sway 8s ease-in-out infinite alternate; }
.scn-shipwreck-aftermath-arrival .rough-sea { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); animation: s1-swell 5s ease-in-out infinite; }
.scn-shipwreck-aftermath-arrival .wreck-beam { position:absolute; bottom:34%; left:20%; width:14%; height:4%; background: linear-gradient(90deg, #3a2a1a, #5a4a3a, #2a1a0a); border-radius: 2px; transform: rotate(-12deg); box-shadow: 0 3px 6px rgba(0,0,0,.5); animation: s1-drift 12s ease-in-out infinite; }
.scn-shipwreck-aftermath-arrival .wreck-plank { position:absolute; bottom:36%; right:15%; width:8%; height:7%; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 2px; transform: rotate(8deg); animation: s1-drift 14s ease-in-out infinite reverse; }
.scn-shipwreck-aftermath-arrival .figure-hurt { position:absolute; bottom:28%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: s1-stumble 4s ease-in-out infinite; }
.scn-shipwreck-aftermath-arrival .blood-drip { position:absolute; bottom:24%; left:48%; width:4px; height:12px; background: linear-gradient(180deg, #6a2010, #8a3020, #5a1810); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(100,30,10,.5); animation: s1-drip 2s ease-in-out infinite; }
.scn-shipwreck-aftermath-arrival .gulls { position:absolute; top:12%; left:70%; width:30px; height:10px; background: radial-gradient(ellipse at 30% 50%, rgba(200,200,210,.7) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: s1-gull 25s linear infinite; }
@keyframes s1-sway { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes s1-swell { 0% { transform: translateY(0) scaleX(1) } 30% { transform: translateY(-5px) scaleX(1.02) } 60% { transform: translateY(3px) scaleX(.98) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes s1-drift { 0% { transform: translateX(0) rotate(-12deg) } 50% { transform: translateX(2px) rotate(-10deg) } 100% { transform: translateX(-2px) rotate(-14deg) } }
@keyframes s1-stumble { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(6deg) } 75% { transform: translateX(-6px) rotate(-4deg) } }
@keyframes s1-drip { 0% { transform: translateY(0) scaleY(1); opacity: .8 } 50% { transform: translateY(4px) scaleY(1.3); opacity: 1 } 100% { transform: translateY(0) scaleY(.9); opacity: .7 } }
@keyframes s1-gull { 0% { transform: translateX(-20px) } 50% { transform: translateX(40px) translateY(-5px) } 100% { transform: translateX(100vw) } }

.scn-shipwreck-body-identified { background: linear-gradient(180deg, #2a3340 0%, #1a2330 40%, #0a1320 100%), radial-gradient(ellipse at 50% 100%, #3a4350 0%, transparent 70%); }
.scn-shipwreck-body-identified .overcast-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a5360 0%, #2a3340 50%, #1a2330 100%); animation: s2-gloom 10s ease-in-out infinite alternate; }
.scn-shipwreck-body-identified .grey-water { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a4350 0%, #1a2330 100%); border-radius: 30% 70% 0 0 / 40% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.7); animation: s2-ripple 6s ease-in-out infinite; }
.scn-shipwreck-body-identified .shore-sand { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-shipwreck-body-identified .body-shape { position:absolute; bottom:8%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform: rotate(15deg); box-shadow: 0 4px 10px rgba(0,0,0,.8); animation: s2-still 8s ease-in-out infinite; }
.scn-shipwreck-body-identified .figure-kneeling { position:absolute; bottom:18%; right:30%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s2-kneel 5s ease-in-out infinite; }
.scn-shipwreck-body-identified .shadow-pool { position:absolute; bottom:2%; left:30%; width:60px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: s2-shadow 7s ease-in-out infinite; }
.scn-shipwreck-body-identified .driftwood { position:absolute; bottom:12%; left:55%; width:30px; height:6px; background: linear-gradient(90deg, #3a2a1a, #5a4a3a); border-radius: 3px; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: s2-log 15s linear infinite; }
@keyframes s2-gloom { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes s2-ripple { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes s2-still { 0%,100% { transform: translateY(0) rotate(15deg) } 50% { transform: translateY(2px) rotate(14deg) } }
@keyframes s2-kneel { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(-4px) translateY(2px) rotate(1deg) } 75% { transform: translateX(3px) translateY(1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes s2-shadow { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .8; transform: scaleX(1.1) } 100% { opacity: .6; transform: scaleX(.95) } }
@keyframes s2-log { 0% { transform: translateX(-20px) rotate(-20deg) } 50% { transform: translateX(10px) rotate(-18deg) } 100% { transform: translateX(50vw) rotate(-22deg) } }

.scn-steerforth-death-revelation { background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 50%, #050510 100%), radial-gradient(ellipse at 30% 50%, #2a2a4a 0%, transparent 70%); }
.scn-steerforth-death-revelation .somber-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, transparent 100%); animation: s3-glow 12s ease-in-out infinite alternate; }
.scn-steerforth-death-revelation .dark-mound { position:absolute; bottom:0; left:20%; right:20%; height:60%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.8); }
.scn-steerforth-death-revelation .silhouette-griever { position:absolute; bottom:35%; left:45%; width:22px; height:44px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 -4px 8px rgba(255,255,255,.05); animation: s3-bow 6s ease-in-out infinite; }
.scn-steerforth-death-revelation .pale-face { position:absolute; bottom:58%; left:48%; width:12px; height:14px; background: radial-gradient(ellipse, #8a8a9a 0%, #4a4a5a 70%); border-radius: 50%; box-shadow: 0 0 4px 2px rgba(200,200,210,.2); animation: s3-face 8s ease-in-out infinite; }
.scn-steerforth-death-revelation .tear-drop { position:absolute; bottom:52%; left:50%; width:3px; height:6px; background: linear-gradient(180deg, rgba(200,220,255,.8), rgba(200,220,255,.2)); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: s3-tear 4s ease-in-out infinite; }
.scn-steerforth-death-revelation .mist-wisp { position:absolute; top:15%; left:30%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(200,200,210,.15) 0%, transparent 100%); filter: blur(8px); animation: s3-mist 30s linear infinite; }
.scn-steerforth-death-revelation .grass-blade { position:absolute; bottom:20%; left:30%; width:4px; height:30px; background: linear-gradient(180deg, #1a3a1a, #0a1a0a); border-radius: 50%; transform: rotate(-10deg); box-shadow: 0 0 2px rgba(0,20,0,.5); animation: s3-grass 6s ease-in-out infinite; }
@keyframes s3-glow { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .4 } }
@keyframes s3-bow { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-4px) rotate(8deg) } 75% { transform: translateX(4px) rotate(-6deg) } }
@keyframes s3-face { 0%,100% { opacity: .7; transform: scale(1) } 50% { opacity: .9; transform: scale(1.05) } }
@keyframes s3-tear { 0% { transform: translateY(0) scaleY(1); opacity: .8 } 50% { transform: translateY(4px) scaleY(1.5); opacity: 1 } 100% { transform: translateY(0) scaleY(.8); opacity: .5 } }
@keyframes s3-mist { 0% { transform: translateX(0) } 50% { transform: translateX(40px) } 100% { transform: translateX(100vw) } }
@keyframes s3-grass { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-15deg) } }

.scn-stewardess-encounter { background: linear-gradient(180deg, #2a2218 0%, #1a140e 50%, #0e0a06 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-stewardess-encounter .wall-back { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a140e 100%); }
.scn-stewardess-encounter .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.8) 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-stewardess-encounter .candle-glow { position:absolute; top:30%; left:50%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(240,200,120,.6) 0%, rgba(200,160,80,.2) 40%, transparent 100%); transform: translate(-50%, -50%); animation: s4-flicker 3s ease-in-out infinite alternate; }
.scn-stewardess-encounter .candle-body { position:absolute; top:36%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #e0c080, #c0a060); border-radius: 2px 2px 4px 4px; transform: translateX(-50%); box-shadow: 0 0 6px rgba(200,160,80,.4); }
.scn-stewardess-encounter .stewardess-silhouette { position:absolute; bottom:18%; right:30%; width:20px; height:50px; background: linear-gradient(180deg, #0e0a06 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s4-bob 5s ease-in-out infinite; }
.scn-stewardess-encounter .gentleman-figure { position:absolute; bottom:18%; left:35%; width:22px; height:48px; background: linear-gradient(180deg, #1a140e 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s4-bob 5s ease-in-out infinite reverse; }
.scn-stewardess-encounter .door-frame { position:absolute; top:0; bottom:0; left:10%; width:3%; background: linear-gradient(90deg, #3a2a1a, #2a1a0e, #1a0e06); border-radius: 2px; box-shadow: 2px 0 8px rgba(0,0,0,.5); animation: s4-door 12s ease-in-out infinite; }
@keyframes s4-flicker { 0% { opacity: .7; transform: translate(-50%, -50%) scale(1) } 50% { opacity: 1; transform: translate(-50%, -51%) scale(1.05) } 100% { opacity: .8; transform: translate(-50%, -49%) scale(.98) } }
@keyframes s4-bob { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-2px) } 75% { transform: translateY(1px) } }
@keyframes s4-door { 0%,100% { opacity: .8 } 50% { opacity: 1 } }

.scn-miss-mills-sagacity { background: linear-gradient(180deg, #f5e6c8 0%, #e8d5b0 50%, #d4be94 100%), radial-gradient(ellipse at 50% 100%, #f0deb0 0%, transparent 70%); }
.scn-miss-mills-sagacity .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f5e6c8 0%, #e8d5b0 100%); }
.scn-miss-mills-sagacity .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a3e28 0%, #3a2818 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.3); }
.scn-miss-mills-sagacity .window { position:absolute; top:10%; right:15%; width:25%; height:45%; background: radial-gradient(circle at 50% 70%, #c8e4f8 0%, #a0c8e8 60%, #7aaad4 100%); border:6px solid #8a7050; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,255,.3); }
.scn-miss-mills-sagacity .sofa { position:absolute; bottom:20%; left:10%; width:40%; height:15%; background: linear-gradient(180deg, #7a6050 0%, #5a4030 100%); border-radius:40% 40% 10% 10% / 80% 80% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-miss-mills-sagacity .figure-mills { position:absolute; bottom:20%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm1-mills 6s ease-in-out infinite alternate; }
.scn-miss-mills-sagacity .figure-dora { position:absolute; bottom:20%; left:48%; width:18px; height:42px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm1-dora 7s ease-in-out infinite; }
.scn-miss-mills-sagacity .candle { position:absolute; bottom:30%; left:55%; width:6px; height:14px; background: linear-gradient(180deg, #f0d080 0%, #c8a060 100%); border-radius:2px; }
.scn-miss-mills-sagacity .glow { position:absolute; bottom:30%; left:55%; width:40px; height:40px; background: radial-gradient(circle, rgba(240,208,128,.6) 0%, transparent 70%); border-radius:50%; transform:translate(-50%,-50%); animation: mm1-glow 4s ease-in-out infinite alternate; }
@keyframes mm1-mills { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-2px) rotate(2deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes mm1-dora { 0%{transform:translateX(0) translateY(0) rotate(-3deg)} 50%{transform:translateX(2px) translateY(-1px) rotate(3deg)} 100%{transform:translateX(0) translateY(0) rotate(-2deg)} }
@keyframes mm1-glow { 0%{opacity:.6; box-shadow:0 0 20px 8px rgba(240,208,128,.4)} 50%{opacity:1; box-shadow:0 0 40px 16px rgba(240,208,128,.7)} 100%{opacity:.7; box-shadow:0 0 25px 10px rgba(240,208,128,.5)} }

.scn-carriage-side-conversation { background: linear-gradient(180deg, #d4c4a4 0%, #c4b494 50%, #b4a484 100%), radial-gradient(ellipse at 50% 0%, #e0d0b0 0%, transparent 70%); }
.scn-carriage-side-conversation .ceiling { position:absolute; top:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #b8a080 0%, #d0b890 100%); border-radius:0 0 20% 20%; }
.scn-carriage-side-conversation .wall { position:absolute; top:15%; bottom:20%; left:0; right:0; background: linear-gradient(180deg, #dfd0b8 0%, #cab89c 100%); }
.scn-carriage-side-conversation .seat { position:absolute; bottom:20%; left:10%; right:20%; height:20%; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); }
.scn-carriage-side-conversation .window { position:absolute; top:25%; right:5%; width:30%; height:40%; background: radial-gradient(circle at 50% 50%, #b8d8f0 0%, #8ab8d8 70%); border:6px solid #8a7050; border-radius:4px; }
.scn-carriage-side-conversation .rider-shadow { position:absolute; top:30%; right:12%; width:25px; height:45px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-10deg); animation: csc-rider 8s ease-in-out infinite alternate; }
.scn-carriage-side-conversation .figure-mills { position:absolute; bottom:20%; left:15%; width:18px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: csc-mills 5s ease-in-out infinite; }
.scn-carriage-side-conversation .curtain { position:absolute; top:20%; left:5%; width:15%; height:50%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:10% 10% 30% 30%; opacity:.75; }
.scn-carriage-side-conversation .glow { position:absolute; top:40%; left:30%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,220,160,.5) 0%, transparent 70%); border-radius:50%; animation: csc-glow 4s ease-in-out infinite alternate; }
@keyframes csc-rider { 0%{transform:rotate(-10deg) translateX(0)} 50%{transform:rotate(-8deg) translateX(2px)} 100%{transform:rotate(-12deg) translateX(-1px)} }
@keyframes csc-mills { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-3px) rotate(2deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes csc-glow { 0%{opacity:.5; box-shadow:0 0 30px 10px rgba(255,220,160,.3)} 50%{opacity:.8; box-shadow:0 0 50px 20px rgba(255,220,160,.6)} 100%{opacity:.6; box-shadow:0 0 35px 14px rgba(255,220,160,.4)} }

.scn-mills-not-at-home { background: linear-gradient(180deg, #ecdcc0 0%, #dccbaa 50%, #cbb99a 100%), radial-gradient(ellipse at 50% 100%, #f0dcc0 0%, transparent 70%); }
.scn-mills-not-at-home .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f5e6c8 0%, #e8d5b0 100%); }
.scn-mills-not-at-home .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a3e28 0%, #3a2818 100%); box-shadow: inset 0 6px 10px rgba(0,0,0,.3); }
.scn-mills-not-at-home .fireplace { position:absolute; bottom:20%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3e28 0%, #3a2818 100%); border-radius:10px 10px 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4); }
.scn-mills-not-at-home .chair { position:absolute; bottom:15%; left:20%; width:50px; height:45px; background: linear-gradient(180deg, #7a6050 0%, #5a4030 100%); border-radius:40% 40% 10% 10% / 80% 80% 20% 20%; }
.scn-mills-not-at-home .figure-mills { position:absolute; bottom:15%; left:25%; width:18px; height:46px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mnh-mills 6s ease-in-out infinite alternate; }
.scn-mills-not-at-home .table { position:absolute; bottom:12%; left:35%; width:40px; height:8px; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius:4px; }
.scn-mills-not-at-home .teacup { position:absolute; bottom:14%; left:40%; width:8px; height:8px; background: radial-gradient(circle, #f0e0c0 0%, #d0b890 80%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.scn-mills-not-at-home .glow { position:absolute; bottom:22%; left:45%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,200,150,.4) 0%, transparent 70%); border-radius:50%; animation: mnh-glow 5s ease-in-out infinite alternate; }
@keyframes mnh-mills { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes mnh-glow { 0%{opacity:.5; box-shadow:0 0 25px 10px rgba(255,200,150,.3)} 50%{opacity:.8; box-shadow:0 0 40px 16px rgba(255,200,150,.5)} 100%{opacity:.6; box-shadow:0 0 30px 12px rgba(255,200,150,.4)} }

.scn-defferred-proposal { background: linear-gradient(180deg, #e8d5b0 0%, #d4be94 50%, #c0a87c 100%), radial-gradient(ellipse at 50% 100%, #d4be94 0%, transparent 70%); }
.scn-defferred-proposal .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8d5b0 0%, #d4be94 100%); }
.scn-defferred-proposal .floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #4a3528 0%, #2a1a0a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.5); }
.scn-defferred-proposal .door { position:absolute; top:10%; left:5%; width:18%; height:70%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border:4px solid #5a4020; border-radius:2px; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-defferred-proposal .figure-copperfield { position:absolute; bottom:20%; left:30%; width:20px; height:52px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp1-copperfield 3s ease-in-out infinite alternate; }
.scn-defferred-proposal .figure-dora { position:absolute; bottom:20%; left:50%; width:18px; height:44px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp1-dora 2.5s ease-in-out infinite; }
.scn-defferred-proposal .shadow { position:absolute; bottom:10%; left:35%; width:80px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); border-radius:50%; animation: dp1-shadow 4s ease-in-out infinite alternate; }
.scn-defferred-proposal .lamp { position:absolute; top:30%; right:15%; width:10px; height:20px; background: linear-gradient(180deg, #f0d080 0%, #c8a060 100%); border-radius:2px; box-shadow: 0 0 20px 6px rgba(240,208,128,.5); }
.scn-defferred-proposal .glow-fast { position:absolute; top:25%; right:10%; width:100px; height:100px; background: radial-gradient(circle, rgba(240,208,128,.4) 0%, transparent 70%); border-radius:50%; animation: dp1-glow 1.5s ease-in-out infinite alternate; }
@keyframes dp1-copperfield { 0%{transform:translateY(0) rotate(-2deg) scaleY(1)} 50%{transform:translateY(-2px) rotate(1deg) scaleY(1.02)} 100%{transform:translateY(0) rotate(-1deg) scaleY(1)} }
@keyframes dp1-dora { 0%{transform:translateX(0) rotate(-3deg)} 50%{transform:translateX(1px) rotate(3deg)} 100%{transform:translateX(0) rotate(-1deg)} }
@keyframes dp1-shadow { 0%{opacity:.3; transform:scaleX(1)} 50%{opacity:.6; transform:scaleX(1.1)} 100%{opacity:.4; transform:scaleX(.95)} }
@keyframes dp1-glow { 0%{opacity:.4; box-shadow:0 0 30px 12px rgba(240,208,128,.3)} 50%{opacity:.9; box-shadow:0 0 60px 24px rgba(240,208,128,.7)} 100%{opacity:.5; box-shadow:0 0 40px 16px rgba(240,208,128,.4)} }

.scn-murdstone-meeting-again {
  background: linear-gradient(135deg, #f5e8d8 0%, #d4c4b0 50%, #b8a28a 100%), radial-gradient(circle at 30% 40%, #ffffff40 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-murdstone-meeting-again .room { position:absolute; inset:0; background: linear-gradient(180deg, #d4c4b0 0%, #b8a28a 100%); }
.scn-murdstone-meeting-again .window { position:absolute; top:10%; right:10%; width:100px; height:140px; background: radial-gradient(ellipse at center, #fff9e6 0%, #d4c4b0 80%); border: 4px solid #6b5a4a; border-radius: 4px; box-shadow: inset 0 0 30px #fff, 0 4px 20px #00000040; animation: mtp-window 6s ease-in-out infinite alternate; }
.scn-murdstone-meeting-again .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); box-shadow: inset 0 20px 30px #00000060; }
.scn-murdstone-meeting-again .shadow { position:absolute; bottom:25%; left:30%; width:200px; height:100px; background: radial-gradient(ellipse, #00000030 0%, transparent 70%); animation: mtp-shadow 2s ease-in-out infinite alternate; }
.scn-murdstone-meeting-again .figure-murdstone { position:absolute; bottom:25%; left:35%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mtp-figure 3s ease-in-out infinite; }
.scn-murdstone-meeting-again .figure-david { position:absolute; bottom:25%; right:30%; width:24px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mtp-figure 3s ease-in-out infinite reverse; }
.scn-murdstone-meeting-again .table { position:absolute; bottom:20%; left:50%; width:80px; height:10px; background: #5a3a2a; border-radius: 4px; transform: translateX(-50%); box-shadow: 0 4px 10px #00000060; animation: mtp-table 4s ease-in-out infinite; }
.scn-murdstone-meeting-again .lamp { position:absolute; top:20%; left:20%; width:10px; height:30px; background: #1a1a2a; border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 20px #f0d09080; animation: mtp-lamp 3s ease-in-out infinite; }
@keyframes mtp-window { 0% { opacity:0.7; box-shadow: inset 0 0 20px #fff, 0 4px 20px #00000040 } 50% { opacity:1; box-shadow: inset 0 0 50px #fff, 0 4px 30px #00000060 } 100% { opacity:0.8; box-shadow: inset 0 0 30px #fff, 0 4px 20px #00000040 } }
@keyframes mtp-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes mtp-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mtp-table { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.05) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes mtp-lamp { 0% { box-shadow: 0 0 30px 10px #f0d09080; opacity:0.8 } 50% { box-shadow: 0 0 50px 20px #f0d090; opacity:1 } 100% { box-shadow: 0 0 35px 12px #f0d09090; opacity:0.85 } }

.scn-murdstones-new-marriage {
  background: linear-gradient(180deg, #f0efe0 0%, #d8d0b0 50%, #b8a890 100%), radial-gradient(ellipse at 50% 30%, #ffffff60 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-murdstones-new-marriage .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8e0c8 0%, #c8b898 100%); }
.scn-murdstones-new-marriage .hearth { position:absolute; bottom:25%; left:20%; width:60px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 30px #f0c080, 0 6px 20px #00000050; animation: mnm-hearth 8s ease-in-out infinite alternate; }
.scn-murdstones-new-marriage .armchair { position:absolute; bottom:28%; right:25%; width:70px; height:60px; background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: mnm-chair 6s ease-in-out infinite; }
.scn-murdstones-new-marriage .figure-murdstone { position:absolute; bottom:22%; left:35%; width:28px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mnm-figure 5s ease-in-out infinite; }
.scn-murdstones-new-marriage .figure-missmurdstone { position:absolute; bottom:24%; left:45%; width:24px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mnm-figure 5s ease-in-out infinite reverse; }
.scn-murdstones-new-marriage .clock { position:absolute; top:15%; right:20%; width:30px; height:40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10%; box-shadow: 0 2px 10px #00000030; animation: mnm-clock 30s linear infinite; }
.scn-murdstones-new-marriage .vase { position:absolute; top:20%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #c0b090 0%, #908070 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; box-shadow: inset 0 0 10px #00000020; animation: mnm-vase 12s ease-in-out infinite alternate; }
@keyframes mnm-hearth { 0% { box-shadow: inset 0 0 20px #f0c080, 0 0 30px #f0c08040; opacity:0.8 } 50% { box-shadow: inset 0 0 40px #ffd090, 0 0 50px #ffd09060; opacity:1 } 100% { box-shadow: inset 0 0 25px #f0c080, 0 0 35px #f0c08050; opacity:0.9 } }
@keyframes mnm-chair { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes mnm-figure { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-1px) rotate(1deg) } 66% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mnm-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes mnm-vase { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(2deg) } 100% { transform: scale(1) rotate(0deg) } }

.scn-flowers-for-dora {
  background: linear-gradient(180deg, #fcf8f0 0%, #f0e8d8 50%, #e0d0b8 100%), radial-gradient(circle at 60% 20%, #fff5e0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-flowers-for-dora .window-sun { position:absolute; top:5%; left:5%; width:120px; height:160px; background: radial-gradient(ellipse at center, #fffbe6 0%, #f0e0c0 80%); border-radius: 10px; box-shadow: inset 0 0 40px #fff, 0 8px 30px #00000030; animation: ffd-window 8s ease-in-out infinite alternate; }
.scn-flowers-for-dora .dora { position:absolute; bottom:20%; left:40%; width:28px; height:75px; background: linear-gradient(180deg, #d4a080 0%, #b08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ffd-dora 5s ease-in-out infinite; }
.scn-flowers-for-dora .jip { position:absolute; bottom:22%; left:55%; width:20px; height:25px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; animation: ffd-jip 3s ease-in-out infinite; }
.scn-flowers-for-dora .flowers-fore { position:absolute; bottom:30%; left:45%; width:30px; height:30px; background: radial-gradient(circle at 30% 40%, #f0a0b0 0%, #d08090 40%, #b06070 100%); border-radius: 50%; box-shadow: 0 0 20px #f0a0b060; animation: ffd-flowers 4s ease-in-out infinite alternate; }
.scn-flowers-for-dora .flowers-back { position:absolute; bottom:35%; left:35%; width:25px; height:25px; background: radial-gradient(circle at 40% 50%, #f0c080 0%, #d0a060 40%, #b08040 100%); border-radius: 50%; box-shadow: 0 0 15px #f0c08060; animation: ffd-flowers 4s ease-in-out infinite alternate-reverse; }
.scn-flowers-for-dora .table-small { position:absolute; bottom:18%; left:38%; width:50px; height:8px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 4px; box-shadow: 0 4px 10px #00000040; }
.scn-flowers-for-dora .shadow-soft { position:absolute; bottom:20%; left:30%; width:120px; height:40px; background: radial-gradient(ellipse, #00000020 0%, transparent 70%); animation: ffd-shadow 6s ease-in-out infinite alternate; }
@keyframes ffd-window { 0% { opacity:0.7; box-shadow: inset 0 0 30px #fff, 0 8px 30px #00000030 } 50% { opacity:1; box-shadow: inset 0 0 60px #fff, 0 8px 40px #00000050 } 100% { opacity:0.8; box-shadow: inset 0 0 40px #fff, 0 8px 30px #00000040 } }
@keyframes ffd-dora { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ffd-jip { 0% { transform: translateY(0) scaleY(1) } 30% { transform: translateY(-1px) scaleY(1.1) } 60% { transform: translateY(0) scaleY(1) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ffd-flowers { 0% { transform: scale(1) rotate(0deg); opacity:0.8 } 50% { transform: scale(1.1) rotate(10deg); opacity:1 } 100% { transform: scale(1) rotate(0deg); opacity:0.9 } }
@keyframes ffd-shadow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.2) translateX(5px) } 100% { transform: scaleX(1) translateX(0) } }

.scn-flowers-and-carriage {
  background: linear-gradient(180deg, #fcf5e8 0%, #eee0c8 50%, #d8c8a8 100%), radial-gradient(circle at 30% 40%, #fff8e0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-flowers-and-carriage .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8d8f0 0%, #d8e8f8 70%, transparent 100%); animation: fc-sky 20s ease-in-out infinite alternate; }
.scn-flowers-and-carriage .lawn { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8ab06a 0%, #6a8a4a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; animation: fc-lawn 15s ease-in-out infinite alternate; }
.scn-flowers-and-carriage .carriage { position:absolute; bottom:30%; left:20%; width:120px; height:70px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 10px 30px #00000050; animation: fc-carriage 8s ease-in-out infinite; }
.scn-flowers-and-carriage .figure-spenlow { position:absolute; bottom:35%; left:45%; width:30px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fc-figure 5s ease-in-out infinite; }
.scn-flowers-and-carriage .figure-dora { position:absolute; bottom:35%; left:55%; width:26px; height:70px; background: linear-gradient(180deg, #d4a080 0%, #b08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fc-figure 5s ease-in-out infinite reverse; }
.scn-flowers-and-carriage .figure-mills { position:absolute; bottom:33%; right:20%; width:24px; height:68px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fc-figure 6s ease-in-out infinite; }
.scn-flowers-and-carriage .flowers-cluster { position:absolute; bottom:40%; left:50%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #f0a0b0 0%, #d08090 40%, #b06070 100%); border-radius: 50%; box-shadow: 0 0 25px #f0a0b080; animation: fc-flowers 4s ease-in-out infinite alternate; }
.scn-flowers-and-carriage .fence { position:absolute; bottom:40%; left:0; right:0; height:15px; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 8px, transparent 8px, transparent 20px); animation: fc-fence 10s linear infinite; }
@keyframes fc-sky { 0% { opacity:0.7; background: linear-gradient(180deg, #b0d0e8 0%, #d0e0f0 70%, transparent 100%) } 50% { opacity:1; background: linear-gradient(180deg, #c0e0f8 0%, #e0f0ff 70%, transparent 100%) } 100% { opacity:0.8; background: linear-gradient(180deg, #b0d0e8 0%, #d0e0f0 70%, transparent 100%) } }
@keyframes fc-lawn { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fc-carriage { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fc-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fc-flowers { 0% { transform: scale(1) rotate(0deg); opacity:0.8 } 50% { transform: scale(1.15) rotate(15deg); opacity:1 } 100% { transform: scale(1) rotate(0deg); opacity:0.9 } }
@keyframes fc-fence { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }

/* separate-lodgings-plan */
.scn-separate-lodgings-plan {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 40%, #d4bfa0 100%),
    radial-gradient(ellipse at 50% 60%, #f5e6d0 0%, transparent 70%);
}
.scn-separate-lodgings-plan .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0ddc4 0%, #dcc8aa 100%); }
.scn-separate-lodgings-plan .window-frame { position:absolute; top:8%; left:35%; width:30%; height:40%; border:6px solid #8b6f4e; border-radius: 4px; background: transparent; box-shadow: inset 0 0 0 3px #a08462; }
.scn-separate-lodgings-plan .window-sky { position:absolute; top:8%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #1a2a4a 0%, #2a4a6a 50%, #3a5a7a 100%); animation: slp-sky 20s ease-in-out infinite alternate; }
.scn-separate-lodgings-plan .curtain-left { position:absolute; top:8%; left:35%; width:8%; height:40%; background: linear-gradient(90deg, #b0906a 0%, #c8a880 50%, #b0906a 100%); border-radius: 0 6px 6px 0; animation: slp-curtain 8s ease-in-out infinite alternate; }
.scn-separate-lodgings-plan .curtain-right { position:absolute; top:8%; right:35%; width:8%; height:40%; background: linear-gradient(90deg, #b0906a 0%, #c8a880 50%, #b0906a 100%); border-radius: 6px 0 0 6px; animation: slp-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-separate-lodgings-plan .table { position:absolute; bottom:18%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #a0805c 0%, #8a6e4a 50%, #7a5e3a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-separate-lodgings-plan .chair-left { position:absolute; bottom:8%; left:20%; width:16%; height:18%; background: linear-gradient(180deg, #6a503a 0%, #4a3828 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; animation: slp-chair 6s ease-in-out infinite; }
.scn-separate-lodgings-plan .chair-right { position:absolute; bottom:8%; right:20%; width:16%; height:18%; background: linear-gradient(180deg, #6a503a 0%, #4a3828 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; animation: slp-chair 6s ease-in-out infinite reverse; }
.scn-separate-lodgings-plan .lamp-glow { position:absolute; bottom:30%; left:48%; width:4%; height:4%; background: radial-gradient(circle, #ffd080 0%, #e8a040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(232,160,64,.5), 0 0 80px 40px rgba(232,160,64,.2); animation: slp-lampglow 3s ease-in-out infinite alternate; }
.scn-separate-lodgings-plan .lamp-body { position:absolute; bottom:28%; left:48%; width:2%; height:6%; background: linear-gradient(180deg, #c08850 0%, #a07040 100%); border-radius: 4px 4px 2px 2px; transform: translateX(-50%); }
@keyframes slp-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes slp-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }
@keyframes slp-chair { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 75% { transform: translateY(2px) rotate(-1deg) } }
@keyframes slp-lampglow { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.85; transform: scale(0.95) } }

/* wild-place-instinct */
.scn-wild-place-instinct {
  background: 
    linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 40%, #4a5a4a 100%),
    radial-gradient(ellipse at 50% 0%, #9aaa9a 0%, transparent 70%);
}
.scn-wild-place-instinct .overcast-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0b8b0 0%, #889888 50%, #6a7a6a 100%); animation: wpi-sky 25s ease-in-out infinite alternate; }
.scn-wild-place-instinct .distant-horizon { position:absolute; bottom:50%; left:0; right:0; height:10%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; }
.scn-wild-place-instinct .dunes { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 50%, #2a3a1a 100%); border-radius: 70% 30% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: wpi-dunes 15s ease-in-out infinite alternate; }
.scn-wild-place-instinct .grass-left { position:absolute; bottom:18%; left:10%; width:8%; height:20%; background: linear-gradient(180deg, #3a5a2a 0%, #1a2a0a 100%); border-radius: 40% 60% 20% 80% / 60% 40% 80% 20%; animation: wpi-grass 4s ease-in-out infinite; }
.scn-wild-place-instinct .grass-right { position:absolute; bottom:22%; right:15%; width:6%; height:16%; background: linear-gradient(180deg, #3a5a2a 0%, #1a2a0a 100%); border-radius: 60% 40% 80% 20% / 40% 60% 20% 80%; animation: wpi-grass 4s ease-in-out infinite reverse; }
.scn-wild-place-instinct .figure-davy { position:absolute; bottom:24%; left:30%; width:10%; height:28%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wpi-walk 8s ease-in-out infinite; }
.scn-wild-place-instinct .figure-steerforth { position:absolute; bottom:24%; right:30%; width:12%; height:32%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wpi-walk 8s ease-in-out infinite reverse; }
@keyframes wpi-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes wpi-dunes { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(0.98) } }
@keyframes wpi-grass { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes wpi-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(0deg) } 75% { transform: translateX(8px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }

/* ham-grinning */
.scn-ham-grinning {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-ham-grinning .dim-wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-ham-grinning .fireplace { position:absolute; bottom:10%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); border: 4px solid #5a4a3a; }
.scn-ham-grinning .fire-glow { position:absolute; bottom:20%; left:40%; width:20%; height:20%; background: radial-gradient(circle, #ff8040 0%, #e06020 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,128,64,.4); animation: hg-fire 2s ease-in-out infinite alternate; }
.scn-ham-grinning .armchair { position:absolute; bottom:5%; left:20%; width:25%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-ham-grinning .ham-figure { position:absolute; bottom:8%; left:28%; width:14%; height:30%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hg-bob 4s ease-in-out infinite; }
.scn-ham-grinning .ham-grin { position:absolute; bottom:30%; left:30%; width:8%; height:4%; background: #c8553d; border-radius: 0 0 50% 50% / 0 0 80% 80%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: hg-grin 3s ease-in-out infinite alternate; }
.scn-ham-grinning .small-table { position:absolute; bottom:5%; right:20%; width:12%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
@keyframes hg-fire { 0% { transform: scale(1) rotate(0deg); opacity:.8 } 50% { transform: scale(1.1) rotate(3deg); opacity:1 } 100% { transform: scale(0.9) rotate(-2deg); opacity:.7 } }
@keyframes hg-bob { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(0deg) } }
@keyframes hg-grin { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.3) scaleY(1.1) } 100% { transform: scaleX(0.9) scaleY(0.9) } }

/* emly-marriage-hopes */
.scn-emly-marriage-hopes {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-emly-marriage-hopes .firelit-wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-emly-marriage-hopes .fireplace-stone { position:absolute; bottom:5%; left:30%; width:40%; height:55%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 15% 15% 5% 5% / 25% 25% 8% 8%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); border: 6px solid #6a5a4a; }
.scn-emly-marriage-hopes .fire-core { position:absolute; bottom:25%; left:42%; width:16%; height:20%; background: radial-gradient(circle, #ffa040 0%, #e06020 40%, #a02000 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,160,64,.6); animation: emh-fire 3s ease-in-out infinite alternate; }
.scn-emly-marriage-hopes .fire-glow-hearth { position:absolute; bottom:15%; left:35%; width:30%; height:15%; background: radial-gradient(ellipse at 50% 0%, #ffa040 0%, transparent 100%); animation: emh-heat 4s ease-in-out infinite alternate; }
.scn-emly-marriage-hopes .figure-old-man { position:absolute; bottom:8%; left:20%; width:14%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: emh-sit 6s ease-in-out infinite; }
.scn-emly-marriage-hopes .figure-emly { position:absolute; bottom:8%; right:22%; width:10%; height:22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: emh-sit 6s ease-in-out infinite reverse; }
.scn-emly-marriage-hopes .shadow-pool { position:absolute; bottom:0; left:10%; width:80%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 100%); animation: emh-shadow 5s ease-in-out infinite alternate; }
.scn-emly-marriage-hopes .warm-haze { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(255,160,64,.1) 0%, transparent 70%); animation: emh-haze 8s ease-in-out infinite alternate; }
@keyframes emh-fire { 0% { transform: scale(1) rotate(0deg); opacity:.8 } 50% { transform: scale(1.08) rotate(2deg); opacity:1 } 100% { transform: scale(0.92) rotate(-2deg); opacity:.7 } }
@keyframes emh-heat { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes emh-sit { 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 emh-shadow { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.8) } 100% { transform: scaleY(1.1) } }
@keyframes emh-haze { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-how-to-break-it {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #3a2a2a 100%),
              radial-gradient(ellipse at 30% 80%, #4a3a3a 0%, transparent 70%);
}
.scn-how-to-break-it .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #2a2a3e, #3a3a4e); border-radius: 0; }
.scn-how-to-break-it .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a1a, #1a0a0a); }
.scn-how-to-break-it .window { position:absolute; top:12%; left:15%; width:30%; height:35%; background: linear-gradient(135deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%); border: 4px solid #2a2a3a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: bt-glow 6s ease-in-out infinite alternate; }
.scn-how-to-break-it .candle { position:absolute; left:20%; bottom:40%; width:8px; height:12px; background: linear-gradient(180deg, #c8a060, #8a6a40); border-radius: 2px; box-shadow: 0 0 20px 6px #c8a060, 0 0 40px 12px rgba(200,160,96,.3); animation: bt-flicker 2s ease-in-out infinite; }
.scn-how-to-break-it .figure { position:absolute; bottom:32%; left:25%; width:28px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bt-bow 5s ease-in-out infinite alternate; }
.scn-how-to-break-it .letter { position:absolute; bottom:26%; left:20%; width:24px; height:18px; background: #3a2a1a; border-radius:2px; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: bt-shake 3s ease-in-out infinite; }
.scn-how-to-break-it .shadow { position:absolute; bottom:32%; left:60%; width:40%; height:40%; background: radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 70%); opacity:.5; animation: bt-fade 8s ease-in-out infinite alternate; }
@keyframes bt-glow { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 0 0 #4a5a6a; } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 15px 5px #4a5a6a; } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 5px 2px #4a5a6a; } }
@keyframes bt-flicker { 0%,100% { opacity:.9; transform: scaleY(1); } 25% { opacity:1; transform: scaleY(1.05); } 50% { opacity:.85; transform: scaleY(.95); } 75% { opacity:1; transform: scaleY(1.02); } }
@keyframes bt-bow { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes bt-shake { 0%,100% { transform:rotate(-15deg) translateX(0); } 25% { transform:rotate(-12deg) translateX(2px); } 50% { transform:rotate(-18deg) translateX(-2px); } 75% { transform:rotate(-14deg) translateX(1px); } }
@keyframes bt-fade { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

.scn-emly-far-away {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4e 30%, #3a2a3a 70%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 0%, #3a3a5e 0%, transparent 80%);
}
.scn-emly-far-away .sky { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2a4e 0%, #4a3a4a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; animation: fa-sky 15s ease-in-out infinite alternate; }
.scn-emly-far-away .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a2a1a, #0a1a0a); }
.scn-emly-far-away .road { position:absolute; bottom:20%; left:10%; width:80%; height:8%; background: linear-gradient(90deg, #2a2a2a, #3a3a3a, #2a2a2a); border-radius: 10px; transform: perspective(200px) rotateX(10deg); animation: fa-road 20s linear infinite; }
.scn-emly-far-away .figure { position:absolute; bottom:25%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-walk 4s ease-in-out infinite; }
.scn-emly-far-away .distant-figure { position:absolute; bottom:25%; right:20%; width:12px; height:24px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.7; animation: fa-distant 8s ease-in-out infinite alternate; }
.scn-emly-far-away .clouds { position:absolute; top:8%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(255,255,255,.08) 0%, transparent 100%); filter: blur(8px); animation: fa-drift 40s linear infinite; }
@keyframes fa-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes fa-road { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }
@keyframes fa-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(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes fa-distant { 0% { transform: scale(1); opacity:.7; } 50% { transform: scale(.9); opacity:.5; } 100% { transform: scale(1.05); opacity:.8; } }
@keyframes fa-drift { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }

.scn-servant-in-hiding {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 80%);
}
.scn-servant-in-hiding .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2e 100%); filter: blur(10px); animation: sh-pulse 12s ease-in-out infinite alternate; }
.scn-servant-in-hiding .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #2a2a3a, #1a1a2a); }
.scn-servant-in-hiding .hiding-bush { position:absolute; bottom:30%; left:20%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 100%, #1a3a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.5); }
.scn-servant-in-hiding .figure-crouch { position:absolute; bottom:28%; left:38%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-crouch 6s ease-in-out infinite; }
.scn-servant-in-hiding .window-light { position:absolute; top:15%; right:15%; width:20%; height:15%; background: radial-gradient(circle, #4a5a4a 0%, #2a3a2a 70%); border: 2px solid #1a2a1a; border-radius: 4px; box-shadow: 0 0 30px 10px rgba(74,90,74,.3); animation: sh-light 4s ease-in-out infinite alternate; }
.scn-servant-in-hiding .shadow-cast { position:absolute; bottom:28%; left:35%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 80%); opacity:.6; animation: sh-shadow 8s ease-in-out infinite alternate; }
.scn-servant-in-hiding .door { position:absolute; bottom:20%; right:10%; width:15%; height:40%; background: linear-gradient(180deg, #3a2a1a, #1a0a0a); border: 2px solid #2a1a0a; border-radius: 1px 1px 0 0; }
@keyframes sh-pulse { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes sh-crouch { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(.98); } }
@keyframes sh-light { 0% { box-shadow: 0 0 20px 5px rgba(74,90,74,.2); opacity:.6; } 50% { box-shadow: 0 0 35px 12px rgba(74,90,74,.4); opacity:1; } 100% { box-shadow: 0 0 25px 8px rgba(74,90,74,.3); opacity:.8; } }
@keyframes sh-shadow { 0% { transform: scale(1) translateX(0); opacity:.4; } 50% { transform: scale(1.2) translateX(5px); opacity:.7; } 100% { transform: scale(.9) translateX(-2px); opacity:.5; } }

.scn-morning-chay {
  background: linear-gradient(180deg, #8a9ab0 0%, #b0a89c 30%, #c8a88a 60%, #a07860 100%),
              radial-gradient(ellipse at 70% 20%, #d0b898 0%, transparent 60%);
}
.scn-morning-chay .dawn-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a7a8a 0%, #8a9ab0 40%, #b0a89c 100%); border-radius: 0 0 50% 50% / 0 0 20% 20%; animation: mc-sky 20s ease-in-out infinite alternate; }
.scn-morning-chay .horizon { position:absolute; bottom:30%; left:0; right:0; height:8%; background: linear-gradient(180deg, #4a5a6a, #3a4a5a); filter: blur(4px); }
.scn-morning-chay .road { position:absolute; bottom:10%; left:5%; width:90%; height:12%; background: linear-gradient(180deg, #5a4a3a, #4a3a2a); border-radius: 0; transform: perspective(300px) rotateX(15deg); animation: mc-road 30s linear infinite; }
.scn-morning-chay .carriage { position:absolute; bottom:20%; left:20%; width:25%; height:18%; background: linear-gradient(135deg, #7a5a3a, #5a3a1a); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: mc-move 12s ease-in-out infinite; }
.scn-morning-chay .horse-left { position:absolute; bottom:15%; left:36%; width:10%; height:14%; background: linear-gradient(180deg, #5a4a3a, #4a3a2a); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mc-trot 2s ease-in-out infinite; }
.scn-morning-chay .horse-right { position:absolute; bottom:15%; left:44%; width:10%; height:14%; background: linear-gradient(180deg, #6a5a4a, #5a4a3a); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mc-trot 2s ease-in-out infinite .5s; }
.scn-morning-chay .driver { position:absolute; bottom:28%; left:22%; width:8%; height:12%; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mc-driver 8s ease-in-out infinite; }
.scn-morning-chay .wheel { position:absolute; bottom:12%; left:28%; width:6%; height:6%; background: radial-gradient(circle, #5a3a1a 20%, #3a2a0a 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 0 2px #3a2a0a; animation: mc-spin 3s linear infinite; }
@keyframes mc-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes mc-road { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }
@keyframes mc-move { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10px) translateY(-2px); } 50% { transform: translateX(20px) translateY(0); } 75% { transform: translateX(30px) translateY(-2px); } 100% { transform: translateX(40px) translateY(0); } }
@keyframes mc-trot { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-4px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-5deg) translateY(-4px); } }
@keyframes mc-driver { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mc-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.scn-micawber-letter-farewell {
  background: 
    linear-gradient(180deg, #1c1820 0%, #2a2230 40%, #1e1a24 100%),
    radial-gradient(ellipse at 30% 50%, #3a2e3e 0%, transparent 70%);
}
.scn-micawber-letter-farewell .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2c2430 0%, #1c1820 100%); }
.scn-micawber-letter-farewell .desk { position:absolute; bottom:20%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #4a3830 0%, #2e221c 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-micawber-letter-farewell .paper { position:absolute; bottom:28%; left:35%; width:22%; height:18%; background: #dcc8a8; border-radius: 2px; transform: rotate(-4deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: mw-paper 8s ease-in-out infinite alternate; }
.scn-micawber-letter-farewell .hand { position:absolute; bottom:31%; left:45%; width:14px; height:20px; background: #b29080; border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: 70% 100%; animation: mw-write 3s ease-in-out infinite; }
.scn-micawber-letter-farewell .candle { position:absolute; bottom:22%; left:60%; width:10px; height:40px; background: linear-gradient(180deg, #f0d0a0 0%, #c8a870 30%, #8a6a50 100%); border-radius: 4px 4px 2px 2px; }
.scn-micawber-letter-farewell .candle-glow { position:absolute; bottom:42%; left:60%; width:20px; height:20px; background: radial-gradient(circle, #f0c060 0%, #d09030 40%, transparent 70%); border-radius:50%; transform: translate(-50%, -50%); animation: mw-glow 2.5s ease-in-out infinite alternate; box-shadow: 0 0 30px 8px #d09030; }
.scn-micawber-letter-farewell .window { position:absolute; top:12%; right:15%; width:25%; height:35%; background: #2c3840; border: 6px solid #3a3028; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-micawber-letter-farewell .dry-river { position:absolute; bottom:32%; left:10%; width:80%; height:8%; background: linear-gradient(180deg, #5a5040 0%, #3a3428 100%); border-radius: 30%; filter: blur(2px); opacity:.5; animation: mw-river 12s ease-in-out infinite alternate; }
@keyframes mw-paper { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes mw-write { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(8px,-6px) rotate(10deg); } }
@keyframes mw-glow { 0% { opacity:.7; transform: translate(-50%,-50%) scale(1); } 100% { opacity:1; transform: translate(-50%,-50%) scale(1.2); } }
@keyframes mw-river { 0% { opacity:.3; width:80%; } 50% { opacity:.6; width:70%; } 100% { opacity:.3; width:80%; } }

.scn-miss-shepherd-love {
  background: 
    linear-gradient(180deg, #bfb8a8 0%, #d4cfc0 40%, #ece8d8 100%),
    radial-gradient(ellipse at 70% 30%, #e8e0d0 0%, transparent 60%);
}
.scn-miss-shepherd-love .overcast-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8b4a8 0%, #d0ccc0 100%); }
.scn-miss-shepherd-love .room-wall { position:absolute; top:30%; left:0; right:0; bottom:0; background: linear-gradient(180deg, #d8d0c0 0%, #bcb09c 100%); }
.scn-miss-shepherd-love .window-frame { position:absolute; top:10%; left:60%; width:30%; height:50%; border: 8px solid #9a8a7a; border-radius: 6px; background: #c0b8a8; }
.scn-miss-shepherd-love .boy-figure { position:absolute; bottom:18%; left:25%; width:24px; height:48px; background: linear-gradient(180deg, #2c2a28 0%, #1a1816 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ms-boy 6s ease-in-out infinite; }
.scn-miss-shepherd-love .miss-shepherd { position:absolute; bottom:20%; left:55%; width:22px; height:44px; background: linear-gradient(180deg, #c8b8a0 0%, #a0927e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scaleX(-1); animation: ms-girl 7s ease-in-out infinite alternate; }
.scn-miss-shepherd-love .heart { position:absolute; bottom:30%; left:40%; width:12px; height:12px; background: #d87060; border-radius: 50% 50% 0 0; transform: rotate(45deg); opacity:.6; animation: ms-heart 4s ease-in-out infinite; }
.scn-miss-shepherd-love .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.2); }
@keyframes ms-boy { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(10px) translateY(-4px) rotate(4deg); } 60% { transform: translateX(-5px) translateY(-2px) rotate(-2deg); } }
@keyframes ms-girl { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-6px); } }
@keyframes ms-heart { 0%,100% { transform: rotate(45deg) scale(1); opacity:.4; } 50% { transform: rotate(45deg) scale(1.4); opacity:.8; } }

.scn-dance-with-miss-larkins {
  background: 
    linear-gradient(180deg, #f0ead8 0%, #e8dcc8 40%, #d8c8b0 100%),
    radial-gradient(ellipse at 50% 20%, #faf0e0 0%, transparent 60%);
}
.scn-dance-with-miss-larkins .ballroom-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8a08a 0%, #8a7460 100%); border-radius: 40% 40% 0 0; }
.scn-dance-with-miss-larkins .chandelier { position:absolute; top:5%; left:50%; width:40px; height:30px; transform: translateX(-50%); background: radial-gradient(circle at 50% 30%, #f0d8a0 0%, #c8a860 60%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 40px 10px #e8c080; animation: dl-chandelier 3s ease-in-out infinite alternate; }
.scn-dance-with-miss-larkins .partner1 { position:absolute; bottom:25%; left:30%; width:20px; height:42px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e24 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: dl-dance1 2s ease-in-out infinite; }
.scn-dance-with-miss-larkins .partner2 { position:absolute; bottom:25%; left:45%; width:20px; height:42px; background: linear-gradient(180deg, #c8b0a0 0%, #8a7a6a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: dl-dance2 2.5s ease-in-out infinite alternate; }
.scn-dance-with-miss-larkins .partner3 { position:absolute; bottom:25%; left:60%; width:20px; height:42px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: dl-dance3 2.2s ease-in-out infinite; }
.scn-dance-with-miss-larkins .confetti { position:absolute; top:20%; left:10%; width:100%; height:80%; background: repeating-linear-gradient(45deg, transparent, transparent 10px, #f0c080 10px, #f0c080 12px, transparent 12px, transparent 22px); opacity:.3; animation: dl-confetti 8s linear infinite; }
.scn-dance-with-miss-larkins .spotlight { position:absolute; top:0; left:30%; width:40%; height:70%; background: radial-gradient(ellipse at 50% 100%, rgba(255,235,200,.3) 0%, transparent 70%); animation: dl-spotlight 4s ease-in-out infinite alternate; }
@keyframes dl-chandelier { 0%,100% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes dl-dance1 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(5deg); } 50% { transform: translateX(-6px) rotate(-5deg); } 75% { transform: translateX(3px) rotate(2deg); } }
@keyframes dl-dance2 { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-8px) translateY(-4px) rotate(-8deg); } }
@keyframes dl-dance3 { 0%,100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(0.95); } }
@keyframes dl-confetti { 0% { background-position: 0 0; } 100% { background-position: 200px 200px; } }
@keyframes dl-spotlight { 0% { opacity:.5; transform: scaleX(1); } 100% { opacity:.8; transform: scaleX(1.2); } }

.scn-flower-treasure {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #f0e8d8 50%, #d8c8b0 100%),
    radial-gradient(ellipse at 60% 20%, #faf0e0 0%, transparent 70%);
}
.scn-flower-treasure .bright-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%); }
.scn-flower-treasure .window-light { position:absolute; top:10%; right:20%; width:30%; height:40%; background: linear-gradient(135deg, #fff8e8 0%, #e8dcc0 100%); border: 6px solid #b8a88a; border-radius: 6px; box-shadow: inset 0 0 30px rgba(255,240,200,.6); animation: ft-light 5s ease-in-out infinite alternate; }
.scn-flower-treasure .boy-hand { position:absolute; bottom:25%; left:35%; width:16px; height:28px; background: #c8b098; border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: 70% 100%; animation: ft-hand1 3s ease-in-out infinite; }
.scn-flower-treasure .larkins-hand { position:absolute; bottom:28%; left:50%; width:16px; height:28px; background: #d8c4b0; border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform: scaleX(-1); animation: ft-hand2 3.5s ease-in-out infinite alternate; }
.scn-flower-treasure .flower { position:absolute; bottom:32%; left:45%; width:12px; height:18px; background: radial-gradient(circle at 50% 100%, #e8a870 0%, #c88450 60%); border-radius: 50% 50% 30% 30%; animation: ft-flower 4s ease-in-out infinite; }
.scn-flower-treasure .flower-glow { position:absolute; bottom:30%; left:44%; width:30px; height:30px; background: radial-gradient(circle, rgba(232,168,112,.4) 0%, transparent 60%); border-radius:50%; animation: ft-glow 3s ease-in-out infinite alternate; }
.scn-flower-treasure .shadow-figure { position:absolute; bottom:15%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #2e221c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; opacity:.4; transform: translateY(10px); animation: ft-shadow 6s ease-in-out infinite; }
@keyframes ft-light { 0%,100% { opacity:.7; } 50% { opacity:1; } }
@keyframes ft-hand1 { 0%,100% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(8px,-4px) rotate(8deg); } 60% { transform: translate(4px,-2px) rotate(4deg); } }
@keyframes ft-hand2 { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-6px); } }
@keyframes ft-flower { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(10deg); } }
@keyframes ft-glow { 0% { transform: scale(0.8); opacity:.5; } 100% { transform: scale(1.4); opacity:.8; } }
@keyframes ft-shadow { 0%,100% { transform: translateY(10px) scaleY(1); } 50% { transform: translateY(12px) scaleY(0.9); } }

.scn-aunt-settles-affairs { background: linear-gradient(180deg, #b8956a 0%, #8a6e4e 30%, #5a3e2a 70%, #3a2a1a 100%), radial-gradient(ellipse at 50% 30%, #d4b88a 0%, transparent 60%); }
.scn-aunt-settles-affairs .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #c4a87a 0%, #9a7a5a 50%, #6a4e3a 100%); }
.scn-aunt-settles-affairs .wall-panel { position:absolute; top:6%; left:8%; right:8%; bottom:40%; background: linear-gradient(135deg, #b89a6a 0%, #8a6e44 50%, #6a4e2a 100%); border:2px solid #5a3e2a; border-radius:2% 2% 10% 10%; box-shadow: inset 0 0 40px rgba(0,0,0,.15); }
.scn-aunt-settles-affairs .desk { position:absolute; bottom:18%; left:15%; right:35%; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.3); }
.scn-aunt-settles-affairs .chair { position:absolute; bottom:16%; left:60%; width:22%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:30% 30% 20% 20% / 50% 50% 20% 20%; box-shadow: -4px 0 12px rgba(0,0,0,.4); transform-origin: bottom center; animation: asa-chair 8s ease-in-out infinite alternate; }
.scn-aunt-settles-affairs .figure-aunt { position:absolute; bottom:22%; left:42%; width:12%; height:32%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: -2px 0 8px rgba(0,0,0,.3); animation: asa-aunt 6s ease-in-out infinite; }
.scn-aunt-settles-affairs .figure-dick { position:absolute; bottom:22%; left:22%; width:10%; height:34%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; box-shadow: 2px 0 8px rgba(0,0,0,.3); animation: asa-dick 7s ease-in-out infinite; }
.scn-aunt-settles-affairs .paper-stack { position:absolute; bottom:22%; left:28%; width:8%; height:4%; background: linear-gradient(135deg, #e8dcc8 0%, #c8bca0 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: asa-paper 5s ease-in-out infinite alternate; }
.scn-aunt-settles-affairs .candle-glow { position:absolute; bottom:26%; left:18%; width:3%; height:8%; background: radial-gradient(circle, #ffd080 0%, #e8a040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,208,128,.5), 0 0 60px 20px rgba(255,160,64,.2); animation: asa-candle 3s ease-in-out infinite alternate; }
.scn-aunt-settles-affairs .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(255,220,180,.08) 0%, transparent 50%); animation: asa-dust 12s ease-in-out infinite alternate; }
@keyframes asa-chair { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1.5deg) } 100% { transform: rotate(-.5deg) } }
@keyframes asa-aunt { 0% { transform: translateY(0) rotate(-.5deg) } 50% { transform: translateY(-2px) rotate(.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes asa-dick { 0% { transform: translateY(0) rotate(.5deg) } 50% { transform: translateY(-1px) rotate(-.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes asa-paper { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(.98) } }
@keyframes asa-candle { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes asa-dust { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-traddles-recovers-aunts-money { background: linear-gradient(180deg, #a08060 0%, #7a5e3e 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 20%, #c8a87a 0%, transparent 60%); }
.scn-traddles-recovers-aunts-money .study-wall { position:absolute; inset:0; background: linear-gradient(180deg, #b89868 0%, #8a6e4a 50%, #5a4230 100%); }
.scn-traddles-recovers-aunts-money .table { position:absolute; bottom:15%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #5a3e28 0%, #3a2a1a 100%); border-radius:6% 6% 0 0; box-shadow: 0 -8px 24px rgba(0,0,0,.4); }
.scn-traddles-recovers-aunts-money .figure-traddles { position:absolute; bottom:22%; left:55%; width:11%; height:35%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%); border-radius:45% 45% 30% 30% / 55% 55% 30% 30%; box-shadow: -2px 0 8px rgba(0,0,0,.3); animation: trm-traddles 6s ease-in-out infinite; }
.scn-traddles-recovers-aunts-money .figure-aunt2 { position:absolute; bottom:22%; left:30%; width:12%; height:32%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 2px 0 8px rgba(0,0,0,.3); animation: trm-aunt 7s ease-in-out infinite; }
.scn-traddles-recovers-aunts-money .money-pouch { position:absolute; bottom:20%; left:45%; width:5%; height:6%; background: radial-gradient(circle, #6a4a2a 0%, #3a2a1a 100%); border-radius:50%; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: trm-pouch 4s ease-in-out infinite alternate; }
.scn-traddles-recovers-aunts-money .document { position:absolute; bottom:22%; left:42%; width:8%; height:3%; background: linear-gradient(135deg, #e8dcc8 0%, #c8bca0 100%); border-radius:2px; box-shadow: 0 1px 4px rgba(0,0,0,.2); animation: trm-doc 5s ease-in-out infinite alternate; }
.scn-traddles-recovers-aunts-money .lamp-light { position:absolute; inset:0; background: radial-gradient(circle at 50% 40%, rgba(255,200,150,.15) 0%, transparent 60%); animation: trm-lamp 8s ease-in-out infinite alternate; }
.scn-traddles-recovers-aunts-money .shadow-warm { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.3) 100%); }
@keyframes trm-traddles { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(.5deg) } 100% { transform: translateY(0) rotate(-.3deg) } }
@keyframes trm-aunt { 0% { transform: translateY(0) rotate(.3deg) } 50% { transform: translateY(-1px) rotate(-.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes trm-pouch { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-1px) } 100% { transform: scale(.98) translateY(0) } }
@keyframes trm-doc { 0% { opacity:.7; transform: rotate(-2deg) } 50% { opacity:1; transform: rotate(0) } 100% { opacity:.8; transform: rotate(2deg) } }
@keyframes trm-lamp { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-approaching-emigrant-ship { background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 30%, #3a4a5a 60%, #4a5a6a 100%), radial-gradient(ellipse at 50% 0%, #3a4a5a 0%, transparent 70%); }
.scn-approaching-emigrant-ship .sky-storm { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 40%, #2a3a4a 80%, #3a4a5a 100%); animation: aes-sky 15s ease-in-out infinite alternate; }
.scn-approaching-emigrant-ship .sea-dark { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 40%, #0a1a2a 100%); border-radius: 30% 70% 0 0 / 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.5); }
.scn-approaching-emigrant-ship .ship-hull { position:absolute; bottom:38%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: aes-hull 12s ease-in-out infinite; }
.scn-approaching-emigrant-ship .ship-mast { position:absolute; bottom:50%; left:48%; width:2%; height:30%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:2px; box-shadow: 0 0 6px rgba(0,0,0,.4); animation: aes-mast 14s ease-in-out infinite alternate; }
.scn-approaching-emigrant-ship .ship-flag { position:absolute; bottom:68%; left:50%; width:6%; height:4%; background: linear-gradient(135deg, #3a1a1a 0%, #5a2a2a 100%); border-radius:0 60% 60% 0 / 0 80% 80% 0; clip-path: polygon(0 0, 100% 30%, 100% 70%, 0 100%); animation: aes-flag 6s ease-in-out infinite alternate; }
.scn-approaching-emigrant-ship .wave-front { position:absolute; bottom:5%; left:-10%; right:-10%; height:15%; background: linear-gradient(180deg, rgba(42,58,74,.6) 0%, rgba(26,42,58,.4) 50%, transparent 100%); border-radius:50%; filter: blur(4px); animation: aes-wave-f 6s ease-in-out infinite alternate; }
.scn-approaching-emigrant-ship .wave-back { position:absolute; bottom:15%; left:-5%; right:-5%; height:10%; background: linear-gradient(180deg, rgba(58,74,90,.5) 0%, rgba(42,58,74,.3) 50%, transparent 100%); border-radius:50%; filter: blur(6px); animation: aes-wave-b 8s ease-in-out infinite alternate-reverse; }
.scn-approaching-emigrant-ship .cloud-veil { position:absolute; top:5%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(42,58,74,.3) 0%, transparent 100%); border-radius:40% 60% 0 0; filter: blur(8px); animation: aes-cloud 20s ease-in-out infinite alternate; }
.scn-approaching-emigrant-ship .spray-mist { position:absolute; bottom:40%; left:10%; right:10%; height:6%; background: radial-gradient(ellipse at 50% 100%, rgba(90,110,130,.15) 0%, transparent 70%); filter: blur(4px); animation: aes-spray 5s ease-in-out infinite alternate; }
@keyframes aes-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes aes-hull { 0% { transform: translateY(0) rotate(-.5deg) } 50% { transform: translateY(2px) rotate(.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes aes-mast { 0% { transform: rotate(-.5deg) } 50% { transform: rotate(.5deg) } 100% { transform: rotate(0) } }
@keyframes aes-flag { 0% { transform: rotate(0) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.1) } 100% { transform: rotate(-3deg) scaleX(.95) } }
@keyframes aes-wave-f { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-10px) scaleY(1.1) } 100% { transform: translateX(10px) scaleY(.95) } }
@keyframes aes-wave-b { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(15px) scaleY(1.05) } 100% { transform: translateX(-15px) scaleY(.98) } }
@keyframes aes-cloud { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-20px) scaleY(1.1) } 100% { transform: translateX(30px) scaleY(.95) } }
@keyframes aes-spray { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.2) } 100% { opacity:.4; transform: scaleY(.9) } }

.scn-peggotty-visits-david { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%); }
.scn-peggotty-visits-david .room-dim { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a0a 100%); }
.scn-peggotty-visits-david .bed-frame { position:absolute; bottom:10%; left:5%; right:40%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: 0 0 30px rgba(0,0,0,.5); animation: pvd-bed 10s ease-in-out infinite alternate; }
.scn-peggotty-visits-david .figure-peggotty { position:absolute; bottom:18%; left:50%; width:13%; height:36%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:45% 45% 30% 30% / 55% 55% 30% 30%; box-shadow: -2px 0 10px rgba(0,0,0,.4); animation: pvd-peggotty 7s ease-in-out infinite; }
.scn-peggotty-visits-david .figure-david { position:absolute; bottom:16%; left:30%; width:10%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 2px 0 8px rgba(0,0,0,.3); animation: pvd-david 6s ease-in-out infinite; }
.scn-peggotty-visits-david .hearth-glow { position:absolute; bottom:5%; left:20%; right:20%; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(200,120,60,.25) 0%, transparent 70%); animation: pvd-hearth 4s ease-in-out infinite alternate; }
.scn-peggotty-visits-david .chair-shadow { position:absolute; bottom:12%; left:62%; width:15%; height:30%; background: linear-gradient(180deg, rgba(30,20,10,.8) 0%, transparent 100%); border-radius:30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 0 20px rgba(0,0,0,.3); animation: pvd-chair 9s ease-in-out infinite alternate; }
.scn-peggotty-visits-david .warm-haze { position:absolute; inset:0; background: radial-gradient(circle at 40% 60%, rgba(200,160,100,.08) 0%, transparent 60%); animation: pvd-haze 8s ease-in-out infinite alternate; }
@keyframes pvd-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pvd-peggotty { 0% { transform: translateY(0) rotate(-.5deg) } 50% { transform: translateY(-2px) rotate(.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pvd-david { 0% { transform: translateY(0) rotate(.3deg) } 50% { transform: translateY(-1px) rotate(-.3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pvd-hearth { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.15) } 100% { opacity:.5; transform: scale(.95) } }
@keyframes pvd-chair { 0% { transform: rotate(0) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(1deg) } }
@keyframes pvd-haze { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* idle-hands-discourse – calm bright interior, study scene */
.scn-idle-hands-discourse {
  background: linear-gradient(180deg, #f2e6d0 0%, #d9c8a8 40%, #c4b090 100%),
              radial-gradient(ellipse at 30% 20%, #fff5e0 0%, transparent 60%);
}
.scn-idle-hands-discourse .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f2e6d0 0%, #e0d4b8 100%);
  animation: ihd-wall 20s ease-in-out infinite alternate;
}
.scn-idle-hands-discourse .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #b09070 0%, #8a6e50 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
  animation: ihd-desk 15s ease-in-out infinite alternate;
}
.scn-idle-hands-discourse .book {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #9c7a5e 0%, #7a5a3a 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: ihd-book 6s ease-in-out infinite;
}
.scn-idle-hands-discourse .figure-silhouette {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ihd-figure 4s ease-in-out infinite;
}
.scn-idle-hands-discourse .lamp-glow {
  position: absolute; bottom: 45%; left: 70%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffeca0 0%, #e0c070 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,236,160,0.5);
  animation: ihd-lamp 3s ease-in-out infinite alternate;
}
.scn-idle-hands-discourse .drapes-left {
  position: absolute; top: 0; left: 0; bottom: 30%; width: 15%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 100%);
  border-radius: 0 20% 20% 0;
  animation: ihd-drape 12s ease-in-out infinite alternate;
}
.scn-idle-hands-discourse .drapes-right {
  position: absolute; top: 0; right: 0; bottom: 30%; width: 15%;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 0 0 20%;
  animation: ihd-drape 12s ease-in-out infinite alternate-reverse;
}
@keyframes ihd-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 } }
@keyframes ihd-desk { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.01) translateY(-1px); } 100% { transform: scale(1) translateY(0); } }
@keyframes ihd-book { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes ihd-figure { 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 ihd-lamp { 0% { opacity:0.7; box-shadow:0 0 30px 10px rgba(255,236,160,0.4); } 100% { opacity:1; box-shadow:0 0 50px 20px rgba(255,236,160,0.6); } }
@keyframes ihd-drape { 0% { transform: translateX(0); } 100% { transform: translateX(5px); } }

/* agnes-like-mother – warm bright interior, domestic */
.scn-agnes-like-mother {
  background: linear-gradient(180deg, #f7e8c8 0%, #e8d4a0 40%, #d0b880 100%),
              radial-gradient(circle at 40% 60%, #ffe8b0 0%, transparent 50%);
}
.scn-agnes-like-mother .bg-room {
  position: absolute; inset: 0 0 30% 0;
  background: radial-gradient(ellipse at 60% 20%, #fce8c0 0%, #dcc8a0 100%);
  animation: alm-room 15s ease-in-out infinite alternate;
}
.scn-agnes-like-mother .window-frame {
  position: absolute; top: 10%; left: 20%; right: 20%; bottom: 45%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border: 6px solid #8a7050;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,220,150,0.3);
  animation: alm-frame 12s ease-in-out infinite alternate;
}
.scn-agnes-like-mother .curtains {
  position: absolute; top: 10%; left: 18%; right: 18%; bottom: 45%;
  background: linear-gradient(180deg, #b89878 0%, #9a7a5a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  opacity: 0.6;
  animation: alm-curtain 8s ease-in-out infinite alternate;
}
.scn-agnes-like-mother .agnes-figure {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #c09070 0%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: alm-agnes 5s ease-in-out infinite;
}
.scn-agnes-like-mother .chair {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%);
  animation: alm-chair 7s ease-in-out infinite alternate;
}
.scn-agnes-like-mother .hearth-glow {
  position: absolute; bottom: 10%; left: 15%; width: 40px; height: 30px;
  background: radial-gradient(circle at 50% 100%, #ffb040 0%, #d08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,176,64,0.4);
  animation: alm-hearth 3s ease-in-out infinite alternate;
}
.scn-agnes-like-mother .rug {
  position: absolute; bottom: 12%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(90deg, #80584a 0%, #a0705a 25%, #80584a 50%, #a0705a 75%, #80584a 100%);
  border-radius: 30% 30% 0 0;
  opacity: 0.8;
  animation: alm-rug 10s ease-in-out infinite alternate;
}
@keyframes alm-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 } }
@keyframes alm-frame { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(0.995); } }
@keyframes alm-curtain { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes alm-agnes { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes alm-chair { 0% { transform: translateX(-50%) translateY(0); } 100% { transform: translateX(-50%) translateY(-2px); } }
@keyframes alm-hearth { 0% { opacity:0.6; box-shadow:0 0 40px 15px rgba(255,176,64,0.3); } 100% { opacity:1; box-shadow:0 0 80px 30px rgba(255,176,64,0.5); } }
@keyframes alm-rug { 0% { opacity:0.7; } 100% { opacity:0.9; } }

/* maldon-returns-request – calm bright interior, doorway scene */
.scn-maldon-returns-request {
  background: linear-gradient(180deg, #e0d4c0 0%, #c8b8a0 40%, #b0a090 100%),
              radial-gradient(circle at 50% 10%, #fff8e8 0%, transparent 70%);
}
.scn-maldon-returns-request .doorway {
  position: absolute; top: 10%; left: 30%; right: 30%; bottom: 0;
  background: linear-gradient(180deg, #1a120e 0%, #2a1e16 100%);
  border-radius: 5% 5% 0 0;
  animation: mrr-doorway 20s ease-in-out infinite alternate;
}
.scn-maldon-returns-request .door-jamb {
  position: absolute; top: 10%; left: 28%; right: 28%; bottom: 0;
  border: 4px solid #5a4a3a;
  border-bottom: none;
  border-radius: 3% 3% 0 0;
  animation: mrr-jamb 15s ease-in-out infinite alternate;
}
.scn-maldon-returns-request .uri-head {
  position: absolute; bottom: 35%; left: 48%; width: 22px; height: 28px;
  background: linear-gradient(180deg, #c87050 0%, #a05030 100%); /* desaturated red – terracotta */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: mrr-head 4s ease-in-out infinite alternate;
}
.scn-maldon-returns-request .uri-hand {
  position: absolute; bottom: 30%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c07050 0%, #a05030 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: top center;
  animation: mrr-hand 3s ease-in-out infinite;
}
.scn-maldon-returns-request .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.2) 100%);
  animation: mrr-shadow 12s ease-in-out infinite alternate;
}
.scn-maldon-returns-request .light-shaft {
  position: absolute; top: 0; left: 35%; right: 35%; bottom: 0;
  background: linear-gradient(180deg, rgba(255,255,200,0.1) 0%, rgba(255,255,200,0.05) 100%);
  clip-path: polygon(60% 0, 100% 100%, 0% 100%);
  opacity: 0.3;
  animation: mrr-light 8s ease-in-out infinite alternate;
}
.scn-maldon-returns-request .moldings {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 4px;
  background: linear-gradient(90deg, #8a7a6a, #c0b0a0, #8a7a6a);
  border-radius: 2px;
  animation: mrr-mold 10s ease-in-out infinite alternate;
}
@keyframes mrr-doorway { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 } }
@keyframes mrr-jamb { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.01); } }
@keyframes mrr-head { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mrr-hand { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-5deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mrr-shadow { 0% { opacity:0.2 } 100% { opacity:0.4 } }
@keyframes mrr-light { 0% { opacity:0.2 } 100% { opacity:0.5 } }
@keyframes mrr-mold { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.02); } }

/* compensation-lady-hint – tense bright interior, sharp contrasts */
.scn-compensation-lady-hint {
  background: linear-gradient(180deg, #e8e0d0 0%, #c8bcb0 40%, #a89888 100%),
              linear-gradient(135deg, rgba(255,255,255,0.2) 0%, transparent 50%),
              radial-gradient(ellipse at 80% 20%, #fff8f0 0%, transparent 60%);
}
.scn-compensation-lady-hint .window-bright {
  position: absolute; top: 5%; left: 10%; right: 50%; bottom: 50%;
  background: linear-gradient(135deg, #fff8f0 0%, #f0e8d8 100%);
  border: 4px solid #a09080;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.5);
  animation: clh-window 10s ease-in-out infinite alternate;
}
.scn-compensation-lady-hint .wall-dark {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #4a4038 0%, #3a3028 100%);
  clip-path: polygon(0% 0%, 65% 0%, 50% 100%, 0% 100%);
  animation: clh-wall 15s ease-in-out infinite alternate;
}
.scn-compensation-lady-hint .wickfield-figure {
  position: absolute; bottom: 20%; left: 40%; width: 32px; height: 65px;
  background: linear-gradient(180deg, #2a221e 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 65% 65% 30% 30%;
  transform-origin: bottom center;
  animation: clh-figure 5s ease-in-out infinite;
}
.scn-compensation-lady-hint .desk-divider {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: clh-desk 8s ease-in-out infinite alternate;
}
.scn-compensation-lady-hint .shadow-stripe {
  position: absolute; top: 0; left: 30%; width: 10%; bottom: 40%;
  background: rgba(0,0,0,0.15);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 0% 100%);
  animation: clh-stripe 12s ease-in-out infinite alternate;
}
.scn-compensation-lady-hint .lamp-harsh {
  position: absolute; bottom: 45%; left: 70%; width: 16px; height: 16px;
  background: radial-gradient(circle, #fff8e0 0%, #e0d0a0 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,248,224,0.4);
  animation: clh-lamp 3s ease-in-out infinite alternate;
}
.scn-compensation-lady-hint .letter {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.2);
  animation: clh-letter 6s ease-in-out infinite;
}
@keyframes clh-window { 0% { opacity:0.8; transform: scale(1); } 100% { opacity:1; transform: scale(1.01); } }
@keyframes clh-wall { 0% { opacity:0.9; transform: translateY(0); } 100% { opacity:1; transform: translateY(-3px); } }
@keyframes clh-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes clh-desk { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes clh-stripe { 0% { opacity:0.3 } 100% { opacity:0.6 } }
@keyframes clh-lamp { 0% { opacity:0.7; box-shadow:0 0 40px 15px rgba(255,248,224,0.3); } 100% { opacity:1; box-shadow:0 0 80px 30px rgba(255,248,224,0.5); } }
@keyframes clh-letter { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }

.scn-caning-david {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a1e 0%, transparent 70%);
}
.scn-caning-david .wall-bg {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  animation: cd-wall 15s ease-in-out infinite alternate;
}
.scn-caning-david .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0e0604 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: cd-floor 12s ease-in-out infinite alternate;
}
.scn-caning-david .figure-david {
  position:absolute; bottom:22%; left:30%; width:28px; height:50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cd-david 4s ease-in-out infinite;
}
.scn-caning-david .figure-murdstone {
  position:absolute; bottom:20%; right:25%; width:34px; height:64px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: cd-murdstone 6s ease-in-out infinite;
}
.scn-caning-david .cane {
  position:absolute; bottom:40%; right:38%; width:4px; height:36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: center 0;
  animation: cd-cane 1.5s ease-in-out infinite;
}
.scn-caning-david .candle-glow {
  position:absolute; bottom:10%; left:15%; width:20px; height:20px;
  background: radial-gradient(circle, #d08040 0%, #a06020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(208,128,64,.4), 0 0 60px 20px rgba(208,128,64,.2);
  animation: cd-candle 3s ease-in-out infinite alternate;
}
.scn-caning-david .shadow-cast {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  animation: cd-shadow 10s ease-in-out infinite;
}
@keyframes cd-wall { 0% { opacity:.85; } 50% { opacity:.95; } 100% { opacity:.8; } }
@keyframes cd-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cd-david { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-1px) rotate(-4deg) scaleY(.98); } 50% { transform: translateX(0) rotate(-6deg) scaleY(.95); } 75% { transform: translateX(1px) rotate(-4deg) scaleY(.98); } }
@keyframes cd-murdstone { 0%,100% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(2px) rotate(-1deg); } }
@keyframes cd-cane { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-4px); } }
@keyframes cd-candle { 0% { box-shadow: 0 0 25px 8px rgba(208,128,64,.3); opacity:.85; } 50% { box-shadow: 0 0 40px 15px rgba(208,128,64,.5); opacity:1; } 100% { box-shadow: 0 0 30px 10px rgba(208,128,64,.35); opacity:.9; } }
@keyframes cd-shadow { 0%,100% { opacity:.6; } 50% { opacity:.8; } }

.scn-caning-upstairs {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 40%, #0a060e 100%),
    radial-gradient(ellipse at 50% 100%, #0e0e1a 0%, transparent 70%);
}
.scn-caning-upstairs .ceiling {
  position:absolute; inset:0 0 70% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: cu-ceiling 18s ease-in-out infinite alternate;
}
.scn-caning-upstairs .wall-panel {
  position:absolute; top:10%; left:10%; right:10%; bottom:20%;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 50%, #0e0e1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
  animation: cu-panel 20s ease-in-out infinite alternate;
}
.scn-caning-upstairs .figure-boy {
  position:absolute; bottom:22%; left:35%; width:24px; height:44px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cu-boy 5s ease-in-out infinite;
}
.scn-caning-upstairs .figure-man {
  position:absolute; bottom:18%; right:30%; width:36px; height:68px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: cu-man 7s ease-in-out infinite;
}
.scn-caning-upstairs .cane-raised {
  position:absolute; bottom:42%; right:42%; width:3px; height:30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: center 100%;
  animation: cu-cane 2s ease-in-out infinite;
}
.scn-caning-upstairs .lamp-light {
  position:absolute; top:8%; left:15%; width:24px; height:24px;
  background: radial-gradient(circle, #b08040 0%, #8a5a2a 40%, transparent 65%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(176,128,64,.3), 0 0 80px 24px rgba(176,128,64,.15);
  animation: cu-lamp 4s ease-in-out infinite alternate;
}
.scn-caning-upstairs .dark-corner {
  position:absolute; bottom:0; right:0; width:40%; height:50%;
  background: linear-gradient(135deg, transparent 0%, rgba(0,0,0,.5) 100%);
  animation: cu-corner 14s ease-in-out infinite;
}
@keyframes cu-ceiling { 0% { opacity:.7; } 50% { opacity:.85; } 100% { opacity:.75; } }
@keyframes cu-panel { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes cu-boy { 0%,100% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(1px) rotate(3deg) scaleY(.97); } 50% { transform: translateX(0) rotate(5deg) scaleY(.93); } 75% { transform: translateX(-1px) rotate(3deg) scaleY(.97); } }
@keyframes cu-man { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-2px) rotate(2deg); } }
@keyframes cu-cane { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } }
@keyframes cu-lamp { 0% { box-shadow: 0 0 30px 8px rgba(176,128,64,.2); opacity:.8; } 50% { box-shadow: 0 0 50px 18px rgba(176,128,64,.4); opacity:1; } 100% { box-shadow: 0 0 35px 10px rgba(176,128,64,.25); opacity:.85; } }
@keyframes cu-corner { 0%,100% { opacity:.5; } 50% { opacity:.7; } }

.scn-peg-console-at-keyhole {
  background:
    linear-gradient(180deg, #0a0a14 0%, #12121e 40%, #060612 100%),
    radial-gradient(ellipse at 50% 50%, #12121e 0%, transparent 70%);
}
.scn-peg-console-at-keyhole .door-dark {
  position:absolute; inset:5% 10% 5% 10%;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
  animation: pk-door 20s ease-in-out infinite alternate;
}
.scn-peg-console-at-keyhole .keyhole-glow {
  position:absolute; bottom:45%; left:50%; width:10px; height:18px;
  background: radial-gradient(circle at 50% 50%, #f0e0a0 0%, #c0a060 30%, transparent 60%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 10px rgba(240,224,160,.4), 0 0 60px 20px rgba(240,224,160,.2);
  animation: pk-glow 3s ease-in-out infinite alternate;
}
.scn-peg-console-at-keyhole .peg-head {
  position:absolute; bottom:30%; left:30%; width:30px; height:36px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pk-peg 5s ease-in-out infinite;
}
.scn-peg-console-at-keyhole .davy-head {
  position:absolute; bottom:26%; left:50%; width:22px; height:28px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pk-davy 5s ease-in-out infinite reverse;
}
.scn-peg-console-at-keyhole .whisper-lines {
  position:absolute; bottom:38%; left:38%; width:30px; height:2px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,200,220,.3) 30%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: pk-whisper 2s ease-in-out infinite;
}
.scn-peg-console-at-keyhole .floor-shadow {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  animation: pk-floor 12s ease-in-out infinite;
}
@keyframes pk-door { 0% { transform: scale(1); } 50% { transform: scale(1.005); } 100% { transform: scale(1); } }
@keyframes pk-glow { 0% { box-shadow: 0 0 20px 6px rgba(240,224,160,.3); opacity:.8; } 50% { box-shadow: 0 0 40px 15px rgba(240,224,160,.5); opacity:1; } 100% { box-shadow: 0 0 25px 8px rgba(240,224,160,.35); opacity:.85; } }
@keyframes pk-peg { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-2px) rotate(-4deg) scaleY(.98); } 50% { transform: translateX(0) rotate(-6deg) scaleY(.96); } 75% { transform: translateX(2px) rotate(-4deg) scaleY(.98); } }
@keyframes pk-davy { 0%,100% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(2px) rotate(4deg) scaleY(.98); } 50% { transform: translateX(0) rotate(6deg) scaleY(.96); } 75% { transform: translateX(-2px) rotate(4deg) scaleY(.98); } }
@keyframes pk-whisper { 0%,100% { opacity:.3; transform: translateX(0); } 50% { opacity:.7; transform: translateX(2px); } }
@keyframes pk-floor { 0%,100% { opacity:.6; } 50% { opacity:.8; } }

.scn-packing-to-leave {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 40%, #0e0a0a 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a1e 0%, transparent 70%);
}
.scn-packing-to-leave .room-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  animation: pl-wall 16s ease-in-out infinite alternate;
}
.scn-packing-to-leave .wooden-box {
  position:absolute; bottom:20%; left:30%; width:80px; height:50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,255,255,.1);
  transform-origin: bottom center;
  animation: pl-box 10s ease-in-out infinite;
}
.scn-packing-to-leave .cloth-fold {
  position:absolute; bottom:30%; left:32%; width:40px; height:20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.3);
  animation: pl-cloth 8s ease-in-out infinite alternate;
}
.scn-packing-to-leave .peg-hand {
  position:absolute; bottom:28%; left:25%; width:16px; height:30px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: pl-hand 6s ease-in-out infinite;
}
.scn-packing-to-leave .davy-figure {
  position:absolute; bottom:22%; right:20%; width:20px; height:38px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: pl-davy 7s ease-in-out infinite;
}
.scn-packing-to-leave .single-candle {
  position:absolute; bottom:10%; left:15%; width:14px; height:14px;
  background: radial-gradient(circle, #d09040 0%, #a06020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(208,144,64,.4), 0 0 60px 20px rgba(208,144,64,.2);
  animation: pl-candle 4s ease-in-out infinite alternate;
}
.scn-packing-to-leave .deep-shadow {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  animation: pl-shadow 14s ease-in-out infinite;
}
@keyframes pl-wall { 0% { opacity:.8; } 50% { opacity:.9; } 100% { opacity:.75; } }
@keyframes pl-box { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-2px); } }
@keyframes pl-cloth { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(1px) scaleY(1.05); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes pl-hand { 0%,100% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(4px) rotate(4deg) scaleY(.98); } 50% { transform: translateX(8px) rotate(2deg) scaleY(.96); } 75% { transform: translateX(4px) rotate(0deg) scaleY(.98); } }
@keyframes pl-davy { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-2px) rotate(3deg); } }
@keyframes pl-candle { 0% { box-shadow: 0 0 20px 6px rgba(208,144,64,.3); opacity:.85; } 50% { box-shadow: 0 0 40px 15px rgba(208,144,64,.5); opacity:1; } 100% { box-shadow: 0 0 25px 8px rgba(208,144,64,.35); opacity:.9; } }
@keyframes pl-shadow { 0%,100% { opacity:.5; } 50% { opacity:.7; } }

/* ===== scene: trial-period-request ===== */
.scn-trial-period-request {
  background: 
    linear-gradient(180deg, #fdf5e6 0%, #f0e6d3 40%, #d9cbb0 100%),
    radial-gradient(ellipse at 20% 80%, #f7e8d0 0%, transparent 70%);
}
.scn-trial-period-request .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0e6d3 0%, #e0d0b8 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: tpr-wall 20s ease-in-out infinite alternate;
}
.scn-trial-period-request .window {
  position: absolute; top: 8%; left: 30%; width: 120px; height: 90px;
  background: linear-gradient(135deg, #b0d4e8 0%, #d6ecf0 100%);
  border: 6px solid #c0a880; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,220,0.3);
  animation: tpr-window 6s ease-in-out infinite alternate;
}
.scn-trial-period-request .desk {
  position: absolute; bottom: 20%; left: 25%; width: 110px; height: 30px;
  background: linear-gradient(180deg, #c8a87c 0%, #a08060 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: tpr-desk 12s ease-in-out infinite;
}
.scn-trial-period-request .chair {
  position: absolute; bottom: 18%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #7a6040 100%);
  border-radius: 10% 10% 20% 20%; transform: rotate(-2deg);
  animation: tpr-chair 7s ease-in-out infinite;
}
.scn-trial-period-request .figure {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tpr-figure 5s ease-in-out infinite;
}
.scn-trial-period-request .lamp {
  position: absolute; bottom: 28%; left: 50%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #d4a860 0%, #a08040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,160,80,0.5);
  animation: tpr-lamp 4s ease-in-out infinite alternate;
}
.scn-trial-period-request .plant {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #3a6a3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: tpr-plant 18s ease-in-out infinite alternate;
}
@keyframes tpr-wall    { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tpr-window  { 0% { box-shadow: inset 0 0 20px rgba(255,255,220,0.2); } 50% { box-shadow: inset 0 0 30px rgba(255,255,220,0.4); } 100% { box-shadow: inset 0 0 20px rgba(255,255,220,0.2); } }
@keyframes tpr-desk    { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes tpr-chair   { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } }
@keyframes tpr-figure  { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes tpr-lamp    { 0% { opacity:0.8; box-shadow: 0 0 15px 4px rgba(200,160,80,0.4); } 100% { opacity:1; box-shadow: 0 0 25px 8px rgba(200,160,80,0.6); } }
@keyframes tpr-plant   { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }

/* ===== scene: robinson-crusoe-feeling ===== */
.scn-robinson-crusoe-feeling {
  background: 
    linear-gradient(180deg, #c8a060 0%, #a08040 50%, #7a5a2a 100%),
    radial-gradient(ellipse at 30% 80%, #e0c080 0%, transparent 60%);
}
.scn-robinson-crusoe-feeling .wall-stone {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: rcf-wall 25s ease-in-out infinite alternate;
}
.scn-robinson-crusoe-feeling .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  animation: rcf-floor 20s ease-in-out infinite alternate;
}
.scn-robinson-crusoe-feeling .ladder {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #a08050 0%, #604020 100%);
  border-radius: 10%; transform: rotate(5deg);
  box-shadow: 4px 0 8px rgba(0,0,0,0.4);
  animation: rcf-ladder 10s ease-in-out infinite alternate;
}
.scn-robinson-crusoe-feeling .figure-rc {
  position: absolute; bottom: 28%; left: 45%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rcf-figure 6s ease-in-out infinite;
}
.scn-robinson-crusoe-feeling .window-rc {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #b0c4d8 0%, #d0e0f0 100%);
  border: 6px solid #8a6a3a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.4);
  animation: rcf-window 8s ease-in-out infinite alternate;
}
.scn-robinson-crusoe-feeling .fire {
  position: absolute; bottom: 30%; left: 60%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #e06020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,160,64,0.5);
  animation: rcf-fire 3s ease-in-out infinite alternate;
}
.scn-robinson-crusoe-feeling .chair-rc {
  position: absolute; bottom: 22%; left: 60%; width: 40px; height: 45px;
  background: linear-gradient(180deg, #7a5030 0%, #4a2a10 100%);
  border-radius: 10% 10% 20% 20%;
  animation: rcf-chair 12s ease-in-out infinite;
}
@keyframes rcf-wall    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes rcf-floor   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rcf-ladder  { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(4deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes rcf-figure  { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes rcf-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.5); } 100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); } }
@keyframes rcf-fire    { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.15); opacity:1; } 100% { transform: scale(1); opacity:0.85; } }
@keyframes rcf-chair   { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }

/* ===== scene: lonely-evenings ===== */
.scn-lonely-evenings {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #16213e 40%, #0f3460 100%),
    radial-gradient(ellipse at 50% 90%, #0a1a2a 0%, transparent 80%);
}
.scn-lonely-evenings .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #0a0a18 100%);
  animation: lev-dim 30s ease-in-out infinite alternate;
}
.scn-lonely-evenings .door {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%);
  border: 2px solid #3a2a1a; border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: lev-door 9s ease-in-out infinite alternate;
}
.scn-lonely-evenings .floor-le {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: lev-floor 18s ease-in-out infinite alternate;
}
.scn-lonely-evenings .figure-le {
  position: absolute; bottom: 22%; left: 45%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lev-figure 4s ease-in-out infinite;
}
.scn-lonely-evenings .lamp-le {
  position: absolute; bottom: 40%; left: 55%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #c08040 0%, #a06020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,0.4);
  animation: lev-lamp 3s ease-in-out infinite alternate;
}
.scn-lonely-evenings .bellpull {
  position: absolute; top: 5%; right: 20%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(2deg);
  animation: lev-bell 7s ease-in-out infinite alternate;
}
.scn-lonely-evenings .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: lev-shadow 12s ease-in-out infinite alternate;
}
@keyframes lev-dim     { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lev-door    { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lev-floor   { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes lev-figure  { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes lev-lamp    { 0% { opacity:0.6; box-shadow: 0 0 20px 8px rgba(192,128,64,0.3); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(192,128,64,0.6); } 100% { opacity:0.7; box-shadow: 0 0 20px 8px rgba(192,128,64,0.3); } }
@keyframes lev-bell    { 0% { transform: rotate(2deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(2deg); } }
@keyframes lev-shadow  { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* ===== scene: steerforth-reunion ===== */
.scn-steerforth-reunion {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 40%, #c8a070 100%),
    radial-gradient(ellipse at 30% 70%, #ffe0b0 0%, transparent 60%);
}
.scn-steerforth-reunion .hearth {
  position: absolute; bottom: 15%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: sru-hearth 25s ease-in-out infinite alternate;
}
.scn-steerforth-reunion .mantel {
  position: absolute; bottom: 60%; left: 5%; width: 100px; height: 12px;
  background: linear-gradient(180deg, #a08050 0%, #7a6030 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sru-mantel 15s ease-in-out infinite alternate;
}
.scn-steerforth-reunion .chair-sr {
  position: absolute; bottom: 20%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: sru-chair 10s ease-in-out infinite;
}
.scn-steerforth-reunion .left-chair {
  left: 20%;
}
.scn-steerforth-reunion .right-chair {
  right: 20%;
  animation-delay: -5s;
}
.scn-steerforth-reunion .figure-sr {
  position: absolute; bottom: 25%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sru-figure 6s ease-in-out infinite;
}
.scn-steerforth-reunion .left-figure {
  left: 28%;
  transform: scaleX(-1);
}
.scn-steerforth-reunion .right-figure {
  right: 28%;
  animation-delay: -3s;
}
.scn-steerforth-reunion .window-sr {
  position: absolute; top: 8%; left: 35%; width: 90px; height: 80px;
  background: linear-gradient(135deg, #b0c4d8 0%, #d0e0f0 100%);
  border: 4px solid #8a6a3a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.4);
  animation: sru-window 8s ease-in-out infinite alternate;
}
@keyframes sru-hearth  { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes sru-mantel  { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sru-chair   { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes sru-figure  { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes sru-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.5); } 100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); } }

.scn-peace-in-iron-true-man {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2c1e12 40%, #1a120a 100%),
    radial-gradient(ellipse at 30% 70%, #8b5a2b 0%, transparent 60%);
}
.scn-peace-in-iron-true-man .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #4a3424 0%, #2a1e12 100%); }
.scn-peace-in-iron-true-man .room-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); }
.scn-peace-in-iron-true-man .fireplace { position:absolute; bottom:20%; left:15%; width:30%; height:40%; background: linear-gradient(90deg, #2c1e12 0%, #4a3424 50%, #2c1e12 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 0 20px #000; }
.scn-peace-in-iron-true-man .flame-1 { position:absolute; bottom:38%; left:22%; width:6%; height:12%; background: radial-gradient(ellipse, #ffaa40 0%, #ff6600 50%, #cc4400 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: pi1-flame 1.2s ease-in-out infinite alternate; }
.scn-peace-in-iron-true-man .flame-2 { position:absolute; bottom:36%; left:28%; width:5%; height:10%; background: radial-gradient(ellipse, #ffbb50 0%, #ff7700 50%, #cc4400 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: pi1-flame 1.5s ease-in-out infinite alternate-reverse; }
.scn-peace-in-iron-true-man .window { position:absolute; right:10%; top:20%; width:20%; height:30%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border: 4px solid #2a1e12; border-radius: 4px 4px 8px 8px; overflow:hidden; }
.scn-peace-in-iron-true-man .sea { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a3a4a 0%, #0a2a3a 100%); animation: pi1-sea 12s ease-in-out infinite alternate; }
.scn-peace-in-iron-true-man .town-lights { position:absolute; bottom:20%; right:12%; width:12%; height:8%; background: radial-gradient(circle at 50% 50%, #ffdd77 0%, #ffaa44 40%, transparent 70%); box-shadow: 0 0 30px 10px #ffaa44; animation: pi1-lights 4s ease-in-out infinite alternate; }
.scn-peace-in-iron-true-man .ship-shadow { position:absolute; bottom:10%; left:5%; width:15%; height:8%; background: #0a1a2a; border-radius: 50% 50% 30% 30% / 100% 100% 60% 60%; opacity:0.6; animation: pi1-ship 20s linear infinite; }
@keyframes pi1-flame { 0% { transform: translateY(0) scaleX(1); opacity:0.9; } 50% { transform: translateY(-4px) scaleX(1.2); opacity:1; } 100% { transform: translateY(0) scaleX(0.9); opacity:0.8; } }
@keyframes pi1-sea { 0% { background-position: 0 0; } 50% { background-position: 10% 2%; } 100% { background-position: -10% -1%; } }
@keyframes pi1-lights { 0% { opacity:0.7; filter: blur(2px); } 50% { opacity:1; filter: blur(4px); } 100% { opacity:0.8; filter: blur(3px); } }
@keyframes pi1-ship { 0% { transform: translateX(-30px) rotate(-2deg); } 25% { transform: translateX(10px) rotate(1deg); } 50% { transform: translateX(50px) rotate(-1deg); } 75% { transform: translateX(80px) rotate(2deg); } 100% { transform: translateX(120px) rotate(0deg); } }

.scn-fortnight-in-country {
  background: 
    linear-gradient(180deg, #a4b8c4 0%, #7a8c9a 30%, #5a6b7a 100%),
    radial-gradient(ellipse at 50% 100%, #7a8c9a 0%, transparent 80%);
}
.scn-fortnight-in-country .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a4b8c4 0%, #8a9caa 60%, #6a7b8a 100%); animation: fc-sky 15s ease-in-out infinite alternate; }
.scn-fortnight-in-country .lake { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a7b8a 0%, #4a5a6a 100%); animation: fc-water 8s ease-in-out infinite alternate; }
.scn-fortnight-in-country .far-shore { position:absolute; bottom:40%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 40% 60% 0 0 / 100% 100% 0 0; box-shadow: inset 0 4px 8px #1a2a3a; }
.scn-fortnight-in-country .boat { position:absolute; bottom:25%; left:40%; width:20%; height:12%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 30% 30% 60% 60% / 40% 40% 100% 100%; transform: rotate(2deg); animation: fc-boat 6s ease-in-out infinite alternate; }
.scn-fortnight-in-country .figure-steerforth { position:absolute; bottom:33%; left:42%; width:6%; height:10%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fc-figure 4s ease-in-out infinite; }
.scn-fortnight-in-country .figure-david { position:absolute; bottom:33%; left:48%; width:5%; height:9%; background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fc-figure 4s ease-in-out infinite reverse; }
.scn-fortnight-in-country .oars { position:absolute; bottom:30%; left:44%; width:10%; height:2%; background: #2a1a0a; transform: rotate(30deg); transform-origin: left bottom; animation: fc-oars 3s ease-in-out infinite alternate; }
@keyframes fc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes fc-water { 0% { background-position: 0 0; } 50% { background-position: 5% 2%; } 100% { background-position: -5% -1%; } }
@keyframes fc-boat { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes fc-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes fc-oars { 0% { transform: rotate(30deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(20deg); } }

.scn-spare-room-constraint {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 40%, #1a120a 100%),
    radial-gradient(circle at 80% 20%, #3a3a2a 0%, transparent 70%);
}
.scn-spare-room-constraint .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a1a 0%, #1a1a0a 100%); }
.scn-spare-room-constraint .bed-frame { position:absolute; bottom:0; left:5%; right:5%; height:45%; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 -4px 10px #000; }
.scn-spare-room-constraint .mattress { position:absolute; bottom:5%; left:8%; right:8%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; }
.scn-spare-room-constraint .window-night { position:absolute; top:15%; right:10%; width:25%; height:30%; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); border: 3px solid #2a1a0a; border-radius: 4px; }
.scn-spare-room-constraint .moonlight-shaft { position:absolute; top:18%; right:12%; width:18%; height:60%; background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, transparent 100%); transform: skewX(-10deg); animation: sr-moonlight 10s ease-in-out infinite alternate; }
.scn-spare-room-constraint .figure-seated { position:absolute; bottom:10%; left:30%; width:8%; height:20%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: sr-figure 8s ease-in-out infinite; }
.scn-spare-room-constraint .candle-stub { position:absolute; bottom:15%; left:48%; width:2%; height:6%; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); border-radius: 20% 20% 0 0; }
.scn-spare-room-constraint .candle-glow { position:absolute; bottom:20%; left:47%; width:4%; height:4%; background: radial-gradient(circle, #ffaa40 0%, #cc8800 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 20px 8px #cc8800; animation: sr-glow 3s ease-in-out infinite alternate; }
@keyframes sr-moonlight { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes sr-figure { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes sr-glow { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(1); } }

.scn-fishermen-treats {
  background: 
    linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 40%, #0a0a1a 100%),
    radial-gradient(circle at 80% 10%, #2a3a4a 0%, transparent 70%);
}
.scn-fishermen-treats .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); animation: fl-sky 20s linear infinite; }
.scn-fishermen-treats .moon { position:absolute; top:10%; right:20%; width:12%; height:12%; background: radial-gradient(circle, #c0d8f0 0%, #8098b0 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(192,216,240,0.3); animation: fl-moon 12s ease-in-out infinite alternate; }
.scn-fishermen-treats .water { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); animation: fl-water 8s ease-in-out infinite alternate; }
.scn-fishermen-treats .boat-hull { position:absolute; bottom:15%; left:30%; width:25%; height:10%; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 30% 30% 60% 60% / 40% 40% 100% 100%; transform: rotate(-3deg); animation: fl-boat 5s ease-in-out infinite alternate; }
.scn-fishermen-treats .figure-fisherman { position:absolute; bottom:20%; left:38%; width:6%; height:12%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: fl-figure 4s ease-in-out infinite; }
.scn-fishermen-treats .lantern { position:absolute; bottom:22%; left:35%; width:3%; height:5%; background: radial-gradient(circle, #ffcc66 0%, #cc8800 100%); border-radius: 20%; box-shadow: 0 0 30px 10px #ffaa44; animation: fl-lantern 3s ease-in-out infinite alternate; }
.scn-fishermen-treats .lantern-glow { position:absolute; bottom:20%; left:33%; width:8%; height:12%; background: radial-gradient(circle, rgba(255,170,68,0.4) 0%, transparent 80%); border-radius:50%; animation: fl-glow 3s ease-in-out infinite alternate; }
.scn-fishermen-treats .wave-crest { position:absolute; bottom:10%; left:10%; width:20%; height:2%; background: rgba(200,220,240,0.3); border-radius: 50%; filter: blur(2px); animation: fl-wave 6s ease-in-out infinite; }
@keyframes fl-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes fl-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(0.95); } }
@keyframes fl-water { 0% { background-position: 0 0; } 50% { background-position: 5% 2%; } 100% { background-position: -5% -1%; } }
@keyframes fl-boat { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes fl-figure { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes fl-lantern { 0% { opacity:0.8; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.9; transform: scale(1); } }
@keyframes fl-glow { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(0.9); } }
@keyframes fl-wave { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(20px) scaleX(1.2); } 100% { transform: translateX(-10px) scaleX(0.9); } }

/* Scene: micawber-offers-guide - calm, bright-interior */
.scn-micawber-offers-guide {
  background: linear-gradient(180deg, #f8f0e0 0%, #e8d8c0 60%), radial-gradient(ellipse at 30% 70%, #e8d8c0 0%, transparent 70%);
}
.scn-micawber-offers-guide .room   { position:absolute; inset:0; background: linear-gradient(135deg, #f8f0e0 0%, #d8c8a8 100%); }
.scn-micawber-offers-guide .window { position:absolute; top:8%; right:10%; width:30%; height:40%; background: linear-gradient(180deg, #c8e8ff 0%, #a0c8e8 100%); border-radius:6% 6% 4% 4%; box-shadow: 0 0 30px 10px rgba(160,200,232,.4); animation: m1-window 12s ease-in-out infinite alternate; }
.scn-micawber-offers-guide .desk   { position:absolute; bottom:20%; left:20%; width:55%; height:18%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-micawber-offers-guide .paper  { position:absolute; bottom:28%; left:35%; width:20%; height:12%; background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a0 100%); border-radius:2%; box-shadow: 0 2px 6px rgba(0,0,0,.15); transform: rotate(-5deg); animation: m1-paper 8s ease-in-out infinite; }
.scn-micawber-offers-guide .lamp   { position:absolute; top:20%; left:15%; width:8%; height:12%; background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #c08040 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,208,128,.5), 0 0 60px 20px rgba(255,208,128,.2); animation: m1-lamp 6s ease-in-out infinite alternate; }
.scn-micawber-offers-guide .figure { position:absolute; bottom:22%; left:40%; width:12%; 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: m1-figure 5s ease-in-out infinite; }
.scn-micawber-offers-guide .chair  { position:absolute; bottom:18%; left:55%; width:15%; height:22%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:8% 8% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
@keyframes m1-window { 0% { opacity:.7; filter:brightness(1); } 50% { opacity:1; filter:brightness(1.2); } 100% { opacity:.8; filter:brightness(1); } }
@keyframes m1-paper  { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } }
@keyframes m1-lamp   { 0% { box-shadow: 0 0 20px 6px rgba(255,208,128,.4); } 50% { box-shadow: 0 0 40px 14px rgba(255,208,128,.7); } 100% { box-shadow: 0 0 25px 8px rgba(255,208,128,.5); } }
@keyframes m1-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }

/* Scene: mrs-micawber-difficulties - dark, bright-interior (high contrast) */
.scn-mrs-micawber-difficulties {
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 50%), radial-gradient(ellipse at 80% 30%, #6a6a8e 0%, transparent 60%);
}
.scn-mrs-micawber-difficulties .room   { position:absolute; inset:0; background: linear-gradient(135deg, #4a4a5e 0%, #1a1a2e 100%); }
.scn-mrs-micawber-difficulties .window { position:absolute; top:5%; left:5%; width:35%; height:50%; background: linear-gradient(180deg, #c8d8ff 0%, #8898c0 100%); border-radius:6% 6% 4% 4%; box-shadow: 0 0 40px 20px rgba(136,152,192,.5); animation: m2-window 14s ease-in-out infinite alternate; }
.scn-mrs-micawber-difficulties .table  { position:absolute; bottom:18%; left:30%; width:40%; height:14%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 -4px 8px rgba(0,0,0,.4); }
.scn-mrs-micawber-difficulties .cup    { position:absolute; bottom:24%; left:45%; width:8%; height:10%; background: linear-gradient(180deg, #c0a880 0%, #a08060 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: m2-cup 5s ease-in-out infinite; }
.scn-mrs-micawber-difficulties .figure { position:absolute; bottom:20%; right:25%; width:14%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: m2-figure 6s ease-in-out infinite; }
.scn-mrs-micawber-difficulties .shadow { position:absolute; bottom:18%; left:20%; width:50%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); border-radius:30% 30% 10% 10%; animation: m2-shadow 8s ease-in-out infinite alternate; }
@keyframes m2-window { 0% { filter:brightness(1); } 50% { filter:brightness(1.3); } 100% { filter:brightness(1); } }
@keyframes m2-cup    { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes m2-figure { 0% { transform: translateX(0) rotate(-3deg) scale(1); } 50% { transform: translateX(-6px) rotate(1deg) scale(0.98); } 100% { transform: translateX(0) rotate(-3deg) scale(1); } }
@keyframes m2-shadow { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.5; } }

/* Scene: genuine-stunning-ale - calm, bright-interior (pub) */
.scn-genuine-stunning-ale {
  background: linear-gradient(180deg, #d8c098 0%, #b89068 60%), radial-gradient(ellipse at 50% 100%, #b89068 0%, transparent 70%);
}
.scn-genuine-stunning-ale .pub     { position:absolute; inset:0; background: linear-gradient(135deg, #d8c098 0%, #a08058 100%); }
.scn-genuine-stunning-ale .counter { position:absolute; bottom:15%; left:5%; width:90%; height:15%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-genuine-stunning-ale .tankard { position:absolute; bottom:22%; left:30%; width:12%; height:18%; background: linear-gradient(180deg, #b08050 0%, #906040 100%); border-radius:8% 8% 15% 15%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: m3-tankard 7s ease-in-out infinite; }
.scn-genuine-stunning-ale .foam    { position:absolute; bottom:34%; left:31%; width:10%; height:6%; background: radial-gradient(ellipse at 50% 100%, #f0e8d0 0%, #e0d0b0 100%); border-radius:50%; box-shadow: 0 -2px 4px rgba(0,0,0,.1); animation: m3-foam 4s ease-in-out infinite alternate; }
.scn-genuine-stunning-ale .hand    { position:absolute; bottom:22%; left:45%; width:8%; height:14%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 40% 30% 30% / 60% 50% 40% 40%; transform: rotate(-10deg); animation: m3-hand 6s ease-in-out infinite; }
.scn-genuine-stunning-ale .lantern { position:absolute; top:10%; right:15%; width:10%; height:16%; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #c08040 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,208,128,.6); animation: m3-lantern 8s ease-in-out infinite alternate; }
@keyframes m3-tankard { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes m3-foam    { 0% { transform: scale(1) translateY(0); opacity:.9; } 50% { transform: scale(1.05) translateY(-2px); opacity:1; } 100% { transform: scale(1) translateY(0); opacity:.9; } }
@keyframes m3-hand    { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(8px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes m3-lantern { 0% { box-shadow: 0 0 20px 6px rgba(255,208,128,.4); } 50% { box-shadow: 0 0 40px 16px rgba(255,208,128,.8); } 100% { box-shadow: 0 0 25px 8px rgba(255,208,128,.5); } }

/* Scene: micawber-crisis-coming - dark, dim-interior */
.scn-micawber-crisis-coming {
  background: linear-gradient(180deg, #1e1e2e 0%, #2e2e3e 50%), radial-gradient(ellipse at 30% 80%, #3a3a4a 0%, transparent 70%);
}
.scn-micawber-crisis-coming .room        { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-micawber-crisis-coming .candle      { position:absolute; top:30%; left:20%; width:6%; height:18%; background: linear-gradient(180deg, #ffd080 0%, #c08040 100%); border-radius:20% 20% 40% 40%; box-shadow: 0 0 40px 20px rgba(255,208,128,.7), 0 0 80px 40px rgba(255,208,128,.3); animation: m4-candle 5s ease-in-out infinite alternate; }
.scn-micawber-crisis-coming .table       { position:absolute; bottom:22%; left:15%; width:70%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 -2px 6px rgba(0,0,0,.5); }
.scn-micawber-crisis-coming .letter      { position:absolute; bottom:26%; left:40%; width:15%; height:8%; background: linear-gradient(135deg, #f0e8d0 0%, #c8b898 100%); border-radius:2%; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(3deg); animation: m4-letter 10s ease-in-out infinite; }
.scn-micawber-crisis-coming .figure-mrs  { position:absolute; bottom:20%; left:25%; width:15%; height:38%; background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: m4-mrs 7s ease-in-out infinite; }
.scn-micawber-crisis-coming .figure-david{ position:absolute; bottom:20%; right:20%; width:13%; height:32%; background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: m4-david 7s ease-in-out infinite reverse; }
@keyframes m4-candle { 0% { transform: scale(1) rotate(0); box-shadow: 0 0 30px 12px rgba(255,208,128,.5); } 50% { transform: scale(1.03) rotate(2deg); box-shadow: 0 0 50px 20px rgba(255,208,128,.8); } 100% { transform: scale(1) rotate(-1deg); box-shadow: 0 0 35px 14px rgba(255,208,128,.6); } }
@keyframes m4-letter { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes m4-mrs    { 0% { transform: translateX(0) rotate(-2deg) scale(1); } 50% { transform: translateX(-4px) rotate(1deg) scale(0.98); } 100% { transform: translateX(0) rotate(-2deg) scale(1); } }
@keyframes m4-david  { 0% { transform: translateX(0) rotate(2deg) scale(1); } 50% { transform: translateX(4px) rotate(-1deg) scale(0.98); } 100% { transform: translateX(0) rotate(2deg) scale(1); } }

/* Scene: uriah-legal-umble (tense, bright interior) */
.scn-uriah-legal-umble {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 50%, #b8a88c 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 60%);
}
.scn-uriah-legal-umble .window {
  position: absolute; inset: 5% 10% auto auto; width: 30%; height: 40%;
  background:
    linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 100%);
  border: 6px solid #8a7a64;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.2), 0 4px 12px rgba(0,0,0,0.3);
  animation: ulu-window 8s ease-in-out infinite alternate;
}
.scn-uriah-legal-umble .desk {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #6b5b4a 0%, #4a3d30 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: ulu-desk 12s ease-in-out infinite;
}
.scn-uriah-legal-umble .book {
  position: absolute; bottom: 38%; left: 40%; width: 14%; height: 12%;
  background: linear-gradient(135deg, #8a7a64 0%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: ulu-book 6s ease-in-out infinite;
}
.scn-uriah-legal-umble .figure {
  position: absolute; bottom: 38%; left: 25%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1812 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom;
  animation: ulu-figure 4s ease-in-out infinite alternate;
}
.scn-uriah-legal-umble .shadow-fig {
  position: absolute; bottom: 20%; left: 15%; width: 30%; height: 20%;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(8px);
  animation: ulu-shadow 4s ease-in-out infinite alternate;
}
.scn-uriah-legal-umble .lamp {
  position: absolute; bottom: 55%; left: 50%; width: 6%; height: 8%;
  background: radial-gradient(circle, #f0d4a0 0%, #c8a060 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(200,160,96,0.5), 0 0 60px 16px rgba(200,160,96,0.2);
  animation: ulu-lamp 3s ease-in-out infinite alternate;
}
@keyframes ulu-window {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.8; transform: scaleX(1); }
}
@keyframes ulu-desk {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ulu-book {
  0%,100% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(4px); }
}
@keyframes ulu-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ulu-shadow {
  0% { opacity: 0.2; transform: scaleX(1); }
  50% { opacity: 0.4; transform: scaleX(1.1); }
  100% { opacity: 0.25; transform: scaleX(1); }
}
@keyframes ulu-lamp {
  0% { box-shadow: 0 0 20px 4px rgba(200,160,96,0.3), 0 0 40px 8px rgba(200,160,96,0.1); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px rgba(200,160,96,0.6), 0 0 80px 20px rgba(200,160,96,0.3); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px rgba(200,160,96,0.4), 0 0 50px 12px rgba(200,160,96,0.15); opacity: 0.85; }
}

/* Scene: uriah-years-wickfield (calm, bright interior) */
.scn-uriah-years-wickfield {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #ddd0bc 50%, #c8b8a0 100%),
    radial-gradient(ellipse at 30% 50%, #fff5e0 0%, transparent 70%);
}
.scn-uriah-years-wickfield .window {
  position: absolute; inset: 4% 8% auto auto; width: 28%; height: 42%;
  background: linear-gradient(180deg, #b8d0e0 0%, #8aaccc 100%);
  border: 5px solid #7a6a58;
  border-radius: 4px;
  box-shadow: inset 0 0 16px rgba(255,255,255,0.3);
  animation: uyw-window 12s ease-in-out infinite alternate;
}
.scn-uriah-years-wickfield .desk {
  position: absolute; bottom: 18%; left: 12%; right: 18%; height: 20%;
  background: linear-gradient(180deg, #6a5a48 0%, #4a3d30 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 -3px 6px rgba(0,0,0,0.2);
}
.scn-uriah-years-wickfield .chair {
  position: absolute; bottom: 18%; left: 50%; width: 24%; height: 42%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform: translateX(-50%);
  animation: uyw-chair 10s ease-in-out infinite;
}
.scn-uriah-years-wickfield .clock {
  position: absolute; top: 12%; right: 38%; width: 12%; height: 12%;
  background: radial-gradient(circle, #e8d4b0 0%, #b8a080 80%);
  border-radius: 50%;
  border: 4px solid #6a5a48;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
  animation: uyw-clock 30s linear infinite;
}
.scn-uriah-years-wickfield .figure {
  position: absolute; bottom: 20%; left: 28%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1812 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  animation: uyw-figure 8s ease-in-out infinite alternate;
}
.scn-uriah-years-wickfield .bookshelf {
  position: absolute; bottom: 10%; left: 5%; width: 15%; height: 70%;
  background: linear-gradient(180deg, #7a6a58 0%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
  animation: uyw-bookshelf 20s ease-in-out infinite alternate;
}
@keyframes uyw-window {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.01); }
  100% { opacity: 0.85; transform: scaleY(1); }
}
@keyframes uyw-chair {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes uyw-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes uyw-figure {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes uyw-bookshelf {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.95; transform: scaleY(1); }
}

/* Scene: partnership-hint-umble (calm, bright interior) */
.scn-partnership-hint-umble {
  background:
    linear-gradient(180deg, #f2e6d4 0%, #ddd0bc 50%, #c8b8a0 100%),
    radial-gradient(ellipse at 60% 40%, #fff8e7 0%, transparent 60%);
}
.scn-partnership-hint-umble .window {
  position: absolute; inset: 6% 12% auto auto; width: 25%; height: 38%;
  background: linear-gradient(180deg, #c0d8e8 0%, #94b4d0 100%);
  border: 5px solid #7a6a58;
  border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(255,255,255,0.2);
  animation: phu-window 10s ease-in-out infinite alternate;
}
.scn-partnership-hint-umble .desk {
  position: absolute; bottom: 22%; left: 10%; right: 20%; height: 16%;
  background: linear-gradient(180deg, #6a5a48 0%, #4a3d30 100%);
  border-radius: 3px 3px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-partnership-hint-umble .document {
  position: absolute; bottom: 38%; left: 35%; width: 20%; height: 10%;
  background: linear-gradient(135deg, #f0e8d8 0%, #d4c4a8 100%);
  border-radius: 2px;
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
  animation: phu-document 8s ease-in-out infinite;
}
.scn-partnership-hint-umble .inkwell {
  position: absolute; bottom: 38%; left: 58%; width: 8%; height: 8%;
  background: radial-gradient(circle, #2a2a3a 0%, #0a0a12 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: phu-inkwell 6s ease-in-out infinite alternate;
}
.scn-partnership-hint-umble .figure {
  position: absolute; bottom: 22%; left: 22%; width: 18%; height: 42%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1812 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  animation: phu-figure 6s ease-in-out infinite alternate;
}
.scn-partnership-hint-umble .seal {
  position: absolute; bottom: 50%; left: 42%; width: 6%; height: 6%;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(200,85,61,0.3);
  animation: phu-seal 4s ease-in-out infinite alternate;
}
@keyframes phu-window {
  0% { opacity: 0.85; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.01); }
  100% { opacity: 0.9; transform: scaleX(1); }
}
@keyframes phu-document {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes phu-inkwell {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes phu-figure {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes phu-seal {
  0% { box-shadow: 0 0 4px rgba(200,85,61,0.2); opacity: 0.7; }
  50% { box-shadow: 0 0 12px rgba(200,85,61,0.5); opacity: 1; }
  100% { box-shadow: 0 0 6px rgba(200,85,61,0.3); opacity: 0.8; }
}

/* Scene: uriah-praises-wickfield (tense, bright interior) */
.scn-uriah-praises-wickfield {
  background:
    linear-gradient(180deg, #ebe0cc 0%, #d4c4a8 50%, #b8a88c 100%),
    radial-gradient(ellipse at 20% 60%, #fff5e0 0%, transparent 70%);
}
.scn-uriah-praises-wickfield .window {
  position: absolute; inset: 4% 10% auto auto; width: 28%; height: 45%;
  background: linear-gradient(180deg, #c4d4e4 0%, #9cb4cc 100%);
  border: 6px solid #8a7a64;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.2), 0 4px 12px rgba(0,0,0,0.3);
  animation: upw-window 6s ease-in-out infinite alternate;
}
.scn-uriah-praises-wickfield .desk {
  position: absolute; bottom: 20%; left: 12%; right: 14%; height: 20%;
  background: linear-gradient(180deg, #6a5a48 0%, #4a3d30 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-uriah-praises-wickfield .portrait {
  position: absolute; top: 8%; left: 50%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #8a7a64 0%, #5a4a3a 100%);
  border: 4px solid #6a5a48;
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: upw-portrait 5s ease-in-out infinite alternate;
}
.scn-uriah-praises-wickfield .figure {
  position: absolute; bottom: 22%; left: 30%; width: 20%; height: 48%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1812 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom;
  animation: upw-figure 3s ease-in-out infinite alternate;
}
.scn-uriah-praises-wickfield .shadow-fig {
  position: absolute; bottom: 20%; left: 20%; width: 35%; height: 25%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(10px);
  animation: upw-shadow 3s ease-in-out infinite alternate;
}
.scn-uriah-praises-wickfield .candle {
  position: absolute; bottom: 60%; left: 45%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #f0d4a0 0%, #c8a060 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(200,160,96,0.4), 0 0 40px 12px rgba(200,160,96,0.2);
  animation: upw-candle 2s ease-in-out infinite alternate;
}
@keyframes upw-window {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.03); }
  100% { opacity: 0.75; transform: scaleY(1); }
}
@keyframes upw-portrait {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes upw-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-5px) rotate(1.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes upw-shadow {
  0% { opacity: 0.15; transform: scaleX(1); }
  50% { opacity: 0.4; transform: scaleX(1.15); }
  100% { opacity: 0.2; transform: scaleX(1); }
}
@keyframes upw-candle {
  0% { box-shadow: 0 0 15px 4px rgba(200,160,96,0.3), 0 0 30px 8px rgba(200,160,96,0.1); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px rgba(200,160,96,0.6), 0 0 60px 18px rgba(200,160,96,0.3); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(200,160,96,0.4), 0 0 40px 12px rgba(200,160,96,0.15); opacity: 0.85; }
}

.scn-murdstone-control {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b89a 50%, #a07a5a 100%),
              radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 70%);
}
.scn-murdstone-control .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #c4a882 0%, #e8d5b8 40%, #8b6f4a 100%);
  animation: mc-bg 8s ease-in-out infinite alternate;
}
.scn-murdstone-control .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b4f36 0%, #4a3421 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-murdstone-control .window-light {
  position: absolute; top: 8%; left: 15%; width: 30%; height: 35%;
  background: radial-gradient(ellipse, #fff8e7 0%, #ffecb3 60%, transparent 100%);
  filter: blur(8px);
  animation: mc-window 4s ease-in-out infinite alternate;
}
.scn-murdstone-control .figure-tall {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  box-shadow: -4px 0 12px rgba(0,0,0,0.6);
  animation: mc-tall 9s ease-in-out infinite;
}
.scn-murdstone-control .figure-small {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 2px 0 8px rgba(0,0,0,0.4);
  animation: mc-small 5s ease-in-out infinite;
}
.scn-murdstone-control .chair {
  position: absolute; bottom: 22%; left: 25%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2810 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-murdstone-control .table {
  position: absolute; bottom: 18%; left: 45%; width: 50px; height: 30px;
  background: #5a4020;
  border-radius: 4px;
  box-shadow: inset 0 -2px 6px rgba(0,0,0,0.4);
}
.scn-murdstone-control .shadow-line {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.3) 20%, transparent 80%);
  filter: blur(1px);
}
@keyframes mc-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mc-window { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes mc-tall { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mc-small { 0% { transform: translateX(0) translateY(0); } 30% { transform: translateX(3px) translateY(1px); } 70% { transform: translateX(-2px) translateY(0); } 100% { transform: translateX(0) translateY(0); } }

.scn-heavy-heart-upstairs {
  background: linear-gradient(180deg, #1e1e30 0%, #12101f 50%, #08070f 100%),
              radial-gradient(ellipse at 50% 40%, #2a2a4a 0%, transparent 70%);
}
.scn-heavy-heart-upstairs .room-dark {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  animation: hh-room 10s ease-in-out infinite alternate;
}
.scn-heavy-heart-upstairs .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  box-shadow: inset 0 4px 15px rgba(0,0,0,0.8);
}
.scn-heavy-heart-upstairs .moonlight {
  position: absolute; top: 5%; right: 10%; width: 15%; height: 25%;
  background: radial-gradient(circle, #b0c4de 0%, #7a9cc6 40%, transparent 80%);
  filter: blur(6px);
  animation: hh-moon 12s ease-in-out infinite alternate;
}
.scn-heavy-heart-upstairs .bed {
  position: absolute; bottom: 25%; left: 30%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-heavy-heart-upstairs .figure-sitting {
  position: absolute; bottom: 25%; left: 38%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0f0f1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: hh-sit 8s ease-in-out infinite;
}
.scn-heavy-heart-upstairs .lamp-unlit {
  position: absolute; bottom: 22%; left: 58%; width: 12px; height: 20px;
  background: #2a2a2a;
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 0 2px rgba(0,0,0,0.3);
}
.scn-heavy-heart-upstairs .window-frame {
  position: absolute; top: 4%; right: 9%; width: 18%; height: 28%;
  border: 2px solid #2a2a3a;
  border-radius: 2px;
  background: transparent;
  box-shadow: inset 0 0 0 2px #1a1a2e;
}
@keyframes hh-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hh-moon { 0% { opacity: 0.4; transform: scale(0.9); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes hh-sit { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-mother-firmness-confrontation {
  background: linear-gradient(180deg, #2a1a1a 0%, #1e1010 50%, #0e0808 100%),
              radial-gradient(ellipse at 60% 30%, #4a2a2a 0%, transparent 60%);
}
.scn-mother-firmness-confrontation .room-dim {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%);
  animation: mf-room 9s ease-in-out infinite alternate;
}
.scn-mother-firmness-confrontation .floor-dim {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0806 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.7);
}
.scn-mother-firmness-confrontation .fireplace-glow {
  position: absolute; bottom: 20%; left: 10%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #b04a1a 0%, #6a2a0a 40%, transparent 70%);
  filter: blur(10px);
  animation: mf-fire 4s ease-in-out infinite alternate;
}
.scn-mother-firmness-confrontation .figure-tall-menacing {
  position: absolute; bottom: 25%; left: 35%; width: 45px; height: 110px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  box-shadow: -3px 0 10px rgba(0,0,0,0.6);
  animation: mf-tall 7s ease-in-out infinite;
}
.scn-mother-firmness-confrontation .figure-small-pleading {
  position: absolute; bottom: 25%; left: 50%; width: 32px; height: 65px;
  background: linear-gradient(180deg, #6a5040 0%, #3a2820 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mf-small 5s ease-in-out infinite;
}
.scn-mother-firmness-confrontation .table-center {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 25px;
  background: #3a2818;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-mother-firmness-confrontation .candle {
  position: absolute; bottom: 35%; left: 45%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #ffe8c0 0%, #c08040 60%, transparent 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #c08040;
  animation: mf-candle 3s ease-in-out infinite alternate;
}
@keyframes mf-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mf-fire { 0% { opacity: 0.5; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(0.95); } }
@keyframes mf-tall { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mf-small { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-3px) translateY(1px) 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 mf-candle { 0% { opacity: 0.7; box-shadow: 0 0 8px 2px #c08040; } 50% { opacity: 1; box-shadow: 0 0 18px 6px #ffd080; } 100% { opacity: 0.8; box-shadow: 0 0 12px 4px #c08040; } }

.scn-murdstone-beating-threat {
  background: linear-gradient(180deg, #0e0a0a 0%, #1a1212 40%, #0a0606 100%),
              radial-gradient(ellipse at 50% 20%, #2a1a1a 0%, transparent 70%);
}
.scn-murdstone-beating-threat .dark-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1212 0%, #0a0606 100%);
  animation: mb-bg 8s ease-in-out infinite alternate;
}
.scn-murdstone-beating-threat .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0a0606 0%, #000 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.9);
}
.scn-murdstone-beating-threat .looming-figure {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 130px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  box-shadow: -3px 0 15px rgba(0,0,0,0.8);
  animation: mb-loom 6s ease-in-out infinite;
}
.scn-murdstone-beating-threat .cowering-child {
  position: absolute; bottom: 15%; left: 50%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: mb-child 4s ease-in-out infinite;
}
.scn-murdstone-beating-threat .cane {
  position: absolute; bottom: 40%; left: 35%; width: 6px; height: 80px;
  background: #2a1a0a;
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: mb-cane 3s ease-in-out infinite;
}
.scn-murdstone-beating-threat .shadow-cast {
  position: absolute; bottom: 10%; left: 20%; width: 70%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 80%);
  filter: blur(8px);
  animation: mb-shadow 5s ease-in-out infinite alternate;
}
.scn-murdstone-beating-threat .lantern-floor {
  position: absolute; bottom: 5%; left: 55%; width: 12px; height: 16px;
  background: radial-gradient(circle, #c08040 0%, #3a2010 100%);
  border-radius: 4%;
  box-shadow: 0 0 30px 8px #c08040, 0 0 60px 16px rgba(192,128,64,0.3);
  animation: mb-lantern 4s ease-in-out infinite alternate;
}
@keyframes mb-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mb-loom { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mb-child { 0% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(-1px) rotate(-5deg) scale(0.95); } 50% { transform: translateY(0) rotate(0deg) scale(1); } 75% { transform: translateY(1px) rotate(5deg) scale(0.95); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes mb-cane { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-20deg); } }
@keyframes mb-shadow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes mb-lantern { 0% { opacity: 0.8; box-shadow: 0 0 20px 6px #c08040; } 50% { opacity: 1; box-shadow: 0 0 40px 12px #ffd080; } 100% { opacity: 0.9; box-shadow: 0 0 25px 8px #c08040; } }

/* unless-he-brings-her-back */
.scn-unless-he-brings-her-back {
  background: 
    linear-gradient(180deg, #1a1016 0%, #2a1a1e 40%, #1a0e12 100%),
    radial-gradient(ellipse at 50% 80%, #3a2028 0%, transparent 70%);
}
.scn-unless-he-brings-her-back .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a2028 0%, #1a0e12 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-unless-he-brings-her-back .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a1a1e 0%, #120a0c 100%);
  border-radius: 60% 60% 0 0 / 20% 20% 0 0;
}
.scn-unless-he-brings-her-back .table {
  position: absolute; bottom: 22%; left: 50%; width: 140px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3028 0%, #2a1a14 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: uhb-table-breathe 5s ease-in-out infinite;
}
.scn-unless-he-brings-her-back .candle-glow {
  position: absolute; bottom: 38%; left: 50%; width: 10px; height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0c060 0%, #b08040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px #c08040, 0 0 60px 16px rgba(192,128,64,.4);
  animation: uhb-candle-flicker 3s ease-in-out infinite alternate;
}
.scn-unless-he-brings-her-back .figure-silhouette {
  position: absolute; bottom: 20%; left: 44%; width: 32px; height: 52px;
  background: linear-gradient(180deg, #0a0608 0%, #1a0e10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uhb-figure-bow 6s ease-in-out infinite;
}
.scn-unless-he-brings-her-back .paper {
  position: absolute; bottom: 24%; left: 50%; width: 40px; height: 28px;
  transform: translateX(-50%) rotate(-6deg);
  background: linear-gradient(135deg, #b09868 0%, #d4b878 50%, #b09060 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: uhb-paper-tremble 4s ease-in-out infinite alternate;
}
@keyframes uhb-table-breathe {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes uhb-candle-flicker {
  0% { opacity: .85; box-shadow: 0 0 24px 4px #c08040, 0 0 48px 12px rgba(192,128,64,.3); }
  50% { opacity: 1; box-shadow: 0 0 36px 8px #f0c060, 0 0 72px 20px rgba(240,192,96,.5); }
  100% { opacity: .8; box-shadow: 0 0 28px 5px #c08040, 0 0 56px 14px rgba(192,128,64,.35); }
}
@keyframes uhb-figure-bow {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(4px) translateY(-2px) rotate(3deg); }
  60% { transform: translateX(-2px) translateY(0) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes uhb-paper-tremble {
  0% { transform: translateX(-50%) rotate(-6deg); }
  50% { transform: translateX(-50%) rotate(-4deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-6deg); }
}

/* farewell-and-forgiveness */
.scn-farewell-and-forgiveness {
  background: 
    linear-gradient(180deg, #4a4c56 0%, #2e303a 40%, #1a1c22 100%),
    radial-gradient(ellipse at 50% 0%, #5a5c66 0%, transparent 80%);
}
.scn-farewell-and-forgiveness .sky-overcast {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a5c66 0%, #2e303a 100%);
  animation: ff-sky-pulse 15s ease-in-out infinite alternate;
}
.scn-farewell-and-forgiveness .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1c22 0%, #0e1014 100%);
  border-radius: 30% 40% 0 0 / 60% 50% 0 0;
}
.scn-farewell-and-forgiveness .figure-left {
  position: absolute; bottom: 12%; left: 28%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #0e1014 0%, #06080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ff-figure-left 7s ease-in-out infinite;
}
.scn-farewell-and-forgiveness .figure-center {
  position: absolute; bottom: 14%; left: 42%; width: 34px; height: 56px;
  background: linear-gradient(180deg, #0e1014 0%, #06080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ff-figure-center 8s ease-in-out infinite;
}
.scn-farewell-and-forgiveness .figure-right {
  position: absolute; bottom: 10%; left: 58%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #0e1014 0%, #06080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ff-figure-right 9s ease-in-out infinite;
}
.scn-farewell-and-forgiveness .cloud-drift-a {
  position: absolute; top: 12%; left: -10%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(160,164,176,.5) 0%, rgba(160,164,176,.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: ff-drift-a 45s linear infinite;
}
.scn-farewell-and-forgiveness .cloud-drift-b {
  position: absolute; top: 20%; right: -8%; width: 90px; height: 14px;
  background: linear-gradient(180deg, rgba(160,164,176,.4) 0%, rgba(160,164,176,.05) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: ff-drift-b 50s linear infinite reverse;
}
@keyframes ff-sky-pulse {
  0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .7; }
}
@keyframes ff-figure-left {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); }
  60% { transform: translateX(2px) translateY(0) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes ff-figure-center {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(2px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-1px) translateY(-1px) rotate(-1deg); }
  75% { transform: translateX(1px) translateY(0) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes ff-figure-right {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  40% { transform: translateX(-4px) translateY(-1px) rotate(-3deg); }
  80% { transform: translateX(2px) translateY(0) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes ff-drift-a {
  0% { transform: translateX(0); } 100% { transform: translateX(130vw); }
}
@keyframes ff-drift-b {
  0% { transform: translateX(0); } 100% { transform: translateX(-120vw); }
}

/* star-of-dora */
.scn-star-of-dora {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a2a5e 100%),
    radial-gradient(ellipse at 50% 0%, #4a4a7e 0%, transparent 70%);
}
.scn-star-of-dora .night-sky {
  position: absolute; inset: 0 0 20% 0;
  background: radial-gradient(ellipse at 50% 30%, #2a2a5e 0%, #0a0a1a 100%);
}
.scn-star-of-dora .stars-bg {
  position: absolute; inset: 0;
  background: radial-gradient(1px 1px at 20% 30%, #ffffff 100%, transparent 100%),
              radial-gradient(1px 1px at 40% 70%, #ffffff 100%, transparent 100%),
              radial-gradient(1px 1px at 70% 15%, #ffffff 100%, transparent 100%),
              radial-gradient(1px 1px at 90% 80%, #ffffff 100%, transparent 100%);
  background-size: 100px 100px;
  animation: sod-stars-twinkle 5s ease-in-out infinite alternate;
}
.scn-star-of-dora .dora-star {
  position: absolute; top: 25%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffe080 0%, #f0c040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #f0c040, 0 0 80px 30px rgba(240,192,64,.4);
  animation: sod-star-pulse 4s ease-in-out infinite alternate;
}
.scn-star-of-dora .figure-looking-up {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sod-figure-look 8s ease-in-out infinite;
}
.scn-star-of-dora .ground-silhouette {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #0a0a12 0%, #040408 100%);
  border-radius: 80% 60% 0 0 / 100% 80% 0 0;
}
.scn-star-of-dora .glow-halo {
  position: absolute; top: 22%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,224,128,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: sod-halo-breathe 6s ease-in-out infinite;
}
@keyframes sod-stars-twinkle {
  0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; }
}
@keyframes sod-star-pulse {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 8px #f0c040; }
  50% { transform: translateX(-50%) scale(1.1); box-shadow: 0 0 50px 15px #ffe080; }
  100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 8px #f0c040; }
}
@keyframes sod-figure-look {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  30% { transform: translateX(-50%) translateY(-3px) rotate(0); }
  60% { transform: translateX(-50%) translateY(0) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes sod-halo-breathe {
  0% { opacity: .5; transform: translateX(-50%) scale(1); }
  50% { opacity: .8; transform: translateX(-50%) scale(1.05); }
  100% { opacity: .5; transform: translateX(-50%) scale(1); }
}

/* dora-not-human */
.scn-dora-not-human {
  background: 
    linear-gradient(180deg, #0a0a2a 0%, #1a1a4e 50%, #0e0e2a 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a6e 0%, transparent 60%);
}
.scn-dora-not-human .deep-space {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #1a1a4e 0%, #0a0a2a 100%);
}
.scn-dora-not-human .nebula {
  position: absolute; top: 20%; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(ellipse at 40% 50%, rgba(180,120,255,.3) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 40%, rgba(100,180,255,.2) 0%, transparent 50%);
  filter: blur(20px);
  animation: dnh-nebula-drift 20s ease-in-out infinite alternate;
}
.scn-dora-not-human .ethereal-figure {
  position: absolute; top: 20%; left: 50%; width: 50px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(255,230,200,.5) 0%, rgba(200,180,255,.2) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 20px rgba(200,180,255,.3);
  animation: dnh-figure-float 8s ease-in-out infinite;
}
.scn-dora-not-human .glowing-aura {
  position: absolute; top: 15%; left: 50%; width: 100px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,230,200,.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: dnh-aura-pulse 6s ease-in-out infinite alternate;
}
.scn-dora-not-human .sparkle-1 {
  position: absolute; top: 30%; left: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffe0a0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,224,160,.5);
  animation: dnh-sparkle-fall 5s ease-in-out infinite;
}
.scn-dora-not-human .sparkle-2 {
  position: absolute; top: 50%; left: 60%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffe0a0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,224,160,.5);
  animation: dnh-sparkle-fall 7s ease-in-out infinite 2s;
}
.scn-dora-not-human .sparkle-3 {
  position: absolute; top: 40%; left: 45%; width: 5px; height: 5px;
  background: radial-gradient(circle, #ffe0a0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 11px 3px rgba(255,224,160,.5);
  animation: dnh-sparkle-fall 6s ease-in-out infinite 4s;
}
@keyframes dnh-nebula-drift {
  0% { transform: translate(0,0) scale(1); opacity: .7; }
  50% { transform: translate(10px,-5px) scale(1.05); opacity: .9; }
  100% { transform: translate(-5px,5px) scale(1); opacity: .7; }
}
@keyframes dnh-figure-float {
  0% { transform: translateX(-50%) translateY(0) rotate(-3deg); }
  30% { transform: translateX(-50%) translateY(-8px) rotate(0); }
  60% { transform: translateX(-50%) translateY(0) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-3deg); }
}
@keyframes dnh-aura-pulse {
  0% { transform: translateX(-50%) scale(1); opacity: .6; }
  50% { transform: translateX(-50%) scale(1.1); opacity: .9; }
  100% { transform: translateX(-50%) scale(1); opacity: .6; }
}
@keyframes dnh-sparkle-fall {
  0% { transform: translateY(0) scale(1); opacity: 0; }
  20% { opacity: 1; }
  40% { transform: translateY(20px) scale(0.8); opacity: .8; }
  60% { transform: translateY(40px) scale(0.5); opacity: .5; }
  80% { transform: translateY(60px) scale(0.2); opacity: .2; }
  100% { transform: translateY(80px) scale(0); opacity: 0; }
}

.scn-dora-sends-for-agnes {
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 60%), radial-gradient(ellipse at 50% 20%, #3c2a24 0%, transparent 70%);
}
.scn-dora-sends-for-agnes .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3530 0%, #2a1f1a 100%); }
.scn-dora-sends-for-agnes .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a24 0%, #1a1210 100%); }
.scn-dora-sends-for-agnes .bed { position:absolute; bottom:20%; left:35%; width:150px; height:80px; background: linear-gradient(180deg, #5a4540 0%, #3a2a24 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); transform: scale(0.95); }
.scn-dora-sends-for-agnes .figure-dora { position:absolute; bottom:24%; left:40%; width:60px; height:50px; background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dsfa-breathe 5s ease-in-out infinite; }
.scn-dora-sends-for-agnes .chair { position:absolute; bottom:18%; left:58%; width:40px; height:50px; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius: 8% 8% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: dsfa-chair 12s ease-in-out infinite; }
.scn-dora-sends-for-agnes .lamp-glow { position:absolute; bottom:38%; left:30%; width:12px; height:12px; background: radial-gradient(circle, #e8c090 0%, #b08050 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(232,192,144,0.4), 0 0 60px 20px rgba(232,192,144,0.2); animation: dsfa-lamp 4s ease-in-out infinite alternate; }
.scn-dora-sends-for-agnes .door { position:absolute; bottom:30%; right:15%; width:50px; height:100px; background: linear-gradient(180deg, #4a3530 0%, #2a1f1a 100%); border-radius: 4% 4% 0 0; border-left: 2px solid #1a1210; transform: scaleY(1); animation: dsfa-door 0s linear; }

@keyframes dsfa-breathe { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } }
@keyframes dsfa-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes dsfa-lamp { 0% { opacity:0.7; box-shadow: 0 0 20px 6px rgba(232,192,144,0.3), 0 0 40px 12px rgba(232,192,144,0.15); } 100% { opacity:1; box-shadow: 0 0 40px 14px rgba(232,192,144,0.6), 0 0 80px 24px rgba(232,192,144,0.3); } }

/* jip-dies */
.scn-jip-dies {
  background: linear-gradient(180deg, #0e1628 0%, #1a2238 40%, #2a3a50 100%), radial-gradient(ellipse at 80% 20%, #4a6a8a 0%, transparent 70%);
}
.scn-jip-dies .room-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a3a50 0%, #0e1628 100%); }
.scn-jip-dies .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2238 0%, #0a0e18 100%); }
.scn-jip-dies .window-moon { position:absolute; top:10%; left:70%; width:80px; height:100px; background: #1a2a3e; border: 3px solid #4a5a6a; border-radius: 4%; box-shadow: inset 0 0 40px rgba(100,130,160,0.2); }
.scn-jip-dies .window-moon::before { content:''; position:absolute; top:15%; left:50%; width:30px; height:30px; background: radial-gradient(circle, #e0ecff 0%, #a0b8d0 80%); border-radius:50%; transform:translateX(-50%); box-shadow:0 0 60px 30px rgba(224,236,255,0.4); animation: jip-moon-glow 8s ease-in-out infinite alternate; }
.scn-jip-dies .fireplace { position:absolute; bottom:15%; left:50%; width:80px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 10% 10% 0 0; transform: translateX(-50%); }
.scn-jip-dies .dog-house { position:absolute; bottom:22%; left:25%; width:50px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%); transform:scale(0.9); }
.scn-jip-dies .dog-jip { position:absolute; bottom:22%; left:30%; width:20px; height:15px; background: #3a2a1a; border-radius: 50% 50% 30% 30%; animation: jip-sleep 6s ease-in-out infinite; }
.scn-jip-dies .moonlight-beam { position:absolute; top:0; left:68%; width:100px; height:100%; background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, transparent 60%); transform: skewX(-10deg); animation: jip-beam 20s ease-in-out infinite alternate; }

@keyframes jip-moon-glow { 0% { box-shadow: 0 0 40px 20px rgba(224,236,255,0.3); } 50% { box-shadow: 0 0 80px 40px rgba(224,236,255,0.5); } 100% { box-shadow: 0 0 50px 25px rgba(224,236,255,0.35); } }
@keyframes jip-sleep { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.05); } }
@keyframes jip-beam { 0% { opacity:0.5; transform: skewX(-10deg) translateX(-5px); } 100% { opacity:0.8; transform: skewX(-10deg) translateX(5px); } }

/* micawber-transactions-begin */
.scn-micawber-transactions-begin {
  background: linear-gradient(180deg, #f5ecd0 0%, #e8d8b0 40%), radial-gradient(ellipse at 50% 80%, #d8c8a0 0%, transparent 60%);
}
.scn-micawber-transactions-begin .parlour-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #fff8e8 0%, #f0e4c8 100%); }
.scn-micawber-transactions-begin .parlour-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); }
.scn-micawber-transactions-begin .table { position:absolute; bottom:18%; left:30%; width:160px; height:60px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.15); transform: perspective(200px) rotateX(5deg); }
.scn-micawber-transactions-begin .chair-left { position:absolute; bottom:20%; left:22%; width:40px; height:60px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 10% 10% 20% 20%; animation: mtb-chair 10s ease-in-out infinite; }
.scn-micawber-transactions-begin .chair-right { position:absolute; bottom:20%; right:22%; width:40px; height:60px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 10% 10% 20% 20%; animation: mtb-chair 10s ease-in-out infinite reverse; }
.scn-micawber-transactions-begin .window-sun { position:absolute; top:10%; left:70%; width:80px; height:100px; background: linear-gradient(180deg, #fff8d0 0%, #f0e4b0 100%); border: 3px solid #c8b898; border-radius: 4%; box-shadow: 0 0 30px 10px rgba(255,248,200,0.3); }
.scn-micawber-transactions-begin .papers { position:absolute; bottom:30%; left:40%; width:30px; height:20px; background: #f5f0e0; border-radius: 2%; transform: rotate(-10deg); animation: mtb-papers 6s ease-in-out infinite; }

@keyframes mtb-chair { 0%,100% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-3px) rotate(0.5deg); } 66% { transform: translateY(-1px) rotate(-0.5deg); } }
@keyframes mtb-papers { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-8deg) translateY(-1px); } }

/* micawber-family-reconciliation */
.scn-micawber-family-reconciliation {
  background: linear-gradient(180deg, #4a2a1a 0%, #7a4a2a 40%, #a06030 100%), radial-gradient(ellipse at 50% 90%, #d08040 0%, transparent 60%);
}
.scn-micawber-family-reconciliation .room-warm { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a1a 100%); }
.scn-micawber-family-reconciliation .carpet { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a3a1a 0%, #4a2a0a 100%); }
.scn-micawber-family-reconciliation .fireplace-hearth { position:absolute; bottom:15%; left:50%; width:100px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 12% 12% 0 0; transform: translateX(-50%); }
.scn-micawber-family-reconciliation .fire-glow { position:absolute; bottom:18%; left:50%; width:60px; height:40px; background: radial-gradient(circle, #ffcc80 0%, #ff9940 50%, transparent 100%); border-radius: 50%; transform: translateX(-50%); animation: mfr-fire 3s ease-in-out infinite alternate; box-shadow: 0 0 50px 30px rgba(255,153,64,0.4); }
.scn-micawber-family-reconciliation .sofa { position:absolute; bottom:10%; left:25%; width:140px; height:60px; background: linear-gradient(180deg, #7a4a2a 0%, #5a3a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-micawber-family-reconciliation .figure-mrs { position:absolute; bottom:20%; left:32%; width:30px; height:50px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 50% 50%; animation: mfr-talk 7s ease-in-out infinite; }
.scn-micawber-family-reconciliation .figure-mr { position:absolute; bottom:20%; right:32%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 50% 50%; animation: mfr-talk 7s ease-in-out infinite 0.5s; }
.scn-micawber-family-reconciliation .lamp-shade { position:absolute; bottom:40%; left:75%; width:20px; height:30px; background: radial-gradient(ellipse at 30% 60%, #d08040 0%, #a06030 70%); border-radius: 80% 80% 10% 10%; box-shadow: 0 -10px 20px 10px rgba(208,128,64,0.3); animation: mfr-lamp 5s ease-in-out infinite; }

@keyframes mfr-fire { 0% { opacity:0.7; transform: translateX(-50%) scale(0.95); } 100% { opacity:1; transform: translateX(-50%) scale(1.05); } }
@keyframes mfr-talk { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes mfr-lamp { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }

.scn-commons-digression {
  background: 
    linear-gradient(180deg, #aab0b8 0%, #8a9098 40%, #6a7078 100%),
    radial-gradient(ellipse at 50% 100%, #5a6068 0%, transparent 70%);
}
.scn-commons-digression .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a9098 0%, #aab0b8 40%, transparent 100%);
  animation: cd-sky 15s ease-in-out infinite alternate;
}
.scn-commons-digression .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.3);
  animation: cd-hills 20s ease-in-out infinite alternate;
}
.scn-commons-digression .road {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #4a5048 0%, #383e38 100%);
  border-radius: 50% / 100%;
  animation: cd-road 12s ease-in-out infinite alternate;
}
.scn-commons-digression .tree {
  position: absolute; bottom: 30%; left: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: cd-tree 8s ease-in-out infinite;
}
.scn-commons-digression .cloud-a {
  position: absolute; top: 10%; left: 10%; width: 120px; height: 20px;
  background: rgba(200,200,210,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: cd-drift-a 45s linear infinite;
}
.scn-commons-digression .cloud-b {
  position: absolute; top: 20%; right: 10%; width: 80px; height: 14px;
  background: rgba(200,200,210,0.2);
  border-radius: 50%;
  filter: blur(6px);
  animation: cd-drift-b 60s linear infinite reverse;
}
@keyframes cd-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cd-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes cd-road { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-1px); } 100% { transform: scaleX(0.98) translateY(1px); } }
@keyframes cd-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes cd-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes cd-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-miss-murdstone-recognition {
  background: 
    linear-gradient(180deg, #f5f0e5 0%, #e5d8c5 40%, #c8b8a0 100%),
    radial-gradient(circle at 30% 50%, #ffffff 0%, transparent 70%);
}
.scn-miss-murdstone-recognition .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8ddd0 0%, #d0c0a8 100%);
  opacity: 0.5;
}
.scn-miss-murdstone-recognition .window {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #ffffff 0%, #eef0f5 100%);
  border: 8px solid #a09080;
  box-shadow: inset 0 0 40px rgba(255,255,255,0.6);
  animation: mr-window 4s ease-in-out infinite alternate;
}
.scn-miss-murdstone-recognition .shadow {
  position: absolute; bottom: 0; left: 15%; width: 50%; height: 60%;
  background: linear-gradient(135deg, rgba(30,30,40,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%);
  animation: mr-shadow 3s ease-in-out infinite alternate;
}
.scn-miss-murdstone-recognition .figure {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-figure 5s ease-in-out infinite;
}
.scn-miss-murdstone-recognition .desk {
  position: absolute; bottom: 10%; right: 10%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-miss-murdstone-recognition .lamp {
  position: absolute; bottom: 30%; right: 22%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #c09050 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(255,208,128,0.5);
  animation: mr-lamp 2s ease-in-out infinite alternate;
}
@keyframes mr-window { 0% { opacity: 0.9; filter: brightness(1); } 100% { opacity: 1; filter: brightness(1.2); } }
@keyframes mr-shadow { 0% { opacity: 0.5; transform: skewX(-2deg); } 50% { opacity: 0.8; transform: skewX(2deg); } 100% { opacity: 0.6; transform: skewX(0); } }
@keyframes mr-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mr-lamp { 0% { opacity: 0.8; box-shadow: 0 0 16px 4px rgba(255,208,128,0.3); } 100% { opacity: 1; box-shadow: 0 0 32px 12px rgba(255,208,128,0.5); } }

.scn-doras-confidential-friend {
  background: 
    linear-gradient(180deg, #f8f4ec 0%, #ece4d8 50%, #d8ccbc 100%),
    radial-gradient(circle at 50% 0%, #ffffff 0%, transparent 80%);
}
.scn-doras-confidential-friend .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0eadc 0%, #e0d4c0 100%);
  border-bottom: 4px solid #c8b8a0;
}
.scn-doras-confidential-friend .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d0c4b0 0%, #b8a890 100%);
  border-radius: 0 0 20% 20%;
}
.scn-doras-confidential-friend .window {
  position: absolute; top: 10%; left: 50%; width: 35%; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffffff 0%, #eef2f5 100%);
  border: 6px solid #a09080;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.4);
  animation: dc-window 6s ease-in-out infinite alternate;
}
.scn-doras-confidential-friend .table {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 18px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50% / 100%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-doras-confidential-friend .chair-a {
  position: absolute; bottom: 26%; left: 32%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #b8a090 0%, #8a7a6a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: dc-chair 8s ease-in-out infinite;
}
.scn-doras-confidential-friend .chair-b {
  position: absolute; bottom: 26%; right: 30%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #b8a090 0%, #8a7a6a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: dc-chair 8s ease-in-out infinite reverse;
}
.scn-doras-confidential-friend .teacup {
  position: absolute; bottom: 38%; left: 44%; width: 12px; height: 10px;
  background: radial-gradient(circle, #f5f0e5 0%, #d0c4b0 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: dc-teacup 4s ease-in-out infinite;
}
@keyframes dc-window { 0% { opacity: 0.9; } 100% { opacity: 1; filter: brightness(1.05); } }
@keyframes dc-chair { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dc-teacup { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-garden-of-eden-dream {
  background: 
    linear-gradient(180deg, #c8a870 0%, #d4bc8c 40%, #e8d4a0 100%),
    radial-gradient(ellipse at 30% 20%, #f0e0b0 0%, transparent 70%);
}
.scn-garden-of-eden-dream .room-bg {
  position: absolute; inset: 0 40% 0 0;
  background: linear-gradient(180deg, #b8a078 0%, #a09068 100%);
  border-right: 6px solid #6a5a3a;
}
.scn-garden-of-eden-dream .window-frame {
  position: absolute; top: 5%; right: 5%; width: 50%; height: 90%;
  background: transparent;
  border: 10px solid #4a3a2a;
  box-shadow: inset 0 0 40px rgba(255,220,180,0.3);
  animation: ge-frame 8s ease-in-out infinite;
}
.scn-garden-of-eden-dream .garden {
  position: absolute; top: 10%; right: 10%; width: 40%; height: 80%;
  background: 
    linear-gradient(180deg, #6a8a5a 0%, #8aaa6a 50%, #5a7a4a 100%),
    radial-gradient(circle at 20% 50%, #7aaa5a 0%, transparent 80%);
  border-radius: 10% 30% 10% 30%;
  filter: blur(2px);
  animation: ge-garden 15s ease-in-out infinite alternate;
}
.scn-garden-of-eden-dream .figure {
  position: absolute; bottom: 25%; left: 10%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ge-figure 6s ease-in-out infinite;
}
.scn-garden-of-eden-dream .chair {
  position: absolute; bottom: 20%; left: 8%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-garden-of-eden-dream .book {
  position: absolute; bottom: 28%; left: 14%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px;
  transform: rotate(10deg);
  animation: ge-book 9s ease-in-out infinite;
}
@keyframes ge-frame { 0% { border-color: #4a3a2a; } 50% { border-color: #6a5a3a; } 100% { border-color: #4a3a2a; } }
@keyframes ge-garden { 0% { filter: blur(2px) brightness(0.9); } 50% { filter: blur(2px) brightness(1.1); } 100% { filter: blur(2px) brightness(0.95); } }
@keyframes ge-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(1deg); } 50% { transform: translateY(-2px) rotate(0); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ge-book { 0% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(10deg); } }

.scn-peg-proposes-yarmouth {
  background: linear-gradient(180deg, #c8a87c 0%, #a08060 40%, #6a5038 100%), radial-gradient(ellipse at 30% 50%, #d4b896 0%, transparent 70%);
}
.scn-peg-proposes-yarmouth .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #b89878 0%, #8a6a4a 100%); animation: ppy-bg 20s ease-in-out infinite alternate; }
.scn-peg-proposes-yarmouth .window { position:absolute; top:12%; left:60%; width:80px; height:100px; background: linear-gradient(180deg, #d4b896 0%, #b89878 100%); border:4px solid #6a5038; border-radius:4px; box-shadow: 0 0 20px rgba(180,140,100,.3); }
.scn-peg-proposes-yarmouth .window-glow { position:absolute; top:12%; left:60%; width:80px; height:100px; background: radial-gradient(circle at 50% 50%, #f0d8b8 0%, transparent 70%); opacity:.4; animation: ppy-glow 5s ease-in-out infinite alternate; }
.scn-peg-proposes-yarmouth .table { position:absolute; bottom:20%; left:30%; width:120px; height:20px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-peg-proposes-yarmouth .figure-peg { position:absolute; bottom:25%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ppy-sway 4s ease-in-out infinite; }
.scn-peg-proposes-yarmouth .figure-davy { position:absolute; bottom:22%; left:48%; width:20px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ppy-sway 5s ease-in-out infinite 1s; }
.scn-peg-proposes-yarmouth .chair { position:absolute; bottom:22%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:10% 10% 30% 30%; box-shadow: 2px 0 6px rgba(0,0,0,.4); }
.scn-peg-proposes-yarmouth .hearth { position:absolute; bottom:8%; right:10%; width:70px; height:50px; background: radial-gradient(ellipse at 50% 100%, #d06030 0%, #8a3a1a 50%, #3a1a0a 100%); border-radius:30% 30% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: ppy-fire 2s ease-in-out infinite alternate; }
@keyframes ppy-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ppy-glow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.05) } 100% { opacity:.35; transform: scale(.95) } }
@keyframes ppy-sway { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(0) translateY(-2px) } 50% { transform: rotate(2deg) translateY(0) } 75% { transform: rotate(0) translateY(-1px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes ppy-fire { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:.9; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(.95) } }

.scn-discussion-with-mother {
  background: linear-gradient(180deg, #c0a080 0%, #9a7a5a 50%, #5a3a2a 100%), radial-gradient(ellipse at 70% 30%, #d8b898 0%, transparent 60%);
}
.scn-discussion-with-mother .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #b08a6a 0%, #7a5a3a 100%); animation: dwm-bg 15s ease-in-out infinite alternate; }
.scn-discussion-with-mother .fireplace { position:absolute; bottom:10%; left:50%; width:100px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #8a5a3a 0%, #4a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); }
.scn-discussion-with-mother .mantel { position:absolute; bottom:42%; left:50%; width:110px; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.scn-discussion-with-mother .clock { position:absolute; bottom:42%; left:50%; width:16px; height:20px; transform:translateX(-50%) translateY(-10px); background: radial-gradient(circle, #d4b896 0%, #8a6a4a 100%); border-radius:50%; box-shadow: 0 0 8px rgba(0,0,0,.3); animation: dwm-tick 60s linear infinite; }
.scn-discussion-with-mother .chair-left { position:absolute; bottom:18%; left:30%; width:45px; height:55px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:10% 10% 30% 30%; box-shadow: -4px 0 8px rgba(0,0,0,.3); }
.scn-discussion-with-mother .chair-right { position:absolute; bottom:18%; right:30%; width:45px; height:55px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:10% 10% 30% 30%; box-shadow: 4px 0 8px rgba(0,0,0,.3); }
.scn-discussion-with-mother .figure-peg { position:absolute; bottom:22%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: dwm-sit 6s ease-in-out infinite; }
.scn-discussion-with-mother .figure-davy { position:absolute; bottom:20%; right:35%; width:20px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: dwm-sit 7s ease-in-out infinite 1s; }
@keyframes dwm-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dwm-tick { 0% { transform: translateX(-50%) translateY(-10px) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-10px) rotate(180deg) } 100% { transform: translateX(-50%) translateY(-10px) rotate(360deg) } }
@keyframes dwm-sit { 0% { transform: scale(1) } 25% { transform: scale(1.02) } 50% { transform: scale(1) } 75% { transform: scale(.98) } 100% { transform: scale(1) } }

.scn-peg-evades-question {
  background: linear-gradient(180deg, #b09070 0%, #8a6a4a 40%, #5a3a2a 100%), radial-gradient(ellipse at 50% 80%, #c8a888 0%, transparent 70%);
}
.scn-peg-evades-question .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #a08060 0%, #705040 100%); animation: peq-bg 18s ease-in-out infinite alternate; }
.scn-peg-evades-question .lamp { position:absolute; top:25%; right:20%; width:20px; height:30px; background: radial-gradient(circle at 50% 0%, #f0d8b8 0%, #c8a070 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 30px #d8b080, 0 0 60px rgba(216,176,128,.3); animation: peq-lamp 3s ease-in-out infinite alternate; }
.scn-peg-evades-question .chair { position:absolute; bottom:15%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:10% 10% 30% 30%; }
.scn-peg-evades-question .figure-peg { position:absolute; bottom:20%; left:32%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: peq-bend 5s ease-in-out infinite; }
.scn-peg-evades-question .hands { position:absolute; bottom:24%; left:36%; width:30px; height:14px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10%; transform-origin: left center; animation: peq-knit 3s ease-in-out infinite; }
.scn-peg-evades-question .stocking { position:absolute; bottom:16%; left:40%; width:18px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:30% 30% 60% 60% / 30% 30% 40% 40%; transform: rotate(-20deg); animation: peq-stock 4s ease-in-out infinite; }
.scn-peg-evades-question .basket { position:absolute; bottom:10%; left:45%; width:40px; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:30% 30% 10% 10%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.3); }
.scn-peg-evades-question .needle { position:absolute; bottom:30%; left:37%; width:2px; height:20px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius:50%; transform: rotate(30deg); animation: peq-need 2s ease-in-out infinite alternate; }
@keyframes peq-bg { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes peq-lamp { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:.9; transform: scaleY(1.05) } 100% { opacity:.8; transform: scaleY(.95) } }
@keyframes peq-bend { 0% { transform: rotate(-3deg) translateX(0) } 25% { transform: rotate(0) translateX(2px) } 50% { transform: rotate(2deg) translateX(0) } 75% { transform: rotate(0) translateX(-2px) } 100% { transform: rotate(-1deg) translateX(0) } }
@keyframes peq-knit { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(1) } }
@keyframes peq-stock { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-20deg) } }
@keyframes peq-need { 0% { transform: rotate(30deg) scaleY(1) } 50% { transform: rotate(35deg) scaleY(1.05) } 100% { transform: rotate(30deg) scaleY(1) } }

.scn-mother-farewell-kiss {
  background: linear-gradient(180deg, #b8d0e0 0%, #d8e8f0 30%, #f0d8b8 80%, #c8a070 100%), radial-gradient(ellipse at 70% 90%, #f0d8b8 0%, transparent 60%);
}
.scn-mother-farewell-kiss .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0c8d8 0%, #d8e0e8 60%, #e8d8c0 100%); animation: mfk-sky 30s ease-in-out infinite alternate; }
.scn-mother-farewell-kiss .road { position:absolute; bottom:10%; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a2a 100%); border-radius:0 0 20% 20% / 0 0 10% 10%; }
.scn-mother-farewell-kiss .gate { position:absolute; bottom:25%; left:50%; width:60px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:10% 10% 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.2), 4px 0 8px rgba(0,0,0,.2); }
.scn-mother-farewell-kiss .cart { position:absolute; bottom:20%; left:15%; width:100px; height:50px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius:20% 20% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-mother-farewell-kiss .figure-mother { position:absolute; bottom:22%; left:50%; width:30px; height:54px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mfk-bend 6s ease-in-out infinite; }
.scn-mother-farewell-kiss .figure-davy { position:absolute; bottom:24%; left:20%; width:20px; height:34px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mfk-lean 5s ease-in-out infinite; }
.scn-mother-farewell-kiss .fence { position:absolute; bottom:28%; left:0; right:0; height:5px; background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 50%, #6a5a3a 100%); }
.scn-mother-farewell-kiss .clouds { position:absolute; top:10%; left:0; width:100%; height:50px; background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,.6) 0%, transparent 60%), radial-gradient(ellipse at 70% 30%, rgba(255,255,255,.4) 0%, transparent 50%); filter: blur(8px); animation: mfk-drift 45s linear infinite; }
@keyframes mfk-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mfk-bend { 0% { transform: translateX(-50%) rotate(-3deg) } 25% { transform: translateX(-50%) rotate(0) translateY(-2px) } 50% { transform: translateX(-50%) rotate(3deg) } 75% { transform: translateX(-50%) rotate(0) translateY(-1px) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes mfk-lean { 0% { transform: rotate(-5deg) } 25% { transform: rotate(0) } 50% { transform: rotate(3deg) } 75% { transform: rotate(0) } 100% { transform: rotate(-4deg) } }
@keyframes mfk-drift { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(40px) } }

.scn-poor-baby-rebuke {
  background: linear-gradient(180deg, #1f0d05 0%, #3a1a0a 50%, #5a2a0a 100%), radial-gradient(ellipse at 50% 20%, #ff7f2a 0%, transparent 70%);
}
.scn-poor-baby-rebuke .fire-glow {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse, #ff6a00 0%, #b33a00 50%, transparent 80%);
  border-radius: 50%; filter: blur(20px);
  animation: pbr-glow 3s ease-in-out infinite alternate;
}
.scn-poor-baby-rebuke .hearth {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px #00000066;
}
.scn-poor-baby-rebuke .flame {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #ff6000 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pbr-flame 0.8s ease-in-out infinite alternate;
}
.scn-poor-baby-rebuke .log {
  position: absolute; bottom: 22%; left: 35%; width: 30%; height: 5%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 20%; box-shadow: 0 2px 6px #00000066;
  animation: pbr-log 6s ease-in-out infinite;
}
.scn-poor-baby-rebuke .figure {
  position: absolute; bottom: 20%; left: 55%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbr-figure 4s ease-in-out infinite;
}
.scn-poor-baby-rebuke .shadow {
  position: absolute; bottom: 18%; left: 52%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, #00000066 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: pbr-shadow 4s ease-in-out infinite;
}
.scn-poor-baby-rebuke .chair {
  position: absolute; bottom: 18%; right: 15%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset -4px 0 8px #00000044;
}
@keyframes pbr-glow {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes pbr-flame {
  0% { transform: scaleY(1) scaleX(1) rotate(-2deg); }
  50% { transform: scaleY(1.2) scaleX(0.9) rotate(0deg); }
  100% { transform: scaleY(0.9) scaleX(1.1) rotate(2deg); }
}
@keyframes pbr-log {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes pbr-figure {
  0%, 100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(2deg); }
}
@keyframes pbr-shadow {
  0%, 100% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
}

.scn-first-memories-mother {
  background: linear-gradient(180deg, #fce4c0 0%, #f0d09a 50%, #e0b87a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-first-memories-mother .window {
  position: absolute; top: 10%; left: 60%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #c8e0f0 0%, #a0c8d8 100%);
  border: 4px solid #5a3a2a; border-radius: 4%;
  box-shadow: inset 0 0 30px #ffffff88;
}
.scn-first-memories-mother .light-beam {
  position: absolute; top: 10%; left: 60%; width: 35%; height: 90%;
  background: linear-gradient(135deg, #fffde8 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%);
  animation: fmm-beam 12s ease-in-out infinite alternate;
}
.scn-first-memories-mother .mother {
  position: absolute; bottom: 15%; left: 25%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #b89a7a 0%, #8a6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset -6px 0 12px #5a3a2a44;
  animation: fmm-mother 8s ease-in-out infinite;
}
.scn-first-memories-mother .child {
  position: absolute; bottom: 12%; left: 30%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #d4b89a 0%, #a08060 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: fmm-child 6s ease-in-out infinite;
}
.scn-first-memories-mother .peggotty {
  position: absolute; bottom: 15%; right: 15%; width: 28%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 45% 45% / 70% 70% 40% 40%;
  box-shadow: inset 0 -8px 16px #1a0a0066;
  animation: fmm-pegg 10s ease-in-out infinite;
}
.scn-first-memories-mother .cradle {
  position: absolute; bottom: 12%; left: 20%; width: 22%; height: 15%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-5deg);
  animation: fmm-cradle 4s ease-in-out infinite alternate;
}
@keyframes fmm-beam {
  0% { opacity: 0.4; transform: translateX(-5px); }
  50% { opacity: 0.8; transform: translateX(10px); }
  100% { opacity: 0.6; transform: translateX(0); }
}
@keyframes fmm-mother {
  0%, 100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes fmm-child {
  0%, 100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes fmm-pegg {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}
@keyframes fmm-cradle {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(-6deg); }
}

.scn-peg-gotty-marriage-question {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c890 50%, #c8a870 100%), radial-gradient(ellipse at 50% 80%, #fff4d0 0%, transparent 70%);
}
.scn-peg-gotty-marriage-question .peg-figure {
  position: absolute; bottom: 10%; left: 15%; width: 30%; height: 55%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: inset -4px 0 8px #1a0a0066;
  animation: pgm-peg 9s ease-in-out infinite;
}
.scn-peg-gotty-marriage-question .davy-figure {
  position: absolute; bottom: 12%; left: 50%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #d4b89a 0%, #a08060 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: pgm-davy 6s ease-in-out infinite;
}
.scn-peg-gotty-marriage-question .table {
  position: absolute; bottom: 8%; left: 35%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px #00000044;
}
.scn-peg-gotty-marriage-question .cup {
  position: absolute; bottom: 22%; left: 45%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #e0c8a0 0%, #b89a7a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 20% 20%;
  transform: rotate(-10deg);
  animation: pgm-cup 7s ease-in-out infinite;
}
.scn-peg-gotty-marriage-question .window {
  position: absolute; top: 5%; right: 10%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #d0e8f0 0%, #a0c8d0 100%);
  border: 3px solid #5a3a2a; border-radius: 6%;
}
.scn-peg-gotty-marriage-question .curtain {
  position: absolute; top: 5%; right: 8%; width: 24%; height: 45%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: pgm-curtain 15s ease-in-out infinite alternate;
}
@keyframes pgm-peg {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
}
@keyframes pgm-davy {
  0%, 100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(4px) rotate(2deg); }
}
@keyframes pgm-cup {
  0%, 100% { transform: translateY(0) rotate(-10deg); }
  50% { transform: translateY(-1px) rotate(-7deg); }
}
@keyframes pgm-curtain {
  0% { clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); }
  50% { clip-path: polygon(0 0, 100% 0, 75% 100%, 25% 100%); }
  100% { clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); }
}

.scn-death-and-marriage-theory {
  background: linear-gradient(180deg, #d0d8e0 0%, #a0b0b8 50%, #8090a0 100%), radial-gradient(ellipse at 70% 20%, #e0e8f0 0%, transparent 70%);
}
.scn-death-and-marriage-theory .window-pane {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #c8d8e8 0%, #a0b8c8 100%);
  border: 3px solid #4a3a2a; border-radius: 6%;
  box-shadow: inset 0 0 20px #ffffff44;
}
.scn-death-and-marriage-theory .light-shaft {
  position: absolute; top: 10%; left: 12%; width: 40%; height: 90%;
  background: linear-gradient(135deg, #e8f0f8 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 0, 50% 100%, 0 100%);
  animation: dmt-light 14s ease-in-out infinite alternate;
}
.scn-death-and-marriage-theory .peg-figure {
  position: absolute; bottom: 15%; left: 50%; width: 25%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: inset -4px 0 8px #1a0a0066;
  animation: dmt-peg 10s ease-in-out infinite;
}
.scn-death-and-marriage-theory .davy-figure {
  position: absolute; bottom: 18%; left: 30%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #c0a88a 0%, #907060 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: dmt-davy 7s ease-in-out infinite;
}
.scn-death-and-marriage-theory .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-death-and-marriage-theory .chair-bg {
  position: absolute; bottom: 12%; right: 10%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset -4px 0 8px #00000044;
}
@keyframes dmt-light {
  0% { opacity: 0.3; transform: translateX(-10px); }
  50% { opacity: 0.7; transform: translateX(15px); }
  100% { opacity: 0.5; transform: translateX(0); }
}
@keyframes dmt-peg {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
}
@keyframes dmt-davy {
  0%, 100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(5px) rotate(2deg); }
}

/* nightmarish-self-doubt */
.scn-nightmarish-self-doubt {
  background: linear-gradient(180deg, #1a0c08 0%, #2d1610 40%, #3a1e14 70%, #1a0c08 100%), radial-gradient(ellipse at 50% 80%, #c8553d 0%, transparent 60%);
}
.scn-nightmarish-self-doubt .bg-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, transparent 30%, #0d0503 70%); animation: nsi-shift 12s ease-in-out infinite alternate; }
.scn-nightmarish-self-doubt .fireplace { position:absolute; bottom:20%; left:50%; width:140px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a140a 100%); border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-nightmarish-self-doubt .flames { position:absolute; bottom:30%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #c8553d 40%, transparent 70%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; animation: nsi-flame 3s ease-in-out infinite alternate; mix-blend-mode: screen; }
.scn-nightmarish-self-doubt .embers { position:absolute; bottom:20%; left:50%; width:40px; height:20px; transform:translateX(-50%) translateY(10px); background: radial-gradient(ellipse, #e07030 0%, transparent 70%); border-radius: 50%; animation: nsi-ember 4s ease-in-out infinite; }
.scn-nightmarish-self-doubt .figure { position:absolute; bottom:18%; left:42%; width:40px; height:80px; background: linear-gradient(180deg, #1a0c0a 0%, #0d0503 100%); border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: nsi-cower 5s ease-in-out infinite; }
.scn-nightmarish-self-doubt .shadow-figure { position:absolute; bottom:18%; left:56%; width:50px; height:90px; background: rgba(10,5,3,.8); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: nsi-loom 7s ease-in-out infinite alternate; filter: blur(2px); }
.scn-nightmarish-self-doubt .smoke1 { position:absolute; top:15%; left:45%; width:30px; height:60px; background: radial-gradient(ellipse, rgba(200,160,140,.3) 0%, transparent 60%); border-radius: 50%; filter: blur(6px); animation: nsi-smoke 8s linear infinite; }
.scn-nightmarish-self-doubt .smoke2 { position:absolute; top:20%; right:40%; width:40px; height:70px; background: radial-gradient(ellipse, rgba(200,160,140,.2) 0%, transparent 60%); border-radius: 50%; filter: blur(5px); animation: nsi-smoke 10s linear infinite reverse; }
.scn-nightmarish-self-doubt .glint { position:absolute; top:5%; left:30%; width:4px; height:4px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(255,208,128,.6); animation: nsi-glint 2s ease-in-out infinite alternate; }
@keyframes nsi-shift   { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.6 } }
@keyframes nsi-flame   { 0% { transform:translateX(-50%) scaleY(1) scaleX(.9); opacity:.8 } 50% { transform:translateX(-50%) scaleY(1.15) scaleX(1.1); opacity:1 } 100% { transform:translateX(-50%) scaleY(.95) scaleX(1); opacity:.7 } }
@keyframes nsi-ember   { 0% { transform:translateX(-50%) translateY(10px) scale(1) } 50% { transform:translateX(-50%) translateY(5px) scale(1.3) } 100% { transform:translateX(-50%) translateY(12px) scale(.9) } }
@keyframes nsi-cower   { 0% { transform:translateX(0) rotate(-2deg); opacity:.8 } 25% { transform:translateX(4px) rotate(2deg); opacity:.9 } 50% { transform:translateX(-2px) rotate(-1deg); opacity:1 } 75% { transform:translateX(3px) rotate(0); opacity:.85 } 100% { transform:translateX(0) rotate(-1deg); opacity:.75 } }
@keyframes nsi-loom    { 0% { transform:scale(1) rotate(0); opacity:.4 } 50% { transform:scale(1.08) rotate(1deg); opacity:.6 } 100% { transform:scale(.95) rotate(-1deg); opacity:.3 } }
@keyframes nsi-smoke   { 0% { transform:translateY(0) scale(1); opacity:.4 } 50% { transform:translateY(-30px) scale(1.5); opacity:.2 } 100% { transform:translateY(-60px) scale(2); opacity:0 } }
@keyframes nsi-glint   { 0% { transform:scale(.8); opacity:.3 } 50% { transform:scale(1.3); opacity:1 } 100% { transform:scale(.8); opacity:.4 } }

/* boat-rename-emly */
.scn-boat-rename-emly {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #c0b090 100%), radial-gradient(ellipse at 50% 30%, #f5f0e0 0%, transparent 60%);
}
.scn-boat-rename-emly .bg-interior { position:absolute; inset:0; background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 100%); animation: bre-pulse 15s ease-in-out infinite alternate; }
.scn-boat-rename-emly .window { position:absolute; top:10%; left:10%; width:80px; height:60px; background: linear-gradient(135deg, #6fa8dc 0%, #4a7cbb 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.2); border: 4px solid #8a7a6a; animation: bre-water 6s ease-in-out infinite alternate; }
.scn-boat-rename-emly .table { position:absolute; bottom:20%; left:20%; width:120px; height:30px; background: linear-gradient(180deg, #b09878 0%, #8a7a5a 100%); border-radius: 5% 5% 10% 10% / 20% 20% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-boat-rename-emly .bottle { position:absolute; bottom:25%; left:28%; width:12px; height:30px; background: linear-gradient(180deg, #507050 0%, #305030 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: bre-bottle 4s ease-in-out infinite; }
.scn-boat-rename-emly .figure-a { position:absolute; bottom:15%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #3a3a4a 0%, #222230 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: bre-stand 5s ease-in-out infinite alternate; }
.scn-boat-rename-emly .figure-b { position:absolute; bottom:15%; left:50%; width:28px; height:65px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: bre-stand 6s ease-in-out infinite alternate-reverse; }
.scn-boat-rename-emly .sail-ornament { position:absolute; top:5%; right:15%; width:50px; height:70px; background: linear-gradient(135deg, #e0d0b0 0%, #c8b090 100%); clip-path: polygon(50% 0%, 100% 100%, 0% 100%); opacity:.3; animation: bre-sway 8s ease-in-out infinite; }
@keyframes bre-pulse   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bre-water   { 0% { background-position: 0% 50% } 50% { background-position: 100% 50% } 100% { background-position: 0% 50% } background-size: 200% 100%; }
@keyframes bre-bottle  { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-3deg) } }
@keyframes bre-stand   { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-2px) rotate(0) } 100% { transform:translateY(0) rotate(1deg) } }
@keyframes bre-sway    { 0% { transform:rotate(-3deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(-2deg) } }

/* polite-compliment-mowcher */
.scn-polite-compliment-mowcher {
  background: linear-gradient(180deg, #f5e8d8 0%, #e0c8b0 50%, #c8a890 100%), radial-gradient(ellipse at 50% 50%, #fdf6ef 0%, transparent 70%);
}
.scn-polite-compliment-mowcher .bg-parlour { position:absolute; inset:0; background: linear-gradient(135deg, #f0e0d0 0%, #d8c0a8 100%); animation: pcm-warm 10s ease-in-out infinite alternate; }
.scn-polite-compliment-mowcher .mirror { position:absolute; top:10%; right:15%; width:80px; height:100px; background: linear-gradient(135deg, #d4d8e0 0%, #a0a8b0 100%); border-radius: 10% 10% 5% 5% / 15% 15% 10% 10%; box-shadow: inset 0 0 15px rgba(0,0,0,.1), 0 4px 8px rgba(0,0,0,.2); border: 6px solid #8a7a5a; animation: pcm-shine 4s ease-in-out infinite alternate; }
.scn-polite-compliment-mowcher .mowcher-figure { position:absolute; bottom:15%; left:25%; width:50px; height:70px; background: linear-gradient(180deg, #c8a898 0%, #a08070 100%); border-radius: 50% 50% 40% 40% / 80% 80% 30% 30%; transform-origin: bottom center; animation: pcm-curtsey 3s ease-in-out infinite; }
.scn-polite-compliment-mowcher .tiny-hand { position:absolute; bottom:50%; left:35%; width:8px; height:12px; background: #e0c0b0; border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: pcm-hand 3.5s ease-in-out infinite; }
.scn-polite-compliment-mowcher .chair { position:absolute; bottom:10%; right:20%; width:50px; height:60px; background: linear-gradient(180deg, #705848 0%, #504030 100%); border-radius: 10% 10% 20% 20% / 15% 15% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-polite-compliment-mowcher .fan { position:absolute; top:45%; left:20%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #e8c8a8 0%, #d0a880 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform-origin: bottom center; animation: pcm-fan 5s ease-in-out infinite; }
@keyframes pcm-warm   { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pcm-shine  { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes pcm-curtsey { 0% { transform:rotate(-3deg) scaleY(1) } 25% { transform:rotate(0) scaleY(.9) } 50% { transform:rotate(2deg) scaleY(1) } 75% { transform:rotate(0) scaleY(.95) } 100% { transform:rotate(-2deg) scaleY(1) } }
@keyframes pcm-hand   { 0% { transform:translate(0,0) rotate(-10deg) } 50% { transform:translate(5px,-3px) rotate(10deg) } 100% { transform:translate(0,0) rotate(-5deg) } }
@keyframes pcm-fan    { 0% { transform:rotate(-15deg) scaleX(.8) } 50% { transform:rotate(15deg) scaleX(1.1) } 100% { transform:rotate(-10deg) scaleX(.9) } }

/* system-of-princes-nails */
.scn-system-of-princes-nails {
  background: linear-gradient(180deg, #f5eee0 0%, #ddd4c0 50%, #b8a890 100%), radial-gradient(ellipse at 50% 60%, #fff8f0 0%, transparent 60%);
}
.scn-system-of-princes-nails .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #f0e8d8 0%, #e0d4c0 100%); animation: spn-lamp 8s ease-in-out infinite alternate; }
.scn-system-of-princes-nails .table { position:absolute; bottom:20%; left:50%; width:160px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c8b898 0%, #a89070 100%); border-radius: 5% 5% 10% 10% / 30% 30% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-system-of-princes-nails .prince-hand { position:absolute; bottom:25%; left:50%; transform:translateX(-10%); width:50px; height:40px; background: linear-gradient(180deg, #c8b0a0 0%, #a08878 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: spn-hand 4s ease-in-out infinite; }
.scn-system-of-princes-nails .nail-pile { position:absolute; bottom:30%; left:35%; width:20px; height:10px; background: #f0e0c0; border-radius: 20%; box-shadow: 0 0 0 2px #e0c8a0, 0 4px 6px rgba(0,0,0,.2); animation: spn-pile 6s ease-in-out infinite; }
.scn-system-of-princes-nails .magnifier { position:absolute; bottom:32%; left:30%; width:15px; height:25px; background: radial-gradient(ellipse at 50% 30%, #d4dce8 0%, #a0a8b4 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: spn-lens 5s ease-in-out infinite alternate; }
.scn-system-of-princes-nails .spectator { position:absolute; bottom:15%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #3a3a4a 0%, #222230 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: spn-spect 6s ease-in-out infinite alternate; }
.scn-system-of-princes-nails .lamp { position:absolute; top:5%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: spn-glow 3s ease-in-out infinite alternate; }
@keyframes spn-lamp   { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes spn-hand   { 0% { transform:rotate(-5deg) scale(1) } 50% { transform:rotate(5deg) scale(1.05) } 100% { transform:rotate(-3deg) scale(.98) } }
@keyframes spn-pile   { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.1) } 100% { transform:translateY(0) scale(.95) } }
@keyframes spn-lens   { 0% { transform:rotate(-20deg) } 50% { transform:rotate(0deg) } 100% { transform:rotate(15deg) } }
@keyframes spn-spect   { 0% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(-2px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes spn-glow   { 0% { opacity:.8; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.2) } 100% { opacity:.9; transform:scaleY(.95) } }

/* ===== Scene: murdstone-aside (tense, bright-interior) ===== */
.scn-murdstone-aside {
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b8a0 50%, #a89880 100%), radial-gradient(ellipse at 80% 20%, #fff4e0 0%, transparent 60%);
}
.scn-murdstone-aside .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%); animation: m1-wall 12s ease-in-out infinite alternate; }
.scn-murdstone-aside .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #6a5a4a 0%, #8a7a6a 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,.4); }
.scn-murdstone-aside .window { position:absolute; top:10%; right:20%; width:22%; height:40%; background: linear-gradient(180deg, #a0c0d0 0%, #c0d8e0 100%); border: 6px solid #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,255,.3); animation: m1-window 8s ease-in-out infinite alternate; }
.scn-murdstone-aside .figure-left { position:absolute; bottom:35%; left:15%; width:20%; height:50%; background: radial-gradient(ellipse 80% 70% at 50% 30%, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: m1-figL 6s ease-in-out infinite; }
.scn-murdstone-aside .figure-center { position:absolute; bottom:35%; left:45%; width:16%; height:48%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; animation: m1-figC 4s ease-in-out infinite; }
.scn-murdstone-aside .shadow { position:absolute; bottom:10%; left:35%; width:30%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); animation: m1-shadow 9s ease-in-out infinite alternate; }
.scn-murdstone-aside .lamp { position:absolute; top:25%; left:10%; width:8%; height:12%; background: radial-gradient(circle, #ffe8b0 0%, #c8a060 70%); border-radius: 50% 50% 0 0; box-shadow: 0 0 40px 10px rgba(200,160,96,.4); animation: m1-lamp 2s ease-in-out infinite alternate; }
@keyframes m1-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes m1-window { 0% { background: linear-gradient(180deg, #a0c0d0 0%, #c0d8e0 100%); } 50% { background: linear-gradient(180deg, #90b0c0 0%, #b0c8d0 100%); } 100% { background: linear-gradient(180deg, #b0d0e0 0%, #d0e0f0 100%); } }
@keyframes m1-figL { 0%,100% { transform: scaleX(-1) translateY(0) rotate(1deg); } 50% { transform: scaleX(-1) translateY(-4px) rotate(-2deg); } }
@keyframes m1-figC { 0%,100% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes m1-shadow { 0% { opacity:.4; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(.95); } 100% { opacity:.5; transform: scaleX(1.05); } }
@keyframes m1-lamp { 0% { box-shadow: 0 0 30px 8px rgba(200,160,96,.3); opacity:.8; } 50% { box-shadow: 0 0 60px 18px rgba(200,160,96,.5); opacity:1; } 100% { box-shadow: 0 0 40px 12px rgba(200,160,96,.35); opacity:.85; } }

/* ===== Scene: past-outrages-not-mentioned (tense, window-lit) ===== */
.scn-past-outrages-not-mentioned {
  background: linear-gradient(90deg, #d0d8e0 0%, #a0b0c0 50%, #8090a0 100%), radial-gradient(ellipse at 30% 50%, #e0e8f0 0%, transparent 70%);
}
.scn-past-outrages-not-mentioned .bg { position:absolute; inset:0; background: linear-gradient(180deg, #c0c8d0 0%, #a0a8b0 100%); animation: m2-bg 15s ease-in-out infinite alternate; }
.scn-past-outrages-not-mentioned .window-frame { position:absolute; top:8%; left:10%; width:30%; height:60%; border: 8px solid #3a4a5a; border-radius: 4px; background: transparent; box-shadow: inset 0 0 50px rgba(255,255,255,.2); }
.scn-past-outrages-not-mentioned .window-light { position:absolute; bottom:0; left:12%; width:26%; height:50%; background: linear-gradient(180deg, rgba(200,220,240,.7) 0%, rgba(200,220,240,.1) 100%); clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%); animation: m2-light 10s ease-in-out infinite alternate; }
.scn-past-outrages-not-mentioned .figure-standing { position:absolute; bottom:20%; left:55%; width:18%; height:55%; background: radial-gradient(ellipse 70% 80% at 50% 30%, #2a3a4a 0%, #0a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: scaleX(-1); animation: m2-fig 7s ease-in-out infinite; }
.scn-past-outrages-not-mentioned .chair { position:absolute; bottom:22%; left:40%; width:14%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: m2-chair 5s ease-in-out infinite alternate; }
.scn-past-outrages-not-mentioned .shadow-on-wall { position:absolute; top:30%; right:5%; width:40%; height:50%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%); transform: skewY(5deg); animation: m2-shadow 9s ease-in-out infinite alternate; }
@keyframes m2-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes m2-light { 0% { opacity:.5; transform: scaleY(.95); } 50% { opacity:.8; transform: scaleY(1.05); } 100% { opacity:.6; transform: scaleY(1); } }
@keyframes m2-fig { 0%,100% { transform: scaleX(-1) translateY(0) rotate(-1deg); } 50% { transform: scaleX(-1) translateY(-3px) rotate(2deg); } }
@keyframes m2-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes m2-shadow { 0% { opacity:.3; transform: skewY(5deg) scaleX(.9); } 50% { opacity:.5; transform: skewY(6deg) scaleX(1.1); } 100% { opacity:.4; transform: skewY(4deg) scaleX(1); } }

/* ===== Scene: distant-acquaintances-footing (tense, window-lit) ===== */
.scn-distant-acquaintances-footing {
  background: linear-gradient(135deg, #b0c0d0 0%, #90a0b0 50%, #708090 100%), radial-gradient(ellipse at 70% 30%, #d0e0f0 0%, transparent 60%);
}
.scn-distant-acquaintances-footing .room-back { position:absolute; inset:0; background: linear-gradient(180deg, #c8d0d8 0%, #a0a8b0 100%); animation: m3-room 12s ease-in-out infinite alternate; }
.scn-distant-acquaintances-footing .table { position:absolute; bottom:20%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 10px rgba(0,0,0,.4); }
.scn-distant-acquaintances-footing .chair-left { position:absolute; bottom:22%; left:22%; width:12%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 8% 8% 4% 4%; animation: m3-chairL 6s ease-in-out infinite; }
.scn-distant-acquaintances-footing .chair-right { position:absolute; bottom:22%; right:22%; width:12%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 8% 8% 4% 4%; animation: m3-chairR 5s ease-in-out infinite reverse; }
.scn-distant-acquaintances-footing .figure-a { position:absolute; bottom:30%; left:25%; width:14%; height:40%; background: radial-gradient(ellipse 80% 70% at 50% 30%, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; animation: m3-figA 8s ease-in-out infinite; }
.scn-distant-acquaintances-footing .figure-b { position:absolute; bottom:30%; right:25%; width:14%; height:40%; background: radial-gradient(ellipse 80% 70% at 50% 30%, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform: scaleX(-1); animation: m3-figB 7s ease-in-out infinite; }
.scn-distant-acquaintances-footing .candle { position:absolute; bottom:28%; left:50%; width:4%; height:6%; background: linear-gradient(180deg, #ffe8b0 0%, #c8a060 100%); border-radius: 20%; box-shadow: 0 0 20px 6px rgba(200,160,96,.4); animation: m3-candle 3s ease-in-out infinite alternate; }
@keyframes m3-room { 0% { opacity:.75 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes m3-chairL { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(0); } }
@keyframes m3-chairR { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(0); } }
@keyframes m3-figA { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-4px) rotate(-2deg); } }
@keyframes m3-figB { 0%,100% { transform: scaleX(-1) translateY(0) rotate(-1deg); } 50% { transform: scaleX(-1) translateY(-3px) rotate(2deg); } }
@keyframes m3-candle { 0% { box-shadow: 0 0 15px 4px rgba(200,160,96,.3); opacity:.85; } 50% { box-shadow: 0 0 30px 10px rgba(200,160,96,.5); opacity:1; } 100% { box-shadow: 0 0 20px 6px rgba(200,160,96,.35); opacity:.9; } }

/* ===== Scene: murdstone-unfriendliness (warm, bright-interior) ===== */
.scn-murdstone-unfriendliness {
  background: linear-gradient(180deg, #f0e6d0 0%, #e0d0b0 50%, #c0a880 100%), radial-gradient(ellipse at 50% 60%, #ffe0c0 0%, transparent 70%);
}
.scn-murdstone-unfriendliness .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #f5e8d0 0%, #d8c8a8 100%); animation: m4-bg 10s ease-in-out infinite alternate; }
.scn-murdstone-unfriendliness .sofa { position:absolute; bottom:15%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #b08060 0%, #8a6040 100%); border-radius: 20% 20% 8% 8% / 50% 50% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,.3); animation: m4-sofa 6s ease-in-out infinite; }
.scn-murdstone-unfriendliness .figure-dora { position:absolute; bottom:25%; left:35%; width:16%; height:40%; background: radial-gradient(ellipse 70% 80% at 50% 30%, #d0a880 0%, #b08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: m4-dora 8s ease-in-out infinite; }
.scn-murdstone-unfriendliness .figure-david { position:absolute; bottom:25%; left:55%; width:16%; height:40%; background: radial-gradient(ellipse 70% 80% at 50% 30%, #c09878 0%, #a07858 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: m4-david 7s ease-in-out infinite; }
.scn-murdstone-unfriendliness .heart-glow { position:absolute; bottom:25%; left:45%; width:8%; height:8%; background: radial-gradient(circle, #f0a0a0 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(240,160,160,.3); animation: m4-heart 3s ease-in-out infinite alternate; }
.scn-murdstone-unfriendliness .petal { position:absolute; top:10%; left:70%; width:4%; height:2%; background: #e8c8b0; border-radius: 50% 0 50% 0; filter: blur(1px); animation: m4-petal 15s linear infinite; }
@keyframes m4-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes m4-sofa { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-1deg); } }
@keyframes m4-dora { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes m4-david { 0%,100% { transform: scaleX(-1) translateY(0) rotate(-1deg); } 50% { transform: scaleX(-1) translateY(-2px) rotate(2deg); } }
@keyframes m4-heart { 0% { transform: scale(.8); opacity:.6; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(.9); opacity:.7; } }
@keyframes m4-petal { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity:.8; } 50% { transform: translateY(60px) rotate(180deg) scale(.6); opacity:.4; } 100% { transform: translateY(120px) rotate(360deg) scale(.2); opacity:0; } }

.scn-no-dinner-thank-you {
  background: linear-gradient(180deg, #f5ecd7 0%, #e3d6b8 40%, #c9b896 100%), radial-gradient(ellipse at 30% 50%, #fff8e7 0%, transparent 70%);
}
.scn-no-dinner-thank-you .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #ede4d0 0%, #d9cbae 100%); }
.scn-no-dinner-thank-you .window-pane { position:absolute; top:5%; left:55%; width:32%; height:55%; background: linear-gradient(135deg, #b3d4e6 0%, #89b8d0 50%, #b3d4e6 100%); border-radius:6px; border:6px solid #a38b6d; box-shadow: inset 0 0 30px rgba(255,255,220,0.3); animation: ndt-window 20s ease-in-out infinite; }
.scn-no-dinner-thank-you .curtain-l { position:absolute; top:3%; left:52%; width:10%; height:60%; background: linear-gradient(180deg, #b59a7a 0%, #8e765b 100%); border-radius:0 60% 60% 0 / 0 40% 40% 0; filter: blur(1px); animation: ndt-curl 8s ease-in-out infinite; }
.scn-no-dinner-thank-you .curtain-r { position:absolute; top:3%; right:10%; width:10%; height:60%; background: linear-gradient(180deg, #b59a7a 0%, #8e765b 100%); border-radius:60% 0 0 60% / 40% 0 0 40%; filter: blur(1px); animation: ndt-curr 8s ease-in-out infinite 4s; }
.scn-no-dinner-thank-you .chair { position:absolute; bottom:15%; left:20%; width:18%; height:30%; background: linear-gradient(180deg, #7a5f43 0%, #5a432e 100%); border-radius:30% 30% 10% 10% / 60% 60% 10% 10%; box-shadow: 4px 6px 12px rgba(0,0,0,0.2); }
.scn-no-dinner-thank-you .table { position:absolute; bottom:12%; left:40%; width:25%; height:5%; background: linear-gradient(90deg, #8a6e4e 0%, #a68a6a 50%, #8a6e4e 100%); border-radius:50% / 100% 100% 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,0.15); }
.scn-no-dinner-thank-you .figure { position:absolute; bottom:14%; left:62%; width:10%; height:35%; background: linear-gradient(180deg, #2c241a 0%, #16120e 100%); border-radius:50% 50% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: ndt-fig 6s ease-in-out infinite; }
.scn-no-dinner-thank-you .lamp { position:absolute; top:8%; left:15%; width:3%; height:10%; background: radial-gradient(circle, #ffe680 0%, #d4a34a 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,230,128,0.4); animation: ndt-lamp 5s ease-in-out infinite alternate; }
@keyframes ndt-window { 0% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.9; transform:scale(1); } }
@keyframes ndt-curl { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-5px); } }
@keyframes ndt-curr { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@keyframes ndt-fig { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-2deg); } 70% { transform: translateY(-1px) rotate(1deg); } }
@keyframes ndt-lamp { 0% { opacity:0.7; box-shadow: 0 0 30px 15px rgba(255,230,128,0.3); } 100% { opacity:1; box-shadow: 0 0 60px 30px rgba(255,230,128,0.6); } }

.scn-deduce-we-must-live {
  background: linear-gradient(180deg, #fceac1 0%, #f5d89e 50%, #e8c47a 100%), radial-gradient(ellipse at 80% 80%, #ffedb0 0%, transparent 60%);
}
.scn-deduce-we-must-live .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #f7e2b5 0%, #ecd5a0 100%); }
.scn-deduce-we-must-live .sofa { position:absolute; bottom:8%; left:10%; width:55%; height:35%; background: linear-gradient(180deg, #b7472a 0%, #8b3420 100%); border-radius:20% 20% 10% 10% / 60% 60% 20% 20%; box-shadow: 4px 6px 12px rgba(0,0,0,0.15); }
.scn-deduce-we-must-live .fig-micawber { position:absolute; bottom:14%; left:20%; width:18%; height:40%; background: linear-gradient(180deg, #4a3d2b 0%, #2c2218 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dwl-mica 1.5s ease-in-out infinite; }
.scn-deduce-we-must-live .fig-traddles { position:absolute; bottom:12%; left:42%; width:14%; height:30%; background: linear-gradient(180deg, #5a4a35 0%, #3a2f22 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; animation: dwl-trad 2s ease-in-out infinite 0.5s; }
.scn-deduce-we-must-live .fig-copperfield { position:absolute; bottom:12%; right:18%; width:14%; height:28%; background: linear-gradient(180deg, #4f412e 0%, #322819 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; animation: dwl-copp 1.8s ease-in-out infinite 1s; }
.scn-deduce-we-must-live .papers { position:absolute; bottom:20%; left:60%; width:12%; height:8%; background: linear-gradient(180deg, #fcf3d5 0%, #e8dbbd 100%); border-radius:4px; transform:rotate(-10deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.2); animation: dwl-papers 3s ease-in-out infinite; }
.scn-deduce-we-must-live .inkpot { position:absolute; bottom:18%; left:58%; width:4%; height:5%; background: radial-gradient(circle, #2f1e1a 0%, #0f0a08 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-deduce-we-must-live .quill { position:absolute; bottom:24%; left:62%; width:2%; height:10%; background: linear-gradient(180deg, #c9b189 0%, #a38a65 100%); border-radius:50% 50% 0 0; transform:rotate(25deg); transform-origin: bottom; animation: dwl-quill 1.2s ease-in-out infinite alternate; }
@keyframes dwl-mica { 0%,100% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-6px) rotate(4deg) scaleX(1.05); } 50% { transform: translateY(-2px) rotate(-2deg); } 75% { transform: translateY(-4px) rotate(2deg) scaleX(1.02); } }
@keyframes dwl-trad { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes dwl-copp { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes dwl-papers { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes dwl-quill { 0% { transform: rotate(20deg); } 100% { transform: rotate(30deg); } }

.scn-gauntlet-to-society {
  background: linear-gradient(180deg, #2a2018 0%, #3d2f24 40%, #5a4533 100%), radial-gradient(ellipse at 50% 30%, #705a42 0%, transparent 60%);
}
.scn-gauntlet-to-society .bg-panels { position:absolute; inset:0; background: linear-gradient(135deg, #3d2f24 0%, #2a2018 100%); }
.scn-gauntlet-to-society .shadow-line { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 50%, transparent 100%); animation: gts-shadow 3s ease-in-out infinite; }
.scn-gauntlet-to-society .fig-micawber-big { position:absolute; bottom:8%; left:30%; width:25%; height:55%; background: linear-gradient(180deg, #1f1812 0%, #0c0906 100%); border-radius:40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: gts-fig 4s ease-in-out infinite; }
.scn-gauntlet-to-society .arm-up { position:absolute; bottom:45%; left:43%; width:8%; height:25%; background: linear-gradient(180deg, #1f1812 0%, #2c2218 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; transform:rotate(-30deg); animation: gts-arm 2s ease-in-out infinite alternate; }
.scn-gauntlet-to-society .gauntlet-falling { position:absolute; top:15%; left:45%; width:5%; height:6%; background: linear-gradient(135deg, #5a3a2a 0%, #3a2518 100%); border-radius:30% 30% 0 0 / 100% 100% 0 0; transform:rotate(20deg); animation: gts-gaunt 1.5s ease-in infinite; }
.scn-gauntlet-to-society .floor-strip { position:absolute; bottom:0; left:0; width:100%; height:8%; background: linear-gradient(180deg, #2a2018 0%, #1a140f 100%); box-shadow: 0 -4px 8px rgba(0,0,0,0.6); }
.scn-gauntlet-to-society .vase { position:absolute; bottom:6%; right:15%; width:8%; height:25%; background: linear-gradient(180deg, #8b6e4b 0%, #5a4533 100%); border-radius:40% 40% 10% 10% / 60% 60% 10% 10%; transform:rotate(5deg); animation: gts-vase 6s ease-in-out infinite; }
@keyframes gts-shadow { 0%,100% { opacity:0.5; } 50% { opacity:0.9; } }
@keyframes gts-fig { 0%,100% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-4px) rotate(-2deg); } 60% { transform: translateY(-1px) rotate(3deg); } }
@keyframes gts-arm { 0% { transform: rotate(-40deg); } 100% { transform: rotate(-20deg); } }
@keyframes gts-gaunt { 0% { top:10%; opacity:1; transform:rotate(15deg) scale(1); } 80% { opacity:0.8; } 100% { top:45%; opacity:1; transform:rotate(45deg) scale(0.9); } }
@keyframes gts-vase { 0%,100% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(8deg) translateY(-2px); } }

.scn-advertise-in-papers {
  background: linear-gradient(180deg, #4a3a28 0%, #5c4934 50%, #7a6042 100%), radial-gradient(ellipse at 50% 60%, #ba9e7a 0%, transparent 70%);
}
.scn-advertise-in-papers .bg-desk { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a28 0%, #3a2c1e 100%); }
.scn-advertise-in-papers .desk-top { position:absolute; bottom:20%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #7a6042 0%, #5c4934 100%); border-radius:8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.4); }
.scn-advertise-in-papers .paper-sheet { position:absolute; bottom:28%; left:30%; width:30%; height:18%; background: linear-gradient(135deg, #f2ebd5 0%, #e0d4b8 100%); border-radius:2px; transform:rotate(2deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: aip-paper 4s ease-in-out infinite; }
.scn-advertise-in-papers .inkwell { position:absolute; bottom:25%; left:55%; width:4%; height:6%; background: radial-gradient(circle at 50% 30%, #3a2a1e 0%, #1c1410 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: aip-ink 3s ease-in-out infinite alternate; }
.scn-advertise-in-papers .quill-write { position:absolute; bottom:32%; left:50%; width:2%; height:16%; background: linear-gradient(180deg, #c4a882 0%, #a88c68 100%); border-radius:50% 50% 0 0; transform-origin: bottom center; transform:rotate(-30deg); animation: aip-quill 1.2s ease-in-out infinite alternate; }
.scn-advertise-in-papers .hand-writing { position:absolute; bottom:28%; left:48%; width:8%; height:14%; background: linear-gradient(180deg, #2c241a 0%, #16120e 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform:rotate(10deg); animation: aip-hand 1.5s ease-in-out infinite; }
.scn-advertise-in-papers .candle { position:absolute; bottom:22%; left:20%; width:3%; height:12%; background: linear-gradient(180deg, #f5e6c4 0%, #d4b896 100%); border-radius:4px; box-shadow: 0 0 20px 10px rgba(255,200,100,0.3); animation: aip-candle 5s ease-in-out infinite alternate; }
.scn-advertise-in-papers .blotter { position:absolute; bottom:25%; left:22%; width:8%; height:2%; background: #6a553a; border-radius:2px; opacity:0.6; }
@keyframes aip-paper { 0%,100% { transform:rotate(2deg) translateY(0); } 50% { transform:rotate(3deg) translateY(-1px); } }
@keyframes aip-ink { 0% { transform:scale(1); } 100% { transform:scale(1.05); } }
@keyframes aip-quill { 0% { transform:rotate(-35deg); } 100% { transform:rotate(-25deg); } }
@keyframes aip-hand { 0%,100% { transform:rotate(10deg) translateX(0); } 50% { transform:rotate(12deg) translateX(2px); } }
@keyframes aip-candle { 0% { opacity:0.8; box-shadow: 0 0 15px 8px rgba(255,200,100,0.2); } 100% { opacity:1; box-shadow: 0 0 30px 15px rgba(255,200,100,0.5); } }

/* Scene 1: chandlers-shop-accommodation */
.scn-chandlers-shop-accommodation {
  background: linear-gradient(180deg, #2a221e 0%, #3a2e28 40%, #4a3c34 100%),
              radial-gradient(ellipse at 40% 80%, #6a4e3a 0%, transparent 60%);
}
.scn-chandlers-shop-accommodation .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2e2620 0%, #1e1814 100%);
  box-shadow: inset 0 30px 40px rgba(0,0,0,0.5);
  animation: si-ca-wall 20s ease-in-out infinite alternate;
}
.scn-chandlers-shop-accommodation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%);
  border-radius: 30% 0 0 0 / 20% 0 0 0;
}
.scn-chandlers-shop-accommodation .window-ledge {
  position: absolute; bottom: 45%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #6a5a4a, #4a3a2a);
  border-radius: 4px;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.4);
  z-index: 1;
}
.scn-chandlers-shop-accommodation .window-pane {
  position: absolute; bottom: 52%; left: 28%; width: 44%; height: 25%;
  background: radial-gradient(ellipse at 50% 70%, #d4c8b0 0%, #8a7a6a 80%);
  border: 2px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(180,160,120,0.2);
  animation: si-ca-window 12s ease-in-out infinite alternate;
}
.scn-chandlers-shop-accommodation .lamp {
  position: absolute; bottom: 48%; left: 20%; width: 14%; height: 18%;
  background: radial-gradient(circle, #e0c080 0%, #b09060 60%, transparent 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 0 40px 10px #b09060, 0 0 80px 20px rgba(176,144,96,0.3);
  animation: si-ca-lamp-glint 4s ease-in-out infinite alternate;
}
.scn-chandlers-shop-accommodation .figure {
  position: absolute; bottom: 10%; left: 55%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-ca-figure-breathe 8s ease-in-out infinite;
}
.scn-chandlers-shop-accommodation .table {
  position: absolute; bottom: 8%; left: 30%; width: 30%; height: 14%;
  background: linear-gradient(180deg, #6a4e3a 0%, #3a2a1e 100%);
  border-radius: 6% 6% 20% 20% / 10% 10% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-chandlers-shop-accommodation .book {
  position: absolute; bottom: 14%; left: 40%; width: 5%; height: 7%;
  background: linear-gradient(135deg, #8a6e4e, #4a3a2a);
  border-radius: 2px 6px 6px 2px;
  transform: rotate(5deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.5);
  animation: si-ca-book-tilt 6s ease-in-out infinite alternate;
}
@keyframes si-ca-wall { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.88; } }
@keyframes si-ca-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 si-ca-lamp-glint { 0% { transform: scale(1) rotate(-2deg); } 50% { transform: scale(1.05) rotate(2deg); } 100% { transform: scale(0.98) rotate(0deg); } }
@keyframes si-ca-figure-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes si-ca-book-tilt { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(0); } }

/* Scene 2: not-want-to-swing-cat */
.scn-not-want-to-swing-cat {
  background: linear-gradient(180deg, #2a2a2a 0%, #3a3430 40%, #4a423c 100%),
              radial-gradient(ellipse at 50% 90%, #6a5a4a 0%, transparent 60%);
}
.scn-not-want-to-swing-cat .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3632 0%, #2a2622 100%);
  box-shadow: inset 0 20px 50px rgba(0,0,0,0.4);
}
.scn-not-want-to-swing-cat .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #4a3a2e 0px, #4a3a2e 8px, #3a2a1e 8px, #3a2a1e 10px);
  border-radius: 20% 0 0 0 / 10% 0 0 0;
}
.scn-not-want-to-swing-cat .lamp-shade {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%); width: 18%; height: 14%;
  background: radial-gradient(ellipse at 50% 80%, #c8a060 0%, #a08040 60%, transparent 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 8px #a08040, 0 0 60px 15px rgba(160,128,64,0.3);
  animation: si-cat-lamp 5s ease-in-out infinite alternate;
}
.scn-not-want-to-swing-cat .cat {
  position: absolute; bottom: 20%; left: 60%; width: 20%; height: 18%;
  background: linear-gradient(135deg, #2a2a1a, #1a1a0e);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: si-cat-sway 3s ease-in-out infinite;
}
.scn-not-want-to-swing-cat .cat::after {
  content: ''; position: absolute; top: -60%; left: 30%; width: 20%; height: 30%;
  background: radial-gradient(circle, #2a2a1a 40%, transparent 40%);
  border-radius: 50%;
}
.scn-not-want-to-swing-cat .figure-sitting {
  position: absolute; bottom: 12%; left: 30%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #1a1612 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: si-cat-figure 4s ease-in-out infinite;
}
.scn-not-want-to-swing-cat .rug {
  position: absolute; bottom: 6%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1e);
  border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-not-want-to-swing-cat .teacup {
  position: absolute; bottom: 14%; left: 50%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 20%, #e8e0d0 20%, #b8a890 70%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
  animation: si-cat-teacup 6s ease-in-out infinite alternate;
}
@keyframes si-cat-lamp { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.05) rotate(3deg); } 100% { transform: translateX(-50%) scale(1) rotate(-2deg); } }
@keyframes si-cat-sway { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(8deg) translateX(5px); } 100% { transform: rotate(-5deg) translateX(-3px); } }
@keyframes si-cat-figure { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes si-cat-teacup { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(1px); } }

/* Scene 3: ale-not-worse */
.scn-ale-not-worse {
  background: linear-gradient(180deg, #3a2e28 0%, #4a3c34 40%, #5a4a3e 100%),
              radial-gradient(ellipse at 50% 90%, #7a5a3a 0%, transparent 70%);
}
.scn-ale-not-worse .tavern-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a221e 0%, #1e1814 100%);
  box-shadow: inset 0 30px 60px rgba(0,0,0,0.5);
  animation: si-ale-flicker 15s ease-in-out infinite alternate;
}
.scn-ale-not-worse .bar-top {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #6a4e3a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-ale-not-worse .mug {
  position: absolute; bottom: 14%; left: 45%; width: 8%; height: 12%;
  background: linear-gradient(135deg, #8a7a6a, #5a4a3a);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: si-ale-mug 6s ease-in-out infinite;
}
.scn-ale-not-worse .figure-aunt {
  position: absolute; bottom: 5%; left: 30%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  transform-origin: bottom center;
  animation: si-ale-figure-aunt 8s ease-in-out infinite;
}
.scn-ale-not-worse .figure-aunt::before {
  content: ''; position: absolute; top: -20%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, #1a1410 40%, transparent 40%);
  border-radius: 50%;
}
.scn-ale-not-worse .figure-barkis {
  position: absolute; bottom: 5%; left: 55%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  transform-origin: bottom center;
  animation: si-ale-figure-barkis 7s ease-in-out infinite;
}
.scn-ale-not-worse .candle {
  position: absolute; bottom: 25%; left: 20%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #e0c080 0%, #b09060 40%, #6a4e3a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px #b09060, 0 0 40px 12px rgba(176,144,96,0.3);
  animation: si-ale-candle 3s ease-in-out infinite alternate;
}
.scn-ale-not-worse .wall-molding {
  position: absolute; top: 20%; left: 0; right: 0; height: 3%;
  background: linear-gradient(90deg, transparent 5%, #5a4a3a 10%, #5a4a3a 90%, transparent 95%);
  border-radius: 0 0 4px 4px;
}
@keyframes si-ale-flicker { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes si-ale-mug { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes si-ale-figure-aunt { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes si-ale-figure-barkis { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes si-ale-candle { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.05) scaleX(0.95); } 100% { transform: scaleY(0.98) scaleX(1.02); } }

/* Scene 4: fancy-yourself-in-love */
.scn-fancy-yourself-in-love {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d4b8 40%, #c8b890 100%),
              radial-gradient(ellipse at 50% 60%, #ffe8c0 0%, transparent 70%);
}
.scn-fancy-yourself-in-love .sunny-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,240,200,0.2) 0%, transparent 100%);
  box-shadow: inset 0 0 80px rgba(240,200,160,0.3);
  animation: si-love-light 10s ease-in-out infinite alternate;
}
.scn-fancy-yourself-in-love .window-frame {
  position: absolute; top: 5%; left: 10%; width: 35%; height: 45%;
  border: 6px solid #8a7a6a;
  border-radius: 8px;
  background: radial-gradient(ellipse at 50% 80%, #d0e0f0 0%, #a0b8d0 80%);
  box-shadow: inset 0 0 30px rgba(160,184,208,0.4);
  animation: si-love-window 12s ease-in-out infinite alternate;
}
.scn-fancy-yourself-in-love .curtains {
  position: absolute; top: 5%; left: 10%; width: 35%; height: 45%;
  background: linear-gradient(90deg, #d4b090 20%, transparent 30%, transparent 70%, #d4b090 80%);
  filter: blur(2px);
  opacity: 0.6;
  animation: si-love-curtains 8s ease-in-out infinite alternate;
}
.scn-fancy-yourself-in-love .figure-young {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%); width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: si-love-figure 4s ease-in-out infinite;
}
.scn-fancy-yourself-in-love .figure-young::after {
  content: ''; position: absolute; top: -20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(circle, #4a2828 30%, transparent 30%);
  border-radius: 50%;
}
.scn-fancy-yourself-in-love .heart-glow {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 10%; height: 10%;
  background: radial-gradient(circle, #ffa0a0 0%, #d06060 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  box-shadow: 0 0 40px 12px #d06060, 0 0 80px 20px rgba(208,96,96,0.3);
  animation: si-love-heartbeat 2s ease-in-out infinite;
}
.scn-fancy-yourself-in-love .flower-vase {
  position: absolute; bottom: 10%; left: 30%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #c08050 0%, #8a6040 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-fancy-yourself-in-love .flower-vase::before {
  content: ''; position: absolute; top: -60%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(ellipse at 30% 100%, #90c070 0%, #508030 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-fancy-yourself-in-love .table-props {
  position: absolute; bottom: 8%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #b8a880 0%, #8a7a6a 100%);
  border-radius: 6% 6% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
@keyframes si-love-light { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes si-love-window { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.8; transform: scale(0.98); } }
@keyframes si-love-curtains { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(5px); } }
@keyframes si-love-figure { 0% { transform: translateX(-50%) rotate(0deg) translateY(0); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-5px); } 100% { transform: translateX(-50%) rotate(-2deg) translateY(0); } }
@keyframes si-love-heartbeat { 0% { transform: translateX(-50%) scale(1); } 25% { transform: translateX(-50%) scale(1.15); } 50% { transform: translateX(-50%) scale(1); } 75% { transform: translateX(-50%) scale(1.1); } 100% { transform: translateX(-50%) scale(1); } }

/* aunt-rebukes-murdstone - tense bright interior */
.scn-aunt-rebukes-murdstone {
  background: 
    linear-gradient(180deg, #f5e8d0 0%, #e3d4b0 40%, #d4b890 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-aunt-rebukes-murdstone .ar-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, rgba(160,130,100,0.3) 0%, transparent 30%, transparent 70%, rgba(100,80,60,0.3) 100%);
  animation: ar-shift 12s ease-in-out infinite alternate;
}
.scn-aunt-rebukes-murdstone .ar-table {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #8b6f4e 0%, #5a3e2a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.scn-aunt-rebukes-murdstone .ar-figure-left {
  position: absolute; bottom: 28%; left: 20%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ar-lean 8s ease-in-out infinite alternate;
}
.scn-aunt-rebukes-murdstone .ar-figure-right {
  position: absolute; bottom: 28%; right: 20%; width: 15%; height: 48%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ar-lean 10s ease-in-out infinite alternate-reverse;
  box-shadow: inset -10px 0 15px rgba(0,0,0,0.5);
}
.scn-aunt-rebukes-murdstone .ar-window {
  position: absolute; top: 12%; left: 10%; width: 20%; height: 30%;
  background: linear-gradient(135deg, #b8d8e8 0%, #8ab4d0 100%);
  border: 6px solid #6a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.6);
}
.scn-aunt-rebukes-murdstone .ar-lamp {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 8px;
  background: radial-gradient(circle, #ffe080 0%, #c09040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,80,0.6), 0 0 60px 20px rgba(255,200,80,0.2);
  animation: ar-glow 4s ease-in-out infinite alternate;
}
.scn-aunt-rebukes-murdstone .ar-shadow-floor {
  position: absolute; bottom: 22%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  filter: blur(6px);
  animation: ar-shadow-pulse 12s ease-in-out infinite;
}
@keyframes ar-shift {
  0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes ar-lean {
  0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(3px) rotate(1.5deg); }
}
@keyframes ar-glow {
  0% { box-shadow: 0 0 20px 6px rgba(255,200,80,0.5); opacity: 0.8; } 50% { box-shadow: 0 0 40px 15px rgba(255,200,80,0.8); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(255,200,80,0.5); opacity: 0.85; }
}
@keyframes ar-shadow-pulse {
  0% { opacity: 0.2; transform: scaleY(1); } 50% { opacity: 0.5; transform: scaleY(1.2); } 100% { opacity: 0.25; transform: scaleY(1); }
}

/* polite-exclamations - funny bright interior */
.scn-polite-exclamations {
  background: 
    linear-gradient(180deg, #f8f0e0 0%, #ece0c8 40%, #d4c0a0 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e8 0%, transparent 50%);
}
.scn-polite-exclamations .pe-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, rgba(200,180,150,0.2) 0%, transparent 50%, rgba(180,160,130,0.1) 100%);
  animation: pe-twitch 3s ease-in-out infinite alternate;
}
.scn-polite-exclamations .pe-table {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #b89068 0%, #8a6a46 100%);
  border-radius: 8px 8px 12px 12px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}
.scn-polite-exclamations .pe-chair-left {
  position: absolute; bottom: 25%; left: 18%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  animation: pe-bounce 5s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-polite-exclamations .pe-chair-right {
  position: absolute; bottom: 25%; right: 18%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  animation: pe-bounce 6s ease-in-out infinite 0.5s;
  transform-origin: bottom center;
}
.scn-polite-exclamations .pe-figure-standing {
  position: absolute; bottom: 24%; left: 42%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #a07050 0%, #604030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: pe-gesture 4s ease-in-out infinite;
}
.scn-polite-exclamations .pe-figure-seated {
  position: absolute; bottom: 22%; right: 35%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #806050 0%, #503020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: pe-jerk 7s ease-in-out infinite;
}
.scn-polite-exclamations .pe-teacup {
  position: absolute; bottom: 30%; left: 48%; width: 5%; height: 6%;
  background: radial-gradient(circle, #f0e0c0 0%, #c0a080 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: pe-rattle 2s ease-in-out infinite;
}
.scn-polite-exclamations .pe-saucer {
  position: absolute; bottom: 29%; left: 46%; width: 8%; height: 2%;
  background: #d0b090;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}
@keyframes pe-twitch {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes pe-bounce {
  0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pe-gesture {
  0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(-4px) rotate(-3deg); } 75% { transform: translateX(6px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pe-jerk {
  0% { transform: translateY(0) rotate(0); } 40% { transform: translateY(-5px) rotate(-3deg); } 70% { transform: translateY(2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); }
}
@keyframes pe-rattle {
  0% { transform: translate(0,0) rotate(0); } 25% { transform: translate(1px,-1px) rotate(5deg); } 50% { transform: translate(-1px,0) rotate(-3deg); } 75% { transform: translate(1px,1px) rotate(4deg); } 100% { transform: translate(0,0) rotate(0); }
}

/* instruments-of-cruelty - tense bright interior */
.scn-instruments-of-cruelty {
  background: 
    linear-gradient(180deg, #f0dcc0 0%, #d0b890 40%, #a08060 100%),
    radial-gradient(ellipse at 40% 10%, #fff0d0 0%, transparent 60%);
}
.scn-instruments-of-cruelty .ic-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, rgba(80,60,40,0.3) 0%, transparent 20%, transparent 80%, rgba(100,70,40,0.2) 100%);
  animation: ic-shift 8s ease-in-out infinite alternate;
}
.scn-instruments-of-cruelty .ic-desk {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-instruments-of-cruelty .ic-figure-left {
  position: absolute; bottom: 30%; left: 15%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #5a4040 0%, #2a1a1a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 25% 25%;
  animation: ic-lean 9s ease-in-out infinite alternate;
  box-shadow: -10px 0 20px rgba(0,0,0,0.3);
}
.scn-instruments-of-cruelty .ic-figure-right {
  position: absolute; bottom: 30%; right: 15%; width: 14%; height: 48%;
  background: linear-gradient(180deg, #4a3030 0%, #201010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 25% 25%;
  animation: ic-lean 11s ease-in-out infinite alternate-reverse;
  box-shadow: 10px 0 20px rgba(0,0,0,0.4);
}
.scn-instruments-of-cruelty .ic-instrument {
  position: absolute; bottom: 34%; left: 50%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #c0a080 0%, #806050 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%) rotate(-15deg);
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: ic-waggle 4s ease-in-out infinite;
}
.scn-instruments-of-cruelty .ic-shadows {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.15) 100%);
  filter: blur(8px);
  animation: ic-shadow-pulse 10s ease-in-out infinite;
}
.scn-instruments-of-cruelty .ic-candle {
  position: absolute; bottom: 33%; left: 30%; width: 2%; height: 6%;
  background: radial-gradient(circle, #ffe080 0%, #c09040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,200,80,0.5), 0 0 40px 12px rgba(255,200,80,0.2);
  animation: ic-flame 3s ease-in-out infinite alternate;
}
@keyframes ic-shift {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes ic-lean {
  0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-5px) rotate(-2.5deg); } 80% { transform: translateX(3px) rotate(1.5deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ic-waggle {
  0% { transform: translateX(-50%) rotate(-15deg); } 30% { transform: translateX(-50%) rotate(-10deg); } 60% { transform: translateX(-50%) rotate(-18deg); } 100% { transform: translateX(-50%) rotate(-15deg); }
}
@keyframes ic-shadow-pulse {
  0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.35; }
}
@keyframes ic-flame {
  0% { box-shadow: 0 0 15px 4px rgba(255,200,80,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 30px 10px rgba(255,200,80,0.7); opacity: 1; } 100% { box-shadow: 0 0 20px 6px rgba(255,200,80,0.45); opacity: 0.85; }
}

/* trot-shortened-name - warm bright interior */
.scn-trot-shortened-name {
  background: 
    linear-gradient(180deg, #f5e8d0 0%, #dcc8a8 40%, #b89870 100%),
    radial-gradient(ellipse at 80% 30%, #fff5e6 0%, transparent 50%);
}
.scn-trot-shortened-name .ts-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, rgba(220,200,160,0.2) 0%, transparent 40%, rgba(180,150,110,0.1) 100%);
  animation: ts-softshift 15s ease-in-out infinite alternate;
}
.scn-trot-shortened-name .ts-armchair {
  position: absolute; bottom: 20%; left: 30%; width: 35%; height: 55%;
  background: linear-gradient(180deg, #b07050 0%, #784830 100%);
  border-radius: 30% 30% 15% 15% / 40% 40% 20% 20%;
  box-shadow: 0 15px 30px rgba(0,0,0,0.3);
  animation: ts-breathe 8s ease-in-out infinite;
}
.scn-trot-shortened-name .ts-figure-aunt {
  position: absolute; bottom: 22%; left: 35%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 25% 25%;
  animation: ts-rock 6s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-trot-shortened-name .ts-figure-trot {
  position: absolute; bottom: 22%; left: 48%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: ts-nod 7s ease-in-out infinite;
  transform-origin: bottom center;
}
.scn-trot-shortened-name .ts-fireplace {
  position: absolute; bottom: 22%; right: 10%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 40px rgba(200,120,40,0.3);
}
.scn-trot-shortened-name .ts-book {
  position: absolute; bottom: 30%; left: 50%; width: 4%; height: 6%;
  background: #8a6a46;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ts-bookwiggle 10s ease-in-out infinite;
}
.scn-trot-shortened-name .ts-window {
  position: absolute; top: 12%; left: 12%; width: 22%; height: 28%;
  background: linear-gradient(135deg, #b8d0d8 0%, #90b8c8 100%);
  border: 6px solid #6a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.5);
}
.scn-trot-shortened-name .ts-rug {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(90deg, #784a2a 0%, #a06040 30%, #604020 70%, #784a2a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ts-rugflow 12s ease-in-out infinite;
}
@keyframes ts-softshift {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes ts-breathe {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); }
}
@keyframes ts-rock {
  0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ts-nod {
  0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ts-bookwiggle {
  0% { transform: rotate(0deg); } 25% { transform: rotate(4deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(0deg); }
}
@keyframes ts-rugflow {
  0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.05); opacity: 0.6; } 100% { transform: scaleX(1); opacity: 0.45; }
}

/* baby-dead-inquiry - dim interior */
.scn-baby-dead-inquiry {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a2a4e 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a4e 0%, transparent 60%);
}
.scn-baby-dead-inquiry .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 100%);
  animation: bdi-wall 12s ease-in-out infinite alternate;
}
.scn-baby-dead-inquiry .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-baby-dead-inquiry .window {
  position: absolute; top: 12%; left: 15%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 2% 2% 6% 6%;
  box-shadow: inset 0 0 20px rgba(100,80,120,0.4), 0 0 8px rgba(200,180,220,0.1);
  animation: bdi-window 8s ease-in-out infinite alternate;
}
.scn-baby-dead-inquiry .cradle {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: bdi-cradle 4s ease-in-out infinite;
}
.scn-baby-dead-inquiry .figure-mr-omer {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bdi-omer 6s ease-in-out infinite;
}
.scn-baby-dead-inquiry .lamp {
  position: absolute; bottom: 38%; left: 60%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #8a7040 0%, #5a4a2a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 10px 2px #c0a070;
  animation: bdi-lamp 3s ease-in-out infinite alternate;
}
.scn-baby-dead-inquiry .lamp-glow {
  position: absolute; bottom: 36%; left: 58%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(192,160,112,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bdi-glow 3s ease-in-out infinite alternate;
}
.scn-baby-dead-inquiry .shadow-figure {
  position: absolute; bottom: 20%; right: 25%; width: 18px; height: 45px;
  background: rgba(0,0,0,0.5);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  filter: blur(4px);
  animation: bdi-shadow 8s ease-in-out infinite;
}
@keyframes bdi-wall { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes bdi-window { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.5; transform: scale(1.02) } 100% { opacity: 0.4; transform: scale(1) } }
@keyframes bdi-cradle { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes bdi-omer { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(2px) rotate(2deg) } 66% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bdi-lamp { 0% { opacity: 0.8; box-shadow: 0 0 8px 1px #c0a070 } 50% { opacity: 1; box-shadow: 0 0 14px 4px #e0c090 } 100% { opacity: 0.85; box-shadow: 0 0 10px 2px #c0a070 } }
@keyframes bdi-glow { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.6; transform: scale(1.2) } 100% { opacity: 0.4; transform: scale(1.05) } }
@keyframes bdi-shadow { 0% { opacity: 0.4; transform: translateX(0) } 50% { opacity: 0.6; transform: translateX(3px) } 100% { opacity: 0.45; transform: translateX(0) } }

/* joram-trip-offer - bright interior */
.scn-joram-trip-offer {
  background: linear-gradient(180deg, #f5e8d0 0%, #e8d4b8 50%, #d4b890 100%),
              radial-gradient(ellipse at 50% 30%, #faf0e0 0%, transparent 60%);
}
.scn-joram-trip-offer .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0e4d0 0%, #e0d0b8 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.05);
}
.scn-joram-trip-offer .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8b090 0%, #a89070 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.1);
}
.scn-joram-trip-offer .table {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4b890 0%, #b89870 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-joram-trip-offer .chair-left {
  position: absolute; bottom: 24%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #a08868 0%, #806850 100%);
  border-radius: 10% 10% 4% 4%;
  transform-origin: bottom center;
  animation: jto-chair 5s ease-in-out infinite alternate;
}
.scn-joram-trip-offer .chair-right {
  position: absolute; bottom: 24%; right: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #a08868 0%, #806850 100%);
  border-radius: 10% 10% 4% 4%;
  transform-origin: bottom center;
  animation: jto-chair 5s ease-in-out infinite alternate-reverse;
}
.scn-joram-trip-offer .figure-joram {
  position: absolute; bottom: 24%; left: 38%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jto-person 4s ease-in-out infinite;
}
.scn-joram-trip-offer .figure-minnie {
  position: absolute; bottom: 24%; right: 38%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jto-person 4.5s ease-in-out infinite -1s;
}
.scn-joram-trip-offer .sunbeam {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: jto-sunbeam 10s ease-in-out infinite alternate;
}
@keyframes jto-chair { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0) } }
@keyframes jto-person { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes jto-sunbeam { 0% { opacity: 0.2; transform: scaleX(1) rotate(0) } 50% { opacity: 0.5; transform: scaleX(1.2) rotate(2deg) } 100% { opacity: 0.3; transform: scaleX(0.9) rotate(-1deg) } }

/* miss-murdstone-shirt-inquiry - tense bright */
.scn-miss-murdstone-shirt-inquiry {
  background: linear-gradient(180deg, #e8e0d0 0%, #d0c0a8 50%, #b8a890 100%),
              radial-gradient(ellipse at 50% 80%, #d0c0a8 0%, transparent 60%);
}
.scn-miss-murdstone-shirt-inquiry .wall-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e8dc 0%, #e0d0bc 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.05);
}
.scn-miss-murdstone-shirt-inquiry .floor-hard {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.15);
}
.scn-miss-murdstone-shirt-inquiry .figure-miss-m {
  position: absolute; bottom: 20%; left: 35%; width: 25px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: mms-figure1 3s ease-in-out infinite;
}
.scn-miss-murdstone-shirt-inquiry .figure-david {
  position: absolute; bottom: 20%; right: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mms-figure2 3.5s ease-in-out infinite -0.5s;
}
.scn-miss-murdstone-shirt-inquiry .shirt-pile {
  position: absolute; bottom: 18%; left: 50%; width: 40px; height: 25px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: mms-shirts 6s ease-in-out infinite;
}
.scn-miss-murdstone-shirt-inquiry .shadow-strip {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.2), transparent);
  filter: blur(2px);
  animation: mms-shadow 4s ease-in-out infinite alternate;
}
.scn-miss-murdstone-shirt-inquiry .speck-ledges {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(circle at 20% 30%, rgba(0,0,0,0.05) 0%, transparent 50%),
              radial-gradient(circle at 80% 70%, rgba(0,0,0,0.05) 0%, transparent 50%);
  filter: blur(8px);
  animation: mms-specks 7s ease-in-out infinite alternate;
}
@keyframes mms-figure1 { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mms-figure2 { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-2px) rotate(-2deg) } 66% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mms-shirts { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes mms-shadow { 0% { opacity: 0.2; transform: scaleX(1) } 50% { opacity: 0.4; transform: scaleX(1.1) } 100% { opacity: 0.2; transform: scaleX(1) } }
@keyframes mms-specks { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.35 } }

/* chillip-condolence - warm bright */
.scn-chillip-condolence {
  background: linear-gradient(180deg, #faf0e0 0%, #f0e0c8 50%, #e8d0a8 100%),
              radial-gradient(ellipse at 30% 60%, #f5e8d0 0%, transparent 60%);
}
.scn-chillip-condolence .wall-warm {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f5e8d0 0%, #e8d4b8 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.04);
}
.scn-chillip-condolence .floor-soft {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%);
  border-radius: 60% 60% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 25px rgba(0,0,0,0.08);
}
.scn-chillip-condolence .window-warm {
  position: absolute; top: 12%; right: 12%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #e8d8c0 0%, #d0b898 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 30px rgba(200,180,150,0.6), 0 4px 12px rgba(0,0,0,0.1);
  animation: cco-window 10s ease-in-out infinite alternate;
}
.scn-chillip-condolence .figure-chillip {
  position: absolute; bottom: 22%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cco-chillip 5s ease-in-out infinite;
}
.scn-chillip-condolence .figure-david-small {
  position: absolute; bottom: 20%; right: 30%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cco-david 4.5s ease-in-out infinite -1s;
}
.scn-chillip-condolence .chair-chillip {
  position: absolute; bottom: 22%; left: 28%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 8% 8% 4% 4%;
  transform-origin: bottom center;
  animation: cco-chair 6s ease-in-out infinite alternate;
}
.scn-chillip-condolence .carpet {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50%;
  filter: blur(6px);
  opacity: 0.6;
  animation: cco-carpet 8s ease-in-out infinite alternate;
}
@keyframes cco-window { 0% { opacity: 0.8; transform: scaleX(1) } 50% { opacity: 1; transform: scaleX(1.05) } 100% { opacity: 0.85; transform: scaleX(1) } }
@keyframes cco-chillip { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cco-david { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-2px) rotate(2deg) } 66% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cco-chair { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0) } }
@keyframes cco-carpet { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.05) } 100% { opacity: 0.55; transform: scale(0.98) } }

/* mrs-micawber-asks-help – dim interior, warm candlelight */
.scn-mrs-micawber-asks-help {
  background: 
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a0e08 0%, #2a1a10 40%, #3a2a1a 70%, #1a0e08 100%);
}
.scn-mrs-micawber-asks-help .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2a1a10 0%, #4a2a1a 50%, #2a1a10 100%); border-bottom:8px solid #1a0e08; }
.scn-mrs-micawber-asks-help .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); }
.scn-mrs-micawber-asks-help .candle { position:absolute; bottom:40%; left:30%; width:8px; height:40px; background: linear-gradient(180deg, #c8a878 0%, #8a6a3a 100%); border-radius:4px; transform:rotate(2deg); animation: mmh-candle 6s ease-in-out infinite alternate; }
.scn-mrs-micawber-asks-help .glow-candle { position:absolute; bottom:40%; left:30%; width:60px; height:60px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(255,200,100,0.7) 0%, rgba(255,160,60,0.3) 40%, transparent 70%); border-radius:50%; filter:blur(8px); animation: mmh-glow 4s ease-in-out infinite alternate; }
.scn-mrs-micawber-asks-help .figure-mrs { position:absolute; bottom:25%; left:40%; width:40px; height:100px; background: radial-gradient(ellipse 40% 50% at 50% 30%, #3a2a1a 0%, #1a0e08 100%); border-radius:30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin:bottom center; animation: mmh-bow 8s ease-in-out infinite; }
.scn-mrs-micawber-asks-help .figure-young { position:absolute; bottom:25%; left:55%; width:24px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mmh-listen 10s ease-in-out infinite; }
.scn-mrs-micawber-asks-help .shadows { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, transparent 30%, rgba(0,0,0,0.5) 100%); pointer-events:none; }
@keyframes mmh-candle { 0% { opacity:0.9; transform:rotate(2deg) } 50% { opacity:1; transform:rotate(0deg) } 100% { opacity:0.85; transform:rotate(-2deg) } }
@keyframes mmh-glow { 0% { opacity:0.6; transform:translate(-50%,-50%) scale(0.9) } 50% { opacity:0.9; transform:translate(-50%,-50%) scale(1.1) } 100% { opacity:0.7; transform:translate(-50%,-50%) scale(1) } }
@keyframes mmh-bow { 0% { transform:translateY(0) rotate(0deg) } 30% { transform:translateY(-4px) rotate(-5deg) } 60% { transform:translateY(0) rotate(0deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes mmh-listen { 0% { transform:translateX(0) } 50% { transform:translateX(3px) } 100% { transform:translateX(0) } }

/* micawber-arrested – dawn, cold blue-grey, silhouettes */
.scn-micawber-arrested {
  background: 
    linear-gradient(180deg, #2a3040 0%, #4a5060 30%, #6a7080 60%, #8a9080 100%),
    radial-gradient(ellipse at 70% 100%, #b0a890 0%, transparent 60%);
}
.scn-micawber-arrested .sky-dawn { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a3040 0%, #6a7090 50%, #b0a880 100%); animation: mar-sky 20s ease-in-out infinite alternate; }
.scn-micawber-arrested .street { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); }
.scn-micawber-arrested .door { position:absolute; bottom:20%; left:60%; width:60px; height:120px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border:2px solid #5a4a3a; border-radius:4px; box-shadow: -4px 0 8px rgba(0,0,0,0.5); }
.scn-micawber-arrested .guard-left { position:absolute; bottom:20%; left:35%; width:28px; height:100px; background: radial-gradient(ellipse 40% 50% at 50% 30%, #3a3a4a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; filter:brightness(0.8); animation: mar-guard-left 6s ease-in-out infinite alternate; }
.scn-micawber-arrested .guard-right { position:absolute; bottom:20%; left:50%; width:28px; height:100px; background: radial-gradient(ellipse 40% 50% at 50% 30%, #3a3a4a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; filter:brightness(0.9); transform:scaleX(-1); animation: mar-guard-right 7s ease-in-out infinite alternate; }
.scn-micawber-arrested .prisoner { position:absolute; bottom:20%; left:42%; width:30px; height:90px; background: radial-gradient(ellipse 50% 40% at 50% 30%, #4a3a2a 0%, #1a0e08 100%); border-radius:30% 30% 40% 40% / 40% 40% 50% 50%; animation: mar-prisoner 8s ease-in-out infinite; }
.scn-micawber-arrested .mist { position:absolute; bottom:0; left:0; right:0; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(180,170,160,0.2) 0%, transparent 70%); filter:blur(15px); animation: mar-mist 30s linear infinite; }
@keyframes mar-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mar-guard-left { 0% { transform:translateX(0) } 50% { transform:translateX(-4px) } 100% { transform:translateX(0) } }
@keyframes mar-guard-right { 0% { transform:scaleX(-1) translateX(0) } 50% { transform:scaleX(-1) translateX(4px) } 100% { transform:scaleX(-1) translateX(0) } }
@keyframes mar-prisoner { 0% { transform:translateY(0) rotate(0deg) } 30% { transform:translateY(-3px) rotate(-3deg) } 60% { transform:translateY(0) rotate(0deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes mar-mist { 0% { opacity:0; transform:translateY(0) } 25% { opacity:0.5; transform:translateY(-10px) } 50% { opacity:0.2; transform:translateY(0) } 75% { opacity:0.4; transform:translateY(-5px) } 100% { opacity:0; transform:translateY(10px) } }

/* micawber-discharged – bright interior, warm sunlight */
.scn-micawber-discharged {
  background: 
    linear-gradient(180deg, #f0e8d0 0%, #e0d8b8 50%, #c8b898 100%),
    radial-gradient(ellipse at 40% 30%, #f8f0e0 0%, transparent 60%);
}
.scn-micawber-discharged .wall-bright { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #f0e8d0 0%, #e0d0b0 50%, #f0e0c0 100%); }
.scn-micawber-discharged .window-arch { position:absolute; top:5%; left:20%; width:80px; height:120px; background: linear-gradient(180deg, #c8e0f0 0%, #b8d0e0 100%); border:6px solid #8a7050; border-radius:40px 40px 0 0; box-shadow:inset 0 0 30px rgba(200,200,255,0.3); animation: mdi-window 15s ease-in-out infinite alternate; }
.scn-micawber-discharged .sunbeam { position:absolute; top:5%; left:20%; width:200px; height:200px; background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 80%); transform:rotate(30deg); filter:blur(10px); animation: mdi-sunbeam 12s ease-in-out infinite alternate; pointer-events:none; }
.scn-micawber-discharged .table { position:absolute; bottom:20%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius:6px; box-shadow:0 4px 12px rgba(0,0,0,0.3); }
.scn-micawber-discharged .paper { position:absolute; bottom:32%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b0 100%); border:1px solid #c8b898; border-radius:2px; transform:rotate(-5deg); animation: mdi-paper 4s ease-in-out infinite alternate; }
.scn-micawber-discharged .figure-mr { position:absolute; bottom:15%; left:20%; width:40px; height:120px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin:bottom center; animation: mdi-mr 10s ease-in-out infinite; }
.scn-micawber-discharged .figure-mrs { position:absolute; bottom:15%; left:55%; width:36px; height:100px; background: radial-gradient(ellipse 40% 50% at 50% 30%, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: mdi-mrs 12s ease-in-out infinite; }
.scn-micawber-discharged .chair { position:absolute; bottom:20%; left:15%; width:30px; height:50px; background: linear-gradient(180deg, #6a5030 0%, #4a3018 100%); border-radius:4px; transform:rotate(2deg); animation: mdi-chair 8s ease-in-out infinite; }
@keyframes mdi-window { 0% { opacity:0.8; filter:brightness(0.9) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:0.85; filter:brightness(1) } }
@keyframes mdi-sunbeam { 0% { opacity:0.3; transform:rotate(25deg) scale(1) } 50% { opacity:0.6; transform:rotate(35deg) scale(1.05) } 100% { opacity:0.4; transform:rotate(30deg) scale(0.95) } }
@keyframes mdi-paper { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(2deg) translateY(-2px) } 100% { transform:rotate(-6deg) translateY(0) } }
@keyframes mdi-mr { 0% { transform:translateY(0) rotate(0deg) } 30% { transform:translateY(-3px) rotate(5deg) } 60% { transform:translateY(0) rotate(0deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes mdi-mrs { 0% { transform:translateX(0) } 50% { transform:translateX(4px) } 100% { transform:translateX(0) } }
@keyframes mdi-chair { 0% { transform:rotate(2deg) translateY(0) } 50% { transform:rotate(-1deg) translateY(-2px) } 100% { transform:rotate(2deg) translateY(0) } }

/* micawber-plans-country – bright interior, planning */
.scn-micawber-plans-country {
  background: 
    linear-gradient(180deg, #f8f0e0 0%, #e8dcc8 50%, #d8c8b0 100%),
    radial-gradient(ellipse at 60% 40%, #fff8e8 0%, transparent 60%);
}
.scn-micawber-plans-country .wall-bright { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #f0e8d0 0%, #e0d0b0 60%, #f0e0c0 100%); }
.scn-micawber-plans-country .map { position:absolute; bottom:25%; left:25%; width:100px; height:80px; background: linear-gradient(135deg, #d8c8a0 0%, #b8a880 40%, #c8b898 100%); border:2px solid #8a7a5a; border-radius:4px; transform:rotate(-3deg); box-shadow:2px 4px 12px rgba(0,0,0,0.2); animation: mpc-map 20s ease-in-out infinite alternate; }
.scn-micawber-plans-country .globe { position:absolute; bottom:15%; left:55%; width:70px; height:70px; background: radial-gradient(circle at 40% 35%, #b0d0e0 0%, #80a0b0 40%, #607080 100%); border-radius:50%; box-shadow:inset -8px -8px 20px rgba(0,0,0,0.3); animation: mpc-globe 30s linear infinite; }
.scn-micawber-plans-country .table-round { position:absolute; bottom:18%; left:30%; width:150px; height:60px; background: radial-gradient(ellipse at 50% 40%, #8a7050 0%, #6a5030 100%); border-radius:50%; box-shadow:0 6px 20px rgba(0,0,0,0.3); }
.scn-micawber-plans-country .figure-mr { position:absolute; bottom:12%; left:35%; width:40px; height:120px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin:bottom center; animation: mpc-mr 9s ease-in-out infinite; }
.scn-micawber-plans-country .figure-mrs { position:absolute; bottom:12%; left:50%; width:36px; height:105px; background: radial-gradient(ellipse 40% 50% at 50% 30%, #7a6a5a 0%, #5a4a3a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation: mpc-mrs 11s ease-in-out infinite; }
.scn-micawber-plans-country .tea-cup { position:absolute; bottom:20%; left:45%; width:20px; height:16px; background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a0 100%); border-radius:8px 8px 4px 4px; box-shadow:0 2px 6px rgba(0,0,0,0.2); animation: mpc-cup 5s ease-in-out infinite alternate; }
.scn-micawber-plans-country .steam { position:absolute; bottom:30%; left:45%; width:12px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,150,0.4) 0%, transparent 70%); filter:blur(4px); animation: mpc-steam 8s ease-in-out infinite; }
@keyframes mpc-map { 0% { transform:rotate(-3deg) scale(1) } 50% { transform:rotate(0deg) scale(1.02) } 100% { transform:rotate(-2deg) scale(1) } }
@keyframes mpc-globe { 0% { transform:rotate(0deg) } 100% { transform:rotate(360deg) } }
@keyframes mpc-mr { 0% { transform:translateY(0) rotate(0deg) } 30% { transform:translateY(-4px) rotate(4deg) } 60% { transform:translateY(0) rotate(0deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes mpc-mrs { 0% { transform:translateX(0) } 50% { transform:translateX(5px) } 100% { transform:translateX(0) } }
@keyframes mpc-cup { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) rotate(-3deg) } 100% { transform:translateY(0) } }
@keyframes mpc-steam { 0% { opacity:0; transform:translateY(0) scale(0.8) } 50% { opacity:0.5; transform:translateY(-15px) scale(1.2) } 100% { opacity:0; transform:translateY(-30px) scale(0.6) } }

/* mr-chillip-recognized */
.scn-mr-chillip-recognized {
  background:
    linear-gradient(180deg, #2a1f14 0%, #3a2e22 40%, #4a3c2e 100%),
    radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 70%);
}
.scn-mr-chillip-recognized .wall {
  position:absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3c2e 0%, #3a2e22 100%);
  box-shadow: inset 0 0 30px #1a120a;
}
.scn-mr-chillip-recognized .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-mr-chillip-recognized .figure-david {
  position:absolute; bottom:25%; left:30%; width:20px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc-david 6s ease-in-out infinite alternate;
}
.scn-mr-chillip-recognized .figure-chillip {
  position:absolute; bottom:25%; right:35%; width:22px; height:55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: rc-chillip 6s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-mr-chillip-recognized .table {
  position:absolute; bottom:30%; left:50%; width:40px; height:10px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-mr-chillip-recognized .candle {
  position:absolute; bottom:38%; left:50%; width:4px; height:16px;
  background: linear-gradient(180deg, #e0c090 0%, #b08050 100%);
  border-radius: 2px 2px 0 0;
  transform: translateX(-50%);
  animation: rc-candle 3s ease-in-out infinite alternate;
}
.scn-mr-chillip-recognized .window-glow {
  position:absolute; top:15%; right:10%; width:30px; height:40px;
  background: radial-gradient(circle, rgba(255,220,180,0.3) 0%, transparent 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,200,150,0.15);
  animation: rc-glow 5s ease-in-out infinite alternate;
}
@keyframes rc-david {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes rc-chillip {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(2px) rotate(0deg); }
}
@keyframes rc-candle {
  0% { opacity: 0.7; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.02); }
  100% { opacity: 0.8; transform: translateX(-50%) scaleY(0.98); }
}
@keyframes rc-glow {
  0% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(1); }
}

/* mr-chillip-recalls */
.scn-mr-chillip-recalls {
  background:
    linear-gradient(180deg, #2a1f14 0%, #3a2e22 40%, #4a3c2e 100%),
    radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-mr-chillip-recalls .wall {
  position:absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3c2e 0%, #3a2e22 100%);
  box-shadow: inset 0 0 30px #1a120a;
}
.scn-mr-chillip-recalls .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-mr-chillip-recalls .portrait-frame {
  position:absolute; top:15%; left:50%; width:24px; height:30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border: 2px solid #8a6a4a;
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: rl-frame 8s ease-in-out infinite alternate;
}
.scn-mr-chillip-recalls .figure-chillip {
  position:absolute; bottom:25%; left:40%; width:22px; height:55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: rl-chillip 7s ease-in-out infinite alternate;
}
.scn-mr-chillip-recalls .armchair {
  position:absolute; bottom:28%; right:30%; width:30px; height:20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-mr-chillip-recalls .fireplace {
  position:absolute; bottom:40%; left:50%; width:40px; height:50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: inset 0 0 20px #2a1a0a;
}
.scn-mr-chillip-recalls .fire {
  position:absolute; bottom:45%; left:50%; width:20px; height:18px;
  background: radial-gradient(ellipse at 50% 100%, #e08030 0%, #c06020 40%, transparent 60%);
  transform: translateX(-50%);
  animation: rl-fire 2s ease-in-out infinite alternate;
}
@keyframes rl-frame {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes rl-chillip {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes rl-fire {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.1); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.9); opacity: 0.7; }
}

/* mr-chillip-family-news */
.scn-mr-chillip-family-news {
  background:
    linear-gradient(180deg, #2a1f14 0%, #3a2e22 40%, #4a3c2e 100%),
    radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, transparent 70%);
}
.scn-mr-chillip-family-news .wall {
  position:absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3c2e 0%, #3a2e22 100%);
  box-shadow: inset 0 0 30px #1a120a;
}
.scn-mr-chillip-family-news .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-mr-chillip-family-news .table {
  position:absolute; bottom:28%; left:50%; width:60px; height:12px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-mr-chillip-family-news .figure-david {
  position:absolute; bottom:25%; left:25%; width:20px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fn-david 6s ease-in-out infinite alternate;
}
.scn-mr-chillip-family-news .figure-chillip {
  position:absolute; bottom:25%; right:25%; width:22px; height:55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: fn-chillip 6s ease-in-out infinite alternate;
  animation-delay: 0.3s;
}
.scn-mr-chillip-family-news .lamp {
  position:absolute; bottom:35%; left:60%; width:6px; height:20px;
  background: linear-gradient(180deg, #e0c090 0%, #b08050 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 0 12px 4px rgba(200,160,100,0.4);
  animation: fn-lamp 4s ease-in-out infinite alternate;
}
.scn-mr-chillip-family-news .paper {
  position:absolute; bottom:32%; left:48%; width:16px; height:12px;
  background: linear-gradient(135deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 2px;
  transform: translateX(-50%) rotate(-2deg);
  box-shadow: 1px 1px 2px rgba(0,0,0,0.3);
  animation: fn-paper 5s ease-in-out infinite alternate;
}
@keyframes fn-david {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes fn-chillip {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes fn-lamp {
  0% { opacity: 0.6; transform: rotate(-5deg) scaleY(1); }
  50% { opacity: 0.9; transform: rotate(-3deg) scaleY(1.02); }
  100% { opacity: 0.7; transform: rotate(-7deg) scaleY(0.98); }
}
@keyframes fn-paper {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(-4deg); }
}

/* mr-chillip-murdstone-news */
.scn-mr-chillip-murdstone-news {
  background:
    linear-gradient(180deg, #2a1f14 0%, #3a2e22 40%, #4a3c2e 100%),
    radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-mr-chillip-murdstone-news .wall {
  position:absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a3c2e 0%, #3a2e22 100%);
  box-shadow: inset 0 0 30px #1a120a;
}
.scn-mr-chillip-murdstone-news .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1f14 0%, #1a120a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-mr-chillip-murdstone-news .bust {
  position:absolute; top:20%; left:50%; width:20px; height:28px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: mn-bust 10s ease-in-out infinite alternate;
}
.scn-mr-chillip-murdstone-news .figure-chillip {
  position:absolute; bottom:25%; left:30%; width:22px; height:55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: mn-chillip 7s ease-in-out infinite alternate;
}
.scn-mr-chillip-murdstone-news .desk {
  position:absolute; bottom:28%; left:50%; width:50px; height:8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-mr-chillip-murdstone-news .candle {
  position:absolute; bottom:35%; left:55%; width:4px; height:16px;
  background: linear-gradient(180deg, #e0c090 0%, #b08050 100%);
  border-radius: 2px 2px 0 0;
  transform: translateX(-50%);
  animation: mn-candle 3s ease-in-out infinite alternate;
}
.scn-mr-chillip-murdstone-news .window-glow {
  position:absolute; top:10%; right:8%; width:25px; height:35px;
  background: radial-gradient(circle, rgba(255,220,180,0.3) 0%, transparent 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 15px 6px rgba(255,200,150,0.15);
  animation: mn-glow 5s ease-in-out infinite alternate;
}
@keyframes mn-bust {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes mn-chillip {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes mn-candle {
  0% { opacity: 0.7; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.02); }
  100% { opacity: 0.8; transform: translateX(-50%) scaleY(0.98); }
}
@keyframes mn-glow {
  0% { opacity: 0.4; transform: scale(0.95); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(1); }
}

.scn-traddles-joyful-babbling {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9b68c 50%, #b88a5a 100%),
              radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%);
}
.scn-traddles-joyful-babbling .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #fef3e0 0%, #ecd4b0 60%, #d4ae7a 100%);
  animation: tjb-sky 12s ease-in-out infinite alternate;
}
.scn-traddles-joyful-babbling .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b88a5a 0%, #8a6a3e 100%);
  border-radius: 30% 70% 0 0 / 10% 20% 0 0;
}
.scn-traddles-joyful-babbling .fireplace {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 90px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
}
.scn-traddles-joyful-babbling .figure-left {
  position: absolute; bottom: 28%; left: 38%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tjb-fig-left 4s ease-in-out infinite;
}
.scn-traddles-joyful-babbling .figure-right {
  position: absolute; bottom: 28%; left: 52%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tjb-fig-right 4s ease-in-out infinite 2s;
}
.scn-traddles-joyful-babbling .glow-spark {
  position: absolute; bottom: 50%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe080 0%, #e8a040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(232,160,64,0.6);
  animation: tjb-spark 3s ease-in-out infinite;
}
.scn-traddles-joyful-babbling .rug {
  position: absolute; bottom: 5%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(90deg, #c8553d 0%, #a0461a 50%, #c8553d 100%);
  border-radius: 50%;
  opacity: 0.7;
  animation: tjb-rug 8s ease-in-out infinite alternate;
}
@keyframes tjb-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes tjb-fig-left { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(-5px) rotate(3deg) scale(1.02) } 60% { transform: translateX(0) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tjb-fig-right { 0% { transform: translateX(0) rotate(2deg) } 30% { transform: translateX(5px) rotate(-3deg) scale(1.02) } 60% { transform: translateX(0) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tjb-spark { 0% { opacity: 0.6; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.7; transform: scale(0.9) } }
@keyframes tjb-rug { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }

.scn-traddles-marriage-revealed {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 40%, #b09070 100%),
              radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 60%);
}
.scn-traddles-marriage-revealed .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #fcf0d8 0%, #e8d4b0 100%);
  animation: tmr-bg 10s ease-in-out infinite alternate;
}
.scn-traddles-marriage-revealed .table {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 6px rgba(0,0,0,0.2);
}
.scn-traddles-marriage-revealed .figure-traddles {
  position: absolute; bottom: 25%; left: 42%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tmr-traddles 3s ease-in-out infinite;
}
.scn-traddles-marriage-revealed .figure-copperfield {
  position: absolute; bottom: 25%; left: 50%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tmr-copper 3s ease-in-out infinite 1.5s;
}
.scn-traddles-marriage-revealed .document {
  position: absolute; bottom: 32%; left: 43%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #fff8d0 0%, #e0d0a0 100%);
  border: 2px solid #a08050;
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: tmr-doc 6s ease-in-out infinite alternate;
}
.scn-traddles-marriage-revealed .lamp {
  position: absolute; bottom: 38%; left: 58%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #e0a040;
  animation: tmr-lamp 4s ease-in-out infinite;
}
.scn-traddles-marriage-revealed .chair {
  position: absolute; bottom: 18%; left: 32%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  animation: tmr-chair 8s ease-in-out infinite alternate;
}
@keyframes tmr-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes tmr-traddles { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(0deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes tmr-copper { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(1px) rotate(1deg) } 75% { transform: translateX(-1px) rotate(0deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes tmr-doc { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(6deg) translateY(0) } }
@keyframes tmr-lamp { 0% { box-shadow: 0 0 15px 4px #d09050 } 50% { box-shadow: 0 0 30px 10px #e0a050 } 100% { box-shadow: 0 0 18px 5px #d09050 } }
@keyframes tmr-chair { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }

.scn-sophy-revealed-behind-curtain {
  background: linear-gradient(180deg, #f5e8d0 0%, #c8b898 50%, #a08868 100%),
              radial-gradient(ellipse at 30% 40%, #fff5e0 0%, transparent 50%);
}
.scn-sophy-revealed-behind-curtain .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #fcf5e8 0%, #e8dcc8 100%);
  animation: srb-bg 14s ease-in-out infinite alternate;
}
.scn-sophy-revealed-behind-curtain .window-light {
  position: absolute; top: 5%; right: 15%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #fff8e0 0%, #f0d8b0 60%, transparent 100%);
  border-radius: 10%;
  opacity: 0.6;
  animation: srb-light 6s ease-in-out infinite alternate;
}
.scn-sophy-revealed-behind-curtain .curtain-left {
  position: absolute; top: 0; left: 0; width: 40%; height: 100%;
  background: linear-gradient(180deg, #b07050 0%, #805035 50%, #503020 100%);
  border-radius: 0 30% 30% 0 / 0 20% 20% 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  animation: srb-curtain-l 8s ease-in-out infinite alternate;
}
.scn-sophy-revealed-behind-curtain .curtain-right {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(180deg, #b07050 0%, #805035 50%, #503020 100%);
  border-radius: 30% 0 0 30% / 20% 0 0 20%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.3);
  animation: srb-curtain-r 8s ease-in-out infinite alternate 4s;
}
.scn-sophy-revealed-behind-curtain .figure-sophy {
  position: absolute; bottom: 25%; left: 48%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srb-sophy 5s ease-in-out infinite;
}
.scn-sophy-revealed-behind-curtain .figure-traddles {
  position: absolute; bottom: 25%; left: 55%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srb-traddles 5s ease-in-out infinite 2.5s;
}
.scn-sophy-revealed-behind-curtain .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #a08868 0%, #7a6a4e 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
@keyframes srb-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes srb-light { 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 srb-curtain-l { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes srb-curtain-r { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes srb-sophy { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(1deg) scale(1.02) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes srb-traddles { 0% { transform: translateY(0) rotate(2deg) } 30% { transform: translateY(-2px) rotate(-1deg) scale(1.02) } 60% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-traddles-humble-home {
  background: linear-gradient(180deg, #e8d4b8 0%, #c8b090 40%, #a08868 100%),
              radial-gradient(ellipse at 40% 50%, #fff0d0 0%, transparent 60%);
}
.scn-traddles-humble-home .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f5ead8 0%, #dcc8a8 100%);
  animation: thh-bg 10s ease-in-out infinite alternate;
}
.scn-traddles-humble-home .wall-panel {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(135deg, #e8d4b8 0%, #c8b090 100%);
  border: 2px solid #b09070;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
}
.scn-traddles-humble-home .table {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.2);
}
.scn-traddles-humble-home .chair-left {
  position: absolute; bottom: 14%; left: 28%; width: 30px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  animation: thh-chair-l 8s ease-in-out infinite alternate;
}
.scn-traddles-humble-home .chair-right {
  position: absolute; bottom: 14%; right: 28%; width: 30px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  animation: thh-chair-r 8s ease-in-out infinite alternate 4s;
}
.scn-traddles-humble-home .lantern {
  position: absolute; bottom: 28%; left: 50%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #e0a040;
  animation: thh-lantern 4s ease-in-out infinite;
}
.scn-traddles-humble-home .window {
  position: absolute; top: 12%; right: 12%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #ffe8c0 0%, #d0b080 100%);
  border: 3px solid #8a6a4a;
  border-radius: 2px;
  box-shadow: 0 0 20px rgba(255,200,100,0.3);
  animation: thh-window 6s ease-in-out infinite alternate;
}
.scn-traddles-humble-home .windowsill {
  position: absolute; bottom: 60%; right: 10%; width: 60px; height: 8px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
@keyframes thh-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes thh-chair-l { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(1) } }
@keyframes thh-chair-r { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(1) } }
@keyframes thh-lantern { 0% { box-shadow: 0 0 15px 4px #d09050 } 50% { box-shadow: 0 0 30px 10px #e0a050 } 100% { box-shadow: 0 0 18px 5px #d09050 } }
@keyframes thh-window { 0% { opacity: 0.5; transform: scale(0.98) } 50% { opacity: 0.8; transform: scale(1.02) } 100% { opacity: 0.6; transform: scale(0.99) } }

/* ---------- emmas-fragile-grasp ---------- */
.scn-emmas-fragile-grasp {
  background: 
    linear-gradient(180deg, #e8d5b0 0%, #d4b88a 30%, #c49a6a 55%, #b08050 100%),
    radial-gradient(ellipse at 70% 80%, #d4a060 0%, transparent 60%);
}
.scn-emmas-fragile-grasp .room-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #e8d5b0 0%, #d4b88a 50%, #c49a6a 100%);
  animation: emg-wall 20s ease-in-out infinite alternate;
}
.scn-emmas-fragile-grasp .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a5030 50%, #4a3820 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.5);
}
.scn-emmas-fragile-grasp .fireplace {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 60%, #2a1a10 100%);
  border-radius: 12% 12% 6% 6%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.4);
}
.scn-emmas-fragile-grasp .fire-glow {
  position: absolute; bottom: 38%; left: 50%; width: 60px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #ffb040 0%, #ff8020 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,120,20,.5), 0 0 80px 40px rgba(255,120,20,.2);
  animation: emg-fire 3s ease-in-out infinite alternate;
}
.scn-emmas-fragile-grasp .figure-seated {
  position: absolute; bottom: 32%; left: 36%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 50%, #3a2018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: emg-seated 6s ease-in-out infinite;
}
.scn-emmas-fragile-grasp .scarf-drape {
  position: absolute; bottom: 48%; left: 34%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #b87878 0%, #a06060 40%, #884848 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-12deg);
  animation: emg-scarf 5s ease-in-out infinite alternate;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
}
.scn-emmas-fragile-grasp .punch-cup {
  position: absolute; bottom: 36%; left: 44%; width: 16px; height: 14px;
  background: linear-gradient(180deg, #c49a6a 0%, #a07848 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: emg-cup 8s ease-in-out infinite;
}
.scn-emmas-fragile-grasp .window-light {
  position: absolute; top: 8%; right: 12%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(200,180,140,.4) 0%, rgba(180,160,120,.2) 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(200,180,140,.3);
  animation: emg-window 12s ease-in-out infinite alternate;
}
@keyframes emg-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes emg-fire { 0% { transform: translateX(-50%) scale(.95); opacity: .8 } 50% { transform: translateX(-50%) scale(1.05); opacity: 1 } 100% { transform: translateX(-50%) scale(.98); opacity: .85 } }
@keyframes emg-seated { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes emg-scarf { 0% { transform: rotate(-12deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-14deg) translateY(1px) } }
@keyframes emg-cup { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes emg-window { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .25 } }

/* ---------- exert-and-assert ---------- */
.scn-exert-and-assert {
  background: 
    linear-gradient(180deg, #3a2010 0%, #5a2a10 30%, #8a3a18 60%, #6a2810 100%),
    radial-gradient(ellipse at 40% 60%, #d06020 0%, transparent 70%);
}
.scn-exert-and-assert .bg-deep {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a180a 0%, #4a2010 50%, transparent 100%);
  animation: exa-bg 15s ease-in-out infinite alternate;
}
.scn-exert-and-assert .fire-glow-large {
  position: absolute; bottom: 20%; left: 30%; width: 200px; height: 200px;
  background: radial-gradient(ellipse at 50% 70%, #ff9040 0%, #d06020 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(208,96,32,.5), 0 0 120px 60px rgba(208,96,32,.2);
  animation: exa-glow 4s ease-in-out infinite alternate;
}
.scn-exert-and-assert .figure-standing {
  position: absolute; bottom: 20%; left: 40%; width: 44px; height: 100px;
  background: linear-gradient(180deg, #1a1a28 0%, #0e0e1a 50%, #08080e 100%);
  border-radius: 35% 35% 25% 25% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -4px 0 12px rgba(0,0,0,.6);
  animation: exa-stand 6s ease-in-out infinite;
}
.scn-exert-and-assert .arm-raised {
  position: absolute; bottom: 68%; left: 44%; width: 36px; height: 8px;
  background: linear-gradient(90deg, #0e0e1a 0%, #1a1a28 100%);
  border-radius: 40% 10% 10% 40%;
  transform-origin: 0% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: exa-arm 3s ease-in-out infinite;
}
.scn-exert-and-assert .desk {
  position: absolute; bottom: 18%; left: 30%; width: 140px; height: 20px;
  background: linear-gradient(180deg, #4a3020 0%, #3a2018 60%, #2a1810 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-exert-and-assert .paper-scatter {
  position: absolute; bottom: 22%; left: 46%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #d4c8a0 0%, #c0b080 40%, #a89860 100%);
  border-radius: 4% 8% 12% 6% / 6% 10% 8% 4%;
  transform: rotate(8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: exa-paper 10s ease-in-out infinite alternate;
}
.scn-exert-and-assert .shadow-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, transparent 30%, rgba(0,0,0,.4) 70%);
  animation: exa-shadow 4s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes exa-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .65 } }
@keyframes exa-glow { 0% { transform: scale(.95); opacity: .7 } 50% { transform: scale(1.08); opacity: 1 } 100% { transform: scale(.98); opacity: .75 } }
@keyframes exa-stand { 0% { transform: translateY(0) rotate(-1deg) scaleY(1) } 50% { transform: translateY(-3px) rotate(1.5deg) scaleY(1.02) } 100% { transform: translateY(0) rotate(0) scaleY(1) } }
@keyframes exa-arm { 0% { transform: rotate(-20deg) scaleX(1) } 50% { transform: rotate(15deg) scaleX(1.1) } 100% { transform: rotate(-15deg) scaleX(1) } }
@keyframes exa-paper { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(1px) } }
@keyframes exa-shadow { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .4 } }

/* ---------- provided-for-micawber ---------- */
.scn-provided-for-micawber {
  background: 
    linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 30%, #d0b898 60%, #c0a080 100%),
    radial-gradient(ellipse at 50% 30%, #f4ece0 0%, transparent 60%);
}
.scn-provided-for-micawber .room-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f4ece0 0%, #e8dcc8 50%, #dcc8a8 100%);
  animation: pfm-room 18s ease-in-out infinite alternate;
}
.scn-provided-for-micawber .table {
  position: absolute; bottom: 28%; left: 50%; width: 160px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b09878 0%, #907858 60%, #786040 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
}
.scn-provided-for-micawber .figure-left {
  position: absolute; bottom: 28%; left: 32%; width: 42px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pfm-left 7s ease-in-out infinite;
}
.scn-provided-for-micawber .figure-right {
  position: absolute; bottom: 28%; right: 30%; width: 40px; height: 76px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: pfm-right 8s ease-in-out infinite;
}
.scn-provided-for-micawber .document {
  position: absolute; bottom: 40%; left: 50%; width: 50px; height: 36px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #f0e4c8 0%, #e0d0a8 50%, #d0b888 100%);
  border-radius: 4% 6% 8% 4% / 6% 4% 8% 6%;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
  animation: pfm-doc 12s ease-in-out infinite alternate;
}
.scn-provided-for-micawber .window-frame {
  position: absolute; top: 6%; right: 10%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #d0c0a0 0%, #c0b090 60%, #b0a080 100%);
  border-radius: 6% 6% 10% 10%;
  box-shadow: inset 0 0 16px rgba(200,180,140,.4);
}
.scn-provided-for-micawber .sunbeam {
  position: absolute; top: 10%; right: 12%; width: 40px; height: 140px;
  background: linear-gradient(180deg, rgba(240,230,200,.6) 0%, rgba(220,200,160,.2) 60%, transparent 100%);
  transform: rotate(18deg);
  border-radius: 20% 20% 40% 40%;
  filter: blur(4px);
  animation: pfm-beam 15s ease-in-out infinite alternate;
}
.scn-provided-for-micawber .inkwell {
  position: absolute; bottom: 38%; left: 46%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
@keyframes pfm-room { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes pfm-left { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pfm-right { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pfm-doc { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes pfm-beam { 0% { opacity: .4; transform: rotate(18deg) scaleX(1) } 50% { opacity: .7; transform: rotate(16deg) scaleX(1.1) } 100% { opacity: .3; transform: rotate(20deg) scaleX(.95) } }

/* ---------- leave-of-absence ---------- */
.scn-leave-of-absence {
  background: 
    linear-gradient(180deg, #d8d0c0 0%, #c8b898 30%, #b0a080 60%, #988868 100%),
    radial-gradient(ellipse at 60% 40%, #e0d4c0 0%, transparent 50%);
}
.scn-leave-of-absence .office-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #d8d0c0 0%, #c0b498 50%, #a89878 100%);
  box-shadow: inset 0 -8px 20px rgba(80,60,40,.15);
  animation: loa-wall 10s ease-in-out infinite alternate;
}
.scn-leave-of-absence .desk-large {
  position: absolute; bottom: 26%; left: 20%; width: 200px; height: 30px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 60%, #504030 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 6px 16px rgba(0,0,0,.4);
}
.scn-leave-of-absence .figure-seated-spenlow {
  position: absolute; bottom: 26%; left: 38%; width: 46px; height: 72px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  box-shadow: -2px 0 8px rgba(0,0,0,.5);
  animation: loa-seated 6s ease-in-out infinite;
}
.scn-leave-of-absence .figure-standing-copperfield {
  position: absolute; bottom: 26%; right: 25%; width: 38px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0e00 100%);
  border-radius: 40% 40% 25% 25% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 2px 0 8px rgba(0,0,0,.4);
  animation: loa-stand 8s ease-in-out infinite;
}
.scn-leave-of-absence .window-sharp {
  position: absolute; top: 4%; left: 8%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #e0d8c8 0%, #c8b898 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 16px rgba(200,180,140,.5);
}
.scn-leave-of-absence .shadow-stripes {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(0,0,0,.08) 30px, rgba(0,0,0,.08) 60px);
  animation: loa-stripes 15s linear infinite alternate;
  pointer-events: none;
}
.scn-leave-of-absence .hat-stand {
  position: absolute; bottom: 26%; left: 12%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-leave-of-absence .door-ajar {
  position: absolute; bottom: 30%; right: 4%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 60%, #403020 100%);
  border-radius: 4% 12% 0 0 / 6% 20% 0 0;
  transform: skewY(3deg);
  box-shadow: -4px 0 12px rgba(0,0,0,.3);
  animation: loa-door 20s ease-in-out infinite alternate;
}
.scn-leave-of-absence .tension-flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, transparent 30%, rgba(0,0,0,.15) 70%);
  animation: loa-flicker 3s ease-in-out infinite;
  pointer-events: none;
}
@keyframes loa-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes loa-seated { 0% { transform: translateY(0) rotate(-1deg) scaleX(1) } 50% { transform: translateY(-2px) rotate(1.5deg) scaleX(.98) } 100% { transform: translateY(0) rotate(0) scaleX(1) } }
@keyframes loa-stand { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(.5deg) } }
@keyframes loa-stripes { 0% { opacity: .5; transform: translateX(0) } 50% { opacity: .8; transform: translateX(5px) } 100% { opacity: .4; transform: translateX(-3px) } }
@keyframes loa-door { 0% { transform: skewY(3deg) translateX(0) } 50% { transform: skewY(2deg) translateX(-2px) } 100% { transform: skewY(4deg) translateX(1px) } }
@keyframes loa-flicker { 0% { opacity: .2 } 50% { opacity: .45 } 100% { opacity: .15 } }

.scn-miss-clarissa-voice {
  background: linear-gradient(180deg, #e8dcc8 0%, #c9b99a 60%, #a88b6a 100%), radial-gradient(ellipse at 70% 20%, #f9e8c8 0%, transparent 60%);
}
.scn-miss-clarissa-voice .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #e0d0b0 0%, #d4c0a0 100%);
  animation: mcV-wall 12s ease-in-out infinite alternate;
}
.scn-miss-clarissa-voice .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #8a6f4a 0%, #6b5030 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-miss-clarissa-voice .window {
  position:absolute; top:10%; left:55%; width:30%; height:50%;
  background: linear-gradient(180deg, #c0d0e0 0%, #a0b8d0 100%);
  border: 4px solid #6b5030; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,240,200,0.3);
  animation: mcV-window 20s ease-in-out infinite alternate;
}
.scn-miss-clarissa-voice .fireplace {
  position:absolute; bottom:28%; left:10%; width:20%; height:35%;
  background: linear-gradient(180deg, #6b5030 0%, #4a3820 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
}
.scn-miss-clarissa-voice .fire-glow {
  position:absolute; bottom:30%; left:12%; width:16%; height:20%;
  background: radial-gradient(circle, #f0b060 0%, #d08030 40%, transparent 70%);
  border-radius: 50%;
  animation: mcV-fire 3s ease-in-out infinite alternate;
}
.scn-miss-clarissa-voice .chair {
  position:absolute; bottom:26%; right:20%; width:15%; height:25%;
  background: linear-gradient(180deg, #8a6f4a 0%, #5a4020 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(4deg);
}
.scn-miss-clarissa-voice .figure-clarissa {
  position:absolute; bottom:24%; right:35%; width:12%; height:40%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: mcV-figure 6s ease-in-out infinite alternate;
}
.scn-miss-clarissa-voice .arm-gesture {
  position:absolute; bottom:48%; right:40%; width:14%; height:6%;
  background: linear-gradient(90deg, #7a6040 0%, #5a4020 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform-origin: left center;
  animation: mcV-arm 4s ease-in-out infinite alternate;
}
.scn-miss-clarissa-voice .table {
  position:absolute; bottom:22%; right:15%; width:18%; height:12%;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
@keyframes mcV-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mcV-window { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes mcV-fire { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.8; } }
@keyframes mcV-figure { 0% { transform: rotate(1deg); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes mcV-arm { 0% { transform: rotate(10deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }

.scn-david-accepts-conditions {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 50%, #b8a080 100%), radial-gradient(ellipse at 30% 30%, #fff2e0 0%, transparent 70%);
}
.scn-david-accepts-conditions .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #d4c0a0 100%);
}
.scn-david-accepts-conditions .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #9a7a50 0%, #7a5a30 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-david-accepts-conditions .window {
  position:absolute; top:8%; left:50%; width:35%; height:55%;
  background: linear-gradient(180deg, #d0e0f0 0%, #b0c8e0 100%);
  border: 5px solid #7a5a30; border-radius: 6px;
  box-shadow: inset 0 0 40px rgba(255,240,200,0.2);
  animation: dac-window 25s ease-in-out infinite alternate;
}
.scn-david-accepts-conditions .table-notes {
  position:absolute; bottom:20%; left:40%; width:20%; height:10%;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-david-accepts-conditions .chair-left {
  position:absolute; bottom:20%; left:25%; width:14%; height:22%;
  background: linear-gradient(180deg, #8a6f4a 0%, #5a4020 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-3deg);
}
.scn-david-accepts-conditions .chair-right {
  position:absolute; bottom:20%; right:25%; width:14%; height:22%;
  background: linear-gradient(180deg, #8a6f4a 0%, #5a4020 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(3deg);
}
.scn-david-accepts-conditions .figure-david {
  position:absolute; bottom:16%; left:35%; width:10%; height:35%;
  background: linear-gradient(180deg, #4a3820 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dac-david 8s ease-in-out infinite alternate;
}
.scn-david-accepts-conditions .figure-lavinia {
  position:absolute; bottom:18%; left:20%; width:12%; height:38%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: dac-lavinia 6s ease-in-out infinite alternate;
}
.scn-david-accepts-conditions .figure-clarissa-seated {
  position:absolute; bottom:18%; right:20%; width:12%; height:38%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: dac-clarissa 7s ease-in-out infinite alternate;
}
@keyframes dac-window { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.98); } }
@keyframes dac-david { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dac-lavinia { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg); } }
@keyframes dac-clarissa { 0% { transform: rotate(5deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(5deg); } }

.scn-miss-clarissa-on-visits {
  background: linear-gradient(180deg, #f5efe0 0%, #dcd0b8 50%, #b8a080 100%), radial-gradient(ellipse at 40% 20%, #fff8e8 0%, transparent 60%);
}
.scn-miss-clarissa-on-visits .wall {
  position:absolute; inset:0 0 28% 0;
  background: linear-gradient(135deg, #ece0c8 0%, #d8c8a8 100%);
}
.scn-miss-clarissa-on-visits .floor {
  position:absolute; bottom:0; left:0; right:0; height:28%;
  background: linear-gradient(180deg, #9a7a50 0%, #7a5a30 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
}
.scn-miss-clarissa-on-visits .window-arch {
  position:absolute; top:5%; left:40%; width:30%; height:55%;
  background: linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 100%);
  border: 5px solid #7a5a30; border-radius: 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(255,240,200,0.2);
  animation: mcO-window 30s ease-in-out infinite alternate;
}
.scn-miss-clarissa-on-visits .curtain-left {
  position:absolute; top:4%; left:35%; width:10%; height:60%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 0 20% 20% 0 / 0 30% 30% 0;
  animation: mcO-curtain 15s ease-in-out infinite alternate;
}
.scn-miss-clarissa-on-visits .curtain-right {
  position:absolute; top:4%; right:35%; width:10%; height:60%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 20% 0 0 20% / 30% 0 0 30%;
  animation: mcO-curtain 15s ease-in-out infinite alternate-reverse;
}
.scn-miss-clarissa-on-visits .chair-by-window {
  position:absolute; bottom:22%; left:50%; width:16%; height:24%;
  background: linear-gradient(180deg, #8a6f4a 0%, #5a4020 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%) rotate(2deg);
}
.scn-miss-clarissa-on-visits .figure-miss-c {
  position:absolute; bottom:18%; left:50%; width:12%; height:40%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3820 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: mcO-figure 10s ease-in-out infinite alternate;
}
.scn-miss-clarissa-on-visits .carpet {
  position:absolute; bottom:0; left:10%; width:80%; height:20%;
  background: linear-gradient(135deg, #c8a080 0%, #a08050 40%, #8a6f4a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  transform: scaleY(0.6);
}
@keyframes mcO-window { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes mcO-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes mcO-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }

.scn-dora-childish-cruelty {
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 50%, #b09878 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
}
.scn-dora-childish-cruelty .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #d0c0a0 100%);
}
.scn-dora-childish-cruelty .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #9a7a50 0%, #7a5a30 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-dora-childish-cruelty .sofa {
  position:absolute; bottom:20%; left:15%; width:30%; height:20%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7050 100%);
  border-radius: 15% 15% 5% 5% / 30% 30% 10% 10%;
  transform: rotate(-5deg);
  animation: dcc-sofa 8s ease-in-out infinite alternate;
}
.scn-dora-childish-cruelty .table-tilted {
  position:absolute; bottom:15%; left:45%; width:18%; height:10%;
  background: linear-gradient(180deg, #6b5030 0%, #4a3820 100%);
  border-radius: 4px;
  transform: rotate(15deg);
  animation: dcc-table 5s ease-in-out infinite alternate;
}
.scn-dora-childish-cruelty .figure-dora {
  position:absolute; bottom:18%; left:35%; width:12%; height:40%;
  background: linear-gradient(180deg, #c0a080 0%, #8a7050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: dcc-dora 3s ease-in-out infinite alternate;
}
.scn-dora-childish-cruelty .jip-dog {
  position:absolute; bottom:14%; left:30%; width:8%; height:10%;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(20deg);
  animation: dcc-jip 2s ease-in-out infinite alternate;
}
.scn-dora-childish-cruelty .toy-balloon {
  position:absolute; bottom:40%; left:50%; width:6%; height:8%;
  background: radial-gradient(circle, #f0c060 0%, #d0a050 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(240,192,96,0.5);
  animation: dcc-balloon 4s ease-in-out infinite alternate;
}
.scn-dora-childish-cruelty .scattered-papers {
  position:absolute; bottom:5%; left:20%; width:15%; height:4%;
  background: linear-gradient(135deg, #f0e0c8 0%, #d0c0a0 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  animation: dcc-papers 7s ease-in-out infinite alternate;
}
@keyframes dcc-sofa { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg); } }
@keyframes dcc-table { 0% { transform: rotate(15deg); } 50% { transform: rotate(10deg) translateY(-1px); } 100% { transform: rotate(15deg); } }
@keyframes dcc-dora { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-10deg); } }
@keyframes dcc-jip { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-2px); } 100% { transform: rotate(20deg); } }
@keyframes dcc-balloon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes dcc-papers { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(45deg) translateX(5px); } 100% { transform: rotate(30deg); } }

/* Scene 1: peg-drat-the-man – funny, bright-interior */
.scn-peg-drat-the-man {
  background: linear-gradient(180deg, #fff8e0 0%, #ffe4b0 40%, #d4a070 100%),
              radial-gradient(ellipse at 30% 50%, #fff0c0 0%, transparent 60%);
}
.scn-peg-drat-the-man .room-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0d8a0 0%, transparent 100%); animation: pd-bg 8s ease-in-out infinite alternate; }
.scn-peg-drat-the-man .wall-panel { position:absolute; top:10%; left:15%; right:15%; height:50%; background: linear-gradient(90deg, #d4b878 0%, #c8a868 50%, #d4b878 100%); border-radius: 4px; box-shadow: inset 0 2px 6px rgba(0,0,0,0.1); }
.scn-peg-drat-the-man .window-warm { position:absolute; top:12%; left:30%; width:80px; height:90px; background: linear-gradient(180deg, #a0c8e0 0%, #80b0d0 100%); border: 6px solid #b09060; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: pd-win 6s ease-in-out infinite; }
.scn-peg-drat-the-man .peg-figure { position:absolute; bottom:25%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #786848 0%, #5a4a30 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-peg 1.5s ease-in-out infinite alternate; }
.scn-peg-drat-the-man .davy-figure { position:absolute; bottom:25%; left:32%; width:22px; height:40px; background: linear-gradient(180deg, #b0a080 0%, #8a6e50 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pd-davy 2s ease-in-out infinite; }
.scn-peg-drat-the-man .chair-back { position:absolute; bottom:22%; left:38%; width:28px; height:50px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%); border-radius: 20% 20% 0 0; transform: rotate(8deg); animation: pd-chair 3s ease-in-out infinite; }
.scn-peg-drat-the-man .table-edge { position:absolute; bottom:20%; left:20%; right:20%; height:8px; background: #8a7a5a; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.scn-peg-drat-the-man .lamp-glow { position:absolute; bottom:35%; left:65%; width:12px; height:12px; background: radial-gradient(circle, #ffe080 0%, #e0b050 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #e0b050; animation: pd-lamp 4s ease-in-out infinite alternate; }
@keyframes pd-bg { 0% { opacity:0.9 } 100% { opacity:1 } }
@keyframes pd-win { 0% { box-shadow: inset 0 0 10px rgba(255,255,200,0.2) } 50% { box-shadow: inset 0 0 30px rgba(255,255,200,0.5) } 100% { box-shadow: inset 0 0 10px rgba(255,255,200,0.2) } }
@keyframes pd-peg { 0% { transform: translateX(0) rotate(-2deg) } 100% { transform: translateX(10px) rotate(4deg) } }
@keyframes pd-davy { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(5px) translateY(-3px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes pd-chair { 0% { transform: rotate(8deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(8deg) } }
@keyframes pd-lamp { 0% { opacity:0.7; transform: scale(0.9) } 100% { opacity:1; transform: scale(1.1) } }

/* Scene 2: peg-speculates-legacy – calm, firelit */
.scn-peg-speculates-legacy {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e18 40%, #3a2820 100%),
              radial-gradient(ellipse at 50% 80%, #6a3a20 0%, transparent 70%);
}
.scn-peg-speculates-legacy .hearth-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); }
.scn-peg-speculates-legacy .fire-glow { position:absolute; bottom:25%; left:40%; right:40%; height:30%; background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #804020 60%, transparent 100%); border-radius: 50% 50% 0 0; animation: psl-fire 5s ease-in-out infinite alternate; }
.scn-peg-speculates-legacy .log-stack { position:absolute; bottom:27%; left:45%; width:60px; height:20px; background: #4a2a18; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.6); transform: rotate(2deg); }
.scn-peg-speculates-legacy .peg-sit-fig { position:absolute; bottom:20%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psl-peg 12s ease-in-out infinite; }
.scn-peg-speculates-legacy .chair-silhouette { position:absolute; bottom:18%; left:25%; width:50px; height:70px; background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%); border-radius: 20% 20% 0 0; transform: rotate(-3deg); }
.scn-peg-speculates-legacy .ember-dot { position:absolute; bottom:40%; left:48%; width:6px; height:6px; background: #ffa040; border-radius: 50%; box-shadow: 0 0 12px 4px #ffa040; animation: psl-ember 3s ease-in-out infinite; }
.scn-peg-speculates-legacy .shadow-curtain { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.4) 100%); pointer-events: none; }
@keyframes psl-fire { 0% { opacity:0.8; transform: scaleY(0.95) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:0.85; transform: scaleY(0.95) } }
@keyframes psl-peg { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes psl-ember { 0% { opacity:0.4; transform: translate(0,0) } 25% { transform: translate(3px,-5px) } 50% { opacity:0.9; transform: translate(7px,-2px) } 75% { transform: translate(10px,3px) } 100% { opacity:0.4; transform: translate(12px,0) } }

/* Scene 3: greeting-miss-murdstone – tense, bright-interior */
.scn-greeting-miss-murdstone {
  background: linear-gradient(180deg, #f0ecd8 0%, #d8d0b8 40%, #b8a890 100%),
              radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 50%);
}
.scn-greeting-miss-murdstone .daylight-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #e8e0c8 0%, #f0ecd8 50%, #e0d8c0 100%); }
.scn-greeting-miss-murdstone .door-frame { position:absolute; top:5%; left:5%; width:60px; height:100%; background: #8a7a5a; border: 4px solid #6a5a3a; border-radius: 4px 0 0 4px; box-shadow: inset -4px 0 8px rgba(0,0,0,0.2); }
.scn-greeting-miss-murdstone .miss-tall-fig { position:absolute; bottom:15%; left:50%; width:30px; height:90px; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 30% 30% 15% 15% / 50% 40% 20% 20%; transform-origin: bottom center; animation: gmm-miss 2s ease-in-out infinite; }
.scn-greeting-miss-murdstone .child-fig { position:absolute; bottom:15%; left:35%; width:20px; height:45px; background: linear-gradient(180deg, #c8b890 0%, #a09070 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: gmm-child 3s ease-in-out infinite; }
.scn-greeting-miss-murdstone .tea-table { position:absolute; bottom:12%; left:60%; right:10%; height:10px; background: #8a7a5a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.scn-greeting-miss-murdstone .teacup-stack { position:absolute; bottom:18%; left:65%; width:8px; height:12px; background: #e8e0c8; border-radius: 50% 50% 0 0; box-shadow: 0 0 4px rgba(0,0,0,0.1), inset 0 -4px 0 #d0c8b0; }
.scn-greeting-miss-murdstone .spoon-shine { position:absolute; bottom:20%; left:68%; width:4px; height:18px; background: linear-gradient(180deg, #f0e8d0 0%, #c0b8a0 100%); border-radius: 50% 50% 0 0; transform: rotate(15deg); animation: gmm-spoon 1.5s ease-in-out infinite alternate; }
@keyframes gmm-miss { 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 gmm-child { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) } }
@keyframes gmm-spoon { 0% { transform: rotate(10deg) } 100% { transform: rotate(20deg) } }

/* Scene 4: baby-eyes-comparison – tense, bright-interior */
.scn-baby-eyes-comparison {
  background: linear-gradient(180deg, #f5f0e0 0%, #e0dcc8 50%, #c8c0a8 100%),
              radial-gradient(ellipse at 80% 30%, #fff8e8 0%, transparent 60%);
}
.scn-baby-eyes-comparison .bright-room { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #ece4cc 0%, #f0ecd8 50%, #e4dcc4 100%); }
.scn-baby-eyes-comparison .window-sash { position:absolute; top:8%; left:65%; width:60px; height:80px; background: #b0c8d8; border: 6px solid #a09870; border-radius: 2px; box-shadow: inset 0 0 20px rgba(255,255,200,0.2); }
.scn-baby-eyes-comparison .mother-fig { position:absolute; bottom:15%; left:40%; width:40px; height:70px; background: linear-gradient(180deg, #c0a880 0%, #a08868 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 40% 100%; animation: bec-mother 4s ease-in-out infinite; }
.scn-baby-eyes-comparison .baby-swaddle { position:absolute; bottom:30%; left:42%; width:20px; height:30px; background: #e0d0b0; border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: 50% 100%; animation: bec-baby 2s ease-in-out infinite alternate; }
.scn-baby-eyes-comparison .miss-loom-fig { position:absolute; bottom:15%; left:65%; width:25px; height:80px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 30% 30% 15% 15% / 50% 40% 20% 20%; transform-origin: bottom center; animation: bec-loom 5s ease-in-out infinite; }
.scn-baby-eyes-comparison .cradle-edge { position:absolute; bottom:20%; left:35%; right:55%; height:15px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.scn-baby-eyes-comparison .lamp-light { position:absolute; bottom:30%; left:20%; width:10px; height:10px; background: radial-gradient(circle, #ffe8c0 0%, #d0b060 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px #d0b060; animation: bec-lamp 3s ease-in-out infinite alternate; }
.scn-baby-eyes-comparison .shadow-stripe { position:absolute; top:20%; left:0; right:50%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.1) 100%); pointer-events: none; animation: bec-stripe 8s ease-in-out infinite; }
@keyframes bec-mother { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes bec-baby { 0% { transform: scale(1) } 100% { transform: scale(1.05) } }
@keyframes bec-loom { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes bec-lamp { 0% { opacity:0.8; transform: scale(0.95) } 100% { opacity:1; transform: scale(1.05) } }
@keyframes bec-stripe { 0% { opacity:0 } 50% { opacity:0.3 } 100% { opacity:0 } }

.scn-micawber-in-statu-quo {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 40%, #d4b88a 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-micawber-in-statu-quo .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8d4a8 0%, #dcc49e 100%);
  box-shadow: inset 0 0 60px rgba(180,140,80,0.3);
}
.scn-micawber-in-statu-quo .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b89068 0%, #8a6a4a 100%);
  border-radius: 60% 40% 0 0 / 20% 15% 0 0;
}
.scn-micawber-in-statu-quo .window-frame {
  position: absolute; top: 8%; left: 60%; width: 30%; height: 50%;
  border: 6px solid #6a4a3a;
  border-radius: 4px;
  background: rgba(200,220,240,0.15);
  box-shadow: inset 0 0 40px rgba(200,220,240,0.2);
}
.scn-micawber-in-statu-quo .window-light {
  position: absolute; top: 10%; left: 62%; width: 26%; height: 46%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,248,220,0.4) 0%, transparent 70%);
  animation: miq-glow 8s ease-in-out infinite alternate;
}
.scn-micawber-in-statu-quo .table {
  position: absolute; bottom: 22%; left: 50%; width: 28%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-micawber-in-statu-quo .teacup {
  position: absolute; bottom: 28%; left: 52%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 30%, #f0e8d8 0%, #d4c4a8 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: miq-tea 6s ease-in-out infinite;
}
.scn-micawber-in-statu-quo .figure-host {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: miq-bow 10s ease-in-out infinite;
}
.scn-micawber-in-statu-quo .figure-guest {
  position: absolute; bottom: 20%; left: 55%; width: 11%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
}
.scn-micawber-in-statu-quo .figure-lady {
  position: absolute; bottom: 20%; left: 48%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: miq-curtsey 12s ease-in-out infinite;
}
.scn-micawber-in-statu-quo .glow-warm {
  position: absolute; bottom: 15%; left: 40%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 80%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: miq-warm 4s ease-in-out infinite alternate;
}
@keyframes miq-glow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes miq-tea { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes miq-bow { 0%,100% { transform: rotate(0); } 30% { transform: rotate(-8deg); } 60% { transform: rotate(-6deg); } }
@keyframes miq-curtsey { 0%,100% { transform: scaleY(1); } 40% { transform: scaleY(0.92); } 70% { transform: scaleY(0.95); } }
@keyframes miq-warm { 0% { opacity: 0.3; } 100% { opacity: 0.6; } }

.scn-lovelorn-appetite {
  background: linear-gradient(180deg, #fff5e0 0%, #f0d8b0 50%, #d4b888 100%), radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-lovelorn-appetite .table-round {
  position: absolute; bottom: 12%; left: 30%; width: 50%; height: 14%;
  background: linear-gradient(180deg, #c8a880 0%, #a88868 100%);
  border-radius: 50% / 100% 100% 20% 20%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.2);
}
.scn-lovelorn-appetite .coffee-cup {
  position: absolute; bottom: 22%; left: 40%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  animation: lov-cup 4s ease-in-out infinite;
}
.scn-lovelorn-appetite .steam {
  position: absolute; bottom: 30%; left: 43%; width: 4%; height: 12%;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: lov-steam 5s ease-in-out infinite;
}
.scn-lovelorn-appetite .heart-float {
  position: absolute; top: 15%; left: 50%; width: 8%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, #e88080 0%, #c05555 70%);
  border-radius: 50% 50% 0 50%;
  transform: rotate(45deg);
  box-shadow: 0 0 20px rgba(200,80,80,0.4);
  animation: lov-heart 6s ease-in-out infinite;
}
.scn-lovelorn-appetite .figure-slump {
  position: absolute; bottom: 18%; left: 45%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lov-slump 8s ease-in-out infinite;
}
.scn-lovelorn-appetite .plate-food {
  position: absolute; bottom: 20%; left: 52%; width: 10%; height: 4%;
  background: radial-gradient(ellipse, #d4c4a8 0%, #b8a888 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  animation: lov-plate 3s ease-in-out infinite alternate;
}
.scn-lovelorn-appetite .shadow-fall {
  position: absolute; bottom: 0; left: 30%; width: 50%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.12) 100%);
  border-radius: 50%;
}
.scn-lovelorn-appetite .doodle-cloud {
  position: absolute; top: 8%; left: 10%; width: 12%; height: 6%;
  background: rgba(200,180,160,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: lov-drift 30s linear infinite;
}
.scn-lovelorn-appetite .doodle-star {
  position: absolute; top: 5%; left: 70%; width: 4%; height: 4%;
  background: radial-gradient(circle, #f0d080 0%, transparent 70%);
  border-radius: 50%;
  animation: lov-twinkle 4s ease-in-out infinite alternate;
}
@keyframes lov-cup { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes lov-steam { 0% { transform: translateY(0) scaleY(1); opacity: 0.6; } 50% { transform: translateY(-15px) scaleY(1.4); opacity: 0.3; } 100% { transform: translateY(-30px) scaleY(1.8); opacity: 0; } }
@keyframes lov-heart { 0%,100% { transform: rotate(45deg) translateY(0) scale(1); } 50% { transform: rotate(45deg) translateY(-10px) scale(1.1); } }
@keyframes lov-slump { 0%,100% { transform: rotate(0) scaleY(1); } 40% { transform: rotate(4deg) scaleY(0.95); } 70% { transform: rotate(-2deg) scaleY(0.98); } }
@keyframes lov-plate { 0% { transform: scale(1); } 100% { transform: scale(0.95); } }
@keyframes lov-drift { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes lov-twinkle { 0% { opacity: 0.3; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1.2); } }

.scn-tight-boots-theory {
  background: linear-gradient(180deg, #f5e8d0 0%, #e0d0b8 40%, #c8b098 100%), radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-tight-boots-theory .chair-back {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.2);
}
.scn-tight-boots-theory .leg-rest {
  position: absolute; bottom: 15%; left: 44%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a3a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: rotate(10deg);
}
.scn-tight-boots-theory .boot-left {
  position: absolute; bottom: 18%; left: 42%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: tbt-tight 3s ease-in-out infinite;
}
.scn-tight-boots-theory .boot-right {
  position: absolute; bottom: 18%; left: 48%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.4);
  transform: rotate(8deg);
  animation: tbt-tight 3s ease-in-out infinite reverse;
}
.scn-tight-boots-theory .toes-hurt {
  position: absolute; bottom: 16%; left: 46%; width: 6%; height: 4%;
  background: radial-gradient(ellipse, #c8a888 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: tbt-throb 2s ease-in-out infinite;
}
.scn-tight-boots-theory .plate-meat {
  position: absolute; bottom: 22%; left: 30%; width: 14%; height: 6%;
  background: radial-gradient(ellipse, #c8a070 0%, #a88050 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.scn-tight-boots-theory .fork-risen {
  position: absolute; bottom: 26%; left: 35%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  animation: tbt-fork 4s ease-in-out infinite alternate;
}
.scn-tight-boots-theory .waistcoat {
  position: absolute; bottom: 32%; left: 44%; width: 14%; height: 24%;
  background: linear-gradient(180deg, #c87050 0%, #a8553a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.scn-tight-boots-theory .speech-burst {
  position: absolute; top: 15%; left: 50%; width: 18%; height: 12%;
  background: radial-gradient(ellipse, rgba(240,220,180,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: tbt-burst 5s ease-in-out infinite;
}
@keyframes tbt-tight { 0%,100% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(0.92); } }
@keyframes tbt-throb { 0%,100% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.3); } }
@keyframes tbt-fork { 0% { transform: rotate(-20deg) translateY(0); } 100% { transform: rotate(-10deg) translateY(-4px); } }
@keyframes tbt-burst { 0%,100% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.6; } }

.scn-micawber-wounded-spirit {
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 40%, #1a0a1a 100%), radial-gradient(ellipse at 50% 40%, #4a3a4a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-micawber-wounded-spirit .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}
.scn-micawber-wounded-spirit .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0a1a 0%, #0a000a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-micawber-wounded-spirit .figure-micawber {
  position: absolute; bottom: 18%; left: 35%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mws-stagger 6s ease-in-out infinite;
}
.scn-micawber-wounded-spirit .figure-mrs {
  position: absolute; bottom: 18%; left: 48%; width: 12%; height: 36%;
  background: linear-gradient(180deg, #4a2a3a 0%, #2a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mws-sob 4s ease-in-out infinite;
}
.scn-micawber-wounded-spirit .arm-extend {
  position: absolute; bottom: 32%; left: 38%; width: 12%; height: 4%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-15deg);
  transform-origin: right center;
  animation: mws-reach 5s ease-in-out infinite;
}
.scn-micawber-wounded-spirit .tear-drop {
  position: absolute; bottom: 40%; left: 52%; width: 3%; height: 5%;
  background: radial-gradient(ellipse at 50% 30%, rgba(180,200,220,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: mws-tear 4s ease-in-out infinite;
}
.scn-micawber-wounded-spirit .candle-flame {
  position: absolute; top: 30%; left: 30%; width: 4%; height: 6%;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #e89050 50%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(232,144,80,0.4);
  animation: mws-flicker 2s ease-in-out infinite alternate;
}
.scn-micawber-wounded-spirit .candle-wax {
  position: absolute; top: 36%; left: 30.5%; width: 3%; height: 6%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-micawber-wounded-spirit .glow-tense {
  position: absolute; top: 20%; left: 25%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(232,144,80,0.12) 0%, transparent 70%);
  animation: mws-pulse 3s ease-in-out infinite alternate;
}
@keyframes mws-stagger { 0%,100% { transform: rotate(0); } 30% { transform: rotate(6deg); } 60% { transform: rotate(3deg); } }
@keyframes mws-sob { 0%,100% { transform: scaleY(1); } 25% { transform: scaleY(0.9) translateY(2px); } 50% { transform: scaleY(0.95) translateY(1px); } 75% { transform: scaleY(0.88) translateY(3px); } }
@keyframes mws-reach { 0%,100% { transform: rotate(-15deg); } 40% { transform: rotate(-5deg); } 70% { transform: rotate(-10deg); } }
@keyframes mws-tear { 0% { transform: translateY(0) scaleY(1); opacity: 0.8; } 50% { transform: translateY(8px) scaleY(1.3); opacity: 0.4; } 100% { transform: translateY(16px) scaleY(0.6); opacity: 0; } }
@keyframes mws-flicker { 0% { transform: scaleY(1) scaleX(1); opacity: 0.8; } 50% { transform: scaleY(1.1) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(1.05); opacity: 0.85; } }
@keyframes mws-pulse { 0% { opacity: 0.3; } 100% { opacity: 0.7; } }

/* scene 1: peg-sobs-parting */
.scn-peg-sobs-parting { background: linear-gradient(180deg, #1a1a30 0%, #0f0f1a 50%, #080810 100%), radial-gradient(ellipse at 30% 40%, #2a2040 0%, transparent 70%); }
.scn-peg-sobs-parting .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1f1f2e 0%, #14141e 100%); border-bottom: 2px solid #2a2a3e; animation: psp-wall 8s ease-in-out infinite alternate; }
.scn-peg-sobs-parting .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0d0d14 0%, #1a1a28 100%); box-shadow: inset 0 10px 20px #000; }
.scn-peg-sobs-parting .window { position:absolute; bottom:50%; left:20%; width:15%; height:40%; background: linear-gradient(135deg, #3a3a5a 0%, #1e1e3a 100%); border: 3px solid #2a2a40; border-radius: 4px; box-shadow: inset 0 0 30px #5a5a8a; animation: psp-window 10s ease-in-out infinite alternate; }
.scn-peg-sobs-parting .peg-figure { position:absolute; bottom:30%; left:30%; width:12%; height:60%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 20px rgba(0,0,0,.8); animation: psp-peg 4s ease-in-out infinite; }
.scn-peg-sobs-parting .davy-figure { position:absolute; bottom:25%; left:45%; width:8%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psp-davy 5s ease-in-out infinite; }
.scn-peg-sobs-parting .shadow { position:absolute; bottom:25%; left:25%; width:30%; height:20%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.5) 50%, transparent 100%); filter: blur(15px); animation: psp-shadow 6s ease-in-out infinite alternate; }
.scn-peg-sobs-parting .candle { position:absolute; bottom:45%; left:55%; width:2%; height:12%; background: linear-gradient(180deg, #e0c080 0%, #805030 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 30px 10px #ffcc66; animation: psp-candle 3s ease-in-out infinite alternate; }
@keyframes psp-wall { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes psp-window { 0% { opacity:.6; transform: scaleY(.95) } 50% { opacity:.9; transform: scaleY(1) } 100% { opacity:.7; transform: scaleY(.98) } }
@keyframes psp-peg { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(2%) translateY(-3%) rotate(1deg) } 60% { transform: translateX(-1%) translateY(1%) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes psp-davy { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(1%) translateY(-2%) rotate(2deg) } 50% { transform: translateX(-1%) translateY(1%) rotate(-1deg) } 75% { transform: translateX(2%) translateY(-1%) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes psp-shadow { 0% { opacity:.3; transform: scaleX(.9) } 50% { opacity:.6; transform: scaleX(1.1) } 100% { opacity:.4; transform: scaleX(1) } }
@keyframes psp-candle { 0% { opacity:.7; transform: scaleY(.95) translateY(0) } 50% { opacity:1; transform: scaleY(1.05) translateY(-5%) } 100% { opacity:.8; transform: scaleY(.98) translateY(0) } }

/* scene 2: departure-from-home */
.scn-departure-from-home { background: linear-gradient(180deg, #1e1e2c 0%, #12121c 50%, #08080e 100%), radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 70%); }
.scn-departure-from-home .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a1a28 0%, #10101a 100%); }
.scn-departure-from-home .door { position:absolute; bottom:30%; left:50%; width:16%; height:70%; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a20 0%, #1a100a 100%); border: 3px solid #4a3a2a; border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-departure-from-home .box { position:absolute; bottom:32%; left:38%; width:10%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border: 2px solid #4a3a2a; border-radius: 2px; transform: rotate(-5deg); animation: dfh-box 8s ease-in-out infinite alternate; }
.scn-departure-from-home .mother-figure { position:absolute; bottom:30%; left:25%; width:14%; height:65%; 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: dfh-mother 6s ease-in-out infinite; }
.scn-departure-from-home .child-figure { position:absolute; bottom:28%; left:22%; width:8%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dfh-child 5s ease-in-out infinite; }
.scn-departure-from-home .murdstone-figure { position:absolute; bottom:30%; right:20%; width:12%; height:60%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dfh-murdstone 7s ease-in-out infinite; }
.scn-departure-from-home .lamp { position:absolute; bottom:55%; right:35%; width:4%; height:6%; background: radial-gradient(circle, #ffd080 0%, #a06030 70%); border-radius: 50%; box-shadow: 0 0 40px 10px #c08040; animation: dfh-lamp 4s ease-in-out infinite alternate; }
@keyframes dfh-box { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-3%) rotate(-3deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes dfh-mother { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(2%) translateY(-2%) rotate(2deg) } 60% { transform: translateX(-1%) translateY(1%) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes dfh-child { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(3%) translateY(-1%) rotate(1deg) } 50% { transform: translateX(-1%) translateY(1%) rotate(-1deg) } 75% { transform: translateX(2%) translateY(-1%) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes dfh-murdstone { 0% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1) } 40% { transform: translateX(-2%) translateY(-1%) rotate(-2deg) scaleX(.98) } 80% { transform: translateX(1%) translateY(0) rotate(1deg) scaleX(1.02) } 100% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1) } }
@keyframes dfh-lamp { 0% { opacity:.7; transform: scale(.95) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }

/* scene 3: peg-ambush-cart */
.scn-peg-ambush-cart { background: linear-gradient(180deg, #d4b872 0%, #a08040 50%, #604020 100%), radial-gradient(ellipse at 20% 80%, #e0c080 0%, transparent 70%); }
.scn-peg-ambush-cart .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8d0e8 0%, #d8e8f0 40%, transparent 100%); animation: pac-sky 12s ease-in-out infinite alternate; }
.scn-peg-ambush-cart .hedge { position:absolute; bottom:35%; left:0; width:40%; height:30%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: pac-hedge 18s ease-in-out infinite alternate; }
.scn-peg-ambush-cart .cart-body { position:absolute; bottom:20%; left:40%; width:30%; height:25%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: inset 0 -5px 20px rgba(0,0,0,.5); animation: pac-cart 6s ease-in-out infinite; }
.scn-peg-ambush-cart .cart-wheel { position:absolute; bottom:7%; left:48%; width:12%; height:25%; background: radial-gradient(circle at 50% 50%, #6a4a3a 0%, #3a2a1a 100%); border: 4px solid #2a1a0a; border-radius: 50%; box-shadow: inset 0 0 20px #1a0a00; animation: pac-wheel 3s linear infinite; }
.scn-peg-ambush-cart .peg-figure { position:absolute; bottom:30%; left:35%; width:10%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pac-peg-climb 4s ease-in-out infinite; }
.scn-peg-ambush-cart .davy-figure { position:absolute; bottom:25%; left:55%; width:8%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pac-davy 5s ease-in-out infinite; }
.scn-peg-ambush-cart .dust { position:absolute; bottom:15%; left:30%; width:20%; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(150,120,70,.3) 0%, transparent 70%); filter: blur(8px); animation: pac-dust 7s ease-in-out infinite alternate; }
@keyframes pac-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pac-hedge { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-5%) scaleY(1.05) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes pac-cart { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3%) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2%) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pac-wheel { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes pac-peg-climb { 0% { transform: translateX(0) translateY(0) rotate(0) } 30% { transform: translateX(10%) translateY(-8%) rotate(10deg) } 60% { transform: translateX(20%) translateY(-4%) rotate(-5deg) } 100% { transform: translateX(30%) translateY(0) rotate(0) } }
@keyframes pac-davy { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(2%) translateY(-2%) rotate(2deg) } 50% { transform: translateX(-1%) translateY(1%) rotate(-1deg) } 75% { transform: translateX(1%) translateY(-1%) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes pac-dust { 0% { opacity:.2; transform: scaleX(.8) } 50% { opacity:.5; transform: scaleX(1.2) } 100% { opacity:.3; transform: scaleX(1) } }

/* scene 4: barkis-apple-pasties */
.scn-barkis-apple-pasties { background: linear-gradient(180deg, #c8b878 0%, #a09060 40%, #706040 100%), radial-gradient(ellipse at 80% 20%, #e0d098 0%, transparent 60%); }
.scn-barkis-apple-pasties .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c4e0 0%, #d0dce8 30%, transparent 100%); animation: bap-sky 15s ease-in-out infinite alternate; }
.scn-barkis-apple-pasties .cart-seat { position:absolute; bottom:30%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-barkis-apple-pasties .barkis-figure { position:absolute; bottom:20%; left:25%; width:14%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bap-barkis 8s ease-in-out infinite; }
.scn-barkis-apple-pasties .davy-figure { position:absolute; bottom:22%; left:55%; width:10%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bap-davy 6s ease-in-out infinite; }
.scn-barkis-apple-pasties .basket { position:absolute; bottom:25%; left:45%; width:12%; height:15%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: inset 0 0 10px #1a0a00; animation: bap-basket 10s ease-in-out infinite alternate; }
.scn-barkis-apple-pasties .pasties { position:absolute; bottom:30%; left:48%; width:4%; height:4%; background: radial-gradient(circle, #c07030 0%, #804020 100%); border-radius: 50%; box-shadow: 0 0 10px 2px #a06030; animation: bap-pasties 4s ease-in-out infinite; }
.scn-barkis-apple-pasties .tree-branch { position:absolute; top:5%; left:10%; width:80%; height:5%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: rotate(-10deg); animation: bap-branch 20s ease-in-out infinite alternate; }
@keyframes bap-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes bap-barkis { 0% { transform: translateX(0) translateY(0) rotate(0) } 30% { transform: translateX(2%) translateY(-2%) rotate(1deg) } 60% { transform: translateX(-1%) translateY(1%) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes bap-davy { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(3%) translateY(-1%) rotate(2deg) } 50% { transform: translateX(-2%) translateY(1%) rotate(-1deg) } 75% { transform: translateX(1%) translateY(-1%) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes bap-basket { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4%) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bap-pasties { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.9; transform: scale(1) } }
@keyframes bap-branch { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(1.02) } 100% { transform: rotate(-12deg) scaleX(1) } }

/* guard-feeling-safe */
.scn-guard-feeling-safe {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9b68a 40%, #c49a6c 100%),
              radial-gradient(ellipse at 70% 60%, #f0d4a0 0%, transparent 60%);
}
.scn-guard-feeling-safe .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #edd7b0 0%, #d9b68a 100%);
  animation: gfs-wall 8s ease-in-out infinite alternate;
}
.scn-guard-feeling-safe .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #8b6f47 0%, #b08a5a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.3);
  animation: gfs-floor 12s ease-in-out infinite alternate;
}
.scn-guard-feeling-safe .fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 90px;
  background: linear-gradient(180deg, #b08050 0%, #7a5a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: gfs-fireplace 6s ease-in-out infinite;
}
.scn-guard-feeling-safe .fire-glow {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 40px;
  background: radial-gradient(circle, #ffb060 0%, #d08030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #d08030, 0 0 60px 30px rgba(208,128,48,0.3);
  animation: gfs-glow 3s ease-in-out infinite alternate;
}
.scn-guard-feeling-safe .guardian-figure {
  position: absolute; bottom: 22%; left: 38%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 30% 30% 25% 25% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: gfs-guardian 5s ease-in-out infinite alternate;
}
.scn-guard-feeling-safe .child-figure {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gfs-child 6s ease-in-out infinite alternate;
}
.scn-guard-feeling-safe .arm {
  position: absolute; bottom: 30%; left: 38%; width: 25px; height: 6px;
  background: #3a2a1a; border-radius: 30%;
  transform: rotate(-20deg) translateX(10px);
  transform-origin: left center;
  animation: gfs-arm 4s ease-in-out infinite alternate;
}
.scn-guard-feeling-safe .beam {
  position: absolute; top: 10%; left: 20%; width: 200px; height: 4px;
  background: linear-gradient(90deg, rgba(255,220,160,0.6), transparent);
  filter: blur(3px);
  animation: gfs-beam 7s ease-in-out infinite alternate;
}
@keyframes gfs-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes gfs-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes gfs-fireplace { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes gfs-glow { 0% { box-shadow: 0 0 20px 10px #d08030, 0 0 40px 20px rgba(208,128,48,0.2); opacity:0.9 } 50% { box-shadow: 0 0 40px 20px #ffb060, 0 0 80px 40px rgba(255,176,96,0.4); opacity:1 } 100% { box-shadow: 0 0 25px 12px #d08030, 0 0 50px 25px rgba(208,128,48,0.25); opacity:0.95 } }
@keyframes gfs-guardian { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes gfs-child { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(0.95) } 100% { transform: translateX(0) scale(1) } }
@keyframes gfs-arm { 0% { transform: rotate(-20deg) translateX(10px) } 50% { transform: rotate(-10deg) translateX(15px) } 100% { transform: rotate(-25deg) translateX(8px) } }
@keyframes gfs-beam { 0% { transform: translateX(-20px); opacity: 0.6 } 50% { transform: translateX(20px); opacity: 0.8 } 100% { transform: translateX(-20px); opacity: 0.6 } }

/* steerforth-praise-bold */
.scn-steerforth-praise-bold {
  background: linear-gradient(180deg, #fde8c0 0%, #e3c094 40%, #c8a070 100%),
              radial-gradient(ellipse at 60% 50%, #ffd79c 0%, transparent 70%);
}
.scn-steerforth-praise-bold .wall {
  position: absolute; inset: 0 0 22% 0;
  background: linear-gradient(180deg, #f0dbb5 0%, #d9b68a 100%);
  animation: spb-wall 8s ease-in-out infinite alternate;
}
.scn-steerforth-praise-bold .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(0deg, #8b6f47 0%, #b08a5a 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: spb-floor 10s ease-in-out infinite alternate;
}
.scn-steerforth-praise-bold .figure-bold {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: spb-bold 6s ease-in-out infinite alternate;
}
.scn-steerforth-praise-bold .figure-side {
  position: absolute; bottom: 20%; left: 30%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: spb-side 8s ease-in-out infinite alternate;
}
.scn-steerforth-praise-bold .lion-mane {
  position: absolute; bottom: 28%; left: 40%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #d0a040 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: spb-mane 5s ease-in-out infinite alternate;
}
.scn-steerforth-praise-bold .shadow-bold {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: spb-shadow 6s ease-in-out infinite alternate;
}
.scn-steerforth-praise-bold .glow-praise {
  position: absolute; top: 10%; right: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,210,130,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: spb-glow 7s ease-in-out infinite alternate;
}
.scn-steerforth-praise-bold .sparkle {
  position: absolute; top: 15%; left: 30%; width: 6px; height: 6px;
  background: #ffe080; border-radius: 50%;
  box-shadow: 0 0 10px 3px #ffe080;
  animation: spb-sparkle 3s ease-in-out infinite;
}
@keyframes spb-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes spb-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes spb-bold { 0% { transform: translateX(0) rotate(-1deg) scale(1) } 50% { transform: translateX(5px) rotate(1deg) scale(1.02) } 100% { transform: translateX(0) rotate(0) scale(1) } }
@keyframes spb-side { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-3px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes spb-mane { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 0.9; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(1) } }
@keyframes spb-shadow { 0% { transform: scaleX(1); opacity: 0.5 } 50% { transform: scaleX(1.1); opacity: 0.7 } 100% { transform: scaleX(1); opacity: 0.5 } }
@keyframes spb-glow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }
@keyframes spb-sparkle { 0%,100% { opacity: 0; transform: scale(0.5) } 30% { opacity: 1; transform: scale(1.2) } 70% { opacity: 0.6; transform: scale(1) } }

/* steerforth-brave-frank */
.scn-steerforth-brave-frank {
  background: linear-gradient(180deg, #fef3db 0%, #e8cca0 40%, #c8a070 100%),
              radial-gradient(ellipse at 30% 70%, #ffddb0 0%, transparent 60%);
}
.scn-steerforth-brave-frank .wall {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(180deg, #f8e6c8 0%, #dfbf92 100%);
  animation: sbf-wall 9s ease-in-out infinite alternate;
}
.scn-steerforth-brave-frank .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(0deg, #8b6f47 0%, #b08a5a 100%);
  border-radius: 20% 20% 0 0 / 12% 12% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.2);
  animation: sbf-floor 11s ease-in-out infinite alternate;
}
.scn-steerforth-brave-frank .figure-frank {
  position: absolute; bottom: 25%; left: 35%; width: 45px; height: 75px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: sbf-frank 5s ease-in-out infinite alternate;
}
.scn-steerforth-brave-frank .figure-open {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sbf-open 7s ease-in-out infinite alternate;
}
.scn-steerforth-brave-frank .book-outline {
  position: absolute; bottom: 32%; left: 55%; width: 25px; height: 20px;
  background: linear-gradient(135deg, #c8a070 0%, #a08050 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sbf-book 8s ease-in-out infinite alternate;
}
.scn-steerforth-brave-frank .radiance {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,230,160,0.3) 0%, transparent 70%);
  filter: blur(15px);
  animation: sbf-radiance 10s ease-in-out infinite alternate;
}
.scn-steerforth-brave-frank .star-burst {
  position: absolute; top: 10%; left: 30%; width: 10px; height: 10px;
  background: #ffe080; border-radius: 50%;
  box-shadow: 0 0 15px 5px #ffe080;
  animation: sbf-star 4s ease-in-out infinite;
}
.scn-steerforth-brave-frank .ripple {
  position: absolute; bottom: 40%; left: 35%; width: 0; height: 0;
  border: 3px solid rgba(200,160,112,0.3);
  border-radius: 50%;
  animation: sbf-ripple 6s ease-out infinite;
}
@keyframes sbf-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes sbf-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes sbf-frank { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sbf-open { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(3px) scale(0.95) } 100% { transform: translateX(0) scale(1) } }
@keyframes sbf-book { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes sbf-radiance { 0% { opacity: 0.4; transform: translateX(-50%) scale(1) } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.1) } 100% { opacity: 0.4; transform: translateX(-50%) scale(1) } }
@keyframes sbf-star { 0%,100% { opacity: 0; transform: scale(0.5) } 25% { opacity: 1; transform: scale(1.3) } 75% { opacity: 0.5; transform: scale(1) } }
@keyframes sbf-ripple { 0% { width: 0; height: 0; opacity: 1 } 50% { width: 40px; height: 40px; opacity: 0.5 } 100% { width: 70px; height: 70px; opacity: 0 } }

/* brooks-of-sheffield-again */
.scn-brooks-of-sheffield-again {
  background: linear-gradient(180deg, #fde8c0 0%, #e3c094 40%, #c8a070 100%),
              radial-gradient(ellipse at 80% 40%, #ffdfab 0%, transparent 60%);
}
.scn-brooks-of-sheffield-again .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0dbb5 0%, #d9b68a 100%);
  animation: bos-wall 7s ease-in-out infinite alternate;
}
.scn-brooks-of-sheffield-again .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #8b6f47 0%, #b08a5a 100%);
  border-radius: 20% 20% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.25);
  animation: bos-floor 9s ease-in-out infinite alternate;
}
.scn-brooks-of-sheffield-again .figure-brooks {
  position: absolute; bottom: 25%; left: 45%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: bos-brooks 4s ease-in-out infinite alternate;
}
.scn-brooks-of-sheffield-again .figure-david {
  position: absolute; bottom: 25%; left: 30%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bos-david 5s ease-in-out infinite alternate;
}
.scn-brooks-of-sheffield-again .name-tag {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 12px;
  background: linear-gradient(135deg, #c8a070 0%, #a08050 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: bos-tag 3s ease-in-out infinite alternate;
}
.scn-brooks-of-sheffield-again .confusion-lines {
  position: absolute; top: 20%; left: 35%; width: 40px; height: 2px;
  background: #b08050;
  border-radius: 50%;
  filter: blur(1px);
  animation: bos-lines 2s ease-in-out infinite;
}
.scn-brooks-of-sheffield-again .highlight {
  position: absolute; top: 10%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,210,130,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: bos-hl 6s ease-in-out infinite alternate;
}
.scn-brooks-of-sheffield-again .shadow-funny {
  position: absolute; bottom: 22%; left: 30%; width: 50px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: bos-shadow 4s ease-in-out infinite alternate;
}
@keyframes bos-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes bos-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes bos-brooks { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bos-david { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-4px) scale(0.95) } 100% { transform: translateX(0) scale(1) } }
@keyframes bos-tag { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes bos-lines { 0% { transform: translateX(0) scaleX(1); opacity: 0.4 } 25% { transform: translateX(5px) scaleX(1.2); opacity: 0.7 } 50% { transform: translateX(-5px) scaleX(1.4); opacity: 0.8 } 75% { transform: translateX(3px) scaleX(1.1); opacity: 0.6 } 100% { transform: translateX(0) scaleX(1); opacity: 0.4 } }
@keyframes bos-hl { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes bos-shadow { 0% { transform: scaleX(1); opacity: 0.4 } 50% { transform: scaleX(1.15); opacity: 0.6 } 100% { transform: scaleX(1); opacity: 0.4 } }

/* ===== Scene: breakfast-at-piazza ===== */
.scn-breakfast-at-piazza {
  background: linear-gradient(180deg, #fdf8ed 0%, #efe5d0 50%, #d9cbb5 100%), radial-gradient(ellipse at 80% 20%, #fff8e7 0%, transparent 60%);
}
.scn-breakfast-at-piazza .wall { position:absolute; inset:0; background: linear-gradient(135deg, #f7f0e0 0%, #e4d7bf 100%); }
.scn-breakfast-at-piazza .window-h { position:absolute; top:10%; left:60%; width:30%; height:45%; background: radial-gradient(ellipse at 50% 70%, #b8d4f0 0%, #a0c4e8 40%, #8ab0d0 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 0 30px rgba(255,255,200,.4); animation: bap-window 12s ease-in-out infinite alternate; }
.scn-breakfast-at-piazza .sunlight { position:absolute; top:12%; left:62%; width:28%; height:40%; background: linear-gradient(135deg, rgba(255,240,180,.5) 0%, transparent 100%); filter: blur(12px); animation: bap-sunlight 20s ease-in-out infinite alternate; }
.scn-breakfast-at-piazza .table { position:absolute; bottom:10%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #b0916a 0%, #8a6f4e 100%); border-radius: 12% 12% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.scn-breakfast-at-piazza .chair { position:absolute; bottom:15%; left:45%; width:14%; height:22%; background: linear-gradient(180deg, #7a5c3a 0%, #4a3420 100%); border-radius: 20% 20% 0 0; transform-origin: bottom center; animation: bap-chair 8s ease-in-out infinite; }
.scn-breakfast-at-piazza .plate { position:absolute; bottom:21%; left:40%; width:12%; height:6%; background: radial-gradient(circle, #f5f0e0 0%, #ddd0b0 70%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.15); animation: bap-plate 10s ease-in-out infinite alternate; }
.scn-breakfast-at-piazza .coffee { position:absolute; bottom:22%; left:44%; width:4%; height:5%; background: radial-gradient(ellipse, #6b3a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 8px 2px rgba(100,50,20,.3); animation: bap-coffee 4s ease-in-out infinite; }
.scn-breakfast-at-piazza .napkin { position:absolute; bottom:20%; left:32%; width:8%; height:5%; background: linear-gradient(180deg, #f5e8d0 0%, #e0d0b8 100%); border-radius: 10% 10% 20% 20%; transform: rotate(8deg); }
@keyframes bap-window { 0% { opacity:.85; filter: brightness(1) } 50% { opacity:1; filter: brightness(1.05) } 100% { opacity:.9; filter: brightness(.98) } }
@keyframes bap-sunlight { 0% { transform: translateX(0) scaleY(1); opacity:.6 } 50% { transform: translateX(5px) scaleY(1.05); opacity:.8 } 100% { transform: translateX(-3px) scaleY(.98); opacity:.5 } }
@keyframes bap-chair { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes bap-plate { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes bap-coffee { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.1) } }

/* ===== Scene: appetites-sharpened ===== */
.scn-appetites-sharpened {
  background: linear-gradient(180deg, #ffefcc 0%, #fadc9c 40%, #f0b858 100%), radial-gradient(ellipse at 30% 40%, #ffe8b0 0%, transparent 70%);
}
.scn-appetites-sharpened .bg-table { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b08050 0%, #7a5530 100%); border-radius: 20% 20% 0 0; }
.scn-appetites-sharpened .man-silhouette { position:absolute; bottom:20%; left:20%; width:25%; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ash-man 6s ease-in-out infinite; }
.scn-appetites-sharpened .arm-reaching { position:absolute; bottom:40%; left:40%; width:18%; height:8%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; transform: rotate(30deg); transform-origin: left center; animation: ash-arm 3s ease-in-out infinite; }
.scn-appetites-sharpened .plate { position:absolute; bottom:18%; left:50%; width:30%; height:10%; background: radial-gradient(circle, #f5e8d0 0%, #dcc8a0 70%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-appetites-sharpened .fork { position:absolute; bottom:22%; left:52%; width:3%; height:12%; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 10% 10% 20% 20%; transform: rotate(-15deg); transform-origin: bottom center; animation: ash-fork 4s ease-in-out infinite; }
.scn-appetites-sharpened .food-ball { position:absolute; bottom:20%; left:55%; width:6%; height:6%; background: radial-gradient(circle, #d08030 0%, #8a5020 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: ash-food 2s ease-in-out infinite; }
.scn-appetites-sharpened .steam-burst { position:absolute; bottom:25%; left:52%; width:10%; height:10%; background: radial-gradient(circle, rgba(255,200,100,.3) 0%, transparent 70%); filter: blur(6px); animation: ash-steam 2s ease-in-out infinite; }
@keyframes ash-man { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-6px) rotate(4deg) } 50% { transform: translateY(2px) rotate(-2deg) } 75% { transform: translateY(-3px) rotate(3deg) } }
@keyframes ash-arm { 0% { transform: rotate(20deg) scaleX(1) } 50% { transform: rotate(40deg) scaleX(1.05) } 100% { transform: rotate(20deg) scaleX(1) } }
@keyframes ash-fork { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(5deg) } }
@keyframes ash-food { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.2) translateY(-8px) } 100% { transform: scale(1) translateY(0) } }
@keyframes ash-steam { 0% { opacity:.3; transform: translateY(0) scale(1) } 50% { opacity:.6; transform: translateY(-6px) scale(1.3) } 100% { opacity:.2; transform: translateY(0) scale(.8) } }

/* ===== Scene: headache-and-ticket-porter ===== */
.scn-headache-and-ticket-porter {
  background: linear-gradient(180deg, #bcc8d4 0%, #8a96a8 40%, #5a6678 100%), radial-gradient(ellipse at 50% 30%, #d0dce8 0%, transparent 60%);
}
.scn-headache-and-ticket-porter .bedroom-wall { position:absolute; inset:0; background: linear-gradient(135deg, #c8d0dc 0%, #a0aec0 100%); }
.scn-headache-and-ticket-porter .window { position:absolute; top:8%; left:10%; width:35%; height:45%; background: radial-gradient(ellipse at 50% 60%, #e0f0ff 0%, #b0d0e8 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 0 20px rgba(255,255,200,.3); animation: hat-window 10s ease-in-out infinite alternate; }
.scn-headache-and-ticket-porter .sunbeam { position:absolute; top:10%; left:12%; width:30%; height:40%; background: linear-gradient(135deg, rgba(255,240,180,.4) 0%, transparent 100%); filter: blur(10px); animation: hat-sunbeam 15s ease-in-out infinite; }
.scn-headache-and-ticket-porter .bed { position:absolute; bottom:5%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #b0a8a0 0%, #888080 100%); border-radius: 20% 20% 0 0; }
.scn-headache-and-ticket-porter .figure-lying { position:absolute; bottom:10%; left:20%; width:35%; height:25%; background: linear-gradient(180deg, #3a3030 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform-origin: left bottom; animation: hat-figure 5s ease-in-out infinite; }
.scn-headache-and-ticket-porter .pillow { position:absolute; bottom:32%; left:18%; width:20%; height:8%; background: linear-gradient(180deg, #f0ece8 0%, #d8d0c8 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.1); }
.scn-headache-and-ticket-porter .clock { position:absolute; top:12%; right:10%; width:12%; height:12%; background: radial-gradient(circle, #f0e8d8 0%, #c0b8a0 60%); border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,.2); animation: hat-clock 4s ease-in-out infinite; }
@keyframes hat-window { 0% { opacity:.85; filter: brightness(1) } 50% { opacity:1; filter: brightness(1.1) } 100% { opacity:.9; filter: brightness(.95) } }
@keyframes hat-sunbeam { 0% { transform: translateX(0) scaleX(1); opacity:.4 } 50% { transform: translateX(8px) scaleX(1.1); opacity:.7 } 100% { transform: translateX(-5px) scaleX(.9); opacity:.3 } }
@keyframes hat-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-5deg) } }
@keyframes hat-clock { 0% { transform: rotate(0deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-10deg) } 100% { transform: rotate(0deg) } }
@keyframes hat-sunbeam { 0% { transform: translateX(0) scaleX(1); opacity:.4 } 50% { transform: translateX(8px) scaleX(1.1); opacity:.7 } 100% { transform: translateX(-5px) scaleX(.9); opacity:.3 } }

/* ===== Scene: agnes-good-angel ===== */
.scn-agnes-good-angel {
  background: linear-gradient(180deg, #fdf4e0 0%, #f0e0c8 40%, #dcc8a8 100%), radial-gradient(ellipse at 70% 50%, #fff4e0 0%, transparent 60%);
}
.scn-agnes-good-angel .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #faf0e0 0%, #ecdcc4 100%); }
.scn-agnes-good-angel .window-light { position:absolute; top:5%; left:60%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 80%, #f8e8c0 0%, #e0cca0 60%, #c0a880 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 30px rgba(255,200,150,.3); animation: aga-window 14s ease-in-out infinite alternate; }
.scn-agnes-good-angel .chair-agnes { position:absolute; bottom:10%; left:30%; width:25%; height:40%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a28 100%); border-radius: 20% 20% 10% 10%; }
.scn-agnes-good-angel .agnes-silhouette { position:absolute; bottom:15%; left:34%; width:16%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 50% 50% 45% 45% / 60% 60% 35% 35%; transform-origin: bottom center; animation: aga-agnes 8s ease-in-out infinite; }
.scn-agnes-good-angel .halo-glow { position:absolute; top:50%; left:42%; width:18%; height:18%; background: radial-gradient(circle, rgba(255,220,150,.6) 0%, rgba(255,200,100,.2) 40%, transparent 70%); filter: blur(8px); animation: aga-halo 5s ease-in-out infinite; }
.scn-agnes-good-angel .book-open { position:absolute; bottom:18%; left:37%; width:12%; height:8%; background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 100%); border-radius: 10% 10% 30% 30%; transform: rotate(-5deg); }
.scn-agnes-good-angel .candle { position:absolute; bottom:20%; left:26%; width:3%; height:15%; background: linear-gradient(180deg, #f0e0c0 0%, #c8a880 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 12px 4px rgba(255,200,100,.4); animation: aga-candle 6s ease-in-out infinite; }
@keyframes aga-window { 0% { opacity:.9; filter: brightness(1) } 50% { opacity:1; filter: brightness(1.08) } 100% { opacity:.85; filter: brightness(.95) } }
@keyframes aga-agnes { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(1deg) } }
@keyframes aga-halo { 0% { transform: scale(.9); opacity:.6 } 50% { transform: scale(1.1); opacity:.9 } 100% { transform: scale(.95); opacity:.7 } }
@keyframes aga-candle { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.05); opacity:1 } 100% { transform: scaleY(.98); opacity:.85 } }

/* ----- birthday-summons ----- */
.scn-birthday-summons {
  background:
    linear-gradient(180deg, #fdf6e3 0%, #f0d9b5 40%, #d9b282 100%),
    radial-gradient(ellipse at 50% 100%, #d9b282 0%, transparent 70%);
}
.scn-birthday-summons .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f7e9d7 0%, #ece0c8 100%);
  border-bottom: 2px solid #b8956a;
  animation: bds-wall 12s ease-in-out infinite alternate;
}
.scn-birthday-summons .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #8b6f47 0%, #b8956a 100%);
  border-top: 3px solid #6b5030;
}
.scn-birthday-summons .table {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 8px;
  transform: translateX(-50%);
  background: #6b5030;
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-birthday-summons .cake {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f5d6b8 0%, #e8b88a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px rgba(255,200,150,0.6);
  animation: bds-cake 6s ease-in-out infinite;
}
.scn-birthday-summons .candle-glow {
  position: absolute; bottom: 42%; left: 50%; width: 4px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffedad 0%, #ffc857 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px #ffc857, 0 0 40px 12px rgba(255,200,87,0.5);
  animation: bds-candle 1.5s ease-in-out infinite alternate;
}
.scn-birthday-summons .figure-david {
  position: absolute; bottom: 5%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a5260 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bds-walk-david 4s ease-in-out infinite;
}
.scn-birthday-summons .figure-steerforth {
  position: absolute; bottom: 5%; left: 65%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bds-stand-steerforth 3s ease-in-out infinite alternate;
}
.scn-birthday-summons .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.15) 0%, transparent 70%);
  animation: bds-shadow 8s ease-in-out infinite alternate;
}
@keyframes bds-wall { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: -5% 0%; } }
@keyframes bds-cake { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03); } }
@keyframes bds-candle { 0% { opacity: 0.8; transform: translateX(-50%) rotate(-2deg); } 50% { opacity: 1; transform: translateX(-50%) rotate(2deg); } 100% { opacity: 0.7; transform: translateX(-50%) rotate(-1deg); } }
@keyframes bds-walk-david { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(4px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes bds-stand-steerforth { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes bds-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* ----- creakle-news-mother-ill ----- */
.scn-creakle-news-mother-ill {
  background:
    linear-gradient(180deg, #2a1a10 0%, #1f1410 50%, #140e0c 100%),
    radial-gradient(ellipse at 50% 100%, #3a2518 0%, transparent 60%);
}
.scn-creakle-news-mother-ill .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2518 0%, #2a1a10 100%);
  animation: crk-wall 20s ease-in-out infinite alternate;
}
.scn-creakle-news-mother-ill .sofa {
  position: absolute; bottom: 5%; left: 15%; width: 70%; height: 35%;
  background: linear-gradient(135deg, #5a3a28 0%, #3a2215 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-creakle-news-mother-ill .lamp-glow {
  position: absolute; top: 15%; left: 55%; width: 8px; height: 12px;
  background: radial-gradient(circle, #d9a060 0%, #c08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,0.3);
  animation: crk-lamp 4s ease-in-out infinite alternate;
}
.scn-creakle-news-mother-ill .figure-mrs-creakle {
  position: absolute; bottom: 20%; left: 55%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #473024 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crk-sit 5s ease-in-out infinite;
}
.scn-creakle-news-mother-ill .figure-david-small {
  position: absolute; bottom: 15%; left: 40%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #3a2a20 0%, #1f1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: crk-shiver 2s ease-in-out infinite;
}
.scn-creakle-news-mother-ill .shadow-move {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: crk-shadow 10s ease-in-out infinite alternate;
}
@keyframes crk-wall { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes crk-lamp { 0% { box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3); } 50% { box-shadow: 0 0 30px 10px #e0a060, 0 0 60px 20px rgba(224,160,96,0.4); } 100% { box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3); } }
@keyframes crk-sit { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes crk-shiver { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes crk-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

/* ----- mother-dead-orphan ----- */
.scn-mother-dead-orphan {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #141430 30%, #1a1a3a 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 80%);
}
.scn-mother-dead-orphan .night-bg {
  position: absolute; inset: 0; opacity: 0.7;
  background: radial-gradient(ellipse at 70% 20%, #1e2a4a 0%, transparent 60%);
  animation: mth-night 30s ease-in-out infinite alternate;
}
.scn-mother-dead-orphan .window-frame {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 50%;
  border: 4px solid #2a2a2a;
  border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-mother-dead-orphan .moonlight {
  position: absolute; top: 12%; left: 12%; width: 30%; height: 45%;
  background: linear-gradient(135deg, rgba(180,200,230,0.15) 0%, transparent 70%);
  border-radius: 10%;
  animation: mth-moon 8s ease-in-out infinite alternate;
}
.scn-mother-dead-orphan .figure-silhouette {
  position: absolute; bottom: 10%; left: 40%; width: 20px; height: 50px;
  background: #0a0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mth-sway 4s ease-in-out infinite;
}
.scn-mother-dead-orphan .candle {
  position: absolute; bottom: 5%; left: 30%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #d9a060 0%, #8a5a30 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #d9a060, 0 0 40px 12px rgba(217,160,96,0.3);
  animation: mth-candle 2s ease-in-out infinite alternate;
}
.scn-mother-dead-orphan .bed-far {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-mother-dead-orphan .tear-glow {
  position: absolute; bottom: 25%; left: 45%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(200,220,255,0.8) 0%, transparent 100%);
  border-radius: 50%;
  animation: mth-tear 3s ease-in-out infinite;
}
@keyframes mth-night { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes mth-moon { 0% { transform: translateX(-5px) translateY(-5px) scale(1); } 50% { transform: translateX(0) translateY(0) scale(1.05); } 100% { transform: translateX(5px) translateY(5px) scale(0.95); } }
@keyframes mth-sway { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes mth-candle { 0% { opacity: 0.7; transform: rotate(-3deg); } 50% { opacity: 1; transform: rotate(3deg); } 100% { opacity: 0.6; transform: rotate(-2deg); } }
@keyframes mth-tear { 0% { opacity: 0; transform: translateY(0) scale(1); } 30% { opacity: 1; transform: translateY(-5px) scale(1.3); } 70% { opacity: 0.5; transform: translateY(10px) scale(1); } 100% { opacity: 0; transform: translateY(20px) scale(0.8); } }

/* ----- omer-undertaker-meeting ----- */
.scn-omer-undertaker-meeting {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 50%, #d4b896 100%),
    radial-gradient(ellipse at 50% 100%, #c4a67a 0%, transparent 70%);
}
.scn-omer-undertaker-meeting .wall-shelf {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4b896 0%, #c4a67a 100%);
  border-bottom: 4px solid #a08060;
  animation: omr-wall 15s ease-in-out infinite alternate;
}
.scn-omer-undertaker-meeting .counter {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(0deg, #a08060 0%, #b89570 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-omer-undertaker-meeting .lamp-swing {
  position: absolute; top: 20%; left: 50%; width: 10px; height: 20px;
  background: radial-gradient(circle, #ffecb0 0%, #d9a060 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #d9a060, 0 0 60px 20px rgba(217,160,96,0.3);
  animation: omr-lamp 4s ease-in-out infinite alternate;
}
.scn-omer-undertaker-meeting .figure-omer {
  position: absolute; bottom: 10%; left: 65%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: omr-stand 5s ease-in-out infinite;
}
.scn-omer-undertaker-meeting .figure-david-young {
  position: absolute; bottom: 8%; left: 30%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a5260 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: omr-look 6s ease-in-out infinite;
}
.scn-omer-undertaker-meeting .dust-mote-big {
  position: absolute; top: 30%; left: 20%; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: omr-dust-big 20s linear infinite;
}
.scn-omer-undertaker-meeting .dust-mote-small {
  position: absolute; top: 40%; left: 70%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: omr-dust-small 25s linear infinite reverse;
}
@keyframes omr-wall { 0% { background-position: 0% 0%; } 50% { background-position: 5% 0%; } 100% { background-position: -5% 0%; } }
@keyframes omr-lamp { 0% { transform: rotate(-5deg); box-shadow: 0 0 20px 6px #d9a060, 0 0 40px 12px rgba(217,160,96,0.3); } 50% { transform: rotate(5deg); box-shadow: 0 0 30px 10px #ffecb0, 0 0 60px 20px rgba(255,236,176,0.4); } 100% { transform: rotate(-4deg); box-shadow: 0 0 20px 6px #d9a060, 0 0 40px 12px rgba(217,160,96,0.3); } }
@keyframes omr-stand { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes omr-look { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 80% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes omr-dust-big { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.6; } 90% { opacity: 0.4; } 100% { transform: translate(60vw, -20vh) scale(0.5); opacity: 0; } }
@keyframes omr-dust-small { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 0.5; } 90% { opacity: 0.3; } 100% { transform: translate(-40vw, -10vh) scale(0.4); opacity: 0; } }

/* Sacred Confidence Resolution */
.scn-sacred-confidence-resolution { background: linear-gradient(135deg, #1a1a3e 0%, #2c1f3a 50%, #1e1a28 100%), radial-gradient(ellipse at 70% 30%, #3a2a50 0%, transparent 60%); }
.scn-sacred-confidence-resolution .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2440 0%, #1a1630 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-sacred-confidence-resolution .window-frame { position:absolute; left:8%; top:20%; width:25%; height:60%; border:6px solid #3a2a4a; border-radius:4px; background: radial-gradient(ellipse at center, #f0d0a0 0%, #d0a060 70%, #604020 100%); box-shadow: inset 0 0 40px #c08040; animation: scr-win 8s ease-in-out infinite alternate; }
.scn-sacred-confidence-resolution .light-beam { position:absolute; left:12%; top:25%; width:70%; height:55%; background: linear-gradient(90deg, rgba(240,200,140,.25) 0%, rgba(240,200,140,.08) 50%, transparent 100%); transform: skewX(-8deg); animation: scr-beam 6s ease-in-out infinite; }
.scn-sacred-confidence-resolution .figure-silhouette { position:absolute; bottom:15%; left:45%; width:12%; height:40%; background: linear-gradient(180deg, #1a1320 0%, #0a0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scr-fig 4s ease-in-out infinite; }
.scn-sacred-confidence-resolution .halo-glow { position:absolute; top:8%; left:44%; width:14%; height:14%; background: radial-gradient(circle, rgba(255,215,140,.8) 0%, rgba(255,215,140,.3) 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(255,215,140,.4), 0 0 60px 30px rgba(255,215,140,.2); animation: scr-halo 3s ease-in-out infinite alternate; }
.scn-sacred-confidence-resolution .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, #0a0810 80%); opacity:.7; animation: scr-shad 12s ease-in-out infinite alternate; }
@keyframes scr-win { 0% { box-shadow: inset 0 0 30px #b08040; } 50% { box-shadow: inset 0 0 50px #d0a060; } 100% { box-shadow: inset 0 0 30px #906030; } }
@keyframes scr-beam { 0% { opacity:.4; transform: skewX(-8deg) scaleX(1); } 50% { opacity:.7; transform: skewX(-6deg) scaleX(1.05); } 100% { opacity:.3; transform: skewX(-10deg) scaleX(.95); } }
@keyframes scr-fig { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes scr-halo { 0% { opacity:.6; transform: scale(.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.7; transform: scale(1); } }
@keyframes scr-shad { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.5; } }

/* Career Uncertainty */
.scn-career-uncertainty { background: linear-gradient(180deg, #fef8e8 0%, #f0e6d0 40%, #e0d0b0 100%), radial-gradient(ellipse at 50% 100%, #c0a880 0%, transparent 60%); }
.scn-career-uncertainty .wall { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,240,220,.4) 0%, rgba(200,180,150,.2) 100%); }
.scn-career-uncertainty .window { position:absolute; top:8%; left:65%; width:22%; height:45%; background: radial-gradient(ellipse at center, #d0e8ff 0%, #90b8d8 70%, #6080a0 100%); border:4px solid #a08868; border-radius:4px; box-shadow: inset 0 0 30px #c0d8e0; animation: cu-win 20s ease-in-out infinite alternate; }
.scn-career-uncertainty .desk { position:absolute; bottom:8%; left:20%; width:55%; height:18%; background: linear-gradient(180deg, #c8b090 0%, #a08868 100%); border-radius:6px; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.scn-career-uncertainty .chair { position:absolute; bottom:10%; left:28%; width:18%; height:30%; background: linear-gradient(180deg, #b09878 0%, #807058 100%); border-radius:40% 40% 10% 10% / 60% 60% 20% 20%; animation: cu-chair 25s ease-in-out infinite; }
.scn-career-uncertainty .papers { position:absolute; bottom:20%; left:35%; width:20%; height:5%; background: #f0e8d8; border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.1); animation: cu-papers 30s ease-in-out infinite alternate; }
.scn-career-uncertainty .inkwell { position:absolute; bottom:18%; left:50%; width:6%; height:8%; background: #606070; border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
@keyframes cu-win { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes cu-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes cu-papers { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(-2px) rotate(-2deg); } }

/* Proctor Commons Explanation */
.scn-proctor-commons-explanation { background: linear-gradient(135deg, #faf0e0 0%, #f0d8b0 50%, #e0c090 100%), radial-gradient(ellipse at 80% 20%, #f0d0a0 0%, transparent 60%); }
.scn-proctor-commons-explanation .table-bg { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #d0b898 0%, #b09878 100%); border-radius:20% 20% 0 0; }
.scn-proctor-commons-explanation .ship-wheel { position:absolute; bottom:25%; left:25%; width:20%; height:25%; border:6px solid #806040; border-radius:50%; background: radial-gradient(circle, #c8a080 0%, #a08060 70%); box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: pce-wheel 10s linear infinite; }
.scn-proctor-commons-explanation .church-spire { position:absolute; bottom:30%; left:55%; width:8%; height:45%; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); clip-path: polygon(30% 0, 70% 0, 70% 100%, 30% 100%); border-radius:4px 4px 0 0; transform-origin: bottom center; animation: pce-spire 6s ease-in-out infinite alternate; }
.scn-proctor-commons-explanation .book { position:absolute; bottom:12%; left:40%; width:18%; height:10%; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.2); transform: rotate(-6deg); animation: pce-book 8s ease-in-out infinite; }
.scn-proctor-commons-explanation .pen { position:absolute; bottom:18%; left:45%; width:2%; height:14%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:2px; transform: rotate(20deg); animation: pce-pen 4s ease-in-out infinite alternate; }
.scn-proctor-commons-explanation .contrast-lines { position:absolute; top:10%; left:0; right:0; height:15%; background: repeating-linear-gradient(90deg, transparent, transparent 20px, rgba(100,80,60,.1) 20px, rgba(100,80,60,.1) 22px); animation: pce-lines 12s linear infinite; }
@keyframes pce-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes pce-spire { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(3deg); } 100% { transform: scaleY(.95) rotate(-2deg); } }
@keyframes pce-book { 0% { transform: rotate(-6deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-3px); } 100% { transform: rotate(-8deg) translateY(2px); } }
@keyframes pce-pen { 0% { transform: rotate(18deg) translateX(0); } 50% { transform: rotate(22deg) translateX(2px); } 100% { transform: rotate(16deg) translateX(-1px); } }
@keyframes pce-lines { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }

/* Private Theatricals Analogy */
.scn-private-theatricals-analogy { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a2a5e 100%), radial-gradient(ellipse at 50% 50%, #4a3a6e 0%, transparent 70%); }
.scn-private-theatricals-analogy .curtain-left { position:absolute; left:0; top:0; width:25%; height:100%; background: linear-gradient(180deg, #8a2040 0%, #5a1020 50%, #3a0810 100%); border-radius:0 20% 20% 0 / 0 50% 50% 0; animation: pta-curtain-l 7s ease-in-out infinite alternate; }
.scn-private-theatricals-analogy .curtain-right { position:absolute; right:0; top:0; width:25%; height:100%; background: linear-gradient(180deg, #8a2040 0%, #5a1020 50%, #3a0810 100%); border-radius:20% 0 0 20% / 50% 0 0 50%; animation: pta-curtain-r 7s ease-in-out infinite alternate; }
.scn-private-theatricals-analogy .stage-floor { position:absolute; bottom:0; left:25%; right:25%; height:15%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius:8px 8px 0 0; }
.scn-private-theatricals-analogy .spotlight { position:absolute; top:15%; left:40%; width:20%; height:55%; background: linear-gradient(180deg, rgba(255,230,180,.6) 0%, rgba(255,230,180,.1) 80%, transparent 100%); clip-path: polygon(50% 0, 20% 100%, 80% 100%); animation: pta-spot 5s ease-in-out infinite alternate; }
.scn-private-theatricals-analogy .mask-left { position:absolute; bottom:30%; left:35%; width:10%; height:12%; background: linear-gradient(180deg, #e0c0a0 0%, #c0a080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: pta-mask-l 8s ease-in-out infinite; }
.scn-private-theatricals-analogy .mask-right { position:absolute; bottom:30%; right:35%; width:10%; height:12%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: pta-mask-r 8s ease-in-out infinite; }
.scn-private-theatricals-analogy .star-burst { position:absolute; top:10%; left:45%; width:10%; height:10%; background: radial-gradient(circle, #ffd060 0%, transparent 70%); border-radius:50%; animation: pta-star 3s ease-in-out infinite alternate; }
@keyframes pta-curtain-l { 0% { transform: translateX(0); } 50% { transform: translateX(15px); } 100% { transform: translateX(-5px); } }
@keyframes pta-curtain-r { 0% { transform: translateX(0); } 50% { transform: translateX(-15px); } 100% { transform: translateX(5px); } }
@keyframes pta-spot { 0% { opacity:.7; transform: rotate(0deg); } 50% { opacity:1; transform: rotate(3deg); } 100% { opacity:.6; transform: rotate(-2deg); } }
@keyframes pta-mask-l { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(3px) rotate(-3deg); } }
@keyframes pta-mask-r { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-5deg); } 100% { transform: translateY(5px) rotate(3deg); } }
@keyframes pta-star { 0% { transform: scale(.8); opacity:.5; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(.9); opacity:.6; } }

.scn-aunt-betsey-night-talk {
  background:
    radial-gradient(ellipse at 40% 60%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a0e08 0%, #2a1810 30%, #3a1e12 60%, #1a0e08 100%);
}
.scn-aunt-betsey-night-talk .room-shadow {
  position: absolute; inset: 0; background:
    radial-gradient(ellipse at 50% 70%, transparent 50%, rgba(0,0,0,.6) 100%);
  animation: abnt-shadow 12s ease-in-out infinite alternate;
}
.scn-aunt-betsey-night-talk .fireplace {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 140px;
  transform: translateX(-50%);
  background:
    linear-gradient(180deg, #5a3a24 0%, #3a2212 40%, #1a0e06 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 8% 8%;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.5);
}
.scn-aunt-betsey-night-talk .fire-glow {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ff8030 0%, #ff6030 30%, #ff4010 50%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 80px 40px #ff6020, 0 0 120px 60px rgba(255,96,32,.3);
  animation: abnt-fire 2.5s ease-in-out infinite alternate;
}
.scn-aunt-betsey-night-talk .table {
  position: absolute; bottom: 16%; left: 50%; width: 100px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2e 0%, #4a2e1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-aunt-betsey-night-talk .figure-a {
  position: absolute; bottom: 18%; left: 36%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: abnt-nod-a 8s ease-in-out infinite;
}
.scn-aunt-betsey-night-talk .figure-b {
  position: absolute; bottom: 18%; right: 34%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: abnt-nod-b 9s ease-in-out infinite 1s;
}
.scn-aunt-betsey-night-talk .candle {
  position: absolute; bottom: 28%; left: 48%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #e8d0b0 0%, #c8a880 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 12px 4px #ffd090;
  animation: abnt-candle 6s ease-in-out infinite alternate;
}
@keyframes abnt-shadow { 0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .45; } }
@keyframes abnt-fire { 0% { transform: translateX(-50%) scale(1) rotate(-1deg); opacity: .85; } 50% { transform: translateX(-50%) scale(1.08) rotate(1deg); opacity: 1; } 100% { transform: translateX(-50%) scale(.95) rotate(-.5deg); opacity: .8; } }
@keyframes abnt-nod-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes abnt-nod-b { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-3px) rotate(-1deg); } 60% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes abnt-candle { 0% { transform: translateY(0) scaleY(1); opacity: .8; } 50% { transform: translateY(-2px) scaleY(1.05); opacity: 1; } 100% { transform: translateY(0) scaleY(.95); opacity: .85; } }

.scn-mr-dick-contentment {
  background:
    radial-gradient(ellipse at 50% 40%, #3a2a1e 0%, transparent 60%),
    linear-gradient(180deg, #1e1410 0%, #2a1e16 40%, #1a100c 100%);
}
.scn-mr-dick-contentment .wall {
  position: absolute; inset: 20% 0 0 0;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1e16 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.3);
}
.scn-mr-dick-contentment .desk {
  position: absolute; bottom: 18%; left: 50%; width: 180px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 3px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-mr-dick-contentment .paper {
  position: absolute; bottom: 24%; left: 50%; width: 100px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: mdc-paper 12s ease-in-out infinite;
}
.scn-mr-dick-contentment .inkwell {
  position: absolute; bottom: 26%; left: 46%; width: 12px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
}
.scn-mr-dick-contentment .figure {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mdc-write 4s ease-in-out infinite;
}
.scn-mr-dick-contentment .lamp {
  position: absolute; bottom: 38%; left: 42%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #e8d0a8 0%, #b09870 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 40px 20px #d0b890, 0 0 80px 40px rgba(208,184,144,.3);
  animation: mdc-lamp 8s ease-in-out infinite alternate;
}
.scn-mr-dick-contentment .shadow-move {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.3) 0%, transparent 70%);
  animation: mdc-shadow 15s ease-in-out infinite alternate;
}
@keyframes mdc-paper { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 30% { transform: translateX(-50%) rotate(.5deg) scale(1.01); } 70% { transform: translateX(-50%) rotate(-.3deg) scale(.99); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes mdc-write { 0% { transform: translateX(-50%) rotate(-1deg) translateY(0); } 25% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } 50% { transform: translateX(-50%) rotate(-.5deg) translateY(0); } 75% { transform: translateX(-50%) rotate(1.5deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(-1deg) translateY(0); } }
@keyframes mdc-lamp { 0% { opacity: .7; box-shadow: 0 0 30px 15px #d0b890, 0 0 60px 30px rgba(208,184,144,.2); } 50% { opacity: 1; box-shadow: 0 0 50px 25px #e0c8a0, 0 0 100px 50px rgba(224,200,160,.4); } 100% { opacity: .8; box-shadow: 0 0 35px 18px #d0b890, 0 0 70px 35px rgba(208,184,144,.25); } }
@keyframes mdc-shadow { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .25; } }

.scn-agnes-room-visit {
  background:
    radial-gradient(ellipse at 50% 20%, #e8e0d0 0%, transparent 60%),
    linear-gradient(180deg, #f0e8d8 0%, #d8d0b8 40%, #c0b8a0 100%);
}
.scn-agnes-room-visit .bay-window {
  position: absolute; top: 10%; left: 50%; width: 160px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d8e0e8 0%, #c0c8d0 50%, #a8b0b8 100%);
  border-radius: 20% 20% 4% 4% / 40% 40% 4% 4%;
  box-shadow: inset 0 0 30px rgba(100,120,140,.3);
}
.scn-agnes-room-visit .shelf {
  position: absolute; bottom: 40%; left: 50%; width: 140px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4e32 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.15);
}
.scn-agnes-room-visit .books {
  position: absolute; bottom: 42%; left: 48%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #6a3a2a 10%, #2a4a3a 20%, #4a2a6a 30%, #8a6a2a 40%, #3a5a2a 50%, #6a2a4a 60%, #2a5a6a 70%, #5a3a2a 80%, #4a4a2a 90%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: arv-books 20s ease-in-out infinite;
}
.scn-agnes-room-visit .music {
  position: absolute; bottom: 26%; left: 44%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #f0e8e0 0%, #e0d8c8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  transform: rotate(-8deg);
  animation: arv-music 15s ease-in-out infinite alternate;
}
.scn-agnes-room-visit .figure {
  position: absolute; bottom: 18%; left: 50%; width: 22px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: arv-figure 6s ease-in-out infinite;
}
.scn-agnes-room-visit .flowers {
  position: absolute; bottom: 22%; left: 58%; width: 20px; height: 30px;
  background:
    radial-gradient(circle at 50% 20%, #e0a0a0 0%, #c88080 30%, transparent 50%),
    linear-gradient(180deg, #4a6a2a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: arv-flowers 10s ease-in-out infinite alternate;
}
.scn-agnes-room-visit .dust-motes {
  position: absolute; top: 20%; left: 30%; width: 2px; height: 2px;
  background: #f0e8d8;
  border-radius: 50%;
  box-shadow: 40px 30px 0 0 rgba(240,232,216,.6), 80px 60px 0 1px rgba(240,232,216,.4), -20px 50px 0 0 rgba(240,232,216,.5), 60px 20px 0 2px rgba(240,232,216,.3), 100px 80px 0 1px rgba(240,232,216,.4);
  animation: arv-dust 45s linear infinite;
}
@keyframes arv-books { 0% { transform: translateX(-50%) scaleX(1) rotate(0deg); } 50% { transform: translateX(-50%) scaleX(1.02) rotate(.3deg); } 100% { transform: translateX(-50%) scaleX(.98) rotate(-.2deg); } }
@keyframes arv-music { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(1px); } }
@keyframes arv-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(1deg); } 75% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes arv-flowers { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-3deg) scale(.95); } }
@keyframes arv-dust { 0% { transform: translate(0, 0) scale(1); opacity: .6; } 25% { transform: translate(10px, -15px) scale(1.2); opacity: .8; } 50% { transform: translate(20px, -5px) scale(.9); opacity: .5; } 75% { transform: translate(30px, -20px) scale(1.1); opacity: .7; } 100% { transform: translate(40px, 0) scale(1); opacity: .6; } }

.scn-memory-walk-agnes {
  background:
    radial-gradient(ellipse at 50% 0%, #e0d8c0 0%, transparent 50%),
    linear-gradient(180deg, #c8d0d8 0%, #d8d0c0 30%, #c0b8a0 60%, #a09880 100%);
}
.scn-memory-walk-agnes .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0c0d0 0%, #d0d0c0 60%, #e0d8c0 100%);
  animation: mwa-sky 20s ease-in-out infinite alternate;
}
.scn-memory-walk-agnes .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b0a890 0%, #908070 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.1);
}
.scn-memory-walk-agnes .shops {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 35%;
  background:
    linear-gradient(90deg,
      #8a7a6a 0%, #9a8a7a 15%, #8a7a6a 30%, #9a8a7a 45%,
      #8a7a6a 60%, #9a8a7a 75%, #8a7a6a 90%, #9a8a7a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.1);
  animation: mwa-shops 30s ease-in-out infinite alternate;
}
.scn-memory-walk-agnes .butcher-sign {
  position: absolute; bottom: 45%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a5a3a 0%, #6a422a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  transform: rotate(-2deg);
  animation: mwa-sign 4s ease-in-out infinite;
}
.scn-memory-walk-agnes .figure {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2e22 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mwa-walk 8s ease-in-out infinite;
}
.scn-memory-walk-agnes .shadow-walk {
  position: absolute; bottom: 16%; left: 50%; width: 16px; height: 6px;
  transform: translateX(-50%);
  background: rgba(0,0,0,.15);
  border-radius: 50%;
  animation: mwa-shadow 8s ease-in-out infinite;
}
.scn-memory-walk-agnes .clouds {
  position: absolute; top: 12%; left: 20%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(200,200,210,.5) 0%, rgba(200,200,210,.1) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mwa-clouds 40s linear infinite;
}
@keyframes mwa-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes mwa-shops { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(.3deg); } 100% { transform: scaleY(.98) rotate(-.2deg); } }
@keyframes mwa-sign { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.05); } 100% { transform: rotate(-3deg) scale(.95); } }
@keyframes mwa-walk { 0% { transform: translateX(-50%) rotate(-1deg); } 20% { transform: translateX(-50%) translateX(-4px) rotate(1deg); } 40% { transform: translateX(-50%) translateX(2px) rotate(-.5deg); } 60% { transform: translateX(-50%) translateX(-2px) rotate(1deg); } 80% { transform: translateX(-50%) translateX(4px) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes mwa-shadow { 0% { transform: translateX(-50%) scaleX(1); opacity: .4; } 20% { transform: translateX(-50%) translateX(-4px) scaleX(.8); opacity: .3; } 40% { transform: translateX(-50%) translateX(2px) scaleX(1.1); opacity: .5; } 60% { transform: translateX(-50%) translateX(-2px) scaleX(.9); opacity: .35; } 80% { transform: translateX(-50%) translateX(4px) scaleX(1.2); opacity: .5; } 100% { transform: translateX(-50%) scaleX(1); opacity: .4; } }
@keyframes mwa-clouds { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

.scn-murdstone-fool-rebuke {
  background:
    linear-gradient(180deg, #6b4c3a 0%, #3a2a1a 40%, #1f1412 100%),
    radial-gradient(ellipse at 30% 60%, #c0854a 0%, transparent 60%);
}
.scn-murdstone-fool-rebuke .room-wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(90deg, #4a3528 0%, #5e4030 50%, #4a3528 100%);
  animation: mfr-wall 12s ease-in-out infinite alternate;
}
.scn-murdstone-fool-rebuke .table {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 60%;
  height: 8%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: mfr-table 5s ease-in-out infinite;
}
.scn-murdstone-fool-rebuke .lamp {
  position: absolute;
  bottom: 40%;
  left: 45%;
  width: 12px;
  height: 18px;
  background: radial-gradient(circle, #e8a040 0%, #b07020 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: mfr-lamp 3s ease-in-out infinite alternate;
}
.scn-murdstone-fool-rebuke .figure-murdstone {
  position: absolute;
  bottom: 38%;
  left: 65%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mfr-stand 4s ease-in-out infinite;
}
.scn-murdstone-fool-rebuke .figure-clara {
  position: absolute;
  bottom: 37%;
  left: 35%;
  width: 20px;
  height: 46px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1414 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mfr-sit 6s ease-in-out infinite;
}
.scn-murdstone-fool-rebuke .chair {
  position: absolute;
  bottom: 29%;
  left: 35%;
  width: 30px;
  height: 16px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: mfr-chair 8s ease-in-out infinite;
}
.scn-murdstone-fool-rebuke .shadow {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 60%;
  height: 4%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.4), transparent);
  filter: blur(4px);
  animation: mfr-shadow 6s ease-in-out infinite alternate;
}
.scn-murdstone-fool-rebuke .glow {
  position: absolute;
  inset: 0 0 20% 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,130,60,0.15) 0%, transparent 70%);
  animation: mfr-glow 4s ease-in-out infinite alternate;
}
@keyframes mfr-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mfr-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes mfr-lamp { 0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,0.3); } 50% { box-shadow: 0 0 25px 8px #e8a040, 0 0 50px 16px rgba(232,160,64,0.5); } 100% { box-shadow: 0 0 18px 5px #c08040, 0 0 35px 10px rgba(192,128,64,0.35); } }
@keyframes mfr-stand { 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 mfr-sit { 0%,100% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(-1px) rotate(-1deg); } 66% { transform: translateX(1px) rotate(2deg); } }
@keyframes mfr-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes mfr-shadow { 0% { opacity: 0.5; } 100% { opacity: 0.8; } }
@keyframes mfr-glow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

.scn-sullen-bear-accusation {
  background:
    linear-gradient(180deg, #5e4a3a 0%, #3a2a1a 40%, #1a1212 100%),
    radial-gradient(ellipse at 70% 50%, #d0a060 0%, transparent 50%);
}
.scn-sullen-bear-accusation .bg-wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(90deg, #4a3528 0%, #5e4030 50%, #4a3528 100%);
  animation: sba-wall 15s ease-in-out infinite alternate;
}
.scn-sullen-bear-accusation .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1212 100%);
}
.scn-sullen-bear-accusation .window {
  position: absolute;
  top: 10%;
  left: 15%;
  width: 30%;
  height: 40%;
  background: linear-gradient(180deg, #b0a0a0 0%, #706060 100%);
  border: 4px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.1);
  animation: sba-window 8s ease-in-out infinite alternate;
}
.scn-sullen-bear-accusation .figure-david {
  position: absolute;
  bottom: 35%;
  left: 25%;
  width: 18px;
  height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sba-david 5s ease-in-out infinite;
}
.scn-sullen-bear-accusation .figure-mr-murdstone {
  position: absolute;
  bottom: 38%;
  left: 65%;
  width: 28px;
  height: 56px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sba-mr 6s ease-in-out infinite;
}
.scn-sullen-bear-accusation .figure-miss-murdstone {
  position: absolute;
  bottom: 38%;
  left: 80%;
  width: 24px;
  height: 52px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sba-miss 7s ease-in-out infinite;
}
.scn-sullen-bear-accusation .desk {
  position: absolute;
  bottom: 32%;
  left: 55%;
  width: 40%;
  height: 6%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 2px;
  box-shadow: 0 3px 8px rgba(0,0,0,0.6);
  animation: sba-desk 4s ease-in-out infinite;
}
.scn-sullen-bear-accusation .candle {
  position: absolute;
  bottom: 40%;
  left: 80%;
  width: 6px;
  height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #d0a040 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 12px 4px #c08040, 0 0 24px 8px rgba(192,128,64,0.3);
  animation: sba-candle 3s ease-in-out infinite alternate;
}
@keyframes sba-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sba-window { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.7); } }
@keyframes sba-david { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(0deg); } }
@keyframes sba-mr { 0%,100% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(1px) rotate(-1deg); } 66% { transform: translateX(-1px) rotate(1deg); } }
@keyframes sba-miss { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } }
@keyframes sba-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes sba-candle { 0% { box-shadow: 0 0 10px 3px #c08040, 0 0 20px 6px rgba(192,128,64,0.2); } 50% { box-shadow: 0 0 18px 6px #ffd080, 0 0 36px 12px rgba(255,208,128,0.4); } 100% { box-shadow: 0 0 12px 4px #c08040, 0 0 24px 8px rgba(192,128,64,0.3); } }

.scn-mother-weak-reply {
  background:
    linear-gradient(180deg, #6b4c3a 0%, #3a2a1a 30%, #1f1412 100%),
    radial-gradient(ellipse at 80% 50%, #c08040 0%, transparent 50%);
}
.scn-mother-weak-reply .room-bg {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(90deg, #4a3528 0%, #5e4030 50%, #4a3528 100%);
  animation: mwr-bg 14s ease-in-out infinite alternate;
}
.scn-mother-weak-reply .door-frame {
  position: absolute;
  top: 5%;
  left: 70%;
  width: 20%;
  height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1212 100%);
  border: 6px solid #2a1a10;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: mwr-door 10s ease-in-out infinite alternate;
}
.scn-mother-weak-reply .figure-mr-murdstone {
  position: absolute;
  bottom: 32%;
  left: 60%;
  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: mwr-mr 5s ease-in-out infinite;
}
.scn-mother-weak-reply .figure-clara {
  position: absolute;
  bottom: 30%;
  left: 25%;
  width: 20px;
  height: 46px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1414 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mwr-clara 6s ease-in-out infinite;
}
.scn-mother-weak-reply .table-edge {
  position: absolute;
  bottom: 26%;
  left: 20%;
  width: 50%;
  height: 4%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: mwr-table 4s ease-in-out infinite;
}
.scn-mother-weak-reply .carpet {
  position: absolute;
  bottom: 0;
  left: 10%;
  width: 80%;
  height: 28%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.4);
  animation: mwr-carpet 8s ease-in-out infinite alternate;
}
.scn-mother-weak-reply .shadow {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 40%;
  height: 8%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.5), transparent);
  filter: blur(6px);
  animation: mwr-shadow 5s ease-in-out infinite alternate;
}
@keyframes mwr-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mwr-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes mwr-mr { 0%,100% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes mwr-clara { 0%,100% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(-2px) rotate(1deg); } 66% { transform: translateX(2px) rotate(-1deg); } }
@keyframes mwr-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes mwr-carpet { 0% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes mwr-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

.scn-not-meant-sullen {
  background:
    linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 30%, #4a3a2a 100%),
    radial-gradient(ellipse at 30% 20%, #e0d0c0 0%, transparent 60%);
}
.scn-not-meant-sullen .window-frame {
  position: absolute;
  top: 5%;
  left: 10%;
  width: 50%;
  height: 60%;
  background: linear-gradient(180deg, #d0c0b0 0%, #a09080 100%);
  border: 6px solid #3a2a1a;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.2);
  animation: nms-window 12s ease-in-out infinite alternate;
}
.scn-not-meant-sullen .morning-light {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 50%);
  animation: nms-light 8s ease-in-out infinite alternate;
}
.scn-not-meant-sullen .figure-david {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 18px;
  height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nms-david 5s ease-in-out infinite;
}
.scn-not-meant-sullen .figure-miss-murdstone {
  position: absolute;
  bottom: 28%;
  left: 65%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nms-miss 7s ease-in-out infinite;
}
.scn-not-meant-sullen .chair {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 28px;
  height: 18px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: nms-chair 6s ease-in-out infinite;
}
.scn-not-meant-sullen .rug {
  position: absolute;
  bottom: 0;
  left: 5%;
  width: 90%;
  height: 22%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.4);
  animation: nms-rug 10s ease-in-out infinite alternate;
}
.scn-not-meant-sullen .dust {
  position: absolute;
  top: 30%;
  left: 10%;
  width: 60%;
  height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.1) 0%, transparent 70%);
  filter: blur(8px);
  animation: nms-dust 20s linear infinite;
}
@keyframes nms-window { 0% { filter: brightness(0.8); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.9); } }
@keyframes nms-light { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes nms-david { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-3deg); } }
@keyframes nms-miss { 0%,100% { transform: translateX(0) rotate(2deg); } 33% { transform: translateX(1px) rotate(-1deg); } 66% { transform: translateX(-1px) rotate(1deg); } }
@keyframes nms-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes nms-rug { 0% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes nms-dust { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10%) translateY(-5%); } 50% { transform: translateX(20%) translateY(0); } 75% { transform: translateX(10%) translateY(5%); } 100% { transform: translateX(0) translateY(0); } }

.scn-sell-weskit-18pence { background: linear-gradient(180deg, #f5e6d3 0%, #e0c8a8 40%, #c8a87c 100%), radial-gradient(ellipse at 50% 100%, #d4b896 0%, transparent 60%); }
.scn-sell-weskit-18pence .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c8 0%, #d8c0a0 60%, #b89870 100%); }
.scn-sell-weskit-18pence .window { position:absolute; top:12%; left:60%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 50%, #fff8e8 0%, #e0d0b0 70%); border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 30px #fff8e880, 0 0 40px #fff8e040; animation: sw1-window 8s ease-in-out infinite alternate; }
.scn-sell-weskit-18pence .counter { position:absolute; bottom:20%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 12px #00000030; }
.scn-sell-weskit-18pence .weskit { position:absolute; bottom:26%; left:48%; width:40px; height:50px; background: linear-gradient(135deg, #b8a080 0%, #908060 100%); border-radius:20% 20% 30% 30%; transform-origin: bottom center; animation: sw1-weskit 6s ease-in-out infinite; }
.scn-sell-weskit-18pence .boy { position:absolute; bottom:18%; left:30%; width:24px; height:60px; background: linear-gradient(180deg, #706050 0%, #504030 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: sw1-boy 5s ease-in-out infinite; }
.scn-sell-weskit-18pence .dolloby { position:absolute; bottom:16%; right:20%; width:40px; height:80px; background: linear-gradient(180deg, #807060 0%, #605040 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; animation: sw1-dolloby 7s ease-in-out infinite; }
.scn-sell-weskit-18pence .dust { position:absolute; top:20%; left:20%; width:10px; height:10px; background: radial-gradient(circle, #ffffff40 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: sw1-dust 20s linear infinite; }
@keyframes sw1-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sw1-weskit { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sw1-boy { 0% { transform: translateX(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0); } }
@keyframes sw1-dolloby { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes sw1-dust { 0% { transform: translate(0,0) scale(1); opacity:0.3; } 50% { transform: translate(30px,-20px) scale(1.5); opacity:0.6; } 100% { transform: translate(60px,-40px) scale(0.8); opacity:0; } }

.scn-jacket-haggle { background: linear-gradient(135deg, #f0d890 0%, #e8c070 40%, #d8a050 100%), radial-gradient(circle at 30% 80%, #ffe080 0%, transparent 50%); }
.scn-jacket-haggle .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #f8e0a0 0%, #e8c880 60%, #c8a060 100%); }
.scn-jacket-haggle .table { position:absolute; bottom:18%; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #b89860 0%, #987840 100%); border-radius:10% 10% 0 0; box-shadow: 0 -6px 20px #00000020; }
.scn-jacket-haggle .jacket { position:absolute; bottom:28%; left:40%; width:80px; height:60px; background: linear-gradient(135deg, #c85030 0%, #a04020 100%); border-radius:30% 30% 20% 20%; transform-origin: center bottom; animation: jh2-jacket 2s ease-in-out infinite; }
.scn-jacket-haggle .boy { position:absolute; bottom:16%; left:20%; width:22px; height:55px; background: linear-gradient(180deg, #605040 0%, #403020 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: jh2-boy 3s ease-in-out infinite; }
.scn-jacket-haggle .old-man { position:absolute; bottom:14%; right:10%; width:50px; height:90px; background: linear-gradient(180deg, #807060 0%, #504030 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: jh2-oldman 1.5s ease-in-out infinite; }
.scn-jacket-haggle .sparkle-a { position:absolute; top:20%; left:30%; width:8px; height:8px; background: radial-gradient(circle, #fff8c0 0%, transparent 100%); border-radius:50%; animation: jh2-sparkle 2s ease-in-out infinite; }
.scn-jacket-haggle .sparkle-b { position:absolute; top:25%; right:35%; width:6px; height:6px; background: radial-gradient(circle, #fff8c0 0%, transparent 100%); border-radius:50%; animation: jh2-sparkle 2s ease-in-out infinite 0.7s; }
@keyframes jh2-jacket { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-15px) rotate(5deg) scale(1.1); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes jh2-boy { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes jh2-oldman { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-10px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes jh2-sparkle { 0% { transform: scale(0); opacity:0; } 50% { transform: scale(1.5); opacity:1; } 100% { transform: scale(0); opacity:0; } }

.scn-tinker-threat-dover { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 60%, #1a0a0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 70%); }
.scn-tinker-threat-dover .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a1220 0%, #0a0a12 100%); }
.scn-tinker-threat-dover .candle { position:absolute; bottom:40%; left:45%; width:12px; height:40px; background: linear-gradient(180deg, #ffd080 0%, #c08040 60%, #604020 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 30px #ffa06080, 0 0 60px #ffa06040; animation: tt3-candle 3s ease-in-out infinite alternate; }
.scn-tinker-threat-dover .tinker { position:absolute; bottom:10%; right:20%; width:60px; height:120px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow: -10px 0 20px #00000080; animation: tt3-tinker 4s ease-in-out infinite; }
.scn-tinker-threat-dover .boy { position:absolute; bottom:12%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: tt3-boy 3s ease-in-out infinite; }
.scn-tinker-threat-dover .hand { position:absolute; bottom:20%; left:38%; width:30px; height:15px; background: linear-gradient(135deg, #2a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 20% 20%; transform: rotate(-20deg); animation: tt3-hand 5s ease-in-out infinite; }
.scn-tinker-threat-dover .wall-glow { position:absolute; left:30%; top:30%; width:100px; height:150px; background: radial-gradient(ellipse, #ffa06015 0%, transparent 70%); border-radius:50%; animation: tt3-glow 3s ease-in-out infinite alternate; }
.scn-tinker-threat-dover .shadow-cast { position:absolute; bottom:0; left:15%; right:10%; height:30%; background: linear-gradient(180deg, #00000060 0%, transparent 100%); filter: blur(10px); animation: tt3-shadow 6s ease-in-out infinite; }
@keyframes tt3-candle { 0% { transform: scaleY(1); opacity:0.8; box-shadow:0 0 20px #ffa06080; } 50% { transform: scaleY(1.1); opacity:1; box-shadow:0 0 40px #ffa060c0; } 100% { transform: scaleY(0.9); opacity:0.6; box-shadow:0 0 15px #ffa06060; } }
@keyframes tt3-tinker { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes tt3-boy { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(3px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes tt3-hand { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(2px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes tt3-glow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.3; } }
@keyframes tt3-shadow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }

.scn-betsey-chop-away { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #fff8dc 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%); }
.scn-betsey-chop-away .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 80%); }
.scn-betsey-chop-away .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8b850 0%, #a09030 100%); }
.scn-betsey-chop-away .fence { position:absolute; bottom:30%; left:10%; width:4px; height:40px; background: #806020; box-shadow: 12px 0 #806020, 24px 0 #806020, 36px 0 #806020; animation: bc4-fence 10s ease-in-out infinite; }
.scn-betsey-chop-away .miss-betsey { position:absolute; bottom:20%; right:30%; width:50px; height:100px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a1a 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: bc4-betsey 2s ease-in-out infinite; }
.scn-betsey-chop-away .boy { position:absolute; bottom:20%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: bc4-boy 1.5s ease-in-out infinite; }
.scn-betsey-chop-away .shadow-hard { position:absolute; bottom:20%; left:20%; width:30px; height:10px; background: #00000040; transform: skewX(-20deg); animation: bc4-shadow 2s ease-in-out infinite; }
.scn-betsey-chop-away .dust-tense { position:absolute; bottom:35%; left:40%; width:6px; height:6px; background: radial-gradient(circle, #d0c070 0%, transparent 100%); border-radius:50%; animation: bc4-dust 0.8s ease-in-out infinite; }
@keyframes bc4-fence { 0%,100% { opacity:1; } 50% { opacity:0.7; } }
@keyframes bc4-betsey { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-5px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes bc4-boy { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(8px) translateY(-4px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes bc4-shadow { 0% { transform: skewX(-20deg) scaleX(1); opacity:0.5; } 50% { transform: skewX(-20deg) scaleX(1.3); opacity:0.8; } 100% { transform: skewX(-20deg) scaleX(1); opacity:0.5; } }
@keyframes bc4-dust { 0% { transform: translate(0,0) scale(1); opacity:0.6; } 50% { transform: translate(10px,-15px) scale(2); opacity:0; } 100% { transform: translate(0,0) scale(1); opacity:0.6; } }

.scn-against-steerforth {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 40%, #d4b88c 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-against-steerforth .as1-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d9c8a8 0%, #b8a080 100%); }
.scn-against-steerforth .as1-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b7250 0%, #6a5230 100%); }
.scn-against-steerforth .as1-window { position:absolute; top:15%; left:30%; width:40%; height:45%; background: radial-gradient(ellipse at center, #b0d0e0 0%, #7fa8c0 70%); border:6px solid #5a4030; border-radius:4px; box-shadow: inset 0 0 40px rgba(255,255,240,0.4); animation: as1-window 10s ease-in-out infinite alternate; }
.scn-against-steerforth .as1-table { position:absolute; bottom:25%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-against-steerforth .as1-lamp { position:absolute; bottom:38%; left:48%; width:12px; height:18px; background: radial-gradient(circle, #ffe0a0 0%, #d09040 70%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 30px 8px #d0a050, 0 0 60px 16px rgba(200,150,70,0.4); animation: as1-lamp 3s ease-in-out infinite alternate; }
.scn-against-steerforth .as1-figure-left { position:absolute; bottom:24%; left:28%; width:16px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as1-figure-left 4s ease-in-out infinite; }
.scn-against-steerforth .as1-figure-right { position:absolute; bottom:24%; left:52%; width:14px; height:38px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as1-figure-right 4s ease-in-out infinite 2s; }
.scn-against-steerforth .as1-curtain { position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(90deg, rgba(100,70,40,0.5) 0%, transparent 20%, transparent 80%, rgba(100,70,40,0.5) 100%); pointer-events:none; animation: as1-curtain 12s ease-in-out infinite alternate; }
@keyframes as1-window { 0% { opacity:0.8; filter: brightness(0.9); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:0.85; filter: brightness(0.95); } }
@keyframes as1-lamp { 0% { box-shadow: 0 0 20px 4px #d0a050; } 50% { box-shadow: 0 0 40px 12px #f0c070; } 100% { box-shadow: 0 0 25px 6px #d0a050; } }
@keyframes as1-figure-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes as1-figure-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes as1-curtain { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }

.scn-heep-in-london {
  background: 
    linear-gradient(180deg, #e8dcc0 0%, #c8b898 50%, #a89878 100%),
    radial-gradient(ellipse at 30% 60%, #fff8e0 0%, transparent 50%);
}
.scn-heep-in-london .hl2-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #d4c4a4 0%, #b8a888 100%); }
.scn-heep-in-london .hl2-desk { position:absolute; bottom:22%; left:15%; width:70%; height:10%; background: linear-gradient(180deg, #8a7050 0%, #604828 100%); border-radius:4px; box-shadow: 0 6px 10px rgba(0,0,0,0.3); }
.scn-heep-in-london .hl2-chair { position:absolute; bottom:22%; left:35%; width:14%; height:16%; background: linear-gradient(180deg, #6a5030 0%, #4a3018 100%); border-radius:30% 30% 10% 10%; transform-origin: bottom center; animation: hl2-chair 5s ease-in-out infinite; }
.scn-heep-in-london .hl2-papers { position:absolute; bottom:28%; left:20%; width:25%; height:6%; background: #f0e8d0; border-radius:2px; box-shadow: 0 0 4px rgba(0,0,0,0.2); animation: hl2-papers 8s ease-in-out infinite; }
.scn-heep-in-london .hl2-lamp { position:absolute; bottom:40%; left:50%; width:10px; height:16px; background: radial-gradient(circle, #ffe080 0%, #c09040 70%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 24px 6px #d0a050; animation: hl2-lamp 2s ease-in-out infinite alternate; }
.scn-heep-in-london .hl2-figure { position:absolute; bottom:22%; left:40%; width:16px; height:38px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hl2-figure 6s ease-in-out infinite; }
.scn-heep-in-london .hl2-shadow { position:absolute; bottom:15%; left:34%; width:30%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: hl2-shadow 10s ease-in-out infinite alternate; }
@keyframes hl2-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes hl2-papers { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hl2-lamp { 0% { box-shadow: 0 0 16px 2px #d0a050; } 50% { box-shadow: 0 0 32px 8px #f0c070; } 100% { box-shadow: 0 0 20px 4px #d0a050; } }
@keyframes hl2-figure { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(0.5deg); } 66% { transform: translateY(0) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hl2-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.1); } 100% { opacity:0.3; transform: scaleX(1); } }

.scn-partnership-expedient {
  background: 
    linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 40%, #0a050a 100%),
    radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 60%);
}
.scn-partnership-expedient .pe3-room { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a101a 0%, #0a050a 100%); }
.scn-partnership-expedient .pe3-fireplace { position:absolute; bottom:20%; left:30%; width:40%; height:40%; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 40px 12px #a04020; animation: pe3-fire 4s ease-in-out infinite alternate; }
.scn-partnership-expedient .pe3-mantel { position:absolute; bottom:52%; left:32%; width:36%; height:4%; background: linear-gradient(180deg, #5a3018 0%, #3a1a08 100%); border-radius:2px; }
.scn-partnership-expedient .pe3-figure { position:absolute; bottom:28%; left:35%; width:14px; height:36px; background: linear-gradient(180deg, #0a050a 0%, #000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe3-figure 5s ease-in-out infinite; }
.scn-partnership-expedient .pe3-chair { position:absolute; bottom:30%; left:50%; width:20%; height:15%; background: linear-gradient(180deg, #3a2010 0%, #201008 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-partnership-expedient .pe3-shadow { position:absolute; bottom:18%; left:28%; width:44%; height:30%; background: rgba(0,0,0,0.4); filter: blur(8px); border-radius:50%; animation: pe3-shadow 8s ease-in-out infinite alternate; }
.scn-partnership-expedient .pe3-ember { position:absolute; bottom:50%; left:45%; width:4px; height:4px; background: radial-gradient(circle, #ff8040 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 8px 2px #ff6020; animation: pe3-ember 2s ease-in-out infinite; }
@keyframes pe3-fire { 0% { box-shadow: 0 0 20px 6px #a04020; } 50% { box-shadow: 0 0 50px 18px #d06030; } 100% { box-shadow: 0 0 30px 10px #a04020; } }
@keyframes pe3-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pe3-shadow { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.6; transform: scaleY(1.2); } 100% { opacity:0.3; transform: scaleY(1); } }
@keyframes pe3-ember { 0% { transform: translate(0,0) scale(1); opacity:0.8; } 50% { transform: translate(2px,-4px) scale(1.2); opacity:1; } 100% { transform: translate(0,0) scale(1); opacity:0.8; } }

.scn-dinner-guests-iced {
  background: 
    linear-gradient(180deg, #d8e0e8 0%, #c0c8d0 50%, #a8b0b8 100%),
    radial-gradient(ellipse at 50% 0%, #f0f4f8 0%, transparent 70%);
}
.scn-dinner-guests-iced .dg4-room { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #c0c8d0 0%, #a0a8b0 100%); }
.scn-dinner-guests-iced .dg4-table { position:absolute; bottom:22%; left:10%; width:80%; height:12%; background: linear-gradient(180deg, #d8d8d0 0%, #b0b0a8 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.1); }
.scn-dinner-guests-iced .dg4-plate { position:absolute; bottom:30%; left:30%; width:15%; height:6%; background: radial-gradient(circle, #f0f0f0 0%, #c0c0c0 70%); border-radius:50%; box-shadow: 0 0 8px rgba(255,255,255,0.4); animation: dg4-plate 6s ease-in-out infinite; }
.scn-dinner-guests-iced .dg4-glass { position:absolute; bottom:28%; left:50%; width:4%; height:10%; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,200,200,0.2) 100%); border-radius:0 0 20% 20%; box-shadow: inset -2px 0 4px rgba(255,255,255,0.3); animation: dg4-glass 5s ease-in-out infinite alternate; }
.scn-dinner-guests-iced .dg4-chandelier { position:absolute; top:8%; left:25%; width:50%; height:20%; background: radial-gradient(circle at 50% 0%, #e0e0e8 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: dg4-chandelier 8s ease-in-out infinite alternate; }
.scn-dinner-guests-iced .dg4-guest-left { position:absolute; bottom:22%; left:16%; width:14px; height:36px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dg4-guest 4s ease-in-out infinite; }
.scn-dinner-guests-iced .dg4-guest-right { position:absolute; bottom:22%; right:16%; width:14px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dg4-guest 4s ease-in-out infinite 2s; }
@keyframes dg4-plate { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes dg4-glass { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.9; transform: scaleY(1.05); } 100% { opacity:0.7; transform: scaleY(1); } }
@keyframes dg4-chandelier { 0% { opacity:0.5; transform: rotate(-1deg); } 50% { opacity:0.8; transform: rotate(1deg); } 100% { opacity:0.6; transform: rotate(-0.5deg); } }
@keyframes dg4-guest { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-gummidge-feels-more {
  background: linear-gradient(180deg, #2b1a0e 0%, #3a2514 40%, #4a2a14 80%), radial-gradient(ellipse at 50% 100%, #6a3a1a 0%, transparent 70%);
}
.scn-gummidge-feels-more .bg-cabin {
  position: absolute; inset: 0 0 0 0; background: linear-gradient(135deg, #3a2514 0%, #2b1a0e 100%); animation: gm-bg 20s ease-in-out infinite alternate;
}
.scn-gummidge-feels-more .fire-glow {
  position: absolute; bottom: 40%; left: 20%; width: 40%; height: 50%; background: radial-gradient(ellipse at 30% 100%, #d06030 0%, #803020 40%, transparent 70%); filter: blur(8px); animation: gm-fireglow 4s ease-in-out infinite alternate;
}
.scn-gummidge-feels-more .hearth {
  position: absolute; bottom: 30%; left: 20%; width: 50%; height: 20%; background: linear-gradient(180deg, #4a2a14 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
}
.scn-gummidge-feels-more .chair {
  position: absolute; bottom: 28%; left: 52%; width: 28%; height: 34%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-4deg); box-shadow: 2px 4px 8px rgba(0,0,0,.5); animation: gm-chair 15s ease-in-out infinite;
}
.scn-gummidge-feels-more .figure-gummidge {
  position: absolute; bottom: 30%; left: 55%; width: 18%; height: 40%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gm-shiver 3s ease-in-out infinite;
}
.scn-gummidge-feels-more .knitting {
  position: absolute; bottom: 38%; left: 58%; width: 12%; height: 8%; background: radial-gradient(circle, #d0b080 0%, #a08050 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(180,140,80,.4); animation: gm-knit 1.5s ease-in-out infinite;
}
.scn-gummidge-feels-more .shadow-shake {
  position: absolute; bottom: 24%; left: 50%; width: 30%; height: 6%; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(5px); animation: gm-shake 5s ease-in-out infinite;
}
@keyframes gm-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes gm-fireglow { 0% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .7; transform: scale(.95) } }
@keyframes gm-chair { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes gm-shiver { 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 gm-knit { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.1) rotate(15deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes gm-shake { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }

.scn-peg-welcome-home-dan {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2514 30%, #5a351a 100%), radial-gradient(ellipse at 40% 80%, #d08040 0%, transparent 60%);
}
.scn-peg-welcome-home-dan .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2514 0%, #2a1a0e 100%); animation: whd-bg 25s ease-in-out infinite alternate;
}
.scn-peg-welcome-home-dan .firelight {
  position: absolute; bottom: 35%; left: 10%; width: 35%; height: 45%; background: radial-gradient(ellipse at 30% 100%, #e08030 0%, #803020 40%, transparent 70%); filter: blur(12px); animation: whd-fire 5s ease-in-out infinite alternate;
}
.scn-peg-welcome-home-dan .table {
  position: absolute; bottom: 28%; left: 40%; width: 30%; height: 6%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: perspective(200px) rotateX(5deg);
}
.scn-peg-welcome-home-dan .figure-dan {
  position: absolute; bottom: 30%; left: 18%; width: 20%; height: 38%; background: linear-gradient(180deg, #1a1610 0%, #100e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: whd-walkin 4s ease-in-out infinite;
}
.scn-peg-welcome-home-dan .figure-peg {
  position: absolute; bottom: 30%; left: 52%; width: 22%; height: 36%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: whd-stand 6s ease-in-out infinite;
}
.scn-peg-welcome-home-dan .figure-mawther {
  position: absolute; bottom: 32%; left: 72%; width: 16%; height: 30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a06 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: whd-shakehead 8s ease-in-out infinite;
}
.scn-peg-welcome-home-dan .mug-steam {
  position: absolute; bottom: 38%; left: 45%; width: 8%; height: 6%; background: radial-gradient(circle, #d0a060 0%, #a08040 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: whd-steam 7s ease-in-out infinite;
}
@keyframes whd-bg { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes whd-fire { 0% { opacity: .5; transform: scale(1) } 50% { opacity: 1; transform: scale(1.08) } 100% { opacity: .6; transform: scale(.95) } }
@keyframes whd-walkin { 0% { transform: translateX(-10px) rotate(-6deg) } 25% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(3deg) } 75% { transform: translateX(0) rotate(-1deg) } 100% { transform: translateX(-10px) rotate(-6deg) } }
@keyframes whd-stand { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes whd-shakehead { 0% { transform: rotate(0deg) } 25% { transform: rotate(-8deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(8deg) } 100% { transform: rotate(0deg) } }
@keyframes whd-steam { 0% { transform: translateY(0) scale(1); opacity: .4 } 50% { transform: translateY(-5px) scale(1.2); opacity: .6 } 100% { transform: translateY(0) scale(1); opacity: .4 } }

.scn-return-home-stranger {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2220 40%, #3a2a28 100%), radial-gradient(ellipse at 50% 100%, #0a0a0a 0%, transparent 60%);
}
.scn-return-home-stranger .bg-hallway {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2220 0%, #1a1a1a 100%); animation: rhs-bg 30s ease-in-out infinite alternate;
}
.scn-return-home-stranger .door-frame {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 60%; background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); border: 3px solid #1a100a;
}
.scn-return-home-stranger .door-panel {
  position: absolute; bottom: 22%; left: 34%; width: 32%; height: 54%; background: linear-gradient(180deg, #3a2a20 0%, #1a120e 100%); transform-origin: left center; animation: rhs-dooropen 8s ease-in-out infinite;
}
.scn-return-home-stranger .figure-servant {
  position: absolute; bottom: 26%; left: 52%; width: 18%; height: 50%; background: linear-gradient(180deg, #2a1a18 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 55% 55% 40% 40%; transform-origin: bottom center; animation: rhs-stepforward 10s ease-in-out infinite;
}
.scn-return-home-stranger .figure-peg-back {
  position: absolute; bottom: 22%; left: 14%; width: 20%; height: 44%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: rhs-turn 15s ease-in-out infinite;
}
.scn-return-home-stranger .floor-shadow {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 6%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: rhs-shadow 12s ease-in-out infinite;
}
.scn-return-home-stranger .lamp-light {
  position: absolute; top: 10%; right: 12%; width: 14%; height: 18%; background: radial-gradient(circle, #604020 0%, #302010 40%, transparent 70%); filter: blur(10px); animation: rhs-lampflicker 2s ease-in-out infinite;
}
@keyframes rhs-bg { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes rhs-dooropen { 0% { transform: rotateY(0deg) } 25% { transform: rotateY(-50deg) } 50% { transform: rotateY(0deg) } 75% { transform: rotateY(-30deg) } 100% { transform: rotateY(0deg) } }
@keyframes rhs-stepforward { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(-10px) translateY(-3px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(-5px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes rhs-turn { 0% { transform: scaleX(-1) translateX(0) } 50% { transform: scaleX(-1) translateX(8px) } 100% { transform: scaleX(-1) translateX(0) } }
@keyframes rhs-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes rhs-lampflicker { 0% { opacity: .3; transform: scale(1) } 30% { opacity: .6; transform: scale(1.05) } 70% { opacity: .2; transform: scale(.95) } 100% { opacity: .4; transform: scale(1) } }

.scn-peg-reveals-new-father {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a18 40%, #3a2220 100%), radial-gradient(ellipse at 40% 60%, #2a1a1a 0%, transparent 50%);
}
.scn-peg-reveals-new-father .bg-darkroom {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a18 0%, #1a1210 100%); animation: prf-bg 20s ease-in-out infinite alternate;
}
.scn-peg-reveals-new-father .figure-peg-close {
  position: absolute; bottom: 20%; left: 30%; width: 28%; height: 55%; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prf-embrace 6s ease-in-out infinite;
}
.scn-peg-reveals-new-father .figure-davy-close {
  position: absolute; bottom: 22%; left: 48%; width: 20%; height: 48%; background: linear-gradient(180deg, #2a1a12 0%, #100e08 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: prf-cry 4s ease-in-out infinite;
}
.scn-peg-reveals-new-father .embrace-arms {
  position: absolute; bottom: 28%; left: 38%; width: 40%; height: 20%; background: radial-gradient(ellipse at 50% 50%, #3a2a20 0%, transparent 60%); border-radius: 40%; filter: blur(3px); animation: prf-arms 7s ease-in-out infinite;
}
.scn-peg-reveals-new-father .tear {
  position: absolute; bottom: 46%; left: 54%; width: 4%; height: 6%; background: radial-gradient(circle, #908080 0%, #605050 70%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(144,128,128,.3); animation: prf-tear 3s ease-in-out infinite;
}
.scn-peg-reveals-new-father .floor-shadow {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 6%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: prf-shadow 15s ease-in-out infinite;
}
.scn-peg-reveals-new-father .hearth-embers {
  position: absolute; bottom: 10%; left: 10%; width: 20%; height: 12%; background: radial-gradient(circle, #c8553d 0%, #a0461a 30%, transparent 70%); filter: blur(8px); animation: prf-embers 5s ease-in-out infinite alternate;
}
@keyframes prf-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes prf-embrace { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-4px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes prf-cry { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-2px) scale(1.02) } 50% { transform: translateY(0) scale(1) } 75% { transform: translateY(1px) scale(.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes prf-arms { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .7; transform: scale(1.1) } 100% { opacity: .4; transform: scale(1) } }
@keyframes prf-tear { 0% { transform: translateY(0) rotate(0deg); opacity: .6 } 50% { transform: translateY(4px) rotate(10deg); opacity: .3 } 100% { transform: translateY(0) rotate(0deg); opacity: .6 } }
@keyframes prf-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes prf-embers { 0% { opacity: .3; transform: scale(.9) } 50% { opacity: .6; transform: scale(1.1) } 100% { opacity: .2; transform: scale(.95) } }

.scn-rosa-dartle-outburst {
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 60% 40%, #d06020 0%, transparent 70%);
}
.scn-rosa-dartle-outburst .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 8px 20px #0006;
}
.scn-rosa-dartle-outburst .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  box-shadow: inset 0 -20px 40px #0008;
}
.scn-rosa-dartle-outburst .fireplace {
  position: absolute; bottom: 28%; left: 40%; width: 24%; height: 40%;
  background: linear-gradient(180deg, #1a0a00 0%, #2a1000 40%, #0a0500 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 0 30px #d06020, 0 0 60px #d06020a0;
  animation: rdo-fire 3s ease-in-out infinite alternate;
}
@keyframes rdo-fire {
  0% { box-shadow: inset 0 0 20px #d06020, 0 0 40px #d0602080; }
  50% { box-shadow: inset 0 0 40px #f08030, 0 0 80px #f08030c0; }
  100% { box-shadow: inset 0 0 25px #d06020, 0 0 50px #d0602090; }
}
.scn-rosa-dartle-outburst .figure-rosa {
  position: absolute; bottom: 26%; left: 30%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdo-rosa 5s ease-in-out infinite;
}
@keyframes rdo-rosa {
  0% { transform: translateX(0) rotate(0deg) scaleX(1); }
  25% { transform: translateX(4%) rotate(-5deg) scaleX(0.95); }
  50% { transform: translateX(0) rotate(5deg) scaleX(1.05); }
  75% { transform: translateX(-4%) rotate(-3deg) scaleX(0.98); }
  100% { transform: translateX(0) rotate(0deg) scaleX(1); }
}
.scn-rosa-dartle-outburst .figure-ms {
  position: absolute; bottom: 26%; left: 56%; width: 16%; height: 42%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdo-ms 6s ease-in-out infinite;
}
@keyframes rdo-ms {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2%) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-rosa-dartle-outburst .glow-eye {
  position: absolute; bottom: 52%; left: 34%; width: 3%; height: 4%;
  background: radial-gradient(circle, #ffa030 0%, #ff6000 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ff6000, 0 0 40px 16px #ff600080;
  animation: rdo-eye 1.5s ease-in-out infinite alternate;
}
@keyframes rdo-eye {
  0% { opacity: 0.6; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.2); }
}
.scn-rosa-dartle-outburst .shadow {
  position: absolute; bottom: 26%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #0a0500 0%, transparent 80%);
  filter: blur(8px);
  animation: rdo-shadow 8s ease-in-out infinite;
}
@keyframes rdo-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.2); }
  100% { opacity: 0.3; transform: scaleX(1); }
}

.scn-rosa-passionate-grief {
  background: linear-gradient(180deg, #1a0a05 0%, #0a0500 60%, #000 100%),
              radial-gradient(ellipse at 50% 50%, #b04020 0%, transparent 70%);
}
.scn-rosa-passionate-grief .dark-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
}
.scn-rosa-passionate-grief .dark-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0500 100%);
  box-shadow: inset 0 -30px 50px #000a;
}
.scn-rosa-passionate-grief .coals {
  position: absolute; bottom: 22%; left: 20%; width: 12%; height: 12%;
  background: radial-gradient(circle, #ff6020 0%, #b03010 50%, #000 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #ff602080, 0 0 80px 20px #ff602040;
  animation: rpg-coals 4s ease-in-out infinite alternate;
}
@keyframes rpg-coals {
  0% { box-shadow: 0 0 30px 8px #ff602060, 0 0 60px 15px #ff602030; transform: scale(0.95); }
  100% { box-shadow: 0 0 50px 12px #ff6020b0, 0 0 100px 25px #ff602060; transform: scale(1.05); }
}
.scn-rosa-passionate-grief .figure-grief {
  position: absolute; bottom: 22%; left: 50%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rpg-figure 3s ease-in-out infinite;
}
@keyframes rpg-figure {
  0% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-50%) rotate(-3deg) scaleY(1.05); }
  50% { transform: translateX(-50%) rotate(5deg) scaleY(0.95); }
  75% { transform: translateX(-50%) rotate(-2deg) scaleY(1.02); }
  100% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
}
.scn-rosa-passionate-grief .hair-tear {
  position: absolute; bottom: 60%; left: 48%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #1a0a00 0%, #000 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  filter: blur(2px);
  animation: rpg-hair 5s ease-in-out infinite alternate;
}
@keyframes rpg-hair {
  0% { transform: translateY(0) rotate(-5deg); opacity: 0.7; }
  100% { transform: translateY(-5%) rotate(5deg); opacity: 1; }
}
.scn-rosa-passionate-grief .tear-drop {
  position: absolute; bottom: 45%; left: 52%; width: 2%; height: 3%;
  background: radial-gradient(circle, #ffd0a0 0%, #ffa050 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px 3px #ffa05080;
  animation: rpg-tear 6s ease-in-out infinite;
}
@keyframes rpg-tear {
  0% { transform: translateY(0) scale(0.8); opacity: 0; }
  20% { opacity: 1; }
  50% { transform: translateY(10%) scale(1.2); opacity: 0.8; }
  80% { opacity: 1; }
  100% { transform: translateY(20%) scale(0.6); opacity: 0; }
}

.scn-concealing-from-emigrants {
  background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 30%, #1a0a2a 60%, #0a001a 100%),
              radial-gradient(ellipse at 70% 100%, #b09060 0%, transparent 60%);
}
.scn-concealing-from-emigrants .dusk-sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  animation: cfe-sky 12s ease-in-out infinite alternate;
}
@keyframes cfe-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
.scn-concealing-from-emigrants .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: inset 0 10px 30px #000a;
  animation: cfe-water 20s linear infinite;
}
@keyframes cfe-water {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
.scn-concealing-from-emigrants .dock {
  position: absolute; bottom: 38%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 -5px 15px #0008;
}
.scn-concealing-from-emigrants .emigrants {
  position: absolute; bottom: 44%; left: 20%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cfe-emigrants 2s ease-in-out infinite;
}
@keyframes cfe-emigrants {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(1%) translateY(-2%); }
  50% { transform: translateX(0) translateY(1%); }
  75% { transform: translateX(-1%) translateY(-1%); }
  100% { transform: translateX(0) translateY(0); }
}
.scn-concealing-from-emigrants .narrator {
  position: absolute; bottom: 44%; left: 60%; width: 10%; 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: cfe-narrator 3s ease-in-out infinite alternate;
}
@keyframes cfe-narrator {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(0.9) translateY(2%); }
}
.scn-concealing-from-emigrants .sail-mast {
  position: absolute; bottom: 40%; left: 70%; width: 2%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 10px #0006;
  animation: cfe-mast 15s ease-in-out infinite alternate;
}
@keyframes cfe-mast {
  0% { transform: rotate(-2deg); }
  100% { transform: rotate(2deg); }
}

.scn-hungerford-stairs-departure {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 80%, #00050f 100%),
              radial-gradient(ellipse at 50% 80%, #b08050 0%, transparent 70%);
}
.scn-hungerford-stairs-departure .evening-sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 60%, #1a1a2a 100%);
  animation: hsd-sky 18s ease-in-out infinite alternate;
}
@keyframes hsd-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
.scn-hungerford-stairs-departure .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: inset 0 10px 30px #000a;
  animation: hsd-river 8s linear infinite;
}
@keyframes hsd-river {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 0%; }
}
.scn-hungerford-stairs-departure .staircase {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 -5px 15px #0008;
  clip-path: polygon(0% 100%, 0% 60%, 15% 60%, 15% 30%, 30% 30%, 30% 0%, 70% 0%, 70% 30%, 85% 30%, 85% 60%, 100% 60%, 100% 100%);
}
.scn-hungerford-stairs-departure .boat {
  position: absolute; bottom: 24%; left: 65%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 60% 60% / 0 0 80% 80%;
  box-shadow: 0 5px 15px #0008;
  animation: hsd-boat 10s ease-in-out infinite alternate;
}
@keyframes hsd-boat {
  0% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(2%) rotate(2deg); }
}
.scn-hungerford-stairs-departure .figures {
  position: absolute; bottom: 40%; left: 25%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hsd-figures 4s ease-in-out infinite;
}
@keyframes hsd-figures {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(2%) translateY(-3%); }
  50% { transform: translateX(0) translateY(1%); }
  75% { transform: translateX(-2%) translateY(-2%); }
  100% { transform: translateX(0) translateY(0); }
}
.scn-hungerford-stairs-departure .lantern {
  position: absolute; bottom: 48%; left: 35%; width: 3%; height: 4%;
  background: radial-gradient(circle, #ffd080 0%, #ffa030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffa030, 0 0 40px 12px #ffa03080;
  animation: hsd-lantern 2s ease-in-out infinite alternate;
}
@keyframes hsd-lantern {
  0% { opacity: 0.7; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}

/* scene: no-good-in-her */
.scn-no-good-in-her {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2c2040 45%, #3a2d44 100%),
    radial-gradient(ellipse at 30% 60%, #362b45 0%, transparent 70%);
}
.scn-no-good-in-her .wall-ngh {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c2a3a 0%, #1e1c2a 100%);
}
.scn-no-good-in-her .floor-ngh {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%);
  border-top-left-radius: 20% 40%;
  border-top-right-radius: 20% 40%;
}
.scn-no-good-in-her .window-ngh {
  position: absolute; top: 10%; left: 8%; width: 20%; height: 35%;
  background: radial-gradient(ellipse at center, #3a3a5a 0%, #1e1e32 100%);
  border: 3px solid #2a2a44;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
}
.scn-no-good-in-her .table-ngh {
  position: absolute; bottom: 20%; left: 55%; width: 25%; height: 6%;
  background: linear-gradient(180deg, #4a3e32 0%, #2e241c 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(25deg);
}
.scn-no-good-in-her .lamp-ngh {
  position: absolute; bottom: 25%; left: 60%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 40px 20px #d4a86066, 0 0 80px 40px #c8985066;
  animation: ngh-lamp 5s ease-in-out infinite alternate;
}
.scn-no-good-in-her .figure-mrs-ngh {
  position: absolute; bottom: 20%; left: 30%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #1e1a2a 0%, #0e0c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ngh-figure 8s ease-in-out infinite alternate;
}
.scn-no-good-in-her .child-shadow-ngh {
  position: absolute; bottom: 15%; left: 20%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #2a2030 0%, #120e18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: ngh-child 4s ease-in-out infinite;
}
@keyframes ngh-lamp {
  0% { box-shadow: 0 0 30px 15px #d4a86066, 0 0 60px 30px #c8985066; opacity: 0.8; }
  50% { box-shadow: 0 0 50px 25px #e8b86088, 0 0 100px 50px #d4a06088; opacity: 1; }
  100% { box-shadow: 0 0 35px 18px #d4a86066, 0 0 70px 35px #c8985066; opacity: 0.85; }
}
@keyframes ngh-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ngh-child {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-3px) scaleY(1.02); }
  50% { transform: translateY(0) scaleY(0.98); }
  75% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}

/* scene: little-minnie-cries */
.scn-little-minnie-cries {
  background:
    linear-gradient(180deg, #1e1e30 0%, #2c2440 40%, #3a2a4a 100%),
    radial-gradient(ellipse at 70% 80%, #2c1a2a 0%, transparent 80%);
}
.scn-little-minnie-cries .wall-lmc {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1e1c2c 100%);
}
.scn-little-minnie-cries .floor-lmc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1e1e 0%, #140e0e 100%);
}
.scn-little-minnie-cries .bed-lmc {
  position: absolute; bottom: 15%; left: 30%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1e1e2a 100%);
  border-radius: 8px;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-little-minnie-cries .pillow-lmc {
  position: absolute; bottom: 35%; left: 35%; width: 20%; height: 10%;
  background: radial-gradient(ellipse at center, #4a4a5a 0%, #2e2e3a 100%);
  border-radius: 50%;
  box-shadow: inset 2px 2px 4px rgba(255,255,255,0.1);
  animation: lmc-pillow 6s ease-in-out infinite alternate;
}
.scn-little-minnie-cries .blanket-lmc {
  position: absolute; bottom: 15%; left: 32%; width: 46%; height: 12%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1e1e28 100%);
  border-radius: 0 0 8px 8px;
  transform: perspective(300px) rotateX(10deg);
}
.scn-little-minnie-cries .child-sob-lmc {
  position: absolute; bottom: 25%; left: 40%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lmc-sob 3s ease-in-out infinite;
}
.scn-little-minnie-cries .curtain-lmc {
  position: absolute; top: 8%; left: 10%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: lmc-curtain 12s ease-in-out infinite alternate;
}
@keyframes lmc-pillow {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.05) translateX(3px); }
  100% { transform: scaleX(0.98) translateX(0); }
}
@keyframes lmc-sob {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-3deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lmc-curtain {
  0% { transform: scaleY(1) translateX(0); }
  50% { transform: scaleY(1.02) translateX(4px); }
  100% { transform: scaleY(0.97) translateX(-2px); }
}

/* scene: mowcher-distress */
.scn-mowcher-distress {
  background:
    linear-gradient(180deg, #1c1c2e 0%, #2a203a 50%, #3a2a44 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a44 0%, transparent 70%);
}
.scn-mowcher-distress .wall-mwd {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2838 0%, #1e1c2a 100%);
}
.scn-mowcher-distress .fender-mwd {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1e1e2a 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-mowcher-distress .bonnet-wall-mwd {
  position: absolute; top: 12%; left: 30%; width: 12%; height: 10%;
  background: radial-gradient(ellipse at 50% 40%, #4a4a5a 0%, #2e2e3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: mwd-bonnet 8s ease-in-out infinite alternate;
}
.scn-mowcher-distress .figure-mwd {
  position: absolute; bottom: 20%; left: 40%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #1e1e2a 0%, #0e0e18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-mowcher-distress .handkerchief-mwd {
  position: absolute; bottom: 30%; left: 45%; width: 6%; height: 4%;
  background: radial-gradient(ellipse at center, #b0a090 0%, #7a6a5a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: mwd-handkerchief 4s ease-in-out infinite;
}
.scn-mowcher-distress .fireplace-glow-mwd {
  position: absolute; bottom: 0; left: 10%; right: 60%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
  opacity: 0.6;
  animation: mwd-glow 6s ease-in-out infinite alternate;
}
@keyframes mwd-bonnet {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-6px) rotate(-4deg); }
  100% { transform: translateX(6px) rotate(4deg); }
}
@keyframes mwd-handkerchief {
  0% { transform: scale(1) translate(0, 0); }
  25% { transform: scale(1.1) translate(2px, -3px); }
  50% { transform: scale(1.05) translate(-1px, -1px); }
  75% { transform: scale(0.95) translate(1px, 2px); }
  100% { transform: scale(1) translate(0, 0); }
}
@keyframes mwd-glow {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.2); }
  100% { opacity: 0.5; transform: scaleY(0.9); }
}

/* scene: bonnet-backwards */
.scn-bonnet-backwards {
  background:
    linear-gradient(180deg, #2a1e12 0%, #3a2818 40%, #4a3020 100%),
    radial-gradient(ellipse at 20% 50%, #3a2818 0%, transparent 60%);
}
.scn-bonnet-backwards .wall-bnb {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
}
.scn-bonnet-backwards .fireplace-bnb {
  position: absolute; bottom: 0; left: 0; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #c05a30 0%, #6a2a10 60%, #1a0e08 100%);
  border-radius: 0 50% 0 0 / 0 100% 0 0;
  box-shadow: 20px 0 40px rgba(192,90,48,0.3);
  animation: bnb-fire 6s ease-in-out infinite alternate;
}
.scn-bonnet-backwards .bonnet-wall-bnb {
  position: absolute; top: 12%; left: 45%; width: 16%; height: 14%;
  background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #3a2e22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.7);
  animation: bnb-swing 4s ease-in-out infinite alternate;
}
.scn-bonnet-backwards .bonnet-head-bnb {
  position: absolute; bottom: 35%; left: 50%; width: 12%; height: 12%;
  background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #3a2e22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.7);
  animation: bnb-swing 4s ease-in-out infinite alternate-reverse;
}
.scn-bonnet-backwards .figure-bnb {
  position: absolute; bottom: 20%; left: 45%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #2a1e14 0%, #120a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-bonnet-backwards .shadow-bnb {
  position: absolute; bottom: 10%; left: 40%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, #0e0a06 0%, transparent 100%);
  opacity: 0.6;
  animation: bnb-shadow 8s ease-in-out infinite alternate;
}
@keyframes bnb-swing {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(-5deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(8px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bnb-fire {
  0% { transform: scaleY(1); opacity: 0.7; }
  50% { transform: scaleY(1.05); opacity: 0.9; }
  100% { transform: scaleY(0.95); opacity: 0.6; }
}
@keyframes bnb-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.7; }
  100% { transform: scaleX(0.8); opacity: 0.4; }
}

.scn-keep-my-secret {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #8a4a2a 0%, transparent 70%);
}
.scn-keep-my-secret .bg-ks {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  opacity: 0.5;
  animation: ks-bg 6s ease-in-out infinite alternate;
}
.scn-keep-my-secret .wall-left-ks {
  position: absolute; left: 0; top: 0; width: 40%; height: 100%;
  background: linear-gradient(90deg, #4a301a 0%, transparent 100%);
  border-radius: 0 20% 0 0;
}
.scn-keep-my-secret .wall-right-ks {
  position: absolute; right: 0; top: 0; width: 40%; height: 100%;
  background: linear-gradient(270deg, #4a301a 0%, transparent 100%);
  border-radius: 20% 0 0 0;
}
.scn-keep-my-secret .lamp-ks {
  position: absolute; bottom: 30%; left: 46%; width: 24px; height: 32px;
  background: radial-gradient(circle, #ffa040 0%, #b06020 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255,160,64,0.4);
  animation: ks-lamp 1.5s ease-in-out infinite alternate;
}
.scn-keep-my-secret .figure-left-ks {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: ks-figleft 2s ease-in-out infinite alternate;
}
.scn-keep-my-secret .figure-right-ks {
  position: absolute; bottom: 15%; right: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: ks-figright 2.5s ease-in-out infinite alternate;
}
.scn-keep-my-secret .shadow-ks {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #000000 0%, transparent 70%);
  opacity: 0.6;
  animation: ks-shadow 3s ease-in-out infinite alternate;
}
@keyframes ks-bg { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }
@keyframes ks-lamp { 0% { transform: scale(1) rotate(-3deg); box-shadow: 0 0 20px 5px #ffa040; } 50% { transform: scale(1.05) rotate(3deg); box-shadow: 0 0 40px 12px #ffa040, 0 0 80px 20px rgba(255,160,64,0.5); } 100% { transform: scale(0.95) rotate(-2deg); box-shadow: 0 0 25px 6px #b06020; } }
@keyframes ks-figleft { 0% { transform: translateY(0) rotate(-12deg) scale(1); } 50% { transform: translateY(-4px) rotate(-8deg) scale(1.02); } 100% { transform: translateY(2px) rotate(-10deg) scale(0.98); } }
@keyframes ks-figright { 0% { transform: translateY(0) rotate(12deg) scale(1); } 50% { transform: translateY(-3px) rotate(8deg) scale(1.01); } 100% { transform: translateY(1px) rotate(10deg) scale(0.99); } }
@keyframes ks-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(0.9); } }

.scn-late-night-departure {
  background: 
    linear-gradient(180deg, #0a1220 0%, #1a2a3a 30%, #2a1a10 70%, #1a0a00 100%),
    radial-gradient(ellipse at 30% 40%, #4a2a1a 0%, transparent 60%);
}
.scn-late-night-departure .sky-lnd {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a1628 0%, #1a2a3a 100%);
  animation: lnd-sky 12s ease-in-out infinite alternate;
}
.scn-late-night-departure .ground-lnd {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%);
  border-radius: 30% 0 0 0;
}
.scn-late-night-departure .building-lnd {
  position: absolute; bottom: 30%; left: 10%; width: 55%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-late-night-departure .door-lnd {
  position: absolute; bottom: 30%; left: 35%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.8);
}
.scn-late-night-departure .lantern-lnd {
  position: absolute; bottom: 58%; left: 42%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffb060 0%, #b06020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 40px 15px #ffb060, 0 0 80px 30px rgba(255,176,96,0.3);
  animation: lnd-lantern 2s ease-in-out infinite alternate;
}
.scn-late-night-departure .figure-lnd {
  position: absolute; bottom: 31%; left: 38%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 70% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lnd-figure 3s ease-in-out infinite;
}
.scn-late-night-departure .coach-shadow-lnd {
  position: absolute; bottom: 10%; right: 5%; width: 35%; height: 20%;
  background: radial-gradient(ellipse, #000 0%, transparent 80%);
  opacity: 0.5;
  animation: lnd-shadow 4s ease-in-out infinite alternate;
}
@keyframes lnd-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes lnd-lantern { 0% { transform: scale(1) rotate(-5deg); box-shadow: 0 0 30px 10px #ffb060; } 50% { transform: scale(1.08) rotate(5deg); box-shadow: 0 0 60px 20px #ffb060, 0 0 100px 30px rgba(255,176,96,0.4); } 100% { transform: scale(0.95) rotate(-3deg); box-shadow: 0 0 35px 12px #b06020; } }
@keyframes lnd-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(-3deg); } 50% { transform: translateX(10px) translateY(0) rotate(0deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(3deg); } 100% { transform: translateX(20px) translateY(0) rotate(0deg); } }
@keyframes lnd-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(0.9); } }

.scn-coach-departure {
  background: 
    linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 50%, #2a2a2a 100%),
    radial-gradient(ellipse at 60% 70%, #7a7a7a 0%, transparent 60%);
}
.scn-coach-departure .sky-cd {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%);
  animation: cd-sky 10s ease-in-out infinite alternate;
}
.scn-coach-departure .ground-cd {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-coach-departure .coach-body-cd {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: cd-body 4s ease-in-out infinite alternate;
}
.scn-coach-departure .coach-wheel-cd {
  position: absolute; bottom: 33%; left: 25%; width: 18%; height: 18%;
  background: radial-gradient(circle, #2a1a0a 0%, #1a0a00 50%, #2a1a0a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  animation: cd-wheel 2s linear infinite;
}
.scn-coach-departure .coach-wheel-cd::after {
  content: ''; position: absolute; top: 20%; left: 20%; width: 60%; height: 60%;
  background: radial-gradient(circle, #4a3a2a 0%, transparent 60%);
  border-radius: 50%;
}
.scn-coach-departure .horse-cd {
  position: absolute; bottom: 33%; left: 5%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 40% 40% / 30% 40% 60% 60%;
  transform: rotate(-5deg);
  animation: cd-horse 3s ease-in-out infinite alternate;
}
.scn-coach-departure .figure-coachman-cd {
  position: absolute; bottom: 50%; left: 22%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  animation: cd-coachman 2s ease-in-out infinite alternate;
}
.scn-coach-departure .figure-woman-cd {
  position: absolute; bottom: 38%; right: 10%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: cd-woman 3.5s ease-in-out infinite;
}
.scn-coach-departure .cloud-cd {
  position: absolute; top: 10%; left: -10%; width: 30%; height: 8%;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: cd-cloud 30s linear infinite;
}
@keyframes cd-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cd-body { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes cd-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes cd-horse { 0% { transform: translateX(0) rotate(-6deg) scale(1); } 50% { transform: translateX(5px) rotate(-3deg) scale(1.02); } 100% { transform: translateX(0) rotate(-5deg) scale(1); } }
@keyframes cd-coachman { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes cd-woman { 0% { transform: translateX(0) translateY(0) rotate(5deg); } 25% { transform: translateX(-3px) translateY(-1px) rotate(3deg); } 50% { transform: translateX(-6px) translateY(0) rotate(5deg); } 75% { transform: translateX(-3px) translateY(1px) rotate(7deg); } 100% { transform: translateX(0) translateY(0) rotate(5deg); } }
@keyframes cd-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

.scn-vulture-like-attention {
  background: 
    linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 50%, #1a1a1a 100%),
    radial-gradient(ellipse at 70% 50%, #5a5a5a 0%, transparent 50%);
}
.scn-vulture-like-attention .sky-vla {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  animation: vla-sky 8s ease-in-out infinite alternate;
}
.scn-vulture-like-attention .window-frame-vla {
  position: absolute; left: 20%; top: 10%; width: 60%; height: 80%;
  background: linear-gradient(135deg, #5a4030 0%, #3a2818 50%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-vulture-like-attention .curtain-vla {
  position: absolute; left: 22%; top: 12%; width: 56%; height: 76%;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%);
  border-radius: 5% 5% 0 0;
  opacity: 0.6;
  animation: vla-curtain 5s ease-in-out infinite alternate;
}
.scn-vulture-like-attention .vulture-vla {
  position: absolute; bottom: 40%; left: 30%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 60% 30% 50% / 30% 40% 60% 50%;
  transform: rotate(10deg);
  animation: vla-vulture 3s ease-in-out infinite alternate;
}
.scn-vulture-like-attention .eye-vla {
  position: absolute; bottom: 55%; left: 38%; width: 4%; height: 5%;
  background: radial-gradient(circle, #ffd060 0%, #b08020 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #ffd060;
  animation: vla-eye 1s ease-in-out infinite alternate;
}
.scn-vulture-like-attention .shadow-vla {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 15%;
  background: radial-gradient(ellipse, #000 0%, transparent 80%);
  opacity: 0.7;
  animation: vla-shadow 4s ease-in-out infinite alternate;
}
@keyframes vla-sky { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes vla-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes vla-vulture { 0% { transform: rotate(8deg) translateY(0) scale(1); } 50% { transform: rotate(12deg) translateY(-5px) scale(1.03); } 100% { transform: rotate(10deg) translateY(0) scale(1); } }
@keyframes vla-eye { 0% { transform: scale(1); box-shadow: 0 0 8px 2px #ffd060; } 50% { transform: scale(1.2); box-shadow: 0 0 20px 6px #ffd060; } 100% { transform: scale(0.9); box-shadow: 0 0 10px 3px #b08020; } }
@keyframes vla-shadow { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(0.9); } }

/* peggotty-offers-forgiveness */
.scn-peggotty-offers-forgiveness {
  background: 
    linear-gradient(180deg, #0e1a2a 0%, #192f42 40%, #2c4a5e 100%),
    radial-gradient(ellipse at 50% 20%, rgba(200, 210, 230, 0.15) 0%, transparent 60%);
}
.scn-peggotty-offers-forgiveness .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%); }
.scn-peggotty-offers-forgiveness .window-frame { position:absolute; top:15%; left:10%; width:120px; height:160px; border:6px solid #3a4a4a; background: linear-gradient(180deg, #2a4050 0%, #1a2a3a 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
.scn-peggotty-offers-forgiveness .moon { position:absolute; top:20%; left:16%; width:24px; height:24px; background: radial-gradient(circle, #e8eef0 0%, #b0c0d0 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(200,220,240,0.3); animation: peg-moon 15s ease-in-out infinite alternate; }
.scn-peggotty-offers-forgiveness .moonlight-beam { position:absolute; top:30%; left:12%; width:100px; height:200px; background: linear-gradient(180deg, rgba(200,220,240,0.08) 0%, rgba(200,220,240,0.02) 100%); transform: skewX(-5deg); filter: blur(8px); animation: peg-beam 20s ease-in-out infinite alternate; }
.scn-peggotty-offers-forgiveness .candle { position:absolute; bottom:30%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #e8d8b0 0%, #b07840 100%); border-radius:2px; box-shadow: 0 -8px 20px 4px #e8b060, 0 -16px 40px 8px rgba(232,176,96,0.3); animation: peg-candle 3s ease-in-out infinite alternate; }
.scn-peggotty-offers-forgiveness .figure-left { position:absolute; bottom:15%; left:30%; 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: peg-figure-left 6s ease-in-out infinite; }
.scn-peggotty-offers-forgiveness .figure-right { position:absolute; bottom:12%; left:55%; width:30px; height:75px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: peg-figure-right 7s ease-in-out infinite; }
@keyframes peg-moon { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(5px) scale(1.05); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.9; } }
@keyframes peg-beam { 0% { transform: skewX(-5deg) scaleY(1); opacity:0.6; } 50% { transform: skewX(-3deg) scaleY(1.1); opacity:0.8; } 100% { transform: skewX(-5deg) scaleY(1); opacity:0.6; } }
@keyframes peg-candle { 0% { box-shadow: 0 -8px 20px 4px #e8b060, 0 -16px 40px 8px rgba(232,176,96,0.3); transform: scaleY(1); } 50% { box-shadow: 0 -10px 25px 6px #f0c070, 0 -20px 50px 12px rgba(240,192,112,0.4); transform: scaleY(1.05); } 100% { box-shadow: 0 -8px 20px 4px #e8b060, 0 -16px 40px 8px rgba(232,176,96,0.3); transform: scaleY(1); } }
@keyframes peg-figure-left { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes peg-figure-right { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* aunt-tells-her-story */
.scn-aunt-tells-her-story {
  background: 
    linear-gradient(180deg, #1a0e0a 0%, #2a1a10 40%, #3a2018 100%),
    radial-gradient(ellipse at 50% 80%, #6a3018 0%, transparent 60%);
}
.scn-aunt-tells-her-story .hearth { position:absolute; bottom:0; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #2a1a10 0%, #0e0a06 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-aunt-tells-her-story .fire-log { position:absolute; bottom:20%; left:35%; width:80px; height:20px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(5deg); box-shadow: inset 0 2px 6px rgba(0,0,0,0.5); }
.scn-aunt-tells-her-story .flame-1 { position:absolute; bottom:25%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #f0a040 0%, #c06020 60%, #802010 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: aut-flame1 1.2s ease-in-out infinite alternate; filter: blur(2px); }
.scn-aunt-tells-her-story .flame-2 { position:absolute; bottom:28%; left:45%; width:14px; height:35px; background: linear-gradient(180deg, #f0b050 0%, #c07020 60%, #902010 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: aut-flame2 1.5s ease-in-out infinite alternate; filter: blur(2px); }
.scn-aunt-tells-her-story .armchair { position:absolute; bottom:10%; left:20%; width:80px; height:70px; background: linear-gradient(135deg, #3a2a1e 0%, #2a1a0e 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: inset 0 -4px 10px rgba(0,0,0,0.3); }
.scn-aunt-tells-her-story .aunt-silhouette { position:absolute; bottom:12%; left:22%; width:30px; height:80px; background: linear-gradient(180deg, #1a0e06 0%, #0a0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 45% 45%; transform-origin: bottom center; animation: aut-aunt 4s ease-in-out infinite; }
.scn-aunt-tells-her-story .david-silhouette { position:absolute; bottom:8%; left:45%; width:26px; height:65px; background: linear-gradient(180deg, #1a0e06 0%, #0a0602 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: aut-david 5s ease-in-out infinite; }
.scn-aunt-tells-her-story .fire-glow { position:absolute; bottom:20%; left:30%; right:30%; height:60%; background: radial-gradient(ellipse at 50% 100%, rgba(240,160,60,0.15) 0%, transparent 70%); animation: aut-glow 3s ease-in-out infinite alternate; pointer-events: none; }
@keyframes aut-flame1 { 0% { transform: scaleY(1) rotate(0deg); opacity:0.9; } 50% { transform: scaleY(1.2) rotate(2deg); opacity:1; } 100% { transform: scaleY(0.95) rotate(-2deg); opacity:0.85; } }
@keyframes aut-flame2 { 0% { transform: scaleY(1) rotate(0deg); opacity:0.8; } 50% { transform: scaleY(1.15) rotate(-3deg); opacity:1; } 100% { transform: scaleY(1) rotate(2deg); opacity:0.9; } }
@keyframes aut-aunt { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes aut-david { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes aut-glow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }

/* davids-first-book-success */
.scn-davids-first-book-success {
  background: 
    linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 40%, #c8b898 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-davids-first-book-success .study-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 100%); }
.scn-davids-first-book-success .window-sun { position:absolute; top:12%; left:5%; width:100px; height:140px; background: linear-gradient(180deg, #ffe8c0 0%, #f0d8a0 100%); border: 4px solid #b0a090; border-radius: 4px; box-shadow: inset 0 0 30px rgba(200,180,150,0.5); animation: dav-sun 20s ease-in-out infinite alternate; }
.scn-davids-first-book-success .desk { position:absolute; bottom:10%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.2); }
.scn-davids-first-book-success .book { position:absolute; bottom:25%; left:35%; width:60px; height:40px; background: linear-gradient(180deg, #c04820 0%, #903818 100%); border-radius: 8% 8% 4% 4% / 12% 12% 6% 6%; transform: rotate(-2deg); box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: dav-book 5s ease-in-out infinite; }
.scn-davids-first-book-success .inkwell { position:absolute; bottom:28%; left:50%; width:14px; height:18px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; }
.scn-davids-first-book-success .writer-silhouette { position:absolute; bottom:15%; left:30%; width:32px; height:75px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dav-writer 8s ease-in-out infinite; }
.scn-davids-first-book-success .success-glow { position:absolute; top:30%; left:30%; right:30%; height:40%; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.2) 0%, transparent 70%); animation: dav-glow 4s ease-in-out infinite alternate; pointer-events: none; }
@keyframes dav-sun { 0% { background: linear-gradient(180deg, #ffe8c0 0%, #f0d8a0 100%); } 50% { background: linear-gradient(180deg, #fff0d0 0%, #f8e0b0 100%); } 100% { background: linear-gradient(180deg, #ffe8c0 0%, #f0d8a0 100%); } }
@keyframes dav-book { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes dav-writer { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dav-glow { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

/* dora-accuses-of-contagion */
.scn-dora-accuses-of-contagion {
  background: 
    linear-gradient(180deg, #f0e8d0 0%, #d8c8b0 40%, #c0b098 100%),
    radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 50%);
}
.scn-dora-accuses-of-contagion .parlor-wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 100%); }
.scn-dora-accuses-of-contagion .window-harsh { position:absolute; top:8%; right:10%; width:80px; height:120px; background: linear-gradient(135deg, #fff0d0 0%, #e0c8a0 100%); border: 4px solid #a89880; box-shadow: inset 0 0 20px rgba(160,140,120,0.5); animation: dor-window 5s ease-in-out infinite alternate; }
.scn-dora-accuses-of-contagion .table { position:absolute; bottom:15%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,0.3); }
.scn-dora-accuses-of-contagion .dora-silhouette { position:absolute; bottom:12%; left:25%; width:26px; height:68px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%; transform-origin: bottom center; animation: dor-dora 2s ease-in-out infinite alternate; }
.scn-dora-accuses-of-contagion .david-silhouette { position:absolute; bottom:15%; right:30%; width:30px; height:72px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dor-david 2.5s ease-in-out infinite alternate; }
.scn-dora-accuses-of-contagion .jip-dog { position:absolute; bottom:10%; left:35%; width:16px; height:12px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: dor-jip 1s ease-in-out infinite alternate; }
.scn-dora-accuses-of-contagion .shadow-stripes { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, rgba(0,0,0,0.05) 0px, rgba(0,0,0,0.05) 8px, transparent 8px, transparent 16px); animation: dor-stripes 3s linear infinite; }
@keyframes dor-window { 0% { background: linear-gradient(135deg, #fff0d0 0%, #e0c8a0 100%); } 100% { background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%); } }
@keyframes dor-dora { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes dor-david { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes dor-jip { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-1px) rotate(5deg); } }
@keyframes dor-stripes { 0% { transform: translateX(0); } 100% { transform: translateX(16px); } }

.scn-miss-murdstone-pickle-consent {
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a888 30%, #a09070 70%, #807060 100%),
              radial-gradient(ellipse at 70% 20%, #e8dcc8 0%, transparent 60%);
}
.scn-miss-murdstone-pickle-consent .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b898 0%, #b0a080 50%, #a09070 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.15);
  animation: mm-wash 8s ease-in-out infinite alternate;
}
.scn-miss-murdstone-pickle-consent .table {
  position: absolute; bottom: 15%; left: 30%; right: 20%; height: 12px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
}
.scn-miss-murdstone-pickle-consent .jar {
  position: absolute; bottom: 24%; left: 48%; width: 28px; height: 38px;
  background: radial-gradient(ellipse at 40% 30%, #c8d8b0 0%, #8a9a70 40%, #5a6a4a 100%);
  border-radius: 8px 8px 6px 6px;
  box-shadow: 3px 0 8px rgba(0,0,0,.3), inset 2px 0 6px rgba(180,200,160,.5);
  transform: rotate(-2deg);
  animation: mm-jar 5s ease-in-out infinite;
  z-index: 2;
}
.scn-miss-murdstone-pickle-consent .lid {
  position: absolute; bottom: 58%; left: 47.5%; width: 34px; height: 8px;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 50%, #807040 100%);
  border-radius: 3px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  z-index: 3;
  animation: mm-lid 5s ease-in-out infinite;
}
.scn-miss-murdstone-pickle-consent .figure-miss {
  position: absolute; bottom: 10%; left: 28%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a4050 0%, #2a2030 30%, #1a1020 70%, #0a0810 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: -4px 0 12px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: mm-figure 6s ease-in-out infinite alternate;
  z-index: 1;
}
.scn-miss-murdstone-pickle-consent .arm {
  position: absolute; bottom: 38%; left: 42%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #3a3040 0%, #2a2030 100%);
  border-radius: 4px 8px 8px 4px;
  transform-origin: left center;
  animation: mm-arm 5s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-miss-murdstone-pickle-consent .shadow-sharp {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, rgba(40,30,20,.2) 0%, rgba(20,15,10,.4) 100%);
  filter: blur(2px);
  animation: mm-shadow 7s ease-in-out infinite alternate;
}
.scn-miss-murdstone-pickle-consent .light-slice {
  position: absolute; top: 10%; left: 55%; width: 80px; height: 200px;
  background: linear-gradient(135deg, rgba(255,240,210,.25) 0%, rgba(255,240,210,.05) 50%, transparent 100%);
  clip-path: polygon(0 0, 100% 5%, 95% 100%, 5% 95%);
  animation: mm-light 10s ease-in-out infinite alternate;
  z-index: 0;
}
@keyframes mm-wash { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes mm-jar { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes mm-lid { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes mm-figure { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes mm-arm { 0% { transform: translateX(0) rotate(-10deg); } 50% { transform: translateX(4px) rotate(10deg); } 100% { transform: translateX(0) rotate(-10deg); } }
@keyframes mm-shadow { 0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .4; } }
@keyframes mm-light { 0% { opacity: .3; } 50% { opacity: .7; } 100% { opacity: .2; } }

.scn-barkis-all-right {
  background: linear-gradient(180deg, #7ab8d4 0%, #a0d8e8 30%, #c8e8f0 60%, #e0f0f0 100%),
              radial-gradient(ellipse at 50% 80%, #f0e8c0 0%, transparent 70%);
}
.scn-barkis-all-right .sky-calm {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6aaccc 0%, #90c8d8 40%, #b0dce8 100%);
  animation: ba-sky 20s ease-in-out infinite alternate;
}
.scn-barkis-all-right .field {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b8c86a 0%, #9ab050 30%, #7a9030 70%, #5a7020 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.15);
  animation: ba-field 15s ease-in-out infinite alternate;
}
.scn-barkis-all-right .fence {
  position: absolute; bottom: 32%; left: 10%; right: 10%; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #6a5a3a 5%, #6a5a3a 10%, transparent 12%, #6a5a3a 18%, #6a5a3a 22%, transparent 25%, #6a5a3a 32%, #6a5a3a 36%, transparent 40%, #6a5a3a 48%, #6a5a3a 52%, transparent 55%, #6a5a3a 62%, #6a5a3a 66%, transparent 70%, #6a5a3a 78%, #6a5a3a 82%, transparent 85%, #6a5a3a 92%, #6a5a3a 96%, transparent 100%);
  height: 8px;
  background-size: 20px 8px;
  animation: ba-fence 12s ease-in-out infinite alternate;
}
.scn-barkis-all-right .figure-barkis {
  position: absolute; bottom: 12%; left: 35%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #4a4040 0%, #2a2828 30%, #1a1818 60%, #0a0a0a 100%);
  border-radius: 30% 30% 25% 25% / 45% 45% 30% 30%;
  box-shadow: 2px 0 10px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: ba-figure 7s ease-in-out infinite;
  z-index: 2;
}
.scn-barkis-all-right .cart {
  position: absolute; bottom: 6%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 50%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 2px 0 8px rgba(0,0,0,.4);
  animation: ba-cart 8s ease-in-out infinite alternate;
  z-index: 1;
}
.scn-barkis-all-right .shadow-soft {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, rgba(40,50,20,.3) 0%, rgba(20,30,10,.1) 100%);
  filter: blur(4px);
  animation: ba-shadow 10s ease-in-out infinite alternate;
}
.scn-barkis-all-right .bird {
  position: absolute; width: 12px; height: 4px;
  background: linear-gradient(90deg, #2a2a2a 0%, #1a1a1a 50%, #0a0a0a 100%);
  border-radius: 50%;
  filter: blur(0.5px);
  animation: ba-bird 18s linear infinite;
}
.scn-barkis-all-right .bird-a { top: 18%; left: 10%; animation-duration: 22s; }
.scn-barkis-all-right .bird-b { top: 25%; left: 30%; animation-duration: 28s; animation-delay: -8s; }
@keyframes ba-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes ba-field { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes ba-fence { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .5; } }
@keyframes ba-figure { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } }
@keyframes ba-cart { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ba-shadow { 0% { opacity: .4; } 50% { opacity: .6; } 100% { opacity: .3; } }
@keyframes ba-bird { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(20vw) translateY(-8px); } 50% { transform: translateX(50vw) translateY(0); } 75% { transform: translateX(80vw) translateY(-5px); } 100% { transform: translateX(100vw) translateY(0); } }

.scn-peg-marriage-thought {
  background: linear-gradient(180deg, #e8d4a0 0%, #d4c090 30%, #c0a870 70%, #a89060 100%),
              radial-gradient(ellipse at 60% 30%, #f0e0b0 0%, transparent 60%);
}
.scn-peg-marriage-thought .room-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e0d0a0 0%, #d0c090 30%, #c0b080 70%, #a89868 100%);
  box-shadow: inset 0 0 80px rgba(80,60,20,.2);
  animation: pm-room 14s ease-in-out infinite alternate;
}
.scn-peg-marriage-thought .window-sun {
  position: absolute; top: 8%; left: 55%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #f8f0d0 0%, #e8dcb8 40%, #d0c8a0 100%);
  border: 4px solid #8a7850;
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(255,240,200,.6), 0 0 40px rgba(255,240,180,.3);
  animation: pm-window 12s ease-in-out infinite alternate;
  z-index: 0;
}
.scn-peg-marriage-thought .peg-figure {
  position: absolute; bottom: 8%; left: 25%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 30%, #2a3a2a 60%, #1a2a1a 100%);
  border-radius: 35% 35% 25% 25% / 50% 50% 35% 35%;
  box-shadow: 2px 0 12px rgba(0,0,0,.25);
  transform-origin: bottom center;
  animation: pm-peg 8s ease-in-out infinite;
  z-index: 2;
}
.scn-peg-marriage-thought .davy-figure {
  position: absolute; bottom: 10%; left: 48%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 30%, #1a1a2a 60%, #0a0a1a 100%);
  border-radius: 30% 30% 25% 25% / 50% 50% 35% 35%;
  box-shadow: 1px 0 8px rgba(0,0,0,.2);
  transform-origin: bottom center;
  animation: pm-davy 7s ease-in-out infinite alternate;
  z-index: 2;
}
.scn-peg-marriage-thought .chair-back {
  position: absolute; bottom: 20%; left: 52%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,.3);
  transform: rotate(5deg);
  z-index: 1;
}
.scn-peg-marriage-thought .rug {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 15%;
  background: linear-gradient(135deg, #8a6a4a 0%, #6a4a3a 25%, #8a5a3a 50%, #6a4a3a 75%, #8a6a4a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.2);
  animation: pm-rug 10s ease-in-out infinite alternate;
  z-index: 0;
}
.scn-peg-marriage-thought .dust-mote {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(255,240,200,.8) 0%, rgba(255,240,200,.1) 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: pm-mote 12s ease-in-out infinite;
}
.scn-peg-marriage-thought .motes-a { top: 30%; left: 35%; animation-duration: 14s; }
.scn-peg-marriage-thought .motes-b { top: 40%; left: 50%; animation-duration: 18s; animation-delay: -5s; }
@keyframes pm-room { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes pm-window { 0% { box-shadow: inset 0 0 30px rgba(255,240,200,.6), 0 0 40px rgba(255,240,180,.3); } 50% { box-shadow: inset 0 0 40px rgba(255,240,200,.8), 0 0 60px rgba(255,240,180,.5); } 100% { box-shadow: inset 0 0 30px rgba(255,240,200,.6), 0 0 40px rgba(255,240,180,.3); } }
@keyframes pm-peg { 0%,100% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(0deg); } }
@keyframes pm-davy { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pm-rug { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes pm-mote { 0% { transform: translateY(0) scale(1); opacity: .3; } 25% { transform: translateY(-10px) scale(1.5); opacity: .7; } 50% { transform: translateY(0) scale(1); opacity: .5; } 75% { transform: translateY(-8px) scale(1.2); opacity: .6; } 100% { transform: translateY(0) scale(1); opacity: .3; } }

.scn-emly-puss-greeting {
  background: linear-gradient(180deg, #b07040 0%, #a06030 30%, #8a5020 60%, #6a3a10 100%),
              radial-gradient(ellipse at 50% 40%, #d09050 0%, transparent 60%);
}
.scn-emly-puss-greeting .hearth-glow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #ff8a40 0%, #c06020 40%, #8a3a10 70%, #4a1a08 100%);
  box-shadow: inset 0 0 80px rgba(255,100,20,.4);
  animation: ep-hearth 6s ease-in-out infinite alternate;
}
.scn-emly-puss-greeting .emly-figure {
  position: absolute; bottom: 10%; left: 38%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #d0a880 0%, #b08860 30%, #906848 60%, #704830 100%);
  border-radius: 35% 35% 30% 30% / 50% 50% 35% 35%;
  box-shadow: -2px 0 10px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: ep-emly 8s ease-in-out infinite;
  z-index: 2;
}
.scn-emly-puss-greeting .peg-great {
  position: absolute; bottom: 5%; left: 48%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 30%, #1a2a1a 60%, #0a1a0a 100%);
  border-radius: 40% 40% 25% 25% / 55% 55% 30% 30%;
  box-shadow: 2px 0 15px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: ep-peg 9s ease-in-out infinite alternate;
  z-index: 1;
}
.scn-emly-puss-greeting .door-frame {
  position: absolute; top: 0; left: 10%; right: 10%; bottom: 30%;
  border: 6px solid #5a3010;
  border-top: 0;
  background: rgba(20,10,5,.3);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
  z-index: 0;
}
.scn-emly-puss-greeting .stool {
  position: absolute; bottom: 12%; left: 30%; width: 18px; height: 10px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  z-index: 1;
}
.scn-emly-puss-greeting .puss-shadow {
  position: absolute; bottom: 22%; left: 42%; width: 8px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ep-puss 5s ease-in-out infinite alternate;
  z-index: 3;
}
.scn-emly-puss-greeting .fire-spark {
  position: absolute; width: 3px; height: 3px;
  background: radial-gradient(circle, #ffcc44 0%, #ff8800 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ep-spark 3s ease-in-out infinite;
}
.scn-emly-puss-greeting .spark-a { bottom: 25%; left: 55%; animation-duration: 2.5s; }
.scn-emly-puss-greeting .spark-b { bottom: 20%; left: 60%; animation-duration: 3.5s; animation-delay: -1.5s; }
@keyframes ep-hearth { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ep-emly { 0%,100% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-3px) rotate(0deg); } }
@keyframes ep-peg { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ep-puss { 0% { transform: scale(1); opacity: .5; } 50% { transform: scale(1.5); opacity: .8; } 100% { transform: scale(1); opacity: .5; } }
@keyframes ep-spark { 0% { transform: translateY(0) scale(1); opacity: .9; } 50% { transform: translateY(-15px) scale(0.5); opacity: .4; } 100% { transform: translateY(-30px) scale(0); opacity: 0; } }

.scn-birth-night-striking {
  background: linear-gradient(180deg, #0b0e1a 0%, #12182e 40%, #1a2440 70%, #2a3a5e 100%),
              radial-gradient(ellipse at 50% 30%, #2a3a5e 0%, transparent 60%);
}
.scn-birth-night-striking .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0d1a 0%, #141a30 60%, transparent 100%);
  animation: bns-sky 50s ease-in-out infinite alternate;
}
.scn-birth-night-striking .curtain {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, #1a1a2e 0%, transparent 30%, transparent 70%, #1a1a2e 100%);
  opacity: 0.6; animation: bns-curtain 12s ease-in-out infinite alternate;
}
.scn-birth-night-striking .clock-body {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 40%, #2a1a0a 100%);
  border-radius: 10% 10% 8% 8%; box-shadow: 0 8px 16px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,200,100,.1);
}
.scn-birth-night-striking .clock-face {
  position: absolute; bottom: 22%; left: 50%; width: 44px; height: 44px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 50%, #f5e6c8 0%, #c8b898 80%, #a08868 100%);
  border-radius: 50%; border: 3px solid #4a3020;
  box-shadow: 0 0 12px 3px rgba(200,180,140,.3), inset 0 0 20px rgba(100,80,60,.2);
}
.scn-birth-night-striking .clock-hands {
  position: absolute; bottom: 26%; left: 50%; width: 2px; height: 20px;
  transform-origin: bottom center;
  background: #1a1a1a;
  border-radius: 2px;
  animation: bns-hands 60s linear infinite;
}
.scn-birth-night-striking .candle-flame {
  position: absolute; bottom: 12%; left: 38%; width: 8px; height: 18px;
  background: radial-gradient(circle at 50% 100%, #ffd060 0%, #ffa030 40%, #803000 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(255,160,48,.5), 0 0 40px 16px rgba(255,160,48,.2);
  animation: bns-flame 2s ease-in-out infinite alternate;
}
.scn-birth-night-striking .candle-wax {
  position: absolute; bottom: 10%; left: 37.5%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a8 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.3);
}
.scn-birth-night-striking .shadow-figure {
  position: absolute; bottom: 8%; left: 62%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0.7;
  animation: bns-figure 8s ease-in-out infinite alternate;
}
.scn-birth-night-striking .window-frame {
  position: absolute; top: 10%; right: 8%; width: 50px; height: 70px;
  border: 3px solid #2a1a0a;
  background: rgba(10,14,30,.3);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: bns-window 30s ease-in-out infinite alternate;
}
@keyframes bns-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes bns-curtain { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .7; transform: scale(1.02) } 100% { opacity: .5; transform: scale(1) } }
@keyframes bns-hands { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(180deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes bns-flame { 0% { transform: translateY(0) scaleY(1) rotate(-3deg); opacity: .9 } 50% { transform: translateY(-2px) scaleY(1.1) rotate(2deg); opacity: 1 } 100% { transform: translateY(0) scaleY(1) rotate(-1deg); opacity: .85 } }
@keyframes bns-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: .6 } 50% { transform: translateX(-2px) translateY(-1px) rotate(2deg); opacity: .8 } 100% { transform: translateX(0) translateY(0) rotate(0deg); opacity: .65 } }
@keyframes bns-window { 0% { background: rgba(10,14,30,.2) } 50% { background: rgba(10,14,30,.5) } 100% { background: rgba(10,14,30,.3) } }

.scn-betsey-arrival {
  background: linear-gradient(135deg, #f5e8c8 0%, #e8d4a8 40%, #c8b080 100%),
              radial-gradient(ellipse at 70% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-betsey-arrival .wall-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f5e8c8 0%, #e0c890 70%, transparent 100%);
  box-shadow: inset 0 8px 20px rgba(180,140,80,.2);
  animation: ba-wall 20s ease-in-out infinite alternate;
}
.scn-betsey-arrival .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #4a3a2a 0%, #5a4a3a 40%, #6a5a4a 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.3);
}
.scn-betsey-arrival .doorway {
  position: absolute; bottom: 28%; right: 12%; width: 50px; height: 80px;
  background: #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: ba-door 6s ease-in-out infinite alternate;
}
.scn-betsey-arrival .figure-betsey {
  position: absolute; bottom: 28%; left: 58%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: ba-betsey 4s ease-in-out infinite alternate;
}
.scn-betsey-arrival .figure-mother {
  position: absolute; bottom: 28%; left: 36%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  transform-origin: bottom center;
  animation: ba-mother 5s ease-in-out infinite alternate;
}
.scn-betsey-arrival .carpet-pattern {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(90deg, #8a2a2a 0%, #6a1a1a 20%, #8a2a2a 40%, #6a1a1a 60%, #8a2a2a 80%, #6a1a1a 100%);
  opacity: 0.6;
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 4px rgba(0,0,0,.3);
  animation: ba-carpet 30s ease-in-out infinite alternate;
}
.scn-betsey-arrival .light-beam {
  position: absolute; top: 0; left: 25%; width: 60px; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, rgba(255,240,200,.1) 60%, transparent 100%);
  transform: skew(-8deg);
  animation: ba-beam 8s ease-in-out infinite alternate;
}
@keyframes ba-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ba-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ba-betsey { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(2px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes ba-mother { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes ba-carpet { 0% { opacity: .4; background-position: 0 0 } 50% { opacity: .7; background-position: 20px 0 } 100% { opacity: .5; background-position: 0 0 } }
@keyframes ba-beam { 0% { opacity: .3; transform: skew(-8deg) translateX(0) } 50% { opacity: .6; transform: skew(-6deg) translateX(5px) } 100% { opacity: .3; transform: skew(-8deg) translateX(0) } }

.scn-rookery-inquiry {
  background: linear-gradient(135deg, #f5e8a0 0%, #e8d080 30%, #d4b860 70%, #b8a040 100%),
              radial-gradient(ellipse at 60% 40%, #ffe8a0 0%, transparent 50%);
}
.scn-rookery-inquiry .room-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #f0e0a0 0%, #e0c870 50%, transparent 100%);
  box-shadow: inset 0 4px 12px rgba(180,140,40,.2);
  animation: ri-wall 20s ease-in-out infinite alternate;
}
.scn-rookery-inquiry .window-open {
  position: absolute; top: 8%; left: 55%; width: 70px; height: 80px;
  background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 100%);
  border: 4px solid #6a5030;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,224,240,.5), 0 4px 12px rgba(0,0,0,.3);
  animation: ri-window 10s ease-in-out infinite alternate;
}
.scn-rookery-inquiry .figure-betsey-pointing {
  position: absolute; bottom: 24%; left: 48%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 70% 80%;
  animation: ri-point 3s ease-in-out infinite alternate;
}
.scn-rookery-inquiry .figure-mother-small {
  position: absolute; bottom: 24%; left: 32%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-mother 4s ease-in-out infinite alternate;
}
.scn-rookery-inquiry .rook-silhouette {
  position: absolute; top: 10%; left: 62%; width: 24px; height: 16px;
  background: #1a1a1a;
  border-radius: 60% 40% 40% 60% / 60% 40% 60% 40%;
  transform: rotate(10deg);
  box-shadow: 0 0 8px rgba(0,0,0,.2);
  animation: ri-rook 6s ease-in-out infinite alternate;
}
.scn-rookery-inquiry .suitcase {
  position: absolute; bottom: 14%; left: 22%; width: 36px; height: 24px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: ri-suitcase 30s ease-in-out infinite alternate;
}
.scn-rookery-inquiry .shadow-tilted {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.3) 100%);
  transform: skew(8deg);
  animation: ri-shadow 15s ease-in-out infinite alternate;
}
.scn-rookery-inquiry .dust-mote {
  position: absolute; top: 20%; left: 40%; width: 4px; height: 4px;
  background: rgba(255,240,200,.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: ri-dust 8s linear infinite;
}
@keyframes ri-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ri-window { 0% { background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 100%) } 50% { background: linear-gradient(180deg, #d0e8f8 0%, #b0d0e8 100%) } 100% { background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 100%) } }
@keyframes ri-point { 0% { transform: rotate(-5deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-3deg) } }
@keyframes ri-mother { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ri-rook { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(15deg) translateX(4px) } 100% { transform: rotate(8deg) translateX(0) } }
@keyframes ri-suitcase { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ri-shadow { 0% { opacity: .3 } 50% { opacity: .5 } 100% { opacity: .3 } }
@keyframes ri-dust { 0% { transform: translateY(0) translateX(0); opacity: 0 } 25% { opacity: .6 } 50% { transform: translateY(-30px) translateX(15px); opacity: .3 } 75% { opacity: .5 } 100% { transform: translateY(-60px) translateX(30px); opacity: 0 } }

.scn-betsey-tea {
  background: linear-gradient(135deg, #f0d8a0 0%, #e0c080 40%, #c8a060 100%),
              radial-gradient(ellipse at 50% 60%, #ffe8c0 0%, transparent 50%);
}
.scn-betsey-tea .table-wood {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 35%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.2), inset 0 4px 8px rgba(255,200,100,.1);
  animation: bt-table 30s ease-in-out infinite alternate;
}
.scn-betsey-tea .teapot-body {
  position: absolute; bottom: 38%; left: 44%; width: 40px; height: 36px;
  background: radial-gradient(ellipse at 50% 60%, #d4a060 0%, #a08040 70%, #806030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3), inset 0 -2px 6px rgba(0,0,0,.2);
  transform-origin: bottom center;
  animation: bt-teapot 8s ease-in-out infinite alternate;
}
.scn-betsey-tea .teapot-lid {
  position: absolute; bottom: 50%; left: 47%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: bt-lid 6s ease-in-out infinite alternate;
}
.scn-betsey-tea .steam-curl {
  position: absolute; bottom: 52%; left: 47%; width: 12px; height: 20px;
  background: rgba(255,240,220,.3);
  filter: blur(4px);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: bt-steam 5s ease-in-out infinite alternate;
}
.scn-betsey-tea .cup-betsey {
  position: absolute; bottom: 30%; left: 30%; width: 18px; height: 16px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8b080 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2), inset 0 -2px 4px rgba(0,0,0,.1);
}
.scn-betsey-tea .cup-mother {
  position: absolute; bottom: 30%; left: 56%; width: 16px; height: 14px;
  background: linear-gradient(180deg, #e0c898 0%, #c0a878 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 2px 4px rgba(0,0,0,.2), inset 0 -2px 4px rgba(0,0,0,.1);
  animation: bt-cup 4s ease-in-out infinite alternate;
}
.scn-betsey-tea .figure-arm-betsey {
  position: absolute; bottom: 36%; left: 52%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  transform-origin: 50% 100%;
  transform: rotate(-20deg);
  animation: bt-arm-b 4s ease-in-out infinite alternate;
}
.scn-betsey-tea .figure-arm-mother {
  position: absolute; bottom: 34%; left: 40%; width: 7px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform-origin: 50% 100%;
  transform: rotate(15deg);
  animation: bt-arm-m 5s ease-in-out infinite alternate;
}
@keyframes bt-table { 0% { background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%) } 50% { background: linear-gradient(180deg, #6a4a2a 0%, #4a3a1a 100%) } 100% { background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%) } }
@keyframes bt-teapot { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bt-lid { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bt-steam { 0% { transform: translateY(0) scale(1); opacity: .3 } 50% { transform: translateY(-12px) scale(1.5); opacity: .6 } 100% { transform: translateY(0) scale(1); opacity: .3 } }
@keyframes bt-cup { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes bt-arm-b { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-20deg) } }
@keyframes bt-arm-m { 0% { transform: rotate(15deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(15deg) } }

/* Scene: dora-begs-not-dreadful */
.scn-dora-begs-not-dreadful {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a40 50%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a5e 0%, transparent 60%);
}
.scn-dora-begs-not-dreadful .wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; animation: dora-wall 12s ease-in-out infinite alternate; }
.scn-dora-begs-not-dreadful .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e1e2a 0%, #0c0c14 100%); border-radius: 50% 50% 0 0; }
.scn-dora-begs-not-dreadful .figure { position:absolute; bottom:20%; left:50%; width:60px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.5); animation: dora-figure 6s ease-in-out infinite; }
.scn-dora-begs-not-dreadful .hands  { position:absolute; bottom:45%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse, #4a4a5e 0%, #2a2a3e 70%); border-radius: 40% 40% 30% 30%; box-shadow: 0 0 10px rgba(0,0,0,.4); animation: dora-hands 3s ease-in-out infinite alternate; }
.scn-dora-begs-not-dreadful .shadow { position:absolute; bottom:0; left:25%; right:25%; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: dora-shadow 6s ease-in-out infinite; }
.scn-dora-begs-not-dreadful .light  { position:absolute; top:15%; left:40%; width:50px; height:60px; background: radial-gradient(circle, #c8a060 0%, #8a6a40 50%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: dora-light 4s ease-in-out infinite alternate; }

@keyframes dora-wall   { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes dora-figure { 0% { transform:translateX(-50%) translateY(0) rotate(0deg) } 25% { transform:translateX(-50%) translateY(-3px) rotate(-1deg) } 50% { transform:translateX(-50%) translateY(0) rotate(1deg) } 75% { transform:translateX(-50%) translateY(-2px) rotate(0deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes dora-hands  { 0% { transform:translateX(-50%) translateY(0) scale(1) } 50% { transform:translateX(-50%) translateY(-4px) scale(1.05) } 100% { transform:translateX(-50%) translateY(0) scale(0.95) } }
@keyframes dora-shadow { 0% { opacity:.3; transform:scaleX(1) } 50% { opacity:.5; transform:scaleX(0.9) } 100% { opacity:.4; transform:scaleX(1.1) } }
@keyframes dora-light  { 0% { opacity:.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.8; transform:scale(0.95) } }

/* Scene: traddles-dictates-speeches */
.scn-traddles-dictates-speeches {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 50%, #b8a888 100%),
              radial-gradient(ellipse at 50% 20%, #ffe0a0 0%, transparent 60%);
}
.scn-traddles-dictates-speeches .bg        { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(180,160,120,.15) 100%); animation: trad-bg 10s ease-in-out infinite alternate; }
.scn-traddles-dictates-speeches .table     { position:absolute; bottom:0; left:5%; right:5%; height:45%; background: linear-gradient(180deg, #8a7a5e 0%, #6a5a3e 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: trad-table 8s ease-in-out infinite; }
.scn-traddles-dictates-speeches .figure-left  { position:absolute; bottom:40%; left:10%; width:50px; height:70px; background: linear-gradient(180deg, #3a3a2e 0%, #1a1a0e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: trad-figure-l 4s ease-in-out infinite; }
.scn-traddles-dictates-speeches .figure-right { position:absolute; bottom:38%; right:15%; width:55px; height:75px; background: linear-gradient(180deg, #4a4a3e 0%, #2a2a1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: trad-figure-r 5s ease-in-out infinite; }
.scn-traddles-dictates-speeches .paper    { position:absolute; bottom:50%; left:35%; width:80px; height:50px; background: #f0e8d0; border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.2); animation: trad-paper 3s ease-in-out infinite; }
.scn-traddles-dictates-speeches .quill    { position:absolute; bottom:55%; left:45%; width:4px; height:30px; background: linear-gradient(180deg, #c8b8a0 0%, #6a5a3e 100%); border-radius: 50%; transform:rotate(-15deg); animation: trad-quill 2s ease-in-out infinite alternate; }
.scn-traddles-dictates-speeches .inkwell  { position:absolute; bottom:48%; left:40%; width:20px; height:20px; background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 70%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: trad-ink 6s ease-in-out infinite; }

@keyframes trad-bg       { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes trad-table    { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes trad-figure-l { 0% { transform:rotate(0deg) } 25% { transform:rotate(-5deg) } 75% { transform:rotate(5deg) } 100% { transform:rotate(0deg) } }
@keyframes trad-figure-r { 0% { transform:rotate(0deg) translateY(0) } 30% { transform:rotate(3deg) translateY(-2px) } 70% { transform:rotate(-4deg) translateY(1px) } 100% { transform:rotate(0deg) translateY(0) } }
@keyframes trad-paper    { 0% { transform:scaleX(1) rotate(0deg) } 50% { transform:scaleX(1.05) rotate(1deg) } 100% { transform:scaleX(0.95) rotate(-1deg) } }
@keyframes trad-quill    { 0% { transform:rotate(-15deg) translateY(0) } 100% { transform:rotate(-10deg) translateY(-2px) } }
@keyframes trad-ink      { 0% { transform:scale(1) } 50% { transform:scale(1.1) } 100% { transform:scale(0.95) } }

/* Scene: reticule-reveals-letters */
.scn-reticule-reveals-letters {
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1a 50%, #050510 100%),
              radial-gradient(ellipse at 50% 60%, #4a4a6e 0%, transparent 70%);
}
.scn-reticule-reveals-letters .bg       { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,240,.05) 0%, transparent 100%); animation: reti-bg 15s ease-in-out infinite alternate; }
.scn-reticule-reveals-letters .table    { position:absolute; bottom:0; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-reticule-reveals-letters .hand     { position:absolute; bottom:30%; left:40%; width:40px; height:55px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: 50% 80%; animation: reti-hand 4s ease-in-out infinite; }
.scn-reticule-reveals-letters .reticule { position:absolute; bottom:35%; left:35%; width:30px; height:25px; background: radial-gradient(ellipse, #6a4a3a 0%, #3a2a1a 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: reti-reticule 4s ease-in-out infinite alternate; }
.scn-reticule-reveals-letters .letters  { position:absolute; bottom:30%; left:45%; width:15px; height:22px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 2px; transform:rotate(10deg); box-shadow: 1px 1px 3px rgba(0,0,0,.3); animation: reti-letter 5s ease-in-out infinite; }
.scn-reticule-reveals-letters .shadow   { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); animation: reti-shadow 8s ease-in-out infinite; }

@keyframes reti-bg       { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes reti-hand     { 0% { transform:rotate(0deg) translateY(0) } 25% { transform:rotate(-5deg) translateY(-3px) } 50% { transform:rotate(2deg) translateY(-1px) } 75% { transform:rotate(-3deg) translateY(2px) } 100% { transform:rotate(0deg) translateY(0) } }
@keyframes reti-reticule { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(-2px) rotate(-3deg) } 100% { transform:translateX(0) rotate(2deg) } }
@keyframes reti-letter   { 0% { transform:rotate(10deg) translateY(0) } 30% { transform:rotate(15deg) translateY(-4px) } 70% { transform:rotate(5deg) translateY(2px) } 100% { transform:rotate(10deg) translateY(0) } }
@keyframes reti-shadow   { 0% { opacity:.4; transform:scaleY(1) } 50% { opacity:.6; transform:scaleY(0.85) } 100% { opacity:.5; transform:scaleY(1.1) } }

/* Scene: jip-betrays-letters */
.scn-jip-betrays-letters {
  background: linear-gradient(180deg, #e8d4a0 0%, #c8b080 50%, #a89060 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-jip-betrays-letters .floor   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b8a070 0%, #8a7050 100%); border-radius: 30% 30% 0 0; }
.scn-jip-betrays-letters .wall    { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); animation: jip-wall 10s ease-in-out infinite alternate; }
.scn-jip-betrays-letters .dog     { position:absolute; bottom:30%; left:40%; width:45px; height:35px; background: radial-gradient(ellipse at 60% 40%, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: jip-dog 2s ease-in-out infinite; }
.scn-jip-betrays-letters .paper   { position:absolute; bottom:32%; left:46%; width:20px; height:14px; background: #f0e8d0; border-radius: 1px; transform:rotate(20deg); box-shadow: 1px 1px 3px rgba(0,0,0,.2); animation: jip-paper 3s ease-in-out infinite alternate; }
.scn-jip-betrays-letters .hand    { position:absolute; bottom:40%; right:40%; width:35px; height:50px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: 50% 70%; animation: jip-hand 4s ease-in-out infinite; }
.scn-jip-betrays-letters .shadow  { position:absolute; bottom:0; left:30%; right:30%; height:25%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation: jip-shadow 5s ease-in-out infinite; }
.scn-jip-betrays-letters .window  { position:absolute; top:8%; right:12%; width:60px; height:80px; border: 4px solid #7a6a5a; border-radius: 10% 10% 20% 20%; background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.2); animation: jip-window 12s ease-in-out infinite alternate; }

@keyframes jip-wall   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes jip-dog    { 0% { transform:rotate(0deg) } 25% { transform:rotate(-5deg) translateY(2px) } 50% { transform:rotate(3deg) } 75% { transform:rotate(-2deg) translateY(-1px) } 100% { transform:rotate(0deg) } }
@keyframes jip-paper  { 0% { transform:rotate(20deg) translateY(0) scaleX(1) } 50% { transform:rotate(15deg) translateY(-3px) scaleX(1.1) } 100% { transform:rotate(25deg) translateY(0) scaleX(0.9) } }
@keyframes jip-hand   { 0% { transform:rotate(0deg) translateY(0) } 30% { transform:rotate(5deg) translateY(-2px) } 70% { transform:rotate(-4deg) translateY(1px) } 100% { transform:rotate(0deg) translateY(0) } }
@keyframes jip-shadow { 0% { opacity:.3; transform:scaleX(1) } 50% { opacity:.5; transform:scaleX(0.85) } 100% { opacity:.4; transform:scaleX(1.1) } }
@keyframes jip-window { 0% { background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 100%); } 50% { background: linear-gradient(180deg, #fff0e0 0%, #e8d8c0 100%); } 100% { background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 100%); } }

.scn-mel-regrets-outburst {
  background: linear-gradient(180deg, #d4c8a8 0%, #b8a888 40%, #8a7a5a 100%), radial-gradient(ellipse at 30% 60%, #fff5d0 0%, transparent 50%);
}
.scn-mel-regrets-outburst .bg-wood {
  position: absolute; inset: 0; 
  background: repeating-linear-gradient(90deg, #8b7355 0px, #8b7355 2px, #7a6345 2px, #7a6345 4px);
  opacity: 0.15;
}
.scn-mel-regrets-outburst .window-light {
  position: absolute; top: 8%; left: 60%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #fef8e0 0%, #fce8c0 40%, #f0d090 100%);
  border-radius: 4px;
  box-shadow: 0 0 60px 30px rgba(255,230,160,0.3), inset 0 0 20px #fff8e0;
  animation: ml-window 6s ease-in-out infinite alternate;
}
.scn-mel-regrets-outburst .desk {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #6a5230 0%, #4a3a1e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
}
.scn-mel-regrets-outburst .figure-mell {
  position: absolute; bottom: 26%; left: 30%; width: 14%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml-figure 5s ease-in-out infinite;
}
.scn-mel-regrets-outburst .figure-hands {
  position: absolute; bottom: 42%; left: 26%; width: 22%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 50%;
  animation: ml-hands 3s ease-in-out infinite, ml-shake 0.4s ease-in-out infinite;
}
.scn-mel-regrets-outburst .shadow {
  position: absolute; bottom: 8%; left: 22%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ml-shadow 5s ease-in-out infinite;
}
.scn-mel-regrets-outburst .book {
  position: absolute; bottom: 14%; right: 20%; width: 8%; height: 12%;
  background: linear-gradient(135deg, #6b3a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
@keyframes ml-window {
  0% { opacity: 0.85; box-shadow: 0 0 40px 20px rgba(255,230,160,0.2); }
  50% { opacity: 1; box-shadow: 0 0 80px 40px rgba(255,230,160,0.4); }
  100% { opacity: 0.9; box-shadow: 0 0 50px 25px rgba(255,230,160,0.3); }
}
@keyframes ml-figure {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-4px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes ml-hands {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(4px, -2px) rotate(15deg); }
  100% { transform: translate(-2px, 1px) rotate(-10deg); }
}
@keyframes ml-shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-2px); }
  75% { transform: translateX(2px); }
}
@keyframes ml-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(0.9); opacity: 0.7; }
  100% { transform: scaleX(1.05); opacity: 0.4; }
}

.scn-creakle-demands-account {
  background: linear-gradient(180deg, #c8b898 0%, #a88a68 40%, #7a5a3a 100%), radial-gradient(ellipse at 70% 30%, #fff5d0 0%, transparent 60%);
}
.scn-creakle-demands-account .bg-panel {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #9a7a5a 0px, #9a7a5a 2px, #8a6a4a 2px, #8a6a4a 4px);
  opacity: 0.2;
}
.scn-creakle-demands-account .desk-large {
  position: absolute; bottom: 6%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a422a 0%, #3a2a12 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
}
.scn-creakle-demands-account .figure-creakle {
  position: absolute; bottom: 26%; left: 20%; width: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 30%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-creakle 8s ease-in-out infinite;
}
.scn-creakle-demands-account .figure-assistant {
  position: absolute; bottom: 30%; right: 20%; width: 14%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-assistant 6s ease-in-out infinite;
}
.scn-creakle-demands-account .cane {
  position: absolute; bottom: 18%; left: 25%; width: 3%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px;
  transform: rotate(-15deg);
  transform-origin: bottom left;
  animation: cr-cane 4s ease-in-out infinite;
}
.scn-creakle-demands-account .cast-shadow {
  position: absolute; bottom: 6%; left: 15%; width: 30%; height: 15%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  animation: cr-shadow 10s ease-in-out infinite;
}
.scn-creakle-demands-account .inkwell {
  position: absolute; bottom: 14%; left: 40%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 40%, #1a1a1a 0%, #000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.2);
}
@keyframes cr-creakle {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-2deg) scale(1.02); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cr-assistant {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(2deg) scale(0.98); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cr-cane {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(-20deg) translateX(2px); }
  100% { transform: rotate(-12deg); }
}
@keyframes cr-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(0.9); }
  100% { opacity: 0.5; transform: scaleX(1.1); }
}

.scn-steerforth-defiant {
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 35%, #908060 100%), radial-gradient(ellipse at 40% 50%, #fff5d0 0%, transparent 60%);
}
.scn-steerforth-defiant .bg-walls {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #a09070 0px, #a09070 1px, #908060 1px, #908060 3px);
  opacity: 0.1;
}
.scn-steerforth-defiant .window-tall {
  position: absolute; top: 5%; left: 18%; width: 20%; height: 70%;
  background: linear-gradient(180deg, #fef8e0 0%, #fce8c0 40%, #e8d0a0 100%);
  border-radius: 6px;
  box-shadow: 0 0 80px 40px rgba(255,230,160,0.4), inset 0 0 30px #fff8e0;
  animation: st-window 7s ease-in-out infinite alternate;
}
.scn-steerforth-defiant .figure-steerforth {
  position: absolute; bottom: 22%; left: 45%; width: 16%; height: 55%;
  background: radial-gradient(ellipse at 50% 20%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-steerforth 6s ease-in-out infinite, st-turn 2s ease-in-out infinite;
}
.scn-steerforth-defiant .figure-creakle {
  position: absolute; bottom: 22%; left: 65%; width: 20%; height: 55%;
  background: radial-gradient(ellipse at 50% 20%, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-creakle 8s ease-in-out infinite, st-point 4s ease-in-out infinite;
}
.scn-steerforth-defiant .chair {
  position: absolute; bottom: 10%; left: 30%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #5a422a 0%, #3a2a12 100%);
  border-radius: 4px;
  transform: rotate(5deg);
}
.scn-steerforth-defiant .papers {
  position: absolute; bottom: 16%; left: 38%; width: 10%; height: 2%;
  background: #e8d8b8;
  border-radius: 1px;
  box-shadow: 2px 2px 2px rgba(0,0,0,0.2);
  animation: st-papers 3s ease-in-out infinite;
}
@keyframes st-window {
  0% { opacity: 0.9; box-shadow: 0 0 60px 30px rgba(255,230,160,0.3); }
  50% { opacity: 1; box-shadow: 0 0 100px 50px rgba(255,230,160,0.5); }
  100% { opacity: 0.95; box-shadow: 0 0 70px 35px rgba(255,230,160,0.35); }
}
@keyframes st-steerforth {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-5px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes st-turn {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(-1); }
}
@keyframes st-creakle {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes st-point {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(6px); }
}
@keyframes st-papers {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.7; }
  50% { transform: translateY(-2px) rotate(3deg); opacity: 1; }
  100% { transform: translateY(0) rotate(-2deg); opacity: 0.8; }
}

.scn-traddles-defends-mel {
  background: linear-gradient(180deg, #c8b898 0%, #a88a68 40%, #7a5a3a 100%), radial-gradient(ellipse at 60% 40%, #fff5d0 0%, transparent 70%);
}
.scn-traddles-defends-mel .bg-studio {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, #a09070 0px, #a09070 2px, #908060 2px, #908060 4px);
  opacity: 0.15;
}
.scn-traddles-defends-mel .desk-narrow {
  position: absolute; bottom: 8%; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, #5a422a 0%, #3a2a12 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-traddles-defends-mel .figure-traddles {
  position: absolute; bottom: 23%; left: 25%; width: 14%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-traddles 7s ease-in-out infinite;
}
.scn-traddles-defends-mel .figure-steerforth {
  position: absolute; bottom: 23%; left: 55%; width: 14%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-steerforth 6s ease-in-out infinite, tr-turn 3s ease-in-out infinite;
}
.scn-traddles-defends-mel .book-fly {
  position: absolute; bottom: 30%; left: 42%; width: 8%; height: 10%;
  background: linear-gradient(135deg, #6b3a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: tr-book 4s ease-in-out infinite;
}
.scn-traddles-defends-mel .floor-lamp {
  position: absolute; bottom: 10%; left: 10%; width: 4%; height: 40%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 4px;
  transform: rotate(-8deg);
  transform-origin: bottom center;
  animation: tr-lamp 5s ease-in-out infinite;
}
@keyframes tr-traddles {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-2deg) scale(1.01); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tr-steerforth {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-4px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tr-turn {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(-1); }
}
@keyframes tr-book {
  0% { transform: translateY(0) rotate(-15deg); }
  50% { transform: translateY(-3px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(-20deg); }
}
@keyframes tr-lamp {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-10deg); }
}

.scn-dora-suggests-better-not-maried {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 30%, #b8a080 100%),
    radial-gradient(ellipse at 70% 40%, #fff5e0 0%, transparent 60%);
}
.scn-dora-suggests-better-not-maried .bg-room {
  position:absolute; inset:0; background: linear-gradient(135deg, #e8d8b8 0%, #c4b098 100%);
  animation: ds-bgroom 12s ease-in-out infinite alternate;
}
.scn-dora-suggests-better-not-maried .window {
  position:absolute; top:8%; left:55%; width:35%; height:50%;
  background: linear-gradient(180deg, #b0d4f0 0%, #d0e8ff 100%);
  border:4px solid #8a7a60; border-radius:4px;
  box-shadow: inset 0 0 20px #fff8e0, 0 0 30px rgba(176,212,240,.5);
  animation: ds-window 18s ease-in-out infinite;
}
.scn-dora-suggests-better-not-maried .dora-figure {
  position:absolute; bottom:18%; left:20%; width:45px; height:80px;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-dora 4s ease-in-out infinite;
}
.scn-dora-suggests-better-not-maried .copperfield-figure {
  position:absolute; bottom:18%; left:55%; width:40px; height:75px;
  background: linear-gradient(180deg, #6b5a4a 0%, #403830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-copperfield 4.5s ease-in-out infinite;
}
.scn-dora-suggests-better-not-maried .table {
  position:absolute; bottom:15%; left:30%; width:40%; height:8px;
  background: linear-gradient(180deg, #8a7a60 0%, #605040 100%);
  border-radius: 2px 2px 10px 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-dora-suggests-better-not-maried .lamp {
  position:absolute; bottom:40%; left:35%; width:16px; height:28px;
  background: linear-gradient(180deg, #d0b070 0%, #a08040 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 8px #f0d080, 0 0 60px 15px rgba(240,208,128,.3);
  animation: ds-lamp 3s ease-in-out infinite alternate;
}
.scn-dora-suggests-better-not-maried .shadow {
  position:absolute; bottom:15%; left:35%; width:30%; height:12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.15) 0%, transparent 100%);
  animation: ds-shadow 8s ease-in-out infinite;
}
@keyframes ds-bgroom { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ds-window { 0% { filter: brightness(1) } 50% { filter: brightness(1.1) } 100% { filter: brightness(0.95) } }
@keyframes ds-dora { 
  0% { transform: translateX(0) translateY(0) rotate(-2deg) }
  50% { transform: translateX(2px) translateY(-1px) rotate(2deg) }
  100% { transform: translateX(0) translateY(0) rotate(-2deg) }
}
@keyframes ds-copperfield { 
  0% { transform: translateX(0) translateY(0) rotate(1deg) }
  50% { transform: translateX(-1px) translateY(-1px) rotate(-1deg) }
  100% { transform: translateX(0) translateY(0) rotate(1deg) }
}
@keyframes ds-lamp { 
  0% { box-shadow: 0 0 20px 5px #f0d080, 0 0 40px 10px rgba(240,208,128,.2); opacity:.85 }
  50% { box-shadow: 0 0 40px 12px #ffd090, 0 0 70px 20px rgba(255,208,144,.4); opacity:1 }
  100% { box-shadow: 0 0 25px 6px #f0d080, 0 0 50px 12px rgba(240,208,128,.25); opacity:.9 }
}
@keyframes ds-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

.scn-mysterious-letter-from-micawber {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #d4c0a0 40%, #b8a080 100%),
    radial-gradient(ellipse at 30% 50%, #fff5e0 0%, transparent 50%);
}
.scn-mysterious-letter-from-micawber .desk {
  position:absolute; bottom:20%; left:5%; width:90%; height:30%;
  background: linear-gradient(180deg, #a08868 0%, #705840 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 8px 20px rgba(0,0,0,.4);
  animation: ml-desk 14s ease-in-out infinite;
}
.scn-mysterious-letter-from-micawber .letter {
  position:absolute; bottom:45%; left:25%; width:25%; height:35%;
  background: linear-gradient(135deg, #f5f0e0 0%, #e0d0b0 100%);
  border:1px solid #b09878;
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,.2);
  transform-origin: bottom left;
  animation: ml-letter 2s ease-in-out infinite alternate;
}
.scn-mysterious-letter-from-micawber .hand {
  position:absolute; bottom:48%; left:55%; width:30px; height:35px;
  background: radial-gradient(ellipse at 30% 40%, #e0c0a0 0%, #c09870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: ml-hand 1.5s ease-in-out infinite alternate;
}
.scn-mysterious-letter-from-micawber .inkwell {
  position:absolute; bottom:40%; left:20%; width:15px; height:18px;
  background: linear-gradient(180deg, #3a3a30 0%, #1a1a10 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-mysterious-letter-from-micawber .shadow {
  position:absolute; bottom:18%; left:10%; width:80%; height:14px;
  background: radial-gradient(ellipse, rgba(0,0,0,.2) 0%, transparent 100%);
  animation: ml-shadow 8s ease-in-out infinite;
}
.scn-mysterious-letter-from-micawber .window-light {
  position:absolute; top:15%; right:10%; width:30%; height:45%;
  background: linear-gradient(180deg, #c0d8f0 0%, #e0ecff 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(255,255,255,.6), 0 0 40px rgba(192,216,240,.3);
  animation: ml-window 16s ease-in-out infinite;
}
.scn-mysterious-letter-from-micawber .chair {
  position:absolute; bottom:18%; right:10%; width:30%; height:35%;
  background: linear-gradient(180deg, #6a5a4a 0%, #403830 100%);
  border-radius: 10% 10% 40% 40%;
  transform-origin: bottom center;
  animation: ml-chair 12s ease-in-out infinite;
}
@keyframes ml-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ml-letter { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(1deg) scale(1.02) } 100% { transform: rotate(-1deg) scale(0.98) } }
@keyframes ml-hand { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes ml-shadow { 0% { transform: scaleX(1) opacity:.6 } 50% { transform: scaleX(1.05) opacity:.8 } 100% { transform: scaleX(1) opacity:.6 } }
@keyframes ml-window { 0% { filter: brightness(1) } 50% { filter: brightness(1.15) } 100% { filter: brightness(0.95) } }
@keyframes ml-chair { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-traddles-and-david-read-letters {
  background: 
    linear-gradient(180deg, #eae2d0 0%, #d4c4a8 30%, #b8a080 100%),
    radial-gradient(ellipse at 60% 30%, #fff5e0 0%, transparent 60%);
}
.scn-traddles-and-david-read-letters .table {
  position:absolute; bottom:15%; left:10%; width:80%; height:12px;
  background: linear-gradient(180deg, #7a6a50 0%, #504030 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
}
.scn-traddles-and-david-read-letters .letter-left {
  position:absolute; bottom:40%; left:20%; width:18%; height:25%;
  background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a8 100%);
  border:1px solid #b09878;
  border-radius: 2px;
  transform-origin: bottom left;
  animation: tr-letterl 3s ease-in-out infinite alternate;
}
.scn-traddles-and-david-read-letters .letter-right {
  position:absolute; bottom:40%; right:20%; width:18%; height:25%;
  background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a8 100%);
  border:1px solid #b09878;
  border-radius: 2px;
  transform-origin: bottom right;
  animation: tr-letterr 3.5s ease-in-out infinite alternate;
}
.scn-traddles-and-david-read-letters .traddles {
  position:absolute; bottom:18%; left:15%; width:40px; height:70px;
  background: linear-gradient(180deg, #7a6a5a 0%, #504030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-traddles 5s ease-in-out infinite;
}
.scn-traddles-and-david-read-letters .david {
  position:absolute; bottom:18%; right:15%; width:38px; height:68px;
  background: linear-gradient(180deg, #6b5a4a 0%, #403830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-david 5.5s ease-in-out infinite;
}
.scn-traddles-and-david-read-letters .window {
  position:absolute; top:10%; left:40%; width:20%; height:40%;
  background: linear-gradient(180deg, #b8d4e8 0%, #d0e4f8 100%);
  border:3px solid #8a7a60;
  border-radius: 2px;
  box-shadow: inset 0 0 20px #fff8e0, 0 0 30px rgba(184,212,232,.4);
  animation: tr-window 20s ease-in-out infinite;
}
.scn-traddles-and-david-read-letters .bookshelf {
  position:absolute; top:15%; right:5%; width:12%; height:60%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.4);
  animation: tr-shelf 30s linear infinite;
}
@keyframes tr-letterl { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes tr-letterr { 0% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes tr-traddles { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tr-david { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tr-window { 0% { filter: brightness(1) } 50% { filter: brightness(1.1) } 100% { filter: brightness(0.95) } }
@keyframes tr-shelf { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.8 } }

.scn-micawber-mysterious-hints {
  background: 
    linear-gradient(180deg, #2a2018 0%, #1a1210 40%, #120c08 100%),
    radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%);
}
.scn-micawber-mysterious-hints .table {
  position:absolute; bottom:15%; left:15%; width:70%; height:10px;
  background: linear-gradient(180deg, #504030 0%, #302010 100%);
  border-radius: 2px;
  box-shadow: 0 6px 15px rgba(0,0,0,.6);
}
.scn-micawber-mysterious-hints .candle {
  position:absolute; bottom:40%; left:48%; width:10px; height:30px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%);
  border-radius: 2px 2px 10% 10%;
  box-shadow: 0 0 20px 4px rgba(200,168,112,.4);
}
.scn-micawber-mysterious-hints .flame {
  position:absolute; bottom:68%; left:48%; width:14px; height:20px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #f0a030 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  box-shadow: 0 0 40px 15px #f0a030, 0 0 80px 30px rgba(240,160,48,.3);
  animation: mm-flame 1.5s ease-in-out infinite alternate;
}
.scn-micawber-mysterious-hints .micawber {
  position:absolute; bottom:18%; left:15%; width:40px; height:65px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mm-micawber 6s ease-in-out infinite;
}
.scn-micawber-mysterious-hints .david {
  position:absolute; bottom:18%; left:42%; width:35px; height:60px;
  background: linear-gradient(180deg, #2a1a12 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mm-david 6.5s ease-in-out infinite;
}
.scn-micawber-mysterious-hints .traddles {
  position:absolute; bottom:18%; right:15%; width:38px; height:62px;
  background: linear-gradient(180deg, #2a1a12 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mm-traddles 7s ease-in-out infinite;
}
.scn-micawber-mysterious-hints .shadow {
  position:absolute; bottom:14%; left:10%; width:80%; height:15px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: mm-shadow 10s ease-in-out infinite;
}
@keyframes mm-flame { 
  0% { transform: translateY(0) scale(1) rotate(-2deg); filter: blur(2px); }
  50% { transform: translateY(-3px) scale(1.1) rotate(2deg); filter: blur(1px); }
  100% { transform: translateY(0) scale(0.95) rotate(-1deg); filter: blur(2px); }
}
@keyframes mm-micawber { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mm-david { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mm-traddles { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mm-shadow { 0% { transform: scaleX(1); opacity:.7 } 50% { transform: scaleX(1.05); opacity:.9 } 100% { transform: scaleX(1); opacity:.7 } }

.scn-complaint-about-annie { background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 30%, #c8b894 60%, #a89874 100%), radial-gradient(ellipse at 30% 20%, #fff5e0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-complaint-about-annie .bg-wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(135deg, #e8dcc8 0%, #d4c8b0 50%, #c0b49c 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.15); }
.scn-complaint-about-annie .bg-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #8a7a64 0%, #6a5a44 40%, #5a4a34 100%); border-radius: 0 0 12px 12px; }
.scn-complaint-about-annie .figure-left { position: absolute; bottom: 38%; left: 22%; width: 48px; height: 100px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%); border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: caa-fig-l 6s ease-in-out infinite; box-shadow: -4px 0 12px rgba(0,0,0,0.3); }
.scn-complaint-about-annie .figure-right { position: absolute; bottom: 36%; right: 20%; width: 42px; height: 92px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 50% 45% 40% 45% / 55% 55% 45% 45%; transform-origin: bottom center; animation: caa-fig-r 7s ease-in-out infinite; box-shadow: 4px 0 10px rgba(0,0,0,0.25); }
.scn-complaint-about-annie .lamplight { position: absolute; bottom: 45%; left: 45%; width: 80px; height: 80px; background: radial-gradient(circle, #fff0d0 0%, #ffe8b0 30%, #e0c880 60%, transparent 100%); border-radius: 50%; mix-blend-mode: overlay; opacity: 0.7; animation: caa-lamp 4s ease-in-out infinite alternate; }
.scn-complaint-about-annie .shadow-left { position: absolute; bottom: 38%; left: 18%; width: 50px; height: 30px; background: radial-gradient(ellipse, rgba(0,0,0,0.35) 0%, transparent 100%); transform: skewX(-10deg); animation: caa-shad-l 6s ease-in-out infinite; }
.scn-complaint-about-annie .shadow-right { position: absolute; bottom: 36%; right: 16%; width: 44px; height: 26px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%); transform: skewX(10deg); animation: caa-shad-r 7s ease-in-out infinite; }
.scn-complaint-about-annie .table { position: absolute; bottom: 38%; left: 38%; width: 100px; height: 18px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 6px 6px 2px 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: perspective(300px) rotateX(10deg); animation: caa-table 8s ease-in-out infinite; }
.scn-complaint-about-annie .teacup { position: absolute; bottom: 45%; left: 44%; width: 16px; height: 14px; background: radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, #d0c0a8 60%, #b0a088 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: caa-cup 8s ease-in-out infinite; }
@keyframes caa-fig-l { 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); } }
@keyframes caa-fig-r { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(-2deg); } 60% { transform: translateY(2px) rotate(1deg); } 80% { transform: translateY(-2px) rotate(0deg); } }
@keyframes caa-lamp { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.98); } }
@keyframes caa-shad-l { 0%,100% { transform: skewX(-10deg) scaleY(1); } 50% { transform: skewX(-8deg) scaleY(1.1); } }
@keyframes caa-shad-r { 0%,100% { transform: skewX(10deg) scaleY(1); } 50% { transform: skewX(8deg) scaleY(1.08); } }
@keyframes caa-table { 0%,100% { transform: perspective(300px) rotateX(10deg) translateY(0); } 50% { transform: perspective(300px) rotateX(10deg) translateY(-1px); } }
@keyframes caa-cup { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

.scn-peg-repaid-half-guinea { background: linear-gradient(180deg, #f0dcc0 0%, #dcc8a8 30%, #c8b490 60%, #b4a078 100%), radial-gradient(ellipse at 60% 80%, #ffe8c0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-peg-repaid-half-guinea .bg-cozy { position: absolute; inset: 0 0 35% 0; background: linear-gradient(135deg, #e8d4b8 0%, #d4c0a4 40%, #c0ac90 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.08); }
.scn-peg-repaid-half-guinea .fireplace { position: absolute; bottom: 35%; left: 60%; width: 80px; height: 60px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 8px 8px 4px 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); }
.scn-peg-repaid-half-guinea .fire-glow { position: absolute; bottom: 38%; left: 62%; width: 40px; height: 30px; background: radial-gradient(circle, #ff8a40 0%, #ff6630 30%, #cc4400 60%, transparent 100%); border-radius: 50%; mix-blend-mode: screen; opacity: 0.8; animation: prh-glow 3s ease-in-out infinite alternate; }
.scn-peg-repaid-half-guinea .figure-seated { position: absolute; bottom: 35%; left: 25%; width: 44px; height: 80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 45% 50% 40% 45% / 55% 55% 45% 45%; transform-origin: bottom center; animation: prh-fig 5s ease-in-out infinite; }
.scn-peg-repaid-half-guinea .table-round { position: absolute; bottom: 35%; left: 32%; width: 70px; height: 12px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 50%; box-shadow: 0 3px 6px rgba(0,0,0,0.25); transform: perspective(200px) rotateX(15deg); }
.scn-peg-repaid-half-guinea .coin-pile { position: absolute; bottom: 38%; left: 34%; width: 20px; height: 8px; background: linear-gradient(180deg, #d4b060 0%, #b89040 40%, #a07830 100%); border-radius: 40% 40% 20% 20%; animation: prh-coin 6s ease-in-out infinite; box-shadow: 0 2px 4px rgba(0,0,0,0.15); }
.scn-peg-repaid-half-guinea .coin-gleam { position: absolute; bottom: 38%; left: 34%; width: 20px; height: 8px; background: radial-gradient(circle at 30% 40%, #ffe8a0 0%, transparent 60%); border-radius: 40% 40% 20% 20%; mix-blend-mode: overlay; opacity: 0.6; animation: prh-gleam 3s ease-in-out infinite alternate; }
.scn-peg-repaid-half-guinea .curtain-left { position: absolute; top: 0; left: 0; width: 40px; height: 100%; background: linear-gradient(180deg, #8a3a2a 0%, #6a2a1a 50%, #4a1a0a 100%); border-radius: 0 20px 20px 0; opacity: 0.85; animation: prh-curl 12s ease-in-out infinite; }
.scn-peg-repaid-half-guinea .curtain-right { position: absolute; top: 0; right: 0; width: 40px; height: 100%; background: linear-gradient(180deg, #8a3a2a 0%, #6a2a1a 50%, #4a1a0a 100%); border-radius: 20px 0 0 20px; opacity: 0.85; animation: prh-cur 12s ease-in-out infinite reverse; }
@keyframes prh-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes prh-fig { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } 80% { transform: translateY(-1px) rotate(1deg); } }
@keyframes prh-coin { 0%,100% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-1px) scaleY(1.05); } 50% { transform: translateY(0) scaleY(1); } 75% { transform: translateY(-1px) scaleY(1.02); } }
@keyframes prh-gleam { 0% { opacity: 0.4; transform: translateX(0); } 50% { opacity: 0.8; transform: translateX(2px); } 100% { opacity: 0.5; transform: translateX(-1px); } }
@keyframes prh-curl { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes prh-cur { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }

.scn-dicks-man-frighten { background: linear-gradient(135deg, #e0d4c0 0%, #c8bca8 30%, #b0a490 60%, #a09480 100%), radial-gradient(ellipse at 70% 40%, #f0e8d8 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-dicks-man-frighten .bg-room { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #d4c8b0 0%, #c0b49c 40%, #aca088 100%); }
.scn-dicks-man-frighten .window-frame { position: absolute; top: 15%; right: 10%; width: 60px; height: 80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: inset 0 0 0 4px #7a6a5a; animation: dmf-frame 10s ease-in-out infinite; }
.scn-dicks-man-frighten .window-light { position: absolute; top: 18%; right: 13%; width: 48px; height: 68px; background: linear-gradient(135deg, #e8f0ff 0%, #c0d0e8 50%, #a0b8d0 100%); border-radius: 2px; opacity: 0.6; animation: dmf-light 8s ease-in-out infinite alternate; }
.scn-dicks-man-frighten .figure-dick { position: absolute; bottom: 32%; left: 25%; width: 42px; height: 78px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 50% 45% 40% 45% / 55% 55% 45% 45%; transform-origin: bottom center; animation: dmf-dick 6s ease-in-out infinite; }
.scn-dicks-man-frighten .figure-narrator { position: absolute; bottom: 34%; left: 42%; width: 40px; height: 74px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 50%, #0a0000 100%); border-radius: 45% 50% 40% 40% / 55% 50% 50% 45%; transform-origin: bottom center; animation: dmf-narr 7s ease-in-out infinite; }
.scn-dicks-man-frighten .chair-dick { position: absolute; bottom: 30%; left: 23%; width: 50px; height: 20px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 6px 6px 2px 2px; transform: perspective(200px) rotateX(10deg); animation: dmf-ch1 8s ease-in-out infinite; }
.scn-dicks-man-frighten .chair-narrator { position: absolute; bottom: 32%; left: 40%; width: 48px; height: 18px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%); border-radius: 5px 5px 2px 2px; transform: perspective(200px) rotateX(8deg); animation: dmf-ch2 9s ease-in-out infinite; }
.scn-dicks-man-frighten .clock { position: absolute; top: 12%; left: 15%; width: 28px; height: 28px; background: radial-gradient(circle, #f0e8d0 0%, #c8b8a0 50%, #a09078 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: dmf-clock 60s linear infinite; }
.scn-dicks-man-frighten .dust-motes { position: absolute; top: 20%; left: 30%; width: 12px; height: 12px; background: radial-gradient(circle, rgba(255,255,240,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: dmf-dust 15s ease-in-out infinite; }
.scn-dicks-man-frighten .dust-motes::after { content: ''; position: absolute; top: 30px; left: 40px; width: 8px; height: 8px; background: radial-gradient(circle, rgba(255,255,240,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: dmf-dust2 18s ease-in-out infinite; }
@keyframes dmf-frame { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes dmf-light { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.55; } }
@keyframes dmf-dick { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-1deg); } }
@keyframes dmf-narr { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-2deg); } 65% { transform: translateY(1px) rotate(1deg); } }
@keyframes dmf-ch1 { 0%,100% { transform: perspective(200px) rotateX(10deg) translateY(0); } 50% { transform: perspective(200px) rotateX(10deg) translateY(-1px); } }
@keyframes dmf-ch2 { 0%,100% { transform: perspective(200px) rotateX(8deg) translateY(0); } 50% { transform: perspective(200px) rotateX(8deg) translateY(-1px); } }
@keyframes dmf-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes dmf-dust { 0%,100% { transform: translate(0, 0) scale(1); opacity: 0.3; } 25% { transform: translate(10px, -15px) scale(1.1); opacity: 0.5; } 50% { transform: translate(-5px, -30px) scale(0.9); opacity: 0.4; } 75% { transform: translate(15px, -10px) scale(1.05); opacity: 0.35; } }
@keyframes dmf-dust2 { 0%,100% { transform: translate(0, 0) scale(1); opacity: 0.2; } 30% { transform: translate(-12px, -20px) scale(1.2); opacity: 0.4; } 60% { transform: translate(8px, -40px) scale(0.85); opacity: 0.3; } 90% { transform: translate(-18px, -15px) scale(1.1); opacity: 0.25; } }

.scn-man-hiding-ground { background: linear-gradient(180deg, #c8d4c0 0%, #a8b8a0 30%, #889c80 60%, #6a7c64 100%), radial-gradient(ellipse at 40% 100%, #d0e0c8 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-man-hiding-ground .bg-hiding { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #b0c0a8 0%, #90a088 40%, #708068 100%); }
.scn-man-hiding-ground .ground-plane { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #5a6a4a 0%, #4a5a3a 30%, #3a4a2a 60%, #2a3a1a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-man-hiding-ground .figure-whisper { position: absolute; bottom: 40%; left: 35%; width: 40px; height: 70px; background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 50%, #1a2a0a 100%); border-radius: 45% 50% 40% 45% / 55% 55% 45% 45%; transform-origin: bottom center; animation: mhg-whisper 5s ease-in-out infinite; }
.scn-man-hiding-ground .figure-hidden { position: absolute; bottom: 38%; left: 50%; width: 36px; height: 64px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 50%, #0a1a00 100%); border-radius: 50% 45% 40% 40% / 55% 50% 50% 45%; transform-origin: bottom center; animation: mhg-hidden 6s ease-in-out infinite; opacity: 0.85; }
.scn-man-hiding-ground .shadow-cast { position: absolute; bottom: 38%; left: 32%; width: 60px; height: 16px; background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 100%); animation: mhg-shad 7s ease-in-out infinite; }
.scn-man-hiding-ground .grass-blades { position: absolute; bottom: 50%; left: 0; right: 0; height: 12%; background: repeating-linear-gradient(90deg, transparent 0px, #4a6a3a 2px, transparent 4px, #3a5a2a 6px, transparent 8px); opacity: 0.5; animation: mhg-grass 4s ease-in-out infinite alternate; }
.scn-man-hiding-ground .distant-tree { position: absolute; bottom: 50%; right: 12%; width: 30px; height: 60px; background: linear-gradient(180deg, #2a4a1a 0%, #1a3a0a 50%, #0a2a00 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: mhg-tree 12s ease-in-out infinite; }
@keyframes mhg-whisper { 0%,100% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(3deg); } 40% { transform: translateY(1px) rotate(-2deg); } 60% { transform: translateY(-1px) rotate(2deg); } 80% { transform: translateY(0) rotate(-1deg); } }
@keyframes mhg-hidden { 0%,100% { transform: translateY(0) rotate(0deg) scaleX(1); } 30% { transform: translateY(-1px) rotate(-2deg) scaleX(0.98); } 70% { transform: translateY(1px) rotate(1deg) scaleX(1.02); } }
@keyframes mhg-shad { 0%,100% { transform: scaleX(1); opacity: 0.7; } 50% { transform: scaleX(1.1); opacity: 0.9; } }
@keyframes mhg-grass { 0% { transform: translateY(0); opacity: 0.4; } 50% { transform: translateY(-1px); opacity: 0.55; } 100% { transform: translateY(0); opacity: 0.45; } }
@keyframes mhg-tree { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } }

/* mother-proud-sinful */
.scn-mother-proud-sinful { background: linear-gradient(180deg, #f5e6c8 0%, #d9b38c 60%), radial-gradient(ellipse at 50% 20%, #ffe0b0 0%, transparent 70%); }
.scn-mother-proud-sinful .bg-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(90deg, #d9b38c 0%, #c49a6a 100%); }
.scn-mother-proud-sinful .bg-floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8b6f4e 0%, #6b5237 100%); }
.scn-mother-proud-sinful .window { position:absolute; top:8%; left:15%; width:30%; height:40%; background: linear-gradient(180deg, #aed6f1 0%, #85c1e9 100%); border:4px solid #8b6f4e; border-radius:4%; box-shadow: inset 0 0 20px rgba(255,255,200,.4); animation: mps-window 8s ease-in-out infinite alternate; }
.scn-mother-proud-sinful .light-beam { position:absolute; top:8%; left:15%; width:30%; height:70%; background: linear-gradient(180deg, rgba(255,255,230,.6) 0%, rgba(255,255,230,0) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: mps-beam 4s ease-in-out infinite; }
.scn-mother-proud-sinful .figure-left { position:absolute; bottom:25%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius:40% 40% 30% 30%; transform-origin: bottom center; animation: mps-figure 3s ease-in-out infinite; }
.scn-mother-proud-sinful .figure-right { position:absolute; bottom:25%; left:55%; width:18px; height:48px; background: linear-gradient(180deg, #34495e 0%, #1c2833 100%); border-radius:40% 40% 30% 30%; transform-origin: bottom center; animation: mps-figure 3.5s ease-in-out infinite reverse; }
.scn-mother-proud-sinful .shadow { position:absolute; bottom:15%; left:20%; width:40%; height:8px; background: rgba(0,0,0,.15); border-radius:50%; filter: blur(6px); animation: mps-shadow 6s ease-in-out infinite alternate; }
@keyframes mps-window { 0% { opacity:.9; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.03) } 100% { opacity:.85; transform:scaleY(.98) } }
@keyframes mps-beam { 0% { opacity:.3; transform:translateY(0) } 50% { opacity:.6; transform:translateY(-5px) } 100% { opacity:.4; transform:translateY(3px) } }
@keyframes mps-figure { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(3px) rotate(1deg) } 50% { transform:translateX(0) rotate(2deg) } 75% { transform:translateX(-3px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes mps-shadow { 0% { transform:scaleX(1); opacity:.15 } 50% { transform:scaleX(1.1); opacity:.2 } 100% { transform:scaleX(.9); opacity:.1 } }

/* uriah-hard-law-study */
.scn-uriah-hard-law-study { background: linear-gradient(180deg, #e8d5b7 0%, #d1b894 60%), radial-gradient(ellipse at 50% 10%, #f5e6c8 0%, transparent 80%); }
.scn-uriah-hard-law-study .bg-study { position:absolute; inset:0; background: linear-gradient(135deg, #d1b894 0%, #b89a72 100%); }
.scn-uriah-hard-law-study .bookshelf { position:absolute; top:8%; left:5%; width:22%; height:55%; background: linear-gradient(180deg, #6b5237 0%, #4a3826 100%); border-radius:2%; box-shadow: inset 0 0 10px rgba(0,0,0,.3); animation: uhl-shelf 15s ease-in-out infinite; }
.scn-uriah-hard-law-study .desk { position:absolute; bottom:25%; left:30%; width:45%; height:12%; background: linear-gradient(180deg, #9c7c5e 0%, #7a5f44 100%); border-radius:2%; box-shadow: 0 4px 10px rgba(0,0,0,.2); }
.scn-uriah-hard-law-study .chair { position:absolute; bottom:22%; left:50%; width:20%; height:15%; background: linear-gradient(180deg, #7a5f44 0%, #5a4530 100%); border-radius:40% 40% 10% 10%; transform:translateX(-50%); animation: uhl-chair 12s ease-in-out infinite; }
.scn-uriah-hard-law-study .figure-uriah { position:absolute; bottom:28%; left:52%; width:16px; height:40px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius:40% 40% 30% 30%; transform:translateX(-50%); animation: uhl-figure 6s ease-in-out infinite; }
.scn-uriah-hard-law-study .lamp { position:absolute; top:10%; right:12%; width:12px; height:20px; background: linear-gradient(180deg, #f0c060 0%, #d0a040 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 30px 8px rgba(240,192,96,.5); animation: uhl-lamp 4s ease-in-out infinite alternate; }
.scn-uriah-hard-law-study .book-stack { position:absolute; bottom:32%; left:34%; width:12%; height:6%; background: linear-gradient(180deg, #8b4513 0%, #5a3010 100%); border-radius:1px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: uhl-books 10s ease-in-out infinite; }
@keyframes uhl-shelf { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes uhl-chair { 0% { transform:translateX(-50%) rotate(0) } 50% { transform:translateX(-50%) rotate(1deg) } 100% { transform:translateX(-50%) rotate(0) } }
@keyframes uhl-figure { 0% { transform:translateX(-50%) rotate(0) } 25% { transform:translateX(-50%) translateY(-1px) rotate(2deg) } 50% { transform:translateX(-50%) rotate(-1deg) } 75% { transform:translateX(-50%) translateY(1px) rotate(0) } 100% { transform:translateX(-50%) rotate(0) } }
@keyframes uhl-lamp { 0% { box-shadow:0 0 20px 6px rgba(240,192,96,.4); opacity:.9 } 50% { box-shadow:0 0 40px 12px rgba(240,192,96,.6); opacity:1 } 100% { box-shadow:0 0 25px 8px rgba(240,192,96,.45); opacity:.85 } }
@keyframes uhl-books { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-1px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(1) } }

/* mrs-heep-tea-guest */
.scn-mrs-heep-tea-guest { background: linear-gradient(180deg, #fde8c8 0%, #f0c8a0 60%), radial-gradient(ellipse at 50% 30%, #ffe0b0 0%, transparent 80%); }
.scn-mrs-heep-tea-guest .bg-tea { position:absolute; inset:0; background: linear-gradient(90deg, #f0c8a0 0%, #e8b888 100%); }
.scn-mrs-heep-tea-guest .curtain-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(90deg, #c85a3d 0%, #a0412a 70%); border-radius:0 20% 20% 0; filter: drop-shadow(4px 0 6px rgba(0,0,0,.2)); animation: mht-curtain 12s ease-in-out infinite; }
.scn-mrs-heep-tea-guest .curtain-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(270deg, #c85a3d 0%, #a0412a 70%); border-radius:20% 0 0 20%; filter: drop-shadow(-4px 0 6px rgba(0,0,0,.2)); animation: mht-curtain 12s ease-in-out infinite reverse; }
.scn-mrs-heep-tea-guest .table { position:absolute; bottom:25%; left:25%; width:50%; height:14%; background: linear-gradient(180deg, #9c7c5e 0%, #7a5f44 100%); border-radius:6%; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-mrs-heep-tea-guest .teapot { position:absolute; bottom:30%; left:42%; width:18%; height:25%; background: radial-gradient(ellipse at 50% 40%, #d0a040 0%, #b08030 70%); border-radius:50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: mht-teapot 8s ease-in-out infinite; }
.scn-mrs-heep-tea-guest .cup { position:absolute; bottom:29%; left:55%; width:8%; height:10%; background: linear-gradient(180deg, #f5e6c8 0%, #d9b38c 100%); border-radius:0 0 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: mht-cup 6s ease-in-out infinite; }
.scn-mrs-heep-tea-guest .figure-heep { position:absolute; bottom:22%; left:20%; width:18px; height:45px; background: linear-gradient(180deg, #5a4530 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mht-figure 5s ease-in-out infinite; }
.scn-mrs-heep-tea-guest .figure-copperfield { position:absolute; bottom:22%; right:20%; width:18px; height:48px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mht-figure 5.5s ease-in-out infinite reverse; }
@keyframes mht-curtain { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes mht-teapot { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(2deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes mht-cup { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes mht-figure { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(2px) rotate(-2deg) } 50% { transform:translateX(0) rotate(1deg) } 75% { transform:translateX(-2px) rotate(0) } 100% { transform:translateX(0) rotate(0) } }

/* micawber-reappearance */
.scn-micawber-reappearance { background: linear-gradient(180deg, #e8d5b7 0%, #d1b894 60%), radial-gradient(ellipse at 50% 10%, #f5e6c8 0%, transparent 80%); }
.scn-micawber-reappearance .bg-hall { position:absolute; inset:0; background: linear-gradient(90deg, #d1b894 0%, #b89a72 100%); }
.scn-micawber-reappearance .door-frame { position:absolute; top:5%; left:35%; width:30%; height:90%; border:6px solid #6b5237; border-radius:4%; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,.1); animation: mcb-door 14s ease-in-out infinite; }
.scn-micawber-reappearance .door-open { position:absolute; top:8%; left:36%; width:27%; height:84%; background: linear-gradient(180deg, #a08060 0%, #7a5f44 100%); border-radius:0 4% 4% 0; transform-origin: left center; animation: mcb-dooropen 8s ease-in-out infinite; }
.scn-micawber-reappearance .figure-micawber { position:absolute; bottom:20%; left:42%; width:20px; height:55px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mcb-figure 6s ease-in-out infinite; }
.scn-micawber-reappearance .light-spill { position:absolute; top:8%; left:36%; width:27%; height:84%; background: linear-gradient(180deg, rgba(255,255,230,.3) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: mcb-light 5s ease-in-out infinite alternate; }
.scn-micawber-reappearance .shadow-foot { position:absolute; bottom:12%; left:40%; width:20%; height:6px; background: rgba(0,0,0,.15); border-radius:50%; filter: blur(4px); animation: mcb-shadow 8s ease-in-out infinite alternate; }
@keyframes mcb-door { 0% { transform:rotate(0) } 50% { transform:rotate(0.5deg) } 100% { transform:rotate(0) } }
@keyframes mcb-dooropen { 0% { transform:rotateY(0deg) } 50% { transform:rotateY(5deg) } 100% { transform:rotateY(0deg) } }
@keyframes mcb-figure { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(2px) rotate(2deg) } 50% { transform:translateX(0) rotate(-1deg) } 75% { transform:translateX(-2px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes mcb-light { 0% { opacity:.4; transform:translateY(0) } 50% { opacity:.7; transform:translateY(-4px) } 100% { opacity:.5; transform:translateY(2px) } }
@keyframes mcb-shadow { 0% { transform:scaleX(1); opacity:.1 } 50% { transform:scaleX(1.1); opacity:.2 } 100% { transform:scaleX(.95); opacity:.12 } }

.scn-aunt-praises-dick { background: linear-gradient(180deg, #f5e6c8 0%, #d4b886 40%, #a67c52 100%), radial-gradient(ellipse at 50% 20%, #ffe0b0 0%, transparent 70%); }
.scn-aunt-praises-dick .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #d9c29e 0%, #c4a87a 100%); }
.scn-aunt-praises-dick .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #6b4c2c 0%, #8b6a44 40%, #a8845a 100%); }
.scn-aunt-praises-dick .window { position:absolute; top:12%; left:10%; width:22%; height:40%; background: linear-gradient(180deg, #c0d0e0 0%, #a0b8d0 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); animation: apd-window 8s ease-in-out infinite alternate; }
.scn-aunt-praises-dick .fireplace { position:absolute; bottom:28%; left:55%; width:16%; height:35%; background: linear-gradient(180deg, #8b5e3c 0%, #5a3a24 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.4); animation: apd-fire 4s ease-in-out infinite alternate; }
.scn-aunt-praises-dick .aunt-figure { position:absolute; bottom:25%; left:32%; width:8%; height:28%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: apd-aunt 6s ease-in-out infinite; }
.scn-aunt-praises-dick .dick-figure { position:absolute; bottom:25%; left:52%; width:7%; height:25%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: apd-dick 7s ease-in-out infinite; }
.scn-aunt-praises-dick .book { position:absolute; bottom:30%; left:44%; width:4%; height:2.5%; background: #8b4513; border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.5); animation: apd-book 10s linear infinite; }
.scn-aunt-praises-dick .cat { position:absolute; bottom:20%; left:65%; width:5%; height:3%; background: #d4a574; border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: apd-cat 12s ease-in-out infinite; }
@keyframes apd-window { 0% { opacity:0.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:0.8; transform:scaleY(0.98); } }
@keyframes apd-fire { 0% { box-shadow:0 6px 24px rgba(255,160,60,0.5); transform:translateY(0); } 50% { box-shadow:0 10px 40px rgba(255,180,80,0.7); transform:translateY(-1px); } 100% { box-shadow:0 6px 24px rgba(255,160,60,0.5); transform:translateY(0); } }
@keyframes apd-aunt { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2%) rotate(2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-1%) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes apd-dick { 0% { transform:translateX(0) translateY(0); } 33% { transform:translateX(1%) translateY(-1%); } 66% { transform:translateX(-1%) translateY(0); } 100% { transform:translateX(0) translateY(0); } }
@keyframes apd-book { 0% { opacity:0.6; transform:rotate(-2deg); } 50% { opacity:1; transform:rotate(2deg); } 100% { opacity:0.6; transform:rotate(-2deg); } }
@keyframes apd-cat { 0% { transform:translateX(0) scale(1); } 50% { transform:translateX(3%) scale(1.05); } 100% { transform:translateX(0) scale(1); } }

.scn-wedding-day-dreamlike { background: linear-gradient(180deg, #f0ece0 0%, #d4cec0 40%, #b8b0a0 100%), radial-gradient(ellipse at 50% 30%, #fff8f0 0%, transparent 70%); }
.scn-wedding-day-dreamlike .sky-wed { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c8d8e8 0%, #e0e8f0 100%); animation: wdd-sky 15s ease-in-out infinite alternate; }
.scn-wedding-day-dreamlike .arch { position:absolute; top:10%; left:20%; width:60%; height:55%; background: radial-gradient(ellipse at 50% 100%, #f0ecd8 0%, #d0c8b0 50%, transparent 70%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: 0 0 40px rgba(255,255,240,0.4); animation: wdd-arch 12s ease-in-out infinite; }
.scn-wedding-day-dreamlike .pillar-left { position:absolute; bottom:30%; left:25%; width:3%; height:40%; background: linear-gradient(180deg, #e0d8c8 0%, #b8b0a0 100%); border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.1); animation: wdd-pillar 10s ease-in-out infinite; }
.scn-wedding-day-dreamlike .pillar-right { position:absolute; bottom:30%; right:25%; width:3%; height:40%; background: linear-gradient(180deg, #e0d8c8 0%, #b8b0a0 100%); border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,0.1); animation: wdd-pillar 10s ease-in-out infinite reverse; }
.scn-wedding-day-dreamlike .couple { position:absolute; bottom:22%; left:45%; width:10%; height:25%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%); animation: wdd-couple 8s ease-in-out infinite; }
.scn-wedding-day-dreamlike .flowers { position:absolute; bottom:30%; left:40%; width:12%; height:8%; background: radial-gradient(circle, #f0d0c0 0%, #d0a080 70%); border-radius: 50%; filter: blur(2px); animation: wdd-flowers 6s ease-in-out infinite alternate; }
.scn-wedding-day-dreamlike .veil { position:absolute; top:18%; left:46%; width:8%; height:20%; background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.2) 100%); border-radius: 20% 20% 0 0; transform-origin: top center; animation: wdd-veil 9s ease-in-out infinite; }
@keyframes wdd-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes wdd-arch { 0% { transform:scaleY(1); opacity:0.9; } 50% { transform:scaleY(1.02); opacity:1; } 100% { transform:scaleY(0.98); opacity:0.9; } }
@keyframes wdd-pillar { 0% { transform:translateY(0); opacity:0.8; } 50% { transform:translateY(-2%); opacity:1; } 100% { transform:translateY(0); opacity:0.8; } }
@keyframes wdd-couple { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-50%) rotate(1deg); } 75% { transform:translateX(-50%) rotate(-1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes wdd-flowers { 0% { transform:scale(1); opacity:0.7; } 50% { transform:scale(1.05); opacity:1; } 100% { transform:scale(0.95); opacity:0.7; } }
@keyframes wdd-veil { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-2deg); } }

.scn-dora-shows-bonnet { background: linear-gradient(180deg, #f8e8d0 0%, #e0c8a8 40%, #c0a080 100%), radial-gradient(ellipse at 40% 40%, #ffe8c0 0%, transparent 70%); }
.scn-dora-shows-bonnet .wall-room { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d8c4a0 0%, #c8b490 100%); }
.scn-dora-shows-bonnet .mirror { position:absolute; top:15%; right:10%; width:15%; height:35%; background: linear-gradient(180deg, #b8c8d8 0%, #a0b0c0 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(200,220,240,0.5); animation: dsb-mirror 10s ease-in-out infinite alternate; }
.scn-dora-shows-bonnet .dora-figure { position:absolute; bottom:20%; left:35%; width:12%; height:30%; background: linear-gradient(180deg, #b08060 0%, #906040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dsb-dora 5s ease-in-out infinite; }
.scn-dora-shows-bonnet .bonnet { position:absolute; top:28%; left:38%; width:8%; height:6%; background: radial-gradient(circle, #e0c0a0 0%, #c0a080 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: dsb-bonnet 4s ease-in-out infinite alternate; }
.scn-dora-shows-bonnet .david-figure { position:absolute; bottom:20%; left:55%; width:10%; height:28%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dsb-david 6s ease-in-out infinite; }
.scn-dora-shows-bonnet .chair { position:absolute; bottom:18%; left:52%; width:12%; height:14%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: dsb-chair 8s ease-in-out infinite; }
.scn-dora-shows-bonnet .lamp { position:absolute; top:10%; left:25%; width:6%; height:10%; background: radial-gradient(circle, #f0d080 0%, #d0b060 70%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 6px rgba(240,208,128,0.5); animation: dsb-lamp 3s ease-in-out infinite alternate; }
@keyframes dsb-mirror { 0% { opacity:0.6; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.01); } 100% { opacity:0.7; transform:scaleY(0.99); } }
@keyframes dsb-dora { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2%) rotate(2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-1%) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes dsb-bonnet { 0% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-2%) rotate(3deg); } 100% { transform:translateY(0) rotate(-3deg); } }
@keyframes dsb-david { 0% { transform:translateX(0) translateY(0); } 33% { transform:translateX(1%) translateY(-1%); } 66% { transform:translateX(-1%) translateY(0); } 100% { transform:translateX(0) translateY(0); } }
@keyframes dsb-chair { 0% { transform:translateY(0); } 50% { transform:translateY(-1%); } 100% { transform:translateY(0); } }
@keyframes dsb-lamp { 0% { box-shadow:0 0 20px 4px rgba(240,208,128,0.4); opacity:0.8; } 50% { box-shadow:0 0 40px 10px rgba(240,208,128,0.7); opacity:1; } 100% { box-shadow:0 0 20px 4px rgba(240,208,128,0.4); opacity:0.8; } }

.scn-housekeeping-troubles { background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 40%, #a88868 100%), radial-gradient(ellipse at 50% 60%, #ffe8c0 0%, transparent 70%); }
.scn-housekeeping-troubles .table { position:absolute; bottom:15%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #b89878 0%, #a08060 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.4); animation: ht-table 6s ease-in-out infinite alternate; }
.scn-housekeeping-troubles .clock { position:absolute; top:15%; left:45%; width:10%; height:18%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 4px rgba(0,0,0,0.2); animation: ht-clock 3s ease-in-out infinite; }
.scn-housekeeping-troubles .plate { position:absolute; bottom:25%; left:25%; width:8%; height:2%; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: ht-plate 8s linear infinite; }
.scn-housekeeping-troubles .cup { position:absolute; bottom:24%; left:50%; width:4%; height:3%; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: ht-cup 10s ease-in-out infinite; }
.scn-housekeeping-troubles .david-hand { position:absolute; bottom:20%; left:35%; width:6%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: ht-hand-david 4s ease-in-out infinite; }
.scn-housekeeping-troubles .dora-hand { position:absolute; bottom:20%; right:35%; width:5%; height:10%; background: linear-gradient(180deg, #b08060 0%, #906040 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: ht-hand-dora 4s ease-in-out infinite reverse; }
.scn-housekeeping-troubles .shadow-sharp { position:absolute; bottom:20%; left:20%; width:60%; height:10%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 30%, rgba(0,0,0,0.3) 70%, transparent 100%); filter: blur(2px); animation: ht-shadow 2s ease-in-out infinite alternate; }
@keyframes ht-table { 0% { transform:translateY(0); } 50% { transform:translateY(-1%); } 100% { transform:translateY(0); } }
@keyframes ht-clock { 0% { transform:rotate(0deg); } 25% { transform:rotate(3deg); } 50% { transform:rotate(0deg); } 75% { transform:rotate(-3deg); } 100% { transform:rotate(0deg); } }
@keyframes ht-plate { 0% { transform:translateX(0) rotate(0deg); opacity:0.8; } 50% { transform:translateX(2%) rotate(5deg); opacity:1; } 100% { transform:translateX(0) rotate(0deg); opacity:0.8; } }
@keyframes ht-cup { 0% { transform:translateY(0); } 50% { transform:translateY(-2%); } 100% { transform:translateY(0); } }
@keyframes ht-hand-david { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3%) rotate(5deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-2%) rotate(-3deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ht-hand-dora { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-3%) rotate(-5deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(2%) rotate(3deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes ht-shadow { 0% { opacity:0.3; transform:scaleX(1); } 50% { opacity:0.6; transform:scaleX(1.02); } 100% { opacity:0.3; transform:scaleX(1); } }

.scn-uriah-accuses-david {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2030 40%, #3a2a2a 100%),
    radial-gradient(ellipse at 30% 70%, #4a3a3a 0%, transparent 70%);
}
.scn-uriah-accuses-david .room-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2030 0%, #1a1a2e 80%);
  animation: uad1-room 12s ease-in-out infinite alternate;
}
.scn-uriah-accuses-david .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.6);
}
.scn-uriah-accuses-david .window {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 40%;
  background: linear-gradient(180deg, rgba(200,180,160,.3) 0%, rgba(200,180,160,.05) 100%);
  border: 2px solid #3a2a2a;
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 20px rgba(200,180,160,.2);
  animation: uad1-window 8s ease-in-out infinite;
}
.scn-uriah-accuses-david .lamp {
  position: absolute; bottom: 40%; left: 60%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #b08040 0%, #604020 100%);
  border-radius: 40% 40% 20% 20%;
  transform: translateX(-50%);
}
.scn-uriah-accuses-david .lamp-glow {
  position: absolute; bottom: 38%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,160,80,.4) 0%, transparent 100%);
  border-radius: 50%;
  transform: translate(-50%, 10%);
  animation: uad1-glow 3s ease-in-out infinite alternate;
}
.scn-uriah-accuses-david .figure-uriah {
  position: absolute; bottom: 10%; left: 40%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uad1-uriah 4s ease-in-out infinite;
}
.scn-uriah-accuses-david .figure-david {
  position: absolute; bottom: 10%; left: 55%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uad1-david 5s ease-in-out infinite;
}
.scn-uriah-accuses-david .shadow-uriah {
  position: absolute; bottom: 0; left: 38%; width: 30px; height: 10px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  animation: uad1-shadow 4s ease-in-out infinite;
}
.scn-uriah-accuses-david .shadow-david {
  position: absolute; bottom: 0; left: 53%; width: 34px; height: 12px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  animation: uad1-shadow-d 5s ease-in-out infinite;
}
@keyframes uad1-room { 0% { opacity:.8 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes uad1-window { 0%,100% { opacity:.6 } 50% { opacity:1 } }
@keyframes uad1-glow { 0% { opacity:.5; transform: translate(-50%, 10%) scale(.8) } 50% { opacity:.9; transform: translate(-50%, 8%) scale(1.1) } 100% { opacity:.6; transform: translate(-50%, 10%) scale(.9) } }
@keyframes uad1-uriah { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes uad1-david { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-1px) rotate(1deg) } 50% { transform: translateX(1px) rotate(-1deg) } 75% { transform: translateX(-1px) rotate(0) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes uad1-shadow { 0%,100% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.2); opacity:.8 } }
@keyframes uad1-shadow-d { 0%,100% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.1); opacity:.7 } }

.scn-doctor-defends-annie {
  background:
    linear-gradient(180deg, #2a2018 0%, #3a2a1a 40%, #5a3a2a 100%),
    radial-gradient(ellipse at 70% 60%, #6a4a2a 0%, transparent 70%);
}
.scn-doctor-defends-annie .bg-warm {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a2018 100%);
  animation: dda2-bg 10s ease-in-out infinite alternate;
}
.scn-doctor-defends-annie .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-doctor-defends-annie .book {
  position: absolute; bottom: 30%; left: 20%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #c8a060 0%, #806030 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: dda2-book 8s ease-in-out infinite;
}
.scn-doctor-defends-annie .candle {
  position: absolute; bottom: 32%; left: 65%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c08840 0%, #806020 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-doctor-defends-annie .candle-glow {
  position: absolute; bottom: 40%; left: 65%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,160,80,.5) 0%, transparent 100%);
  border-radius: 50%;
  transform: translate(-50%, -10%);
  animation: dda2-glow 2s ease-in-out infinite alternate;
}
.scn-doctor-defends-annie .figure-doctor {
  position: absolute; bottom: 8%; left: 35%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dda2-doc 6s ease-in-out infinite;
}
.scn-doctor-defends-annie .figure-annie {
  position: absolute; bottom: 8%; left: 55%; width: 26px; height: 42px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dda2-annie 5s ease-in-out infinite;
}
.scn-doctor-defends-annie .chair {
  position: absolute; bottom: 20%; left: 70%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: dda2-chair 7s ease-in-out infinite;
}
@keyframes dda2-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes dda2-book { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes dda2-glow { 0% { opacity:.6; transform: translate(-50%, -10%) scale(.9) } 50% { opacity:1; transform: translate(-50%, -12%) scale(1.1) } 100% { opacity:.7; transform: translate(-50%, -10%) scale(1) } }
@keyframes dda2-doc { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(1px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-1px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes dda2-annie { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-1px) rotate(1deg) } 50% { transform: translateX(1px) rotate(-1deg) } 75% { transform: translateX(-1px) rotate(0) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes dda2-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

.scn-david-explodes-at-uriah {
  background:
    linear-gradient(180deg, #1a1018 0%, #2a1818 40%, #3a2020 100%),
    radial-gradient(ellipse at 50% 30%, #4a2020 0%, transparent 70%);
}
.scn-david-explodes-at-uriah .room-dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1818 0%, #1a1018 100%);
  animation: deu3-room 6s ease-in-out infinite alternate;
}
.scn-david-explodes-at-uriah .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a2020 0%, #2a1010 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
}
.scn-david-explodes-at-uriah .lamp-red {
  position: absolute; bottom: 25%; left: 50%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #a04040 0%, #602020 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 0 10px #802020;
}
.scn-david-explodes-at-uriah .lamp-red-glow {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(160,60,60,.4) 0%, transparent 100%);
  border-radius: 50%;
  transform: translate(-50%, -20%);
  animation: deu3-glow 1s ease-in-out infinite alternate;
}
.scn-david-explodes-at-uriah .figure-david-enrage {
  position: absolute; bottom: 5%; left: 30%; width: 32px; height: 50px;
  background: linear-gradient(180deg, #3a2020 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: deu3-david 0.5s ease-in-out infinite;
}
.scn-david-explodes-at-uriah .figure-uriah-cower {
  position: absolute; bottom: 5%; left: 55%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: deu3-uriah 0.7s ease-in-out infinite;
}
.scn-david-explodes-at-uriah .dust {
  position: absolute; top: 30%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,180,160,.1) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: deu3-dust 3s ease-in-out infinite;
}
.scn-david-explodes-at-uriah .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 50%;
  border: 2px solid #2a1818;
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: deu3-wall 4s ease-in-out infinite;
}
.scn-david-explodes-at-uriah .shadow-conflict {
  position: absolute; bottom: 0; left: 30%; width: 80px; height: 20px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  animation: deu3-shadow 0.5s ease-in-out infinite alternate;
}
@keyframes deu3-room { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes deu3-glow { 0% { opacity:.4; transform: translate(-50%, -20%) scale(.8) } 50% { opacity:.9; transform: translate(-50%, -22%) scale(1.2) } 100% { opacity:.5; transform: translate(-50%, -20%) scale(.9) } }
@keyframes deu3-david { 0% { transform: translateX(0) rotate(-3deg) scaleY(1) } 25% { transform: translateX(2px) rotate(2deg) scaleY(1.02) } 50% { transform: translateX(-2px) rotate(-2deg) scaleY(1) } 75% { transform: translateX(1px) rotate(1deg) scaleY(0.98) } 100% { transform: translateX(0) rotate(-3deg) scaleY(1) } }
@keyframes deu3-uriah { 0% { transform: translateX(0) rotate(2deg) scale(.95) } 25% { transform: translateX(-1px) rotate(-1deg) scale(.97) } 50% { transform: translateX(0) rotate(1deg) scale(.95) } 75% { transform: translateX(1px) rotate(-2deg) scale(.93) } 100% { transform: translateX(0) rotate(2deg) scale(.95) } }
@keyframes deu3-dust { 0% { transform: translate(0,0) scale(1); opacity:.3 } 50% { transform: translate(10px,-5px) scale(1.5); opacity:.1 } 100% { transform: translate(-10px,5px) scale(1); opacity:.3 } }
@keyframes deu3-wall { 0%,100% { opacity:1 } 50% { opacity:.8 } }
@keyframes deu3-shadow { 0% { transform: scaleX(1); opacity:.5 } 100% { transform: scaleX(1.3); opacity:.8 } }

.scn-uriah-accuses-david-of-opposition {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 40%, #3a2a3e 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a3e 0%, transparent 70%);
}
.scn-uriah-accuses-david-of-opposition .bg-deep {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a1a2e 100%);
  animation: uado4-bg 14s ease-in-out infinite alternate;
}
.scn-uriah-accuses-david-of-opposition .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
}
.scn-uriah-accuses-david-of-opposition .window-left {
  position: absolute; top: 20%; left: 10%; width: 20%; height: 35%;
  background: linear-gradient(180deg, rgba(180,160,200,.2) 0%, rgba(180,160,200,.05) 100%);
  border: 2px solid #2a2a3e;
  border-radius: 8% 8% 12% 12%;
  box-shadow: inset 0 0 15px rgba(180,160,200,.15);
  animation: uado4-window 10s ease-in-out infinite;
}
.scn-uriah-accuses-david-of-opposition .candle-desk {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 22px;
  background: linear-gradient(180deg, #b08850 0%, #705030 100%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
}
.scn-uriah-accuses-david-of-opposition .candle-glow-desk {
  position: absolute; bottom: 35%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(200,160,80,.35) 0%, transparent 100%);
  border-radius: 50%;
  transform: translate(-50%, -20%);
  animation: uado4-glow 3s ease-in-out infinite alternate;
}
.scn-uriah-accuses-david-of-opposition .figure-uriah-point {
  position: absolute; bottom: 8%; 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: uado4-uriah 4s ease-in-out infinite;
}
.scn-uriah-accuses-david-of-opposition .figure-david-back {
  position: absolute; bottom: 8%; left: 55%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: uado4-david 5s ease-in-out infinite;
}
.scn-uriah-accuses-david-of-opposition .shadow-point {
  position: absolute; bottom: 0; left: 35%; width: 30px; height: 10px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  animation: uado4-shadow 4s ease-in-out infinite;
}
@keyframes uado4-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes uado4-window { 0%,100% { opacity:.4 } 50% { opacity:.8 } }
@keyframes uado4-glow { 0% { opacity:.4; transform: translate(-50%, -20%) scale(.8) } 50% { opacity:.7; transform: translate(-50%, -18%) scale(1.1) } 100% { opacity:.5; transform: translate(-50%, -20%) scale(.9) } }
@keyframes uado4-uriah { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(3deg) scaleX(1.02) } 50% { transform: translateX(0) rotate(0) scaleX(1) } 75% { transform: translateX(-2px) rotate(-2deg) scaleX(.98) } 100% { transform: translateX(0) rotate(0) } }
@keyframes uado4-david { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(-1px) rotate(1deg) } 50% { transform: translateX(1px) rotate(-1deg) } 75% { transform: translateX(-1px) rotate(0) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes uado4-shadow { 0%,100% { transform: scaleX(1); opacity:.4 } 50% { transform: scaleX(1.3); opacity:.7 } }

.scn-lazy-horse-carrier { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 100%), radial-gradient(circle at 20% 10%, #ffd700 0%, transparent 60%); }
.scn-lazy-horse-carrier .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, rgba(135,206,235,0.8) 0%, transparent 100%); animation: lhc-sky 12s ease-in-out infinite alternate; }
.scn-lazy-horse-carrier .sun { position: absolute; top: 8%; left: 18%; width: 40px; height: 40px; background: radial-gradient(circle, #fff7b0 0%, #ffd700 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(255,215,0,0.6); animation: lhc-sun 6s ease-in-out infinite alternate; }
.scn-lazy-horse-carrier .road { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #c2a67a 0%, #8b6f47 100%); border-radius: 0 0 20% 20%; }
.scn-lazy-horse-carrier .horse-body { position: absolute; bottom: 24%; left: 30%; width: 80px; height: 50px; background: radial-gradient(ellipse at 50% 60%, #5c4033 0%, #3e2a1e 100%); border-radius: 40% 60% 40% 40%; transform-origin: 30% 100%; animation: lhc-horsebody 4s ease-in-out infinite; }
.scn-lazy-horse-carrier .horse-head { position: absolute; bottom: 40%; left: 22%; width: 30px; height: 40px; background: radial-gradient(ellipse at 50% 70%, #5c4033 0%, #3e2a1e 100%); border-radius: 50% 50% 40% 40%; transform-origin: 80% 100%; animation: lhc-horsehead 4s ease-in-out infinite; }
.scn-lazy-horse-carrier .carrier { position: absolute; bottom: 28%; left: 34%; width: 30px; height: 45px; background: linear-gradient(180deg, #6b4423 0%, #4a2f1b 100%); border-radius: 30% 30% 20% 20%; transform-origin: 50% 100%; animation: lhc-carrier 5s ease-in-out infinite; }
.scn-lazy-horse-carrier .packages { position: absolute; bottom: 26%; left: 40%; width: 20px; height: 15px; background: #8b5e3c; border-radius: 10%; box-shadow: 5px 3px 0 #7a4e2e, -3px -2px 0 #9d704a; animation: lhc-packages 5s ease-in-out infinite; }
@keyframes lhc-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lhc-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 8px rgba(255,215,0,0.5); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 14px rgba(255,215,0,0.8); } 100% { transform: scale(0.98); box-shadow: 0 0 35px 10px rgba(255,215,0,0.6); } }
@keyframes lhc-horsebody { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lhc-horsehead { 0% { transform: rotate(0deg) translateY(0); } 33% { transform: rotate(-5deg) translateY(2px); } 66% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes lhc-carrier { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lhc-packages { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(1px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-peg-boat-welcome { background: linear-gradient(180deg, #d4b896 0%, #b89a7a 100%), radial-gradient(circle at 70% 30%, #f5deb3 0%, transparent 60%); }
.scn-peg-boat-welcome .hull { position: absolute; bottom: 0; left: 10%; right: 10%; height: 60%; background: linear-gradient(180deg, #7a5c3a 0%, #4a3520 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-peg-boat-welcome .window { position: absolute; top: 25%; left: 50%; width: 60px; height: 50px; transform: translateX(-50%); background: radial-gradient(circle, #87CEEB 0%, #4682b4 70%); border: 4px solid #5c3a1e; border-radius: 50%; animation: pbw-window 8s ease-in-out infinite alternate; }
.scn-peg-boat-welcome .pegfigure { position: absolute; bottom: 25%; left: 40%; width: 30px; height: 60px; background: linear-gradient(180deg, #5c3a1e 0%, #3e2712 100%); border-radius: 40% 40% 30% 30%; transform-origin: 50% 100%; animation: pbw-peg 5s ease-in-out infinite; }
.scn-peg-boat-welcome .childfigure { position: absolute; bottom: 25%; left: 55%; width: 22px; height: 45px; background: linear-gradient(180deg, #8b6f47 0%, #5c3a1e 100%); border-radius: 50% 50% 30% 30%; transform-origin: 50% 100%; animation: pbw-child 4s ease-in-out infinite; }
.scn-peg-boat-welcome .table { position: absolute; bottom: 15%; left: 45%; width: 40px; height: 10px; background: #6b4423; border-radius: 10%; transform-origin: 50% 100%; animation: pbw-table 6s ease-in-out infinite; }
.scn-peg-boat-welcome .lantern { position: absolute; top: 35%; left: 30%; width: 12px; height: 20px; background: #ffd700; border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,215,0,0.6); animation: pbw-lantern 3s ease-in-out infinite alternate; }
.scn-peg-boat-welcome .rope { position: absolute; top: 20%; left: 70%; width: 4px; height: 80px; background: #8b7355; border-radius: 10%; transform-origin: 50% 0; animation: pbw-rope 7s ease-in-out infinite; }
@keyframes pbw-window { 0% { opacity: 0.8; } 50% { opacity: 1; box-shadow: 0 0 10px rgba(70,130,180,0.3); } 100% { opacity: 0.9; } }
@keyframes pbw-peg { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pbw-child { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes pbw-table { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.02) rotate(2deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes pbw-lantern { 0% { transform: scale(0.95); box-shadow: 0 0 15px 4px rgba(255,215,0,0.5); } 50% { transform: scale(1.1); box-shadow: 0 0 30px 10px rgba(255,215,0,0.8); } 100% { transform: scale(0.98); box-shadow: 0 0 18px 5px rgba(255,215,0,0.6); } }
@keyframes pbw-rope { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-ark-and-names { background: linear-gradient(180deg, #d4a879 0%, #b88a5a 100%), radial-gradient(circle at 30% 20%, #f5deb3 0%, transparent 70%); }
.scn-ark-and-names .beam { position: absolute; top: 5%; left: 10%; right: 10%; height: 15px; background: linear-gradient(90deg, #6b4423 0%, #8b5e3c 50%, #6b4423 100%); border-radius: 10px; transform-origin: 50% 0; animation: aan-beam 10s ease-in-out infinite alternate; }
.scn-ark-and-names .hamfigure { position: absolute; bottom: 25%; left: 30%; width: 30px; height: 55px; background: linear-gradient(180deg, #7a5c3a 0%, #4a3520 100%); border-radius: 40% 40% 30% 30%; transform-origin: 50% 100%; animation: aan-ham 3s ease-in-out infinite; }
.scn-ark-and-names .pegfigure { position: absolute; bottom: 25%; left: 55%; width: 30px; height: 60px; background: linear-gradient(180deg, #5c3a1e 0%, #3e2712 100%); border-radius: 40% 40% 30% 30%; transform-origin: 50% 100%; animation: aan-peg 4s ease-in-out infinite; }
.scn-ark-and-names .namesign { position: absolute; top: 20%; left: 45%; width: 40px; height: 20px; background: #c0a070; border: 2px solid #5c3a1e; border-radius: 20%; transform-origin: 50% 0; animation: aan-sign 5s ease-in-out infinite; }
.scn-ark-and-names .plankfloor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: repeating-linear-gradient(90deg, #7a5c3a 0px, #7a5c3a 30px, #8b6f47 30px, #8b6f47 32px); border-radius: 0; animation: aan-floor 8s linear infinite; }
.scn-ark-and-names .window { position: absolute; top: 15%; left: 20%; width: 50px; height: 40px; background: radial-gradient(circle, #87CEEB 0%, #4682b4 70%); border: 3px solid #5c3a1e; border-radius: 30%; animation: aan-window 6s ease-in-out infinite alternate; }
.scn-ark-and-names .bucket { position: absolute; bottom: 18%; left: 70%; width: 24px; height: 20px; background: #8b7355; border-radius: 0 0 30% 30%; transform-origin: 50% 100%; animation: aan-bucket 7s ease-in-out infinite; }
@keyframes aan-beam { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes aan-ham { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-4px) rotate(5deg); } 50% { transform: translateY(2px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(4deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes aan-peg { 0% { transform: translateY(0) rotate(2deg); } 33% { transform: translateY(-3px) rotate(-3deg); } 66% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes aan-sign { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.1); } 100% { transform: rotate(-10deg) scaleY(1); } }
@keyframes aan-floor { 0% { background-position: 0 0; } 100% { background-position: 60px 0; } }
@keyframes aan-window { 0% { opacity: 0.7; box-shadow: none; } 50% { opacity: 1; box-shadow: 0 0 10px rgba(70,130,180,0.4); } 100% { opacity: 0.8; box-shadow: none; } }
@keyframes aan-bucket { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(0); } }

.scn-emily-daughter-question { background: linear-gradient(180deg, #e8d5b8 0%, #c8b090 100%), radial-gradient(circle at 60% 20%, #f5e3c9 0%, transparent 50%); }
.scn-emily-daughter-question .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 10px 20px rgba(0,0,0,0.1); }
.scn-emily-daughter-question .window { position: absolute; top: 10%; left: 50%; width: 60px; height: 50px; transform: translateX(-50%); background: radial-gradient(circle, #a0c8e0 0%, #6a9ab8 70%); border: 4px solid #8b7355; border-radius: 20%; animation: edq-window 10s ease-in-out infinite alternate; }
.scn-emily-daughter-question .emilyfigure { position: absolute; bottom: 28%; left: 40%; width: 20px; height: 40px; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 50% 50% 30% 30%; transform-origin: 50% 100%; animation: edq-emily 6s ease-in-out infinite; }
.scn-emily-daughter-question .pegfigure { position: absolute; bottom: 25%; left: 55%; width: 30px; height: 55px; background: linear-gradient(180deg, #6b4423 0%, #4a2f1b 100%); border-radius: 40% 40% 30% 30%; transform-origin: 50% 100%; animation: edq-peg 7s ease-in-out infinite; }
.scn-emily-daughter-question .mantlepiece { position: absolute; bottom: 30%; left: 20%; right: 20%; height: 8px; background: #7a5c3a; border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); }
.scn-emily-daughter-question .frame { position: absolute; bottom: 35%; left: 45%; width: 30px; height: 40px; background: #5c3a1e; border: 2px solid #c0a070; border-radius: 10%; transform-origin: 50% 100%; animation: edq-frame 8s ease-in-out infinite; }
@keyframes edq-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes edq-emily { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes edq-peg { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(2deg); } 66% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes edq-frame { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.02); } 100% { transform: rotate(-2deg) scaleX(1); } }

/* Scene: doctor-comforts-annie - warm dim interior */
.scn-doctor-comforts-annie {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #5a3a2a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #8a5a3a 0%, transparent 70%);
}
.scn-doctor-comforts-annie .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  animation: dca-wall 20s ease-in-out infinite alternate;
}
.scn-doctor-comforts-annie .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-doctor-comforts-annie .fireplace {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-doctor-comforts-annie .fire-glow {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ff8a30 0%, #ff6030 40%, #c04020 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,96,48,0.5), 0 0 120px 40px rgba(255,96,48,0.2);
  animation: dca-fire 2s ease-in-out infinite alternate;
}
.scn-doctor-comforts-annie .armchair {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: dca-chair 8s ease-in-out infinite;
}
.scn-doctor-comforts-annie .figure-annie {
  position: absolute; bottom: 16%; left: 34%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dca-annie 4s ease-in-out infinite;
}
.scn-doctor-comforts-annie .figure-doctor {
  position: absolute; bottom: 16%; left: 42%; width: 30px; height: 46px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dca-doctor 4s ease-in-out infinite alternate;
}
.scn-doctor-comforts-annie .candle {
  position: absolute; bottom: 38%; left: 65%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #f0d080 0%, #c09050 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px #f0d080;
  animation: dca-candle 3s ease-in-out infinite alternate;
}
.scn-doctor-comforts-annie .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: dca-shadow 12s ease-in-out infinite;
}
@keyframes dca-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dca-fire { 0% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity: 0.9; } 50% { transform: translateX(-50%) scale(1.05) rotate(2deg); opacity: 1; } 100% { transform: translateX(-50%) scale(0.98) rotate(-1deg); opacity: 0.85; } }
@keyframes dca-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dca-annie { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dca-doctor { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(0); } }
@keyframes dca-candle { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.9; } }
@keyframes dca-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.25; } }

/* Scene: miss-dartle-summons-david - tense dusk */
.scn-miss-dartle-summons-david {
  background:
    linear-gradient(180deg, #4a3a5a 0%, #3a2a4a 30%, #2a1a3a 60%, #1a0a2a 100%),
    radial-gradient(ellipse at 50% 0%, #6a5a7a 0%, transparent 60%);
}
.scn-miss-dartle-summons-david .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a5a7a 0%, #3a2a4a 50%, #1a0a2a 100%);
  animation: mds-sky 15s ease-in-out infinite alternate;
}
.scn-miss-dartle-summons-david .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a0a2a 0%, #2a1a3a 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
}
.scn-miss-dartle-summons-david .doorway {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0a1a 0%, #0a0a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-miss-dartle-summons-david .door-open {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 130px;
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%);
  border-radius: 0 5% 5% 0;
  transform-origin: left center;
  animation: mds-door 6s ease-in-out infinite alternate;
}
.scn-miss-dartle-summons-david .figure-miss-dartle {
  position: absolute; bottom: 24%; left: 48%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.6);
  animation: mds-dartle 4s ease-in-out infinite;
}
.scn-miss-dartle-summons-david .shadow-long {
  position: absolute; bottom: 0; left: 30%; width: 120px; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  transform: skewX(-20deg);
  animation: mds-shadow 8s ease-in-out infinite alternate;
}
.scn-miss-dartle-summons-david .lamp {
  position: absolute; bottom: 35%; left: 25%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #605040 100%);
  border-radius: 30% 30% 10% 10%;
  animation: mds-lamp 5s ease-in-out infinite;
}
.scn-miss-dartle-summons-david .lamp-glow {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c0a080 0%, #806040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(192,160,128,0.3);
  animation: mds-glow 3s ease-in-out infinite alternate;
}
@keyframes mds-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mds-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(15deg); } 100% { transform: rotateY(0deg); } }
@keyframes mds-dartle { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes mds-shadow { 0% { transform: skewX(-20deg) scaleX(1); } 50% { transform: skewX(-25deg) scaleX(1.1); } 100% { transform: skewX(-20deg) scaleX(0.95); } }
@keyframes mds-lamp { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } 100% { transform: scaleY(1); } }
@keyframes mds-glow { 0% { opacity: 0.7; box-shadow: 0 0 30px 8px rgba(192,160,128,0.2); } 50% { opacity: 1; box-shadow: 0 0 50px 15px rgba(192,160,128,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 35px 10px rgba(192,160,128,0.25); } }

/* Scene: dartle-vaunts-cruelty - dark dim interior */
.scn-dartle-vaunts-cruelty {
  background:
    linear-gradient(180deg, #1a0a1a 0%, #0a0a0a 40%, #1a0a1a 100%),
    radial-gradient(ellipse at 50% 50%, #2a1a2a 0%, transparent 70%);
}
.scn-dartle-vaunts-cruelty .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a0a1a 50%, #0a0a0a 100%);
  animation: dvc-room 20s ease-in-out infinite alternate;
}
.scn-dartle-vaunts-cruelty .table {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 30px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: dvc-table 10s ease-in-out infinite;
}
.scn-dartle-vaunts-cruelty .figure-dartle {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: dvc-dartle 3s ease-in-out infinite;
}
.scn-dartle-vaunts-cruelty .figure-james {
  position: absolute; bottom: 18%; left: 52%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: dvc-james 4s ease-in-out infinite alternate;
}
.scn-dartle-vaunts-cruelty .shadow-dartle {
  position: absolute; bottom: 0; left: 25%; width: 80px; height: 25%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  transform: skewX(10deg);
  animation: dvc-sd 6s ease-in-out infinite;
}
.scn-dartle-vaunts-cruelty .shadow-james {
  position: absolute; bottom: 0; left: 50%; width: 80px; height: 25%;
  background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: dvc-sj 6s ease-in-out infinite alternate;
}
.scn-dartle-vaunts-cruelty .wall-panel {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border: 1px solid #3a2a3a;
  border-radius: 5%;
  opacity: 0.3;
  animation: dvc-panel 12s ease-in-out infinite alternate;
}
.scn-dartle-vaunts-cruelty .candelabra {
  position: absolute; top: 15%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 10px 2px rgba(200,180,120,0.2);
  animation: dvc-candle 3s ease-in-out infinite alternate;
}
@keyframes dvc-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dvc-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes dvc-dartle { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes dvc-james { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(-2px) rotate(0); } }
@keyframes dvc-sd { 0% { transform: skewX(10deg) scaleX(1); } 50% { transform: skewX(12deg) scaleX(1.05); } 100% { transform: skewX(8deg) scaleX(0.95); } }
@keyframes dvc-sj { 0% { transform: skewX(-10deg) scaleX(1); } 50% { transform: skewX(-14deg) scaleX(1.05); } 100% { transform: skewX(-8deg) scaleX(0.95); } }
@keyframes dvc-panel { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }
@keyframes dvc-candle { 0% { transform: scaleY(1); opacity: 0.7; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.8; } }

/* Scene: littimer-tells-of-emilys-flight - dark dim interior */
.scn-littimer-tells-of-emilys-flight {
  background:
    linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 40%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 30%, #1a1a1a 0%, transparent 70%);
}
.scn-littimer-tells-of-emilys-flight .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 50%, #0a0a0a 100%);
  animation: lte-bg 20s ease-in-out infinite alternate;
}
.scn-littimer-tells-of-emilys-flight .floorboards {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a0a0a 100%);
  background-image: repeating-linear-gradient(90deg, transparent 0px, transparent 15px, rgba(0,0,0,0.3) 15px, rgba(0,0,0,0.3) 16px);
  border-radius: 20% 20% 0 0;
}
.scn-littimer-tells-of-emilys-flight .chair {
  position: absolute; bottom: 12%; left: 55%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: lte-chair 8s ease-in-out infinite;
}
.scn-littimer-tells-of-emilys-flight .figure-littimer {
  position: absolute; bottom: 14%; left: 30%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: lte-littimer 5s ease-in-out infinite;
}
.scn-littimer-tells-of-emilys-flight .figure-miss-dartle-bg {
  position: absolute; bottom: 16%; left: 60%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  opacity: 0.7;
  animation: lte-dartle-bg 4s ease-in-out infinite alternate;
}
.scn-littimer-tells-of-emilys-flight .shadow-chair {
  position: absolute; bottom: 0; left: 50%; width: 60px; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  transform: skewX(-5deg);
  animation: lte-sc 7s ease-in-out infinite;
}
.scn-littimer-tells-of-emilys-flight .wall-crack {
  position: absolute; top: 20%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(135deg, transparent 0%, transparent 45%, #1a0a0a 45%, #1a0a0a 55%, transparent 55%, transparent 100%);
  opacity: 0.2;
  animation: lte-crack 15s ease-in-out infinite alternate;
}
.scn-littimer-tells-of-emilys-flight .dust-motes {
  position: absolute; top: 10%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,180,160,0.1) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: lte-dust 12s linear infinite;
}
@keyframes lte-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lte-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lte-littimer { 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 lte-dartle-bg { 0% { transform: translateY(0) rotate(1deg); opacity: 0.6; } 50% { transform: translateY(-2px) rotate(-1deg); opacity: 0.8; } 100% { transform: translateY(0) rotate(0); opacity: 0.7; } }
@keyframes lte-sc { 0% { transform: skewX(-5deg) scaleX(1); } 50% { transform: skewX(-8deg) scaleX(1.05); } 100% { transform: skewX(-3deg) scaleX(0.95); } }
@keyframes lte-crack { 0% { opacity: 0.15; } 50% { opacity: 0.3; } 100% { opacity: 0.2; } }
@keyframes lte-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.4; } 25% { transform: translate(10px, -5px) scale(1.1); opacity: 0.6; } 50% { transform: translate(20px, 0) scale(0.9); opacity: 0.3; } 75% { transform: translate(10px, 5px) scale(1.05); opacity: 0.5; } 100% { transform: translate(0, 0) scale(1); opacity: 0.4; } }

.scn-is-that-all {
  background: linear-gradient(180deg, #f2e6d0 0%, #e0c9a6 60%, #c8a97a 100%), radial-gradient(ellipse at 50% 60%, #fff4e0 0%, transparent 80%);
  position: relative;
}
.scn-is-that-all .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #f7eedc 0%, #e8dbba 100%); }
.scn-is-that-all .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #bda27a 0%, #a18462 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-is-that-all .window { position: absolute; top: 12%; left: 30%; width: 28%; height: 45%; background: radial-gradient(ellipse at 50% 40%, #d0e4f0 0%, #b8d4e0 60%, #a0b8c8 100%); border: 4px solid #7a684e; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); }
.scn-is-that-all .curtain-left { position: absolute; top: 10%; left: 28%; width: 8%; height: 50%; background: linear-gradient(180deg, #b89a78 0%, #9e7e5c 100%); border-radius: 0 20% 20% 0; transform-origin: left; animation: ita-curtain 6s ease-in-out infinite alternate; }
.scn-is-that-all .curtain-right { position: absolute; top: 10%; right: 28%; width: 8%; height: 50%; background: linear-gradient(180deg, #b89a78 0%, #9e7e5c 100%); border-radius: 20% 0 0 20%; transform-origin: right; animation: ita-curtain 6s ease-in-out infinite alternate-reverse; }
.scn-is-that-all .armchair { position: absolute; bottom: 30%; left: 25%; width: 18%; height: 30%; background: linear-gradient(180deg, #b55535 0%, #8a3a22 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 8px 15px rgba(0,0,0,0.2); }
.scn-is-that-all .figure-agness { position: absolute; bottom: 27%; left: 28%; width: 7%; height: 35%; background: linear-gradient(180deg, #7a5c3a 0%, #4d3320 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ita-figure 8s ease-in-out infinite; }
.scn-is-that-all .figure-aunt { position: absolute; bottom: 27%; right: 28%; width: 8%; height: 38%; background: linear-gradient(180deg, #6d5542 0%, #3f2e20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ita-figure 8s ease-in-out infinite reverse; }
.scn-is-that-all .glow { position: absolute; bottom: 30%; left: 35%; width: 30%; height: 20%; background: radial-gradient(ellipse, #ffeecc 0%, transparent 70%); opacity: 0.6; animation: ita-glow 4s ease-in-out infinite alternate; }

@keyframes ita-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes ita-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ita-glow { 0% { opacity: 0.4; transform: scale(0.95); } 100% { opacity: 0.7; transform: scale(1.05); } }

.scn-good-angel-again {
  background: linear-gradient(180deg, #f2dbb8 0%, #e8c9a0 40%, #d4a870 100%), radial-gradient(ellipse at 50% 40%, #fff5e0 0%, transparent 70%);
  position: relative;
}
.scn-good-angel-again .bg-room { position: absolute; inset: 0; background: linear-gradient(180deg, #d4b88a 0%, #b8986a 100%); }
.scn-good-angel-again .light-ray { position: absolute; top: 0; left: 35%; width: 30%; height: 100%; background: linear-gradient(180deg, rgba(255,250,220,0.8) 0%, rgba(255,230,180,0.3) 100%); clip-path: polygon(50% 0%, 80% 100%, 20% 100%); animation: gaa-ray 8s ease-in-out infinite alternate; }
.scn-good-angel-again .figure-back { position: absolute; bottom: 25%; left: 50%; width: 12%; height: 45%; background: linear-gradient(180deg, #c8a070 0%, #9a7a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); }
.scn-good-angel-again .halo { position: absolute; top: 7%; left: 44%; width: 12%; height: 15%; background: radial-gradient(circle, #ffd700 0%, #e8b800 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 15px #ffd700; animation: gaa-halo 4s ease-in-out infinite alternate; }
.scn-good-angel-again .arm-outstretched { position: absolute; bottom: 35%; left: 46%; width: 4%; height: 20%; background: linear-gradient(180deg, #b8965a 0%, #8a6e3a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-30deg); transform-origin: top; animation: gaa-arm 6s ease-in-out infinite; }
.scn-good-angel-again .hair-flow { position: absolute; top: 8%; left: 48%; width: 8%; height: 16%; background: linear-gradient(180deg, #c8a060 0%, #a07838 100%); border-radius: 50% 50% 30% 30%; filter: blur(2px); animation: gaa-hair 5s ease-in-out infinite alternate; }
.scn-good-angel-again .book { position: absolute; bottom: 35%; left: 55%; width: 5%; height: 7%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 10%; transform: rotate(10deg); }
.scn-good-angel-again .sparkle-1 { position: absolute; top: 20%; left: 40%; width: 2%; height: 2%; background: #fff; border-radius: 50%; box-shadow: 0 0 8px 3px #ffeeaa; animation: gaa-sparkle 3s ease-in-out infinite; }
.scn-good-angel-again .sparkle-2 { position: absolute; top: 25%; left: 55%; width: 1.5%; height: 1.5%; background: #fff; border-radius: 50%; box-shadow: 0 0 6px 2px #ffeeaa; animation: gaa-sparkle 3s ease-in-out infinite 1.5s; }

@keyframes gaa-ray { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.1); } 100% { opacity: 0.7; transform: scaleY(0.95); } }
@keyframes gaa-halo { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }
@keyframes gaa-arm { 0% { transform: rotate(-25deg); } 50% { transform: rotate(-35deg); } 100% { transform: rotate(-30deg); } }
@keyframes gaa-hair { 0% { transform: translateY(0) rotate(-5deg); } 100% { transform: translateY(-3px) rotate(5deg); } }
@keyframes gaa-sparkle { 0% { opacity: 0; transform: scale(0); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0); } }

.scn-partner-and-galvanic {
  background: linear-gradient(180deg, #4a5a6a 0%, #385060 40%, #1a2a3a 100%), radial-gradient(ellipse at 50% 20%, #6a7a8a 0%, transparent 70%);
  position: relative;
}
.scn-partner-and-galvanic .table-top { position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-partner-and-galvanic .desk-lamp { position: absolute; bottom: 45%; left: 65%; width: 8%; height: 15%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 40% 40% 10% 10%; transform: rotate(-15deg); }
.scn-partner-and-galvanic .desk-lamp::after { content: ''; position: absolute; top: -20%; left: 20%; width: 60%; height: 30%; background: radial-gradient(circle, #ffeeaa 0%, #ddaa55 60%, transparent 100%); border-radius: 50%; animation: pag-lamp 4s ease-in-out infinite alternate; }
.scn-partner-and-galvanic .hand-uriah { position: absolute; bottom: 25%; left: 40%; width: 3%; height: 20%; background: linear-gradient(180deg, #c8b088 0%, #907050 100%); border-radius: 30% 30% 20% 20%; transform: rotate(20deg); transform-origin: bottom; animation: pag-hand 3s ease-in-out infinite; }
.scn-partner-and-galvanic .hand-aunt { position: absolute; bottom: 30%; left: 55%; width: 3%; height: 18%; background: linear-gradient(180deg, #b09078 0%, #7a5a42 100%); border-radius: 30% 30% 20% 20%; transform: rotate(-10deg); transform-origin: bottom; animation: pag-hand 3s ease-in-out infinite 0.5s; }
.scn-partner-and-galvanic .paper-pile { position: absolute; bottom: 22%; left: 45%; width: 15%; height: 8%; background: linear-gradient(180deg, #e0d0b8 0%, #c0b098 100%); border-radius: 5%; box-shadow: 0 4px 6px rgba(0,0,0,0.3); transform: rotate(2deg); }
.scn-partner-and-galvanic .inkwell { position: absolute; bottom: 25%; left: 50%; width: 3%; height: 4%; background: #1a1a2a; border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-partner-and-galvanic .shadow-figure { position: absolute; bottom: 0; left: 20%; width: 25%; height: 60%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.8) 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; filter: blur(8px); }
.scn-partner-and-galvanic .quiver-line { position: absolute; top: 30%; left: 35%; width: 30%; height: 2px; background: linear-gradient(90deg, transparent, #a0b0c0, transparent); animation: pag-quiver 2s ease-in-out infinite; }

@keyframes pag-lamp { 0% { transform: scale(1); opacity: 0.8; } 100% { transform: scale(1.15); opacity: 1; } }
@keyframes pag-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes pag-quiver { 0% { opacity: 0; transform: scaleX(0); } 50% { opacity: 0.5; transform: scaleX(1); } 100% { opacity: 0; transform: scaleX(0); } }

.scn-resolute-heart {
  background: linear-gradient(180deg, #f7c088 0%, #eaa050 40%, #c08040 100%), radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 70%);
  position: relative;
}
.scn-resolute-heart .sky-dawn { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #6a8ab0 0%, #b8d0e8 30%, #f0d8b0 60%, transparent 100%); }
.scn-resolute-heart .sunrise { position: absolute; top: 30%; left: 50%; width: 15%; height: 15%; background: radial-gradient(circle, #ffd700 0%, #ffa500 40%, transparent 70%); transform: translateX(-50%); box-shadow: 0 0 80px 40px #ffbb33; animation: reh-sun 20s ease-in-out infinite alternate; }
.scn-resolute-heart .road { position: absolute; bottom: 15%; left: 20%; right: 20%; height: 20%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 30% 30% 0 0 / 100% 100% 0 0; clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); }
.scn-resolute-heart .figure-resolute { position: absolute; bottom: 20%; left: 45%; width: 6%; height: 30%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: reh-walk 4s ease-in-out infinite; }
.scn-resolute-heart .trees-left { position: absolute; bottom: 35%; left: 8%; width: 12%; height: 40%; background: linear-gradient(180deg, #1a3a1a 0%, #0a2a0a 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; transform: scale(0.95); animation: reh-tree 10s ease-in-out infinite alternate; }
.scn-resolute-heart .trees-right { position: absolute; bottom: 35%; right: 8%; width: 12%; height: 40%; background: linear-gradient(180deg, #1a3a1a 0%, #0a2a0a 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; animation: reh-tree 10s ease-in-out infinite alternate 5s; }
.scn-resolute-heart .bird { position: absolute; top: 25%; left: 25%; width: 3%; height: 2%; background: #1a1a1a; clip-path: polygon(0% 50%, 50% 0%, 100% 50%, 50% 100%); animation: reh-bird 12s linear infinite; }
.scn-resolute-heart .clouds-layer { position: absolute; top: 10%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%); filter: blur(12px); animation: reh-cloud 30s linear infinite; }
.scn-resolute-heart .ground-mist { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, rgba(200,180,150,0.4) 0%, transparent 100%); filter: blur(8px); animation: reh-mist 15s ease-in-out infinite alternate; }

@keyframes reh-sun { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 0.9; } }
@keyframes reh-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes reh-tree { 0% { transform: scale(0.95) translateY(0); } 50% { transform: scale(1.05) translateY(-5px); } 100% { transform: scale(1) translateY(0); } }
@keyframes reh-bird { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(30vw) translateY(-20px); } 50% { transform: translateX(60vw) translateY(0); } 75% { transform: translateX(90vw) translateY(-10px); } 100% { transform: translateX(120vw) translateY(0); } }
@keyframes reh-cloud { 0% { background-position: 0 0; opacity: 0.6; } 50% { background-position: 100% 0; opacity: 0.8; } 100% { background-position: 200% 0; opacity: 0.6; } }
@keyframes reh-mist { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.1); } 100% { opacity: 0.5; transform: scaleY(0.9); } }
/* Note: .scn-resolute-heart .clouds-layer background-position animation requires background-size: 200% 100% add? but kept simple. */

/* great-fairy-story */
.scn-great-fairy-story {
  background:
    linear-gradient(180deg, #dac9b6 0%, #b5987a 60%, #8a6e55 100%),
    radial-gradient(ellipse at 50% 20%, #e6d9c7 0%, transparent 70%);
}
.scn-great-fairy-story .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(218,201,182,.3) 0%, transparent 100%); }
.scn-great-fairy-story .window { position:absolute; top:6%; left:12%; width:40%; height:55%; background: linear-gradient(180deg, #9bb0c9 0%, #7088a8 40%, #4e5f7a 100%); border:8px solid #6b4c3b; border-radius:4px; box-shadow:inset 0 0 30px rgba(78,95,122,.4); }
.scn-great-fairy-story .curtain { position:absolute; top:0; width:18%; height:62%; background: linear-gradient(180deg, #6b4c3b 0%, #4a3527 100%); border-radius:0 50% 50% 0 / 0 30% 30% 0; filter: drop-shadow(4px 0 8px rgba(0,0,0,.3)); }
.scn-great-fairy-story .curtain-a { left:8%; animation: gf-curtain 16s ease-in-out infinite alternate; }
.scn-great-fairy-story .curtain-b { right:50%; transform:scaleX(-1); animation: gf-curtain 16s ease-in-out infinite alternate-reverse; }
.scn-great-fairy-story .desk { position:absolute; bottom:18%; left:22%; width:60%; height:20%; background: linear-gradient(180deg, #7a5c4a 0%, #5c4233 100%); border-radius:6px 6px 0 0; box-shadow:0 4px 12px rgba(0,0,0,.4); animation: gf-tremble 5s ease-in-out infinite; }
.scn-great-fairy-story .book { position:absolute; bottom:32%; left:44%; width:22%; height:16%; background: linear-gradient(135deg, #f5e6cc 0%, #e0c9a8 100%); border-radius:2px; transform:rotate(-5deg); box-shadow:0 2px 6px rgba(0,0,0,.3); animation: gf-book 8s ease-in-out infinite; }
.scn-great-fairy-story .figure { position:absolute; bottom:20%; left:28%; width:14%; height:24%; background: linear-gradient(180deg, #2e231c 0%, #1a130d 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: gf-breathe 4s ease-in-out infinite; }
.scn-great-fairy-story .lamp { position:absolute; bottom:30%; left:34%; width:8%; height:10%; background: radial-gradient(circle, #d4a373 0%, #b2804d 70%); border-radius:30% 30% 20% 20%; box-shadow:0 0 40px 12px rgba(210,163,115,.5); animation: gf-glow 3s ease-in-out infinite alternate; }
@keyframes gf-curtain { 0% { transform:translateX(0); } 50% { transform:translateX(-8px); } 100% { transform:translateX(0); } }
@keyframes gf-tremble { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes gf-book { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-2deg) translateY(-2px); } }
@keyframes gf-breathe { 0% { transform:scale(1); } 50% { transform:scale(1.02) translateY(-2px); } 100% { transform:scale(1); } }
@keyframes gf-glow { 0% { opacity:.6; box-shadow:0 0 20px 8px rgba(210,163,115,.3); } 50% { opacity:1; box-shadow:0 0 60px 18px rgba(210,163,115,.7); } 100% { opacity:.8; box-shadow:0 0 30px 10px rgba(210,163,115,.4); } }

/* aunts-plan-for-trip */
.scn-aunts-plan-for-trip {
  background:
    linear-gradient(180deg, #fef9ef 0%, #f0e6d3 50%, #d9cbb8 100%),
    radial-gradient(ellipse at 70% 30%, #ffffff 0%, transparent 70%);
}
.scn-aunts-plan-for-trip .room { position:absolute; inset:0; background: linear-gradient(180deg, rgba(254,249,239,.4) 0%, transparent 100%); }
.scn-aunts-plan-for-trip .table { position:absolute; bottom:20%; left:25%; width:50%; height:18%; background: linear-gradient(180deg, #c9b99a 0%, #a69578 100%); border-radius:10px; box-shadow:0 4px 16px rgba(0,0,0,.15); animation: ap-float 12s ease-in-out infinite; }
.scn-aunts-plan-for-trip .map { position:absolute; bottom:30%; left:34%; width:32%; height:14%; background: linear-gradient(135deg, #f0e6d3 0%, #d9cbb8 100%); border-radius:2px; transform:rotate(3deg); box-shadow:0 2px 8px rgba(0,0,0,.2); animation: ap-leaf 20s ease-in-out infinite; }
.scn-aunts-plan-for-trip .aunt { position:absolute; bottom:16%; left:20%; width:16%; height:40%; background: linear-gradient(180deg, #4a4a4a 0%, #2e2e2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ap-bow 6s ease-in-out infinite; }
.scn-aunts-plan-for-trip .child { position:absolute; bottom:16%; left:64%; width:12%; height:30%; background: linear-gradient(180deg, #6b5b4b 0%, #4a3f34 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ap-nod 8s ease-in-out infinite; }
.scn-aunts-plan-for-trip .teacup { position:absolute; bottom:32%; left:46%; width:6%; height:8%; background: radial-gradient(circle, #ffffff 0%, #e8e0d0 70%); border-radius:10% 10% 20% 20%; box-shadow:0 2px 4px rgba(0,0,0,.1); animation: ap-sip 10s ease-in-out infinite; }
.scn-aunts-plan-for-trip .window { position:absolute; top:8%; left:68%; width:24%; height:35%; background: linear-gradient(180deg, #a4c3d8 0%, #7a9bb5 100%); border:6px solid #b0a080; border-radius:4px; box-shadow:inset 0 0 20px rgba(122,155,181,.3); }
@keyframes ap-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-4px); } }
@keyframes ap-leaf { 0% { transform:rotate(3deg); } 50% { transform:rotate(0deg); } 100% { transform:rotate(3deg); } }
@keyframes ap-bow { 0% { transform:rotate(0); } 30% { transform:rotate(8deg); } 50% { transform:rotate(-2deg); } 70% { transform:rotate(5deg); } 100% { transform:rotate(0); } }
@keyframes ap-nod { 0%,100% { transform:rotate(0); } 50% { transform:rotate(-6deg); } }
@keyframes ap-sip { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-4px) rotate(5deg); } }

/* old-soldier-on-illness */
.scn-old-soldier-on-illness {
  background:
    linear-gradient(180deg, #f5e6cc 0%, #e6d3b8 50%, #cfbba0 100%),
    radial-gradient(ellipse at 60% 40%, #fff9ea 0%, transparent 70%);
}
.scn-old-soldier-on-illness .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(245,230,204,.3) 0%, transparent 100%); }
.scn-old-soldier-on-illness .chair { position:absolute; bottom:14%; left:20%; width:40%; height:55%; background: linear-gradient(135deg, #8b5e3c 0%, #6b4527 100%); border-radius:20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow:0 8px 24px rgba(0,0,0,.3); animation: os-rock 4s ease-in-out infinite; }
.scn-old-soldier-on-illness .soldier { position:absolute; bottom:22%; left:26%; width:28%; height:45%; background: linear-gradient(180deg, #3a2e1a 0%, #241c0e 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin:bottom center; animation: os-shake 3s ease-in-out infinite; }
.scn-old-soldier-on-illness .bandage { position:absolute; height:8%; background: linear-gradient(180deg, #f0f0f0 0%, #d0d0d0 100%); border-radius:30%; box-shadow:0 2px 4px rgba(0,0,0,.1); }
.scn-old-soldier-on-illness .arm { width:20%; left:18%; bottom:48%; transform:rotate(30deg); animation: os-bandage 5s ease-in-out infinite; }
.scn-old-soldier-on-illness .leg { width:16%; left:40%; bottom:12%; transform:rotate(-15deg); animation: os-bandage 5s ease-in-out infinite reverse; }
.scn-old-soldier-on-illness .cane { position:absolute; bottom:16%; left:16%; width:4%; height:50%; background: linear-gradient(180deg, #4a3b2a 0%, #2a1f12 100%); border-radius:10%; transform:rotate(8deg); animation: os-tap 2s ease-in-out infinite; }
.scn-old-soldier-on-illness .bottle { position:absolute; bottom:28%; right:22%; width:10%; height:16%; background: linear-gradient(180deg, #c9b99a 0%, #a69578 100%); border-radius:10% 10% 15% 15%; box-shadow:0 2px 6px rgba(0,0,0,.2); animation: os-fade 7s ease-in-out infinite; }
.scn-old-soldier-on-illness .sunbeam { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,235,200,.35) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: os-beam 9s ease-in-out infinite alternate; }
@keyframes os-rock { 0% { transform:rotate(0); } 25% { transform:rotate(3deg); } 75% { transform:rotate(-3deg); } 100% { transform:rotate(0); } }
@keyframes os-shake { 0% { transform:rotate(0); } 20% { transform:rotate(4deg); } 40% { transform:rotate(-6deg); } 60% { transform:rotate(5deg); } 80% { transform:rotate(-3deg); } 100% { transform:rotate(0); } }
@keyframes os-bandage { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes os-tap { 0%,100% { transform:rotate(8deg); } 50% { transform:rotate(5deg); } }
@keyframes os-fade { 0%,100% { opacity:0.7; } 50% { opacity:1; } }
@keyframes os-beam { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

/* letter-from-maldon */
.scn-letter-from-maldon {
  background:
    linear-gradient(180deg, #fdfbf7 0%, #ede6db 50%, #d4c9b8 100%),
    radial-gradient(ellipse at 30% 50%, #ffffff 0%, transparent 70%);
}
.scn-letter-from-maldon .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(253,251,247,.5) 0%, transparent 100%); }
.scn-letter-from-maldon .desk { position:absolute; bottom:10%; left:15%; width:70%; height:25%; background: linear-gradient(180deg, #7a5c4a 0%, #5c4233 100%); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.3); animation: lm-creak 6s ease-in-out infinite; }
.scn-letter-from-maldon .letter { position:absolute; bottom:22%; left:30%; width:30%; height:16%; background: linear-gradient(135deg, #f5e6cc 0%, #d9cbb8 100%); border-radius:2px; transform:rotate(2deg); box-shadow:0 2px 8px rgba(0,0,0,.2); animation: lm-lettershake 4s ease-in-out infinite; }
.scn-letter-from-maldon .hand { position:absolute; bottom:24%; left:33%; width:10%; height:20%; background: linear-gradient(180deg, #d4a373 0%, #b2804d 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation: lm-tremble 2s ease-in-out infinite; }
.scn-letter-from-maldon .lamp { position:absolute; bottom:32%; left:22%; width:8%; height:14%; background: radial-gradient(circle, #c0b090 0%, #a09070 70%); border-radius:20% 20% 30% 30%; box-shadow:0 0 50px 18px rgba(192,176,144,.5); animation: lm-lampflicker 3s ease-in-out infinite alternate; }
.scn-letter-from-maldon .shadow { position:absolute; bottom:10%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, rgba(42,42,42,.6) 0%, transparent 100%); border-radius:50%; filter:blur(8px); animation: lm-shadowmove 7s ease-in-out infinite; }
.scn-letter-from-maldon .figure { position:absolute; bottom:12%; left:44%; width:18%; height:50%; background: linear-gradient(180deg, #3a2e1a 0%, #241c0e 100%); border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; transform-origin:bottom center; animation: lm-breathe 5s ease-in-out infinite; }
@keyframes lm-creak { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes lm-lettershake { 0% { transform:rotate(2deg) translateX(0); } 25% { transform:rotate(0deg) translateX(2px); } 50% { transform:rotate(4deg) translateX(0); } 75% { transform:rotate(1deg) translateX(-2px); } 100% { transform:rotate(2deg) translateX(0); } }
@keyframes lm-tremble { 0% { transform:rotate(0); } 33% { transform:rotate(6deg); } 66% { transform:rotate(-4deg); } 100% { transform:rotate(0); } }
@keyframes lm-lampflicker { 0% { opacity:.7; box-shadow:0 0 30px 10px rgba(192,176,144,.3); } 50% { opacity:1; box-shadow:0 0 70px 22px rgba(192,176,144,.6); } 100% { opacity:.8; box-shadow:0 0 40px 12px rgba(192,176,144,.4); } }
@keyframes lm-shadowmove { 0% { transform:translateX(-2%); } 50% { transform:translateX(2%); } 100% { transform:translateX(-2%); } }
@keyframes lm-breathe { 0% { transform:scale(1); } 50% { transform:scale(1.01) translateY(-2px); } 100% { transform:scale(1); } }

/* Scene 1: micawber-secret-communication – bright interior, tense */
.scn-micawber-secret-communication {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c9a0 40%, #c8b078 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-micawber-secret-communication .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #faf3e6 0%, #e8dcc4 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.08);
}
.scn-micawber-secret-communication .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #8b6b4d 0%, #6b4e33 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 6px 20px rgba(0,0,0,.3);
  animation: msc-desk 12s ease-in-out infinite alternate;
}
.scn-micawber-secret-communication .lamp {
  position: absolute; bottom: 30%; left: 45%; width: 14px; height: 24px;
  background: radial-gradient(circle at 50% 100%, #e8b44a 0%, #b08030 60%, #5a3a1a 100%);
  border-radius: 30% 30% 10% 10%; transform: rotate(-5deg);
  animation: msc-lamp 3s ease-in-out infinite alternate;
}
.scn-micawber-secret-communication .paper {
  position: absolute; bottom: 18%; left: 38%; width: 40px; height: 28px;
  background: #fdf5e6; border-radius: 3px; box-shadow: 0 2px 8px rgba(0,0,0,.15);
  transform: rotate(2deg); animation: msc-paper 8s ease-in-out infinite;
}
.scn-micawber-secret-communication .inkwell {
  position: absolute; bottom: 20%; left: 50%; width: 10px; height: 12px;
  background: radial-gradient(circle, #2a1a0a 0%, #1a0e06 80%);
  border-radius: 50% 50% 30% 30%; transform: translateX(-6px);
}
.scn-micawber-secret-communication .figure {
  position: absolute; bottom: 8%; left: 30%; width: 32px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: msc-figure 4s ease-in-out infinite;
}
.scn-micawber-secret-communication .arm {
  position: absolute; bottom: 24%; left: 35%; width: 18px; height: 6px;
  background: #3a2a1a; border-radius: 50%;
  transform-origin: right center; transform: rotate(-20deg);
  animation: msc-arm 4s ease-in-out infinite alternate;
}
@keyframes msc-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes msc-lamp { 0% { opacity:.7; box-shadow: 0 0 12px 4px #e8b44a; } 50% { opacity:1; box-shadow: 0 0 24px 8px #f0c060; } 100% { opacity:.8; box-shadow: 0 0 14px 5px #e8b44a; } }
@keyframes msc-paper { 0% { transform: rotate(2deg) scale(1); } 25% { transform: rotate(1deg) scale(1.02); } 50% { transform: rotate(3deg) scale(1); } 75% { transform: rotate(0deg) scale(0.98); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes msc-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes msc-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-22deg); } }

/* Scene 2: martha-asks-to-wait – dim interior, dark mood */
.scn-martha-asks-to-wait {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2040 50%, #1a1028 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a50 0%, transparent 70%);
}
.scn-martha-asks-to-wait .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #12101a 0%, #0e0c14 100%);
}
.scn-martha-asks-to-wait .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-martha-asks-to-wait .door {
  position: absolute; bottom: 20%; left: 10%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 4px; box-shadow: 2px 0 10px rgba(0,0,0,.4);
  animation: maw-door 6s ease-in-out infinite;
}
.scn-martha-asks-to-wait .candle {
  position: absolute; bottom: 30%; left: 45%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0c060 0%, #b08030 70%, #5a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: maw-candle 3s ease-in-out infinite alternate;
}
.scn-martha-asks-to-wait .candle-glow {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 30px;
  background: radial-gradient(circle, rgba(240,192,96,.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: maw-glow 2s ease-in-out infinite alternate;
}
.scn-martha-asks-to-wait .figure-waiting {
  position: absolute; bottom: 15%; left: 35%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #2a2040 0%, #1a1228 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: maw-figure 8s ease-in-out infinite;
}
.scn-martha-asks-to-wait .shadow {
  position: absolute; bottom: 12%; left: 32%; width: 40px; height: 8px;
  background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(3px);
  animation: maw-shadow 8s ease-in-out infinite;
}
@keyframes maw-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes maw-candle { 0% { transform: scaleY(1) rotate(0deg); opacity:.8; } 50% { transform: scaleY(1.05) rotate(1deg); opacity:1; } 100% { transform: scaleY(0.98) rotate(-1deg); opacity:.85; } }
@keyframes maw-glow { 0% { opacity:.6; transform: scale(1); } 50% { opacity:.9; transform: scale(1.1); } 100% { opacity:.7; transform: scale(0.95); } }
@keyframes maw-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes maw-shadow { 0% { transform: scaleX(1); opacity:.3; } 50% { transform: scaleX(1.1); opacity:.4; } 100% { transform: scaleX(1); opacity:.3; } }

/* Scene 3: miss-dartle-at-peggottys – dim interior, dark mood */
.scn-miss-dartle-at-peggottys {
  background:
    linear-gradient(180deg, #1e1828 0%, #2a2038 40%, #1a1220 100%),
    radial-gradient(ellipse at 40% 60%, #3a2850 0%, transparent 60%);
}
.scn-miss-dartle-at-peggottys .wall-dim {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1424 0%, #120e1a 100%);
}
.scn-miss-dartle-at-peggottys .doorway {
  position: absolute; bottom: 15%; left: 15%; width: 30px; height: 48px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0606 100%);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,.6);
  animation: mdp-door 10s ease-in-out infinite alternate;
}
.scn-miss-dartle-at-peggottys .floorboard {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
}
.scn-miss-dartle-at-peggottys .figure-martha {
  position: absolute; bottom: 8%; left: 30%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a2040 0%, #1a1228 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: mdp-martha 6s ease-in-out infinite;
}
.scn-miss-dartle-at-peggottys .figure-dartle {
  position: absolute; bottom: 8%; left: 55%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #3a2a4a 0%, #20163a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scaleX(-1); animation: mdp-dartle 4s ease-in-out infinite alternate;
}
.scn-miss-dartle-at-peggottys .lamp-dim {
  position: absolute; bottom: 28%; left: 45%; width: 8px; height: 22px;
  background: linear-gradient(180deg, #c89840 0%, #7a5a20 70%, #3a2208 100%);
  border-radius: 20% 20% 10% 10%;
  animation: mdp-lamp 3s ease-in-out infinite alternate;
}
.scn-miss-dartle-at-peggottys .lamp-glow {
  position: absolute; bottom: 25%; left: 42%; width: 24px; height: 30px;
  background: radial-gradient(circle, rgba(200,152,64,.4) 0%, transparent 70%);
  filter: blur(5px); animation: mdp-glow 2s ease-in-out infinite alternate;
}
@keyframes mdp-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(5deg); } 100% { transform: rotateY(0deg); } }
@keyframes mdp-martha { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes mdp-dartle { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(-2px) rotate(1deg); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes mdp-lamp { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes mdp-glow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.8; transform: scale(1.1); } 100% { opacity:.6; transform: scale(0.95); } }

/* Scene 4: dartle-berates-emily – dim interior, dark mood */
.scn-dartle-berates-emily {
  background:
    linear-gradient(180deg, #1a121a 0%, #2a1a2a 40%, #120a12 100%),
    radial-gradient(ellipse at 50% 80%, #3a2020 0%, transparent 70%);
}
.scn-dartle-berates-emily .bg-shadow {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e0a10 0%, #080608 100%);
}
.scn-dartle-berates-emily .hearth {
  position: absolute; bottom: 15%; left: 42%; width: 20px; height: 14px;
  background: radial-gradient(circle at 50% 100%, #c84020 0%, #8a2a10 60%, #3a1208 100%);
  border-radius: 30% 30% 10% 10%;
  animation: dbe-hearth 3s ease-in-out infinite alternate;
}
.scn-dartle-berates-emily .fire-glow {
  position: absolute; bottom: 15%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,64,32,.4) 0%, transparent 70%);
  filter: blur(8px); animation: dbe-glow 2s ease-in-out infinite alternate;
}
.scn-dartle-berates-emily .figure-emily {
  position: absolute; bottom: 5%; left: 30%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; transform: rotate(10deg);
  animation: dbe-emily 4s ease-in-out infinite;
}
.scn-dartle-berates-emily .figure-dartle-standing {
  position: absolute; bottom: 8%; left: 55%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: dbe-dartle 5s ease-in-out infinite alternate;
}
.scn-dartle-berates-emily .falling-tear {
  position: absolute; bottom: 35%; left: 36%; width: 3px; height: 4px;
  background: radial-gradient(circle, #c0a0a0 0%, transparent 80%);
  border-radius: 50%; animation: dbe-tear 2s ease-in-out infinite;
}
.scn-dartle-berates-emily .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,.6);
}
@keyframes dbe-hearth { 0% { transform: scaleY(1) rotate(0deg); opacity:.8; } 50% { transform: scaleY(1.1) rotate(3deg); opacity:1; } 100% { transform: scaleY(0.95) rotate(-2deg); opacity:.9; } }
@keyframes dbe-glow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.8; transform: scale(1.2); } 100% { opacity:.6; transform: scale(0.9); } }
@keyframes dbe-emily { 0% { transform: rotate(10deg) scale(1); } 25% { transform: rotate(12deg) scale(1.02); } 50% { transform: rotate(8deg) scale(0.98); } 75% { transform: rotate(14deg) scale(1.01); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes dbe-dartle { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dbe-tear { 0% { opacity:0; transform: translateY(0); } 25% { opacity:1; } 75% { opacity:1; } 100% { opacity:0; transform: translateY(20px); } }

/* peggotty-hears-news-of-emily */
.scn-peggotty-hears-news-of-emily {
  background:
    linear-gradient(180deg, #4a2e1a 0%, #2c1a0e 40%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 80%, #6b4226 0%, transparent 70%);
  position: relative;
}
.scn-peggotty-hears-news-of-emily .room-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #5c3820 0%, #3b2210 100%);
  animation: phne-pulse 12s ease-in-out infinite alternate;
}
.scn-peggotty-hears-news-of-emily .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3b2210 0%, #26160a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-peggotty-hears-news-of-emily .wall {
  position: absolute; bottom: 35%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(135deg, #6b4226 0%, #4a2a16 70%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
}
.scn-peggotty-hears-news-of-emily .chair {
  position: absolute; bottom: 32%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5c3820 0%, #2c1a0e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 2px 6px rgba(0,0,0,.5);
  animation: phne-sway 6s ease-in-out infinite;
}
.scn-peggotty-hears-news-of-emily .table {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #6b4226 0%, #4a2a16 100%);
  border-radius: 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-peggotty-hears-news-of-emily .lamp {
  position: absolute; bottom: 50%; left: 51%; width: 10px; height: 18px;
  background: radial-gradient(circle, #d4a050 0%, #8c6030 70%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px #d4a050, 0 0 40px 12px rgba(212,160,80,.3);
  animation: phne-lampglow 3s ease-in-out infinite alternate;
}
.scn-peggotty-hears-news-of-emily .figure-peggotty {
  position: absolute; bottom: 30%; left: 38%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2c1a0e 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phne-figure 4s ease-in-out infinite;
}
.scn-peggotty-hears-news-of-emily .candle-glow {
  position: absolute; bottom: 42%; left: 51%; width: 6px; height: 6px;
  background: #ffd480;
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #ffd480, 0 0 32px 8px rgba(255,212,128,.5);
  animation: phne-candle 2s ease-in-out infinite alternate;
}
@keyframes phne-pulse {
  0% { opacity: .85; transform: scale(1); }
  50% { opacity: .95; transform: scale(1.02); }
  100% { opacity: .85; transform: scale(.98); }
}
@keyframes phne-sway {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(.5deg); }
}
@keyframes phne-lampglow {
  0% { box-shadow: 0 0 15px 4px #d4a050, 0 0 30px 8px rgba(212,160,80,.3); opacity: .9; }
  50% { box-shadow: 0 0 25px 8px #e0b060, 0 0 50px 14px rgba(224,176,96,.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #d4a050, 0 0 36px 10px rgba(212,160,80,.35); opacity: .85; }
}
@keyframes phne-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(6px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(9px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(12px) translateY(0) rotate(0deg); }
}
@keyframes phne-candle {
  0% { transform: scale(1) translateY(0); opacity: .8; }
  50% { transform: scale(1.2) translateY(-1px); opacity: 1; }
  100% { transform: scale(.95) translateY(0); opacity: .75; }
}

/* emily-wont-return-home */
.scn-emily-wont-return-home {
  background:
    linear-gradient(180deg, #1a1212 0%, #0e0a0a 40%, #050303 100%),
    radial-gradient(ellipse at 50% 70%, #2a1e1e 0%, transparent 60%);
  position: relative;
}
.scn-emily-wont-return-home .dark-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1212 0%, #0e0a0a 100%);
  animation: ewr-fade 15s ease-in-out infinite alternate;
}
.scn-emily-wont-return-home .shadow-wall {
  position: absolute; bottom: 25%; left: 5%; width: 90%; height: 50%;
  background: linear-gradient(135deg, #0d0808 0%, #050303 70%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
}
.scn-emily-wont-return-home .table-ewr {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%);
  border-radius: 3%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
}
.scn-emily-wont-return-home .candle {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #5c4030 0%, #3b2210 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
}
.scn-emily-wont-return-home .flame {
  position: absolute; bottom: 52%; left: 50.5%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd480 0%, #cc8840 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 12px 4px #cc8840, 0 0 24px 8px rgba(204,136,64,.4);
  animation: ewr-flicker 1.5s ease-in-out infinite alternate;
}
.scn-emily-wont-return-home .figure-mournful {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1212 0%, #0e0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: ewr-shake 5s ease-in-out infinite;
}
.scn-emily-wont-return-home .hand-shadow {
  position: absolute; bottom: 38%; left: 48%; width: 10px; height: 6px;
  background: radial-gradient(ellipse at 50% 100%, #0e0a0a 0%, transparent 70%);
  border-radius: 50%;
  animation: ewr-hand 4s ease-in-out infinite alternate;
}
@keyframes ewr-fade {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes ewr-flicker {
  0% { transform: scale(1) rotate(0deg); opacity: .8; }
  50% { transform: scale(1.15) rotate(5deg); opacity: 1; }
  100% { transform: scale(.9) rotate(-3deg); opacity: .7; }
}
@keyframes ewr-shake {
  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 ewr-hand {
  0% { transform: translateX(0) translateY(0) scale(1); opacity: .6; }
  50% { transform: translateX(-3px) translateY(-2px) scale(1.2); opacity: .9; }
  100% { transform: translateX(0) translateY(0) scale(1); opacity: .6; }
}

/* following-martha-at-night */
.scn-following-martha-at-night {
  background:
    linear-gradient(180deg, #101830 0%, #202850 30%, #303870 60%, #1a2240 100%),
    radial-gradient(ellipse at 50% 0%, #404880 0%, transparent 70%);
  position: relative;
}
.scn-following-martha-at-night .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #151d35 0%, #1a2240 100%);
  animation: fman-stars 20s ease-in-out infinite alternate;
}
.scn-following-martha-at-night .moon {
  position: absolute; top: 8%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e8e8f0 0%, #b0b0c0 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c0c0d0, 0 0 40px 12px rgba(192,192,208,.3);
  animation: fman-moonglow 6s ease-in-out infinite alternate;
}
.scn-following-martha-at-night .abbey-tower {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a3250 0%, #1a2240 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: inset -4px 0 10px rgba(0,0,0,.5);
  animation: fman-tower 15s ease-in-out infinite alternate;
}
.scn-following-martha-at-night .street-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a2240 0%, #0a0e1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-following-martha-at-night .lamp-post {
  position: absolute; bottom: 38%; left: 55%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #505870 0%, #303850 100%);
  border-radius: 2%;
  box-shadow: 0 0 4px rgba(0,0,0,.4);
}
.scn-following-martha-at-night .figure-martha {
  position: absolute; bottom: 30%; left: 48%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #202850 0%, #101830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,.6);
  transform-origin: bottom center;
  animation: fman-walk 4s ease-in-out infinite;
}
.scn-following-martha-at-night .martha-shadow {
  position: absolute; bottom: 28%; left: 46%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, #05080f 0%, transparent 70%);
  border-radius: 50%;
  animation: fman-shadow 4s ease-in-out infinite alternate;
}
.scn-following-martha-at-night .street-mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(30,40,70,.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: fman-mist 10s ease-in-out infinite alternate;
}
@keyframes fman-stars {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes fman-moonglow {
  0% { box-shadow: 0 0 15px 4px #c0c0d0, 0 0 30px 8px rgba(192,192,208,.3); opacity: .9; }
  50% { box-shadow: 0 0 25px 8px #e8e8f0, 0 0 50px 14px rgba(232,232,240,.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #c0c0d0, 0 0 36px 10px rgba(192,192,208,.35); opacity: .85; }
}
@keyframes fman-tower {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(.98); }
}
@keyframes fman-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(15px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes fman-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: .5; }
  50% { transform: translateX(5px) scaleX(1.2); opacity: .7; }
  100% { transform: translateX(0) scaleX(1); opacity: .5; }
}
@keyframes fman-mist {
  0% { transform: translateX(-5px); opacity: .4; }
  50% { transform: translateX(5px); opacity: .6; }
  100% { transform: translateX(-5px); opacity: .4; }
}

/* martha-cries-for-river */
.scn-martha-cries-for-river {
  background:
    linear-gradient(180deg, #0a1020 0%, #141c30 40%, #1a2440 100%),
    radial-gradient(ellipse at 50% 20%, #202850 0%, transparent 60%);
  position: relative;
}
.scn-martha-cries-for-river .river-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a1020 0%, #141c30 100%);
  animation: mcfr-twinkle 25s ease-in-out infinite alternate;
}
.scn-martha-cries-for-river .moon-river {
  position: absolute; top: 5%; left: 30%; width: 28px; height: 28px;
  background: radial-gradient(circle, #d8d8e8 0%, #9090a8 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #b0b0c8, 0 0 32px 8px rgba(176,176,200,.3);
  animation: mcfr-moon 8s ease-in-out infinite alternate;
}
.scn-martha-cries-for-river .river-water {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #0a1020 0%, #141c30 50%, #1a2440 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
  animation: mcfr-river 8s ease-in-out infinite alternate;
}
.scn-martha-cries-for-river .river-bank {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #2a3250 0%, #1a2240 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-martha-cries-for-river .figure-weeping {
  position: absolute; bottom: 12%; left: 45%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #202850 0%, #0a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,.6);
  transform-origin: bottom center;
  animation: mcfr-weep 4s ease-in-out infinite;
}
.scn-martha-cries-for-river .moon-reflection {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 20px;
  background: radial-gradient(ellipse, #b0b0c8 0%, transparent 70%);
  border-radius: 50%;
  opacity: .4;
  animation: mcfr-reflection 6s ease-in-out infinite alternate;
}
.scn-martha-cries-for-river .reeds {
  position: absolute; bottom: 8%; left: 20%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #2a4030 0%, #182018 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 2px 0 4px rgba(0,0,0,.3);
  animation: mcfr-reed 5s ease-in-out infinite alternate;
}
.scn-martha-cries-for-river .river-mist {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(20,30,50,.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: mcfr-mist 12s ease-in-out infinite alternate;
}
@keyframes mcfr-twinkle {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .75; }
}
@keyframes mcfr-moon {
  0% { box-shadow: 0 0 12px 3px #b0b0c8, 0 0 24px 6px rgba(176,176,200,.3); opacity: .85; }
  50% { box-shadow: 0 0 22px 7px #d8d8e8, 0 0 44px 14px rgba(216,216,232,.5); opacity: 1; }
  100% { box-shadow: 0 0 15px 4px #b0b0c8, 0 0 30px 8px rgba(176,176,200,.35); opacity: .9; }
}
@keyframes mcfr-river {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(.98); }
}
@keyframes mcfr-weep {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(2deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes mcfr-reflection {
  0% { transform: translateX(0) scale(1); opacity: .3; }
  50% { transform: translateX(2px) scale(1.1); opacity: .5; }
  100% { transform: translateX(-2px) scale(.95); opacity: .3; }
}
@keyframes mcfr-reed {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes mcfr-mist {
  0% { transform: translateX(-8px); opacity: .3; }
  50% { transform: translateX(8px); opacity: .5; }
  100% { transform: translateX(-8px); opacity: .3; }
}

.scn-littimer-penitent-speech {
  background: linear-gradient(180deg, #3a3028 0%, #2a221a 60%, #1a1410 100%),
              radial-gradient(ellipse at 70% 30%, rgba(220,200,160,0.3) 0%, transparent 50%);
}
.scn-littimer-penitent-speech .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4e4238 0%, #2e2620 100%);
  animation: lp-wall 20s ease-in-out infinite;
}
.scn-littimer-penitent-speech .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1410 0%, #2a221a 100%);
}
.scn-littimer-penitent-speech .window {
  position: absolute; top: 15%; left: 65%; width: 80px; height: 120px;
  background: radial-gradient(circle at 50% 50%, #f4e6c8 0%, #c4a87c 70%);
  border: 6px solid #1a1410;
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(244,230,200,0.4);
  animation: lp-window 5s ease-in-out infinite alternate;
}
.scn-littimer-penitent-speech .bars {
  position: absolute; top: 15%; height: 120px; width: 6px;
  background: linear-gradient(180deg, #1a1410, #0a0806);
  border-radius: 2px;
}
.scn-littimer-penitent-speech .left-bar { left: calc(65% + 20px); }
.scn-littimer-penitent-speech .right-bar { left: calc(65% + 50px); }
.scn-littimer-penitent-speech .figure {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lp-figure 8s ease-in-out infinite;
}
.scn-littimer-penitent-speech .podium {
  position: absolute; bottom: 22%; left: 30%; width: 100px; height: 20px;
  background: linear-gradient(0deg, #2a221a, #3a3028);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-littimer-penitent-speech .light-beam {
  position: absolute; top: 10%; left: 62%; width: 100px; height: 200px;
  background: linear-gradient(180deg, rgba(244,230,200,0.3) 0%, transparent 80%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: lp-beam 6s ease-in-out infinite alternate;
}
.scn-littimer-penitent-speech .dust {
  position: absolute; top: 25%; left: 40%; width: 4px; height: 4px;
  background: rgba(244,230,200,0.4);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(244,230,200,0.2);
  animation: lp-dust 12s linear infinite;
}
@keyframes lp-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lp-window { 0% { box-shadow: 0 0 20px 5px rgba(244,230,200,0.3); } 50% { box-shadow: 0 0 40px 15px rgba(244,230,200,0.6); } 100% { box-shadow: 0 0 25px 8px rgba(244,230,200,0.4); } }
@keyframes lp-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lp-beam { 0% { opacity: 0.6; transform: skewX(-2deg); } 50% { opacity: 0.9; transform: skewX(2deg); } 100% { opacity: 0.7; transform: skewX(-1deg); } }
@keyframes lp-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 20% { opacity: 0.5; } 80% { opacity: 0.3; } 100% { transform: translate(30px, -20px) scale(0.5); opacity: 0; } }

.scn-heep-penitent-request {
  background: linear-gradient(180deg, #3a2e26 0%, #2a1e16 60%, #1a0e0a 100%),
              radial-gradient(ellipse at 30% 40%, rgba(255,200,120,0.25) 0%, transparent 60%);
}
.scn-heep-penitent-request .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e16 100%);
}
.scn-heep-penitent-request .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1e16 100%);
}
.scn-heep-penitent-request .desk {
  position: absolute; bottom: 18%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(0deg, #3a2818, #4a3828);
  border-radius: 4px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}
.scn-heep-penitent-request .chair {
  position: absolute; bottom: 0; left: 32%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%);
  border-radius: 10% 10% 0 0;
}
.scn-heep-penitent-request .figure-hunched {
  position: absolute; bottom: 24%; left: 33%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a0e0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hp-figure 6s ease-in-out infinite;
}
.scn-heep-penitent-request .candle {
  position: absolute; bottom: 38%; left: 62%; width: 6px; height: 14px;
  background: linear-gradient(0deg, #f0d080, #ffe0a0);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(255,200,100,0.5);
  animation: hp-candle 3s ease-in-out infinite;
}
.scn-heep-penitent-request .candle-glow {
  position: absolute; bottom: 34%; left: 58%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,200,100,0.35) 0%, transparent 70%);
  border-radius: 50%;
  animation: hp-candle 3s ease-in-out infinite alternate;
}
.scn-heep-penitent-request .letter {
  position: absolute; bottom: 32%; left: 45%; width: 40px; height: 26px;
  background: linear-gradient(0deg, #e8d8b8, #f0e0c8);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.scn-heep-penitent-request .inkwell {
  position: absolute; bottom: 30%; left: 55%; width: 10px; height: 12px;
  background: #1a1410;
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5);
}
@keyframes hp-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-2px) rotate(0deg); } }
@keyframes hp-candle { 0% { opacity: 0.8; box-shadow: 0 0 6px 1px rgba(255,200,100,0.4); } 50% { opacity: 1; box-shadow: 0 0 12px 4px rgba(255,200,100,0.7); } 100% { opacity: 0.85; box-shadow: 0 0 8px 2px rgba(255,200,100,0.5); } }

.scn-heep-and-littimer-offences {
  background: linear-gradient(180deg, #2e2824 0%, #1e1814 60%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 20%, rgba(200,180,140,0.2) 0%, transparent 50%);
}
.scn-heep-and-littimer-offences .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a322e 0%, #1e1814 100%);
}
.scn-heep-and-littimer-offences .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0e0a08 0%, #1e1814 100%);
}
.scn-heep-and-littimer-offences .table {
  position: absolute; bottom: 22%; left: 30%; width: 160px; height: 20px;
  background: linear-gradient(0deg, #2a1e14, #3a2a20);
  border-radius: 4px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.6);
}
.scn-heep-and-littimer-offences .figure-one {
  position: absolute; bottom: 26%; left: 32%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hl-figure1 10s ease-in-out infinite;
}
.scn-heep-and-littimer-offences .figure-two {
  position: absolute; bottom: 26%; right: 35%; width: 28px; height: 64px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e120e 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hl-figure2 12s ease-in-out infinite;
}
.scn-heep-and-littimer-offences .window-high {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 80px;
  background: radial-gradient(circle at 50% 50%, #c8b898 0%, #8a7a60 60%);
  border: 4px solid #0e0a08;
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 5px rgba(200,184,152,0.3);
  animation: hl-window 7s ease-in-out infinite alternate;
}
.scn-heep-and-littimer-offences .bars {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 80px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(0deg, transparent, transparent 12px, #0e0a08 12px, #0e0a08 14px);
  pointer-events: none;
}
.scn-heep-and-littimer-offences .lamp-glow {
  position: absolute; top: 5%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(240,220,160,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: hl-lamp 8s ease-in-out infinite;
}
@keyframes hl-figure1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(1px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hl-figure2 { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(2px) rotate(-2deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-1px) rotate(1deg); } }
@keyframes hl-window { 0% { opacity: 0.7; box-shadow: 0 0 10px 2px rgba(200,184,152,0.2); } 50% { opacity: 0.9; box-shadow: 0 0 30px 8px rgba(200,184,152,0.5); } 100% { opacity: 0.75; box-shadow: 0 0 15px 4px rgba(200,184,152,0.3); } }
@keyframes hl-lamp { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }

.scn-christmas-at-home {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a3028 100%),
              radial-gradient(ellipse at 50% 80%, rgba(255,150,50,0.25) 0%, transparent 60%);
}
.scn-christmas-at-home .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
}
.scn-christmas-at-home .fireplace {
  position: absolute; bottom: 15%; left: 20%; width: 120px; height: 100px;
  background: linear-gradient(0deg, #1a1410, #3a2820);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 0 20px 5px rgba(255,150,50,0.3);
}
.scn-christmas-at-home .fire-glow {
  position: absolute; bottom: 18%; left: 25%; width: 80px; height: 60px;
  background: radial-gradient(circle, #ffa040 0%, #ff6000 40%, transparent 70%);
  border-radius: 50% 50% 0 0;
  animation: ca-fire 3s ease-in-out infinite alternate;
}
.scn-christmas-at-home .mantel {
  position: absolute; bottom: 38%; left: 17%; width: 130px; height: 12px;
  background: linear-gradient(0deg, #3a2820, #4a3828);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-christmas-at-home .window-snow {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 50%, #e0e8f0 0%, #90a8b8 80%);
  border: 4px solid #2a2018;
  border-radius: 4px;
  box-shadow: 0 0 15px 3px rgba(200,220,240,0.2);
  animation: ca-window 10s ease-in-out infinite alternate;
}
.scn-christmas-at-home .tree {
  position: absolute; bottom: 18%; right: 40%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #2a6a3a 0%, #1a4a2a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: ca-tree 12s ease-in-out infinite;
}
.scn-christmas-at-home .sofa {
  position: absolute; bottom: 5%; left: 40%; width: 100px; height: 40px;
  background: linear-gradient(0deg, #5a2a2a, #7a3a3a);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-christmas-at-home .figure-sitting {
  position: absolute; bottom: 10%; left: 43%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ca-figure 4s ease-in-out infinite;
}
.scn-christmas-at-home .garland {
  position: absolute; top: 35%; left: 10%; right: 10%; height: 20px;
  background: repeating-linear-gradient(90deg, #2a6a3a 0px, #2a6a3a 10px, #7a3a3a 10px, #7a3a3a 20px);
  filter: blur(1px);
  opacity: 0.7;
  animation: ca-garland 8s linear infinite;
}
@keyframes ca-fire { 0% { transform: scale(1) rotate(-2deg); opacity: 0.8; } 50% { transform: scale(1.1) rotate(0deg); opacity: 1; } 100% { transform: scale(0.95) rotate(2deg); opacity: 0.85; } }
@keyframes ca-window { 0% { opacity: 0.6; box-shadow: 0 0 5px 1px rgba(200,220,240,0.1); } 50% { opacity: 0.9; box-shadow: 0 0 20px 6px rgba(200,220,240,0.3); } 100% { opacity: 0.7; box-shadow: 0 0 10px 3px rgba(200,220,240,0.2); } }
@keyframes ca-tree { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ca-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes ca-garland { 0% { background-position: 0 0; } 100% { background-position: 100% 0; } }

/* omer-and-astma */
.scn-omer-and-astma {
  background: 
    linear-gradient(135deg, #2b1d14 0%, #1f1410 50%, #3a241b 100%),
    radial-gradient(ellipse at 30% 20%, #4a3520 0%, transparent 60%);
}
.scn-omer-and-astma .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1c120c 100%);
  animation: oa-wall 12s ease-in-out infinite alternate;
}
.scn-omer-and-astma .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0e08 0%, #2a1a12 100%);
  animation: oa-floor 8s ease-in-out infinite;
}
.scn-omer-and-astma .chair {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: oa-chair 6s ease-in-out infinite;
}
.scn-omer-and-astma .omer {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oa-figure 4s ease-in-out infinite alternate;
}
.scn-omer-and-astma .visitor {
  position: absolute; bottom: 22%; left: 52%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oa-figure 5s ease-in-out infinite alternate 0.5s;
}
.scn-omer-and-astma .pipe {
  position: absolute; bottom: 38%; left: 44%; width: 14px; height: 4px;
  background: #6a4a2a; border-radius: 40%;
  transform: rotate(20deg);
  animation: oa-pipe 2s ease-in-out infinite alternate;
}
.scn-omer-and-astma .smoke-1 {
  position: absolute; bottom: 42%; left: 46%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(200,180,150,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: oa-smoke 6s ease-out infinite;
}
.scn-omer-and-astma .smoke-2 {
  position: absolute; bottom: 44%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(200,180,150,0.3) 0%, transparent 70%);
  filter: blur(3px);
  animation: oa-smoke 7s ease-out infinite 0.8s;
}
.scn-omer-and-astma .lamp {
  position: absolute; top: 12%; left: 20%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #ffcc80 0%, #b08040 50%, #5a3010 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 8px #b08040, 0 0 60px 16px rgba(176,128,64,0.3);
  animation: oa-lamp 3s ease-in-out infinite alternate;
}
@keyframes oa-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes oa-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes oa-chair { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(0) } }
@keyframes oa-figure { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-1deg) } }
@keyframes oa-pipe { 0% { transform: rotate(18deg) } 50% { transform: rotate(22deg) } 100% { transform: rotate(18deg) } }
@keyframes oa-smoke { 0% { transform: translate(0,0) scale(1); opacity: 0.6 } 50% { transform: translate(-4px,-12px) scale(1.5); opacity: 0.3 } 100% { transform: translate(6px,-24px) scale(2); opacity: 0 } }
@keyframes oa-lamp { 0% { box-shadow: 0 0 20px 4px #b08040, 0 0 40px 8px rgba(176,128,64,0.2); opacity: 0.9 } 50% { box-shadow: 0 0 40px 12px #e0b060, 0 0 60px 16px rgba(224,176,96,0.4); opacity: 1 } 100% { box-shadow: 0 0 25px 6px #b08040, 0 0 50px 12px rgba(176,128,64,0.25); opacity: 0.85 } }

/* trade-cut-off */
.scn-trade-cut-off {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1e22 40%, #1f1418 100%),
    radial-gradient(ellipse at 70% 30%, #3a2a30 0%, transparent 70%);
}
.scn-trade-cut-off .bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1e1520 0%, #0f0a10 100%);
  animation: tc-bg 10s ease-in-out infinite alternate;
}
.scn-trade-cut-off .counter {
  position: absolute; bottom: 20%; left: 20%; right: 10%; height: 8%;
  background: linear-gradient(0deg, #4a3028 0%, #2a1a12 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.7);
  animation: tc-counter 7s ease-in-out infinite;
}
.scn-trade-cut-off .shelf {
  position: absolute; top: 25%; left: 10%; width: 60%; height: 4%;
  background: linear-gradient(180deg, #3a2020 0%, #2a1010 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: tc-shelf 9s ease-in-out infinite alternate;
}
.scn-trade-cut-off .omer-shop {
  position: absolute; bottom: 28%; left: 30%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-figure 3s ease-in-out infinite;
}
.scn-trade-cut-off .customer {
  position: absolute; bottom: 24%; left: 55%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a2e22 0%, #1e120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-figure 3.5s ease-in-out infinite 0.5s;
}
.scn-trade-cut-off .door {
  position: absolute; bottom: 20%; right: 8%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  animation: tc-door 5s ease-in-out infinite alternate;
}
.scn-trade-cut-off .door-gap {
  position: absolute; bottom: 30%; right: 10%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #0f0a08, #1a0e0a);
  animation: tc-gap 6s ease-in-out infinite;
}
.scn-trade-cut-off .candle {
  position: absolute; top: 18%; left: 40%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 20%, #ffdd88 0%, #b08040 60%, #5a3010 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #c09050, 0 0 40px 12px rgba(192,144,80,0.3);
  animation: tc-candle 4s ease-in-out infinite alternate;
}
.scn-trade-cut-off .shadow-sharp {
  position: absolute; bottom: 20%; left: 25%; width: 40%; height: 10%;
  background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: tc-shadow 3s ease-in-out infinite alternate;
}
@keyframes tc-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes tc-counter { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes tc-shelf { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes tc-figure { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(-1deg) } }
@keyframes tc-door { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(5deg) } 100% { transform: rotateY(0deg) } }
@keyframes tc-gap { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.4 } }
@keyframes tc-candle { 0% { box-shadow: 0 0 12px 2px #c09050 } 50% { box-shadow: 0 0 24px 8px #e0b060 } 100% { box-shadow: 0 0 16px 4px #c09050 } }
@keyframes tc-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }

/* grandfather-and-wind */
.scn-grandfather-and-wind {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1f120a 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-grandfather-and-wind .wall-fun {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1c120c 100%);
  animation: gw-wall 4s ease-in-out infinite alternate;
}
.scn-grandfather-and-wind .floor-fun {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1a0e08 0%, #2a1a10 100%);
  animation: gw-floor 5s ease-in-out infinite;
}
.scn-grandfather-and-wind .bellows {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #8a6a4a 0%, #5a3a2a 50%, #3a2010 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: gw-bellows 2s ease-in-out infinite alternate;
}
.scn-grandfather-and-wind .grandfather {
  position: absolute; bottom: 22%; left: 30%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gw-figure 3s ease-in-out infinite;
}
.scn-grandfather-and-wind .wind-puffs {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(255,220,180,0.5) 0%, transparent 70%);
  filter: blur(3px);
  animation: gw-puff 2.5s ease-out infinite;
}
.scn-grandfather-and-wind .chair-tilt {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 8% 8% 4% 4%;
  transform: rotate(5deg);
  animation: gw-chair 3.5s ease-in-out infinite alternate;
}
.scn-grandfather-and-wind .lamp-flash {
  position: absolute; top: 10%; right: 20%; width: 18px; height: 26px;
  background: radial-gradient(circle at 50% 30%, #ffe0a0 0%, #c09050 60%, #5a3010 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 40px 10px #e0b060, 0 0 80px 20px rgba(224,176,96,0.2);
  animation: gw-lamp 5s ease-in-out infinite alternate;
}
.scn-grandfather-and-wind .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 20% 30%, rgba(255,220,180,0.1) 0%, transparent 50%),
              radial-gradient(circle at 80% 70%, rgba(255,220,180,0.05) 0%, transparent 50%);
  animation: gw-dust 8s linear infinite;
}
@keyframes gw-wall { 0% { transform: scale(1.01) } 50% { transform: scale(1) } 100% { transform: scale(1.01) } }
@keyframes gw-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gw-bellows { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(1.2) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes gw-figure { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-3deg) } }
@keyframes gw-puff { 0% { transform: translate(0,0) scale(1); opacity: 0.6 } 50% { transform: translate(-6px,-15px) scale(1.8); opacity: 0.2 } 100% { transform: translate(8px,-30px) scale(2.5); opacity: 0 } }
@keyframes gw-chair { 0% { transform: rotate(3deg) } 50% { transform: rotate(7deg) translateY(-3px) } 100% { transform: rotate(5deg) } }
@keyframes gw-lamp { 0% { box-shadow: 0 0 20px 4px #e0b060 } 50% { box-shadow: 0 0 50px 15px #ffd080 } 100% { box-shadow: 0 0 30px 8px #e0b060 } }
@keyframes gw-dust { 0% { background-position: 0 0 } 50% { background-position: 10% 5% } 100% { background-position: 0 0 } }

/* limited-to-emly */
.scn-limited-to-emly {
  background: 
    linear-gradient(180deg, #2a1e2e 0%, #1f1425 40%, #150e1a 100%),
    radial-gradient(ellipse at 60% 20%, #3a2a3e 0%, transparent 70%);
}
.scn-limited-to-emly .wall-calm {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e2e 0%, #1a0e1a 100%);
  animation: le-wall 15s ease-in-out infinite alternate;
}
.scn-limited-to-emly .window {
  position: absolute; top: 15%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #7a6a7e 0%, #3a2a3e 70%);
  border: 2px solid #2a1a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: le-window 6s ease-in-out infinite alternate;
}
.scn-limited-to-emly .emly {
  position: absolute; bottom: 28%; left: 45%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #6a4a5a 0%, #3a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: le-figure 6s ease-in-out infinite;
}
.scn-limited-to-emly .lamp-glow {
  position: absolute; top: 20%; left: 20%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 20%, #d0b080 0%, #806040 60%, #402010 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 8px #a07850, 0 0 60px 16px rgba(160,120,80,0.3);
  animation: le-lamp 4s ease-in-out infinite alternate;
}
.scn-limited-to-emly .lamb {
  position: absolute; bottom: 20%; left: 60%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 40%, #c0b0a0 0%, #8a7a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: le-lamb 5s ease-in-out infinite;
}
.scn-limited-to-emly .curtain {
  position: absolute; top: 15%; left: 25%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 4px; animation: le-curtain 8s ease-in-out infinite alternate;
}
.scn-limited-to-emly .book {
  position: absolute; bottom: 12%; left: 35%; width: 16px; height: 12px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0e1a 100%);
  border-radius: 2px; transform: rotate(5deg);
  animation: le-book 7s ease-in-out infinite;
}
.scn-limited-to-emly .shadow-soft {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(0deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: le-shadow 9s ease-in-out infinite alternate;
}
@keyframes le-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes le-window { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }
@keyframes le-figure { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(-1deg) } }
@keyframes le-lamp { 0% { box-shadow: 0 0 20px 4px #a07850 } 50% { box-shadow: 0 0 35px 10px #c09860 } 100% { box-shadow: 0 0 25px 6px #a07850 } }
@keyframes le-lamb { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateX(2px) } 100% { transform: scale(1) } }
@keyframes le-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes le-book { 0% { transform: rotate(3deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(3deg) } }
@keyframes le-shadow { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }

.scn-emly-happy-life {
  background: linear-gradient(180deg, #2b1a0a 0%, #3a2415 50%, #4a2e1a 100%), radial-gradient(ellipse at 50% 80%, #b85a2e 0%, transparent 60%);
}
.scn-emly-happy-life .fireplace {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-emly-happy-life .glow-fire {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ff8c42 0%, #b85a2e 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ff8c42;
  animation: emly-glow 3s ease-in-out infinite alternate;
}
.scn-emly-happy-life .chair {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.4);
  animation: emly-chair 8s ease-in-out infinite;
}
.scn-emly-happy-life .figure {
  position: absolute; bottom: 22%; left: 22%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: emly-figure-rock 5s ease-in-out infinite;
}
.scn-emly-happy-life .window {
  position: absolute; top: 15%; right: 12%; width: 70px; height: 60px;
  background: linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 100%);
  border: 6px solid #4a3020;
  border-radius: 4px;
  box-shadow: inset 0 0 20px #3a5a8a;
  animation: emly-window 12s ease-in-out infinite alternate;
}
.scn-emly-happy-life .rug {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(90deg, #8a5a4a 0%, #6a4a3a 30%, #4a3a2a 70%, #8a5a4a 100%);
  border-radius: 50%;
  opacity: 0.7;
  animation: emly-rug 15s linear infinite;
}
.scn-emly-happy-life .cat {
  position: absolute; bottom: 18%; left: 35%; width: 16px; height: 12px;
  background: #4a3a2a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: emly-cat 6s ease-in-out infinite;
}
@keyframes emly-glow { 0% { opacity: 0.7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.8; transform: translateX(-50%) scale(0.95); } }
@keyframes emly-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes emly-figure-rock { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes emly-window { 0% { box-shadow: inset 0 0 20px #3a5a8a; } 50% { box-shadow: inset 0 0 40px #5a8aba; } 100% { box-shadow: inset 0 0 20px #3a5a8a; } }
@keyframes emly-rug { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }
@keyframes emly-cat { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(10deg); } 60% { transform: translateY(0) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-gummidge-bucket-incident {
  background: linear-gradient(180deg, #b8d8f0 0%, #e8f0d0 60%, #c8b878 100%), radial-gradient(circle at 30% 40%, #f5f0c0 0%, transparent 70%);
}
.scn-gummidge-bucket-incident .figure {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: gum-figure 2s ease-in-out infinite;
}
.scn-gummidge-bucket-incident .bucket {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform-origin: top center;
  animation: gum-bucket 1.5s ease-in-out infinite;
}
.scn-gummidge-bucket-incident .splash-1 {
  position: absolute; bottom: 28%; left: 58%; width: 8px; height: 8px;
  background: #c8e8f0;
  border-radius: 50%;
  box-shadow: 0 0 6px #a0c8d8;
  animation: gum-splash1 1s ease-out infinite;
}
.scn-gummidge-bucket-incident .splash-2 {
  position: absolute; bottom: 30%; left: 52%; width: 6px; height: 6px;
  background: #c8e8f0;
  border-radius: 50%;
  box-shadow: 0 0 4px #a0c8d8;
  animation: gum-splash2 1.2s ease-out infinite 0.3s;
}
.scn-gummidge-bucket-incident .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 100px; height: 10px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  animation: gum-shadow 2s ease-in-out infinite;
}
.scn-gummidge-bucket-incident .sunrays {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 70% 30%, rgba(255,245,180,0.3) 0%, transparent 50%);
  animation: gum-sunrays 4s linear infinite;
}
.scn-gummidge-bucket-incident .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 40% 60% 0 0 / 100% 80% 0 0;
}
@keyframes gum-figure { 0% { transform: translateY(0) rotate(-5deg); } 30% { transform: translateY(-4px) rotate(8deg); } 60% { transform: translateY(0) rotate(3deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes gum-bucket { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(20deg) scale(0.9); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes gum-splash1 { 0% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(-20px) scale(0.3); opacity: 0; } }
@keyframes gum-splash2 { 0% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(-25px) scale(0.4); opacity: 0; } }
@keyframes gum-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.8; } 100% { transform: scaleX(1); opacity: 0.5; } }
@keyframes gum-sunrays { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

.scn-port-middlebay-tribute {
  background: linear-gradient(180deg, #8fc8e8 0%, #b8e0f0 40%, #e8f0c0 80%, #c8b878 100%), radial-gradient(ellipse at 20% 30%, #f0f0c0 0%, transparent 60%);
}
.scn-port-middlebay-tribute .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6aa8d0 0%, #8fc8e8 50%, #c8e0f0 100%);
  animation: pmb-sky 20s ease-in-out infinite alternate;
}
.scn-port-middlebay-tribute .sea {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a6a8a 0%, #4a8aaa 40%, #5a9aba 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  animation: pmb-sea 10s linear infinite;
}
.scn-port-middlebay-tribute .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c8b878 0%, #b0a060 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
}
.scn-port-middlebay-tribute .ship {
  position: absolute; bottom: 22%; left: 40%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pmb-ship 8s ease-in-out infinite;
}
.scn-port-middlebay-tribute .sail-fore {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #f0f0e0 0%, #d0d0b0 100%);
  border-radius: 0 50% 50% 0 / 0 80% 80% 0;
  transform-origin: bottom left;
  animation: pmb-sail1 6s ease-in-out infinite;
}
.scn-port-middlebay-tribute .sail-aft {
  position: absolute; bottom: 28%; left: 48%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #f0f0e0 0%, #d0d0b0 100%);
  border-radius: 50% 0 0 50% / 80% 0 0 80%;
  transform-origin: bottom right;
  animation: pmb-sail2 6s ease-in-out infinite 1s;
}
.scn-port-middlebay-tribute .lighthouse {
  position: absolute; bottom: 20%; right: 15%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a080 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,220,140,0.4);
  animation: pmb-lighthouse 4s ease-in-out infinite alternate;
}
.scn-port-middlebay-tribute .bird {
  position: absolute; top: 15%; left: 25%; width: 20px; height: 12px;
  background: transparent;
  border: 4px solid #3a4a5a;
  border-bottom: none;
  border-radius: 50%;
  transform: rotate(-30deg);
  animation: pmb-bird 12s linear infinite;
  box-shadow: 0 0 0 2px #5a6a7a;
}
@keyframes pmb-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pmb-sea { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(0); } }
@keyframes pmb-ship { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes pmb-sail1 { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } }
@keyframes pmb-sail2 { 0% { transform: rotate(0deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(0deg); } }
@keyframes pmb-lighthouse { 0% { box-shadow: 0 0 20px 8px rgba(255,220,140,0.4); } 50% { box-shadow: 0 0 30px 15px rgba(255,240,160,0.8); } 100% { box-shadow: 0 0 20px 8px rgba(255,220,140,0.4); } }
@keyframes pmb-bird { 0% { transform: translateX(0) rotate(-30deg); } 50% { transform: translateX(40vw) rotate(10deg); } 100% { transform: translateX(80vw) rotate(-30deg); } }

.scn-final-visions {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 40%, #c8b890 100%), radial-gradient(ellipse at 80% 30%, #ffe8c0 0%, transparent 50%);
}
.scn-final-visions .window-dawn {
  position: absolute; top: 10%; right: 10%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #ffd8a0 0%, #f0c080 50%, #e0b060 100%);
  border: 8px solid #8a6a4a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px #e0b060;
  animation: fv-dawn 15s ease-in-out infinite alternate;
}
.scn-final-visions .desk {
  position: absolute; bottom: 20%; left: 10%; width: 70%; height: 15%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-final-visions .book {
  position: absolute; bottom: 28%; left: 20%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-left: 4px solid #c8a878;
  border-radius: 2px;
  transform-origin: left center;
  animation: fv-book 10s ease-in-out infinite;
}
.scn-final-visions .figure-doctor {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: fv-doctor 6s ease-in-out infinite;
}
.scn-final-visions .figure-wife {
  position: absolute; bottom: 25%; left: 45%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: fv-wife 7s ease-in-out infinite 0.5s;
}
.scn-final-visions .lamp {
  position: absolute; bottom: 32%; left: 55%; width: 12px; height: 25px;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border-radius: 30%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.5);
  animation: fv-lamp 3s ease-in-out infinite alternate;
}
.scn-final-visions .chair {
  position: absolute; bottom: 22%; left: 15%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 2px 4px 10px rgba(0,0,0,0.3);
}
@keyframes fv-dawn { 0% { opacity: 0.6; box-shadow: inset 0 0 30px #e0b060; } 50% { opacity: 1; box-shadow: inset 0 0 60px #ffd880; } 100% { opacity: 0.8; box-shadow: inset 0 0 30px #e0b060; } }
@keyframes fv-book { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.1); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes fv-doctor { 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 fv-wife { 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 fv-lamp { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.9; transform: scaleY(1); } }

.scn-stay-for-funeral {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1e3a 40%, #1e1428 100%),
    radial-gradient(ellipse at 50% 100%, #2a1e3a 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-stay-for-funeral .bg-walls {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e3a 0%, #1e1428 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-stay-for-funeral .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
}
.scn-stay-for-funeral .window {
  position: absolute;
  top: 18%; right: 12%;
  width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,210,240,0.15) 0%, transparent 70%);
  border: 2px solid #3a2a4a;
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(200,210,240,0.1);
  animation: sf-window 8s ease-in-out infinite alternate;
}
.scn-stay-for-funeral .coffin {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 140px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-stay-for-funeral .candle-1 {
  position: absolute;
  bottom: 32%; left: 35%;
  width: 6px; height: 30px;
  background: linear-gradient(180deg, #e8d8b0 0%, #a08050 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #c09050;
  animation: sf-candle 3s ease-in-out infinite alternate;
}
.scn-stay-for-funeral .candle-2 {
  position: absolute;
  bottom: 32%; right: 35%;
  width: 6px; height: 30px;
  background: linear-gradient(180deg, #e8d8b0 0%, #a08050 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #c09050;
  animation: sf-candle 3s ease-in-out infinite alternate;
  animation-delay: -1.5s;
}
.scn-stay-for-funeral .figure-kneeling {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 30px; height: 50px;
  transform: translateX(-50%) translateY(4px);
  background: linear-gradient(180deg, #1a1428 0%, #0a0818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sf-kneel 5s ease-in-out infinite;
}
.scn-stay-for-funeral .moonbeam {
  position: absolute;
  top: 18%; right: 12%;
  width: 80px; height: 120px;
  background: linear-gradient(180deg, rgba(180,190,220,0.08) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(10px);
  animation: sf-moonbeam 12s ease-in-out infinite alternate;
}
@keyframes sf-window {
  0% { background: radial-gradient(ellipse at 50% 50%, rgba(200,210,240,0.15) 0%, transparent 70%); }
  50% { background: radial-gradient(ellipse at 50% 50%, rgba(200,210,240,0.25) 0%, transparent 70%); }
  100% { background: radial-gradient(ellipse at 50% 50%, rgba(200,210,240,0.1) 0%, transparent 70%); }
}
@keyframes sf-candle {
  0% { box-shadow: 0 0 12px 4px #c09050; transform: scaleY(1); }
  50% { box-shadow: 0 0 20px 8px #d0a060; transform: scaleY(1.05); }
  100% { box-shadow: 0 0 12px 4px #c09050; transform: scaleY(1); }
}
@keyframes sf-kneel {
  0% { transform: translateX(-50%) translateY(4px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(6px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(4px) rotate(0deg); }
}
@keyframes sf-moonbeam {
  0% { opacity: 0.6; transform: skewX(-10deg) translateY(0); }
  50% { opacity: 0.9; transform: skewX(-10deg) translateY(2px); }
  100% { opacity: 0.5; transform: skewX(-10deg) translateY(-1px); }
}

.scn-first-of-the-lot {
  background: 
    linear-gradient(180deg, #4a2a1a 0%, #6a3a1a 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #8a4a2a 0%, transparent 70%);
}
.scn-first-of-the-lot .bg-wall {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}
.scn-first-of-the-lot .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%);
}
.scn-first-of-the-lot .fireplace {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 120px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 20px 20px 8px 8px;
  box-shadow: inset 0 -20px 40px #8a4a2a;
}
.scn-first-of-the-lot .fire-glow {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 80px; height: 60px;
  transform: translateX(-50%) translateY(-20px);
  background: radial-gradient(ellipse at 50% 50%, #d08030 0%, #a05020 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: fl-fire 2s ease-in-out infinite alternate;
}
.scn-first-of-the-lot .table {
  position: absolute;
  bottom: 25%; left: 22%;
  width: 100px; height: 10px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-first-of-the-lot .figure-left {
  position: absolute;
  bottom: 25%; left: 36%;
  width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fl-figure 4s ease-in-out infinite;
}
.scn-first-of-the-lot .figure-right {
  position: absolute;
  bottom: 25%; left: 58%;
  width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1428 0%, #0a0818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fl-figure 4s ease-in-out infinite reverse;
}
.scn-first-of-the-lot .hearth-rug {
  position: absolute;
  bottom: 25%; left: 45%;
  width: 80px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #8a4a2a 0%, #a06040 50%, #8a4a2a 100%);
  border-radius: 50%;
  opacity: 0.7;
}
@keyframes fl-fire {
  0% { transform: translateX(-50%) translateY(-20px) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) translateY(-22px) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) translateY(-20px) scale(0.95); opacity: 0.8; }
}
@keyframes fl-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}

.scn-light-in-window {
  background: 
    linear-gradient(180deg, #0e1428 0%, #1a1a3e 40%, #2a2a5a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a5a 0%, transparent 70%);
}
.scn-light-in-window .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0e1428 0%, #1a1a3e 100%);
  animation: lw-sky 12s ease-in-out infinite alternate;
}
.scn-light-in-window .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-light-in-window .house {
  position: absolute;
  bottom: 40%; left: 50%;
  width: 100px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 20px rgba(0,0,0,0.6);
}
.scn-light-in-window .window {
  position: absolute;
  bottom: 50%; left: 50%;
  width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0c068 0%, #d09040 60%, #a06020 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px #d09040, 0 0 60px 20px rgba(200,140,60,0.4);
  animation: lw-glow 3s ease-in-out infinite alternate;
}
.scn-light-in-window .path {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 60px; height: 100px;
  transform: translateX(-30%) skewX(-10deg);
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 0 0 20px 20px;
}
.scn-light-in-window .figure {
  position: absolute;
  bottom: 30%; left: 48%;
  width: 20px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lw-walk 6s ease-in-out infinite;
}
.scn-light-in-window .stars {
  position: absolute;
  top: 10%; left: 10%;
  width: 3px; height: 3px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 20px 30px 0 1px #fff, 40px 10px 0 0 #fff, 60px 50px 0 2px #fff, 80px 20px 0 0 #fff;
  animation: lw-twinkle 4s ease-in-out infinite alternate;
}
.scn-light-in-window .tree-shadow {
  position: absolute;
  bottom: 40%; left: 20%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: scale(1.2);
  filter: blur(4px);
  opacity: 0.4;
  animation: lw-tree 15s ease-in-out infinite alternate;
}
@keyframes lw-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.7; }
}
@keyframes lw-glow {
  0% { box-shadow: 0 0 20px 6px #d09040, 0 0 40px 12px rgba(200,140,60,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 14px #f0c068, 0 0 70px 24px rgba(240,192,104,0.5); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px #d09040, 0 0 40px 12px rgba(200,140,60,0.3); opacity: 0.9; }
}
@keyframes lw-walk {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-48%) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-52%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes lw-twinkle {
  0% { opacity: 0.4; }
  50% { opacity: 1; }
  100% { opacity: 0.3; }
}
@keyframes lw-tree {
  0% { transform: scale(1.2) translateY(0); }
  50% { transform: scale(1.25) translateY(-2px); }
  100% { transform: scale(1.15) translateY(1px); }
}

.scn-broken-heart-weeping {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 40%, #1a0e1e 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a2e 0%, transparent 70%);
}
.scn-broken-heart-weeping .bg-walls {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a2e 0%, #1a0e1e 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-broken-heart-weeping .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a0e14 0%, #0a0a0e 100%);
}
.scn-broken-heart-weeping .window {
  position: absolute;
  top: 20%; right: 15%;
  width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,160,200,0.1) 0%, transparent 70%);
  border: 1px solid #3a2a4a;
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(180,160,200,0.05);
  animation: bh-window 7s ease-in-out infinite alternate;
}
.scn-broken-heart-weeping .chair {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 50px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-broken-heart-weeping .figure-ham {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 30px; height: 55px;
  transform: translateX(-50%) translateY(5px);
  background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bh-weep 5s ease-in-out infinite;
}
.scn-broken-heart-weeping .tear-1 {
  position: absolute;
  bottom: 42%; left: 48%;
  width: 4px; height: 6px;
  background: radial-gradient(circle, rgba(200,200,220,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: bh-tear 3s ease-in-out infinite;
}
.scn-broken-heart-weeping .tear-2 {
  position: absolute;
  bottom: 42%; left: 52%;
  width: 4px; height: 6px;
  background: radial-gradient(circle, rgba(200,200,220,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: bh-tear 3s ease-in-out infinite;
  animation-delay: -1.5s;
}
.scn-broken-heart-weeping .shadow {
  position: absolute;
  bottom: 30%; left: 45%;
  width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%);
  transform: translateX(-50%);
  filter: blur(8px);
  animation: bh-shadow 5s ease-in-out infinite alternate;
}
@keyframes bh-window {
  0% { background: radial-gradient(ellipse at 50% 50%, rgba(180,160,200,0.08) 0%, transparent 70%); }
  50% { background: radial-gradient(ellipse at 50% 50%, rgba(180,160,200,0.15) 0%, transparent 70%); }
  100% { background: radial-gradient(ellipse at 50% 50%, rgba(180,160,200,0.06) 0%, transparent 70%); }
}
@keyframes bh-weep {
  0% { transform: translateX(-50%) translateY(5px) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-50%) translateY(6px) rotate(2deg) scaleY(1.02); }
  50% { transform: translateX(-50%) translateY(4px) rotate(-1deg) scaleY(0.98); }
  75% { transform: translateX(-50%) translateY(7px) rotate(1deg) scaleY(1.01); }
  100% { transform: translateX(-50%) translateY(5px) rotate(0deg) scaleY(1); }
}
@keyframes bh-tear {
  0% { transform: translateY(0) scale(1); opacity: 0; }
  20% { opacity: 0.8; }
  80% { opacity: 0.6; transform: translateY(10px) scale(0.8); }
  100% { transform: translateY(14px) scale(0.5); opacity: 0; }
}
@keyframes bh-shadow {
  0% { opacity: 0.4; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.3; transform: translateX(-50%) scale(0.9); }
}

.scn-aunt-asks-opinion-dick { background: linear-gradient(180deg, #f8e6c0 0%, #e3c9a0 50%, #c8a87a 100%), radial-gradient(ellipse at 50% 100%, #d4b88a 0%, transparent 70%); }
.scn-aunt-asks-opinion-dick .aa-wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0ddb8 0%, #dcc49a 100%); }
.scn-aunt-asks-opinion-dick .aa-window { position:absolute; top:10%; left:8%; width:30%; height:45%; background: linear-gradient(180deg, #a8d8ea 0%, #87ceeb 40%, #6bb3d4 100%); border-radius:8px; box-shadow: inset 0 0 20px rgba(255,255,200,.3); }
.scn-aunt-asks-opinion-dick .aa-curtain-left { position:absolute; top:8%; left:6%; width:22%; height:50%; background: linear-gradient(135deg, #c99a6e 0%, #b8845a 100%); border-radius:0 40px 40px 0; animation: aa-curtain 12s ease-in-out infinite alternate; }
.scn-aunt-asks-opinion-dick .aa-curtain-right { position:absolute; top:8%; right:6%; width:22%; height:50%; background: linear-gradient(225deg, #c99a6e 0%, #b8845a 100%); border-radius:40px 0 0 40px; animation: aa-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-aunt-asks-opinion-dick .aa-table { position:absolute; bottom:18%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #b8906a 0%, #9a7a56 100%); border-radius:40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(90,60,30,.3); }
.scn-aunt-asks-opinion-dick .aa-chair-aunt { position:absolute; bottom:20%; left:12%; width:18%; height:50%; background: linear-gradient(180deg, #4a3a28 0%, #3a2a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: aa-breathe 6s ease-in-out infinite; }
.scn-aunt-asks-opinion-dick .aa-chair-dick { position:absolute; bottom:20%; right:12%; width:16%; height:44%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 20% 20% / 60% 60% 30% 30%; }
.scn-aunt-asks-opinion-dick .aa-figure-aunt { position:absolute; bottom:38%; left:18%; width:12%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: aa-aunt-nod 8s ease-in-out infinite; }
.scn-aunt-asks-opinion-dick .aa-figure-dick { position:absolute; bottom:36%; right:16%; width:10%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: aa-dick-nod 8s ease-in-out infinite 2s; }
.scn-aunt-asks-opinion-dick .aa-lamp { position:absolute; top:20%; left:48%; width:8px; height:40px; background: #8a7a6a; border-radius:4px; transform-origin: bottom center; animation: aa-lamp-sway 10s ease-in-out infinite; }
.scn-aunt-asks-opinion-dick .aa-lamp::after { content:''; position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:20px; height:12px; background: radial-gradient(circle, #ffe080 0%, #d4a040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(255,224,128,.4); animation: aa-glow 4s ease-in-out infinite alternate; }
@keyframes aa-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }
@keyframes aa-breathe { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes aa-aunt-nod { 0%,100% { transform: rotate(0); } 50% { transform: rotate(-2deg); } }
@keyframes aa-dick-nod { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg); } }
@keyframes aa-lamp-sway { 0%,100% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } }
@keyframes aa-glow { 0% { opacity:.7; box-shadow: 0 0 20px 4px rgba(255,224,128,.3); } 100% { opacity:1; box-shadow: 0 0 40px 12px rgba(255,224,128,.6); } }

.scn-aunt-defends-dicks-sanity { background: linear-gradient(180deg, #f5dbb0 0%, #e8c69a 40%, #d4b080 100%), radial-gradient(ellipse at 50% 100%, #d6b888 0%, transparent 70%); }
.scn-aunt-defends-dicks-sanity .ad-wall { position:absolute; inset:0; background: linear-gradient(90deg, #f0d4a8 0%, #e8c698 50%, #d8b888 100%); }
.scn-aunt-defends-dicks-sanity .ad-fireplace { position:absolute; bottom:10%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.3); }
.scn-aunt-defends-dicks-sanity .ad-flame { position:absolute; bottom:30%; left:38%; width:24%; height:30%; background: radial-gradient(ellipse at 50% 100%, #ff9933 0%, #ff6600 50%, transparent 100%); border-radius:50%; animation: ad-fire 2s ease-in-out infinite alternate; }
.scn-aunt-defends-dicks-sanity .ad-armchair { position:absolute; bottom:12%; left:10%; width:25%; height:50%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ad-chair-rock 6s ease-in-out infinite; }
.scn-aunt-defends-dicks-sanity .ad-figure-aunt { position:absolute; bottom:28%; left:16%; width:14%; height:28%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ad-aunt-gesture 5s ease-in-out infinite; }
.scn-aunt-defends-dicks-sanity .ad-figure-david { position:absolute; bottom:22%; right:15%; width:10%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ad-david-cower 7s ease-in-out infinite 1s; }
.scn-aunt-defends-dicks-sanity .ad-rug { position:absolute; bottom:0; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #b8886a 0%, #9a7a5a 100%); border-radius:50% 50% 0 0; animation: ad-rug-wave 8s ease-in-out infinite; }
.scn-aunt-defends-dicks-sanity .ad-frame { position:absolute; top:12%; left:55%; width:20%; height:30%; background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%); border:4px solid #c8a870; border-radius:4px; box-shadow: 2px 2px 6px rgba(0,0,0,.2); animation: ad-frame-sway 12s ease-in-out infinite; }
@keyframes ad-fire { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 50% { transform: scaleY(1.2) translateY(-4px); opacity:1; } 100% { transform: scaleY(.9) translateY(2px); opacity:.7; } }
@keyframes ad-chair-rock { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg); } }
@keyframes ad-aunt-gesture { 0% { transform: rotate(-3deg) translateX(0); } 30% { transform: rotate(0) translateX(4px); } 60% { transform: rotate(2deg) translateX(-2px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes ad-david-cower { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(.95) translateY(3px); } }
@keyframes ad-rug-wave { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ad-frame-sway { 0%,100% { transform: rotate(0); } 50% { transform: rotate(1deg); } }

.scn-aunt-rescued-dick { background: linear-gradient(180deg, #f8e4b8 0%, #e8d0a0 40%, #d0b880 100%), radial-gradient(ellipse at 50% 100%, #dcc498 0%, transparent 70%); }
.scn-aunt-rescued-dick .ar-wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0d6a8 0%, #e0c698 100%); }
.scn-aunt-rescued-dick .ar-door { position:absolute; left:5%; top:20%; bottom:40%; width:25%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:10% 0 0 10%; box-shadow: inset -4px 0 12px rgba(0,0,0,.2); animation: ar-door-open 20s ease-in-out infinite; }
.scn-aunt-rescued-dick .ar-lamp { position:absolute; top:15%; left:45%; width:8px; height:45px; background: #7a6a5a; border-radius:4px; box-shadow: 0 0 0 0 #fff; }
.scn-aunt-rescued-dick .ar-lamp::after { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:24px; height:14px; background: radial-gradient(circle,  #ffe080 0%, #d4a040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,224,128,.4); animation: ar-lamp-glow 4s ease-in-out infinite alternate; }
.scn-aunt-rescued-dick .ar-rug { position:absolute; bottom:0; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #c8a878 0%, #a88a5a 100%); border-radius:60% 60% 0 0; animation: ar-rug-wave 10s ease-in-out infinite; }
.scn-aunt-rescued-dick .ar-figure-aunt { position:absolute; bottom:25%; left:20%; width:14%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ar-walk-aunt 6s ease-in-out infinite; }
.scn-aunt-rescued-dick .ar-figure-dick { position:absolute; bottom:25%; left:38%; width:12%; height:26%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ar-walk-dick 6s ease-in-out infinite 2s; }
.scn-aunt-rescued-dick .ar-hand-aunt { position:absolute; bottom:44%; left:30%; width:6px; height:10px; background: #6a5a4a; border-radius:4px; transform:rotate(15deg); animation: ar-hand-aunt 6s ease-in-out infinite; }
.scn-aunt-rescued-dick .ar-hand-dick { position:absolute; bottom:42%; left:38%; width:6px; height:10px; background: #4a3a2a; border-radius:4px; transform:rotate(-10deg); animation: ar-hand-dick 6s ease-in-out infinite 2s; }
@keyframes ar-door-open { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } }
@keyframes ar-lamp-glow { 0% { opacity:.7; box-shadow: 0 0 20px 4px rgba(255,224,128,.3); } 100% { opacity:1; box-shadow: 0 0 40px 12px rgba(255,224,128,.6); } }
@keyframes ar-rug-wave { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ar-walk-aunt { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(6px) translateY(-1px); } 50% { transform: translateX(12px) translateY(0); } 75% { transform: translateX(18px) translateY(-1px); } 100% { transform: translateX(24px) translateY(0); } }
@keyframes ar-walk-dick { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-1px); } 50% { transform: translateX(10px) translateY(0); } 75% { transform: translateX(15px) translateY(-1px); } 100% { transform: translateX(20px) translateY(0); } }
@keyframes ar-hand-aunt { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } }
@keyframes ar-hand-dick { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-15deg); } }

.scn-memorial-word-avoid { background: linear-gradient(180deg, #faeac8 0%, #ecdab0 40%, #d4be90 100%), radial-gradient(ellipse at 50% 100%, #ddd0a8 0%, transparent 70%); }
.scn-memorial-word-avoid .mw-wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0debc 0%, #e0caa0 100%); }
.scn-memorial-word-avoid .mw-desk { position:absolute; bottom:10%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #a08a6a 0%, #8a7658 100%); border-radius:0 0 20% 20%; box-shadow: 0 -4px 12px rgba(0,0,0,.15); transform-origin: bottom center; animation: mw-desk-creak 12s ease-in-out infinite; }
.scn-memorial-word-avoid .mw-papers { position:absolute; bottom:28%; left:35%; right:35%; height:8%; background: linear-gradient(180deg, #f5eac0 0%, #e0d0a0 100%); border-radius:2px; box-shadow: 1px 1px 4px rgba(0,0,0,.1); animation: mw-paper-flutter 8s ease-in-out infinite; }
.scn-memorial-word-avoid .mw-inkwell { position:absolute; bottom:18%; left:42%; width:10px; height:16px; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: mw-ink-bounce 10s ease-in-out infinite; }
.scn-memorial-word-avoid .mw-candle { position:absolute; bottom:30%; left:48%; width:6px; height:30px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%); border-radius:3px; }
.scn-memorial-word-avoid .mw-flame { position:absolute; bottom:58%; left:48%; width:12px; height:14px; margin-left:-3px; background: radial-gradient(circle at 50% 20%, #ffe080 0%, #ff9933 50%, transparent 100%); border-radius:50%; animation: mw-flame-flicker 2s ease-in-out infinite alternate; }
.scn-memorial-word-avoid .mw-figure-aunt { position:absolute; bottom:25%; left:12%; width:14%; height:28%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mw-aunt-still 6s ease-in-out infinite; }
.scn-memorial-word-avoid .mw-figure-david { position:absolute; bottom:25%; right:12%; width:10%; height:22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mw-david-list 7s ease-in-out infinite; }
.scn-memorial-word-avoid .mw-chair-aunt { position:absolute; bottom:8%; left:10%; width:20%; height:45%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 20% 20% / 60% 60% 30% 30%; }
.scn-memorial-word-avoid .mw-chair-david { position:absolute; bottom:8%; right:10%; width:16%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 30% 30%; }
@keyframes mw-desk-creak { 0%,100% { transform: rotate(0); } 50% { transform: rotate(.5deg); } }
@keyframes mw-paper-flutter { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes mw-ink-bounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes mw-flame-flicker { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 50% { transform: scaleY(1.3) translateY(-2px); opacity:1; } 100% { transform: scaleY(.9) translateY(1px); opacity:.7; } }
@keyframes mw-aunt-still { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes mw-david-list { 0%,100% { transform: rotate(0); } 50% { transform: rotate(1deg); } }

/* introduction-to-chestle */
.scn-introduction-to-chestle {
  background:
    linear-gradient(180deg, #c8a26e 0%, #a07850 40%, #7a5a3a 100%),
    radial-gradient(ellipse at 30% 60%, #e8c88a 0%, transparent 70%);
}
.scn-introduction-to-chestle .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #d4b48a 0%, #a07850 100%); animation: ch1-bg 8s ease-in-out infinite alternate;
}
.scn-introduction-to-chestle .wall {
  position:absolute; bottom:45%; left:10%; right:10%; top:10%; background: linear-gradient(135deg, #e0c090 0%, #b08a60 100%); border-radius: 4px; box-shadow: inset 0 -4px 12px rgba(0,0,0,.15); animation: ch1-wall 12s ease-in-out infinite alternate;
}
.scn-introduction-to-chestle .floor {
  position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 0 0 20% 10%; animation: ch1-floor 15s ease-in-out infinite alternate;
}
.scn-introduction-to-chestle .fireplace {
  position:absolute; bottom:30%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: ch1-fireplace 6s ease-in-out infinite;
}
.scn-introduction-to-chestle .mantel {
  position:absolute; bottom:calc(30% + 80px); left:50%; width:140px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: ch1-mantel 10s ease-in-out infinite alternate;
}
.scn-introduction-to-chestle .figure-left {
  position:absolute; bottom:30%; left:30%; width:24px; height:50px; transform-origin: bottom center; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ch1-fig-l 4s ease-in-out infinite;
}
.scn-introduction-to-chestle .figure-right {
  position:absolute; bottom:30%; left:55%; width:24px; height:50px; transform-origin: bottom center; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ch1-fig-r 4s ease-in-out infinite 2s;
}
.scn-introduction-to-chestle .glow {
  position:absolute; bottom:25%; left:45%; width:80px; height:80px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,128,.5), 0 0 80px 40px rgba(255,208,128,.2); animation: ch1-glow 3s ease-in-out infinite alternate;
}
@keyframes ch1-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ch1-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ch1-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ch1-fireplace { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.01) } }
@keyframes ch1-mantel { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) } }
@keyframes ch1-fig-l { 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 ch1-fig-r { 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 ch1-glow { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }

/* news-of-miss-larkins-marriage */
.scn-news-of-miss-larkins-marriage {
  background:
    linear-gradient(180deg, #d4bfa0 0%, #b8a080 40%, #9a8060 100%),
    radial-gradient(ellipse at 70% 50%, #f0d8b0 0%, transparent 60%);
}
.scn-news-of-miss-larkins-marriage .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #e8d4b8 0%, #c8b098 100%); animation: la1-bg 10s ease-in-out infinite alternate;
}
.scn-news-of-miss-larkins-marriage .wall {
  position:absolute; bottom:50%; left:5%; right:5%; top:5%; background: linear-gradient(135deg, #ede0d0 0%, #c0a890 100%); border-radius:6px; box-shadow: inset 0 -2px 8px rgba(0,0,0,.1); animation: la1-wall 8s ease-in-out infinite alternate;
}
.scn-news-of-miss-larkins-marriage .window {
  position:absolute; top:12%; right:10%; width:80px; height:100px; background: linear-gradient(180deg, #d8e8f0 0%, #b0c8d8 100%); border-radius: 4px 4px 8px 8px; box-shadow: inset 0 0 20px rgba(200,220,240,.6); animation: la1-window 12s ease-in-out infinite alternate;
}
.scn-news-of-miss-larkins-marriage .desk {
  position:absolute; bottom:30%; left:35%; width:120px; height:20px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%); border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,.2); animation: la1-desk 9s ease-in-out infinite alternate;
}
.scn-news-of-miss-larkins-marriage .figure-agnes {
  position:absolute; bottom:35%; left:30%; width:22px; height:48px; transform-origin: bottom center; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; animation: la1-agnes 4s ease-in-out infinite;
}
.scn-news-of-miss-larkins-marriage .figure-david {
  position:absolute; bottom:35%; left:55%; width:22px; height:46px; transform-origin: bottom center; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; animation: la1-david 4s ease-in-out infinite 1.5s;
}
.scn-news-of-miss-larkins-marriage .music-sheet {
  position:absolute; bottom:28%; left:48%; width:30px; height:40px; background: linear-gradient(180deg, #f8ecd0 0%, #e0d0b0 100%); border-radius: 2px; transform: rotate(2deg); box-shadow: 0 1px 3px rgba(0,0,0,.15); animation: la1-sheet 5s ease-in-out infinite alternate;
}
.scn-news-of-miss-larkins-marriage .lamp {
  position:absolute; bottom:50%; left:20%; width:18px; height:30px; background: linear-gradient(180deg, #c88040 0%, #a06020 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 30px 10px rgba(200,128,64,.6), 0 0 60px 20px rgba(200,128,64,.3); animation: la1-lamp 3s ease-in-out infinite alternate;
}
@keyframes la1-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes la1-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes la1-window { 0% { opacity:.8; transform: rotate(0) } 50% { opacity:1; transform: rotate(1deg) } 100% { opacity:.85; transform: rotate(0) } }
@keyframes la1-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes la1-agnes { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(4px) rotate(0) } 60% { transform: translateX(0) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes la1-david { 0% { transform: translateX(0) rotate(2deg) } 30% { transform: translateX(-3px) rotate(0) } 60% { transform: translateX(0) rotate(-2deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes la1-sheet { 0% { transform: rotate(2deg) scale(1) } 50% { transform: rotate(4deg) scale(1.02) } 100% { transform: rotate(2deg) scale(1) } }
@keyframes la1-lamp { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.9; transform: scale(1) } }

/* progress-to-seventeen */
.scn-progress-to-seventeen {
  background:
    linear-gradient(180deg, #8a8a8a 0%, #6a6a6a 40%, #4a4a4a 100%),
    radial-gradient(ellipse at 50% 30%, #9a9a9a 0%, transparent 70%);
}
.scn-progress-to-seventeen .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #9a9a9a 0%, #6a6a6a 100%); animation: pr1-bg 10s ease-in-out infinite alternate;
}
.scn-progress-to-seventeen .window-frame {
  position:absolute; top:10%; left:30%; width:120px; height:160px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: pr1-frame 8s ease-in-out infinite alternate;
}
.scn-progress-to-seventeen .window-outside {
  position:absolute; top:13%; left:33%; width:108px; height:148px; background: linear-gradient(180deg, #b0b0c0 0%, #808090 100%); border-radius: 2px; box-shadow: inset 0 0 30px rgba(255,255,255,.1); animation: pr1-outside 15s ease-in-out infinite alternate;
}
.scn-progress-to-seventeen .desk {
  position:absolute; bottom:20%; left:25%; width:100px; height:15px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: pr1-desk 6s ease-in-out infinite alternate;
}
.scn-progress-to-seventeen .figure-profile {
  position:absolute; bottom:25%; left:40%; width:20px; height:44px; transform-origin: bottom center; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pr1-fig 5s ease-in-out infinite;
}
.scn-progress-to-seventeen .ring {
  position:absolute; bottom:35%; left:45%; width:8px; height:8px; background: radial-gradient(circle, #c8b880 0%, #a09060 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(200,184,128,.5); animation: pr1-ring 4s ease-in-out infinite alternate;
}
.scn-progress-to-seventeen .bottle {
  position:absolute; bottom:28%; left:30%; width:12px; height:20px; background: linear-gradient(180deg, #a0a0a0 0%, #707070 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: rotate(-5deg); box-shadow: 0 1px 3px rgba(0,0,0,.2); animation: pr1-bottle 7s ease-in-out infinite alternate;
}
@keyframes pr1-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pr1-frame { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(1) } }
@keyframes pr1-outside { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes pr1-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pr1-fig { 0% { transform: translateX(0) rotate(-3deg) } 30% { transform: translateX(3px) rotate(0) } 60% { transform: translateX(0) rotate(3deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes pr1-ring { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.08); opacity:1 } 100% { transform: scale(1); opacity:.8 } }
@keyframes pr1-bottle { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-5deg) } }

/* leaving-school-feelings */
.scn-leaving-school-feelings {
  background:
    linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 30% 40%, #5a5a6a 0%, transparent 60%);
}
.scn-leaving-school-feelings .bg-school {
  position:absolute; inset:0; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); animation: le1-bg 8s ease-in-out infinite alternate;
}
.scn-leaving-school-feelings .sky {
  position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); animation: le1-sky 12s ease-in-out infinite alternate;
}
.scn-leaving-school-feelings .grounds {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.4); animation: le1-grounds 10s ease-in-out infinite alternate;
}
.scn-leaving-school-feelings .figure-departing {
  position:absolute; bottom:30%; left:40%; width:22px; height:48px; transform-origin: bottom center; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: le1-fig 3s ease-in-out infinite;
}
.scn-leaving-school-feelings .path {
  position:absolute; bottom:20%; left:30%; width:120px; height:8px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 20%; transform: rotate(-5deg); box-shadow: 0 1px 2px rgba(0,0,0,.2); animation: le1-path 15s ease-in-out infinite alternate;
}
.scn-leaving-school-feelings .gate {
  position:absolute; bottom:25%; left:55%; width:60px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: le1-gate 9s ease-in-out infinite alternate;
}
.scn-leaving-school-feelings .storm-cloud {
  position:absolute; top:10%; left:0; width:200px; height:40px; background: linear-gradient(90deg, rgba(80,80,90,.6) 0%, rgba(60,60,70,.3) 100%); border-radius:50%; filter: blur(8px); animation: le1-cloud 20s linear infinite;
}
@keyframes le1-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes le1-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes le1-grounds { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes le1-fig { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes le1-path { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(-3deg) scaleX(1.05) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes le1-gate { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes le1-cloud { 0% { transform: translateX(-100px) } 100% { transform: translateX(100vw) } }

/* shaving-water-blush - funny, window-lit morning */
.scn-shaving-water-blush {
  background: linear-gradient(180deg, #f5efd5 0%, #e8d0b0 100%),
              radial-gradient(ellipse at 50% 100%, #fff0e0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-shaving-water-blush .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #e8d0b0 0%, #f0dcc0 40%, #e0c8a8 100%);
  box-shadow: inset 0 0 60px rgba(160,100,50,0.15);
}
.scn-shaving-water-blush .window-frame {
  position: absolute; top: 8%; left: 5%; width: 28%; height: 45%;
  border: 6px solid #c8a080;
  background: transparent;
  box-shadow: inset 0 0 0 3px #b08060, 0 4px 20px rgba(0,0,0,0.2);
}
.scn-shaving-water-blush .window-light {
  position: absolute; top: 9%; left: 6.5%; width: 24%; height: 41%;
  background: radial-gradient(ellipse at 30% 30%, #fffbe0 0%, #f5e8c0 50%, #f0d8b0 100%);
  animation: swb-window 6s ease-in-out infinite alternate;
}
.scn-shaving-water-blush .bed {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #d0b898 0%, #b89878 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.15);
}
.scn-shaving-water-blush .figure-blush {
  position: absolute; bottom: 12%; left: 40%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #c8a888 0%, #a88868 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: swb-sit 4s ease-in-out infinite;
}
.scn-shaving-water-blush .figure-blush::after {
  content: ''; position: absolute; top: 12%; left: 25%; width: 50%; height: 25%;
  background: radial-gradient(circle, #f0b0a0 0%, transparent 70%);
  border-radius: 50%;
  animation: swb-blush 3s ease-in-out infinite alternate;
}
.scn-shaving-water-blush .basin {
  position: absolute; bottom: 4%; right: 22%; width: 12%; height: 10%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-shaving-water-blush .door-shadow {
  position: absolute; bottom: 0; right: 5%; width: 18%; height: 60%;
  background: linear-gradient(90deg, #b09578 0%, #9a7e62 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.2);
  animation: swb-door 5s ease-in-out infinite alternate;
}
@keyframes swb-window {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes swb-sit {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes swb-blush {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.9); }
}
@keyframes swb-door {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.03); }
  100% { transform: scaleX(1); }
}

/* king-charles-in-fog - dark, overcast */
.scn-king-charles-in-fog {
  background: linear-gradient(180deg, #2a3040 0%, #1e2330 50%, #101520 100%),
              radial-gradient(ellipse at 50% 100%, #3a4050 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-king-charles-in-fog .fog-bg {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #2a3040 0%, #1e2330 100%);
  animation: kcf-fogbg 20s ease-in-out infinite alternate;
}
.scn-king-charles-in-fog .window-frame {
  position: absolute; top: 10%; left: 10%; width: 35%; height: 50%;
  border: 8px solid #3a3a3a;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5), 0 4px 12px rgba(0,0,0,0.4);
}
.scn-king-charles-in-fog .window-glass {
  position: absolute; top: 11%; left: 12%; width: 31%; height: 46%;
  background: radial-gradient(ellipse at 30% 30%, #4a5a6a 0%, #2a3a4a 100%);
  animation: kcf-glass 8s ease-in-out infinite alternate;
}
.scn-king-charles-in-fog .figure-peep {
  position: absolute; bottom: 18%; left: 25%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kcf-peep 6s ease-in-out infinite;
}
.scn-king-charles-in-fog .statue {
  position: absolute; bottom: 8%; left: 15%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: skewX(-5deg);
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: kcf-statue 12s ease-in-out infinite alternate;
}
.scn-king-charles-in-fog .fog-layer {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(180,190,200,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: kcf-fog1 15s linear infinite alternate;
}
.scn-king-charles-in-fog .fog-drift {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 80% 20%, rgba(200,210,220,0.15) 0%, transparent 60%);
  filter: blur(20px);
  animation: kcf-fog2 25s linear infinite;
}
@keyframes kcf-fogbg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes kcf-glass {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.02); }
  100% { opacity: 0.2; transform: scale(0.98); }
}
@keyframes kcf-peep {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(8px) rotate(1deg); }
  100% { transform: translateX(-4px) rotate(0deg); }
}
@keyframes kcf-statue {
  0% { transform: skewX(-5deg) scale(1); }
  50% { transform: skewX(-3deg) scale(1.02); }
  100% { transform: skewX(-7deg) scale(0.98); }
}
@keyframes kcf-fog1 {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(-20px) scale(1.1); opacity: 0.6; }
  100% { transform: translateX(20px) scale(0.9); opacity: 0.3; }
}
@keyframes kcf-fog2 {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-10px) scale(1.05); }
  100% { transform: translateY(10px) scale(0.95); }
}

/* claim-on-miss-dartle - calm, bright interior */
.scn-claim-on-miss-dartle {
  background: linear-gradient(180deg, #faf6eb 0%, #f0e8d0 50%, #e8dcc0 100%),
              radial-gradient(ellipse at 50% 100%, #fff8e0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-claim-on-miss-dartle .room-bright {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #faf6eb 0%, #f0e8d0 100%);
  box-shadow: inset 0 0 80px rgba(180,160,120,0.1);
}
.scn-claim-on-miss-dartle .window-sun {
  position: absolute; top: 5%; right: 8%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 30% 20%, #fffce0 0%, #f5e8c0 50%, #e8d8a0 100%);
  animation: cod-sun 8s ease-in-out infinite alternate;
}
.scn-claim-on-miss-dartle .table-wood {
  position: absolute; bottom: 8%; left: 15%; width: 55%; height: 8%;
  background: linear-gradient(180deg, #d0b080 0%, #b89868 100%);
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.scn-claim-on-miss-dartle .chair {
  position: absolute; bottom: 12%; left: 25%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #c8a878 0%, #a88858 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(3deg);
}
.scn-claim-on-miss-dartle .figure-daisy {
  position: absolute; bottom: 14%; left: 35%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #e8d8c0 0%, #d0c0a8 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cod-daisy 6s ease-in-out infinite;
}
.scn-claim-on-miss-dartle .figure-dartle {
  position: absolute; bottom: 14%; left: 55%; width: 15%; height: 32%;
  background: linear-gradient(180deg, #d8c8b0 0%, #c0b098 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cod-dartle 6s ease-in-out infinite alternate;
}
.scn-claim-on-miss-dartle .flower-accent {
  position: absolute; bottom: 10%; right: 20%; width: 8%; height: 10%;
  background: radial-gradient(circle at 50% 50%, #f0e0c0 0%, #d0b880 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(180,140,80,0.3);
  animation: cod-flower 4s ease-in-out infinite alternate;
}
.scn-claim-on-miss-dartle .shadow-soft {
  position: absolute; bottom: 0; left: 10%; width: 70%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.1) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: cod-shadow 10s ease-in-out infinite alternate;
}
@keyframes cod-sun {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: 0.8; transform: scale(0.97); }
}
@keyframes cod-daisy {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cod-dartle {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1.5deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes cod-flower {
  0% { transform: scale(0.8) rotate(-5deg); opacity: 0.6; }
  50% { transform: scale(1.1) rotate(5deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(0deg); opacity: 0.7; }
}
@keyframes cod-shadow {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.05); opacity: 0.5; }
  100% { transform: scale(0.95); opacity: 0.2; }
}

/* dartle-conscientious-question - tense, bright interior */
.scn-dartle-conscientious-question {
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 50%, #c0b088 100%),
              radial-gradient(ellipse at 50% 100%, #fff0d0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-dartle-conscientious-question .room-stark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a8 100%);
  box-shadow: inset 0 0 100px rgba(120,80,40,0.08);
}
.scn-dartle-conscientious-question .window-stripe {
  position: absolute; top: 5%; left: 5%; width: 25%; height: 55%;
  background: linear-gradient(90deg, #f5f0e0 0%, #e8dcc0 50%, #f5f0e0 100%);
  animation: dcq-stripe 7s ease-in-out infinite alternate;
}
.scn-dartle-conscientious-question .desk-dark {
  position: absolute; bottom: 6%; left: 20%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #a08868 0%, #887050 100%);
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}
.scn-dartle-conscientious-question .figure-mrs {
  position: absolute; bottom: 15%; left: 25%; width: 18%; height: 38%;
  background: linear-gradient(180deg, #d8c0a8 0%, #c0a890 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dcq-mrs 5s ease-in-out infinite alternate;
}
.scn-dartle-conscientious-question .figure-dartle-q {
  position: absolute; bottom: 15%; left: 52%; width: 16%; height: 36%;
  background: linear-gradient(180deg, #c8b098 0%, #a89078 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: dcq-dartle-q 5s ease-in-out infinite;
}
.scn-dartle-conscientious-question .lamp {
  position: absolute; top: 8%; left: 40%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #c8a070 0%, #a88050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px rgba(180,140,80,0.4);
  animation: dcq-lamp 4s ease-in-out infinite alternate;
}
.scn-dartle-conscientious-question .shadow-sharp {
  position: absolute; bottom: 0; left: 20%; width: 50%; height: 30%;
  background: linear-gradient(180deg, rgba(40,30,20,0.2) 0%, rgba(40,30,20,0.4) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(4px);
  animation: dcq-shadow 6s ease-in-out infinite alternate;
}
@keyframes dcq-stripe {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05); }
  100% { opacity: 0.7; transform: scaleX(0.95); }
}
@keyframes dcq-mrs {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes dcq-dartle-q {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(1.5deg); }
  100% { transform: translateX(-4px) rotate(-1deg); }
}
@keyframes dcq-lamp {
  0% { transform: scaleY(1) rotate(-3deg); opacity: 0.7; }
  50% { transform: scaleY(1.04) rotate(3deg); opacity: 1; }
  100% { transform: scaleY(0.96) rotate(0deg); opacity: 0.8; }
}
@keyframes dcq-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.4; }
}

.scn-uriah-sidelong-look { background: linear-gradient(180deg,#0a0a1a 0%,#161625 40%,#1a1a2e 100%), radial-gradient(ellipse at 40% 60%,#2a1a0a 0%,transparent 70%); }
.scn-uriah-sidelong-look .bg { position:absolute;inset:0;background:linear-gradient(135deg,#12121f 0%,#1e1e2e 50%,#0a0a14 100%); }
.scn-uriah-sidelong-look .wall-sconce { position:absolute;top:22%;left:72%;width:18px;height:30px;background:radial-gradient(circle at 50% 10%,#a06030 0%,#4a2a1a 70%);border-radius:50% 50% 30% 30% / 60% 60% 40% 40%;filter:blur(1px);animation:usl-sconce 4s ease-in-out infinite;box-shadow:0 0 24px 6px rgba(160,96,48,.3); }
.scn-uriah-sidelong-look .figure { position:absolute;bottom:18%;left:30%;width:65px;height:120px;background:linear-gradient(180deg,#1a1a2a 0%,#0e0e1a 60%,#06060e 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center;animation:usl-figure 6s ease-in-out infinite; }
.scn-uriah-sidelong-look .eye-glow { position:absolute;bottom:60%;left:48%;width:8px;height:6px;background:radial-gradient(circle,#e03030 0%,#a01010 50%,transparent 80%);border-radius:50%;box-shadow:0 0 18px 6px #801010,0 0 40px 12px rgba(128,16,16,.3);animation:usl-eye 2s ease-in-out infinite alternate; }
.scn-uriah-sidelong-look .hand { position:absolute;bottom:30%;left:22%;width:22px;height:30px;background:linear-gradient(180deg,#1a1a2a 0%,#0a0a14 100%);border-radius:40% 40% 30% 30% / 50% 50% 40% 40%;transform:rotate(15deg);animation:usl-hand 5s ease-in-out infinite; }
.scn-uriah-sidelong-look .shadow-pool { position:absolute;bottom:0;left:20%;right:20%;height:18%;background:radial-gradient(ellipse at 50% 0%,rgba(0,0,0,.6) 0%,transparent 70%);animation:usl-shadow 8s ease-in-out infinite alternate; }
@keyframes usl-sconce { 0%{opacity:.6;transform:scale(1)} 50%{opacity:1;transform:scale(1.05)} 100%{opacity:.7;transform:scale(1)} }
@keyframes usl-figure { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(3px) rotate(2deg)} 50%{transform:translateX(0) rotate(0deg)} 75%{transform:translateX(-2px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes usl-eye { 0%{box-shadow:0 0 14px 3px #801010,0 0 30px 8px rgba(128,16,16,.2);opacity:.7} 50%{box-shadow:0 0 22px 8px #c02020,0 0 50px 16px rgba(192,32,32,.5);opacity:1} 100%{box-shadow:0 0 16px 4px #a01010,0 0 35px 10px rgba(160,16,16,.3);opacity:.8} }
@keyframes usl-hand { 0%{transform:rotate(12deg) translateY(0)} 50%{transform:rotate(18deg) translateY(-2px)} 100%{transform:rotate(14deg) translateY(0)} }
@keyframes usl-shadow { 0%{opacity:.6;transform:scaleY(1)} 50%{opacity:.8;transform:scaleY(1.05)} 100%{opacity:.5;transform:scaleY(.95)} }

.scn-uriah-threatens-to-stop-friendship { background: linear-gradient(180deg,#0e0e1e 0%,#151527 30%,#1a1a30 100%), radial-gradient(ellipse at 50% 100%,#1e1e30 0%,transparent 60%); }
.scn-uriah-threatens-to-stop-friendship .bg { position:absolute;inset:0;background:linear-gradient(135deg,#12121a 0%,#1e1e2a 50%,#0a0a12 100%); }
.scn-uriah-threatens-to-stop-friendship .table { position:absolute;bottom:22%;left:10%;right:10%;height:12%;background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%);border-radius:6px 6px 0 0;box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-uriah-threatens-to-stop-friendship .uriah { position:absolute;bottom:26%;left:50%;width:70px;height:140px;transform:translateX(-60%);background:linear-gradient(180deg,#1a1a2e 0%,#0e0e1a 60%,#06060e 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center;animation:uts-uriah 5s ease-in-out infinite; }
.scn-uriah-threatens-to-stop-friendship .david { position:absolute;bottom:26%;left:26%;width:52px;height:100px;background:linear-gradient(180deg,#202032 0%,#12121e 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:scale(.85) translateX(10px);animation:uts-david 7s ease-in-out infinite; }
.scn-uriah-threatens-to-stop-friendship .finger { position:absolute;bottom:38%;left:55%;width:4px;height:30px;background:linear-gradient(180deg,#2a2a3a 0%,#0a0a12 100%);border-radius:50% 50% 10% 10%;transform:rotate(-20deg);transform-origin:bottom center;animation:uts-finger 3s ease-in-out infinite alternate; }
.scn-uriah-threatens-to-stop-friendship .candle { position:absolute;bottom:34%;left:20%;width:10px;height:40px;background:linear-gradient(180deg,#4a3a2a 0%,#2a2218 50%,#1a120a 100%);border-radius:20% 20% 10% 10%;box-shadow:0 0 20px 5px rgba(200,150,80,.3);animation:uts-candle 4s ease-in-out infinite; }
.scn-uriah-threatens-to-stop-friendship .shadow { position:absolute;bottom:0;left:5%;right:15%;height:25%;background:radial-gradient(ellipse at 40% 0%,rgba(0,0,0,.5) 0%,transparent 70%);animation:uts-shadow 8s ease-in-out infinite alternate; }
@keyframes uts-uriah { 0%{transform:translateX(-60%) rotate(0deg)} 25%{transform:translateX(-60%) rotate(2deg)} 50%{transform:translateX(-58%) rotate(0deg)} 75%{transform:translateX(-62%) rotate(-2deg)} 100%{transform:translateX(-60%) rotate(0deg)} }
@keyframes uts-david { 0%{transform:scale(.85) translateX(10px) rotate(0deg)} 50%{transform:scale(.85) translateX(8px) rotate(-1deg)} 100%{transform:scale(.85) translateX(12px) rotate(0deg)} }
@keyframes uts-finger { 0%{transform:rotate(-22deg) translateY(0)} 50%{transform:rotate(-18deg) translateY(-2px)} 100%{transform:rotate(-20deg) translateY(0)} }
@keyframes uts-candle { 0%{opacity:.6;transform:scaleY(1)} 50%{opacity:1;transform:scaleY(1.05)} 100%{opacity:.7;transform:scaleY(1)} }
@keyframes uts-shadow { 0%{opacity:.5;transform:scaleX(1)} 50%{opacity:.7;transform:scaleX(1.1)} 100%{opacity:.4;transform:scaleX(.9)} }

.scn-dora-asks-about-agnes { background: linear-gradient(180deg,#faf5e6 0%,#f5e8c8 40%,#e8d4a0 100%), radial-gradient(ellipse at 60% 30%,#fff8e0 0%,transparent 60%); }
.scn-dora-asks-about-agnes .bg { position:absolute;inset:0;background:linear-gradient(135deg,#fff8e8 0%,#f0e0b0 100%); }
.scn-dora-asks-about-agnes .window-light { position:absolute;top:5%;left:60%;width:40%;height:60%;background:linear-gradient(135deg,rgba(255,255,230,.8) 0%,transparent 60%);animation:daa-light 12s ease-in-out infinite alternate; }
.scn-dora-asks-about-agnes .couch { position:absolute;bottom:18%;left:10%;right:10%;height:35%;background:linear-gradient(180deg,#d4b88a 0%,#b89a6e 50%,#9a7e54 100%);border-radius:30% 30% 20% 20% / 50% 50% 30% 30%;box-shadow:0 6px 12px rgba(0,0,0,.15); }
.scn-dora-asks-about-agnes .dora { position:absolute;bottom:28%;left:36%;width:45px;height:90px;background:linear-gradient(180deg,#f0d4b0 0%,#d8b890 40%,#c8a07a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(-5deg);animation:daa-dora 6s ease-in-out infinite; }
.scn-dora-asks-about-agnes .david { position:absolute;bottom:28%;left:54%;width:55px;height:100px;background:linear-gradient(180deg,#d4b48a 0%,#b89870 50%,#a08058 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:rotate(3deg);animation:daa-david 7s ease-in-out infinite; }
.scn-dora-asks-about-agnes .button { position:absolute;bottom:40%;left:44%;width:12px;height:8px;background:radial-gradient(circle at 40% 30%,#ffffff 0%,#d0a050 60%,#a08030 100%);border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.2);animation:daa-button 4s ease-in-out infinite; }
.scn-dora-asks-about-agnes .sparkle { position:absolute;top:20%;left:70%;width:4px;height:4px;background:#fff;border-radius:50%;box-shadow:0 0 10px 3px rgba(255,255,200,.6);animation:daa-sparkle 3s ease-in-out infinite alternate; }
@keyframes daa-light { 0%{opacity:.6;transform:translateX(-5%) scale(1)} 50%{opacity:1;transform:translateX(0) scale(1.02)} 100%{opacity:.7;transform:translateX(-3%) scale(1)} }
@keyframes daa-dora { 0%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-3deg) translateY(-2px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes daa-david { 0%{transform:rotate(3deg) translateY(0)} 50%{transform:rotate(5deg) translateY(-1px)} 100%{transform:rotate(3deg) translateY(0)} }
@keyframes daa-button { 0%{transform:translate(0,0) rotate(0deg)} 25%{transform:translate(2px,-1px) rotate(10deg)} 50%{transform:translate(0,0) rotate(0deg)} 75%{transform:translate(-2px,-1px) rotate(-10deg)} 100%{transform:translate(0,0) rotate(0deg)} }
@keyframes daa-sparkle { 0%{opacity:.3;transform:scale(1)} 50%{opacity:1;transform:scale(1.5)} 100%{opacity:.4;transform:scale(1)} }

.scn-uriah-locks-door { background: linear-gradient(180deg,#0a0a1a 0%,#12122a 40%,#1a1a30 100%), radial-gradient(ellipse at 50% 80%,#1e1e30 0%,transparent 60%); }
.scn-uriah-locks-door .bg { position:absolute;inset:0;background:linear-gradient(135deg,#0e0e1e 0%,#16162a 50%,#0a0a14 100%); }
.scn-uriah-locks-door .door-frame { position:absolute;bottom:0;left:10%;right:10%;height:100%;background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 50%,#0e0e1a 100%);border-radius:10% 10% 0 0 / 20% 20% 0 0;box-shadow:inset 0 0 30px rgba(0,0,0,.5); }
.scn-uriah-locks-door .door-panel { position:absolute;bottom:5%;left:15%;right:15%;height:90%;background:linear-gradient(180deg,#222234 0%,#121224 100%);border:2px solid #2a2a3a;border-radius:2% 2% 0 0;box-shadow:inset 0 0 20px rgba(0,0,0,.3); }
.scn-uriah-locks-door .keyhole { position:absolute;bottom:50%;left:50%;width:14px;height:22px;transform:translate(-50%,50%);background:radial-gradient(circle at 50% 30%,#80a0c0 0%,#3a4a5a 60%,#1a1a2a 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;box-shadow:0 0 20px 4px rgba(128,160,192,.2), inset 0 2px 4px rgba(0,0,0,.4);animation:uld-keyhole 3s ease-in-out infinite alternate; }
.scn-uriah-locks-door .uriah { position:absolute;bottom:20%;left:62%;width:60px;height:130px;background:linear-gradient(180deg,#1a1a2e 0%,#0e0e1a 60%,#06060e 100%);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:translateX(-50%) rotate(10deg);transform-origin:bottom center;animation:uld-uriah 6s ease-in-out infinite; }
.scn-uriah-locks-door .doctor { position:absolute;bottom:0;left:8%;width:80px;height:40px;background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 60%,#0a0a14 100%);border-radius:50% 50% 0 0 / 80% 80% 0 0;transform:scaleX(.7);animation:uld-doctor 8s ease-in-out infinite alternate; }
.scn-uriah-locks-door .cast-shadow { position:absolute;bottom:0;left:40%;right:20%;height:30%;background:radial-gradient(ellipse at 60% 0%,rgba(0,0,0,.5) 0%,transparent 70%);animation:uld-shadow 7s ease-in-out infinite alternate; }
@keyframes uld-keyhole { 0%{box-shadow:0 0 16px 2px rgba(128,160,192,.15)} 50%{box-shadow:0 0 24px 6px rgba(128,160,192,.4)} 100%{box-shadow:0 0 18px 3px rgba(128,160,192,.2)} }
@keyframes uld-uriah { 0%{transform:translateX(-50%) rotate(10deg) translateY(0)} 25%{transform:translateX(-48%) rotate(12deg) translateY(-2px)} 50%{transform:translateX(-50%) rotate(10deg) translateY(0)} 75%{transform:translateX(-52%) rotate(8deg) translateY(-1px)} 100%{transform:translateX(-50%) rotate(10deg) translateY(0)} }
@keyframes uld-doctor { 0%{opacity:.5;transform:scaleX(.7) translateY(0)} 50%{opacity:.8;transform:scaleX(.7) translateY(-3px)} 100%{opacity:.6;transform:scaleX(.7) translateY(0)} }
@keyframes uld-shadow { 0%{opacity:.4;transform:scaleX(1)} 50%{opacity:.6;transform:scaleX(1.1)} 100%{opacity:.5;transform:scaleX(.95)} }

.scn-dry-profession {
  background: 
    linear-gradient(180deg, #f5f0e1 0%, #e0d8c0 40%, #c8b896 100%),
    radial-gradient(ellipse at 80% 20%, rgba(255,230,180,0.6) 0%, transparent 70%);
}
.scn-dry-profession .window {
  position:absolute; top:8%; left:65%; width:28%; height:40%;
  background: linear-gradient(180deg, #b0d8f0 0%, #8cb8d8 100%);
  border: 6px solid #5a3e2e; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: drp-window 10s ease-in-out infinite alternate;
}
.scn-dry-profession .light-ray {
  position:absolute; top:10%; left:70%; width:30%; height:60%;
  background: linear-gradient(135deg, rgba(255,240,200,0.25) 0%, transparent 100%);
  transform: skewX(-8deg);
  animation: drp-ray 5s ease-in-out infinite alternate;
}
.scn-dry-profession .desk {
  position:absolute; bottom:20%; left:25%; right:15%; height:12%;
  background: linear-gradient(180deg, #6b4a32 0%, #4a3020 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-dry-profession .chair {
  position:absolute; bottom:28%; left:30%; width:22%; height:28%;
  background: linear-gradient(180deg, #5a3e2e 0%, #3a2a1a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,0.4);
  animation: drp-chair 8s ease-in-out infinite;
}
.scn-dry-profession .figure {
  position:absolute; bottom:32%; left:35%; width:14%; height:36%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: drp-figure 4s ease-in-out infinite;
}
.scn-dry-profession .teacup {
  position:absolute; bottom:24%; left:38%; width:6%; height:8%;
  background: linear-gradient(180deg, #f0e0d0 0%, #d0b8a0 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: drp-teacup 3s ease-in-out infinite;
}
.scn-dry-profession .shadow {
  position:absolute; bottom:20%; left:28%; right:20%; height:6%;
  background: rgba(0,0,0,0.15);
  filter: blur(4px);
  animation: drp-shadow 10s ease-in-out infinite alternate;
}
@keyframes drp-window { 0% { background: #b0d8f0; } 50% { background: #c0e0ff; } 100% { background: #a0c8e0; } }
@keyframes drp-ray { 0% { opacity: 0.3; transform: skewX(-8deg) scaleX(1); } 50% { opacity: 0.6; transform: skewX(-5deg) scaleX(1.05); } 100% { opacity: 0.4; transform: skewX(-8deg) scaleX(0.95); } }
@keyframes drp-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes drp-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes drp-teacup { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes drp-shadow { 0% { opacity: 0.12; filter: blur(4px); } 50% { opacity: 0.2; filter: blur(6px); } 100% { opacity: 0.1; filter: blur(3px); } }

.scn-dartle-eagerness {
  background: 
    linear-gradient(180deg, #1a1820 0%, #2c2533 40%, #3d3548 100%),
    radial-gradient(ellipse at 50% 30%, rgba(80,60,40,0.3) 0%, transparent 70%);
}
.scn-dartle-eagerness .lamp {
  position:absolute; top:10%; left:20%; width:6%; height:20%;
  background: linear-gradient(180deg, #6a4a2e 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 20px rgba(255,180,80,0.5);
  animation: dre-lamp 6s ease-in-out infinite;
}
.scn-dartle-eagerness .lamp-glow {
  position:absolute; top:8%; left:15%; width:16%; height:25%;
  background: radial-gradient(circle, rgba(255,200,120,0.6) 0%, rgba(255,180,80,0.2) 50%, transparent 100%);
  filter: blur(12px);
  animation: dre-glow 4s ease-in-out infinite alternate;
}
.scn-dartle-eagerness .figure {
  position:absolute; bottom:30%; left:35%; width:18%; height:42%;
  background: linear-gradient(180deg, #1a1512 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dre-figure 3s ease-in-out infinite;
}
.scn-dartle-eagerness .chair {
  position:absolute; bottom:28%; left:32%; width:24%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6);
  animation: dre-chair 8s ease-in-out infinite;
}
.scn-dartle-eagerness .table {
  position:absolute; bottom:22%; left:28%; right:28%; height:10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
}
.scn-dartle-eagerness .shadow {
  position:absolute; bottom:20%; left:25%; right:30%; height:5%;
  background: rgba(0,0,0,0.3);
  filter: blur(8px);
  animation: dre-shadow 5s ease-in-out infinite alternate;
}
@keyframes dre-lamp { 0%,100% { box-shadow: 0 0 20px rgba(255,180,80,0.5); } 50% { box-shadow: 0 0 30px rgba(255,200,120,0.8); } }
@keyframes dre-glow { 0% { opacity: 0.5; filter: blur(12px); } 50% { opacity: 0.8; filter: blur(15px); } 100% { opacity: 0.6; filter: blur(10px); } }
@keyframes dre-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dre-chair { 0%,100% { transform: rotate(0); } 50% { transform: rotate(1deg); } }
@keyframes dre-shadow { 0% { opacity: 0.25; filter: blur(8px); } 50% { opacity: 0.4; filter: blur(10px); } 100% { opacity: 0.3; filter: blur(6px); } }

.scn-mother-and-son-duty {
  background: 
    linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 40%, #b8b0a0 100%),
    radial-gradient(ellipse at 70% 10%, rgba(255,240,220,0.7) 0%, transparent 60%);
}
.scn-mother-and-son-duty .window {
  position:absolute; top:5%; right:5%; width:25%; height:40%;
  background: linear-gradient(180deg, #b8d8f0 0%, #90b8d8 100%);
  border: 5px solid #6a5a4a; border-radius: 3px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.2);
  animation: msd-window 12s ease-in-out infinite alternate;
}
.scn-mother-and-son-duty .sofa {
  position:absolute; bottom:22%; left:10%; right:30%; height:28%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 10% 10% / 70% 70% 20% 20%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.2);
  animation: msd-sofa 15s ease-in-out infinite;
}
.scn-mother-and-son-duty .figure-mother {
  position:absolute; bottom:28%; left:20%; width:16%; height:40%;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msd-mother 6s ease-in-out infinite;
}
.scn-mother-and-son-duty .figure-son {
  position:absolute; bottom:28%; left:38%; width:14%; height:35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #100a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msd-son 4s ease-in-out infinite;
}
.scn-mother-and-son-duty .clock {
  position:absolute; top:10%; left:5%; width:12%; height:18%;
  background: radial-gradient(circle, #e0d0b0 0%, #c0a880 50%, #8a6a4a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: msd-clock 2s ease-in-out infinite;
}
.scn-mother-and-son-duty .shadow-stripe {
  position:absolute; top:10%; left:40%; width:3%; height:80%;
  background: rgba(0,0,0,0.1);
  filter: blur(3px);
  animation: msd-stripe 8s ease-in-out infinite alternate;
}
.scn-mother-and-son-duty .rug {
  position:absolute; bottom:16%; left:15%; right:20%; height:6%;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 50%, #8a7a6a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: msd-rug 20s ease-in-out infinite;
}
@keyframes msd-window { 0% { background: #b8d8f0; } 50% { background: #c8e0ff; } 100% { background: #a0c0d8; } }
@keyframes msd-sofa { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes msd-mother { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes msd-son { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(0.5deg); } 66% { transform: translateX(-2px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes msd-clock { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }
@keyframes msd-stripe { 0% { opacity: 0.08; } 50% { opacity: 0.15; } 100% { opacity: 0.1; } }
@keyframes msd-rug { 0%,100% { background-position: 0% 0%; } 50% { background-position: 50% 0%; } }

.scn-farewell-to-steerforth {
  background: 
    linear-gradient(180deg, #1a1e2a 0%, #2a3040 40%, #3a4558 100%),
    radial-gradient(ellipse at 50% 30%, rgba(60,50,80,0.4) 0%, transparent 70%);
}
.scn-farewell-to-steerforth .bed {
  position:absolute; bottom:10%; left:10%; right:20%; height:40%;
  background: linear-gradient(180deg, #4a4050 0%, #2a2030 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 -6px 15px rgba(0,0,0,0.5);
  animation: fts-bed 20s ease-in-out infinite;
}
.scn-farewell-to-steerforth .candle {
  position:absolute; bottom:50%; left:50%; width:4%; height:12%;
  background: linear-gradient(180deg, #e8d0b0 0%, #c0a080 100%);
  border-radius: 20% 20% 5% 5%;
  transform: translateX(-50%);
  animation: fts-candle 6s ease-in-out infinite;
}
.scn-farewell-to-steerforth .candle-glow {
  position:absolute; bottom:48%; left:46%; width:12%; height:20%;
  background: radial-gradient(circle, rgba(255,200,150,0.6) 0%, rgba(255,180,120,0.2) 50%, transparent 100%);
  filter: blur(15px);
  animation: fts-glow 4s ease-in-out infinite alternate;
}
.scn-farewell-to-steerforth .figure {
  position:absolute; bottom:28%; left:55%; width:14%; height:40%;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fts-figure 8s ease-in-out infinite;
}
.scn-farewell-to-steerforth .door {
  position:absolute; right:5%; top:20%; width:12%; height:60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border: 3px solid #2a1a0a;
  border-radius: 4px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.4);
  animation: fts-door 15s ease-in-out infinite;
}
.scn-farewell-to-steerforth .shadow {
  position:absolute; bottom:10%; left:20%; right:15%; height:8%;
  background: rgba(0,0,0,0.25);
  filter: blur(10px);
  animation: fts-shadow 12s ease-in-out infinite alternate;
}
.scn-farewell-to-steerforth .chest {
  position:absolute; bottom:12%; left:5%; width:14%; height:18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fts-chest 10s ease-in-out infinite;
}
@keyframes fts-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes fts-candle { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes fts-glow { 0% { opacity: 0.5; filter: blur(15px); } 50% { opacity: 0.7; filter: blur(18px); } 100% { opacity: 0.6; filter: blur(12px); } }
@keyframes fts-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 fts-door { 0%,100% { transform: rotateY(0); } 50% { transform: rotateY(3deg); } }
@keyframes fts-shadow { 0% { opacity: 0.2; filter: blur(10px); } 50% { opacity: 0.3; filter: blur(12px); } 100% { opacity: 0.25; filter: blur(8px); } }
@keyframes fts-chest { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }

.scn-aunt-farewell-advice {
  background: 
    linear-gradient(0deg, #3a2a1a 0%, #6a4a3a 40%, #9a7a5a 70%, #c8a880 100%),
    radial-gradient(ellipse at 50% 30%, #f0d8b0 0%, transparent 60%);
}

.scn-aunt-farewell-advice .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  animation: af-wall 15s ease-in-out infinite alternate;
}

.scn-aunt-farewell-advice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0;
}

.scn-aunt-farewell-advice .window-glow {
  position: absolute; top: 15%; right: 20%; width: 25%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #ffe8c0 0%, #d8a860 60%, transparent 100%);
  border-radius: 20%;
  box-shadow: 0 0 60px 30px rgba(255,232,192,0.3);
  animation: af-window 6s ease-in-out infinite alternate;
}

.scn-aunt-farewell-advice .lamp {
  position: absolute; top: 40%; left: 30%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 100%);
  border-radius: 40%;
  box-shadow: 0 0 20px 8px rgba(255,208,128,0.6), 0 0 40px 15px rgba(180,120,60,0.3);
  animation: af-lamp 4s ease-in-out infinite;
}

.scn-aunt-farewell-advice .chair {
  position: absolute; bottom: 20%; left: 25%; width: 18%; height: 35%;
  background: linear-gradient(90deg, #6a4a2a 0%, #4a2a1a 50%, #6a4a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: af-chair 8s ease-in-out infinite;
}

.scn-aunt-farewell-advice .aunt-figure {
  position: absolute; bottom: 5%; left: 40%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 80%, #2a0a00 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: af-aunt 5s ease-in-out infinite;
}

.scn-aunt-farewell-advice .trot-figure {
  position: absolute; bottom: 5%; left: 55%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: af-trot 5s ease-in-out infinite reverse;
}

@keyframes af-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes af-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 af-lamp { 0%,100% { opacity:0.8; transform:rotate(-3deg) } 50% { opacity:1; transform:rotate(3deg) } }
@keyframes af-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes af-aunt { 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 af-trot { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(2px) translateY(0) rotate(-1deg) } 50% { transform: translateX(0) translateY(0) rotate(1deg) } 75% { transform: translateX(-2px) translateY(0) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }

.scn-aunt-departs-abruptly {
  background:
    linear-gradient(180deg, #e0c8a0 0%, #c0a080 40%, #a08060 100%),
    radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 50%);
}

.scn-aunt-departs-abruptly .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0c8e0 0%, #e0f0ff 80%);
  animation: ad-sky 20s ease-in-out infinite alternate;
}

.scn-aunt-departs-abruptly .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #6a8a5a 0%, #8aa87a 40%, #a0c090 100%);
  border-radius: 30% 70% 0 0;
}

.scn-aunt-departs-abruptly .door-frame {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}

.scn-aunt-departs-abruptly .doorway-light {
  position: absolute; bottom: 20%; left: 42%; width: 16%; height: 55%;
  background: radial-gradient(ellipse at 50% 60%, #fff0d0 0%, #ffe0a0 50%, transparent 100%);
  border-radius: 5%;
  box-shadow: 0 0 80px 40px rgba(255,240,200,0.5);
  animation: ad-light 5s ease-in-out infinite alternate;
}

.scn-aunt-departs-abruptly .aunt-silhouette {
  position: absolute; bottom: 20%; left: 43%; width: 10%; height: 50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ad-aunt 4s ease-in-out infinite;
}

.scn-aunt-departs-abruptly .pony-silhouette {
  position: absolute; bottom: 18%; left: 55%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ad-pony 6s ease-in-out infinite reverse;
}

.scn-aunt-departs-abruptly .clouds {
  position: absolute; top: 15%; right: 10%; width: 40%; height: 20%;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.2) 100%);
  filter: blur(8px);
  border-radius: 50%;
  animation: ad-cloud 40s linear infinite;
}

@keyframes ad-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ad-light { 0% { opacity:0.7; transform:scaleY(0.95) } 50% { opacity:1; transform:scaleY(1.05) } 100% { opacity:0.8; transform:scaleY(0.98) } }
@keyframes ad-aunt { 0%,100% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-2deg) } }
@keyframes ad-pony { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(3deg) } 60% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ad-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-uriah-fantasy-fear {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4a 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a3a 0%, transparent 70%);
}

.scn-uriah-fantasy-fear .dark-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%);
  animation: uf-bg 10s ease-in-out infinite alternate;
}

.scn-uriah-fantasy-fear .window-moon {
  position: absolute; top: 10%; right: 15%; width: 25%; height: 35%;
  background: radial-gradient(ellipse at 50% 50%, #a0c8e0 0%, #203040 80%, transparent 100%);
  border-radius: 20%;
  box-shadow: 0 0 40px 15px rgba(160,200,224,0.2);
  animation: uf-moon 6s ease-in-out infinite alternate;
}

.scn-uriah-fantasy-fear .beam {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: uf-beam 8s ease-in-out infinite;
}

.scn-uriah-fantasy-fear .face-shadow {
  position: absolute; top: 8%; left: 38%; width: 12%; height: 18%;
  background: radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.8);
  animation: uf-face 4s ease-in-out infinite;
}

.scn-uriah-fantasy-fear .hand-clench {
  position: absolute; bottom: 30%; left: 50%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: uf-hand 3s ease-in-out infinite;
}

.scn-uriah-fantasy-fear .candle-glow {
  position: absolute; bottom: 15%; left: 30%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd060 0%, #c08030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,208,96,0.4), 0 0 60px 20px rgba(192,128,48,0.2);
  animation: uf-candle 2s ease-in-out infinite alternate;
}

.scn-uriah-fantasy-fear .curtain {
  position: absolute; top: 0; right: 10%; width: 15%; height: 100%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 10% 0 0 10%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  animation: uf-curtain 12s ease-in-out infinite;
}

@keyframes uf-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes uf-moon { 0% { opacity:0.6; transform:scale(0.95) } 50% { opacity:0.9; transform:scale(1.05) } 100% { opacity:0.7; transform:scale(0.98) } }
@keyframes uf-beam { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes uf-face { 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 uf-hand { 0% { transform: scaleX(1) } 30% { transform: scaleX(0.9) rotate(10deg) } 60% { transform: scaleX(1.1) rotate(-5deg) } 100% { transform: scaleX(1) } }
@keyframes uf-candle { 0% { opacity:0.7; transform:scale(0.95) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:0.8; transform:scale(0.98) } }
@keyframes uf-curtain { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }

.scn-doctor-strong-intro {
  background:
    linear-gradient(180deg, #c8d8e0 0%, #a8b8c8 40%, #8898a8 100%),
    radial-gradient(ellipse at 80% 20%, #e0f0ff 0%, transparent 50%);
}

.scn-doctor-strong-intro .sky-blue {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0c0d8 0%, #d0e8f0 100%);
  animation: ds-sky 25s ease-in-out infinite alternate;
}

.scn-doctor-strong-intro .building-front {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(90deg, #b0a898 0%, #d0c8b8 30%, #b8b0a0 70%, #a09888 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
  animation: ds-building 30s ease-in-out infinite;
}

.scn-doctor-strong-intro .columns {
  position: absolute; bottom: 15%; left: 30%; width: 8%; height: 60%;
  background: linear-gradient(90deg, #c8c0b0 0%, #e0d8c8 50%, #c8c0b0 100%);
  border-radius: 5%;
  box-shadow: 0 0 5px rgba(0,0,0,0.2);
  animation: ds-columns 10s ease-in-out infinite alternate;
}

.scn-doctor-strong-intro .doorway {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}

.scn-doctor-strong-intro .small-figure {
  position: absolute; bottom: 18%; left: 46%; width: 6%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom;
  animation: ds-figure 8s ease-in-out infinite;
}

.scn-doctor-strong-intro .ground-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #7a8a6a 0%, #9aae8a 50%, #b0c8a0 100%);
  border-radius: 30% 30% 0 0;
}

.scn-doctor-strong-intro .clouds-drift {
  position: absolute; top: 10%; left: 5%; width: 30%; height: 15%;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  filter: blur(6px);
  border-radius: 50%;
  animation: ds-clouds 50s linear infinite;
}

@keyframes ds-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ds-building { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ds-columns { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ds-figure { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(3px) translateY(-1px) } 50% { transform: translateX(6px) translateY(0) } 75% { transform: translateX(3px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ds-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

/* Scene: reading-emilys-letter (dim interior, dark mood) */
.scn-reading-emilys-letter {
  background:
    linear-gradient(180deg, #2b1a0e 0%, #1f1208 40%, #150b04 100%),
    radial-gradient(ellipse at 50% 70%, #3a2518 0%, transparent 70%);
}
.scn-reading-emilys-letter .roombg {
  position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, #0a0502 100%); animation: rel-room 12s ease-in-out infinite alternate;
}
.scn-reading-emilys-letter .window {
  position:absolute; top:14%; right:18%; width:22%; height:35%; background: linear-gradient(180deg, #1a2a3a 0%, #0e1820 100%); border-radius:6% 6% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: rel-window 8s ease-in-out infinite alternate;
}
.scn-reading-emilys-letter .table {
  position:absolute; bottom:18%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #4a3220 0%, #3a2618 100%); border-radius:4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-reading-emilys-letter .candle {
  position:absolute; bottom:28%; left:45%; width:6px; height:28px; background: linear-gradient(180deg, #e0c090 0%, #b09060 50%, #7a5a3a 100%); border-radius:10% 10% 40% 40%; transform-origin:bottom; animation: rel-candle 3s ease-in-out infinite;
}
.scn-reading-emilys-letter .candle-glow {
  position:absolute; bottom:30%; left:44%; width:14px; height:14px; background: radial-gradient(circle, #ffd080 0%, #c08030 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(255,208,128,.4); animation: rel-glow 2s ease-in-out infinite alternate;
}
.scn-reading-emilys-letter .figure {
  position:absolute; bottom:10%; left:38%; width:20%; height:40%; background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom; animation: rel-figure 9s ease-in-out infinite;
}
.scn-reading-emilys-letter .letter {
  position:absolute; bottom:20%; left:50%; width:12%; height:8%; background: linear-gradient(135deg, #d4c0a0 0%, #b8a48a 100%); border-radius:2%; transform:translateX(-50%) rotate(-6deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: rel-letter 6s ease-in-out infinite alternate;
}
.scn-reading-emilys-letter .chair {
  position:absolute; bottom:8%; left:32%; width:28%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1c10 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: rel-chair 14s ease-in-out infinite;
}
@keyframes rel-room { 0% { opacity:.9 } 50% { opacity:.85 } 100% { opacity:.95 } }
@keyframes rel-window { 0% { filter: brightness(1) } 50% { filter: brightness(.8) } 100% { filter: brightness(1.1) } }
@keyframes rel-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(.96) translateY(1px) } 100% { transform: scaleY(1) } }
@keyframes rel-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes rel-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(-1px) rotate(0) } 75% { transform: translateY(-3px) rotate(-.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rel-letter { 0% { transform: translateX(-50%) rotate(-6deg) } 50% { transform: translateX(-50%) rotate(-4deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(-8deg) } }
@keyframes rel-chair { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) } 100% { transform: scaleY(1) } }

/* Scene: ham-works-silently (dark mood, overcast outdoor) */
.scn-ham-works-silently {
  background:
    linear-gradient(180deg, #3a4045 0%, #2a3035 30%, #1a1e22 70%, #0c0e10 100%),
    radial-gradient(ellipse at 50% 20%, #4a5055 0%, transparent 60%);
}
.scn-ham-works-silently .sky-overcast {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #50555a 0%, #383c40 100%); animation: ha-sky 20s ease-in-out infinite alternate;
}
.scn-ham-works-silently .clouds {
  position:absolute; top:6%; left:-20%; width:140%; height:30%; background: radial-gradient(ellipse at 30% 50%, rgba(90,95,100,.5) 0%, transparent 70%); filter: blur(12px); animation: ha-clouds 45s linear infinite;
}
.scn-ham-works-silently .ground-harbor {
  position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2e30 0%, #1a1c1e 100%); border-radius:30% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-ham-works-silently .ship-hull {
  position:absolute; bottom:20%; left:10%; width:40%; height:12%; background: linear-gradient(180deg, #2a221a 0%, #16100c 100%); border-radius:0 0 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: ha-hull 12s ease-in-out infinite alternate;
}
.scn-ham-works-silently .figure-ham {
  position:absolute; bottom:15%; left:42%; width:14%; height:32%; background: linear-gradient(180deg, #1a1c1e 0%, #0c0e10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ha-ham 5s ease-in-out infinite;
}
.scn-ham-works-silently .tool-hammer {
  position:absolute; bottom:18%; left:50%; width:4%; height:20%; background: linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%); border-radius:10% 10% 40% 40%; transform-origin:bottom center; animation: ha-hammer 2s ease-in-out infinite;
}
.scn-ham-works-silently .rope-coil {
  position:absolute; bottom:8%; left:55%; width:6%; height:6%; background: radial-gradient(circle, #6a6a5a 0%, #3a3a32 100%); border-radius:50%; box-shadow: 0 0 6px rgba(0,0,0,.5); animation: ha-rope 9s ease-in-out infinite alternate;
}
@keyframes ha-sky { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.6 } }
@keyframes ha-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(30%) } }
@keyframes ha-hull { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ha-ham { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(-3px) translateY(-1px) rotate(0) } 60% { transform: translateX(2px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes ha-hammer { 0% { transform: rotate(-20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-20deg) } }
@keyframes ha-rope { 0% { transform: scale(1) } 50% { transform: scale(.95) } 100% { transform: scale(1) } }

/* Scene: letter-to-doras-aunts (tense, bright interior) */
.scn-letter-to-doras-aunts {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8ccb0 50%, #c0b49a 100%),
    radial-gradient(ellipse at 50% 30%, #ffffff 0%, transparent 80%);
}
.scn-letter-to-doras-aunts .room-bright {
  position:absolute; inset:0; background: linear-gradient(180deg, #fff8e8 0%, #e8dcc0 100%); animation: lta-bright 10s ease-in-out infinite alternate;
}
.scn-letter-to-doras-aunts .window-sharp {
  position:absolute; top:12%; right:10%; width:25%; height:40%; background: linear-gradient(135deg, #c0d8e8 0%, #a0b8c8 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 0 30px rgba(255,255,255,.4), 0 4px 8px rgba(0,0,0,.1); animation: lta-window 6s ease-in-out infinite alternate;
}
.scn-letter-to-doras-aunts .desk {
  position:absolute; bottom:20%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #b8a080 0%, #988060 100%); border-radius:2%; box-shadow: 0 6px 12px rgba(0,0,0,.2); animation: lta-desk 14s ease-in-out infinite;
}
.scn-letter-to-doras-aunts .letter-sealed {
  position:absolute; bottom:24%; left:48%; width:10%; height:7%; background: linear-gradient(135deg, #f0e0c0 0%, #d4c0a0 100%); border-radius:2%; box-shadow: 0 2px 4px rgba(0,0,0,.15); transform:translateX(-50%) rotate(3deg); animation: lta-letter 3s ease-in-out infinite;
}
.scn-letter-to-doras-aunts .figure-tense {
  position:absolute; bottom:10%; left:40%; width:18%; height:38%; background: linear-gradient(180deg, #2a2824 0%, #1a1814 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin:bottom; animation: lta-figure 4s ease-in-out infinite;
}
.scn-letter-to-doras-aunts .shadow-strip {
  position:absolute; bottom:0; left:35%; width:30%; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.08) 100%); filter: blur(8px); animation: lta-shadow 8s ease-in-out infinite alternate;
}
.scn-letter-to-doras-aunts .chair-stiff {
  position:absolute; bottom:6%; left:35%; width:30%; height:24%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:15% 15% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: lta-chair 12s ease-in-out infinite;
}
@keyframes lta-bright { 0% { filter: brightness(1) } 50% { filter: brightness(1.05) } 100% { filter: brightness(.95) } }
@keyframes lta-window { 0% { opacity:.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.01) } 100% { opacity:.85; transform: scaleY(.99) } }
@keyframes lta-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes lta-letter { 0% { transform: translateX(-50%) rotate(3deg) scale(1) } 50% { transform: translateX(-50%) rotate(2deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(4deg) scale(1) } }
@keyframes lta-figure { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 70% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes lta-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes lta-chair { 0% { transform: scaleY(1) } 50% { transform: scaleY(.97) } 100% { transform: scaleY(1) } }

/* Scene: david-takes-traddles-to-aunts (warm, bright interior) */
.scn-david-takes-traddles-to-aunts {
  background:
    linear-gradient(180deg, #d4b890 0%, #b09878 40%, #907858 100%),
    radial-gradient(ellipse at 50% 80%, #e8d4b0 0%, transparent 70%);
}
.scn-david-takes-traddles-to-aunts .room-warm {
  position:absolute; inset:0; background: linear-gradient(180deg, #d8c4a8 0%, #b8a488 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.15); animation: dta-room 16s ease-in-out infinite alternate;
}
.scn-david-takes-traddles-to-aunts .doorway {
  position:absolute; bottom:0; left:10%; width:20%; height:80%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1c10 100%); border-radius:0 0 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: dta-door 12s ease-in-out infinite;
}
.scn-david-takes-traddles-to-aunts .figure-david {
  position:absolute; bottom:8%; left:30%; width:15%; height:40%; background: linear-gradient(180deg, #1a1814 0%, #0c0a08 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin:bottom; animation: dta-david 5s ease-in-out infinite;
}
.scn-david-takes-traddles-to-aunts .figure-traddles {
  position:absolute; bottom:8%; left:45%; width:16%; height:42%; background: linear-gradient(180deg, #2a221e 0%, #14100c 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin:bottom; animation: dta-traddles 5.5s ease-in-out infinite;
}
.scn-david-takes-traddles-to-aunts .figure-traddles {
  /* hat off: add a small cap shape */
  box-shadow: 0 -10px 0 #2a221e, 0 -12px 0 #1a1814;
}
.scn-david-takes-traddles-to-aunts .aunt-seated {
  position:absolute; bottom:5%; left:60%; width:18%; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: dta-aunt 8s ease-in-out infinite;
}
.scn-david-takes-traddles-to-aunts .rug-pattern {
  position:absolute; bottom:0; left:15%; right:15%; height:15%; background: repeating-linear-gradient(90deg, #8a7a5a 0px, #6a5a3a 8px, #8a7a5a 16px); border-radius:6% 6% 0 0; opacity:.7; animation: dta-rug 18s linear infinite;
}
.scn-david-takes-traddles-to-aunts .hearth-glow {
  position:absolute; bottom:0; left:55%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 80%, #ffc860 0%, #e8a040 30%, transparent 70%); opacity:.6; animation: dta-hearth 4s ease-in-out infinite alternate;
}
@keyframes dta-room { 0% { filter: brightness(1) } 50% { filter: brightness(1.04) } 100% { filter: brightness(.96) } }
@keyframes dta-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(.98) } 100% { transform: scaleX(1) } }
@keyframes dta-david { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(0) } 50% { transform: translateX(0) translateY(-1px) rotate(1deg) } 75% { transform: translateX(-2px) translateY(0) rotate(0) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes dta-traddles { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 30% { transform: translateX(-2px) translateY(-1px) rotate(0) } 60% { transform: translateX(2px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes dta-aunt { 0% { transform: scaleY(1) } 50% { transform: scaleY(.97) } 100% { transform: scaleY(1) } }
@keyframes dta-rug { 0% { background-position: 0 0 } 100% { background-position: 40px 0 } }
@keyframes dta-hearth { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.95) } }

.scn-uriah-plucks-pear { background: linear-gradient(180deg, #0a0a1e 0%, #141430 40%, #1a1a3e 70%, #0e0e22 100%), radial-gradient(ellipse at 50% 0%, #1c1c4a 0%, transparent 70%); }
.scn-uriah-plucks-pear .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0e0e28 0%, #16163a 100%); animation: upp-sky 15s ease-in-out infinite alternate; }
.scn-uriah-plucks-pear .moon { position:absolute; top:8%; right:22%; width:60px; height:60px; background: radial-gradient(circle at 40% 40%, #c8d8e8 0%, #8a9ab0 60%, transparent 72%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(138,154,176,.3), 0 0 80px 30px rgba(138,154,176,.1); animation: upp-moon 20s ease-in-out infinite alternate; }
.scn-uriah-plucks-pear .tree-branch { position:absolute; top:14%; left:30%; width:200px; height:8px; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3e 50%, #1a1a2a 100%); border-radius:0 4px 4px 0; transform-origin: left center; transform: rotate(-12deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: upp-branch 8s ease-in-out infinite alternate; }
.scn-uriah-plucks-pear .uriah-fig { position:absolute; bottom:18%; left:40%; width:22px; height:52px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: upp-uriah 4s ease-in-out infinite; }
.scn-uriah-plucks-pear .hand-extend { position:absolute; bottom:38%; left:44%; width:28px; height:6px; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3e 100%); border-radius:3px; transform-origin: left center; transform: rotate(18deg); animation: upp-hand 4s ease-in-out infinite; }
.scn-uriah-plucks-pear .pear-group { position:absolute; bottom:44%; left:32%; width:12px; height:14px; background: radial-gradient(ellipse at 40% 30%, #5a4a3a 0%, #3a2a1a 80%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 6px 2px rgba(90,74,58,.4); animation: upp-pear 6s ease-in-out infinite; }
.scn-uriah-plucks-pear .ground-shadow { position:absolute; bottom:10%; left:20%; right:20%; height:12%; background: linear-gradient(90deg, transparent 0%, rgba(10,10,20,.6) 30%, rgba(10,10,20,.8) 50%, rgba(10,10,20,.6) 70%, transparent 100%); border-radius:50%; filter: blur(8px); animation: upp-ground 4s ease-in-out infinite; }
.scn-uriah-plucks-pear .mist { position:absolute; bottom:22%; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(20,20,40,.4) 0%, transparent 100%); filter: blur(12px); animation: upp-mist 12s ease-in-out infinite alternate; }
@keyframes upp-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes upp-moon { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 40px 15px rgba(138,154,176,.3); } 50% { transform: translateX(-4px) scale(1.02); box-shadow: 0 0 50px 20px rgba(138,154,176,.35); } 100% { transform: translateX(0) scale(1); box-shadow: 0 0 35px 12px rgba(138,154,176,.25); } }
@keyframes upp-branch { 0% { transform: rotate(-14deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.01); } 100% { transform: rotate(-14deg) scaleX(1); } }
@keyframes upp-uriah { 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(4px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes upp-hand { 0% { transform: rotate(16deg) scaleX(1); } 30% { transform: rotate(22deg) scaleX(1.05); } 60% { transform: rotate(18deg) scaleX(1.02); } 100% { transform: rotate(16deg) scaleX(1); } }
@keyframes upp-pear { 0% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(-3px) scale(1.05); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.8; } }
@keyframes upp-ground { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.05); opacity:.7; } 100% { transform: scaleX(1); opacity:.5; } }
@keyframes upp-mist { 0% { opacity:.3; transform: translateY(0); } 50% { opacity:.5; transform: translateY(-4px); } 100% { opacity:.3; transform: translateY(0); } }

.scn-aunt-paces-in-discomposure { background: linear-gradient(180deg, #d4c8b0 0%, #c0b49a 30%, #a89880 60%, #8a7a64 100%), radial-gradient(ellipse at 50% 30%, #e0d4c0 0%, transparent 60%); }
.scn-aunt-paces-in-discomposure .room-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8bca4 0%, #a09078 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.15); animation: apd-wall 10s ease-in-out infinite alternate; }
.scn-aunt-paces-in-discomposure .floor-planks { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #6a5a44 0%, #8a7a64 40%, #7a6a54 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,.2); animation: apd-floor 8s ease-in-out infinite alternate; }
.scn-aunt-paces-in-discomposure .window-bright { position:absolute; top:12%; right:15%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 40%, #f0e8d0 0%, #d0c4a8 60%, #a09078 100%); border-radius: 4px; box-shadow: 0 0 30px 10px rgba(240,232,208,.4), inset 0 0 20px rgba(255,255,240,.3); animation: apd-window 12s ease-in-out infinite alternate; }
.scn-aunt-paces-in-discomposure .chair-silhouette { position:absolute; bottom:20%; left:18%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: apd-chair 8s ease-in-out infinite; }
.scn-aunt-paces-in-discomposure .figure-pacing { position:absolute; bottom:22%; left:35%; width:20px; height:48px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; box-shadow: 0 6px 10px rgba(0,0,0,.4); animation: apd-pace 3s ease-in-out infinite; }
.scn-aunt-paces-in-discomposure .rug-oval { position:absolute; bottom:12%; left:25%; right:25%; height:12%; background: linear-gradient(90deg, #6a4a3a 0%, #8a5a4a 30%, #7a4a3a 60%, #5a3a2a 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: apd-rug 6s ease-in-out infinite alternate; }
.scn-aunt-paces-in-discomposure .shadow-sweep { position:absolute; bottom:18%; left:30%; width:70px; height:40px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.15) 40%, rgba(0,0,0,.2) 50%, rgba(0,0,0,.15) 60%, transparent 100%); border-radius:40%; filter: blur(10px); animation: apd-shadow 3s ease-in-out infinite; }
@keyframes apd-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.92; } }
@keyframes apd-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(1); } }
@keyframes apd-window { 0% { opacity:.85; box-shadow: 0 0 20px 6px rgba(240,232,208,.3); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(240,232,208,.5); } 100% { opacity:.88; box-shadow: 0 0 25px 8px rgba(240,232,208,.35); } }
@keyframes apd-chair { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-1px) rotate(-1deg); } 60% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-1px) rotate(1deg); } }
@keyframes apd-pace { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(24px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes apd-rug { 0% { opacity:.8; transform: scaleX(1); } 50% { opacity:.9; transform: scaleX(1.02); } 100% { opacity:.82; transform: scaleX(1); } }
@keyframes apd-shadow { 0% { transform: translateX(0) scaleX(1); opacity:.4; } 25% { transform: translateX(18px) scaleX(1.1); opacity:.6; } 50% { transform: translateX(36px) scaleX(1); opacity:.4; } 75% { transform: translateX(18px) scaleX(1.1); opacity:.6; } 100% { transform: translateX(0) scaleX(1); opacity:.4; } }

.scn-peggotty-returns-from-france { background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0e 100%), radial-gradient(ellipse at 40% 60%, #5a3a1a 0%, transparent 70%); }
.scn-peggotty-returns-from-france .cottage-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: prf-wall 15s ease-in-out infinite alternate; }
.scn-peggotty-returns-from-france .fire-glow { position:absolute; bottom:25%; left:15%; width:70px; height:80px; background: radial-gradient(ellipse at 50% 60%, #d07030 0%, #a05020 30%, #5a2a0a 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(208,112,48,.4), 0 0 120px 40px rgba(208,112,48,.15); animation: prf-fire 5s ease-in-out infinite alternate; }
.scn-peggotty-returns-from-france .mantel-dark { position:absolute; bottom:52%; left:10%; right:10%; height:8px; background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: prf-mantel 12s ease-in-out infinite; }
.scn-peggotty-returns-from-france .table-round { position:absolute; bottom:18%; left:55%; width:60px; height:20px; background: linear-gradient(0deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius:50%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: prf-table 10s ease-in-out infinite alternate; }
.scn-peggotty-returns-from-france .peggotty-seated { position:absolute; bottom:22%; left:50%; width:28px; height:52px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: prf-seated 6s ease-in-out infinite; }
.scn-peggotty-returns-from-france .candlelight { position:absolute; bottom:36%; left:58%; width:6px; height:14px; background: radial-gradient(ellipse at 50% 0%, #f0d080 0%, #c08040 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(240,208,128,.5), 0 0 40px 12px rgba(240,208,128,.2); animation: prf-candle 4s ease-in-out infinite alternate; }
.scn-peggotty-returns-from-france .door-arch { position:absolute; bottom:30%; right:8%; width:40px; height:70px; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%; box-shadow: 0 0 20px 4px rgba(0,0,0,.4); animation: prf-door 15s ease-in-out infinite alternate; }
@keyframes prf-wall { 0% { opacity:.85; } 50% { opacity:.95; } 100% { opacity:.88; } }
@keyframes prf-fire { 0% { opacity:.7; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.05) translateY(-2px); box-shadow: 0 0 70px 25px rgba(208,112,48,.5); } 100% { opacity:.75; transform: scale(1) translateY(0); } }
@keyframes prf-mantel { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes prf-table { 0% { transform: scaleY(1); box-shadow: 0 4px 12px rgba(0,0,0,.5); } 50% { transform: scaleY(1.02); box-shadow: 0 6px 16px rgba(0,0,0,.6); } 100% { transform: scaleY(1); box-shadow: 0 4px 12px rgba(0,0,0,.5); } }
@keyframes prf-seated { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(2px) rotate(1deg) translateY(-1px); } 60% { transform: translateX(0) rotate(-1deg); } 100% { transform: translateX(-2px) rotate(1deg) translateY(-1px); } }
@keyframes prf-candle { 0% { opacity:.7; transform: scaleY(1); box-shadow: 0 0 15px 4px rgba(240,208,128,.4); } 50% { opacity:1; transform: scaleY(1.1); box-shadow: 0 0 30px 10px rgba(240,208,128,.6); } 100% { opacity:.75; transform: scaleY(1); box-shadow: 0 0 20px 6px rgba(240,208,128,.45); } }
@keyframes prf-door { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.65; } }

.scn-peggotty-travels-seeking-emily { background: linear-gradient(180deg, #6a6a5a 0%, #7a7a6a 30%, #8a8a7a 50%, #9a9a8a 70%, #7a7a6a 100%), radial-gradient(ellipse at 50% 0%, #9a9a8a 0%, transparent 70%); }
.scn-peggotty-travels-seeking-emily .overcast-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #7a7a6a 0%, #8a8a7a 40%, #9a9a8a 100%); animation: pts-sky 20s ease-in-out infinite alternate; }
.scn-peggotty-travels-seeking-emily .distant-town { position:absolute; bottom:40%; left:55%; width:80px; height:40px; background: linear-gradient(180deg, #5a5a4a 0%, #4a4a3a 50%, #3a3a2a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: pts-town 25s ease-in-out infinite alternate; }
.scn-peggotty-travels-seeking-emily .road-band { position:absolute; bottom:22%; left:0; right:0; height:22%; background: linear-gradient(0deg, #6a5a3a 0%, #8a7a5a 40%, #7a6a4a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.2); animation: pts-road 15s ease-in-out infinite; }
.scn-peggotty-travels-seeking-emily .figure-travel { position:absolute; bottom:28%; left:25%; width:18px; height:44px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: pts-walk 4s ease-in-out infinite; }
.scn-peggotty-travels-seeking-emily .wayside-post { position:absolute; bottom:32%; left:60%; width:4px; height:28px; background: linear-gradient(0deg, #3a2a1a 0%, #5a4a2a 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: pts-post 10s ease-in-out infinite alternate; }
.scn-peggotty-travels-seeking-emily .field-stretch { position:absolute; bottom:30%; left:0; right:0; height:15%; background: linear-gradient(0deg, #5a6a3a 0%, #6a7a4a 50%, #5a6a3a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; opacity:.6; animation: pts-field 18s ease-in-out infinite alternate; }
.scn-peggotty-travels-seeking-emily .cloud-veil { position:absolute; top:12%; left:10%; width:120px; height:20px; background: linear-gradient(90deg, rgba(120,120,100,.5) 0%, rgba(140,140,120,.3) 50%, rgba(120,120,100,.5) 100%); border-radius:50%; filter: blur(8px); animation: pts-cloud 40s linear infinite; }
@keyframes pts-sky { 0% { opacity:.75; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes pts-town { 0% { opacity:.6; transform: translateX(0) scale(1); } 50% { opacity:.8; transform: translateX(-3px) scale(1.02); } 100% { opacity:.65; transform: translateX(0) scale(1); } }
@keyframes pts-road { 0% { opacity:.85; } 50% { opacity:.95; } 100% { opacity:.88; } }
@keyframes pts-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 20% { transform: translateX(6px) translateY(-1px) rotate(1deg); } 40% { transform: translateX(12px) translateY(0) rotate(-1deg); } 60% { transform: translateX(18px) translateY(-1px) rotate(1deg); } 80% { transform: translateX(24px) translateY(0) rotate(-2deg); } 100% { transform: translateX(30px) translateY(-1px) rotate(1deg); } }
@keyframes pts-post { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes pts-field { 0% { opacity:.5; transform: translateY(0); } 50% { opacity:.7; transform: translateY(-2px); } 100% { opacity:.55; transform: translateY(0); } }
@keyframes pts-cloud { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

/* ===== Scene: mrs-micawber-hysterical (warm dim interior) ===== */
.scn-mrs-micawber-hysterical {
  background: linear-gradient(160deg, #4a2c1a 0%, #3a1e0a 60%, #2a1404 100%),
              radial-gradient(ellipse at 50% 70%, #c07a30 0%, transparent 60%);
}
.scn-mrs-micawber-hysterical .room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(180,100,50,0.1) 0%, transparent 60%, rgba(0,0,0,0.3) 100%);
  animation: mmh-room 12s ease-in-out infinite alternate;
}
.scn-mrs-micawber-hysterical .window {
  position: absolute; top: 12%; left: 70%; width: 24%; height: 35%;
  background: linear-gradient(135deg, #2a1a0a 0%, #1a0e04 100%);
  border: 2px solid #5a3a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: mmh-window 8s ease-in-out infinite;
}
.scn-mrs-micawber-hysterical .candle {
  position: absolute; bottom: 40%; left: 45%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0a050 0%, #8a5a30 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: mmh-candle-flame 2s ease-in-out infinite alternate;
}
.scn-mrs-micawber-hysterical .woman {
  position: absolute; bottom: 28%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2210 0%, #1e1006 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mmh-woman 5s ease-in-out infinite;
}
.scn-mrs-micawber-hysterical .man {
  position: absolute; bottom: 28%; left: 55%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #2a1a0c 0%, #150a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mmh-man-rush 4s ease-in-out infinite;
}
.scn-mrs-micawber-hysterical .glow {
  position: absolute; bottom: 42%; left: 44%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0b060 0%, #e09040 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mmh-glow-pulse 3s ease-in-out infinite alternate;
}
@keyframes mmh-room { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes mmh-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes mmh-candle-flame {
  0% { transform: rotate(-2deg) scaleX(0.9); opacity: 0.9; }
  50% { transform: rotate(3deg) scaleX(1.2); opacity: 1; }
  100% { transform: rotate(-1deg) scaleX(0.95); opacity: 0.85; }
}
@keyframes mmh-woman {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(-1px) rotate(-4deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes mmh-man-rush {
  0% { transform: translateX(0) rotate(0deg) scaleX(0.8); }
  30% { transform: translateX(-8px) rotate(-5deg) scaleX(1); }
  60% { transform: translateX(4px) rotate(3deg) scaleX(0.9); }
  100% { transform: translateX(0) rotate(0deg) scaleX(0.8); }
}
@keyframes mmh-glow-pulse {
  0% { box-shadow: 0 0 20px 10px #e09040, 0 0 40px 20px rgba(224,144,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 15px #f0b060, 0 0 60px 30px rgba(240,176,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 20px 10px #d08030, 0 0 40px 20px rgba(208,128,48,0.3); opacity: 0.85; }
}

/* ===== Scene: micawber-advice-wretch (dark somber interior) ===== */
.scn-micawber-advice-wretch {
  background: linear-gradient(135deg, #0d0a1a 0%, #1a1430 40%, #0f0c20 100%),
              radial-gradient(ellipse at 40% 60%, #1a1430 0%, transparent 70%);
}
.scn-micawber-advice-wretch .room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,15,40,0.3) 0%, transparent 50%, rgba(0,0,0,0.6) 100%);
  animation: maw-room 15s ease-in-out infinite alternate;
}
.scn-micawber-advice-wretch .table {
  position: absolute; bottom: 22%; left: 30%; width: 35%; height: 10px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: maw-table 20s ease-in-out infinite;
}
.scn-micawber-advice-wretch .candle-glow {
  position: absolute; bottom: 32%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #a07030 0%, #604020 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: maw-candle 3s ease-in-out infinite alternate;
}
.scn-micawber-advice-wretch .figure-micawber {
  position: absolute; bottom: 25%; left: 42%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: maw-micawber 6s ease-in-out infinite;
}
.scn-micawber-advice-wretch .figure-david {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #201830 0%, #120c20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: maw-david 8s ease-in-out infinite;
}
.scn-micawber-advice-wretch .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.4) 0%, transparent 70%);
  pointer-events: none;
  animation: maw-shadow 10s ease-in-out infinite alternate;
}
@keyframes maw-room { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes maw-table { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes maw-candle {
  0% { transform: scale(0.9); opacity: 0.7; box-shadow: 0 0 8px 4px #604020; }
  50% { transform: scale(1.1); opacity: 0.9; box-shadow: 0 0 16px 8px #a07030; }
  100% { transform: scale(0.95); opacity: 0.75; box-shadow: 0 0 10px 5px #604020; }
}
@keyframes maw-micawber {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(-2deg) scaleY(1.02); }
  50% { transform: rotate(1deg) scaleY(0.98); }
  75% { transform: rotate(-1deg) scaleY(1.01); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes maw-david {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-3px) rotate(-1deg); }
  60% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes maw-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.5; }
}

/* ===== Scene: chase-for-box-money (tense sunlit outdoor) ===== */
.scn-chase-for-box-money {
  background: linear-gradient(180deg, #6fa8dc 0%, #b8d4e8 40%, #d0e8f0 70%, #c0d8e0 100%),
              radial-gradient(ellipse at 20% 30%, #f0e68c 0%, transparent 50%);
}
.scn-chase-for-box-money .sky {
  position: absolute; inset: 0 0 70% 0;
  background: linear-gradient(180deg, #4a82b8 0%, #7ab0d4 100%);
  animation: cbm-sky 8s ease-in-out infinite alternate;
}
.scn-chase-for-box-money .sun {
  position: absolute; top: 8%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fdf4a6 0%, #f0d060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: cbm-sun 6s ease-in-out infinite alternate;
}
.scn-chase-for-box-money .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 50%, #2a4a1a 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: cbm-ground 10s ease-in-out infinite;
}
.scn-chase-for-box-money .cart {
  position: absolute; bottom: 20%; left: 65%; width: 80px; height: 45px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 6px 8px rgba(0,0,0,0.4);
  animation: cbm-cart 3s ease-in-out infinite;
}
.scn-chase-for-box-money .runner {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbm-runner 0.8s ease-in-out infinite;
}
.scn-chase-for-box-money .dust {
  position: absolute; bottom: 22%; background: rgba(200,180,150,0.6);
  border-radius: 50%; filter: blur(4px);
}
.scn-chase-for-box-money .dust-1 {
  left: 35%; width: 12px; height: 12px;
  animation: cbm-dust1 1.5s linear infinite;
}
.scn-chase-for-box-money .dust-2 {
  left: 40%; width: 8px; height: 8px;
  animation: cbm-dust2 2s linear infinite 0.5s;
}
@keyframes cbm-sky {
  0% { background-position: 0% 0%; }
  50% { background-position: 10% 5%; }
  100% { background-position: 0% 0%; }
}
@keyframes cbm-sun {
  0% { transform: translateX(0) scale(0.95); opacity: 0.85; }
  50% { transform: translateX(8px) scale(1.05); opacity: 1; }
  100% { transform: translateX(0) scale(0.95); opacity: 0.9; }
}
@keyframes cbm-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cbm-cart {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(2deg) translateX(-3px); }
  50% { transform: rotate(-1deg) translateX(2px); }
  75% { transform: rotate(3deg) translateX(-1px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes cbm-runner {
  0% { transform: rotate(-5deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-3px); }
  50% { transform: rotate(-4deg) translateY(0); }
  75% { transform: rotate(4deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes cbm-dust1 {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-20px) scale(1.5); opacity: 0.3; }
  100% { transform: translateY(-40px) scale(2); opacity: 0; }
}
@keyframes cbm-dust2 {
  0% { transform: translateY(0) scale(0.8); opacity: 0.5; }
  50% { transform: translateY(-15px) scale(1.2); opacity: 0.2; }
  100% { transform: translateY(-30px) scale(1.6); opacity: 0; }
}

/* ===== Scene: rest-at-kent-road (calm overcast) ===== */
.scn-rest-at-kent-road {
  background: linear-gradient(180deg, #b8c8d0 0%, #9aacb8 40%, #7a8c98 100%),
              radial-gradient(ellipse at 50% 120%, #9aacb8 0%, transparent 60%);
}
.scn-rest-at-kent-road .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #c8d4dc 0%, #b0c0cc 100%);
  animation: rkr-sky 20s ease-in-out infinite alternate;
}
.scn-rest-at-kent-road .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(135deg, #5a5a4a 0%, #4a4a3a 50%, #3a3a2a 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: rkr-road 16s ease-in-out infinite;
}
.scn-rest-at-kent-road .grass {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.15);
  animation: rkr-grass 25s ease-in-out infinite alternate;
}
.scn-rest-at-kent-road .figure {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rkr-figure 8s ease-in-out infinite;
}
.scn-rest-at-kent-road .tree {
  position: absolute; bottom: 30%; width: 16px; height: 60px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: rkr-tree 12s ease-in-out infinite;
}
.scn-rest-at-kent-road .tree-1 {
  left: 15%;
  animation-delay: 0s;
}
.scn-rest-at-kent-road .tree-2 {
  left: 70%;
  width: 20px;
  height: 70px;
  animation-delay: -4s;
}
@keyframes rkr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes rkr-road {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(1); }
}
@keyframes rkr-grass {
  0% { transform: translateY(0) scale(0.98); }
  50% { transform: translateY(-3px) scale(1); }
  100% { transform: translateY(0) scale(0.98); }
}
@keyframes rkr-figure {
  0% { transform: rotate(0deg) scaleY(0.98); }
  25% { transform: rotate(2deg) scaleY(1.02); }
  50% { transform: rotate(-1deg) scaleY(0.99); }
  75% { transform: rotate(1deg) scaleY(1.01); }
  100% { transform: rotate(0deg) scaleY(0.98); }
}
@keyframes rkr-tree {
  0% { transform: rotate(0deg) scaleX(1); }
  25% { transform: rotate(1deg) scaleX(0.99); }
  50% { transform: rotate(-1deg) scaleX(1.01); }
  75% { transform: rotate(0.5deg) scaleX(0.99); }
  100% { transform: rotate(0deg) scaleX(1); }
}

/* micawber-promises */
.scn-micawber-promises {
  background: 
    linear-gradient(180deg, #4a2e1a 0%, #6b3f1f 20%, #c47a3a 50%, #e8a44a 70%, #f4c87a 100%),
    radial-gradient(ellipse at 50% 100%, #c47a3a 0%, transparent 60%);
}
.scn-micawber-promises .window {
  position: absolute;
  top: 10%; left: 60%;
  width: 30%; height: 40%;
  background: linear-gradient(180deg, #ffd27f 0%, #ff8c42 70%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 0 40px 10px #ffb347, 0 0 80px 20px rgba(255, 140, 66, 0.4);
  animation: mp-window 6s ease-in-out infinite alternate;
}
.scn-micawber-promises .desk {
  position: absolute;
  bottom: 20%; left: 20%;
  width: 40%; height: 8%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2a1a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: mp-desk 8s ease-in-out infinite;
}
.scn-micawber-promises .chair {
  position: absolute;
  bottom: 24%; left: 15%;
  width: 12%; height: 16%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  transform-origin: bottom center;
  animation: mp-chair 5s ease-in-out infinite alternate;
}
.scn-micawber-promises .figure {
  position: absolute;
  bottom: 22%; left: 35%;
  width: 10%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-figure 4s ease-in-out infinite;
}
.scn-micawber-promises .lamp {
  position: absolute;
  bottom: 40%; left: 70%;
  width: 4%; height: 12%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 10%;
  box-shadow: 0 0 20px 8px #ffb347;
  animation: mp-lamp 3s ease-in-out infinite alternate;
}
.scn-micawber-promises .paper {
  position: absolute;
  bottom: 28%; left: 28%;
  width: 8%; height: 6%;
  background: #f4e4c4;
  border-radius: 4%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: mp-paper 7s ease-in-out infinite;
}
@keyframes mp-window {
  0% { opacity: 0.8; transform: scaleX(0.98); }
  50% { opacity: 1; transform: scaleX(1); }
  100% { opacity: 0.85; transform: scaleX(0.99); }
}
@keyframes mp-desk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes mp-chair {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(-1deg) scaleY(1); }
}
@keyframes mp-figure {
  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 mp-lamp {
  0% { box-shadow: 0 0 15px 5px #ffb347; opacity: 0.8; }
  100% { box-shadow: 0 0 30px 12px #ffa500; opacity: 1; }
}
@keyframes mp-paper {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}

/* micawber-fantasy-voyage */
.scn-micawber-fantasy-voyage {
  background: 
    linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 30%, #2a3a4a 50%, #3a4a5a 70%, #5a6a7a 100%),
    radial-gradient(ellipse at 50% 0%, #9ab0c0 0%, transparent 70%);
}
.scn-micawber-fantasy-voyage .moon {
  position: absolute;
  top: 8%; left: 70%;
  width: 12%; height: 12%;
  background: radial-gradient(circle, #e0ecf0 0%, #b0c0d0 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #c0d0e0, 0 0 80px 30px rgba(192,208,224,0.4);
  animation: fv-moon 12s ease-in-out infinite alternate;
}
.scn-micawber-fantasy-voyage .ship {
  position: absolute;
  bottom: 25%; left: 20%;
  width: 30%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 100%, 15% 40%, 35% 20%, 60% 30%, 85% 20%, 100% 90%, 85% 100%, 15% 100%);
  animation: fv-ship 6s ease-in-out infinite;
}
.scn-micawber-fantasy-voyage .wave {
  position: absolute;
  bottom: 0%;
  width: 100%; height: 30%;
  background: linear-gradient(180deg, rgba(90,110,130,0.6) 0%, rgba(40,60,80,0.8) 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: fv-wave 8s ease-in-out infinite alternate;
}
.scn-micawber-fantasy-voyage .wave1 {
  bottom: 5%;
  animation-delay: 0s;
}
.scn-micawber-fantasy-voyage .wave2 {
  bottom: 0%;
  animation-delay: -4s;
  opacity: 0.7;
}
.scn-micawber-fantasy-voyage .dolphin {
  position: absolute;
  bottom: 35%; left: 60%;
  width: 15%; height: 8%;
  background: linear-gradient(180deg, #6a8a9a 0%, #3a5a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: fv-dolphin 4s ease-in-out infinite;
}
.scn-micawber-fantasy-voyage .figure {
  position: absolute;
  bottom: 38%; left: 30%;
  width: 8%; height: 16%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: fv-figure 5s ease-in-out infinite;
}
@keyframes fv-moon {
  0% { opacity: 0.8; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.9; transform: scale(0.98); }
}
@keyframes fv-ship {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-2deg) translateY(-1px); }
}
@keyframes fv-wave {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.1); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes fv-dolphin {
  0% { transform: translateX(0) rotate(-20deg) scaleY(1); }
  25% { transform: translateX(10px) rotate(-10deg) scaleY(1.2); }
  50% { transform: translateX(20px) rotate(0deg) scaleY(1); }
  75% { transform: translateX(10px) rotate(10deg) scaleY(0.8); }
  100% { transform: translateX(0) rotate(-20deg) scaleY(1); }
}
@keyframes fv-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* micawber-nautical-enthusiasm */
.scn-micawber-nautical-enthusiasm {
  background: 
    linear-gradient(180deg, #0a1520 0%, #152530 30%, #203540 50%, #304550 70%, #405560 100%),
    radial-gradient(ellipse at 30% 0%, #607080 0%, transparent 60%);
}
.scn-micawber-nautical-enthusiasm .bow {
  position: absolute;
  bottom: 20%; left: 0;
  width: 40%; height: 30%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 100%, 20% 40%, 50% 20%, 100% 50%, 100% 100%);
  animation: ne-bow 6s ease-in-out infinite;
}
.scn-micawber-nautical-enthusiasm .sail {
  position: absolute;
  bottom: 40%;
  width: 20%; height: 25%;
  background: linear-gradient(180deg, #d0d8e0 0%, #a0a8b0 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  animation: ne-sail 7s ease-in-out infinite alternate;
}
.scn-micawber-nautical-enthusiasm .sail-fore {
  left: 20%;
  clip-path: polygon(50% 0%, 100% 20%, 90% 100%, 10% 100%, 0% 20%);
}
.scn-micawber-nautical-enthusiasm .sail-aft {
  left: 50%;
  clip-path: polygon(50% 0%, 100% 20%, 90% 100%, 10% 100%, 0% 20%);
  animation-delay: -3s;
  width: 18%;
}
.scn-micawber-nautical-enthusiasm .figure {
  position: absolute;
  bottom: 30%; left: 15%;
  width: 8%; height: 18%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ne-figure 4s ease-in-out infinite;
}
.scn-micawber-nautical-enthusiasm .porpoise {
  position: absolute;
  bottom: 25%; right: 20%;
  width: 12%; height: 6%;
  background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: ne-porpoise 3s ease-in-out infinite;
}
.scn-micawber-nautical-enthusiasm .wave {
  position: absolute;
  bottom: 0;
  width: 100%; height: 25%;
  background: linear-gradient(180deg, rgba(60,80,100,0.6) 0%, rgba(20,40,60,0.9) 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: ne-wave 9s ease-in-out infinite alternate;
}
.scn-micawber-nautical-enthusiasm .moonlight {
  position: absolute;
  top: 10%; left: 60%;
  width: 1px; height: 1px;
  background: transparent;
  box-shadow: 0 0 60px 30px rgba(160,180,200,0.3);
  animation: ne-moonlight 8s ease-in-out infinite alternate;
}
@keyframes ne-bow {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes ne-sail {
  0% { transform: scaleX(0.95) rotate(-1deg); opacity: 0.9; }
  50% { transform: scaleX(1) rotate(1deg); opacity: 1; }
  100% { transform: scaleX(0.95) rotate(-1deg); opacity: 0.9; }
}
@keyframes ne-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ne-porpoise {
  0% { transform: translateX(0) rotate(15deg) scaleY(1); }
  25% { transform: translateX(-8px) rotate(25deg) scaleY(1.3); }
  50% { transform: translateX(-16px) rotate(35deg) scaleY(1); }
  75% { transform: translateX(-8px) rotate(25deg) scaleY(0.8); }
  100% { transform: translateX(0) rotate(15deg) scaleY(1); }
}
@keyframes ne-wave {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.15); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ne-moonlight {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

/* gloomy-night-reflection */
.scn-gloomy-night-reflection {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #10102a 30%, #151535 50%, #1a1a3a 70%, #202040 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a5a 0%, transparent 70%);
}
.scn-gloomy-night-reflection .railing {
  position: absolute;
  bottom: 30%; left: 10%;
  width: 80%; height: 2%;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: gn-railing 10s ease-in-out infinite;
}
.scn-gloomy-night-reflection .figure {
  position: absolute;
  bottom: 30%; left: 35%;
  width: 8%; height: 22%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gn-figure 6s ease-in-out infinite alternate;
}
.scn-gloomy-night-reflection .water {
  position: absolute;
  bottom: 0;
  width: 100%; height: 32%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: gn-water 12s ease-in-out infinite alternate;
}
.scn-gloomy-night-reflection .star {
  position: absolute;
  width: 2px; height: 2px;
  background: #d0d0e0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(208,208,224,0.6);
  animation: gn-star 4s ease-in-out infinite alternate;
}
.scn-gloomy-night-reflection .star-a {
  top: 12%; left: 20%;
  animation-delay: 0s;
  width: 3px; height: 3px;
}
.scn-gloomy-night-reflection .star-b {
  top: 18%; left: 55%;
  animation-delay: -1.3s;
}
.scn-gloomy-night-reflection .star-c {
  top: 8%; left: 75%;
  animation-delay: -2.7s;
  width: 1px; height: 1px;
}
.scn-gloomy-night-reflection .horizon {
  position: absolute;
  bottom: 32%; left: 0;
  width: 100%; height: 1px;
  background: linear-gradient(90deg, transparent 0%, #3a3a5a 50%, transparent 100%);
  animation: gn-horizon 15s ease-in-out infinite;
}
@keyframes gn-railing {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(1px); }
}
@keyframes gn-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gn-water {
  0% { opacity: 0.9; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(0.95); }
  100% { opacity: 0.9; filter: brightness(1); }
}
@keyframes gn-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 gn-horizon {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

.scn-dora-serves-oysters { background: linear-gradient(180deg, #fff8e7 0%, #f5e6c8 50%, #dcc8a0 100%), radial-gradient(ellipse at 50% 0%, #fff3d6 0%, transparent 70%); }
.scn-dora-serves-oysters .bg-wall    { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #fffbe6 0%, #efe0c0 100%); }
.scn-dora-serves-oysters .bg-floor   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8a878 0%, #a8875a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-dora-serves-oysters .table      { position:absolute; bottom:30%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #b8956a 0%, #8c6f4a 100%); border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-dora-serves-oysters .oyster-plate { position:absolute; bottom:32%; left:45%; width:30px; height:10px; background: radial-gradient(circle at 50% 30%, #f0e0c0 0%, #d8c8a0 60%, #b89878 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: dso-plate 6s ease-in-out infinite; }
.scn-dora-serves-oysters .figure-dora { position:absolute; bottom:26%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #f0d8b8 0%, #d4b898 50%, #a07a5a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: dso-figure 4s ease-in-out infinite; }
.scn-dora-serves-oysters .figure-david { position:absolute; bottom:26%; right:35%; width:22px; height:50px; background: linear-gradient(180deg, #d4c0a0 0%, #b0a080 50%, #8a7050 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: dso-figure 5s ease-in-out infinite reverse; }
.scn-dora-serves-oysters .lamp       { position:absolute; top:10%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: radial-gradient(circle at 50% 70%, #ffe680 0%, #d4a850 60%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 20px #ffe680, 0 0 80px 40px rgba(255,230,128,.3); animation: dso-lamp 3s ease-in-out infinite alternate; }
.scn-dora-serves-oysters .curtain-left { position:absolute; top:0; left:0; width:18%; height:100%; background: linear-gradient(180deg, #c87050 0%, #a05a3a 100%); border-radius: 0 60% 60% 0 / 0 40% 40% 0; animation: dso-curtain 8s ease-in-out infinite alternate; }
.scn-dora-serves-oysters .curtain-right { position:absolute; top:0; right:0; width:18%; height:100%; background: linear-gradient(180deg, #c87050 0%, #a05a3a 100%); border-radius: 60% 0 0 60% / 40% 0 0 40%; animation: dso-curtain 10s ease-in-out infinite alternate-reverse; }
@keyframes dso-plate    { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes dso-figure   { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg); } }
@keyframes dso-lamp     { 0% { box-shadow: 0 0 30px 15px #ffe680, 0 0 60px 30px rgba(255,230,128,.2); opacity:0.9; } 50% { box-shadow: 0 0 50px 25px #ffd060, 0 0 90px 45px rgba(255,208,96,.4); opacity:1; } 100% { box-shadow: 0 0 35px 18px #ffe680, 0 0 70px 35px rgba(255,230,128,.3); opacity:0.95; } }
@keyframes dso-curtain  { 0% { transform: scaleX(1); } 100% { transform: scaleX(0.95); } }

.scn-dora-confesses-as-child-wife { background: linear-gradient(180deg, #2a1a0a 0%, #4a2a18 50%, #3a2010 100%), radial-gradient(ellipse at 50% 50%, #4a2a18 0%, transparent 70%); }
.scn-dora-confesses-as-child-wife .bg-deep    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a0a04 0%, transparent 100%); }
.scn-dora-confesses-as-child-wife .bg-mid     { position:absolute; bottom:20%; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a2a18 0%, #2a1a0a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; }
.scn-dora-confesses-as-child-wife .silhouette-dora { position:absolute; bottom:30%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #0a0604 0%, #1a1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dcc-fig 6s ease-in-out infinite; }
.scn-dora-confesses-as-child-wife .silhouette-david { position:absolute; bottom:30%; right:45%; width:24px; height:60px; background: linear-gradient(180deg, #0a0806 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dcc-fig 7s ease-in-out infinite reverse; }
.scn-dora-confesses-as-child-wife .glow-heart { position:absolute; bottom:45%; left:50%; width:20px; height:18px; transform:translate(-50%,50%); background: radial-gradient(circle at 50% 50%, #ffd0a0 0%, #c07040 60%, transparent 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 30px 10px #ffd0a0, 0 0 60px 20px rgba(255,208,160,.3); animation: dcc-heart 4s ease-in-out infinite alternate; }
.scn-dora-confesses-as-child-wife .shadow-tears { position:absolute; bottom:35%; left:50%; width:4px; height:8px; transform:translateX(-50%); background: radial-gradient(circle, #4080ff 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: dcc-tears 3s ease-in-out infinite; }
.scn-dora-confesses-as-child-wife .frame-left  { position:absolute; top:0; left:0; width:12%; height:100%; background: linear-gradient(90deg, #1a0a04 0%, transparent 100%); }
.scn-dora-confesses-as-child-wife .frame-right { position:absolute; top:0; right:0; width:12%; height:100%; background: linear-gradient(270deg, #1a0a04 0%, transparent 100%); }
@keyframes dcc-fig   { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); } 66% { transform: translateX(3px) translateY(-1px) rotate(2deg); } }
@keyframes dcc-heart { 0% { transform: translate(-50%,50%) scale(0.9); opacity:0.7; } 50% { transform: translate(-50%,50%) scale(1.1); opacity:1; } 100% { transform: translate(-50%,50%) scale(1); opacity:0.9; } }
@keyframes dcc-tears { 0% { opacity:0; } 50% { opacity:0.8; transform: translateX(-50%) translateY(2px); } 100% { opacity:0; transform: translateX(-50%) translateY(6px); } }

.scn-dick-fulfills-predictions { background: linear-gradient(180deg, #f5ead0 0%, #e8d4b0 40%, #d4be98 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-dick-fulfills-predictions .bg-room     { position:absolute; inset:0; background: linear-gradient(180deg, #f5ead0 0%, #e8d4b0 100%); }
.scn-dick-fulfills-predictions .bookshelf   { position:absolute; top:5%; left:5%; width:30%; height:70%; background: linear-gradient(90deg, #a08060 0%, #c8a880 10%, #a08060 20%, #c8a880 30%, #a08060 40%, #c8a880 50%, #a08060 60%, #c8a880 70%, #a08060 80%, #c8a880 90%, #a08060 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.2); animation: dfp-shelf 30s ease-in-out infinite alternate; }
.scn-dick-fulfills-predictions .chair-dick  { position:absolute; bottom:20%; left:30%; width:50px; height:60px; background: linear-gradient(180deg, #b8906a 0%, #9a7050 100%); border-radius: 20% 20% 10% 10%; }
.scn-dick-fulfills-predictions .figure-dick { position:absolute; bottom:25%; left:33%; width:20px; height:50px; background: linear-gradient(180deg, #e0c8a8 0%, #c8ac88 50%, #a88862 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: dfp-fig 6s ease-in-out infinite; }
.scn-dick-fulfills-predictions .figure-doctor { position:absolute; bottom:25%; right:25%; width:24px; height:55px; background: linear-gradient(180deg, #d4b890 0%, #b89870 50%, #907050 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: dfp-fig 8s ease-in-out infinite reverse; }
.scn-dick-fulfills-predictions .figure-old-soldier { position:absolute; bottom:25%; left:60%; width:22px; height:48px; background: linear-gradient(180deg, #b0a080 0%, #8a7050 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: dfp-fig 7s ease-in-out infinite; }
.scn-dick-fulfills-predictions .window-light { position:absolute; top:10%; right:10%; width:80px; height:100px; background: linear-gradient(135deg, #fff8e0 0%, #e8d4b0 100%); border-radius: 10px; box-shadow: inset 0 0 40px rgba(255,255,200,.5); animation: dfp-window 10s ease-in-out infinite alternate; }
.scn-dick-fulfills-predictions .rug        { position:absolute; bottom:0; left:10%; right:10%; height:15%; background: linear-gradient(90deg, #c87050 0%, #a05a3a 20%, #c87050 40%, #a05a3a 60%, #c87050 80%, #a05a3a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; animation: dfp-rug 20s ease-in-out infinite alternate; }
@keyframes dfp-shelf  { 0% { filter: brightness(1); } 100% { filter: brightness(1.05); } }
@keyframes dfp-fig    { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 33% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 66% { transform: translateX(-2px) translateY(-1px) rotate(0deg); } }
@keyframes dfp-window { 0% { opacity:0.8; box-shadow: inset 0 0 20px rgba(255,255,200,.3); } 50% { opacity:1; box-shadow: inset 0 0 50px rgba(255,255,200,.6); } 100% { opacity:0.9; box-shadow: inset 0 0 30px rgba(255,255,200,.4); } }
@keyframes dfp-rug    { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.02); } }

.scn-old-soldier-s-compliments { background: linear-gradient(180deg, #f0e8d8 0%, #dcc8b0 50%, #c0a888 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%); }
.scn-old-soldier-s-compliments .bg-parlour { position:absolute; inset:0; background: linear-gradient(180deg, #f0e8d8 0%, #dcc8b0 100%); }
.scn-old-soldier-s-compliments .fireplace   { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.5); }
.scn-old-soldier-s-compliments .mantel      { position:absolute; bottom:25%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-old-soldier-s-compliments .figure-old-soldier { position:absolute; bottom:18%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #b8a090 0%, #8a7060 50%, #605040 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: osc-fig 5s ease-in-out infinite; }
.scn-old-soldier-s-compliments .compliment-sparkles { position:absolute; top:15%; left:30%; right:30%; height:20%; background: radial-gradient(circle at 20% 30%, #ffd080 0%, transparent 50%), radial-gradient(circle at 70% 60%, #ffd080 0%, transparent 50%), radial-gradient(circle at 50% 20%, #ffd080 0%, transparent 50%); filter: blur(2px); animation: osc-spark 4s ease-in-out infinite alternate; }
.scn-old-soldier-s-compliments .chair       { position:absolute; bottom:10%; left:25%; width:40px; height:50px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 10% 10% 5% 5%; }
.scn-old-soldier-s-compliments .fan         { position:absolute; bottom:30%; left:48%; width:20px; height:30px; transform-origin: bottom center; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 50% 50% 0 0; animation: osc-fan 2s ease-in-out infinite alternate; }
@keyframes osc-fig   { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(4px) translateY(-2px) rotate(2deg); } }
@keyframes osc-spark { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.95); } }
@keyframes osc-fan   { 0% { transform: rotate(-30deg); } 100% { transform: rotate(30deg); } }

/* dog-not-found */
.scn-dog-not-found { background: linear-gradient(180deg, #d9c8a8 0%, #b59a66 40%, #8b7a4a 100%), radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 60%); }
.scn-dog-not-found .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e6d5b8 0%, #d9c8a8 100%); }
.scn-dog-not-found .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b59a66 0%, #8b7a4a 100%); }
.scn-dog-not-found .window { position:absolute; top:15%; left:10%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 50%, #fff8dc 0%, #f0e0b0 60%, #d9c8a8 100%); border: 4px solid #8b7a4a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,248,220,.5); animation: dnf-window 6s ease-in-out infinite alternate; }
.scn-dog-not-found .door { position:absolute; bottom:40%; right:15%; width:60px; height:100px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius:4px 4px 0 0; box-shadow: -3px 0 6px rgba(0,0,0,.2); }
.scn-dog-not-found .figure { position:absolute; bottom:40%; left:40%; width:32px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dnf-figure 4s ease-in-out infinite; }
.scn-dog-not-found .boots { position:absolute; bottom:40%; left:45%; width:20px; height:16px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 20% 20%; transform:rotate(15deg); animation: dnf-boots 2s ease-in-out infinite alternate; }
.scn-dog-not-found .shadow-dog { position:absolute; bottom:40%; right:45%; width:40px; height:30px; background: rgba(40,30,20,.4); border-radius:50% 50% 0 0; filter: blur(3px); animation: dnf-shadow-dog 8s ease-in-out infinite; }
.scn-dog-not-found .lantern { position:absolute; top:25%; left:5%; width:12px; height:18px; background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius:30%; box-shadow: 0 0 20px 4px #f0c068; animation: dnf-lantern 3s ease-in-out infinite alternate; }
@keyframes dnf-window { 0% { opacity:.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.02) } 100% { opacity:.8; transform:scale(.98) } }
@keyframes dnf-figure { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(10px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes dnf-boots { 0% { transform: rotate(10deg) translateY(0) } 100% { transform: rotate(20deg) translateY(-2px) } }
@keyframes dnf-shadow-dog { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(8px) scaleX(1.2) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes dnf-lantern { 0% { opacity:.6; box-shadow:0 0 15px 2px #f0c068 } 100% { opacity:1; box-shadow:0 0 30px 8px #f0c068 } }

/* preparations-mop-water */
.scn-preparations-mop-water { background: linear-gradient(180deg, #b8c6d0 0%, #9aabb8 40%, #7a8a96 100%), radial-gradient(ellipse at 80% 30%, #d0e0e8 0%, transparent 70%); }
.scn-preparations-mop-water .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8d4de 0%, #b0bfcc 100%); }
.scn-preparations-mop-water .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); }
.scn-preparations-mop-water .window { position:absolute; top:12%; left:8%; width:80px; height:90px; background: radial-gradient(ellipse at 50% 50%, #e8f0f8 0%, #c0d0de 60%, #9aabb8 100%); border:3px solid #5a4a2a; border-radius:4px; box-shadow: inset 0 0 30px rgba(200,220,240,.4); animation: pmw-window 10s ease-in-out infinite alternate; }
.scn-preparations-mop-water .bucket { position:absolute; bottom:35%; left:60%; width:40px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:0 0 20% 20%; animation: pmw-bucket 4s ease-in-out infinite; }
.scn-preparations-mop-water .mop-stick { position:absolute; bottom:35%; left:45%; width:6px; height:100px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius:10px; transform-origin: bottom center; animation: pmw-mop-stick 3s ease-in-out infinite alternate; }
.scn-preparations-mop-water .mop-head { position:absolute; bottom:35%; left:40%; width:30px; height:14px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 20% 20%; transform-origin: 50% 100%; animation: pmw-mop-head 3s ease-in-out infinite alternate; }
.scn-preparations-mop-water .figure { position:absolute; bottom:35%; left:35%; width:28px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pmw-figure 5s ease-in-out infinite; }
.scn-preparations-mop-water .stump-leg { position:absolute; bottom:35%; left:38%; width:10px; height:20px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius:30% 30% 10% 10%; transform:rotate(10deg); animation: pmw-stump 2s ease-in-out infinite alternate; }
.scn-preparations-mop-water .puddle { position:absolute; bottom:30%; left:50%; width:40px; height:8px; background: linear-gradient(180deg, rgba(150,180,200,.5) 0%, rgba(100,130,150,.2) 100%); border-radius:50%; filter: blur(2px); animation: pmw-puddle 3s ease-in-out infinite alternate; }
@keyframes pmw-window { 0% { opacity:.6; background-position:0 0 } 50% { opacity:1; background-position:5px 10px } 100% { opacity:.7; background-position:-5px -10px } }
@keyframes pmw-bucket { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes pmw-mop-stick { 0% { transform: rotate(-10deg) } 60% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes pmw-mop-head { 0% { transform: rotate(-10deg) translateX(-2px) } 50% { transform: rotate(10deg) translateX(2px) } 100% { transform: rotate(-5deg) translateX(-1px) } }
@keyframes pmw-figure { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(-2px) } }
@keyframes pmw-stump { 0% { transform: rotate(8deg) translateY(0) } 100% { transform: rotate(15deg) translateY(-1px) } }
@keyframes pmw-puddle { 0% { opacity:.3; transform: scaleX(1) } 100% { opacity:.6; transform: scaleX(1.2) } }

/* creakle-tartar-grip */
.scn-creakle-tartar-grip { background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 40%, #0a0a0a 100%), radial-gradient(ellipse at 30% 50%, #f0e8d0 0%, transparent 50%); }
.scn-creakle-tartar-grip .bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 60%, #0a0a0a 100%); }
.scn-creakle-tartar-grip .desk { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-creakle-tartar-grip .boy-arm { position:absolute; bottom:24%; left:35%; width:20px; height:60px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:40% 40% 20% 20%; transform-origin: bottom center; animation: ctg-arm 1.5s ease-in-out infinite; }
.scn-creakle-tartar-grip .hand-grip { position:absolute; bottom:24%; left:38%; width:28px; height:24px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 10px 2px rgba(200,180,150,.3); animation: ctg-grip 0.8s ease-in-out infinite alternate; }
.scn-creakle-tartar-grip .creakle-silhouette { position:absolute; bottom:35%; right:20%; width:40px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom center; animation: ctg-creakle 3s ease-in-out infinite; }
.scn-creakle-tartar-grip .shadow { position:absolute; bottom:20%; left:10%; width:100px; height:20px; background: rgba(0,0,0,.6); border-radius:50%; filter: blur(6px); animation: ctg-shadow 2s ease-in-out infinite alternate; }
.scn-creakle-tartar-grip .light-beam { position:absolute; top:10%; left:20%; width:4px; height:80px; background: linear-gradient(180deg, rgba(255,248,220,.6) 0%, transparent 100%); transform:rotate(-15deg); animation: ctg-light 0.5s ease-in-out infinite alternate; }
@keyframes ctg-arm { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-5deg) translateY(2px) } 75% { transform: rotate(5deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes ctg-grip { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.15) rotate(3deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes ctg-creakle { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes ctg-shadow { 0% { transform: translateX(0) scaleX(1) opacity:.5 } 100% { transform: translateX(10px) scaleX(1.3) opacity:.8 } }
@keyframes ctg-light { 0% { opacity:.3; } 100% { opacity:.8; } }

/* stealforth-money-offer */
.scn-stealforth-money-offer { background: linear-gradient(135deg, #3a3a3a 0%, #2a2a2a 40%, #1a1a1a 100%), radial-gradient(ellipse at 70% 40%, #e8d8b0 0%, transparent 60%); }
.scn-stealforth-money-offer .bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); }
.scn-stealforth-money-offer .table { position:absolute; bottom:25%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-stealforth-money-offer .hand-coin { position:absolute; bottom:28%; left:40%; width:22px; height:20px; background: radial-gradient(circle, #e8d8b0 0%, #c0a87a 70%); border-radius:50%; box-shadow: 0 0 12px 4px #e8d8b0; animation: smo-glint 1s ease-in-out infinite alternate; transform-origin: center; }
.scn-stealforth-money-offer .hand-reach { position:absolute; bottom:30%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:50% 50% 30% 30%; transform-origin: 0 100%; animation: smo-reach 2s ease-in-out infinite; }
.scn-stealforth-money-offer .boy-silhouette { position:absolute; bottom:25%; 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: smo-boy 4s ease-in-out infinite; }
.scn-stealforth-money-offer .shadow { position:absolute; bottom:25%; left:10%; width:120px; height:20px; background: rgba(0,0,0,.6); border-radius:50%; filter: blur(6px); animation: smo-shadow 3s ease-in-out infinite alternate; }
.scn-stealforth-money-offer .coin-glint { position:absolute; top:50%; left:50%; width:6px; height:6px; background: #fff8dc; border-radius:50%; box-shadow: 0 0 8px 4px rgba(255,248,220,.8); animation: smo-glint 0.5s ease-in-out infinite alternate; }
@keyframes smo-glint { 0% { opacity:.4; transform:scale(1) } 100% { opacity:1; transform:scale(1.3) } }
@keyframes smo-reach { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-8px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes smo-boy { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes smo-shadow { 0% { transform: translateX(0) scaleX(1) opacity:.5 } 100% { transform: translateX(15px) scaleX(1.4) opacity:.8 } }

/* Scene: srub-and-water */
.scn-srub-and-water {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 50%, #1e1610 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-srub-and-water .bg     { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #14100a 100%); opacity:0.6; }
.scn-srub-and-water .figure {
  position:absolute; bottom:10%; left:8%; width:80px; height:140px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 50%, #0a0a0a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: suw-fig 6s ease-in-out infinite;
}
.scn-srub-and-water .table  {
  position:absolute; bottom:12%; right:10%; width:100px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-srub-and-water .glass  {
  position:absolute; bottom:22%; right:25%; width:30px; height:50px;
  background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, rgba(200,180,140,0.1) 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  border: 1px solid rgba(200,180,140,0.4); box-shadow: inset 0 0 10px rgba(255,200,100,0.2);
  animation: suw-glass 4s ease-in-out infinite;
}
.scn-srub-and-water .pipe   {
  position:absolute; bottom:28%; right:35%; width:12px; height:40px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-20deg);
  animation: suw-pipe 5s ease-in-out infinite;
}
.scn-srub-and-water .smoke-1 {
  position:absolute; bottom:40%; left:30%; width:50px; height:30px;
  background: radial-gradient(circle, rgba(200,180,140,0.3) 0%, transparent 100%);
  filter: blur(6px); border-radius: 50%;
  animation: suw-smoke 8s ease-in-out infinite;
}
.scn-srub-and-water .smoke-2 {
  position:absolute; bottom:35%; left:20%; width:40px; height:25px;
  background: radial-gradient(circle, rgba(200,180,140,0.2) 0%, transparent 100%);
  filter: blur(5px); border-radius: 50%;
  animation: suw-smoke 12s ease-in-out infinite reverse;
  animation-delay: -4s;
}
@keyframes suw-fig {
  0%   { transform: translateY(0) rotate(-1deg); }
  50%  { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes suw-glass {
  0%   { transform: rotate(0deg); background: rgba(200,180,140,0.3); }
  50%  { transform: rotate(-2deg); background: rgba(200,180,140,0.4); }
  100% { transform: rotate(0deg); background: rgba(200,180,140,0.3); }
}
@keyframes suw-pipe {
  0%   { transform: rotate(-20deg) scale(1); }
  50%  { transform: rotate(-15deg) scale(1.05); }
  100% { transform: rotate(-20deg) scale(1); }
}
@keyframes suw-smoke {
  0%   { transform: translate(0,0) scale(1); opacity:0.6; }
  50%  { transform: translate(20px,-30px) scale(1.5); opacity:0.3; }
  100% { transform: translate(40px,-60px) scale(2); opacity:0; }
}

/* Scene: glad-when-married */
.scn-glad-when-married {
  background: linear-gradient(180deg, #1c1510 0%, #2a2018 40%, #1c1510 100%),
              radial-gradient(ellipse at 80% 50%, #2a2018 0%, transparent 70%);
}
.scn-glad-when-married .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #14100a 0%, transparent 100%);
}
.scn-glad-when-married .window {
  position:absolute; top:15%; right:10%; width:80px; height:100px;
  background: linear-gradient(180deg, rgba(100,100,130,0.2) 0%, rgba(100,100,130,0.05) 100%);
  border: 2px solid #2a2018; border-radius: 4px;
  animation: gwm-light 12s ease-in-out infinite alternate;
}
.scn-glad-when-married .chair {
  position:absolute; bottom:15%; left:20%; width:90px; height:110px;
  background: linear-gradient(180deg, #3a2e22 0%, #2a1e12 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: translateX(-50%);
  animation: gwm-chair 8s ease-in-out infinite;
}
.scn-glad-when-married .figure {
  position:absolute; bottom:18%; left:28%; width:70px; height:130px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 50%, #0a0a0a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: gwm-fig 6s ease-in-out infinite;
}
.scn-glad-when-married .pipe {
  position:absolute; bottom:22%; left:22%; width:10px; height:35px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-40deg);
  animation: gwm-pipe 7s ease-in-out infinite;
}
.scn-glad-when-married .smoke {
  position:absolute; bottom:35%; left:20%; width:40px; height:20px;
  background: radial-gradient(circle, rgba(200,180,140,0.2) 0%, transparent 100%);
  filter: blur(4px); border-radius: 50%;
  animation: gwm-smoke 10s ease-in-out infinite;
}
@keyframes gwm-light {
  0%   { opacity:0.2; transform: scale(1); }
  50%  { opacity:0.4; transform: scale(1.05); }
  100% { opacity:0.2; transform: scale(1); }
}
@keyframes gwm-chair {
  0%   { transform: translateX(-50%) rotate(0deg); }
  50%  { transform: translateX(-48%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes gwm-fig {
  0%   { transform: translateY(0) rotate(-1deg); }
  50%  { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes gwm-pipe {
  0%   { transform: rotate(-40deg) translate(0,0); }
  50%  { transform: rotate(-35deg) translate(2px,-1px); }
  100% { transform: rotate(-40deg) translate(0,0); }
}
@keyframes gwm-smoke {
  0%   { transform: translate(0,0) scale(1); opacity:0.5; }
  50%  { transform: translate(15px,-25px) scale(1.8); opacity:0.2; }
  100% { transform: translate(30px,-50px) scale(2.5); opacity:0; }
}

/* Scene: no-losers-anyhow */
.scn-no-losers-anyhow {
  background: linear-gradient(180deg, #2a1e14 0%, #1e1610 50%, #2a1e14 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-no-losers-anyhow .bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #14100a 0%, transparent 100%);
}
.scn-no-losers-anyhow .hand {
  position:absolute; bottom:25%; left:15%; width:40px; height:60px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 50%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: nla-hand 5s ease-in-out infinite;
}
.scn-no-losers-anyhow .pipe {
  position:absolute; bottom:30%; left:22%; width:14px; height:45px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(10deg);
  animation: nla-pipe 4s ease-in-out infinite;
  box-shadow: 0 0 8px 2px rgba(255,150,50,0.3);
}
.scn-no-losers-anyhow .figure {
  position:absolute; bottom:15%; right:10%; width:70px; height:130px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 50%, #0a0a0a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: nla-fig 7s ease-in-out infinite;
}
.scn-no-losers-anyhow .table {
  position:absolute; bottom:12%; left:40%; width:120px; height:35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-no-losers-anyhow .glass {
  position:absolute; bottom:20%; left:45%; width:25px; height:45px;
  background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, rgba(200,180,140,0.1) 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  border: 1px solid rgba(200,180,140,0.4);
  animation: nla-glass 6s ease-in-out infinite;
}
@keyframes nla-hand {
  0%   { transform: rotate(20deg) translate(0,0); }
  50%  { transform: rotate(25deg) translate(2px,-2px); }
  100% { transform: rotate(20deg) translate(0,0); }
}
@keyframes nla-pipe {
  0%   { transform: rotate(10deg) scale(1); box-shadow: 0 0 8px 2px rgba(255,150,50,0.3); }
  50%  { transform: rotate(15deg) scale(1.05); box-shadow: 0 0 14px 4px rgba(255,150,50,0.5); }
  100% { transform: rotate(10deg) scale(1); box-shadow: 0 0 8px 2px rgba(255,150,50,0.3); }
}
@keyframes nla-fig {
  0%   { transform: translateY(0) rotate(-2deg); }
  50%  { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes nla-glass {
  0%   { transform: rotate(0deg); background: rgba(200,180,140,0.3); }
  50%  { transform: rotate(-3deg); background: rgba(200,180,140,0.4); }
  100% { transform: rotate(0deg); background: rgba(200,180,140,0.3); }
}

/* Scene: masr-davy-arrives */
.scn-masr-davy-arrives {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #1a1410 100%),
              radial-gradient(ellipse at 30% 50%, #2a1e14 0%, transparent 70%);
}
.scn-masr-davy-arrives .bg-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #14100a 0%, transparent 100%);
}
.scn-masr-davy-arrives .bed {
  position:absolute; bottom:5%; left:5%; width:60%; height:50%;
  background: linear-gradient(180deg, #3a2e22 0%, #2a1e12 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-masr-davy-arrives .figure-lying {
  position:absolute; bottom:10%; left:10%; width:120px; height:60px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 50%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: mda-lying 8s ease-in-out infinite;
}
.scn-masr-davy-arrives .figure-standing {
  position:absolute; bottom:20%; right:10%; width:60px; height:120px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 50%, #0a0a0a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: mda-standing 6s ease-in-out infinite;
}
.scn-masr-davy-arrives .figure-davy {
  position:absolute; bottom:20%; right:25%; width:40px; height:90px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 50%, #0a0a0a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 60%;
  transform-origin: bottom center;
  animation: mda-davy 7s ease-in-out infinite;
}
.scn-masr-davy-arrives .candle {
  position:absolute; top:20%; left:45%; width:10px; height:50px;
  background: linear-gradient(180deg, #e0c080 0%, #a08050 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 0 0 4px rgba(255,200,100,0.3);
  animation: mda-candle 4s ease-in-out infinite;
}
.scn-masr-davy-arrives .candle-glow {
  position:absolute; top:15%; left:43%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 100%);
  filter: blur(10px); border-radius: 50%;
  animation: mda-glow 5s ease-in-out infinite alternate;
}
@keyframes mda-lying {
  0%   { transform: rotate(5deg) translateY(0); }
  50%  { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes mda-standing {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mda-davy {
  0%   { transform: translateY(0) rotate(-1deg); }
  50%  { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mda-candle {
  0%   { transform: rotate(-5deg) scale(1); opacity:0.9; }
  50%  { transform: rotate(-3deg) scale(1.05); opacity:1; }
  100% { transform: rotate(-5deg) scale(1); opacity:0.9; }
}
@keyframes mda-glow {
  0%   { transform: scale(1); opacity:0.3; }
  50%  { transform: scale(1.2); opacity:0.5; }
  100% { transform: scale(1); opacity:0.3; }
}

/* one block per scene id. Append to style.css. */

/* Scene: almond-cakes-prog (warm, moonlit) */
.scn-almond-cakes-prog {
  background:
    linear-gradient(180deg, #101a2a 0%, #1a263a 40%, #2e3a4e 70%, #3a465a 100%),
    radial-gradient(ellipse at 80% 20%, #4a5a7a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-almond-cakes-prog .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a3646 0%, #1c2636 100%);
  border-bottom: 2px solid #3a4a5a;
}
.scn-almond-cakes-prog .window {
  position: absolute; top: 12%; right: 12%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%);
  border: 6px solid #4a5a6a;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 0 20px rgba(74,90,106,.3);
}
.scn-almond-cakes-prog .moon {
  position: absolute; top: 16%; right: 18%; width: 30px; height: 30px;
  background: radial-gradient(circle at 35% 35%, #d0d8e0 0%, #b0b8c0 60%, #8090a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(176,184,192,.3);
  animation: acp-moon-glow 6s ease-in-out infinite alternate;
}
.scn-almond-cakes-prog .table {
  position: absolute; bottom: 16%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-almond-cakes-prog .candel {
  position: absolute; bottom: 24%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0d8a0 0%, #d0b080 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px #e0c080, 0 0 40px 16px rgba(224,192,128,.3);
  animation: acp-candle 3s ease-in-out infinite;
}
.scn-almond-cakes-prog .cake-plate {
  position: absolute; bottom: 18%; left: 38%; width: 40px; height: 16px;
  background: #5a4a3a;
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-almond-cakes-prog .cake-plate::after {
  content: ''; position: absolute; bottom: 6px; left: 10px; width: 20px; height: 12px;
  background: linear-gradient(180deg, #d0a060 0%, #b08040 100%);
  border-radius: 6px 6px 2px 2px;
}
.scn-almond-cakes-prog .chair {
  position: absolute; bottom: 10%; left: 34%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6px 6px 2px 2px;
  transform: rotate(-2deg);
}
.scn-almond-cakes-prog .figure-seated {
  position: absolute; bottom: 14%; left: 36%; width: 28px; height: 60px;
  background: radial-gradient(ellipse 60% 70% at 50% 40%, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: acp-sway 4s ease-in-out infinite;
}
@keyframes acp-moon-glow {
  0% { box-shadow: 0 0 30px 15px rgba(176,184,192,.2); }
  50% { box-shadow: 0 0 50px 25px rgba(176,184,192,.4); }
  100% { box-shadow: 0 0 35px 18px rgba(176,184,192,.25); }
}
@keyframes acp-candle {
  0%,100% { transform: translateX(-50%) scaleY(1); opacity: .9; }
  50% { transform: translateX(-50%) scaleY(1.08); opacity: 1; }
}
@keyframes acp-sway {
  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); }
}

/* Scene: school-begins-hush (tense, bright-interior) */
.scn-school-begins-hush {
  background:
    linear-gradient(180deg, #f0f4e8 0%, #e0e4d8 40%, #c8ccc4 100%),
    radial-gradient(ellipse at 70% 30%, #d8dcd4 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-school-begins-hush .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #a8a090 0%, #8a8070 100%);
}
.scn-school-begins-hush .desk-row {
  position: absolute; left: 10%; right: 10%;
  height: 16px;
  background: linear-gradient(180deg, #b0a898 0%, #908878 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.15);
}
.scn-school-begins-hush .desk-row-1 { bottom: 40%; width: 70%; left: 15%; }
.scn-school-begins-hush .desk-row-2 { bottom: 52%; width: 65%; left: 18%; }
.scn-school-begins-hush .desk-row-3 { bottom: 64%; width: 60%; left: 20%; }
.scn-school-begins-hush .chalkboard {
  position: absolute; top: 12%; left: 30%; right: 30%; bottom: 70%;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  border: 4px solid #6a7a6a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
}
.scn-school-begins-hush .door-frame {
  position: absolute; top: 10%; left: 8%; width: 60px; height: 140px;
  background: linear-gradient(180deg, #7a7268 0%, #5a5248 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
}
.scn-school-begins-hush .teacher-figure {
  position: absolute; top: 18%; left: 14%; width: 24px; height: 70px;
  background: radial-gradient(ellipse 60% 70% at 50% 30%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: sbh-enter 2s ease-in-out forwards;
}
.scn-school-begins-hush .student-head {
  position: absolute; width: 14px; height: 18px;
  background: radial-gradient(ellipse 50% 60% at 50% 40%, #c8b898 0%, #a89878 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
}
.scn-school-begins-hush .student-head-1 { bottom: 38%; left: 35%; animation: sbh-hush 1.5s ease-out infinite alternate; }
.scn-school-begins-hush .student-head-2 { bottom: 50%; left: 55%; animation: sbh-hush 1.8s ease-out infinite alternate 0.3s; }
@keyframes sbh-enter {
  0% { transform: translateX(-20px) scale(0.8); opacity: 0; }
  50% { transform: translateX(0) scale(1.05); opacity: 1; }
  100% { transform: translateX(0) scale(1); }
}
@keyframes sbh-hush {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}

/* Scene: books-read-knowledge (warm, bright-interior) */
.scn-books-read-knowledge {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d8ccb8 40%, #c8bcac 100%),
    radial-gradient(ellipse at 30% 50%, #f0e4d0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-books-read-knowledge .wall-bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #e0d4c0, #d0c4b0);
}
.scn-books-read-knowledge .bookshelf {
  position: absolute; top: 8%; bottom: 30%; width: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.3);
  overflow: hidden;
}
.scn-books-read-knowledge .bookshelf::before {
  content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(0deg, #7a6a5a 0px, #7a6a5a 2px, transparent 2px, transparent 18px);
  opacity: .5;
}
.scn-books-read-knowledge .bookshelf-left { left: 5%; }
.scn-books-read-knowledge .bookshelf-right { right: 5%; }
.scn-books-read-knowledge .table-round {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 50px;
  background: radial-gradient(ellipse at 50% 40%, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 50%;
  box-shadow: 0 6px 20px rgba(0,0,0,.3);
}
.scn-books-read-knowledge .wine-glass {
  position: absolute; bottom: 28%; left: 48%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #d0c8b8 0%, #b8b0a0 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 60%, 100% 100%, 0% 100%, 20% 60%);
  border-radius: 2px 2px 0 0;
  transform: rotate(-5deg);
}
.scn-books-read-knowledge .wine-glass::after {
  content: ''; position: absolute; bottom: 4px; left: 2px; width: 10px; height: 12px;
  background: radial-gradient(circle at 40% 30%, #a03020 0%, #702218 100%);
  border-radius: 50% 50% 30% 30%;
}
.scn-books-read-knowledge .wine-bottle {
  position: absolute; bottom: 20%; left: 40%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 4px 4px 8px 8px;
  transform: rotate(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-books-read-knowledge .open-book {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 60px;
  background: linear-gradient(135deg, #f0e8d0 0%, #e0d8c0 50%, #f0e8d0 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.scn-books-read-knowledge .open-book::before,
.scn-books-read-knowledge .open-book::after {
  content: ''; position: absolute; width: 38px; height: 56px; top: 2px;
  background: linear-gradient(180deg, #e8dcc8 0%, #d0c4b0 100%);
}
.scn-books-read-knowledge .open-book::before { left: 2px; border-right: 1px solid #a09080; }
.scn-books-read-knowledge .open-book::after { right: 2px; border-left: 1px solid #a09080; }
.scn-books-read-knowledge .figure-left {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 80px;
  background: radial-gradient(ellipse 55% 70% at 50% 35%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: brk-fidget 5s ease-in-out infinite;
}
.scn-books-read-knowledge .figure-right {
  position: absolute; bottom: 20%; right: 30%; width: 30px; height: 80px;
  background: radial-gradient(ellipse 55% 70% at 50% 35%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: brk-fidget 5s ease-in-out infinite reverse;
}
@keyframes brk-fidget {
  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); }
}

/* Scene: mel-insult-confrontation (tense, bright-interior) */
.scn-mel-insult-confrontation {
  background:
    linear-gradient(180deg, #e0dcd0 0%, #d0ccc0 50%, #c0bcb0 100%),
    radial-gradient(ellipse at 50% 60%, #d0ccc0 0%, transparent 80%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-mel-insult-confrontation .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: repeating-linear-gradient(90deg, #a09888 0px, #a09888 2px, #b0a898 2px, #b0a898 40px);
  opacity: .4;
}
.scn-mel-insult-confrontation .back-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 15%;
  background: linear-gradient(180deg, #d8d4c8, #c8c4b8);
  box-shadow: inset 0 0 60px rgba(0,0,0,.1);
}
.scn-mel-insult-confrontation .desk {
  position: absolute; bottom: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-mel-insult-confrontation .desk-left { left: 15%; }
.scn-mel-insult-confrontation .desk-right { right: 15%; }
.scn-mel-insult-confrontation .fig-mell {
  position: absolute; bottom: 10%; left: 40%; width: 32px; height: 90px;
  background: radial-gradient(ellipse 55% 70% at 50% 30%, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mic-tremble 0.2s ease-in-out infinite;
}
.scn-mel-insult-confrontation .fig-steerforth {
  position: absolute; bottom: 10%; right: 40%; width: 30px; height: 85px;
  background: radial-gradient(ellipse 55% 70% at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: mic-lean 1s ease-in-out infinite alternate;
}
.scn-mel-insult-confrontation .anger-flare {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,85,61,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: mic-flare 1.5s ease-in-out infinite alternate;
}
@keyframes mic-tremble {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-1px) rotate(-0.5deg); }
  75% { transform: translateX(1px) rotate(0.5deg); }
}
@keyframes mic-lean {
  0% { transform: scaleX(-1) translateY(0) rotate(0deg); }
  100% { transform: scaleX(-1) translateY(-3px) rotate(3deg); }
}
@keyframes mic-flare {
  0% { opacity: .3; transform: translateX(-50%) scale(0.9); }
  100% { opacity: .7; transform: translateX(-50%) scale(1.2); }
}

.scn-donkey-rage { background: linear-gradient(180deg, #f5e6c8 0%, #d4b88f 50%, #b8955a 100%), radial-gradient(ellipse at 60% 40%, #ffe599 0%, transparent 60%); }
.scn-donkey-rage .wall { position: absolute; inset: 0; background: linear-gradient(135deg, #e8d6b0 0%, #d9c39e 50%, #c9af86 100%); }
.scn-donkey-rage .window { position: absolute; right: 15%; top: 15%; width: 35%; height: 40%; background: linear-gradient(180deg, #c7e5f0 0%, #a3cce0 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(120,160,200,0.5); }
.scn-donkey-rage .sunbeam { position: absolute; right: 18%; top: 20%; width: 30%; height: 50%; background: radial-gradient(ellipse at 50% 0%, rgba(255,230,150,0.4) 0%, transparent 70%); border-radius: 40% 40% 0 0; animation: dr-beam 8s ease-in-out infinite alternate; }
.scn-donkey-rage .aunt { position: absolute; left: 12%; bottom: 20%; width: 22%; height: 40%; background: radial-gradient(ellipse at 50% 30%, #4a3b2a 0%, #2d231c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 2px -4px 8px rgba(0,0,0,0.3); animation: dr-aunt 3s ease-in-out infinite; }
.scn-donkey-rage .donkey-body { position: absolute; right: 20%; bottom: 18%; width: 18%; height: 25%; background: #3d2b1a; border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; animation: dr-donkey 4s ease-in-out infinite; }
.scn-donkey-rage .donkey-ear { position: absolute; right: 26%; bottom: 40%; width: 4%; height: 12%; background: #3d2b1a; border-radius: 40% 40% 20% 20%; transform-origin: bottom; animation: dr-ear 2s ease-in-out infinite; }
.scn-donkey-rage .donkey-tail { position: absolute; right: 14%; bottom: 24%; width: 3%; height: 10%; background: #4a3626; border-radius: 0 0 50% 50%; transform-origin: top; animation: dr-tail 1.5s ease-in-out infinite; }
.scn-donkey-rage .lamp { position: absolute; left: 8%; top: 25%; width: 8%; height: 12%; background: radial-gradient(circle, #ffe68c 0%, #d4a44a 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(255,210,100,0.6); animation: dr-lamp 5s ease-in-out infinite alternate; }
@keyframes dr-beam { 0% { opacity: 0.3; transform: scaleX(0.8) } 50% { opacity: 0.6; transform: scaleX(1.1) } 100% { opacity: 0.4; transform: scaleX(0.9) } }
@keyframes dr-aunt { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dr-donkey { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dr-ear { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(-10deg) } }
@keyframes dr-tail { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(20deg) } }
@keyframes dr-lamp { 0% { box-shadow: 0 0 20px 5px rgba(255,210,100,0.4); opacity: 0.8 } 50% { box-shadow: 0 0 40px 15px rgba(255,210,100,0.8); opacity: 1 } 100% { box-shadow: 0 0 25px 8px rgba(255,210,100,0.5); opacity: 0.9 } }

.scn-aunt-terrified-in-street { background: linear-gradient(180deg, #6a7b8a 0%, #4f5d6b 40%, #3a4652 100%), radial-gradient(ellipse at 50% 100%, #2f3a44 0%, transparent 70%); }
.scn-aunt-terrified-in-street .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #8596a3 0%, #6a7b8a 60%, transparent 100%); animation: at-sky 15s ease-in-out infinite alternate; }
.scn-aunt-terrified-in-street .street { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #495660 0%, #2d3840 100%); }
.scn-aunt-terrified-in-street .building-left { position: absolute; left: 0; bottom: 30%; width: 30%; height: 70%; background: linear-gradient(180deg, #5c6b7a 0%, #3a4652 100%); border-radius: 0 10% 0 0; box-shadow: inset -4px 0 12px rgba(0,0,0,0.3); }
.scn-aunt-terrified-in-street .building-right { position: absolute; right: 0; bottom: 30%; width: 30%; height: 70%; background: linear-gradient(180deg, #5c6b7a 0%, #3a4652 100%); border-radius: 10% 0 0 0; box-shadow: inset 4px 0 12px rgba(0,0,0,0.3); }
.scn-aunt-terrified-in-street .aunt-figure { position: absolute; left: 40%; bottom: 8%; width: 14%; height: 30%; background: radial-gradient(ellipse at 50% 40%, #2a1e1a 0%, #0e0b0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: at-aunt 0.8s ease-in-out infinite; }
.scn-aunt-terrified-in-street .trot-figure { position: absolute; left: 52%; bottom: 10%; width: 10%; height: 22%; background: radial-gradient(ellipse at 50% 40%, #3c302c 0%, #1c1412 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: at-trot 1.2s ease-in-out infinite; }
.scn-aunt-terrified-in-street .street-lamp { position: absolute; left: 48%; bottom: 30%; width: 4%; height: 24%; background: linear-gradient(180deg, #666 0%, #222 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 20px 6px rgba(255,220,100,0.3); animation: at-lamp 3s ease-in-out infinite alternate; }
.scn-aunt-terrified-in-street .cobbles { position: absolute; bottom: 0; left: 0; right: 0; height: 8%; background: repeating-conic-gradient(#3d4751 0% 25%, #2f3840 0% 50%) 0 0 / 20px 20px; animation: at-cobbles 10s linear infinite; }
@keyframes at-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes at-aunt { 0%,100% { transform: translateY(0) translateX(0) rotate(-2deg) } 25% { transform: translateY(-4px) translateX(-2px) rotate(3deg) } 50% { transform: translateY(-2px) translateX(2px) rotate(-1deg) } 75% { transform: translateY(-5px) translateX(-1px) rotate(2deg) } }
@keyframes at-trot { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes at-lamp { 0% { box-shadow: 0 -4px 15px 3px rgba(255,220,100,0.2); opacity: 0.8 } 50% { box-shadow: 0 -6px 30px 8px rgba(255,220,100,0.6); opacity: 1 } 100% { box-shadow: 0 -4px 18px 4px rgba(255,220,100,0.3); opacity: 0.85 } }
@keyframes at-cobbles { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }

.scn-spenlow-in-court { background: linear-gradient(180deg, #e8dcc8 0%, #c9b89a 50%, #ae9a7b 100%), radial-gradient(ellipse at 50% 100%, #c9b89a 0%, transparent 70%); }
.scn-spenlow-in-court .court-wall { position: absolute; inset: 0; background: linear-gradient(135deg, #d4c5a8 0%, #c0ae8e 50%, #a89678 100%); }
.scn-spenlow-in-court .court-window { position: absolute; left: 10%; top: 12%; width: 30%; height: 50%; background: linear-gradient(180deg, #a8c8d8 0%, #7da0b0 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 30px rgba(80,120,150,0.4), 0 0 20px rgba(80,120,150,0.2); animation: sc-window 12s ease-in-out infinite alternate; }
.scn-spenlow-in-court .bench { position: absolute; bottom: 20%; left: 20%; right: 20%; height: 8%; background: linear-gradient(180deg, #6d5a44 0%, #4d3d2c 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-spenlow-in-court .spenlow-figure { position: absolute; left: 30%; bottom: 28%; width: 16%; height: 30%; background: radial-gradient(ellipse at 50% 30%, #3a2e22 0%, #1a1410 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 -2px 6px rgba(0,0,0,0.4); animation: sc-spenlow 6s ease-in-out infinite; }
.scn-spenlow-in-court .clerk-figure { position: absolute; right: 18%; bottom: 28%; width: 10%; height: 25%; background: radial-gradient(ellipse at 50% 30%, #4b3b2e 0%, #231c16 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 -2px 6px rgba(0,0,0,0.3); animation: sc-clerk 10s ease-in-out infinite; }
.scn-spenlow-in-court .desk { position: absolute; left: 28%; right: 20%; bottom: 18%; height: 10%; background: linear-gradient(180deg, #7a654c 0%, #5a4734 100%); border-radius: 4% 4% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-spenlow-in-court .papers { position: absolute; left: 35%; bottom: 24%; width: 12%; height: 4%; background: #f0e6d0; border-radius: 1px; box-shadow: 0 1px 3px rgba(0,0,0,0.2); animation: sc-papers 20s linear infinite; }
@keyframes sc-window { 0% { opacity: 0.7; transform: scaleY(0.95) } 50% { opacity: 1; transform: scaleY(1) } 100% { opacity: 0.8; transform: scaleY(0.98) } }
@keyframes sc-spenlow { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } }
@keyframes sc-clerk { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-3px) } 60% { transform: translateY(-1px) } 80% { transform: translateY(-2px) } }
@keyframes sc-papers { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(2deg) } }

.scn-profession-vacancy { background: linear-gradient(180deg, #ede3d0 0%, #d4c5a8 50%, #b8a68a 100%), radial-gradient(ellipse at 50% 80%, #c9b89a 0%, transparent 70%); }
.scn-profession-vacancy .office-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #d9ceb8 0%, #bfb096 100%); }
.scn-profession-vacancy .office-window { position: absolute; left: 15%; top: 10%; width: 25%; height: 45%; background: linear-gradient(180deg, #b5d0d8 0%, #8aacb8 100%); border-radius: 6% 6% 3% 3%; box-shadow: inset 0 0 20px rgba(80,120,150,0.3); }
.scn-profession-vacancy .armchair { position: absolute; left: 38%; bottom: 18%; width: 24%; height: 28%; background: linear-gradient(180deg, #7a5e44 0%, #5a422e 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: pv-chair 10s ease-in-out infinite; }
.scn-profession-vacancy .aunt-seated { position: absolute; left: 40%; bottom: 28%; width: 18%; height: 22%; background: radial-gradient(ellipse at 50% 30%, #3a3028 0%, #1c1612 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 -2px 6px rgba(0,0,0,0.4); animation: pv-aunt 8s ease-in-out infinite; }
.scn-profession-vacancy .copperfield-standing { position: absolute; left: 58%; bottom: 15%; width: 12%; height: 28%; background: radial-gradient(ellipse at 50% 30%, #4a3b2e 0%, #241e18 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: pv-cop 6s ease-in-out infinite; }
.scn-profession-vacancy .fireplace { position: absolute; right: 12%; bottom: 12%; width: 18%; height: 35%; background: linear-gradient(180deg, #8a7258 0%, #5a4634 100%); border-radius: 20% 20% 8% 8%; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5); }
.scn-profession-vacancy .rug { position: absolute; bottom: 0; left: 20%; right: 20%; height: 12%; background: repeating-linear-gradient(90deg, #6d5a44 0px, #8a7258 4px, #6d5a44 8px); border-radius: 10% 10% 0 0; opacity: 0.8; animation: pv-rug 15s linear infinite; }
@keyframes pv-chair { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes pv-aunt { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-2px) } 60% { transform: translateY(1px) } }
@keyframes pv-cop { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes pv-rug { 0% { background-position: 0 0 } 100% { background-position: 8px 0 } }

.scn-spenlow-confronts-david { background: linear-gradient(180deg, #4a3628 0%, #7a5e42 30%, #c9a87c 70%, #e3cba0 100%), radial-gradient(ellipse at 30% 20%, #fff5e6 0%, transparent 60%); }
.scn-spenlow-confronts-david .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2d1f14 0%, #5a3a22 40%, #8c6842 100%); }
.scn-spenlow-confronts-david .window { position:absolute; top:10%; left:10%; width:30%; height:50%; background: linear-gradient(180deg, #fef9f0 0%, #eee0c8 100%); border: 6px solid #3a2a1a; box-shadow: inset 0 0 40px #fff5e6, 0 10px 30px rgba(0,0,0,.3); animation: scnd-window 4s ease-in-out infinite; }
.scn-spenlow-confronts-david .desk { position:absolute; bottom:20%; left:20%; width:60%; height:20%; background: linear-gradient(135deg, #3c2414 0%, #5a3822 60%, #4a2e1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.5); transform: perspective(600px) rotateX(10deg); }
.scn-spenlow-confronts-david .spenlow-fig { position:absolute; bottom:25%; left:30%; width:10%; height:55%; background: linear-gradient(180deg, #1a120c 0%, #2e1e10 50%, #1a120c 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: scnd-fig1 2s ease-in-out infinite alternate; }
.scn-spenlow-confronts-david .david-fig { position:absolute; bottom:22%; left:55%; width:7%; height:45%; background: linear-gradient(180deg, #3a2818 0%, #5a3a22 50%, #3a2818 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: scnd-fig2 3s ease-in-out infinite; }
.scn-spenlow-confronts-david .murdstone-sil { position:absolute; bottom:20%; right:8%; width:8%; height:60%; background: linear-gradient(180deg, #0c0604 0%, #1a0e08 100%); border-radius: 30% 30% 10% 10% / 70% 70% 20% 20%; opacity:0.7; }
.scn-spenlow-confronts-david .shadow-line { position:absolute; bottom:40%; left:0; right:0; height:2px; background: rgba(0,0,0,.4); filter: blur(3px); animation: scnd-shadow 1s ease-in-out infinite alternate; }
.scn-spenlow-confronts-david .air-dust { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(255,245,230,.15) 0%, transparent 70%); animation: scnd-dust 8s ease-in-out infinite; }
@keyframes scnd-window { 0%{opacity:.9} 50%{opacity:1; box-shadow: 0 0 60px #fff5e6} 100%{opacity:.85} }
@keyframes scnd-fig1 { 0%{transform: translateX(0) rotate(0deg)} 50%{transform: translateX(5px) rotate(-2deg)} 100%{transform: translateX(0) rotate(0deg)} }
@keyframes scnd-fig2 { 0%{transform: translateX(0) translateY(0)} 30%{transform: translateX(-8px) translateY(-2px)} 70%{transform: translateX(10px) translateY(1px)} 100%{transform: translateX(0) translateY(0)} }
@keyframes scnd-shadow { 0%{transform:scaleX(1)} 100%{transform:scaleX(1.2)} }
@keyframes scnd-dust { 0%{opacity:.1} 50%{opacity:.3} 100%{opacity:.15} }

.scn-spenlow-discusses-will { background: linear-gradient(135deg, #6b4f36 0%, #a58362 40%, #d9bfa0 80%, #f5e5cc 100%), radial-gradient(ellipse at 80% 30%, #fff9f0 0%, transparent 60%); }
.scn-spenlow-discusses-will .room-bg2 { position:absolute; inset:0; background: linear-gradient(180deg, #3d2b1c 0%, #6b4f36 50%, #8c6c4a 100%); }
.scn-spenlow-discusses-will .window2 { position:absolute; top:10%; right:10%; width:25%; height:45%; background: linear-gradient(180deg, #fff9f0 0%, #e8d5b8 100%); border: 4px solid #4a3422; animation: ssw-window 6s ease-in-out infinite alternate; }
.scn-spenlow-discusses-will .desk2 { position:absolute; bottom:15%; left:15%; width:70%; height:25%; background: linear-gradient(135deg, #4a2e1a 0%, #6c4428 60%, #4a2e1a 100%); border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.4); transform: perspective(500px) rotateX(5deg); }
.scn-spenlow-discusses-will .spenlow-seated { position:absolute; bottom:28%; left:20%; width:12%; height:40%; background: linear-gradient(180deg, #1a120c 0%, #2e1e10 50%, #1a120c 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-3deg); animation: ssw-seat 5s ease-in-out infinite; }
.scn-spenlow-discusses-will .david-seated { position:absolute; bottom:28%; left:55%; width:10%; height:35%; background: linear-gradient(180deg, #3a2818 0%, #5a3a22 50%, #3a2818 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(2deg); animation: ssw-seat2 6s ease-in-out infinite; }
.scn-spenlow-discusses-will .will-doc { position:absolute; bottom:30%; left:40%; width:20%; height:28%; background: linear-gradient(135deg, #e8d8b8 0%, #c8b08a 100%); border: 1px solid #8a6e4a; transform: rotate(-2deg); box-shadow: 2px 2px 8px rgba(0,0,0,.2); animation: ssw-doc 7s ease-in-out infinite; }
.scn-spenlow-discusses-will .quill { position:absolute; bottom:45%; left:45%; width:12%; height:4%; background: linear-gradient(90deg, #d4c0a0 0%, #b8a080 100%); border-radius: 50% 0 0 50%; transform: rotate(-30deg); transform-origin: left center; animation: ssw-quill 4s ease-in-out infinite alternate; }
.scn-spenlow-discusses-will .sunbeam { position:absolute; top:5%; left:0; width:40%; height:80%; background: linear-gradient(135deg, rgba(255,249,240,.25) 0%, transparent 100%); filter: blur(10px); animation: ssw-beam 12s ease-in-out infinite; }
.scn-spenlow-discusses-will .paper-stack { position:absolute; bottom:18%; left:30%; width:15%; height:8%; background: linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 4px 6px rgba(0,0,0,.2); }
@keyframes ssw-window { 0%{opacity:.9; box-shadow: inset 0 0 20px #fff} 50%{opacity:1; box-shadow: inset 0 0 60px #fff} 100%{opacity:.85; box-shadow: inset 0 0 30px #fff} }
@keyframes ssw-seat { 0%{transform: rotate(-3deg) translateY(0)} 50%{transform: rotate(-1deg) translateY(-3px)} 100%{transform: rotate(-3deg) translateY(0)} }
@keyframes ssw-seat2 { 0%{transform: rotate(2deg) translateY(0)} 50%{transform: rotate(4deg) translateY(-2px)} 100%{transform: rotate(2deg) translateY(0)} }
@keyframes ssw-doc { 0%{transform: rotate(-2deg) scale(1)} 50%{transform: rotate(0deg) scale(1.02)} 100%{transform: rotate(-2deg) scale(1)} }
@keyframes ssw-quill { 0%{transform: rotate(-30deg)} 100%{transform: rotate(-40deg)} }
@keyframes ssw-beam { 0%{opacity:.2; transform: translateX(-10%)} 50%{opacity:.4; transform: translateX(10%)} 100%{opacity:.2; transform: translateX(-10%)} }

.scn-spenlow-warns-against-marriage { background: linear-gradient(180deg, #3b2a1a 0%, #6b4a2e 40%, #a07a54 70%, #c9a87c 100%), radial-gradient(ellipse at 20% 30%, #f5e0c0 0%, transparent 70%); }
.scn-spenlow-warns-against-marriage .room-bg3 { position:absolute; inset:0; background: linear-gradient(135deg, #2a1c0e 0%, #4a3422 50%, #7a5a3a 100%); }
.scn-spenlow-warns-against-marriage .fireplace { position:absolute; bottom:10%; left:10%; width:40%; height:60%; background: linear-gradient(180deg, #2a1a0e 0%, #3a2414 60%, #1a0e08 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 40px rgba(255,150,50,.2); }
.scn-spenlow-warns-against-marriage .desk3 { position:absolute; bottom:18%; right:10%; width:30%; height:15%; background: linear-gradient(135deg, #3c2414 0%, #5a3822 60%, #3c2414 100%); border-radius: 4px; }
.scn-spenlow-warns-against-marriage .spenlow-pointing { position:absolute; bottom:25%; right:20%; width:10%; height:50%; background: linear-gradient(180deg, #1a120c 0%, #2e1e10 50%, #1a120c 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sswa-arm 1.5s ease-in-out infinite; }
.scn-spenlow-warns-against-marriage .david-cowering { position:absolute; bottom:20%; left:15%; width:8%; height:40%; background: linear-gradient(180deg, #3a2818 0%, #5a3a22 50%, #3a2818 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: scale(.9) rotate(-10deg); animation: sswa-cower 3s ease-in-out infinite; }
.scn-spenlow-warns-against-marriage .book-of-life { position:absolute; bottom:28%; left:40%; width:15%; height:22%; background: linear-gradient(135deg, #4a3420 0%, #6a4a30 100%); border: 2px solid #8a6a4a; border-radius: 2px; transform: rotate(5deg); box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-spenlow-warns-against-marriage .candle { position:absolute; bottom:30%; left:45%; width:2%; height:25%; background: linear-gradient(180deg, #f0d8a0 0%, #e8c080 100%); border-radius: 2px; box-shadow: 0 0 20px 8px rgba(255,200,100,.4); animation: sswa-candle 2s ease-in-out infinite alternate; }
.scn-spenlow-warns-against-marriage .shadow-bars { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 8%, rgba(0,0,0,.15) 8%, rgba(0,0,0,.15) 10%); animation: sswa-bars 5s ease-in-out infinite; }
@keyframes sswa-arm { 0%{transform: translateX(0) rotate(0deg)} 50%{transform: translateX(15px) rotate(-15deg)} 100%{transform: translateX(0) rotate(0deg)} }
@keyframes sswa-cower { 0%{transform: scale(.9) rotate(-10deg) translateY(0)} 50%{transform: scale(.85) rotate(-12deg) translateY(4px)} 100%{transform: scale(.9) rotate(-10deg) translateY(0)} }
@keyframes sswa-candle { 0%{opacity:.8; box-shadow: 0 0 15px 4px rgba(255,200,100,.3)} 50%{opacity:1; box-shadow: 0 0 30px 12px rgba(255,200,100,.6)} 100%{opacity:.85; box-shadow: 0 0 20px 6px rgba(255,200,100,.4)} }
@keyframes sswa-bars { 0%{opacity:.3} 50%{opacity:.6} 100%{opacity:.3} }

.scn-jip-kidnapped-returned { background: linear-gradient(180deg, #14100a 0%, #2a1e12 40%, #4a3420 70%, #6a4e2e 100%), radial-gradient(ellipse at 50% 100%, #2a1e12 0%, transparent 80%); }
.scn-jip-kidnapped-returned .kitchen-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a120a 0%, #2e1e0e 40%, #4a2e1a 100%); }
.scn-jip-kidnapped-returned .table { position:absolute; bottom:20%; left:10%; width:50%; height:15%; background: linear-gradient(135deg, #3a2010 0%, #5a3820 60%, #3a2010 100%); border-radius: 4px; transform: perspective(400px) rotateX(5deg); }
.scn-jip-kidnapped-returned .chair { position:absolute; bottom:18%; left:55%; width:10%; height:30%; background: linear-gradient(180deg, #2a1a0e 0%, #3a2414 100%); border-radius: 4px 4px 0 0; transform: rotate(-2deg); }
.scn-jip-kidnapped-returned .man-sil { position:absolute; bottom:22%; left:30%; width:12%; height:55%; background: linear-gradient(180deg, #0c0604 0%, #1a0e08 50%, #0c0604 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(5deg); animation: sjkr-man 2s ease-in-out infinite alternate; }
.scn-jip-kidnapped-returned .blue-bag { position:absolute; bottom:30%; left:40%; width:8%; height:12%; background: linear-gradient(135deg, #1a2a4a 0%, #2a3a5a 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 2px 8px rgba(0,0,0,.5); }
.scn-jip-kidnapped-returned .jip-dog { position:absolute; bottom:15%; left:50%; width:6%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: sjkr-dog 4s ease-in-out infinite; }
.scn-jip-kidnapped-returned .door { position:absolute; bottom:0; left:5%; width:20%; height:100%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-left: 4px solid #0c0604; }
.scn-jip-kidnapped-returned .candle-glow { position:absolute; bottom:40%; left:70%; width:4%; height:20%; background: linear-gradient(180deg, #f0c080 0%, #c88840 100%); border-radius: 2px; box-shadow: 0 0 30px 18px rgba(255,200,100,.4), 0 0 60px 30px rgba(255,180,80,.2); animation: sjkr-candle 2s ease-in-out infinite alternate; }
.scn-jip-kidnapped-returned .shadow-man { position:absolute; bottom:0; left:25%; width:15%; height:60%; background: rgba(0,0,0,.3); filter: blur(10px); transform: skewX(-10deg); animation: sjkr-shadow 3s ease-in-out infinite; }
@keyframes sjkr-man { 0%{transform: rotate(5deg) translateX(0)} 100%{transform: rotate(8deg) translateX(10px)} }
@keyframes sjkr-dog { 0%{transform: translateX(0) translateY(0)} 30%{transform: translateX(-10px) translateY(2px)} 70%{transform: translateX(15px) translateY(-1px)} 100%{transform: translateX(0) translateY(0)} }
@keyframes sjkr-candle { 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)} }
@keyframes sjkr-shadow { 0%{opacity:.2; transform: skewX(-10deg) scaleY(1)} 50%{opacity:.4; transform: skewX(-5deg) scaleY(1.1)} 100%{opacity:.2; transform: skewX(-10deg) scaleY(1)} }

.scn-aunt-written-to-murdstone {
  background: linear-gradient(135deg, #2a2a3e 0%, #4a4a5e 50%, #1a1a2e 100%), radial-gradient(ellipse at 20% 40%, #6a6a7e 0%, transparent 60%);
}
.scn-aunt-written-to-murdstone .bg-shadow {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); animation: atw-depth 8s ease-in-out infinite alternate;
}
.scn-aunt-written-to-murdstone .wall-light {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #d4d4d4 0%, #b0b0b8 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
}
.scn-aunt-written-to-murdstone .window-harsh {
  position: absolute; top: 15%; right: 10%; width: 70px; height: 100px; background: radial-gradient(ellipse, #fffacd 0%, #e0e0b0 70%, #a0a080 100%); box-shadow: 0 0 30px 10px rgba(255,250,205,0.6), 0 0 60px 20px rgba(255,250,205,0.3); border: 3px solid #3a3a4a; animation: atw-light 4s ease-in-out infinite alternate;
}
.scn-aunt-written-to-murdstone .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 25%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); transform: perspective(200px) rotateX(10deg); animation: atw-desk 6s ease-in-out infinite;
}
.scn-aunt-written-to-murdstone .letter {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 20px; background: #f0e0c0; box-shadow: 0 2px 6px rgba(0,0,0,0.4); transform: perspective(100px) rotateY(20deg); animation: atw-letter 3s ease-in-out infinite alternate;
}
.scn-aunt-written-to-murdstone .figure-aunt {
  position: absolute; bottom: 20%; left: 10%; width: 40px; height: 80px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -5px 0 10px rgba(0,0,0,0.3); clip-path: inset(0 0 0 0 round 10px 20px 10px 10px); animation: atw-figure 5s ease-in-out infinite;
}
.scn-aunt-written-to-murdstone .shadow-cast {
  position: absolute; bottom: 20%; left: 8%; width: 60px; height: 30px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(6px); animation: atw-shadow 5s ease-in-out infinite alternate;
}
@keyframes atw-depth {
  0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; }
}
@keyframes atw-light {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 5px rgba(255,250,205,0.4), 0 0 40px 10px rgba(255,250,205,0.2); }
  50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 40px 15px rgba(255,250,205,0.7), 0 0 80px 25px rgba(255,250,205,0.4); }
  100% { transform: scale(0.95); opacity: 0.6; box-shadow: 0 0 15px 3px rgba(255,250,205,0.3), 0 0 30px 8px rgba(255,250,205,0.1); }
}
@keyframes atw-desk {
  0% { transform: perspective(200px) rotateX(10deg) translateY(0); } 50% { transform: perspective(200px) rotateX(12deg) translateY(-2px); } 100% { transform: perspective(200px) rotateX(8deg) translateY(0); }
}
@keyframes atw-letter {
  0% { transform: perspective(100px) rotateY(20deg) translateX(0); } 50% { transform: perspective(100px) rotateY(25deg) translateX(2px); } 100% { transform: perspective(100px) rotateY(15deg) translateX(-1px); }
}
@keyframes atw-figure {
  0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes atw-shadow {
  0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1.1); }
}

.scn-aunt-short-name-question {
  background: linear-gradient(180deg, #f5f0e0 0%, #e8dcc0 50%, #d0c4a8 100%), radial-gradient(ellipse at 30% 50%, #fff8e8 0%, transparent 70%);
}
.scn-aunt-short-name-question .bg-soft {
  position: absolute; inset: 0; background: linear-gradient(90deg, #e8dcc0 0%, #f5f0e0 100%); animation: asq-bg 12s ease-in-out infinite alternate;
}
.scn-aunt-short-name-question .chair {
  position: absolute; bottom: 15%; left: 15%; width: 50px; height: 70px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 4px 4px 8px rgba(0,0,0,0.2); animation: asq-chair 10s ease-in-out infinite;
}
.scn-aunt-short-name-question .table {
  position: absolute; bottom: 22%; left: 35%; right: 25%; height: 20%; background: linear-gradient(180deg, #b09070 0%, #8a7050 100%); border-radius: 4px; box-shadow: 0 -2px 6px rgba(0,0,0,0.2); transform: perspective(150px) rotateX(5deg);
}
.scn-aunt-short-name-question .needle {
  position: absolute; bottom: 35%; left: 50%; width: 3px; height: 20px; background: #c0c0c0; border-radius: 50% 50% 0 0; transform-origin: top center; animation: asq-needle 2s ease-in-out infinite alternate;
}
.scn-aunt-short-name-question .thread {
  position: absolute; bottom: 35%; left: 50%; width: 2px; height: 50px; background: #8a7a6a; transform-origin: top center; animation: asq-thread 2s ease-in-out infinite alternate;
}
.scn-aunt-short-name-question .figure-aunt-sew {
  position: absolute; bottom: 20%; left: 10%; width: 35px; height: 70px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -3px 0 6px rgba(0,0,0,0.2); clip-path: inset(0 0 0 0 round 5px 10px 5px 5px); animation: asq-figure 6s ease-in-out infinite;
}
.scn-aunt-short-name-question .window-soft {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 100px; background: radial-gradient(ellipse at 50% 30%, #fff8e8 0%, #e0d8c0 80%, #c0b8a0 100%); box-shadow: 0 0 10px 5px rgba(255,248,232,0.3), inset 0 0 20px rgba(255,248,232,0.5); border: 4px solid #a09080; animation: asq-window 15s ease-in-out infinite alternate;
}
@keyframes asq-bg {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes asq-chair {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes asq-needle {
  0% { transform: rotate(-15deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); }
}
@keyframes asq-thread {
  0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.05); } 100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes asq-figure {
  0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes asq-window {
  0% { opacity: 0.7; box-shadow: 0 0 8px 3px rgba(255,248,232,0.2), inset 0 0 15px rgba(255,248,232,0.4); }
  50% { opacity: 0.9; box-shadow: 0 0 15px 8px rgba(255,248,232,0.4), inset 0 0 25px rgba(255,248,232,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 10px 5px rgba(255,248,232,0.3), inset 0 0 20px rgba(255,248,232,0.5); }
}

.scn-charles-head-date {
  background: linear-gradient(180deg, #c8b89a 0%, #a89070 50%, #8a7050 100%), radial-gradient(ellipse at 50% 80%, #b8a080 0%, transparent 60%);
}
.scn-charles-head-date .bg-panel {
  position: absolute; inset: 0; background: linear-gradient(90deg, #a89070 0%, #b8a080 100%); animation: chd-bg 10s ease-in-out infinite alternate;
}
.scn-charles-head-date .desk-wood {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 4px; box-shadow: 0 -6px 12px rgba(0,0,0,0.4); transform: perspective(200px) rotateX(8deg);
}
.scn-charles-head-date .paper {
  position: absolute; bottom: 28%; left: 35%; width: 50px; height: 40px; background: #f0e0c0; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform: rotate(-5deg); animation: chd-paper 5s ease-in-out infinite alternate;
}
.scn-charles-head-date .quill {
  position: absolute; bottom: 35%; left: 45%; width: 3px; height: 25px; background: #2a1a0a; transform-origin: bottom center; transform: rotate(30deg); animation: chd-quill 3s ease-in-out infinite alternate;
}
.scn-charles-head-date .hand-write {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(20deg); animation: chd-hand 3s ease-in-out infinite alternate;
}
.scn-charles-head-date .crown-symbol {
  position: absolute; top: 25%; left: 60%; width: 20px; height: 12px; background: #c0a040; border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: chd-crown 8s ease-in-out infinite;
}
.scn-charles-head-date .candle-flicker {
  position: absolute; top: 20%; left: 15%; width: 8px; height: 20px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a060 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 4px rgba(240,224,192,0.5); animation: chd-candle 2s ease-in-out infinite alternate;
}
@keyframes chd-bg {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes chd-paper {
  0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-7deg) translateY(0); }
}
@keyframes chd-quill {
  0% { transform: rotate(25deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(28deg); }
}
@keyframes chd-hand {
  0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); }
}
@keyframes chd-crown {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); }
}
@keyframes chd-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.7; box-shadow: 0 0 10px 3px rgba(240,224,192,0.4); }
  50% { transform: scaleY(1.1) scaleX(0.9); opacity: 1; box-shadow: 0 0 20px 8px rgba(240,224,192,0.7); }
  100% { transform: scaleY(0.95) scaleX(1); opacity: 0.8; box-shadow: 0 0 12px 4px rgba(240,224,192,0.5); }
}

.scn-kite-made-cover {
  background: linear-gradient(180deg, #f5e8d0 0%, #e8d0b0 40%, #d0b890 100%), radial-gradient(ellipse at 20% 10%, #fff8e0 0%, transparent 50%);
}
.scn-kite-made-cover .bg-warm {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8d0b0 0%, #d0b890 100%); animation: kmc-bg 14s ease-in-out infinite alternate;
}
.scn-kite-made-cover .window-sun {
  position: absolute; top: 10%; right: 20%; width: 70px; height: 90px; background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #f0e0c0 80%, #d0b890 100%); box-shadow: 0 0 30px 15px rgba(255,248,224,0.4), inset 0 0 30px rgba(255,248,224,0.3); border: 3px solid #b09070; animation: kmc-sun 18s ease-in-out infinite alternate;
}
.scn-kite-made-cover .desk-clutter {
  position: absolute; bottom: 12%; left: 8%; right: 8%; height: 35%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 4px; box-shadow: 0 -6px 12px rgba(0,0,0,0.3); transform: perspective(180px) rotateX(6deg);
}
.scn-kite-made-cover .papers-scatter {
  position: absolute; bottom: 30%; left: 20%; width: 35px; height: 25px; background: #f0e0c0; box-shadow: 2px 2px 4px rgba(0,0,0,0.2); transform: rotate(-10deg); animation: kmc-papers 5s ease-in-out infinite alternate;
}
.scn-kite-made-cover .kite-frame {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 50px; background: linear-gradient(135deg, #6a4a2a 0%, #4a2a0a 100%); clip-path: polygon(50% 0%, 80% 60%, 50% 100%, 20% 60%); transform: rotate(15deg); animation: kmc-kite 7s ease-in-out infinite;
}
.scn-kite-made-cover .hand-reach {
  position: absolute; bottom: 30%; left: 45%; width: 18px; height: 28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(30deg); animation: kmc-hand 4s ease-in-out infinite alternate;
}
.scn-kite-made-cover .string-coil {
  position: absolute; bottom: 32%; left: 60%; width: 10px; height: 10px; background: #c0a060; border-radius: 50%; box-shadow: 0 0 0 2px #a08040; animation: kmc-string 6s ease-in-out infinite alternate;
}
@keyframes kmc-bg {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes kmc-sun {
  0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 20px 8px rgba(255,248,224,0.3), inset 0 0 20px rgba(255,248,224,0.2); }
  50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 40px 20px rgba(255,248,224,0.5), inset 0 0 40px rgba(255,248,224,0.4); }
  100% { transform: scale(0.95); opacity: 0.8; box-shadow: 0 0 25px 10px rgba(255,248,224,0.3), inset 0 0 25px rgba(255,248,224,0.2); }
}
@keyframes kmc-papers {
  0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes kmc-kite {
  0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(20deg) scale(1.05); } 100% { transform: rotate(10deg) scale(1); }
}
@keyframes kmc-hand {
  0% { transform: rotate(25deg) translateX(0); } 50% { transform: rotate(35deg) translateX(2px); } 100% { transform: rotate(30deg) translateX(0); }
}
@keyframes kmc-string {
  0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.1) translate(2px,-1px); } 100% { transform: scale(0.9) translate(-1px,0); }
}

/* david-fears-doras-fright */
.scn-david-fears-doras-fright { background: linear-gradient(180deg, #2a0a0a 0%, #4a1a0a 50%, #6a2a0a 100%), radial-gradient(ellipse at 50% 20%, #8a3a1a 0%, transparent 60%); }
.scn-david-fears-doras-fright .fire-glow { position:absolute; inset:10% 10% 40% 10%; background: radial-gradient(ellipse at bottom, #d06020 0%, transparent 70%); opacity:0.8; animation: dff-glow 3s ease-in-out infinite alternate; }
.scn-david-fears-doras-fright .hearth { position:absolute; bottom:25%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%); border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: inset 0 4px 10px #1a0a00; }
.scn-david-fears-doras-fright .flame-1 { position:absolute; bottom:35%; left:35%; width:8%; height:20%; background: radial-gradient(ellipse, #ff8040 0%, #c04020 50%, transparent 100%); border-radius: 50% 50% 0 0; animation: dff-flame1 1.5s ease-in-out infinite; }
.scn-david-fears-doras-fright .flame-2 { position:absolute; bottom:35%; left:55%; width:6%; height:16%; background: radial-gradient(ellipse, #ffa060 0%, #d06030 50%, transparent 100%); border-radius: 50% 50% 0 0; animation: dff-flame2 2s ease-in-out infinite 0.5s; }
.scn-david-fears-doras-fright .figure-left { position:absolute; bottom:22%; left:25%; width:8%; height:35%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dff-sway 4s ease-in-out infinite; }
.scn-david-fears-doras-fright .figure-right { position:absolute; bottom:22%; right:30%; width:7%; height:30%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dff-shiver 3s ease-in-out infinite 0.2s; }
.scn-david-fears-doras-fright .shadow-floor { position:absolute; bottom:0; left:10%; right:10%; height:25%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.7) 100%); border-radius: 50% 50% 0 0; }
@keyframes dff-glow { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.8; transform:scale(0.95); } }
@keyframes dff-flame1 { 0% { transform: translateY(0) scaleX(1) rotate(0); } 25% { transform: translateY(-8px) scaleX(1.1) rotate(3deg); } 50% { transform: translateY(-2px) scaleX(0.9) rotate(-2deg); } 75% { transform: translateY(-12px) scaleX(1.05) rotate(4deg); } 100% { transform: translateY(0) scaleX(1) rotate(0); } }
@keyframes dff-flame2 { 0% { transform: translateY(0) scaleX(1) rotate(0); } 30% { transform: translateY(-6px) scaleX(0.95) rotate(-3deg); } 60% { transform: translateY(-10px) scaleX(1.1) rotate(2deg); } 100% { transform: translateY(0) scaleX(1) rotate(0); } }
@keyframes dff-sway { 0% { transform: rotate(0); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes dff-shiver { 0% { transform: translateX(0); } 25% { transform: translateX(2px); } 50% { transform: translateX(-1px); } 75% { transform: translateX(3px); } 100% { transform: translateX(0); } }

/* uriah-defends-umbleness */
.scn-uriah-defends-umbleness { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 50%, #2a2a5e 100%), radial-gradient(ellipse at 50% 20%, #3a3a7e 0%, transparent 70%); }
.scn-uriah-defends-umbleness .moon { position:absolute; top:8%; right:15%; width:12%; height:12%; background: radial-gradient(circle, #c0d0ff 0%, #8090c0 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(192,208,255,0.3); animation: udu-moon-drift 30s linear infinite alternate; }
.scn-uriah-defends-umbleness .window-frame { position:absolute; top:10%; left:10%; width:30%; height:40%; border: 4px solid #2a2a4e; background: transparent; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-uriah-defends-umbleness .curtains { position:absolute; top:10%; left:10%; width:30%; height:40%; background: linear-gradient(90deg, #3a3a5e 0%, transparent 30%, transparent 70%, #3a3a5e 100%); animation: udu-curtain-sway 10s ease-in-out infinite; }
.scn-uriah-defends-umbleness .figure-uriah { position:absolute; bottom:20%; left:30%; width:10%; height:40%; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: udu-nod 6s ease-in-out infinite; }
.scn-uriah-defends-umbleness .figure-mrs-heep { position:absolute; bottom:20%; right:25%; width:9%; height:35%; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: udu-tremble 4s ease-in-out infinite 0.5s; }
.scn-uriah-defends-umbleness .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, #0a0a1a 100%); }
@keyframes udu-moon-drift { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(-5px); } }
@keyframes udu-curtain-sway { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1.05); } }
@keyframes udu-nod { 0% { transform: rotate(0) translateY(0); } 30% { transform: rotate(2deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(0) translateY(0); } }
@keyframes udu-tremble { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-0.5deg); } 75% { transform: translateX(1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0); } }

/* uriah-boasts-of-power */
.scn-uriah-boasts-of-power { background: linear-gradient(180deg, #0e0e2e 0%, #1e1e4e 50%, #2e2e5e 100%), radial-gradient(ellipse at 50% 30%, #3e3e7e 0%, transparent 60%); }
.scn-uriah-boasts-of-power .moon { position:absolute; top:6%; left:15%; width:14%; height:14%; background: radial-gradient(circle, #d0d8ff 0%, #8088b0 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(208,216,255,0.3); animation: ubp-moon-pulse 8s ease-in-out infinite alternate; }
.scn-uriah-boasts-of-power .clouds { position:absolute; top:4%; left:5%; width:40%; height:12%; background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, transparent 100%); filter: blur(8px); animation: ubp-cloud-drift 40s linear infinite; }
.scn-uriah-boasts-of-power .figure-uriah { position:absolute; bottom:15%; left:35%; width:10%; height:45%; background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ubp-sway 5s ease-in-out infinite; }
.scn-uriah-boasts-of-power .arm-raised { position:absolute; bottom:48%; left:38%; width:4%; height:15%; background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1e 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom left; animation: ubp-arm 7s ease-in-out infinite; }
.scn-uriah-boasts-of-power .cape { position:absolute; bottom:15%; left:32%; width:20%; height:40%; background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3e 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: top center; animation: ubp-cape 6s ease-in-out infinite 0.3s; }
.scn-uriah-boasts-of-power .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1e1e3e 0%, #0e0e2e 100%); }
.scn-uriah-boasts-of-power .shadow-long { position:absolute; bottom:0; left:40%; width:20%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.7) 100%); border-radius: 50%; transform: skewX(-20deg); animation: ubp-shadow 10s ease-in-out infinite; }
@keyframes ubp-moon-pulse { 0% { box-shadow: 0 0 30px 10px rgba(208,216,255,0.2); } 50% { box-shadow: 0 0 50px 20px rgba(208,216,255,0.4); } 100% { box-shadow: 0 0 30px 10px rgba(208,216,255,0.2); } }
@keyframes ubp-cloud-drift { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes ubp-sway { 0% { transform: rotate(0) translateY(0); } 30% { transform: rotate(3deg) translateY(-3px); } 60% { transform: rotate(-2deg) translateY(0); } 100% { transform: rotate(0) translateY(0); } }
@keyframes ubp-arm { 0% { transform: rotate(0) scaleY(1); } 40% { transform: rotate(25deg) scaleY(1.1); } 70% { transform: rotate(10deg) scaleY(0.95); } 100% { transform: rotate(0) scaleY(1); } }
@keyframes ubp-cape { 0% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(-3deg) scaleX(0.95); } }
@keyframes ubp-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* uriah-ate-umble-pie */
.scn-uriah-ate-umble-pie { background: linear-gradient(180deg, #0e0e2e 0%, #1e1e4e 50%, #2e2e5e 100%), radial-gradient(ellipse at 50% 30%, #3e3e7e 0%, transparent 60%); }
.scn-uriah-ate-umble-pie .moon { position:absolute; top:5%; left:20%; width:10%; height:10%; background: radial-gradient(circle, #d0d8ff 0%, #8088b0 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(208,216,255,0.3); animation: uap-moon-glow 6s ease-in-out infinite alternate; }
.scn-uriah-ate-umble-pie .window { position:absolute; top:15%; left:15%; width:25%; height:30%; background: transparent; border: 3px solid #3e3e6e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-uriah-ate-umble-pie .table { position:absolute; bottom:15%; left:25%; right:25%; height:10%; background: linear-gradient(180deg, #3a3a5e 0%, #1a1a3e 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-uriah-ate-umble-pie .plate { position:absolute; bottom:22%; left:40%; width:12%; height:4%; background: linear-gradient(90deg, #6a6a8a 0%, #8a8aaa 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: uap-plate-tilt 8s ease-in-out infinite; }
.scn-uriah-ate-umble-pie .pie { position:absolute; bottom:22.5%; left:42%; width:8%; height:3%; background: linear-gradient(90deg, #c8a068 0%, #a08040 100%); border-radius: 40% 40% 20% 20%; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); transform-origin: center; animation: uap-pie-wiggle 10s ease-in-out infinite; }
.scn-uriah-ate-umble-pie .boy { position:absolute; bottom:20%; left:45%; width:8%; height:20%; background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uap-eat 7s ease-in-out infinite; }
.scn-uriah-ate-umble-pie .chair { position:absolute; bottom:12%; left:44%; width:10%; height:20%; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: uap-chair-creak 9s ease-in-out infinite 0.2s; }
@keyframes uap-moon-glow { 0% { box-shadow: 0 0 20px 5px rgba(208,216,255,0.2); } 50% { box-shadow: 0 0 40px 15px rgba(208,216,255,0.4); } 100% { box-shadow: 0 0 20px 5px rgba(208,216,255,0.2); } }
@keyframes uap-plate-tilt { 0% { transform: rotate(0) scaleX(1); } 30% { transform: rotate(3deg) scaleX(0.98); } 60% { transform: rotate(-2deg) scaleX(1.02); } 100% { transform: rotate(0) scaleX(1); } }
@keyframes uap-pie-wiggle { 0% { transform: rotate(0) scale(1); } 20% { transform: rotate(-2deg) scale(1.05); } 40% { transform: rotate(2deg) scale(0.95); } 60% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(0) scale(1); } }
@keyframes uap-eat { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(5deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes uap-chair-creak { 0% { transform: rotate(0) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-0.5deg) translateY(0); } 75% { transform: rotate(1.5deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }

.scn-mortal-wound-metaphor { background: linear-gradient(180deg, #0a0a1a 0%, #141436 40%, #1e1e4a 70%, #2a1a2e 100%), radial-gradient(ellipse at 50% 30%, #1a1a4a 0%, transparent 80%); }
.scn-mortal-wound-metaphor .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0c0c24 0%, #181844 60%, #222256 100%); animation: mwm-sky 20s ease-in-out infinite alternate; }
.scn-mortal-wound-metaphor .stars-layer { position:absolute; inset:0; background-image: radial-gradient(1px 1px at 10% 20%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 25% 45%, #c8d0ff 0%, transparent 100%), radial-gradient(1px 1px at 40% 10%, #fff 0%, transparent 100%), radial-gradient(1.5px 1.5px at 60% 30%, #d0d8ff 0%, transparent 100%), radial-gradient(2px 2px at 75% 55%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 90% 15%, #c0c8ff 0%, transparent 100%), radial-gradient(1.5px 1.5px at 15% 60%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 50% 70%, #d8e0ff 0%, transparent 100%); animation: mwm-stars 8s ease-in-out infinite alternate; }
.scn-mortal-wound-metaphor .figure-silhouette { position:absolute; bottom:28%; left:50%; width:28px; height:52px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: mwm-figure 6s ease-in-out infinite; }
.scn-mortal-wound-metaphor .letter-glow { position:absolute; bottom:32%; left:50%; width:20px; height:26px; transform:translateX(-50%) rotate(-6deg); background: radial-gradient(circle at 50% 40%, #ffd080 0%, #c89050 60%, transparent 100%); border-radius: 4% 8% 8% 4%; box-shadow: 0 0 18px 4px rgba(200,144,80,.5), 0 0 36px 10px rgba(200,144,80,.25); animation: mwm-letter 4s ease-in-out infinite alternate; }
.scn-mortal-wound-metaphor .ground-ridge { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); animation: mwm-ground 15s ease-in-out infinite alternate; }
.scn-mortal-wound-metaphor .distant-cloud { position:absolute; top:18%; left:12%; width:90px; height:16px; background: linear-gradient(90deg, rgba(200,200,255,.08) 0%, rgba(200,200,255,.15) 50%, rgba(200,200,255,.04) 100%); border-radius: 50%; filter: blur(8px); animation: mwm-cloud 40s linear infinite; }
.scn-mortal-wound-metaphor .spark-particle { position:absolute; bottom:36%; left:49%; width:3px; height:3px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,208,128,.6); animation: mwm-spark 3s ease-in-out infinite; }
@keyframes mwm-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes mwm-stars { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .85; transform: scale(1.02) } 100% { opacity: .6; transform: scale(.98) } }
@keyframes mwm-figure { 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(-1px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes mwm-letter { 0% { transform: translateX(-50%) rotate(-6deg) scale(1); box-shadow: 0 0 14px 3px rgba(200,144,80,.4), 0 0 28px 8px rgba(200,144,80,.2) } 50% { transform: translateX(-50%) rotate(-4deg) scale(1.04); box-shadow: 0 0 24px 6px rgba(255,208,128,.7), 0 0 48px 14px rgba(255,208,128,.35) } 100% { transform: translateX(-50%) rotate(-7deg) scale(.98); box-shadow: 0 0 16px 4px rgba(200,144,80,.5), 0 0 32px 10px rgba(200,144,80,.25) } }
@keyframes mwm-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mwm-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes mwm-spark { 0% { transform: translate(0, 0) scale(1); opacity: .8 } 50% { transform: translate(6px, -12px) scale(1.6); opacity: 0 } 100% { transform: translate(0, 0) scale(1); opacity: .8 } }

.scn-agnes-letter-received { background: linear-gradient(180deg, #4a3a1a 0%, #b09050 30%, #d8c080 50%, #f0e0a0 70%, #fff8e0 100%), radial-gradient(ellipse at 50% 0%, #ffe8a0 0%, transparent 70%); }
.scn-agnes-letter-received .dawn-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a5a3a 0%, #c8a860 40%, #e8d080 70%, #f8e8b0 100%); animation: alr-sky 14s ease-in-out infinite alternate; }
.scn-agnes-letter-received .sun-edge { position:absolute; top:5%; left:55%; width:50px; height:50px; background: radial-gradient(circle at 50% 50%, #ffd880 0%, #e8b050 50%, transparent 75%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,216,128,.4), 0 0 80px 40px rgba(232,176,80,.2); animation: alr-sun 12s ease-in-out infinite alternate; }
.scn-agnes-letter-received .mountain-range { position:absolute; bottom:38%; left:0; right:0; height:22%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 30% 50% 0 0 / 60% 70% 0 0; box-shadow: inset 0 -6px 12px rgba(0,0,0,.3); animation: alr-mtn 20s ease-in-out infinite alternate; }
.scn-agnes-letter-received .meadow-grass { position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a8a4a 0%, #5a6a3a 50%, #3a4a2a 100%); border-radius: 80% 40% 0 0 / 60% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.25); animation: alr-meadow 18s ease-in-out infinite alternate; }
.scn-agnes-letter-received .figure-kneeling { position:absolute; bottom:22%; left:45%; width:22px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a14 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform-origin: bottom center; animation: alr-figure 6s ease-in-out infinite; }
.scn-agnes-letter-received .letter-warmth { position:absolute; bottom:27%; left:46%; width:16px; height:20px; transform:rotate(8deg); background: radial-gradient(circle at 50% 40%, #ffe8a0 0%, #d0b060 70%, transparent 100%); border-radius: 4% 6% 6% 4%; box-shadow: 0 0 14px 3px rgba(208,176,96,.6), 0 0 28px 8px rgba(208,176,96,.3); animation: alr-letter 5s ease-in-out infinite alternate; }
.scn-agnes-letter-received .distant-trees { position:absolute; bottom:38%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); border-radius: 50% 50% 0 0; filter: blur(3px); animation: alr-trees 25s ease-in-out infinite alternate; }
@keyframes alr-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes alr-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 15px rgba(255,216,128,.3), 0 0 60px 30px rgba(232,176,80,.15) } 50% { transform: translateY(-4px) scale(1.05); box-shadow: 0 0 50px 25px rgba(255,216,128,.5), 0 0 100px 50px rgba(232,176,80,.3) } 100% { transform: translateY(2px) scale(.97); box-shadow: 0 0 35px 18px rgba(255,216,128,.35), 0 0 70px 35px rgba(232,176,80,.2) } }
@keyframes alr-mtn { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes alr-meadow { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes alr-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes alr-letter { 0% { transform: rotate(6deg) scale(1); box-shadow: 0 0 10px 2px rgba(208,176,96,.4), 0 0 20px 6px rgba(208,176,96,.2) } 50% { transform: rotate(12deg) scale(1.06); box-shadow: 0 0 20px 5px rgba(255,232,160,.7), 0 0 40px 12px rgba(255,232,160,.35) } 100% { transform: rotate(4deg) scale(.98); box-shadow: 0 0 12px 3px rgba(208,176,96,.5), 0 0 24px 8px rgba(208,176,96,.25) } }
@keyframes alr-trees { 0% { opacity: .5; transform: scaleY(1) } 50% { opacity: .7; transform: scaleY(1.03) } 100% { opacity: .55; transform: scaleY(1) } }

.scn-three-years-absent { background: linear-gradient(180deg, #8ab0d8 0%, #b8d4e8 40%, #d8e8f0 70%, #f0f4e8 100%), radial-gradient(ellipse at 50% 100%, #e0e8d0 0%, transparent 80%); }
.scn-three-years-absent .sunlit-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6a90b8 0%, #a0c4e0 50%, #d0e0f0 100%); animation: tya-sky 18s ease-in-out infinite alternate; }
.scn-three-years-absent .cottage-walls { position:absolute; bottom:28%; left:40%; width:110px; height:80px; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 60%, #a09070 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,.2), inset 0 2px 4px rgba(255,255,255,.3); animation: tya-cottage 14s ease-in-out infinite alternate; }
.scn-three-years-absent .cottage-door { position:absolute; bottom:28%; left:51%; width:20px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a14 100%); border-radius: 20% 20% 6% 6% / 40% 40% 6% 6%; box-shadow: inset 0 2px 6px rgba(0,0,0,.4); animation: tya-door 6s ease-in-out infinite; }
.scn-three-years-absent .garden-path { position:absolute; bottom:18%; left:40%; width:40px; height:22%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius: 20% 20% 0 0; clip-path: polygon(30% 0%, 70% 0%, 85% 100%, 15% 100%); animation: tya-path 20s ease-in-out infinite alternate; }
.scn-three-years-absent .figure-approaching { position:absolute; bottom:18%; left:34%; width:20px; height:38px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform-origin: bottom center; animation: tya-walk 5s ease-in-out infinite; }
.scn-three-years-absent .oak-tree { position:absolute; bottom:30%; left:66%; width:36px; height:60px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: tya-tree 8s ease-in-out infinite alternate; }
.scn-three-years-absent .cloud-soft { position:absolute; top:12%; left:20%; width:80px; height:14px; background: linear-gradient(90deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.2) 50%, rgba(255,255,255,.05) 100%); border-radius: 50%; filter: blur(6px); animation: tya-cloud 45s linear infinite; }
@keyframes tya-sky { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes tya-cottage { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tya-door { 0% { transform: translateX(-50%) scaleX(1) } 30% { transform: translateX(-50%) scaleX(1.02) } 70% { transform: translateX(-50%) scaleX(.98) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes tya-path { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes tya-walk { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 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(-2deg) } }
@keyframes tya-tree { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(0) scale(1) } }
@keyframes tya-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(130vw) } }

.scn-london-returned { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 30%, #3a3a4e 60%, #2e2e3a 100%), radial-gradient(ellipse at 50% 0%, #4a4a5e 0%, transparent 80%); }
.scn-london-returned .rainy-sky { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1e1e2e 0%, #2e2e42 50%, #3a3a4e 100%); animation: ldr-sky 22s ease-in-out infinite alternate; }
.scn-london-returned .building-left { position:absolute; bottom:20%; left:5%; width:30%; height:70%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 60%, #1a1a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.3); animation: ldr-bldg-l 12s ease-in-out infinite alternate; }
.scn-london-returned .building-right { position:absolute; bottom:20%; right:5%; width:30%; height:65%; background: linear-gradient(180deg, #3e3e4e 0%, #2e2e3e 60%, #1e1e2e 100%); border-radius: 4% 4% 0 0; box-shadow: inset 4px 0 8px rgba(0,0,0,.3); animation: ldr-bldg-r 14s ease-in-out infinite alternate; }
.scn-london-returned .street-lamp-l { position:absolute; bottom:38%; left:22%; width:4px; height:40px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 2px; animation: ldr-lamp-l 4s ease-in-out infinite alternate; }
.scn-london-returned .street-lamp-l::after { content: ''; position:absolute; bottom:-6px; left:-4px; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, #c89050 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,144,80,.5), 0 0 40px 12px rgba(200,144,80,.25); animation: ldr-glow-l 4s ease-in-out infinite alternate; }
.scn-london-returned .street-lamp-r { position:absolute; bottom:38%; right:22%; width:4px; height:40px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 2px; animation: ldr-lamp-r 4.5s ease-in-out infinite alternate; }
.scn-london-returned .street-lamp-r::after { content: ''; position:absolute; bottom:-6px; left:-4px; width:12px; height:12px; background: radial-gradient(circle, #ffd080 0%, #c89050 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,144,80,.5), 0 0 40px 12px rgba(200,144,80,.25); animation: ldr-glow-r 4.5s ease-in-out infinite alternate; }
.scn-london-returned .figure-walking { position:absolute; bottom:22%; left:50%; width:18px; height:42px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; animation: ldr-walk 5s ease-in-out infinite; }
.scn-london-returned .wet-reflection { position:absolute; bottom:18%; left:30%; right:30%; height:10%; background: linear-gradient(180deg, rgba(60,60,80,.3) 0%, rgba(40,40,60,.15) 100%); border-radius: 50%; filter: blur(4px); animation: ldr-reflection 8s ease-in-out infinite alternate; }
.scn-london-returned .rain-streak { position:absolute; top:0; left:45%; width:1px; height:60%; background: linear-gradient(180deg, rgba(200,200,220,.06) 0%, rgba(200,200,220,.15) 50%, rgba(200,200,220,.04) 100%); animation: ldr-rain 0.8s linear infinite; }
@keyframes ldr-sky { 0% { opacity: .6 } 50% { opacity: .85 } 100% { opacity: .7 } }
@keyframes ldr-bldg-l { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ldr-bldg-r { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ldr-lamp-l { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ldr-glow-l { 0% { box-shadow: 0 0 14px 4px rgba(200,144,80,.4), 0 0 28px 8px rgba(200,144,80,.2); opacity: .85 } 50% { box-shadow: 0 0 28px 8px rgba(255,208,128,.7), 0 0 56px 16px rgba(255,208,128,.35); opacity: 1 } 100% { box-shadow: 0 0 18px 5px rgba(200,144,80,.5), 0 0 36px 10px rgba(200,144,80,.25); opacity: .9 } }
@keyframes ldr-lamp-r { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ldr-glow-r { 0% { box-shadow: 0 0 16px 4px rgba(200,144,80,.45), 0 0 32px 8px rgba(200,144,80,.22); opacity: .8 } 50% { box-shadow: 0 0 30px 8px rgba(255,208,128,.65), 0 0 60px 16px rgba(255,208,128,.3); opacity: 1 } 100% { box-shadow: 0 0 20px 5px rgba(200,144,80,.5), 0 0 40px 10px rgba(200,144,80,.25); opacity: .85 } }
@keyframes ldr-walk { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 20% { transform: translateX(-45%) translateY(-1px) rotate(1deg) } 40% { transform: translateX(-40%) translateY(0) rotate(0) } 60% { transform: translateX(-35%) translateY(-2px) rotate(2deg) } 80% { transform: translateX(-30%) translateY(0) rotate(-1deg) } 100% { transform: translateX(-25%) translateY(0) rotate(0) } }
@keyframes ldr-reflection { 0% { opacity: .3; transform: scaleY(1) } 50% { opacity: .5; transform: scaleY(1.05) } 100% { opacity: .35; transform: scaleY(1) } }
@keyframes ldr-rain { 0% { transform: translateY(-10%) } 100% { transform: translateY(110%) } }

.scn-mother-accuses-peggotty {
  background: linear-gradient(180deg, #f9e4c8 0%, #d4a574 40%, #b8845a 100%);
  box-shadow: inset 0 0 60px rgba(180, 100, 50, 0.3);
}
.scn-mother-accuses-peggotty .backdrop { position:absolute; inset:0; background: linear-gradient(135deg, #f0d5b0 0%, #cfa27a 100%); animation: ma-backdrop 10s ease-in-out infinite alternate; }
.scn-mother-accuses-peggotty .window { position:absolute; top:5%; right:5%; width:30%; height:45%; background: linear-gradient(180deg, #fffbe6 0%, #ffe4b5 60%, #fccf8a 100%); border-radius: 4px 4px 30% 30%; box-shadow: inset 0 0 40px rgba(255, 235, 180, 0.6); animation: ma-window 6s ease-in-out infinite; }
.scn-mother-accuses-peggotty .mother { position:absolute; bottom:20%; left:15%; width:45px; height:100px; background: linear-gradient(180deg, #6a4e3a 0%, #3f2c1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ma-mother 4s ease-in-out infinite; }
.scn-mother-accuses-peggotty .mother::after { content:''; position:absolute; top:10%; right:100%; width:30px; height:8px; background:#5a4030; border-radius:0 50% 50% 0; transform-origin:left center; animation: ma-arm 2s ease-in-out infinite alternate; }
.scn-mother-accuses-peggotty .peggotty { position:absolute; bottom:20%; right:20%; width:40px; height:95px; background: linear-gradient(180deg, #7a5e4a 0%, #4a3424 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform: scaleX(-1); animation: ma-peggotty 5s ease-in-out infinite; }
.scn-mother-accuses-peggotty .parasol { position:absolute; bottom:35%; right:15%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 100%, #b06840 0%, #8a4a28 100%); border-radius: 50% 50% 0 0; transform-origin:bottom center; animation: ma-parasol 8s ease-in-out infinite; }
.scn-mother-accuses-peggotty .table { position:absolute; bottom:15%; left:40%; width:100px; height:12px; background: linear-gradient(180deg, #b08060 0%, #8a6040 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: ma-table 12s ease-in-out infinite; }
.scn-mother-accuses-peggotty .candle { position:absolute; bottom:28%; left:55%; width:8px; height:20px; background: linear-gradient(180deg, #f0d080 0%, #c09840 100%); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(240, 200, 100, 0.5); animation: ma-candle 3s ease-in-out infinite alternate; }
.scn-mother-accuses-peggotty .shadow { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(80, 50, 30, 0.4) 100%); animation: ma-shadow 8s ease-in-out infinite alternate; }
@keyframes ma-backdrop { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ma-window { 0% { transform:scaleX(1) scaleY(1); opacity:0.9; } 50% { transform:scaleX(1.02) scaleY(0.98); opacity:1; } 100% { transform:scaleX(0.98) scaleY(1.01); opacity:0.8; } }
@keyframes ma-mother { 0% { transform:translateY(0) rotate(1deg); } 30% { transform:translateY(-2px) rotate(-2deg); } 60% { transform:translateY(1px) rotate(1.5deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes ma-arm { 0% { transform:rotate(0deg) scaleY(1); } 50% { transform:rotate(-30deg) scaleY(1.1); } 100% { transform:rotate(10deg) scaleY(0.9); } }
@keyframes ma-peggotty { 0% { transform:scaleX(-1) translateX(0) rotate(0); } 50% { transform:scaleX(-1) translateX(-4px) rotate(3deg); } 100% { transform:scaleX(-1) translateX(2px) rotate(-2deg); } }
@keyframes ma-parasol { 0% { transform:rotate(0deg) scaleY(1); } 50% { transform:rotate(-10deg) scaleY(1.1); } 100% { transform:rotate(5deg) scaleY(0.9); } }
@keyframes ma-table { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(2px) translateY(-1px); } 100% { transform:translateX(-1px) translateY(1px); } }
@keyframes ma-candle { 0% { transform:scaleY(1) scaleX(1); opacity:0.8; box-shadow:0 0 15px 4px rgba(240,200,100,0.4); } 50% { transform:scaleY(1.1) scaleX(0.95); opacity:1; box-shadow:0 0 25px 8px rgba(240,200,100,0.6); } 100% { transform:scaleY(0.95) scaleX(1.02); opacity:0.7; box-shadow:0 0 12px 2px rgba(240,200,100,0.3); } }
@keyframes ma-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

.scn-brooks-of-sheffield {
  background: linear-gradient(180deg, #f2e6d0 0%, #e0c8a0 50%, #cfa87c 100%), radial-gradient(ellipse at 30% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-brooks-of-sheffield .background { position:absolute; inset:0; background: linear-gradient(135deg, #f5e6cc 0%, #d9c098 100%); animation: bo-back 15s ease-in-out infinite; }
.scn-brooks-of-sheffield .gentleman { position:absolute; bottom:20%; left:25%; width:80px; height:110px; background: linear-gradient(180deg, #5a4430 0%, #3c2a1c 100%); border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: bo-gent 3s ease-in-out infinite; }
.scn-brooks-of-sheffield .gentleman::after { content:''; position:absolute; top:20%; left:60%; width:30px; height:20px; background:#4a3424; border-radius:50% 50% 0 0; transform-origin:center bottom; animation: bo-belly 1.5s ease-in-out infinite alternate; }
.scn-brooks-of-sheffield .davie { position:absolute; bottom:18%; right:30%; width:25px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; animation: bo-davie 4s ease-in-out infinite; }
.scn-brooks-of-sheffield .table { position:absolute; bottom:12%; left:10%; right:10%; height:8px; background: linear-gradient(180deg, #c09868 0%, #a88050 100%); border-radius: 2px; box-shadow: 0 2px 10px rgba(0,0,0,0.15); animation: bo-table 10s ease-in-out infinite; }
.scn-brooks-of-sheffield .teacup { position:absolute; bottom:22%; right:20%; width:14px; height:16px; background: radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, #d0b890 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: bo-cup 2s ease-in-out infinite; }
.scn-brooks-of-sheffield .signboard { position:absolute; top:10%; left:50%; width:120px; height:40px; background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 4px; transform: translateX(-50%) rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: bo-sign 6s ease-in-out infinite; }
.scn-brooks-of-sheffield .signboard::before { content:''; position:absolute; top:50%; left:10%; right:10%; height:2px; background:#604830; transform:translateY(-50%); }
.scn-brooks-of-sheffield .signboard::after { content:''; position:absolute; top:60%; left:20%; right:20%; height:2px; background:#604830; transform:translateY(-50%); }
.scn-brooks-of-sheffield .laugh-lines { position:absolute; top:35%; left:35%; width:120px; height:40px; background: radial-gradient(circle at 20% 50%, rgba(60,40,20,0.1) 0%, transparent 50%) repeat; background-size: 30px 30px; animation: bo-laugh 1.8s ease-in-out infinite; }
@keyframes bo-back { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes bo-gent { 0% { transform:translateY(0) rotate(-2deg); } 30% { transform:translateY(-3px) rotate(1deg); } 60% { transform:translateY(1px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes bo-belly { 0% { transform:scaleY(1) scaleX(1); } 50% { transform:scaleY(1.4) scaleX(1.1); } 100% { transform:scaleY(0.9) scaleX(0.95); } }
@keyframes bo-davie { 0% { transform:translateX(0) rotate(0); } 30% { transform:translateX(2px) rotate(5deg); } 60% { transform:translateX(-1px) rotate(-3deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes bo-table { 0% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(1px) scaleX(1.02); } 100% { transform:translateY(-1px) scaleX(0.98); } }
@keyframes bo-cup { 0% { transform:rotate(0deg) scale(1); } 25% { transform:rotate(-8deg) scale(1.05); } 50% { transform:rotate(5deg) scale(0.95); } 75% { transform:rotate(-3deg) scale(1.02); } 100% { transform:rotate(0) scale(1); } }
@keyframes bo-sign { 0% { transform:translateX(-50%) rotate(-3deg) scaleY(1); } 50% { transform:translateX(-50%) rotate(3deg) scaleY(1.1); } 100% { transform:translateX(-50%) rotate(-3deg) scaleY(1); } }
@keyframes bo-laugh { 0% { opacity:0.2; transform:scale(0.8); } 50% { opacity:0.6; transform:scale(1.2); } 100% { opacity:0.2; transform:scale(0.9); } }

.scn-bewitching-mother-revealed {
  background: linear-gradient(180deg, #ffe6c8 0%, #f5d4a0 40%, #e0b880 100%);
  box-shadow: inset 0 0 80px rgba(200, 140, 80, 0.2);
}
.scn-bewitching-mother-revealed .background { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #ffe4b5 0%, #e8c898 100%); animation: be-bg 10s ease-in-out infinite alternate; }
.scn-bewitching-mother-revealed .mother { position:absolute; bottom:25%; left:30%; width:50px; height:95px; background: linear-gradient(180deg, #6a4e3a 0%, #3f2c1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: be-mom 4s ease-in-out infinite; }
.scn-bewitching-mother-revealed .mother::after { content:''; position:absolute; top:0; left:50%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #7a5e4a 0%, #5a4030 100%); border-radius: 50% 50% 0 0; transform:translateX(-50%); animation: be-hair 6s ease-in-out infinite alternate; }
.scn-bewitching-mother-revealed .davy { position:absolute; bottom:22%; right:35%; width:22px; height:55px; background: linear-gradient(180deg, #3a2a1e 0%, #1e140c 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; animation: be-davy 4s ease-in-out infinite; }
.scn-bewitching-mother-revealed .hands { position:absolute; bottom:38%; left:30%; width:25px; height:15px; background: radial-gradient(ellipse at 50% 50%, #c8a080 0%, #b08868 100%); border-radius: 40% 40% 50% 50%; transform-origin: center; animation: be-hands 3s ease-in-out infinite alternate; }
.scn-bewitching-mother-revealed .hands::before { content:''; position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 50% 50%, #c8a080 0%, transparent 70%); animation: be-touch 2s ease-in-out infinite alternate; }
.scn-bewitching-mother-revealed .glow { position:absolute; top:20%; left:35%; width:150px; height:150px; background: radial-gradient(circle, rgba(255, 220, 140, 0.3) 0%, rgba(255, 200, 100, 0.1) 40%, transparent 70%); animation: be-glow 8s ease-in-out infinite alternate; }
.scn-bewitching-mother-revealed .curtain { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 0 0 0 60%; transform-origin: right center; animation: be-curtain 12s ease-in-out infinite; }
@keyframes be-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes be-mom { 0% { transform:translateY(0) rotate(-1deg); } 30% { transform:translateY(-2px) rotate(2deg); } 60% { transform:translateY(1px) rotate(-1.5deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes be-hair { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(-5deg); } 100% { transform:translateX(-50%) rotate(3deg); } }
@keyframes be-davy { 0% { transform:translateX(0) rotate(0); } 30% { transform:translateX(3px) rotate(-4deg); } 60% { transform:translateX(-2px) rotate(3deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes be-hands { 0% { transform:translateY(0) scale(1); opacity:0.7; } 50% { transform:translateY(-5px) scale(1.1); opacity:1; } 100% { transform:translateY(2px) scale(0.95); opacity:0.8; } }
@keyframes be-touch { 0% { opacity:0.3; transform:scale(0.9); } 50% { opacity:0.7; transform:scale(1.2); } 100% { opacity:0.4; transform:scale(1); } }
@keyframes be-glow { 0% { opacity:0.2; transform:scale(0.8); } 50% { opacity:0.6; transform:scale(1.2); } 100% { opacity:0.3; transform:scale(0.9); } }
@keyframes be-curtain { 0% { transform:scaleX(1); } 50% { transform:scaleX(0.95); } 100% { transform:scaleX(1.02); } }

.scn-secret-promise-mother {
  background: linear-gradient(180deg, #1b1a2e 0%, #2c2544 40%, #3a2e52 100%), radial-gradient(ellipse at 50% 20%, #5a4a6e 0%, transparent 70%);
}
.scn-secret-promise-mother .background { position:absolute; inset:0; background: linear-gradient(135deg, #1e1c30 0%, #2a2340 100%); animation: se-bg 12s ease-in-out infinite alternate; }
.scn-secret-promise-mother .mother { position:absolute; bottom:15%; left:30%; width:55px; height:90px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1e2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: se-mom 5s ease-in-out infinite; }
.scn-secret-promise-mother .child { position:absolute; bottom:15%; right:35%; width:25px; height:55px; background: linear-gradient(180deg, #3a2a3a 0%, #1e1420 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; animation: se-child 5s ease-in-out infinite; }
.scn-secret-promise-mother .bed { position:absolute; bottom:10%; left:20%; right:20%; height:30px; background: linear-gradient(180deg, #3a2e44 0%, #2a2034 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 4px 10px rgba(0,0,0,0.4); animation: se-bed 8s ease-in-out infinite; }
.scn-secret-promise-mother .moonlight { position:absolute; top:0; left:40%; width:200px; height:100%; background: linear-gradient(180deg, rgba(180, 180, 220, 0.05) 0%, rgba(180, 180, 220, 0.15) 100%); filter: blur(10px); animation: se-moon 20s ease-in-out infinite alternate; }
@keyframes se-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes se-mom { 0% { transform:translateY(0) rotate(-1deg) scale(1); } 30% { transform:translateY(-2px) rotate(1.5deg) scale(1.01); } 60% { transform:translateY(1px) rotate(-1deg) scale(0.99); } 100% { transform:translateY(0) rotate(0) scale(1); } }
@keyframes se-child { 0% { transform:translateY(0) rotate(1deg) scale(1); } 30% { transform:translateY(-1px) rotate(-2deg) scale(1.02); } 60% { transform:translateY(1px) rotate(1.5deg) scale(0.98); } 100% { transform:translateY(0) rotate(0) scale(1); } }
@keyframes se-bed { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(0.98) translateY(1px); } 100% { transform:scaleY(1.01) translateY(-1px); } }
@keyframes se-moon { 0% { opacity:0.3; transform:translateX(0) scaleX(1); } 50% { opacity:0.6; transform:translateX(10px) scaleX(1.1); } 100% { opacity:0.4; transform:translateX(-5px) scaleX(0.95); } }

/* hams-tale-of-emly */
.scn-hams-tale-of-emly {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-hams-tale-of-emly .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c1c30 0%, #242440 100%);
}
.scn-hams-tale-of-emly .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%);
  border-radius: 30% 30% 0 0; box-shadow: inset 0 15px 25px rgba(0,0,0,0.6);
  animation: ht1-floor 20s ease-in-out infinite alternate;
}
.scn-hams-tale-of-emly .figure-ham {
  position: absolute; bottom: 20%; left: 30%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1a 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ht1-figure 6s ease-in-out infinite;
  box-shadow: -2px 0 8px rgba(0,0,0,0.5);
}
.scn-hams-tale-of-emly .letter {
  position: absolute; bottom: 28%; left: 38%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 50%, #c8a872 0%, #a08450 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ht1-letter 4s ease-in-out infinite;
}
.scn-hams-tale-of-emly .lamp {
  position: absolute; bottom: 35%; right: 25%; width: 14px; height: 20px;
  background: radial-gradient(circle, #d4a55f 0%, #8a5f30 70%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px rgba(212,165,95,0.4);
  animation: ht1-lamp 3s ease-in-out infinite alternate;
}
.scn-hams-tale-of-emly .window {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 3px solid #2e2e3a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: ht1-window 12s ease-in-out infinite alternate;
}
.scn-hams-tale-of-emly .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ht1-shadow 6s ease-in-out infinite;
}
@keyframes ht1-floor {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes ht1-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ht1-letter {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(3deg) translateY(-1px); }
  60% { transform: rotate(-2deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ht1-lamp {
  0% { box-shadow: 0 0 20px 4px rgba(212,165,95,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px rgba(212,165,95,0.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px rgba(212,165,95,0.4); opacity: 0.85; }
}
@keyframes ht1-window {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes ht1-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.7; }
  100% { transform: scaleX(0.9); opacity: 0.4; }
}

/* note-to-aunt-barkis */
.scn-note-to-aunt-barkis {
  background: linear-gradient(180deg, #1e222e 0%, #2a3040 50%, #1a1e2a 100%),
              radial-gradient(ellipse at 30% 70%, #3a3e4e 0%, transparent 80%);
}
.scn-note-to-aunt-barkis .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1e28 0%, #222a36 100%);
}
.scn-note-to-aunt-barkis .window-frame {
  position: absolute; top: 15%; right: 8%; width: 50%; height: 65%;
  background: #2a3240;
  border: 4px solid #3a4250;
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: nb2-frame 10s ease-in-out infinite alternate;
}
.scn-note-to-aunt-barkis .window-light {
  position: absolute; top: 18%; right: 11%; width: 46%; height: 58%;
  background: linear-gradient(180deg, #b8ceda 0%, #8a9caa 100%);
  border-radius: 3px;
  animation: nb2-light 4s ease-in-out infinite alternate;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
}
.scn-note-to-aunt-barkis .hand {
  position: absolute; bottom: 38%; right: 12%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom right;
  animation: nb2-hand 2.5s ease-in-out infinite;
}
.scn-note-to-aunt-barkis .note {
  position: absolute; bottom: 40%; right: 17%; width: 16px; height: 22px;
  background: linear-gradient(135deg, #e0d4b0 0%, #c4b890 100%);
  border-radius: 2px;
  box-shadow: 1px 2px 6px rgba(0,0,0,0.4);
  animation: nb2-note 3s ease-in-out infinite alternate;
}
.scn-note-to-aunt-barkis .sill {
  position: absolute; bottom: 25%; right: 8%; width: 52%; height: 4%;
  background: linear-gradient(180deg, #4a4a58 0%, #2a2a36 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
}
@keyframes nb2-frame {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(1.02); opacity: 1; }
  100% { transform: scaleX(0.98); opacity: 0.7; }
}
@keyframes nb2-light {
  0% { opacity: 0.7; transform: translateY(0); }
  50% { opacity: 0.9; transform: translateY(-1px); }
  100% { opacity: 0.6; transform: translateY(1px); }
}
@keyframes nb2-hand {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-4px) translateY(-1px) rotate(-3deg); }
  60% { transform: translateX(2px) translateY(1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes nb2-note {
  0% { transform: rotate(0deg) scale(1); }
  30% { transform: rotate(-5deg) scale(1.05); }
  60% { transform: rotate(4deg) scale(0.95); }
  100% { transform: rotate(0deg) scale(1); }
}

/* ham-consoles-emly */
.scn-ham-consoles-emly {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 40%, #2a1e14 100%),
              radial-gradient(ellipse at 50% 100%, #4a3018 0%, transparent 70%);
}
.scn-ham-consoles-emly .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2c1e12 0%, #3c2818 100%);
}
.scn-ham-consoles-emly .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140c 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-ham-consoles-emly .figure-ham {
  position: absolute; bottom: 18%; left: 28%; width: 40px; height: 75px;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: hc3-ham 5s ease-in-out infinite;
  box-shadow: 0 0 15px rgba(0,0,0,0.5);
}
.scn-ham-consoles-emly .figure-emly {
  position: absolute; bottom: 18%; left: 38%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #3a2820 0%, #1e1410 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hc3-emly 5s ease-in-out infinite reverse;
  box-shadow: 0 0 12px rgba(0,0,0,0.4);
}
.scn-ham-consoles-emly .embrace {
  position: absolute; bottom: 20%; left: 32%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #b8906040 0%, transparent 60%);
  border-radius: 50%;
  animation: hc3-embrace 4s ease-in-out infinite;
}
.scn-ham-consoles-emly .hearth {
  position: absolute; bottom: 10%; right: 20%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, #e08020 0%, #8a4010 50%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 50px 15px rgba(200,90,30,0.4);
  animation: hc3-hearth 3s ease-in-out infinite alternate;
}
.scn-ham-consoles-emly .chair {
  position: absolute; bottom: 16%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
@keyframes hc3-ham {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(2px) rotate(0deg); }
  60% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes hc3-emly {
  0% { transform: translateX(0) rotate(1deg); }
  30% { transform: translateX(-2px) rotate(0deg); }
  60% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes hc3-embrace {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}
@keyframes hc3-hearth {
  0% { box-shadow: 0 0 30px 8px rgba(200,90,30,0.3); }
  50% { box-shadow: 0 0 60px 20px rgba(200,90,30,0.6); }
  100% { box-shadow: 0 0 40px 12px rgba(200,90,30,0.4); }
}

/* morning-reflection-emly */
.scn-morning-reflection-emly {
  background: linear-gradient(180deg, #e8dfc8 0%, #d4c8a8 50%, #c0b090 100%),
              radial-gradient(ellipse at 60% 20%, #f0e8d0 0%, transparent 80%);
}
.scn-morning-reflection-emly .bg-morning {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #dad0b8 0%, #c8b898 100%);
}
.scn-morning-reflection-emly .window {
  position: absolute; top: 5%; left: 10%; width: 50%; height: 60%;
  background: linear-gradient(180deg, #c8d8e0 0%, #a8b8c0 100%);
  border: 4px solid #b0a88e;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,255,200,0.3);
  animation: mr4-window 15s ease-in-out infinite alternate;
}
.scn-morning-reflection-emly .sunbeams {
  position: absolute; top: 8%; left: 15%; width: 35%; height: 70%;
  background: linear-gradient(180deg, rgba(255,255,210,0.4) 0%, rgba(255,255,210,0.1) 100%);
  filter: blur(10px);
  animation: mr4-beams 20s ease-in-out infinite alternate;
}
.scn-morning-reflection-emly .curtains {
  position: absolute; top: 5%; left: 8%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #d4c8a0 0%, #b8ac84 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: mr4-curtains 8s ease-in-out infinite alternate;
}
.scn-morning-reflection-emly .desk {
  position: absolute; bottom: 18%; left: 8%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-morning-reflection-emly .figure-david {
  position: absolute; bottom: 18%; left: 22%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mr4-david 7s ease-in-out infinite;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
}
.scn-morning-reflection-emly .cup {
  position: absolute; bottom: 22%; left: 12%; width: 14px; height: 16px;
  background: radial-gradient(circle at 50% 50%, #c8b898 0%, #a09070 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.2);
}
.scn-morning-reflection-emly .motes {
  position: absolute; top: 20%; left: 30%; width: 100%; height: 60%;
  background: transparent;
  animation: mr4-motes 30s linear infinite;
}
.scn-morning-reflection-emly .motes::after {
  content: '';
  position: absolute;
  width: 4px; height: 4px;
  background: rgba(255,255,200,0.5);
  border-radius: 50%;
  box-shadow: 20px 30px 0 rgba(255,255,200,0.4), 60px 80px 0 rgba(255,255,200,0.3), 90px 40px 0 rgba(255,255,200,0.5);
  animation: mr4-dust 12s ease-in-out infinite;
}
@keyframes mr4-window {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mr4-beams {
  0% { transform: rotate(-5deg) translateX(0); opacity: 0.4; }
  50% { transform: rotate(0deg) translateX(5px); opacity: 0.7; }
  100% { transform: rotate(5deg) translateX(-3px); opacity: 0.5; }
}
@keyframes mr4-curtains {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
  100% { transform: translateX(2px); }
}
@keyframes mr4-david {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(1deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes mr4-dust {
  0% { transform: translate(0,0); opacity: 0.3; }
  50% { transform: translate(10px, -10px); opacity: 0.8; }
  100% { transform: translate(-5px, 5px); opacity: 0.3; }
}

.scn-micawber-reads-charges {
  background: 
    linear-gradient(135deg, #e8d5a3 0%, #c4a87a 50%, #8a6e44 100%),
    radial-gradient(ellipse at 70% 20%, #f0e0b0 0%, transparent 60%);
}
.scn-micawber-reads-charges .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 40%, rgba(0,0,0,0.15) 100%);
}
.scn-micawber-reads-charges .desk {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,0.6); transform: perspective(800px) rotateX(18deg);
}
.scn-micawber-reads-charges .paper {
  position: absolute; bottom: 20%; left: 35%; width: 22%; height: 8%;
  background: linear-gradient(135deg, #f5e6c0 0%, #e0c890 100%);
  border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: si-paper 6s ease-in-out infinite;
}
.scn-micawber-reads-charges .ruler {
  position: absolute; bottom: 22%; left: 30%; width: 18%; height: 1.5%;
  background: linear-gradient(90deg, #b8865a 0%, #d4a573 50%, #b8865a 100%);
  border-radius: 2px; transform-origin: left center;
  animation: si-ruler 4s ease-in-out infinite;
}
.scn-micawber-reads-charges .micawber {
  position: absolute; bottom: 27%; left: 22%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-micawber 5s ease-in-out infinite;
}
.scn-micawber-reads-charges .uriah {
  position: absolute; bottom: 27%; right: 20%; width: 9%; height: 28%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: si-uriah 3.5s ease-in-out infinite;
}
.scn-micawber-reads-charges .lamp-glow {
  position: absolute; top: 20%; right: 30%; width: 20%; height: 25%;
  background: radial-gradient(circle at 50% 50%, #fce4b0 0%, #d4a050 40%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: si-lamp 4s ease-in-out infinite alternate;
}
.scn-micawber-reads-charges .shadow {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
}
@keyframes si-paper {
  0% { transform: translateX(0) rotate(0deg); box-shadow: 0 2px 8px rgba(0,0,0,0.3); }
  30% { transform: translateX(3px) rotate(1deg); box-shadow: 0 4px 12px rgba(0,0,0,0.4); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes si-ruler {
  0% { transform: rotate(-2deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(1px); }
  75% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes si-micawber {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes si-uriah {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  30% { transform: translateY(-2px) rotate(-1deg) scaleX(0.97); }
  70% { transform: translateY(1px) rotate(1deg) scaleX(1.02); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes si-lamp {
  0% { opacity: 0.8; filter: blur(8px); }
  50% { opacity: 1; filter: blur(6px); }
  100% { opacity: 0.75; filter: blur(10px); }
}

.scn-uriah-panics-over-bond {
  background: 
    linear-gradient(135deg, #1a2a3a 0%, #2a3a4a 50%, #0a1a2a 100%),
    radial-gradient(ellipse at 40% 60%, #4a5a6a 0%, transparent 60%);
}
.scn-uriah-panics-over-bond .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 30%, rgba(0,0,0,0.6) 100%);
}
.scn-uriah-panics-over-bond .desk {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 6px; box-shadow: 0 4px 15px rgba(0,0,0,0.7);
}
.scn-uriah-panics-over-bond .drawer {
  position: absolute; bottom: 25%; right: 28%; width: 12%; height: 6%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: up-drawer 8s ease-in-out infinite;
}
.scn-uriah-panics-over-bond .keys {
  position: absolute; bottom: 28%; right: 35%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #b0a080 0%, #807060 100%);
  border-radius: 2px 2px 50% 50%; transform-origin: top center;
  animation: up-keys 2s ease-in-out 3;
}
.scn-uriah-panics-over-bond .uriah-hand {
  position: absolute; bottom: 30%; right: 20%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: up-hand 6s ease-in-out infinite;
}
.scn-uriah-panics-over-bond .uriah-body {
  position: absolute; bottom: 32%; right: 15%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: up-body 12s linear infinite;
}
.scn-uriah-panics-over-bond .lamp-flicker {
  position: absolute; top: 15%; left: 40%; width: 18%; height: 22%;
  background: radial-gradient(circle at 50% 50%, #d4b080 0%, #806040 40%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: up-lamp 0.8s ease-in-out infinite alternate;
}
@keyframes up-drawer {
  0% { transform: translateX(0) scaleY(1); }
  20% { transform: translateX(-4px) scaleY(0.8); }
  40% { transform: translateX(0) scaleY(1); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes up-keys {
  0% { transform: rotate(0deg) translateY(0); }
  20% { transform: rotate(30deg) translateY(-2px); }
  40% { transform: rotate(-20deg) translateY(1px); }
  60% { transform: rotate(15deg) translateY(-1px); }
  80% { transform: rotate(-5deg) translateY(0); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes up-hand {
  0% { transform: translateY(0) rotate(0deg); }
  15% { transform: translateY(-10px) rotate(5deg); }
  30% { transform: translateY(0) rotate(0deg); }
  45% { transform: translateY(-6px) rotate(-3deg); }
  60% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes up-body {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes up-lamp {
  0% { opacity: 0.7; filter: blur(10px); }
  100% { opacity: 1; filter: blur(4px); }
}

.scn-child-wife-fading {
  background: 
    linear-gradient(180deg, #2a2040 0%, #1a1830 50%, #0a1020 100%),
    radial-gradient(ellipse at 50% 80%, #3a3050 0%, transparent 70%);
}
.scn-child-wife-fading .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 60%, rgba(0,0,0,0.3) 100%);
}
.scn-child-wife-fading .bed-frame {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10px 10px 4px 4px; box-shadow: 0 8px 25px rgba(0,0,0,0.6);
}
.scn-child-wife-fading .figure-dora {
  position: absolute; bottom: 18%; left: 45%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #6a5a5a 0%, #3a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cf-dora 8s ease-in-out infinite;
}
.scn-child-wife-fading .blanket {
  position: absolute; bottom: 12%; left: 22%; right: 22%; height: 10%;
  background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%);
  border-radius: 20% 20% 8% 8%; filter: blur(1px);
  animation: cf-blanket 12s ease-in-out infinite;
}
.scn-child-wife-fading .pillow {
  position: absolute; bottom: 32%; left: 42%; width: 20%; height: 8%;
  background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.scn-child-wife-fading .candle-glow {
  position: absolute; top: 30%; left: 25%; width: 15%; height: 20%;
  background: radial-gradient(circle at 50% 50%, #d0a060 0%, #804030 30%, transparent 60%);
  border-radius: 50%; filter: blur(12px);
  animation: cf-candle 6s ease-in-out infinite alternate;
}
.scn-child-wife-fading .blossom {
  position: absolute; top: 0; left: 50%; width: 4%; height: 4%;
  background: radial-gradient(circle at 50% 50%, #b87878 0%, #5e1a1d 100%);
  border-radius: 50%; box-shadow: 0 0 6px rgba(184,120,120,0.6);
  animation: cf-blossom 15s linear infinite;
}
@keyframes cf-dora {
  0% { transform: translateY(0) scaleY(1); opacity: 0.9; }
  50% { transform: translateY(-2px) scaleY(1.01); opacity: 0.95; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.9; }
}
@keyframes cf-blanket {
  0% { transform: translateY(0) scaleY(1); filter: blur(1px); }
  50% { transform: translateY(-1px) scaleY(1.02); filter: blur(1.5px); }
  100% { transform: translateY(0) scaleY(1); filter: blur(1px); }
}
@keyframes cf-candle {
  0% { opacity: 0.5; filter: blur(15px); }
  50% { opacity: 0.8; filter: blur(8px); }
  100% { opacity: 0.4; filter: blur(18px); }
}
@keyframes cf-blossom {
  0% { transform: translateY(-10vh) rotate(0deg) scale(1); opacity: 1; }
  50% { transform: translateY(50vh) rotate(180deg) scale(0.8); opacity: 0.6; }
  100% { transform: translateY(110vh) rotate(360deg) scale(0.4); opacity: 0; }
}

.scn-dora-admits-child-wife {
  background: 
    linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 60% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-dora-admits-child-wife .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 50%, rgba(0,0,0,0.4) 100%);
}
.scn-dora-admits-child-wife .window {
  position: absolute; top: 12%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(135deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(100,120,140,0.3);
  animation: da-window 8s ease-in-out infinite alternate;
}
.scn-dora-admits-child-wife .table {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 6px; box-shadow: 0 4px 15px rgba(0,0,0,0.5);
}
.scn-dora-admits-child-wife .candle {
  position: absolute; bottom: 24%; left: 48%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #e0c090 0%, #a08060 100%);
  border-radius: 2px; transform-origin: bottom center;
  animation: da-candle 4s ease-in-out infinite alternate;
}
.scn-dora-admits-child-wife .david {
  position: absolute; bottom: 28%; left: 20%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: da-david 10s ease-in-out infinite;
}
.scn-dora-admits-child-wife .dora {
  position: absolute; bottom: 28%; right: 22%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: da-dora 3s ease-in-out infinite;
}
.scn-dora-admits-child-wife .shadow {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
}
@keyframes da-window {
  0% { opacity: 0.3; filter: blur(2px); }
  50% { opacity: 0.6; filter: blur(1px); }
  100% { opacity: 0.2; filter: blur(3px); }
}
@keyframes da-candle {
  0% { transform: scaleY(1) rotate(0deg); box-shadow: 0 0 8px rgba(200,160,100,0.4); }
  50% { transform: scaleY(1.05) rotate(2deg); box-shadow: 0 0 12px rgba(200,160,100,0.6); }
  100% { transform: scaleY(0.95) rotate(-2deg); box-shadow: 0 0 6px rgba(200,160,100,0.3); }
}
@keyframes da-david {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes da-dora {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(8deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-6deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}

.scn-dick-admits-simplicity { background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 40%, #d4c0a0 100%), radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 70%); }
.scn-dick-admits-simplicity .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f5e6d0 0%, #e0ceb0 60%, #cdb896 100%); animation: das-wall 12s ease-in-out infinite alternate; }
.scn-dick-admits-simplicity .window { position:absolute; top:12%; left:62%; width:22%; height:45%; background: linear-gradient(135deg, #fffbe4 0%, #ffe88a 50%, #ffd56a 100%); border-radius:6%; box-shadow: 0 0 40px 15px rgba(255,213,106,.4); animation: das-window 6s ease-in-out infinite alternate; }
.scn-dick-admits-simplicity .chair { position:absolute; bottom:18%; left:28%; width:14%; height:38%; background: linear-gradient(180deg, #6b4a2e 0%, #3d2a18 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: das-chair 9s ease-in-out infinite; }
.scn-dick-admits-simplicity .figure { position:absolute; bottom:16%; left:32%; width:10%; height:30%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 80%; animation: das-figure 4s ease-in-out infinite; }
.scn-dick-admits-simplicity .table { position:absolute; bottom:12%; left:26%; width:20%; height:6%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 40%; transform-origin: center; animation: das-table 15s ease-in-out infinite; }
.scn-dick-admits-simplicity .book { position:absolute; bottom:20%; left:28%; width:8%; height:5%; background: linear-gradient(135deg, #d4b896 0%, #b89a78 50%, #9c7e5a 100%); border-radius: 8% 8% 40% 40%; transform: rotate(-5deg); transform-origin: left center; animation: das-book 8s ease-in-out infinite; }
.scn-dick-admits-simplicity .shadow { position:absolute; bottom:10%; left:24%; width:30%; height:3%; background: radial-gradient(ellipse, rgba(0,0,0,.35) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: das-shadow 6s ease-in-out infinite alternate; }
@keyframes das-wall { 0% { opacity:.82 } 50% { opacity:.95 } 100% { opacity:.88 } }
@keyframes das-window { 0% { box-shadow: 0 0 20px 5px rgba(255,213,106,.3); filter: brightness(.85); } 50% { box-shadow: 0 0 50px 20px rgba(255,213,106,.5); filter: brightness(1.1); } 100% { box-shadow: 0 0 25px 8px rgba(255,213,106,.35); filter: brightness(.95); } }
@keyframes das-chair { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-1.5deg) scale(1.01); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes das-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2.5deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes das-table { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes das-book { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes das-shadow { 0% { opacity:.5; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.05); } 100% { opacity:.55; transform: scaleX(1); } }

.scn-dick-foresees-clouds { background: linear-gradient(180deg, #0b0d1a 0%, #11152b 40%, #1a2040 100%), radial-gradient(ellipse at 50% 30%, #1a2040 0%, transparent 70%); }
.scn-dick-foresees-clouds .wall { position:absolute; inset:0; background: linear-gradient(180deg, #0b0d1a 0%, #101426 50%, #14183a 100%); animation: dfc-wall 15s ease-in-out infinite alternate; }
.scn-dick-foresees-clouds .window { position:absolute; top:10%; right:8%; width:28%; height:45%; background: linear-gradient(180deg, #0f1a33 0%, #1b2a50 70%, #243560 100%); border-radius:8%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); overflow:hidden; }
.scn-dick-foresees-clouds .curtain-l { position:absolute; top:10%; right:36%; width:8%; height:45%; background: linear-gradient(90deg, #2a1a10 0%, #1a0e06 100%); border-radius:0 30% 30% 0; transform-origin: right; animation: dfc-curtain 20s ease-in-out infinite alternate; }
.scn-dick-foresees-clouds .curtain-r { position:absolute; top:10%; right:0; width:8%; height:45%; background: linear-gradient(90deg, #1a0e06 0%, #2a1a10 100%); border-radius:30% 0 0 30%; transform-origin: left; animation: dfc-curtain 20s ease-in-out infinite alternate-reverse; }
.scn-dick-foresees-clouds .star1 { position:absolute; top:15%; right:18%; width:4px; height:4px; background:#e8e0ff; border-radius:50%; box-shadow: 0 0 6px 2px rgba(232,224,255,.6); animation: dfc-star 3s ease-in-out infinite; }
.scn-dick-foresees-clouds .star2 { position:absolute; top:22%; right:12%; width:3px; height:3px; background:#d0c8f0; border-radius:50%; box-shadow: 0 0 4px 1px rgba(208,200,240,.5); animation: dfc-star 5s ease-in-out infinite 1s; }
.scn-dick-foresees-clouds .star3 { position:absolute; top:18%; right:24%; width:5px; height:5px; background:#f0e8ff; border-radius:50%; box-shadow: 0 0 8px 3px rgba(240,232,255,.7); animation: dfc-star 7s ease-in-out infinite 2s; }
.scn-dick-foresees-clouds .figure { position:absolute; bottom:18%; left:12%; width:9%; height:28%; background: linear-gradient(180deg, #1a1410 0%, #0a0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 80%; animation: dfc-figure 12s ease-in-out infinite; }
.scn-dick-foresees-clouds .chair { position:absolute; bottom:16%; left:8%; width:16%; height:36%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: dfc-chair 18s ease-in-out infinite; }
@keyframes dfc-wall { 0% { opacity:.75; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes dfc-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1); } }
@keyframes dfc-star { 0% { opacity:.2; transform: scale(.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.3; transform: scale(.9); } }
@keyframes dfc-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes dfc-chair { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-1.5deg) scale(1.01); } 100% { transform: rotate(0deg) scale(1); } }

.scn-old-soldier-tells-will-story { background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 40%, #d4c0a0 100%), radial-gradient(ellipse at 60% 30%, #fff8e8 0%, transparent 70%); }
.scn-old-soldier-tells-will-story .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f5e6d0 0%, #e0ceb0 60%, #cdb896 100%); animation: ost-wall 14s ease-in-out infinite alternate; }
.scn-old-soldier-tells-will-story .window { position:absolute; top:15%; left:58%; width:20%; height:40%; background: linear-gradient(135deg, #fffbe4 0%, #ffe88a 50%, #ffd56a 100%); border-radius:6%; box-shadow: 0 0 30px 10px rgba(255,213,106,.35); animation: ost-window 8s ease-in-out infinite alternate; }
.scn-old-soldier-tells-will-story .chair { position:absolute; bottom:20%; left:22%; width:16%; height:36%; background: linear-gradient(180deg, #6b4a2e 0%, #3d2a18 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: ost-chair 11s ease-in-out infinite; }
.scn-old-soldier-tells-will-story .figure { position:absolute; bottom:16%; left:26%; width:10%; height:32%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 80%; animation: ost-figure 6s ease-in-out infinite; }
.scn-old-soldier-tells-will-story .paper { position:absolute; bottom:26%; left:28%; width:14%; height:10%; background: linear-gradient(135deg, #f0e4c8 0%, #d4c0a0 50%, #b89a78 100%); border-radius: 4% 4% 20% 20%; transform: rotate(10deg); transform-origin: left center; animation: ost-paper 10s ease-in-out infinite; }
.scn-old-soldier-tells-will-story .shadow { position:absolute; bottom:12%; left:18%; width:28%; height:4%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: ost-shadow 7s ease-in-out infinite alternate; }
.scn-old-soldier-tells-will-story .table { position:absolute; bottom:10%; left:24%; width:18%; height:5%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 40%; transform-origin: center; animation: ost-table 13s ease-in-out infinite; }
@keyframes ost-wall { 0% { opacity:.8; } 50% { opacity:.94; } 100% { opacity:.86; } }
@keyframes ost-window { 0% { box-shadow: 0 0 15px 3px rgba(255,213,106,.25); filter: brightness(.88); } 50% { box-shadow: 0 0 45px 18px rgba(255,213,106,.5); filter: brightness(1.1); } 100% { box-shadow: 0 0 20px 6px rgba(255,213,106,.3); filter: brightness(.95); } }
@keyframes ost-chair { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-1.2deg) scale(1.01); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes ost-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ost-paper { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes ost-shadow { 0% { opacity:.5; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.05); } 100% { opacity:.55; transform: scaleX(1); } }
@keyframes ost-table { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1.5px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }

.scn-markleham-praises-doctors-strength { background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 40%, #d4c0a0 100%), radial-gradient(ellipse at 40% 20%, #fff8e8 0%, transparent 70%); }
.scn-markleham-praises-doctors-strength .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f5e6d0 0%, #e0ceb0 60%, #cdb896 100%); animation: mds-wall 13s ease-in-out infinite alternate; }
.scn-markleham-praises-doctors-strength .window { position:absolute; top:12%; left:65%; width:18%; height:42%; background: linear-gradient(135deg, #fffbe4 0%, #ffe88a 50%, #ffd56a 100%); border-radius:6%; box-shadow: 0 0 35px 12px rgba(255,213,106,.4); animation: mds-window 7s ease-in-out infinite alternate; }
.scn-markleham-praises-doctors-strength .chair { position:absolute; bottom:16%; left:30%; width:14%; height:34%; background: linear-gradient(180deg, #6b4a2e 0%, #3d2a18 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: mds-chair 10s ease-in-out infinite; }
.scn-markleham-praises-doctors-strength .figure { position:absolute; bottom:12%; left:34%; width:11%; height:36%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 80%; animation: mds-figure 5s ease-in-out infinite; }
.scn-markleham-praises-doctors-strength .teacup { position:absolute; bottom:30%; left:42%; width:6%; height:5%; background: radial-gradient(ellipse at 30% 20%, #f0f0f0 0%, #c0c0c0 60%, #a0a0a0 100%); border-radius: 50% 50% 40% 40%; transform-origin: center; animation: mds-cup 9s ease-in-out infinite; }
.scn-markleham-praises-doctors-strength .saucer { position:absolute; bottom:28%; left:40%; width:10%; height:2.5%; background: radial-gradient(ellipse, #e8e8e8 0%, #b0b0b0 100%); border-radius: 50%; box-shadow: 0 3px 6px rgba(0,0,0,.2); animation: mds-saucer 9s ease-in-out infinite; }
.scn-markleham-praises-doctors-strength .shadow { position:absolute; bottom:8%; left:26%; width:24%; height:3%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: mds-shadow 6s ease-in-out infinite alternate; }
@keyframes mds-wall { 0% { opacity:.82; } 50% { opacity:.95; } 100% { opacity:.88; } }
@keyframes mds-window { 0% { box-shadow: 0 0 18px 4px rgba(255,213,106,.3); filter: brightness(.85); } 50% { box-shadow: 0 0 48px 20px rgba(255,213,106,.5); filter: brightness(1.1); } 100% { box-shadow: 0 0 22px 6px rgba(255,213,106,.35); filter: brightness(.95); } }
@keyframes mds-chair { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-1.8deg) scale(1.01); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes mds-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3.5deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mds-cup { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mds-saucer { 0% { transform: translateX(0); } 50% { transform: translateX(-1px); } 100% { transform: translateX(0); } }
@keyframes mds-shadow { 0% { opacity:.45; transform: scaleX(1); } 50% { opacity:.65; transform: scaleX(1.04); } 100% { opacity:.5; transform: scaleX(1); } }

.scn-uriah-admires-agnes { background: linear-gradient(135deg, #f5e6d0 0%, #c4a882 40%, #7a5a3a 100%), radial-gradient(ellipse at 20% 30%, #f5e6d0 0%, transparent 60%); }
.scn-uriah-admires-agnes .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #d4c4a0 0%, #a08060 100%); animation: ua1-wall 8s ease-in-out infinite alternate; }
.scn-uriah-admires-agnes .window-light { position:absolute; top:10%; left:20%; width:30%; height:40%; background: radial-gradient(ellipse at center, #fff8e0 0%, #f5e0a0 40%, transparent 70%); animation: ua1-light 2s ease-in-out infinite; }
.scn-uriah-admires-agnes .figure-uriah { position:absolute; bottom:10%; left:25%; width:20%; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ua1-uriah 3s ease-in-out infinite; }
.scn-uriah-admires-agnes .figure-david { position:absolute; bottom:10%; right:20%; width:18%; height:55%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ua1-david 4s ease-in-out infinite; }
.scn-uriah-admires-agnes .desk { position:absolute; bottom:5%; left:15%; right:15%; height:5%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10%; animation: ua1-desk 6s ease-in-out infinite; }
.scn-uriah-admires-agnes .shadow { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: ua1-shadow 3s ease-in-out infinite alternate; }
@keyframes ua1-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ua1-light { 0% { opacity:0.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.02) } 100% { opacity:0.8; transform:scale(0.98) } }
@keyframes ua1-uriah { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-1px) translateY(0) rotate(-1deg) } }
@keyframes ua1-david { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ua1-desk { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ua1-shadow { 0% { opacity:0.3; transform:scaleX(1) } 50% { opacity:0.5; transform:scaleX(1.1) } 100% { opacity:0.2; transform:scaleX(0.9) } }

.scn-uriah-invites-visit { background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 50%, #a09070 100%), radial-gradient(ellipse at 50% 80%, #e8dcc8 0%, transparent 70%); }
.scn-uriah-invites-visit .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #d8ccb8 0%, #b8a890 100%); animation: ui2-room 10s ease-in-out infinite alternate; }
.scn-uriah-invites-visit .bookshelf { position:absolute; top:5%; right:5%; width:15%; height:60%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 5%; box-shadow: 4px 0 8px rgba(0,0,0,0.2); animation: ui2-shelf 8s ease-in-out infinite; }
.scn-uriah-invites-visit .figure-uriah-book { position:absolute; bottom:10%; left:30%; width:18%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ui2-uriah 5s ease-in-out infinite; }
.scn-uriah-invites-visit .lamp { position:absolute; top:20%; left:10%; width:8%; height:15%; background: radial-gradient(ellipse at center, #f5e0a0 0%, #d0b070 50%, transparent 100%); animation: ui2-lamp 3s ease-in-out infinite alternate; }
.scn-uriah-invites-visit .shadow { position:absolute; bottom:0; left:10%; width:60%; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.15) 0%, transparent 70%); animation: ui2-shadow 6s ease-in-out infinite alternate; }
@keyframes ui2-room { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ui2-shelf { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ui2-uriah { 0% { transform: translateX(0) translateY(0) rotate(0) } 30% { transform: translateX(5px) translateY(-3px) rotate(2deg) } 60% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ui2-lamp { 0% { opacity:0.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:0.8; transform:scale(0.95) } }
@keyframes ui2-shadow { 0% { opacity:0.1; transform:scaleX(1) } 50% { opacity:0.2; transform:scaleX(1.2) } 100% { opacity:0.15; transform:scaleX(0.8) } }

.scn-old-soldier-recollections { background: linear-gradient(135deg, #f0dcc0 0%, #d4b890 50%, #b89870 100%), radial-gradient(ellipse at 50% 40%, #f0dcc0 0%, transparent 60%); }
.scn-old-soldier-recollections .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #e8d4b8 0%, #c0a888 100%); animation: os3-bg 12s ease-in-out infinite alternate; }
.scn-old-soldier-recollections .figure-soldier { position:absolute; bottom:5%; left:20%; width:25%; height:55%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: os3-fig 6s ease-in-out infinite; }
.scn-old-soldier-recollections .fan { position:absolute; top:15%; left:40%; width:15%; height:10%; background: radial-gradient(ellipse at center, #c8a870 0%, #a08050 60%, transparent 100%); border-radius: 50%; animation: os3-fan 4s ease-in-out infinite; }
.scn-old-soldier-recollections .tea-cup { position:absolute; bottom:15%; right:20%; width:6%; height:8%; background: linear-gradient(180deg, #e0d0b0 0%, #b8a080 100%); border-radius: 30% 30% 20% 20%; animation: os3-cup 7s ease-in-out infinite; }
.scn-old-soldier-recollections .glow-amber { position:absolute; top:10%; left:30%; width:40%; height:40%; background: radial-gradient(ellipse at center, rgba(255,200,100,0.3) 0%, transparent 70%); animation: os3-glow 5s ease-in-out infinite alternate; }
@keyframes os3-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes os3-fig { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes os3-fan { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(10deg) scale(1.05) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes os3-cup { 0% { transform: translateX(0) } 50% { transform: translateX(2px) translateY(-1px) } 100% { transform: translateX(0) } }
@keyframes os3-glow { 0% { opacity:0.2; transform:scale(1) } 50% { opacity:0.4; transform:scale(1.1) } 100% { opacity:0.3; transform:scale(0.9) } }

.scn-old-soldier-consistent { background: linear-gradient(180deg, #ede0d0 0%, #d4c4a8 50%, #b8a888 100%), radial-gradient(ellipse at 40% 60%, #ede0d0 0%, transparent 70%); }
.scn-old-soldier-consistent .bg-calmer { position:absolute; inset:0; background: linear-gradient(135deg, #e0d4c0 0%, #c0b098 100%); animation: os4-bg 15s ease-in-out infinite alternate; }
.scn-old-soldier-consistent .figure-soldier-seated { position:absolute; bottom:5%; left:10%; width:30%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: os4-fig 8s ease-in-out infinite; }
.scn-old-soldier-consistent .table-round { position:absolute; bottom:5%; left:35%; width:25%; height:8%; background: radial-gradient(ellipse at center, #8a7050 0%, #5a4020 100%); border-radius: 50%; animation: os4-table 10s ease-in-out infinite; }
.scn-old-soldier-consistent .candle { position:absolute; bottom:10%; left:45%; width:3%; height:12%; background: linear-gradient(180deg, #f0d0a0 0%, #d0a060 60%, #804020 100%); border-radius: 20% 20% 10% 10%; animation: os4-candle 4s ease-in-out infinite; }
.scn-old-soldier-consistent .glow-soft { position:absolute; top:5%; left:20%; width:60%; height:60%; background: radial-gradient(ellipse at center, rgba(240,200,150,0.2) 0%, transparent 70%); animation: os4-glow 6s ease-in-out infinite alternate; }
@keyframes os4-bg { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes os4-fig { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes os4-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes os4-candle { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes os4-glow { 0% { opacity:0.1; transform:scale(1) } 50% { opacity:0.3; transform:scale(1.2) } 100% { opacity:0.2; transform:scale(0.9) } }

.scn-peggotty-offers-money {
  background: linear-gradient(180deg, #f4e4c8 0%, #dab88f 40%, #b8935a 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-peggotty-offers-money .p1-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #eaceb0 0%, #d4a373 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.15);
  animation: p1-wallpulse 15s ease-in-out infinite;
}
.scn-peggotty-offers-money .p1-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #8b6f4c 0%, #a07d55 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-peggotty-offers-money .p1-fireplace {
  position: absolute; left: 10%; bottom: 25%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #4a3322 0%, #2e1f12 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: inset 0 -10px 20px #1a0f0a;
}
.scn-peggotty-offers-money .p1-fireplace::after {
  content: ''; position: absolute; bottom: 10%; left: 15%; width: 70%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #ff8833 0%, #cc5500 60%, #8b3a00 100%);
  border-radius: 50%;
  animation: p1-fireglow 2s ease-in-out infinite alternate;
}
.scn-peggotty-offers-money .p1-table {
  position: absolute; bottom: 25%; left: 40%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #8b6f4c 0%, #6b5438 100%);
  border-radius: 5% 5% 8% 8%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-peggotty-offers-money .p1-chair {
  position: absolute; bottom: 18%; left: 32%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #a0522d 0%, #703a1c 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: p1-rock 4s ease-in-out infinite;
}
.scn-peggotty-offers-money .p1-figure {
  position: absolute; bottom: 20%; left: 45%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: p1-step 6s ease-in-out infinite;
}
.scn-peggotty-offers-money .p1-purse {
  position: absolute; bottom: 22%; left: 42%; width: 8%; height: 6%;
  background: radial-gradient(circle, #d4af37 0%, #b8860b 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(212,175,55,0.5), 0 0 40px 12px rgba(255,215,0,0.2);
  animation: p1-coinpulse 2s ease-in-out infinite alternate;
}
@keyframes p1-wallpulse { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.92 } }
@keyframes p1-fireglow { 0% { opacity: 0.7; transform: scaleY(0.9) } 50% { opacity: 1; transform: scaleY(1.1) } 100% { opacity: 0.8; transform: scaleY(0.95) } }
@keyframes p1-rock { 0% { transform: rotate(0deg) } 25% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes p1-step { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes p1-coinpulse { 0% { box-shadow: 0 0 12px 4px #d4af37, 0 0 30px 8px rgba(255,215,0,0.2); } 50% { box-shadow: 0 0 28px 10px #ffd700, 0 0 60px 20px rgba(255,215,0,0.5); } 100% { box-shadow: 0 0 15px 5px #d4af37, 0 0 35px 10px rgba(255,215,0,0.3); } }

.scn-mills-house-visit {
  background: linear-gradient(180deg, #2c3e5a 0%, #1a2638 50%, #0d1321 100%), radial-gradient(ellipse at 30% 50%, #6b7b8d 0%, transparent 70%);
}
.scn-mills-house-visit .mh-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #3b4a5e 0%, #2a3545 100%);
  border-radius: 0 0 15% 15%;
}
.scn-mills-house-visit .mh-window {
  position: absolute; top: 15%; right: 20%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #a8c4d6 0%, #7b9bb0 100%);
  border: 6px solid #1e2a36;
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 0 30px 10px rgba(168,196,214,0.3), 0 0 50px 15px rgba(123,155,176,0.2);
  animation: mh-dusklight 8s ease-in-out infinite alternate;
}
.scn-mills-house-visit .mh-chair {
  position: absolute; bottom: 18%; left: 30%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140c 100%);
  border-radius: 40% 40% 15% 15%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-mills-house-visit .mh-figure {
  position: absolute; bottom: 22%; left: 33%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mh-sleep 6s ease-in-out infinite;
}
.scn-mills-house-visit .mh-clock {
  position: absolute; top: 10%; left: 10%; width: 12%; height: 12%;
  background: radial-gradient(circle, #c8a86e 0%, #8b6f4c 70%);
  border-radius: 50%;
  border: 4px solid #4a3a2a;
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.5);
}
.scn-mills-house-visit .mh-clock::after {
  content: ''; position: absolute; top: 50%; left: 50%; width: 2px; height: 30%;
  background: #1a1a1a; transform-origin: bottom center;
  animation: mh-pendulum 2s ease-in-out infinite;
  border-radius: 2px;
}
.scn-mills-house-visit .mh-door {
  position: absolute; left: 5%; top: 20%; width: 18%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 10% 5% 10%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  transform-origin: left center;
  animation: mh-doorcreak 30s ease-in-out infinite;
}
.scn-mills-house-visit .mh-candle {
  position: absolute; bottom: 30%; left: 55%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(240,208,128,0.6), 0 0 60px 20px rgba(240,208,128,0.2);
  animation: mh-candleflicker 3s ease-in-out infinite;
}
@keyframes mh-dusklight { 0% { opacity: 0.6; transform: scaleX(0.95) } 50% { opacity: 0.9; transform: scaleX(1.05) } 100% { opacity: 0.7; transform: scaleX(0.98) } }
@keyframes mh-sleep { 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 mh-pendulum { 0% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }
@keyframes mh-doorcreak { 0% { transform: rotate(0deg) } 10% { transform: rotate(-3deg) } 20% { transform: rotate(0deg) } 100% { transform: rotate(0deg) } }
@keyframes mh-candleflicker { 0% { opacity: 0.8; transform: scaleY(1) } 20% { opacity: 1; transform: scaleY(1.1) } 40% { opacity: 0.7; transform: scaleY(0.95) } 60% { opacity: 0.9; transform: scaleY(1.05) } 80% { opacity: 0.85; transform: scaleY(1) } 100% { opacity: 0.75; transform: scaleY(0.98) } }

.scn-dora-cries-on-sofa {
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 60%, #060610 100%), radial-gradient(ellipse at 50% 30%, #2a1a3e 0%, transparent 70%);
}
.scn-dora-cries-on-sofa .dc-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #151525 0%, #0a0a14 100%);
  animation: dc-bgpulse 20s ease-in-out infinite;
}
.scn-dora-cries-on-sofa .dc-sofa {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1f141f 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 15% 15%;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.8);
  transform-origin: bottom center;
  animation: dc-sofasettle 8s ease-in-out infinite;
}
.scn-dora-cries-on-sofa .dc-figure {
  position: absolute; bottom: 25%; left: 30%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #2a1a2a 0%, #120a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dc-sob 4s ease-in-out infinite;
}
.scn-dora-cries-on-sofa .dc-handkerchief {
  position: absolute; bottom: 28%; left: 40%; width: 10%; height: 8%;
  background: radial-gradient(circle, #c8b8a0 0%, #a89880 100%);
  border-radius: 30% 30% 40% 40%;
  opacity: 0.6;
  animation: dc-tremble 2s ease-in-out infinite;
}
.scn-dora-cries-on-sofa .dc-candle {
  position: absolute; bottom: 35%; right: 15%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #f0c060 0%, #c89040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 15px rgba(240,192,96,0.5), 0 0 80px 30px rgba(240,192,96,0.15);
  animation: dc-flame 3s ease-in-out infinite;
}
.scn-dora-cries-on-sofa .dc-curtain {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #1a0a1a 0%, #0a050a 100%);
  border-radius: 0 0 0 30%;
  opacity: 0.7;
  animation: dc-curtainsway 12s ease-in-out infinite alternate;
}
.scn-dora-cries-on-sofa .dc-glint {
  position: absolute; top: 20%; left: 10%; width: 2%; height: 2%;
  background: radial-gradient(circle, rgba(200,180,160,0.8) 0%, transparent 100%);
  border-radius: 50%;
  animation: dc-glintmove 6s ease-in-out infinite;
}
@keyframes dc-bgpulse { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes dc-sofasettle { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-2px) scale(1.01) } 50% { transform: translateY(0) scale(1) } 75% { transform: translateY(-1px) scale(1.005) } 100% { transform: translateY(0) scale(1) } }
@keyframes dc-sob { 0% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-3px) rotate(2deg) } 40% { transform: translateY(0) rotate(0deg) } 60% { transform: translateY(-2px) rotate(-2deg) } 80% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(1px) rotate(0deg) } }
@keyframes dc-tremble { 0% { transform: translate(0, 0) rotate(0deg) } 25% { transform: translate(1px, -1px) rotate(3deg) } 50% { transform: translate(-1px, 0) rotate(-2deg) } 75% { transform: translate(0, 1px) rotate(2deg) } 100% { transform: translate(0, 0) rotate(0deg) } }
@keyframes dc-flame { 0% { height: 8%; opacity: 0.8 } 25% { height: 10%; opacity: 1 } 50% { height: 7%; opacity: 0.7 } 75% { height: 9%; opacity: 0.9 } 100% { height: 8%; opacity: 0.85 } }
@keyframes dc-curtainsway { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes dc-glintmove { 0% { opacity: 0; transform: translate(0, 0) } 25% { opacity: 1; transform: translate(10px, -5px) } 50% { opacity: 0.5; transform: translate(20px, -10px) } 75% { opacity: 0.8; transform: translate(15px, -3px) } 100% { opacity: 0; transform: translate(30px, 0) } }

.scn-dora-fears-poverty {
  background: linear-gradient(180deg, #1c1428 0%, #2a1a30 50%, #0e0a14 100%), radial-gradient(ellipse at 50% 70%, #3a2040 0%, transparent 60%);
}
.scn-dora-fears-poverty .df-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #21162a 0%, #140c1a 100%);
}
.scn-dora-fears-poverty .df-table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 15%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-dora-fears-poverty .df-figure1 {
  position: absolute; bottom: 25%; left: 30%; width: 22%; height: 45%;
  background: linear-gradient(180deg, #2a1a2a 0%, #150a15 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: df-embrace 5s ease-in-out infinite;
}
.scn-dora-fears-poverty .df-figure2 {
  position: absolute; bottom: 28%; left: 45%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #1f1420 0%, #100a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: df-embrace2 5s ease-in-out infinite alternate;
}
.scn-dora-fears-poverty .df-dog {
  position: absolute; bottom: 15%; left: 55%; width: 12%; height: 10%;
  background: linear-gradient(180deg, #2a1a1a 0%, #140a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: df-wag 3s ease-in-out infinite;
}
.scn-dora-fears-poverty .df-candle {
  position: absolute; bottom: 30%; left: 50%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #f0b050 0%, #c08030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(240,176,80,0.5), 0 0 60px 16px rgba(240,176,80,0.2);
  animation: df-candleflicker 2s ease-in-out infinite;
}
.scn-dora-fears-poverty .df-ember {
  position: absolute; bottom: 15%; left: 10%; width: 15%; height: 15%;
  background: radial-gradient(circle at 50% 80%, #ff6633 0%, #cc4400 60%, #4a1a00 100%);
  border-radius: 50%;
  opacity: 0.6;
  animation: df-emberglow 4s ease-in-out infinite alternate;
}
@keyframes df-embrace { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes df-embrace2 { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes df-wag { 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 df-candleflicker { 0% { height: 10%; opacity: 0.7 } 20% { height: 12%; opacity: 1 } 40% { height: 8%; opacity: 0.6 } 60% { height: 11%; opacity: 0.9 } 80% { height: 9%; opacity: 0.75 } 100% { height: 10%; opacity: 0.7 } }
@keyframes df-emberglow { 0% { opacity: 0.4; transform: scale(0.9) } 50% { opacity: 0.8; transform: scale(1.1) } 100% { opacity: 0.5; transform: scale(0.95) } }

.scn-planning-micawber-exposé { background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 40%, #b0a090 100%), radial-gradient(ellipse at 40% 30%, #fff8e8 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-planning-micawber-exposé .wall-back { position: absolute; inset: 0 0 30% 0; background: linear-gradient(135deg, #e0d0b8 0%, #c8b8a0 60%, #b8a890 100%); }
.scn-planning-micawber-exposé .window-harsh { position: absolute; top: 8%; right: 12%; width: 22%; height: 40%; background: linear-gradient(135deg, #fffbe0 0%, #fff0c0 60%, #ffe8a0 100%); border: 4px solid #8a7a6a; border-radius: 4px; box-shadow: 0 0 60px 30px rgba(255,240,180,.5), inset 0 0 40px rgba(255,255,200,.3); animation: pmw-window 6s ease-in-out infinite alternate; }
.scn-planning-micawber-exposé .desk-wide { position: absolute; bottom: 18%; left: 5%; right: 5%; height: 28%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 40%, #2a1a0a 100%); border-radius: 0 0 8px 8px; box-shadow: 0 8px 20px rgba(0,0,0,.5); transform-origin: bottom center; animation: pmw-desk 12s ease-in-out infinite; }
.scn-planning-micawber-exposé .figure-aunt { position: absolute; bottom: 22%; left: 28%; width: 36px; height: 68px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 60%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pmw-aunt 4s ease-in-out infinite; }
.scn-planning-micawber-exposé .figure-narrator { position: absolute; bottom: 22%; left: 48%; width: 28px; height: 60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 60%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pmw-narr 3.5s ease-in-out infinite; }
.scn-planning-micawber-exposé .papers-scatter { position: absolute; bottom: 28%; left: 38%; width: 40px; height: 30px; background: linear-gradient(135deg, #f8f0e0 0%, #e8dcc8 60%, #d8c8b0 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); transform: rotate(-8deg); animation: pmw-papers 5s ease-in-out infinite; }
.scn-planning-micawber-exposé .candle-glow { position: absolute; bottom: 30%; left: 60%; width: 8px; height: 14px; background: radial-gradient(circle at 50% 20%, #ffe8a0 0%, #d08020 60%, #8a5010 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 12px rgba(255,200,80,.5), 0 0 60px 24px rgba(255,180,60,.2); animation: pmw-candle 2.5s ease-in-out infinite alternate; }
.scn-planning-micawber-exposé .shadow-stripe { position: absolute; top: 0; left: 38%; width: 20%; height: 100%; background: linear-gradient(135deg, rgba(0,0,0,.15) 0%, transparent 40%, rgba(0,0,0,.1) 100%); transform: skewX(-12deg); animation: pmw-stripe 8s ease-in-out infinite alternate; }
@keyframes pmw-window { 0% { opacity: .7; box-shadow: 0 0 40px 20px rgba(255,240,180,.3); } 50% { opacity: 1; box-shadow: 0 0 80px 40px rgba(255,240,180,.6); } 100% { opacity: .8; box-shadow: 0 0 50px 25px rgba(255,240,180,.4); } }
@keyframes pmw-desk { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes pmw-aunt { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pmw-narr { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(1deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pmw-papers { 0%,100% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes pmw-candle { 0% { transform: scaleY(1) scaleX(1); opacity: .8; } 50% { transform: scaleY(1.15) scaleX(1.05); opacity: 1; } 100% { transform: scaleY(.95) scaleX(.98); opacity: .85; } }
@keyframes pmw-stripe { 0% { transform: skewX(-12deg) translateX(-2px); opacity: .6; } 50% { transform: skewX(-12deg) translateX(2px); opacity: 1; } 100% { transform: skewX(-12deg) translateX(-1px); opacity: .7; } }

.scn-dora-urges-them-to-go { background: linear-gradient(180deg, #f8e8d0 0%, #e8d0b0 40%, #d8c0a0 100%), radial-gradient(ellipse at 60% 50%, #fff0d0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-dora-urges-them-to-go .wall-soft { position: absolute; inset: 0 0 35% 0; background: linear-gradient(135deg, #f0e0c8 0%, #e0d0b8 50%, #d0c0a8 100%); }
.scn-dora-urges-them-to-go .couch-plush { position: absolute; bottom: 12%; left: 10%; right: 15%; height: 40%; background: linear-gradient(180deg, #c8a878 0%, #a88858 40%, #886838 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 8px 30px rgba(0,0,0,.3); animation: dot-couch 10s ease-in-out infinite; }
.scn-dora-urges-them-to-go .figure-dora { position: absolute; bottom: 16%; left: 28%; width: 44px; height: 50px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a880 40%, #a88868 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 -4px 12px rgba(0,0,0,.2); animation: dot-dora 5s ease-in-out infinite; }
.scn-dora-urges-them-to-go .figure-aunt-stand { position: absolute; bottom: 20%; right: 22%; width: 32px; height: 62px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dot-aunt 6s ease-in-out infinite; }
.scn-dora-urges-them-to-go .figure-narr-stand { position: absolute; bottom: 20%; right: 36%; width: 26px; height: 56px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 60%, #1a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dot-narr 5.5s ease-in-out infinite; }
.scn-dora-urges-them-to-go .blanket-drape { position: absolute; bottom: 14%; left: 22%; width: 36%; height: 22%; background: linear-gradient(135deg, #e8d0b0 0%, #d0b890 40%, #b8a078 100%); border-radius: 30% 50% 20% 40% / 40% 60% 20% 40%; transform: rotate(-4deg); animation: dot-blanket 8s ease-in-out infinite; }
.scn-dora-urges-them-to-go .pillow-round { position: absolute; bottom: 28%; left: 18%; width: 30px; height: 22px; background: linear-gradient(135deg, #f0e0c8 0%, #e0d0b8 60%, #d0c0a8 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,.15); animation: dot-pillow 7s ease-in-out infinite alternate; }
.scn-dora-urges-them-to-go .glow-warm { position: absolute; top: 12%; left: 40%; width: 120px; height: 120px; background: radial-gradient(circle, rgba(255,230,180,.4) 0%, rgba(255,210,150,.2) 40%, transparent 70%); border-radius: 50%; animation: dot-glow 6s ease-in-out infinite alternate; }
.scn-dora-urges-them-to-go .flower-vase { position: absolute; top: 10%; right: 8%; width: 20px; height: 30px; background: linear-gradient(180deg, #c8a080 0%, #a08060 60%, #806040 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,.2); animation: dot-vase 9s ease-in-out infinite; }
@keyframes dot-couch { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } }
@keyframes dot-dora { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dot-aunt { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-1px) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dot-narr { 0% { transform: translateX(0) rotate(0deg); } 35% { transform: translateX(2px) rotate(1.5deg); } 65% { transform: translateX(-1px) rotate(-.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dot-blanket { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes dot-pillow { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.03) scaleY(.97); } 100% { transform: scaleX(.98) scaleY(1.02); } }
@keyframes dot-glow { 0% { opacity: .5; transform: scale(.9); } 50% { opacity: .8; transform: scale(1.1); } 100% { opacity: .6; transform: scale(1); } }
@keyframes dot-vase { 0%,100% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } }

.scn-uriah-greets-miss-trotwood { background: linear-gradient(180deg, #1a1828 0%, #2a2038 30%, #3a2848 60%, #2a2038 100%), radial-gradient(ellipse at 30% 40%, #4a3860 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-uriah-greets-miss-trotwood .bg-deep { position: absolute; inset: 0; background: linear-gradient(135deg, #1a1828 0%, #2a2038 50%, #1a1828 100%); }
.scn-uriah-greets-miss-trotwood .floor-dark { position: absolute; bottom: 0; left: 0; right: 0; height: 22%; background: linear-gradient(180deg, #2a2030 0%, #1a1020 60%, #0a0810 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-uriah-greets-miss-trotwood .desk-heavy { position: absolute; bottom: 14%; left: 30%; right: 10%; height: 26%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 60%, #0a0000 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.5); transform-origin: bottom center; animation: ugt-desk 14s ease-in-out infinite; }
.scn-uriah-greets-miss-trotwood .figure-uriah { position: absolute; bottom: 16%; left: 38%; width: 28px; height: 72px; background: linear-gradient(180deg, #3a3038 0%, #1a1018 50%, #0a080a 100%); border-radius: 35% 35% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ugt-uriah 5s ease-in-out infinite; }
.scn-uriah-greets-miss-trotwood .figure-trotwood { position: absolute; bottom: 18%; right: 18%; width: 34px; height: 60px; background: linear-gradient(180deg, #4a3840 0%, #2a1820 50%, #1a0810 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ugt-trotwood 6s ease-in-out infinite; }
.scn-uriah-greets-miss-trotwood .lamp-dim { position: absolute; top: 20%; left: 25%; width: 16px; height: 24px; background: radial-gradient(circle at 50% 30%, #c8a060 0%, #8a6830 50%, #4a3010 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 40px 16px rgba(200,160,80,.3), 0 0 80px 30px rgba(200,160,80,.1); animation: ugt-lamp 4s ease-in-out infinite alternate; }
.scn-uriah-greets-miss-trotwood .hand-reaching { position: absolute; bottom: 38%; left: 44%; width: 10px; height: 18px; background: linear-gradient(180deg, #c8b0a0 0%, #a89080 60%, #887068 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform: rotate(15deg); transform-origin: bottom center; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ugt-hand 4.5s ease-in-out infinite alternate; }
.scn-uriah-greets-miss-trotwood .shadow-pool { position: absolute; bottom: 8%; left: 20%; right: 20%; height: 20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%); animation: ugt-pool 10s ease-in-out infinite alternate; }
@keyframes ugt-desk { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.008); } }
@keyframes ugt-uriah { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(1px) rotate(1.5deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 80% { transform: translateX(1px) rotate(.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ugt-trotwood { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(-1.5deg); } 60% { transform: translateX(1px) rotate(.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ugt-lamp { 0% { opacity: .6; box-shadow: 0 0 30px 12px rgba(200,160,80,.2); } 50% { opacity: .9; box-shadow: 0 0 60px 24px rgba(200,160,80,.4); } 100% { opacity: .7; box-shadow: 0 0 40px 16px rgba(200,160,80,.25); } }
@keyframes ugt-hand { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(12deg) translateY(-1px); } }
@keyframes ugt-pool { 0% { opacity: .5; transform: scaleY(1); } 50% { opacity: .8; transform: scaleY(1.1); } 100% { opacity: .6; transform: scaleY(.95); } }

.scn-micawber-begins-exposé { background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 30%, #c0b090 60%, #a89878 100%), radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-micawber-begins-exposé .bg-bright { position: absolute; inset: 0 0 25% 0; background: linear-gradient(135deg, #f8ecd8 0%, #e8dcc8 50%, #d8ccb8 100%); }
.scn-micawber-begins-exposé .window-stripe { position: absolute; top: 0; left: 30%; width: 18%; height: 100%; background: linear-gradient(180deg, rgba(255,245,210,.4) 0%, rgba(255,245,210,.1) 60%, transparent 100%); transform: skewX(-8deg); animation: mbe-stripe 7s ease-in-out infinite alternate; }
.scn-micawber-begins-exposé .figure-micawber { position: absolute; bottom: 12%; left: 50%; width: 44px; height: 80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 50%, #0a0400 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(-50%); transform-origin: bottom center; animation: mbe-micawber 4s ease-in-out infinite; }
.scn-micawber-begins-exposé .paper-scroll { position: absolute; bottom: 28%; left: 48%; width: 28px; height: 36px; background: linear-gradient(135deg, #f8f0e0 0%, #e8dcc8 50%, #d8c8b0 100%); border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.3); transform: rotate(-6deg); animation: mbe-scroll 4.5s ease-in-out infinite; }
.scn-micawber-begins-exposé .desk-tilt { position: absolute; bottom: 8%; left: 25%; right: 20%; height: 18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #1a0a00 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.4); transform: perspective(200px) rotateX(2deg); animation: mbe-desk 12s ease-in-out infinite; }
.scn-micawber-begins-exposé .chair-tipped { position: absolute; bottom: 6%; right: 12%; width: 24px; height: 36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; transform: rotate(-18deg); transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: mbe-chair 8s ease-in-out infinite; }
.scn-micawber-begins-exposé .shadow-lattice { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: repeating-linear-gradient(90deg, rgba(0,0,0,.06) 0px, rgba(0,0,0,.02) 12px, transparent 12px, transparent 24px); animation: mbe-lattice 15s linear infinite; }
@keyframes mbe-stripe { 0% { transform: skewX(-8deg) translateX(-3px); opacity: .5; } 50% { transform: skewX(-8deg) translateX(3px); opacity: .9; } 100% { transform: skewX(-8deg) translateX(0); opacity: .6; } }
@keyframes mbe-micawber { 0% { transform: translateX(-50%) rotate(-1deg); } 25% { transform: translateX(-48%) rotate(1.5deg); } 50% { transform: translateX(-50%) rotate(-1.5deg); } 75% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes mbe-scroll { 0%,100% { transform: rotate(-6deg) translateY(0); } 30% { transform: rotate(-3deg) translateY(-4px); } 60% { transform: rotate(-8deg) translateY(-2px); } }
@keyframes mbe-desk { 0%,100% { transform: perspective(200px) rotateX(2deg) scaleY(1); } 50% { transform: perspective(200px) rotateX(2.5deg) scaleY(1.005); } }
@keyframes mbe-chair { 0% { transform: rotate(-16deg) translateY(0); } 30% { transform: rotate(-20deg) translateY(-3px); } 60% { transform: rotate(-14deg) translateY(-1px); } 100% { transform: rotate(-16deg) translateY(0); } }
@keyframes mbe-lattice { 0% { background-position: 0 0; } 100% { background-position: 48px 0; } }

.scn-little-elephant-butt { background: linear-gradient(180deg, #f5e6c8 0%, #fff8dc 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 30%, transparent 70%); }
.scn-little-elephant-butt .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0d9b5 0%, #e8c99b 100%); }
.scn-little-elephant-butt .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8a882 0%, #b8946d 100%); }
.scn-little-elephant-butt .chair { position:absolute; bottom:25%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #8b5e3c 0%, #6b4226 100%); border-radius:5px; animation: leb-chair 3s ease-in-out infinite alternate; }
.scn-little-elephant-butt .figure { position:absolute; bottom:30%; left:35%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 40%, #f0c0a0 0%, #d4a07a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: leb-bounce 2s ease-in-out infinite; }
.scn-little-elephant-butt .elephant-toy { position:absolute; bottom:30%; left:45%; width:25px; height:20px; background: linear-gradient(180deg, #a0a0a0 0%, #707070 100%); border-radius:50% 50% 40% 40% / 30% 40% 30% 30%; transform:rotate(-10deg); animation: leb-wobble 4s ease-in-out infinite; }
.scn-little-elephant-butt .window { position:absolute; top:15%; right:20%; width:50px; height:70px; background:rgba(255,255,255,0.8); border:2px solid #8b5e3c; border-radius:3px; animation: leb-window-glow 8s ease-in-out infinite alternate; }
.scn-little-elephant-butt .sunbeam { position:absolute; top:5%; left:20%; width:120px; height:10px; background: linear-gradient(90deg, transparent, rgba(255,255,220,0.4), transparent); filter:blur(6px); animation: leb-beam 12s linear infinite; }
@keyframes leb-chair { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-2deg); } }
@keyframes leb-bounce { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes leb-wobble { 0% { transform:rotate(-10deg); } 50% { transform:rotate(-5deg); } 100% { transform:rotate(-10deg); } }
@keyframes leb-window-glow { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes leb-beam { 0% { transform:translateX(-50px); } 100% { transform:translateX(100vw); } }

.scn-ham-asks-for-message { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 70%); }
.scn-ham-asks-for-message .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-ham-asks-for-message .table { position:absolute; bottom:20%; left:25%; right:25%; height:5px; background:#4a3a2a; border-radius:2px; box-shadow:0 2px 8px rgba(0,0,0,0.5); }
.scn-ham-asks-for-message .candle { position:absolute; bottom:25%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #f0d0a0 0%, #d0b090 100%); border-radius:2px; animation: haq-candle 3s ease-in-out infinite alternate; }
.scn-ham-asks-for-message .figure-left { position:absolute; bottom:20%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: haq-motion 4s ease-in-out infinite; }
.scn-ham-asks-for-message .figure-right { position:absolute; bottom:20%; right:30%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: haq-motion 4s ease-in-out infinite reverse; }
.scn-ham-asks-for-message .handshake-glow { position:absolute; bottom:32%; left:48%; width:20px; height:10px; background:radial-gradient(ellipse, rgba(255,200,100,0.6) 0%, transparent 70%); border-radius:50%; animation: haq-glow 2s ease-in-out infinite alternate; }
@keyframes haq-candle { 0% { height:30px; } 50% { height:28px; } 100% { height:30px; } }
@keyframes haq-motion { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-2px) rotate(0deg); } 100% { transform:translateY(0) rotate(2deg); } }
@keyframes haq-glow { 0% { opacity:.4; transform:scale(1); } 50% { opacity:.8; transform:scale(1.2); } 100% { opacity:.4; transform:scale(1); } }

.scn-ham-sends-final-duty { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 100%), radial-gradient(ellipse at 70% 30%, #2a2a5a 0%, transparent 60%); }
.scn-ham-sends-final-duty .sky-night { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 100%); }
.scn-ham-sends-final-duty .moon { position:absolute; top:15%; right:25%; width:40px; height:40px; background:radial-gradient(circle, #e0e0f0 0%, #b0b0d0 70%); border-radius:50%; box-shadow:0 0 30px 10px rgba(200,200,255,0.3); animation: hsf-moon-glow 6s ease-in-out infinite alternate; }
.scn-ham-sends-final-duty .gate { position:absolute; bottom:20%; left:30%; width:60px; height:100px; border-left:4px solid #4a4a6a; border-right:4px solid #4a4a6a; border-bottom:4px solid #4a4a6a; background:transparent; animation: hsf-gate 10s ease-in-out infinite; }
.scn-ham-sends-final-duty .figure-silhouette { position:absolute; bottom:20%; left:40%; width:25px; height:60px; background:#0a0a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hsf-figure 5s ease-in-out infinite; }
.scn-ham-sends-final-duty .path { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius:30% 70% 50% 50% / 0 0 50% 50%; }
.scn-ham-sends-final-duty .stars { position:absolute; top:10%; left:0; right:0; height:30%; background: radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 50% 60%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 80% 20%, #fff 0%, transparent 100%); animation: hsf-twinkle 4s ease-in-out infinite; }
.scn-ham-sends-final-duty .cloud-silhouette { position:absolute; top:20%; left:0; width:100px; height:20px; background:rgba(255,255,255,0.05); border-radius:50%; filter:blur(10px); animation: hsf-cloud 30s linear infinite; }
@keyframes hsf-moon-glow { 0% { box-shadow:0 0 20px 5px rgba(200,200,255,0.3); } 50% { box-shadow:0 0 40px 15px rgba(200,200,255,0.5); } 100% { box-shadow:0 0 20px 5px; } }
@keyframes hsf-gate { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes hsf-figure { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes hsf-twinkle { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.5; } }
@keyframes hsf-cloud { 0% { transform:translateX(-100px); } 100% { transform:translateX(120vw); } }

.scn-mrs-gummidge-happy { background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 70%, #6a3a1a 0%, transparent 70%); }
.scn-mrs-gummidge-happy .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-mrs-gummidge-happy .hearth { position:absolute; bottom:10%; left:30%; right:30%; height:80px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:20px 20px 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-mrs-gummidge-happy .fire { position:absolute; bottom:15%; left:40%; right:40%; height:40px; background:radial-gradient(ellipse at 50% 100%, #ff8c00 0%, #ff6000 30%, transparent 70%); animation: mgh-fire 2s ease-in-out infinite alternate; }
.scn-mrs-gummidge-happy .figure-mr-p { position:absolute; bottom:20%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: mgh-motion 5s ease-in-out infinite; }
.scn-mrs-gummidge-happy .figure-mrs-g { position:absolute; bottom:20%; right:25%; width:35px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: mgh-motion 5s ease-in-out infinite reverse; }
.scn-mrs-gummidge-happy .hands-clasped { position:absolute; bottom:32%; left:48%; width:15px; height:20px; background:radial-gradient(ellipse, rgba(200,150,100,0.6) 0%, transparent 70%); border-radius:50%; animation: mgh-clasp 4s ease-in-out infinite; }
.scn-mrs-gummidge-happy .glow-warm { position:absolute; bottom:10%; left:0; right:0; height:40%; background:radial-gradient(ellipse at 50% 100%, rgba(255,100,0,0.2) 0%, transparent 70%); animation: mgh-glow 3s ease-in-out infinite alternate; }
@keyframes mgh-fire { 0% { height:40px; opacity:.8; } 50% { height:50px; opacity:1; } 100% { height:40px; opacity:.8; } }
@keyframes mgh-motion { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes mgh-clasp { 0% { transform:scale(1); } 50% { transform:scale(1.1); } 100% { transform:scale(1); } }
@keyframes mgh-glow { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }

/* waiter-traddles-obscurity – firelit, funny */
.scn-waiter-traddles-obscurity {
  background:
    linear-gradient(180deg, #2b1a0e, #4a2b1a 40%, #7a4a2a 70%, #8a5a3a),
    radial-gradient(ellipse at 50% 90%, #d08030 0%, transparent 80%);
}
.scn-waiter-traddles-obscurity .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, transparent, #3a2010 60%, #2a1508);
  animation: wto-wall 12s ease-in-out infinite alternate;
}
.scn-waiter-traddles-obscurity .fireplace {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 110px;
  background: linear-gradient(180deg, #5a3a2a, #3a2010);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px #f08020, 0 6px 12px rgba(0,0,0,0.6);
}
.scn-waiter-traddles-obscurity .waiter {
  position: absolute; bottom: 20%; left: 40%;
  width: 22px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wto-bob 1.8s ease-in-out infinite;
}
.scn-waiter-traddles-obscurity .table {
  position: absolute; bottom: 28%; left: 35%;
  width: 90px; height: 12px;
  background: linear-gradient(180deg, #6a4a2a, #4a3018);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-waiter-traddles-obscurity .candle {
  position: absolute; bottom: 35%; left: 37%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c080, #b08040);
  border-radius: 2px;
  box-shadow: 0 -4px 12px #f0d080;
  animation: wto-flicker 0.8s ease-in-out infinite alternate;
}
.scn-waiter-traddles-obscurity .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 65%, #f0a040 0%, transparent 60%);
  opacity: 0.5;
  animation: wto-pulse 4s ease-in-out infinite alternate;
}
.scn-waiter-traddles-obscurity .smoke {
  position: absolute; top: 5%; left: 45%;
  width: 30px; height: 20px;
  background: radial-gradient(circle, rgba(200,160,120,0.4) 0%, transparent 80%);
  filter: blur(6px);
  animation: wto-smoke 6s ease-in-out infinite;
}
@keyframes wto-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes wto-bob { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes wto-flicker { 0% { box-shadow: 0 -2px 6px #e0b060; height: 20px } 100% { box-shadow: 0 -4px 16px #f0d080; height: 22px } }
@keyframes wto-pulse { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes wto-smoke { 0% { transform: translate(0,0) scale(1); opacity: 0.6 } 50% { transform: translate(-10px,-20px) scale(1.3); opacity: 0.2 } 100% { transform: translate(-5px,-40px) scale(1.5); opacity: 0 } }

/* waiter-dismisses-traddles – firelit, dismissive */
.scn-waiter-dismisses-traddles {
  background:
    linear-gradient(180deg, #2b1a0e, #4a2b1a 40%, #7a4a2a 70%, #8a5a3a),
    radial-gradient(ellipse at 50% 90%, #d08030 0%, transparent 80%);
}
.scn-waiter-dismisses-traddles .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, transparent, #3a2010 60%, #2a1508);
  animation: wdt-wall 12s ease-in-out infinite alternate;
}
.scn-waiter-dismisses-traddles .fireplace {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 90px;
  background: linear-gradient(180deg, #5a3a2a, #3a2010);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px #f08020, 0 6px 12px rgba(0,0,0,0.6);
}
.scn-waiter-dismisses-traddles .waiter {
  position: absolute; bottom: 20%; left: 45%;
  width: 22px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wdt-bob 1.8s ease-in-out infinite;
}
.scn-waiter-dismisses-traddles .arm {
  position: absolute; bottom: 30%; left: 55%; transform-origin: bottom left;
  width: 40px; height: 10px;
  background: linear-gradient(180deg, #2a1a1a, #1a0a0a);
  border-radius: 20% 80% 40% 40%;
  animation: wdt-sweep 2s ease-in-out infinite alternate;
}
.scn-waiter-dismisses-traddles .hand {
  position: absolute; bottom: 26%; left: 78%;
  width: 16px; height: 18px;
  background: radial-gradient(ellipse, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 30% 30%;
  animation: wdt-dismiss 2s ease-in-out infinite alternate;
}
.scn-waiter-dismisses-traddles .candle {
  position: absolute; bottom: 35%; left: 30%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #e0c080, #b08040);
  border-radius: 2px;
  box-shadow: 0 -4px 12px #f0d080;
  animation: wdt-flicker 0.8s ease-in-out infinite alternate;
}
.scn-waiter-dismisses-traddles .shadow {
  position: absolute; bottom: 0; left: 40%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6), transparent);
  animation: wdt-shadow 3s ease-in-out infinite alternate;
}
@keyframes wdt-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes wdt-bob { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes wdt-sweep { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }
@keyframes wdt-dismiss { 0% { transform: translate(0,0) rotate(0deg) scale(1) } 100% { transform: translate(5px,-2px) rotate(10deg) scale(1.1) } }
@keyframes wdt-flicker { 0% { box-shadow: 0 -2px 6px #e0b060; height: 20px } 100% { box-shadow: 0 -4px 16px #f0d080; height: 22px } }
@keyframes wdt-shadow { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }

/* finding-traddles-chambers – dim interior, warm */
.scn-finding-traddles-chambers {
  background:
    linear-gradient(180deg, #1a1816, #2a221c 50%, #3a2a1a),
    radial-gradient(ellipse at 50% 100%, #4a3a2a, transparent);
}
.scn-finding-traddles-chambers .hall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent, #1a1410 70%);
  animation: ftc-hall 20s ease-in-out infinite alternate;
}
.scn-finding-traddles-chambers .door {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 120px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset -4px 0 8px #7a6a5a, 0 6px 12px rgba(0,0,0,0.6);
}
.scn-finding-traddles-chambers .nameplate {
  position: absolute; bottom: 68%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 10px;
  background: linear-gradient(180deg, #b0a090, #8a7a6a);
  border-radius: 2px;
  box-shadow: 0 1px 3px #d0c0b0;
}
.scn-finding-traddles-chambers .doorknob {
  position: absolute; bottom: 40%; left: 52%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #c0b0a0, #8a7a6a);
  border-radius: 50%;
}
.scn-finding-traddles-chambers .light-under {
  position: absolute; bottom: 0; left: 44%; width: 14%; height: 8%;
  background: linear-gradient(180deg, #e0c080, transparent);
  border-radius: 0 0 50% 50%;
  animation: ftc-light 2s ease-in-out infinite alternate;
}
.scn-finding-traddles-chambers .hand-groping {
  position: absolute; bottom: 25%; left: 38%;
  width: 18px; height: 20px;
  background: radial-gradient(ellipse, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40%;
  animation: ftc-reach 3s ease-in-out infinite;
}
.scn-finding-traddles-chambers .shadow {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.7), transparent);
  animation: ftc-shadow 3s ease-in-out infinite;
}
@keyframes ftc-hall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ftc-light { 0% { opacity: 0.2; transform: scaleY(0.8) } 100% { opacity: 0.6; transform: scaleY(1.2) } }
@keyframes ftc-reach { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) } }
@keyframes ftc-shadow { 0% { transform: translateX(0); opacity: 0.4 } 50% { transform: translateX(6px); opacity: 0.7 } 100% { transform: translateX(0); opacity: 0.5 } }

/* traddles-reunion-joy – bright interior, warm */
.scn-traddles-reunion-joy {
  background:
    linear-gradient(180deg, #f5eed9, #e8dcc8 30%, #dac8a8),
    radial-gradient(ellipse at 50% 30%, #fff8e8, transparent 70%);
}
.scn-traddles-reunion-joy .room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, #c8b898);
  animation: trj-room 10s ease-in-out infinite alternate;
}
.scn-traddles-reunion-joy .window {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #b8d0e0 0%, #e0f0ff 50%, #ffffff);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 40px #fffff0, 0 0 20px rgba(255,255,200,0.3);
  animation: trj-window 8s ease-in-out infinite alternate;
}
.scn-traddles-reunion-joy .copperfield {
  position: absolute; bottom: 25%; left: 38%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a, #1a1008);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: trj-embrace 4s ease-in-out infinite;
}
.scn-traddles-reunion-joy .traddles {
  position: absolute; bottom: 25%; left: 48%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: trj-embrace 4s ease-in-out infinite reverse;
}
.scn-traddles-reunion-joy .arms {
  position: absolute; bottom: 45%; left: 41%; width: 30px; height: 12px;
  background: radial-gradient(ellipse, #5a4a3a, #2a1a0a);
  border-radius: 50%;
  animation: trj-hug 4s ease-in-out infinite;
}
.scn-traddles-reunion-joy .sunbeam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 70%);
  animation: trj-beam 6s ease-in-out infinite alternate;
}
.scn-traddles-reunion-joy .joy {
  position: absolute; top: 10%; left: 50%; width: 100%; height: 80%;
  background: radial-gradient(circle at 10% 20%, #ffd080 0%, transparent 10%),
              radial-gradient(circle at 60% 50%, #ffc060 5%, transparent 10%),
              radial-gradient(circle at 80% 80%, #ffb040 0%, transparent 10%);
  filter: blur(2px);
  animation: trj-sparkle 3s ease-in-out infinite;
}
@keyframes trj-room { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes trj-window { 0% { background: linear-gradient(180deg, #b8d0e0, #d0e8f0); } 100% { background: linear-gradient(180deg, #e0f0ff, #ffffff); } }
@keyframes trj-embrace { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } }
@keyframes trj-hug { 0%,100% { transform: scaleX(0.8); } 50% { transform: scaleX(1.2); } }
@keyframes trj-beam { 0% { opacity: 0.2; transform: rotate(-2deg); } 100% { opacity: 0.6; transform: rotate(2deg); } }
@keyframes trj-sparkle { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); } }

/* Scene: micawber-reveals-plans (tense, dim interior) */
.scn-micawber-reveals-plans {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #2a2a40 70%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #2a2a40 0%, transparent 70%);
}
.scn-micawber-reveals-plans .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #1e1e32 60%, #0e0e1a 100%); 
  animation: mr-wall 12s ease-in-out infinite alternate;
}
.scn-micawber-reveals-plans .desk {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 22%; 
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 4% 4% 0 0; 
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-micawber-reveals-plans .candle {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 20px; 
  background: linear-gradient(180deg, #ffe0a0 0%, #d09050 100%); border-radius: 40% 40% 10% 10%; 
  box-shadow: 0 0 20px 8px rgba(255,176,80,0.5), 0 0 40px 16px rgba(255,176,80,0.2); 
  animation: mr-candle 2s ease-in-out infinite;
}
.scn-micawber-reveals-plans .figure-micawber {
  position: absolute; bottom: 8%; left: 30%; width: 24px; height: 50px; 
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: mr-gesticulate 3.5s ease-in-out infinite;
}
.scn-micawber-reveals-plans .figure-mrs {
  position: absolute; bottom: 8%; right: 28%; width: 20px; height: 42px; 
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e08 100%); 
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin: bottom center;
  animation: mr-sway 4s ease-in-out infinite;
}
.scn-micawber-reveals-plans .shadow {
  position: absolute; bottom: 8%; left: 25%; width: 80px; height: 50px; 
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 90%); 
  filter: blur(6px); animation: mr-shadow 5s ease-in-out infinite;
}
@keyframes mr-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mr-candle { 0%,100% { transform: scaleY(1) rotate(0deg); box-shadow: 0 0 20px 8px rgba(255,176,80,0.5); } 50% { transform: scaleY(1.05) rotate(1deg); box-shadow: 0 0 30px 12px rgba(255,176,80,0.8); } }
@keyframes mr-gesticulate { 0% { transform: translateX(0) rotate(-2deg) scaleY(1); } 30% { transform: translateX(8px) rotate(3deg) scaleY(1.02); } 60% { transform: translateX(-4px) rotate(-1deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(-2deg) scaleY(1); } }
@keyframes mr-sway { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-2deg); } }
@keyframes mr-shadow { 0%,100% { transform: scaleX(1) scaleY(1); opacity: 0.7; } 50% { transform: scaleX(1.1) scaleY(0.9); opacity: 0.9; } }

/* Scene: micawber-apology-and-io (warm, dim interior) */
.scn-micawber-apology-and-io {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #4a3a2a 70%, #2a1a10 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-micawber-apology-and-io .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 60%, #1a0e08 100%);
  animation: ma-wall 10s ease-in-out infinite alternate;
}
.scn-micawber-apology-and-io .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; 
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-micawber-apology-and-io .candle {
  position: absolute; bottom: 28%; left: 28%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d09050 100%); border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 16px 6px rgba(255,176,80,0.6), 0 0 32px 12px rgba(255,176,80,0.2);
  animation: ma-candle 2.5s ease-in-out infinite;
}
.scn-micawber-apology-and-io .figure-micawber {
  position: absolute; bottom: 10%; left: 32%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ma-bow 4s ease-in-out infinite;
}
.scn-micawber-apology-and-io .figure-traddles {
  position: absolute; bottom: 10%; right: 30%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: ma-nod 5s ease-in-out infinite;
}
.scn-micawber-apology-and-io .document {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: ma-doc 6s ease-in-out infinite;
}
@keyframes ma-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ma-candle { 0%,100% { transform: scaleY(1) rotate(0deg); box-shadow: 0 0 16px 6px rgba(255,176,80,0.6); } 50% { transform: scaleY(1.03) rotate(1deg); box-shadow: 0 0 24px 10px rgba(255,176,80,0.8); } }
@keyframes ma-bow { 0%,100% { transform: translateX(0) rotate(2deg) scaleY(1); } 50% { transform: translateX(4px) rotate(-15deg) scaleY(0.9); } }
@keyframes ma-nod { 0%,100% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(3deg) scaleY(1.01); } 75% { transform: rotate(-3deg) scaleY(0.99); } }
@keyframes ma-doc { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }

/* Scene: iou-signing-ceremony (warm, dim interior) */
.scn-iou-signing-ceremony {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #4a3a2a 70%, #2a1a10 100%), radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 70%);
}
.scn-iou-signing-ceremony .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 60%, #1a0e08 100%);
  animation: io-wall 8s ease-in-out infinite alternate;
}
.scn-iou-signing-ceremony .desk {
  position: absolute; bottom: 8%; left: 8%; right: 8%; height: 24%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-iou-signing-ceremony .paper {
  position: absolute; bottom: 22%; left: 36%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #f5e6c8 0%, #e0d0b0 100%); border: 1px solid #a08060; 
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: io-paper 4s ease-in-out infinite;
}
.scn-iou-signing-ceremony .ink {
  position: absolute; bottom: 28%; right: 28%; width: 12px; height: 14px;
  background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: io-ink 6s ease-in-out infinite;
}
.scn-iou-signing-ceremony .pen {
  position: absolute; bottom: 26%; left: 38%; width: 24px; height: 6px;
  background: linear-gradient(90deg, #8a7a6a 0%, #c0a080 60%, #8a7a6a 100%); border-radius: 40% 10% 10% 40%;
  transform-origin: 100% 50%; transform: rotate(30deg); animation: io-pen 3s ease-in-out infinite;
}
.scn-iou-signing-ceremony .figure-micawber {
  position: absolute; bottom: 8%; left: 28%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: io-figure-m 5s ease-in-out infinite;
}
.scn-iou-signing-ceremony .figure-traddles {
  position: absolute; bottom: 8%; right: 26%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: io-figure-t 6s ease-in-out infinite;
}
@keyframes io-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes io-paper { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes io-ink { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-1px); } }
@keyframes io-pen { 0%,100% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } }
@keyframes io-figure-m { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-3deg) scaleY(1.02); } }
@keyframes io-figure-t { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(2deg); } }

/* Scene: davids-new-life-resolutions (calm, bright interior) */
.scn-davids-new-life-resolutions {
  background: linear-gradient(180deg, #f5f0e0 0%, #e8e0d0 50%, #d8d0c0 100%), radial-gradient(ellipse at 50% 100%, #fff6e0 0%, transparent 70%);
}
.scn-davids-new-life-resolutions .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0ecd8 0%, #e0d8c8 60%, #d0c8b8 100%);
  animation: dn-wall 15s ease-in-out infinite alternate;
}
.scn-davids-new-life-resolutions .window {
  position: absolute; top: 8%; left: 10%; width: 180px; height: 200px;
  background: linear-gradient(135deg, #c0d8e8 0%, #a0c0d8 50%, #c0d8e8 100%);
  border: 4px solid #8a7a6a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: dn-window 8s ease-in-out infinite;
}
.scn-davids-new-life-resolutions .sunlight {
  position: absolute; top: 8%; left: 10%; width: 180px; height: 200px;
  background: linear-gradient(135deg, rgba(255,255,200,0.2) 0%, rgba(255,255,200,0) 80%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 30% 100%, 0 60%); filter: blur(8px);
  animation: dn-sun 20s ease-in-out infinite alternate;
}
.scn-davids-new-life-resolutions .desk {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%); border-radius: 4% 4% 0 0;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.1);
}
.scn-davids-new-life-resolutions .papers {
  position: absolute; bottom: 22%; left: 40%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #f8f0e0 0%, #e8e0d0 100%); border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1); animation: dn-papers 12s ease-in-out infinite;
}
.scn-davids-new-life-resolutions .figure-david {
  position: absolute; bottom: 10%; left: 38%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: dn-david 6s ease-in-out infinite;
}
.scn-davids-new-life-resolutions .chair {
  position: absolute; bottom: 10%; right: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 4% 4%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: dn-chair 8s ease-in-out infinite;
}
@keyframes dn-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dn-window { 0%,100% { background: linear-gradient(135deg, #c0d8e8 0%, #a0c0d8 50%, #c0d8e8 100%); } 50% { background: linear-gradient(135deg, #d0e8f0 0%, #b0d0e0 50%, #d0e8f0 100%); } }
@keyframes dn-sun { 0% { transform: translateX(0) scaleX(1); opacity: 0.4; } 50% { transform: translateX(20px) scaleX(1.1); opacity: 0.6; } 100% { transform: translateX(-10px) scaleX(0.9); opacity: 0.3; } }
@keyframes dn-papers { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes dn-david { 0%,100% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(1deg); } }
@keyframes dn-chair { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.98); } }

.scn-peg-visit-concern { background: linear-gradient(180deg, #e8d5b0 0%, #c4a882 60%, #a0785a 100%), radial-gradient(ellipse at 30% 50%, #ffe0a0 0%, transparent 60%); }
.scn-peg-visit-concern .window { position: absolute; top: 15%; left: 10%; width: 100px; height: 120px; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); border: 4px solid #5a3e2e; box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 0 30px rgba(135,206,235,0.3); border-radius: 4px; animation: pvc-window 8s ease-in-out infinite alternate; }
.scn-peg-visit-concern .fireplace { position: absolute; bottom: 24%; left: 14%; width: 80px; height: 90px; background: linear-gradient(180deg, #6b3a2a 0%, #3a1a0a 100%); border-radius: 20px 20px 0 0; box-shadow: 0 0 30px #ff8c00, inset 0 0 20px #cc4400; animation: pvc-fire 3s ease-in-out infinite; }
.scn-peg-visit-concern .table { position: absolute; bottom: 20%; left: 45%; width: 120px; height: 40px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a1a 100%); border-radius: 10px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); transform: translateX(-50%); }
.scn-peg-visit-concern .figure-peg { position: absolute; bottom: 28%; right: 18%; width: 40px; height: 80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: pvc-peg 6s ease-in-out infinite; }
.scn-peg-visit-concern .figure-ham { position: absolute; bottom: 28%; left: 25%; width: 45px; height: 75px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%; transform: rotate(-10deg); animation: pvc-ham 7s ease-in-out infinite; }
.scn-peg-visit-concern .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 60% 60% 0 0 / 40% 40% 0 0; }
@keyframes pvc-window { 0% { opacity: .8; box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 0 30px rgba(135,206,235,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,200,0.7), 0 0 50px rgba(135,206,235,0.5); } 100% { opacity: .85; box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 0 30px rgba(135,206,235,0.3); } }
@keyframes pvc-fire { 0% { box-shadow: 0 0 20px #ff8c00, inset 0 0 20px #cc4400; } 50% { box-shadow: 0 0 40px #ffa500, inset 0 0 30px #ff6600; } 100% { box-shadow: 0 0 25px #ff8c00, inset 0 0 20px #cc4400; } }
@keyframes pvc-peg { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes pvc-ham { 0% { transform: translateX(0) rotate(-10deg); } 50% { transform: translateX(2px) rotate(-8deg); } 100% { transform: translateX(0) rotate(-10deg); } }

.scn-emly-learning-praise { background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 50%, #b8a884 100%), radial-gradient(ellipse at 70% 30%, #ffe083 0%, transparent 50%); }
.scn-emly-learning-praise .desk { position: absolute; bottom: 18%; left: 50%; width: 160px; height: 45px; background: linear-gradient(180deg, #8b6f47 0%, #6b4f2a 100%); border-radius: 8px; transform: translateX(-50%); box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3); }
.scn-emly-learning-praise .book { position: absolute; bottom: 28%; left: 42%; width: 40px; height: 30px; background: #5a3e2e; border-radius: 2px 8px 8px 2px; transform: rotate(-15deg); animation: elp-book 10s ease-in-out infinite alternate; }
.scn-emly-learning-praise .lamp { position: absolute; bottom: 30%; right: 35%; width: 20px; height: 40px; background: linear-gradient(180deg, #c0a060 0%, #8a6a30 100%); border-radius: 10px 10px 0 0; box-shadow: 0 0 30px #ffd700; animation: elp-lamp 4s ease-in-out infinite; }
.scn-emly-learning-praise .figure { position: absolute; bottom: 22%; left: 20%; width: 30px; height: 70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(2deg); animation: elp-figure 8s ease-in-out infinite; }
.scn-emly-learning-praise .blackboard { position: absolute; top: 12%; left: 30%; width: 180px; height: 100px; background: #2e4a2e; border: 4px solid #6b4a3a; border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: elp-board 12s ease-in-out infinite; }
.scn-emly-learning-praise .chair { position: absolute; bottom: 18%; left: 60%; width: 30px; height: 40px; background: #6b4a3a; border-radius: 5px; transform: translateX(-50%); }
@keyframes elp-book { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(5px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes elp-lamp { 0% { box-shadow: 0 0 20px #ffd700; } 50% { box-shadow: 0 0 40px #ffdd44; } 100% { box-shadow: 0 0 20px #ffd700; } }
@keyframes elp-figure { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes elp-board { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .9; } }

.scn-dolphin-bedroom-inn { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #3a2a5a 100%), radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 60%); }
.scn-dolphin-bedroom-inn .bed { position: absolute; bottom: 10%; left: 50%; width: 140px; height: 70px; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%); border-radius: 30px 30px 0 0; transform: translateX(-50%); box-shadow: inset 0 -15px 30px rgba(0,0,0,0.5); }
.scn-dolphin-bedroom-inn .window { position: absolute; top: 15%; left: 10%; width: 90px; height: 110px; background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%); border: 3px solid #4a3a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(100,150,200,0.3); animation: dbi-window 8s ease-in-out infinite alternate; }
.scn-dolphin-bedroom-inn .dolphin-door { position: absolute; right: 12%; top: 30%; width: 70px; height: 110px; background: #4a3a2a; border: 3px solid #6a5a4a; border-radius: 12px; box-shadow: inset 0 0 30px rgba(0,0,0,0.4); animation: dbi-door 12s ease-in-out infinite; }
.scn-dolphin-bedroom-inn .candle { position: absolute; bottom: 35%; left: 30%; width: 12px; height: 35px; background: linear-gradient(180deg, #a08060 0%, #6a5030 100%); border-radius: 6px; box-shadow: 0 0 30px #ffaa44; animation: dbi-candle 3s ease-in-out infinite; }
.scn-dolphin-bedroom-inn .tea-cup { position: absolute; bottom: 35%; left: 22%; width: 22px; height: 18px; background: #b0a090; border-radius: 0 0 50% 50%; transform: translateY(0); animation: dbi-cup 6s ease-in-out infinite; }
.scn-dolphin-bedroom-inn .rug { position: absolute; bottom: 0; left: 20%; right: 20%; height: 8%; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 50% 50% 0 0; }
@keyframes dbi-window { 0% { opacity: .5; box-shadow: inset 0 0 20px rgba(100,150,200,0.3); } 50% { opacity: .8; box-shadow: inset 0 0 40px rgba(100,150,200,0.5); } 100% { opacity: .5; box-shadow: inset 0 0 20px rgba(100,150,200,0.3); } }
@keyframes dbi-door { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.4); } 50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.6); } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.4); } }
@keyframes dbi-candle { 0% { box-shadow: 0 0 20px #ffaa44; } 50% { box-shadow: 0 0 40px #ffcc66; } 100% { box-shadow: 0 0 20px #ffaa44; } }
@keyframes dbi-cup { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-barkis-message-relayed { background: linear-gradient(180deg, #fff5e6 0%, #ffe0b0 60%, #e8c88a 100%), radial-gradient(ellipse at 80% 20%, #ffdd80 0%, transparent 50%); }
.scn-barkis-message-relayed .figure-barkis { position: absolute; bottom: 22%; right: 15%; width: 50px; height: 85px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: bmr-barkis 5s ease-in-out infinite; }
.scn-barkis-message-relayed .figure-davy { position: absolute; bottom: 24%; left: 20%; width: 30px; height: 60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: bmr-davy 6s ease-in-out infinite; }
.scn-barkis-message-relayed .letter { position: absolute; top: 30%; left: 50%; width: 50px; height: 35px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border: 2px solid #a08060; border-radius: 2px; transform: translateX(-50%) rotate(15deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: bmr-letter 4s ease-in-out infinite alternate; }
.scn-barkis-message-relayed .bench { position: absolute; bottom: 12%; left: 20%; right: 20%; height: 25px; background: linear-gradient(180deg, #8b6f47 0%, #6b4f2a 100%); border-radius: 6px; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.2); }
.scn-barkis-message-relayed .hat { position: absolute; bottom: 28%; left: 35%; width: 35px; height: 18px; background: #3a2a1a; border-radius: 50% 50% 0 0; transform: translateX(-50%); animation: bmr-hat 7s ease-in-out infinite; }
.scn-barkis-message-relayed .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, #c4a882 0%, #a0785a 100%); border-radius: 80% 80% 0 0 / 40% 40% 0 0; }
@keyframes bmr-barkis { 0% { transform: translateX(0) rotate(10deg); } 50% { transform: translateX(-5px) rotate(15deg); } 100% { transform: translateX(0) rotate(10deg); } }
@keyframes bmr-davy { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(5px) rotate(0deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes bmr-letter { 0% { transform: translateX(-50%) rotate(15deg) translateY(0); } 50% { transform: translateX(-50%) rotate(20deg) translateY(-10px); } 100% { transform: translateX(-50%) rotate(15deg) translateY(0); } }
@keyframes bmr-hat { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }

/* one block per scene id. Append to style.css. */
.scn-beau-ideal-of-blood {
  background: linear-gradient(180deg, #fcf5e8 0%, #e8dcc8 60%, #d4bfa8 100%), radial-gradient(ellipse at 50% 100%, #d4bfa8 0%, transparent 70%);
}
.scn-beau-ideal-of-blood .room { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #f2e6d0 0%, #d9c4aa 100%); animation: bi-room 12s ease-in-out infinite alternate; }
.scn-beau-ideal-of-blood .painting-frame { position:absolute; top:12%; left:50%; width:120px; height:100px; transform:translateX(-50%); background: #c4a67a; border:8px solid #8b6a40; border-radius:4px; box-shadow: 0 8px 20px rgba(0,0,0,.2); }
.scn-beau-ideal-of-blood .painting { position:absolute; top:15%; left:50%; width:90px; height:70px; transform:translateX(-50%); background: radial-gradient(circle at 30% 30%, #f4d9c9 0%, #dbbadd 70%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 0 -4px 10px rgba(0,0,0,.1); animation: bi-shake 4s ease-in-out infinite; }
.scn-beau-ideal-of-blood .aunt { position:absolute; bottom:18%; left:35%; width:50px; height:80px; background: linear-gradient(180deg, #e0c5a0 0%, #c2a68d 50%, #8b7760 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: bi-sway 4s ease-in-out infinite; }
.scn-beau-ideal-of-blood .cat { position:absolute; bottom:14%; left:48%; width:22px; height:18px; background: #8b7760; border-radius:50% 50% 40% 40%; animation: bi-bob 3s ease-in-out infinite; }
.scn-beau-ideal-of-blood .curtain-l { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(90deg, #c2a68d 0%, #a88c70 50%, transparent 100%); transform-origin:left top; animation: bi-curl 10s ease-in-out infinite; }
.scn-beau-ideal-of-blood .curtain-r { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(270deg, #c2a68d 0%, #a88c70 50%, transparent 100%); transform-origin:right top; animation: bi-currr 10s ease-in-out infinite; animation-delay:-3s; }
@keyframes bi-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bi-shake { 0%,100% { transform:translateX(-50%) rotate(0) scale(1) } 25% { transform:translateX(-50%) rotate(1deg) scale(1.02) } 50% { transform:translateX(-50%) rotate(-1deg) scale(0.98) } 75% { transform:translateX(-50%) rotate(0.5deg) scale(1.01) } }
@keyframes bi-sway { 0% { transform:rotate(-3deg) translateY(0) } 30% { transform:rotate(2deg) translateY(-4px) } 50% { transform:rotate(-2deg) translateY(-2px) } 70% { transform:rotate(3deg) translateY(-5px) } 100% { transform:rotate(0) translateY(0) } }
@keyframes bi-bob { 0%,100% { transform:translateY(0) rotate(0) } 30% { transform:translateY(-3px) rotate(8deg) } 60% { transform:translateY(-1px) rotate(-6deg) } }
@keyframes bi-curl { 0%,100% { transform:rotate(-8deg) } 50% { transform:rotate(-4deg) } }
@keyframes bi-currr { 0%,100% { transform:rotate(8deg) } 50% { transform:rotate(4deg) } }

.scn-money-or-no-release {
  background: linear-gradient(180deg, #e0e4ea 0%, #c8ced9 50%, #b0b5c0 100%), radial-gradient(ellipse at 50% 100%, #b0b5c0 0%, transparent 70%);
}
.scn-money-or-no-release .room { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #dde0e6 0%, #b6bac4 100%); animation: mo-flicker 8s ease-in-out infinite alternate; }
.scn-money-or-no-release .desk { position:absolute; bottom:18%; left:20%; right:20%; height:30px; background: linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-money-or-no-release .figure-left { position:absolute; bottom:18%; left:25%; width:35px; height:70px; background: linear-gradient(180deg, #2e2e3e 0%, #1c1c2a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin:bottom center; animation: mo-tremble 2s ease-in-out infinite; }
.scn-money-or-no-release .figure-right { position:absolute; bottom:18%; right:25%; width:35px; height:70px; background: linear-gradient(180deg, #2e2e3e 0%, #1c1c2a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin:bottom center; animation: mo-tremble 2.5s ease-in-out infinite; animation-delay:-1s; }
.scn-money-or-no-release .lamp { position:absolute; bottom:25%; left:48%; width:16px; height:24px; background: radial-gradient(circle at 50% 0%, #ffe066 0%, #d4a94a 70%); border-radius:20% 20% 30% 30%; box-shadow: 0 0 30px 10px rgba(255,224,102,.4); animation: mo-flicker-fast 1.5s ease-in-out infinite; }
.scn-money-or-no-release .document { position:absolute; bottom:18%; left:50%; width:40px; height:24px; background: #f2ecd8; transform:translateX(-50%) rotate(-5deg); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: mo-flutter 4s ease-in-out infinite; }
.scn-money-or-no-release .shadow { position:absolute; bottom:0; left:10%; right:10%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); animation: mo-stretch 6s ease-in-out infinite; }
@keyframes mo-flicker { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mo-tremble { 0%,100% { transform:rotate(0) translateY(0) } 20% { transform:rotate(2deg) translateY(-1px) } 40% { transform:rotate(-1deg) translateY(1px) } 60% { transform:rotate(3deg) translateY(-2px) } 80% { transform:rotate(-2deg) translateY(1px) } }
@keyframes mo-flicker-fast { 0%,100% { box-shadow:0 0 20px 6px rgba(255,224,102,.3); opacity:0.9 } 30% { box-shadow:0 0 50px 18px rgba(255,224,102,.6); opacity:1 } 70% { box-shadow:0 0 30px 10px rgba(255,224,102,.4); opacity:0.95 } }
@keyframes mo-flutter { 0%,100% { transform:translateX(-50%) rotate(-5deg) translateY(0) } 25% { transform:translateX(-50%) rotate(-3deg) translateY(-2px) } 50% { transform:translateX(-50%) rotate(2deg) translateY(0) } 75% { transform:translateX(-50%) rotate(0deg) translateY(-1px) } }
@keyframes mo-stretch { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.1) } }

.scn-heeps-change-expectations {
  background: linear-gradient(180deg, #2a1e14 0%, #3d2a1a 30%, #4a3520 100%), radial-gradient(ellipse at 50% 100%, #4a3520 0%, transparent 60%);
}
.scn-heeps-change-expectations .wall { position:absolute; inset:0; background: linear-gradient(180deg, #573f2a 0%, #2e1d10 100%); }
.scn-heeps-change-expectations .fireplace { position:absolute; bottom:15%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2e 0%, #3d2a18 100%); border-radius:20% 20% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-heeps-change-expectations .fire-glow { position:absolute; bottom:15%; left:50%; width:90px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #c85a20 40%, transparent 80%); border-radius:50%; animation: uh-glow 4s ease-in-out infinite; }
.scn-heeps-change-expectations .figure-uriah { position:absolute; bottom:18%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #1a1008 0%, #2a1a10 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin:bottom center; animation: uh-jerk 2s ease-in-out infinite; }
.scn-heeps-change-expectations .figure-copperfield { position:absolute; bottom:18%; right:30%; width:25px; height:60px; background: linear-gradient(180deg, #241810 0%, #1a1008 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; animation: uh-stand 6s ease-in-out infinite; }
.scn-heeps-change-expectations .chair { position:absolute; bottom:12%; left:28%; width:30px; height:20px; background: #3a2a18; border-radius:10% 10% 20% 20%; box-shadow: 0 -2px 6px rgba(0,0,0,.6); }
@keyframes uh-glow { 0%,100% { opacity:0.8; box-shadow:0 0 40px 20px rgba(255,128,48,.4) } 50% { opacity:1; box-shadow:0 0 60px 30px rgba(255,128,48,.7) } }
@keyframes uh-jerk { 0%,100% { transform:rotate(0) translateY(0) } 20% { transform:rotate(15deg) translateY(-3px) } 40% { transform:rotate(-10deg) translateY(2px) } 60% { transform:rotate(5deg) translateY(-1px) } 80% { transform:rotate(-5deg) translateY(0) } }
@keyframes uh-stand { 0%,100% { transform:rotate(0) } 50% { transform:rotate(2deg) } }

.scn-heeps-scheme-revealed {
  background: linear-gradient(180deg, #1a0e08 0%, #2a180e 40%, #3d2010 100%), radial-gradient(ellipse at 70% 50%, #4a2510 0%, transparent 70%);
}
.scn-heeps-scheme-revealed .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%); }
.scn-heeps-scheme-revealed .fire-flame { position:absolute; bottom:10%; left:60%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ff7a30 0%, #c84510 50%, transparent 80%); border-radius:50%; animation: hs-flicker 2s ease-in-out infinite; }
.scn-heeps-scheme-revealed .face { position:absolute; right:25%; bottom:20%; width:30px; height:40px; background: #1a0c06; border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:rotate(-10deg); box-shadow: -4px 0 8px rgba(255,60,20,.3); animation: hs-turn 6s ease-in-out infinite; }
.scn-heeps-scheme-revealed .glow { position:absolute; top:0; right:20%; width:40%; height:100%; background: linear-gradient(270deg, rgba(255,80,20,.4) 0%, transparent 100%); animation: hs-pulse 3s ease-in-out infinite; }
.scn-heeps-scheme-revealed .shadow { position:absolute; top:0; left:0; width:50%; height:100%; background: linear-gradient(90deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: hs-shift 8s ease-in-out infinite; }
.scn-heeps-scheme-revealed .hand { position:absolute; bottom:15%; left:35%; width:12px; height:20px; background: #1a0c06; border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin:bottom; animation: hs-twitch 1.5s ease-in-out infinite; }
@keyframes hs-flicker { 0%,100% { opacity:0.7; transform:scaleY(1) } 30% { opacity:1; transform:scaleY(1.1) } 70% { opacity:0.8; transform:scaleY(0.9) } }
@keyframes hs-turn { 0%,100% { transform:rotate(-10deg) } 50% { transform:rotate(-6deg) } }
@keyframes hs-pulse { 0%,100% { opacity:0.6 } 50% { opacity:0.9 } }
@keyframes hs-shift { 0%,100% { transform:translateX(0) } 50% { transform:translateX(10%) } }
@keyframes hs-twitch { 0%,100% { transform:rotate(0) translateY(0) } 25% { transform:rotate(15deg) translateY(-2px) } 50% { transform:rotate(-10deg) translateY(1px) } 75% { transform:rotate(5deg) translateY(-1px) } }

/* Counting House Proposal - tense, bright interior */
.scn-counting-house-proposal {
  background: linear-gradient(180deg, #8b7355 0%, #6b5a3e 100%), radial-gradient(ellipse at 40% 30%, #4a3d2b 0%, transparent 60%);
}
.scn-counting-house-proposal .cp-bg {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #9c896a 0%, #7a6a4a 100%);
}
.scn-counting-house-proposal .cp-desk {
  position:absolute; bottom:20%; left:20%; width:60%; height:30%;
  background: linear-gradient(180deg, #5a4a32 0%, #3c2e1e 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.4);
}
.scn-counting-house-proposal .cp-ledger {
  position:absolute; bottom:32%; left:35%; width:20%; height:10%;
  background: linear-gradient(180deg, #f0e2c8 0%, #c8b08a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: cp-ledger-flip 6s ease-in-out infinite;
}
.scn-counting-house-proposal .cp-bottle {
  position:absolute; bottom:30%; left:55%; width:6%; height:16%;
  background: linear-gradient(180deg, #6b3a2a 0%, #3a1e12 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-counting-house-proposal .cp-figure-adult {
  position:absolute; bottom:23%; left:38%; width:12%; height:40%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: -4px 0 12px rgba(0,0,0,.5);
  animation: cp-figure-adult-rock 5s ease-in-out infinite;
}
.scn-counting-house-proposal .cp-figure-child {
  position:absolute; bottom:22%; left:48%; width:8%; height:30%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cp-figure-child-tremble 0.8s ease-in-out infinite;
}
.scn-counting-house-proposal .cp-window {
  position:absolute; top:10%; left:8%; width:20%; height:40%;
  background: radial-gradient(ellipse at 50% 50%, #ffe8b0 0%, #c8a86e 80%);
  border-radius: 4px; box-shadow: inset 0 0 60px #ffd680, 0 0 80px rgba(255,214,128,.3);
  animation: cp-window-glow 2s ease-in-out infinite alternate;
}
.scn-counting-house-proposal .cp-shadow {
  position:absolute; bottom:20%; left:30%; width:20%; height:20%;
  background: rgba(0,0,0,.3); filter: blur(6px);
  animation: cp-shadow-flicker 3s ease-in-out infinite;
}
@keyframes cp-ledger-flip {
  0% { transform: rotateY(0deg) translateY(0); }
  25% { transform: rotateY(-20deg) translateY(-2px); }
  50% { transform: rotateY(0deg) translateY(0); }
  75% { transform: rotateY(10deg) translateY(-1px); }
  100% { transform: rotateY(0deg) translateY(0); }
}
@keyframes cp-figure-adult-rock {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(1deg); }
  70% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes cp-figure-child-tremble {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(0.5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-1px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cp-window-glow {
  0% { opacity: 0.7; box-shadow: inset 0 0 40px #d4b06a, 0 0 60px rgba(212,176,106,.2); }
  100% { opacity: 1; box-shadow: inset 0 0 80px #ffe080, 0 0 120px rgba(255,224,128,.4); }
}
@keyframes cp-shadow-flicker {
  0%,100% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.2); }
}

/* Quinion Employment Offer - dark mood, bright interior */
.scn-quinion-employment-offer {
  background: linear-gradient(180deg, #2a1e12 0%, #1a120a 100%), radial-gradient(ellipse at 70% 40%, #c8a96e 0%, transparent 50%);
}
.scn-quinion-employment-offer .qe-bg {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #1e140c 0%, #0e0a06 100%);
}
.scn-quinion-employment-offer .qe-desk {
  position:absolute; bottom:15%; left:30%; width:40%; height:25%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e12 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-quinion-employment-offer .qe-lamp {
  position:absolute; top:5%; left:45%; width:10%; height:20%;
  background: radial-gradient(ellipse at 50% 100%, #ffd680 0%, #8a6a3e 80%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 60px #e0b860, 0 0 100px rgba(224,184,96,.3);
  animation: qe-lamp-swing 8s ease-in-out infinite;
}
.scn-quinion-employment-offer .qe-figure-adult {
  position:absolute; bottom:18%; left:36%; width:14%; height:35%;
  background: linear-gradient(180deg, #1e140c 0%, #0e0a06 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: qe-figure-adult-rock 5s ease-in-out infinite;
}
.scn-quinion-employment-offer .qe-figure-child {
  position:absolute; bottom:17%; left:50%; width:8%; height:30%;
  background: linear-gradient(180deg, #2a1e12 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qe-figure-child-shift 7s ease-in-out infinite;
}
.scn-quinion-employment-offer .qe-clock {
  position:absolute; top:15%; right:15%; width:12%; height:20%;
  background: radial-gradient(circle, #8a7a6a 0%, #4a3a2a 80%);
  border-radius: 50%; box-shadow: 0 0 20px rgba(0,0,0,.5);
  animation: qe-clock-sway 6s ease-in-out infinite;
}
.scn-quinion-employment-offer .qe-shelf {
  position:absolute; top:30%; right:8%; width:20%; height:5%;
  background: linear-gradient(180deg, #1e140c 0%, #0e0a06 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
@keyframes qe-lamp-swing {
  0%,100% { transform: rotate(-3deg) translateX(0); }
  25% { transform: rotate(2deg) translateX(4px); }
  50% { transform: rotate(-1deg) translateX(-2px); }
  75% { transform: rotate(3deg) translateX(6px); }
}
@keyframes qe-figure-adult-rock {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(1deg); }
  70% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes qe-figure-child-shift {
  0%,100% { transform: translateX(0); }
  20% { transform: translateX(4px); }
  40% { transform: translateX(-2px); }
  60% { transform: translateX(3px); }
  80% { transform: translateX(-1px); }
}
@keyframes qe-clock-sway {
  0%,100% { transform: rotate(-4deg); }
  50% { transform: rotate(4deg); }
}

/* Thrown Away Abilities - dark, dim interior */
.scn-thrown-away-abilities {
  background: linear-gradient(180deg, #0f0c1a 0%, #1a122a 50%, #0c0812 100%), radial-gradient(ellipse at 50% 50%, #2a1e3a 0%, transparent 60%);
}
.scn-thrown-away-abilities .ta-bg {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #0c0812 0%, #1a122a 100%);
}
.scn-thrown-away-abilities .ta-table {
  position:absolute; bottom:25%; left:30%; width:40%; height:20%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%);
  border-radius: 4px; box-shadow: 0 6px 16px rgba(0,0,0,.6);
}
.scn-thrown-away-abilities .ta-candle {
  position:absolute; bottom:38%; left:45%; width:4%; height:12%;
  background: linear-gradient(180deg, #e8b870 0%, #8a5a2a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px #e8b870, 0 0 60px rgba(232,184,112,.3);
  animation: ta-candle-glimmer 4s ease-in-out infinite;
}
.scn-thrown-away-abilities .ta-figure {
  position:absolute; bottom:24%; left:38%; width:10%; height:35%;
  background: linear-gradient(180deg, #1a122a 0%, #0c0812 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ta-figure-rock 10s ease-in-out infinite;
}
.scn-thrown-away-abilities .ta-paper {
  position:absolute; bottom:18%; left:50%; width:12%; height:6%;
  background: linear-gradient(180deg, #e8dcc8 0%, #b8a890 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: ta-paper-flutter 7s ease-in-out infinite;
}
.scn-thrown-away-abilities .ta-shadow {
  position:absolute; bottom:20%; left:20%; width:30%; height:15%;
  background: rgba(0,0,0,.5); filter: blur(8px);
  animation: ta-shadow-move 12s ease-in-out infinite;
}
@keyframes ta-candle-glimmer {
  0%,100% { opacity: 0.8; transform: scaleY(1) translateY(0); }
  30% { opacity: 1; transform: scaleY(1.1) translateY(-2px); }
  60% { opacity: 0.6; transform: scaleY(0.9) translateY(1px); }
}
@keyframes ta-figure-rock {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-2deg); }
  50% { transform: translateX(-1px) rotate(0deg); }
  75% { transform: translateX(1px) rotate(1deg); }
}
@keyframes ta-paper-flutter {
  0%,100% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(3px) rotate(-5deg); }
  40% { transform: translateX(-2px) rotate(3deg); }
  60% { transform: translateX(4px) rotate(-2deg); }
  80% { transform: translateX(-3px) rotate(4deg); }
}
@keyframes ta-shadow-move {
  0%,100% { transform: translateX(0) scaleX(1); }
  30% { transform: translateX(-10px) scaleX(0.8); }
  70% { transform: translateX(10px) scaleX(1.2); }
}

/* Micawber Introduction - calm, bright interior */
.scn-micawber-introduction {
  background: linear-gradient(180deg, #f5e6c8 0%, #e3cf9a 100%), radial-gradient(ellipse at 50% 50%, #fff5d6 0%, transparent 70%);
}
.scn-micawber-introduction .mi-bg {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #f0e2c8 0%, #dcc89a 100%);
}
.scn-micawber-introduction .mi-sofa {
  position:absolute; bottom:15%; left:30%; width:40%; height:30%;
  background: linear-gradient(180deg, #a08060 0%, #7a6040 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.3);
}
.scn-micawber-introduction .mi-figure-micawber {
  position:absolute; bottom:22%; left:34%; width:14%; height:35%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: mi-micawber-gesture 8s ease-in-out infinite;
}
.scn-micawber-introduction .mi-figure-david {
  position:absolute; bottom:17%; left:48%; width:8%; height:30%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-micawber-introduction .mi-table {
  position:absolute; bottom:20%; left:50%; width:18%; height:15%;
  background: linear-gradient(180deg, #6a503a 0%, #4a3828 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.3);
}
.scn-micawber-introduction .mi-teacup {
  position:absolute; bottom:28%; left:54%; width:6%; height:8%;
  background: linear-gradient(180deg, #f0e2c8 0%, #d4b896 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: mi-teacup-slight 5s ease-in-out infinite;
}
.scn-micawber-introduction .mi-steam {
  position:absolute; bottom:36%; left:55%; width:4%; height:12%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,.5) 0%, transparent 80%);
  filter: blur(2px);
  animation: mi-steam-rise 6s linear infinite;
}
.scn-micawber-introduction .mi-curtain {
  position:absolute; top:0; right:0; width:12%; height:100%;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 0 0 0 50%; box-shadow: -4px 0 12px rgba(0,0,0,.2);
  animation: mi-curtain-sway 10s ease-in-out infinite;
}
@keyframes mi-micawber-gesture {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  75% { transform: translateX(3px) rotate(1deg); }
}
@keyframes mi-teacup-slight {
  0%,100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-1px); }
  75% { transform: rotate(2deg) translateY(-1px); }
}
@keyframes mi-steam-rise {
  0% { opacity: 0.6; transform: translateY(0) scaleX(1); }
  30% { opacity: 0.8; transform: translateY(-8px) scaleX(0.6); }
  60% { opacity: 0.4; transform: translateY(-16px) scaleX(0.8); }
  100% { opacity: 0; transform: translateY(-24px) scaleX(0.4); }
}
@keyframes mi-curtain-sway {
  0%,100% { transform: skewY(0deg); }
  20% { transform: skewY(3deg); }
  40% { transform: skewY(-2deg); }
  60% { transform: skewY(4deg); }
  80% { transform: skewY(-1deg); }
}

.scn-crupps-encouragement { background: linear-gradient(180deg, #f5e6cc 0%, #d4a373 50%, #b5835a 100%), radial-gradient(ellipse at 50% 0%, #fefae0 0%, transparent 70%); }
.scn-crupps-encouragement .room-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #f5e6cc, #e3c9a6); }
.scn-crupps-encouragement .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8b5e3c, #5a3a2a); }
.scn-crupps-encouragement .fireplace { position:absolute; bottom:35%; left:20%; width:30%; height:30%; background: linear-gradient(180deg, #5a3a2a, #3a221a); border-radius:10% 10% 0 0; }
.scn-crupps-encouragement .fire-glow { position:absolute; bottom:35%; left:20%; width:30%; height:30%; background: radial-gradient(ellipse at 50% 80%, #ffaa66 0%, transparent 70%); animation: cpe-glow 2s ease-in-out infinite alternate; }
.scn-crupps-encouragement .crupp-figure { position:absolute; bottom:35%; left:55%; width:20%; height:50%; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%); border-radius:50% 50% 40% 40% / 80% 80% 40% 40%; animation: cpe-sway 4s ease-in-out infinite; }
.scn-crupps-encouragement .arm-encourage { position:absolute; bottom:60%; left:60%; width:8%; height:20%; background: linear-gradient(180deg, #a94a3a, #7a2a1a); border-radius:0 0 50% 50%; transform-origin: bottom left; animation: cpe-nod 3s ease-in-out infinite; }
.scn-crupps-encouragement .chair { position:absolute; bottom:35%; left:40%; width:25%; height:25%; background: linear-gradient(180deg, #6b4a3a, #4a2a1a); border-radius:10% 10% 5% 5%; animation: cpe-chair 6s ease-in-out infinite; }
@keyframes cpe-glow { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes cpe-sway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cpe-nod { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } }
@keyframes cpe-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

.scn-visit-to-traddles { background: linear-gradient(180deg, #8a9ba5 0%, #bcc6cc 30%, #d3dce0 60%, #e6ecef 100%), radial-gradient(ellipse at 50% 0%, #f0f4f7 0%, transparent 80%); }
.scn-visit-to-traddles .overcast-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a8b94, #a3b0b5); animation: vtt-sky 12s ease-in-out infinite alternate; }
.scn-visit-to-traddles .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6b7b6b, #4a5a4a); }
.scn-visit-to-traddles .path { position:absolute; bottom:20%; left:30%; width:40%; height:8%; background: #8b9b7b; border-radius: 50%; transform: translateX(-50%); }
.scn-visit-to-traddles .house-door { position:absolute; bottom:40%; left:20%; width:15%; height:30%; background: linear-gradient(180deg, #6b4a3a, #4a2a1a); border-radius: 10% 10% 0 0; }
.scn-visit-to-traddles .david-figure { position:absolute; bottom:38%; left:50%; width:12%; height:40%; background: #3a3a4a; border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; animation: vtt-walk 5s ease-in-out infinite; }
.scn-visit-to-traddles .david-shadow { position:absolute; bottom:35%; left:50%; width:15%; height:6%; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(4px); animation: vtt-shadow 5s ease-in-out infinite; }
.scn-visit-to-traddles .leaf-tree { position:absolute; top:10%; right:15%; width:25%; height:30%; background: radial-gradient(ellipse, #5a7a5a 0%, #3a5a3a 70%); border-radius: 50%; animation: vtt-sway 8s ease-in-out infinite; }
@keyframes vtt-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes vtt-walk { 0% { transform: translateX(-20px); } 50% { transform: translateX(20px); } 100% { transform: translateX(-20px); } }
@keyframes vtt-shadow { 0% { transform: scale(1); opacity:0.3; } 50% { transform: scale(1.2); opacity:0.4; } 100% { transform: scale(1); opacity:0.3; } }
@keyframes vtt-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }

.scn-happy-times-remembered { background: linear-gradient(180deg, #f5e6cc 0%, #f0dbb3 50%, #d9b68a 100%), radial-gradient(ellipse at 50% 0%, #fff4e6 0%, transparent 70%); }
.scn-happy-times-remembered .parlor-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #f5e6cc, #e3c9a6); }
.scn-happy-times-remembered .parlor-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a87b5a, #6b4a3a); }
.scn-happy-times-remembered .window-light { position:absolute; top:10%; left:5%; width:20%; height:30%; background: linear-gradient(135deg, #fff9e6, #f5d98a); border-radius: 5% 5% 0 0; animation: htr-pulse 4s ease-in-out infinite alternate; }
.scn-happy-times-remembered .table { position:absolute; bottom:30%; left:35%; width:30%; height:10%; background: linear-gradient(180deg, #6b4a3a, #4a2a1a); border-radius: 20% 20% 5% 5%; }
.scn-happy-times-remembered .traddles-figure { position:absolute; bottom:30%; left:20%; width:15%; height:45%; background: linear-gradient(180deg, #4a3a3a, #2a1a1a); border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%; animation: htr-bounce 3s ease-in-out infinite; }
.scn-happy-times-remembered .copperfield-figure { position:absolute; bottom:30%; left:55%; width:15%; height:45%; background: linear-gradient(180deg, #3a4a3a, #1a2a1a); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: htr-nod 5s ease-in-out infinite; }
.scn-happy-times-remembered .laugh-motion { position:absolute; top:20%; left:25%; width:10%; height:10%; background: radial-gradient(circle, #ffdd99 0%, transparent 70%); border-radius:50%; animation: htr-laugh 2s ease-in-out infinite; }
@keyframes htr-pulse { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes htr-bounce { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes htr-nod { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes htr-laugh { 0% { transform: scale(0.8); opacity:0.5; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.8); opacity:0.5; } }

.scn-furnishing-difficulties { background: linear-gradient(180deg, #e6f0f5 0%, #c8d9e0 50%, #a8bcc6 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%); }
.scn-furnishing-difficulties .room-interior { position:absolute; inset:0; background: linear-gradient(135deg, #e6f0f5, #d0dbe0); }
.scn-furnishing-difficulties .bare-shelf { position:absolute; top:20%; left:10%; width:60%; height:10%; background: linear-gradient(180deg, #8b6b4a, #6b4a3a); border-radius: 5% 5% 0 0; }
.scn-furnishing-difficulties .candle-box { position:absolute; top:32%; left:15%; width:12%; height:15%; background: #a87a5a; border: 2px solid #7a5a3a; }
.scn-furnishing-difficulties .gridiron { position:absolute; top:30%; left:35%; width:20%; height:10%; background: repeating-linear-gradient(90deg, #7a7a7a 0px, #7a7a7a 4px, transparent 4px, transparent 8px); border-radius: 10%; border: 2px solid #4a4a4a; animation: fdi-spin 6s linear infinite; }
.scn-furnishing-difficulties .traddles-figure { position:absolute; bottom:20%; left:40%; width:20%; height:50%; background: linear-gradient(180deg, #4a3a3a, #2a1a1a); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; animation: fdi-shake 2s ease-in-out infinite; }
.scn-furnishing-difficulties .frustration-gesture { position:absolute; bottom:50%; left:50%; width:8%; height:15%; background: #3a3a3a; border-radius: 0 0 50% 50%; transform-origin: top; animation: fdi-shake 2s ease-in-out infinite reverse; }
.scn-furnishing-difficulties .light-dust { position:absolute; top:5%; left:50%; width:5%; height:5%; background: #ffffff; border-radius:50%; filter: blur(3px); animation: fdi-float 8s ease-in-out infinite; }
@keyframes fdi-shake { 0% { transform: translateX(0); } 25% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 75% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes fdi-spin { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes fdi-float { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-30px) scale(1.5); opacity:0.6; } 100% { transform: translateY(0) scale(1); opacity:0.3; } }

.scn-son-outstrip-competitor { 
  background: linear-gradient(180deg, #f9e8d0 0%, #f0dbb0 50%, #d4b88a 100%), radial-gradient(ellipse at 80% 20%, #ffeeb0 0%, transparent 60%); 
}
.scn-son-outstrip-competitor .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f5e0c0 0%, #e8ce9a 100%); }
.scn-son-outstrip-competitor .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,.3); }
.scn-son-outstrip-competitor .window { position:absolute; top:12%; left:60%; width:18%; height:45%; background: radial-gradient(ellipse at 50% 50%, #fffce0 0%, #ffe8b0 60%, #b89850 100%); border: 3px solid #8a6a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,240,180,.5), 0 0 40px rgba(255,220,120,.3); animation: soc-window 5s ease-in-out infinite alternate; }
.scn-son-outstrip-competitor .shelf { position:absolute; top:40%; left:35%; width:25%; height:3%; background: linear-gradient(90deg, #7a5a30, #5a3a18); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-son-outstrip-competitor .cup { position:absolute; top:38%; left:42%; width:6%; height:5%; background: radial-gradient(circle, #e8c080 0%, #b88840 80%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: soc-cup 8s ease-in-out infinite; }
.scn-son-outstrip-competitor .figure-body { position:absolute; bottom:35%; left:32%; width:5%; height:25%; background: linear-gradient(180deg, #2c1e16 0%, #1a100a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: soc-figure-body 4s ease-in-out infinite; }
.scn-son-outstrip-competitor .figure-arm { position:absolute; bottom:50%; left:33%; width:8%; height:2.5%; background: #2c1e16; border-radius: 50% 0 0 50%; transform-origin: left center; animation: soc-figure-arm 4s ease-in-out infinite; }
.scn-son-outstrip-competitor .sparkle { position:absolute; bottom:52%; left:38%; width:2%; height:2%; background: radial-gradient(circle, #ffd680 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,214,128,.6); animation: soc-sparkle 1.5s ease-in-out infinite; }
@keyframes soc-window { 0% { opacity:.85; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); box-shadow: inset 0 0 30px rgba(255,240,180,.6), 0 0 60px rgba(255,220,120,.4); } 100% { opacity:.9; transform: scale(.98); } }
@keyframes soc-cup { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes soc-figure-body { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(-1px); } 75% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes soc-figure-arm { 0% { transform: rotate(-10deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-15deg); } 75% { transform: rotate(8deg); } 100% { transform: rotate(-10deg); } }
@keyframes soc-sparkle { 0%,100% { opacity:.3; transform: scale(.6); } 50% { opacity:1; transform: scale(1.3); } }

.scn-protection-offer { 
  background: linear-gradient(180deg, #f7e5c8 0%, #ead3a8 50%, #c8a870 100%); 
}
.scn-protection-offer .wall-pfo { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d0a8 0%, #d4b888 100%); }
.scn-protection-offer .floor-pfo { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a3a1a, #3a2210); border-radius: 30% 30% 0 0 / 15% 15% 0 0; }
.scn-protection-offer .chair-l { position:absolute; bottom:30%; left:20%; width:14%; height:28%; background: linear-gradient(180deg, #8a6030 0%, #5a3a18 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: pro-chair-l 6s ease-in-out infinite; }
.scn-protection-offer .chair-r { position:absolute; bottom:30%; right:20%; width:14%; height:28%; background: linear-gradient(180deg, #8a6030 0%, #5a3a18 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: pro-chair-r 6s ease-in-out infinite reverse; }
.scn-protection-offer .table-pfo { position:absolute; bottom:35%; left:40%; width:20%; height:6%; background: linear-gradient(90deg, #6a4a2a, #4a3020); border-radius: 10%; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: pro-table 12s ease-in-out infinite; }
.scn-protection-offer .fig-mother { position:absolute; bottom:30%; left:24%; width:6%; height:22%; background: linear-gradient(180deg, #4a2a1a, #2a1008); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pro-mother 8s ease-in-out infinite; }
.scn-protection-offer .fig-visitor { position:absolute; bottom:30%; right:24%; width:6%; height:20%; background: linear-gradient(180deg, #3a2a1a, #1a1008); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pro-visitor 7s ease-in-out infinite; }
.scn-protection-offer .lamp-pfo { position:absolute; bottom:40%; left:48%; width:4%; height:12%; background: linear-gradient(180deg, #a08050, #6a4a2a); border-radius: 50% 50% 10% 10%; box-shadow: inset 0 0 10px #c8a060; animation: pro-lamp 4s ease-in-out infinite alternate; }
.scn-protection-offer .glow-pfo { position:absolute; top:40%; left:46%; width:8%; height:8%; background: radial-gradient(circle, rgba(255,230,150,.6) 0%, transparent 70%); border-radius: 50%; animation: pro-glow 4s ease-in-out infinite alternate; }
@keyframes pro-chair-l { 0%,100% { transform: translateY(0) rotate(-.5deg); } 50% { transform: translateY(-3px) rotate(.5deg); } }
@keyframes pro-chair-r { 0%,100% { transform: translateY(0) rotate(.5deg); } 50% { transform: translateY(-2px) rotate(-.5deg); } }
@keyframes pro-table { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes pro-mother { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes pro-visitor { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes pro-lamp { 0% { opacity:.7; filter: brightness(.9); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:.8; filter: brightness(1); } }
@keyframes pro-glow { 0% { opacity:.5; transform: scale(.8); } 50% { opacity:.8; transform: scale(1.1); } 100% { opacity:.6; transform: scale(.9); } }

.scn-daisy-teasing { 
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a10 40%, #6a3a18 100%), radial-gradient(ellipse at 50% 30%, #8a4a20 0%, transparent 60%); 
}
.scn-daisy-teasing .dai-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a04 100%); animation: dai-bg 20s ease-in-out infinite alternate; }
.scn-daisy-teasing .hearth { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:30%; height:40%; background: linear-gradient(180deg, #1a100a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 60% 60% 40% 40%; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-daisy-teasing .fire { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:12%; height:18%; background: radial-gradient(ellipse at 50% 80%, #ff8020 0%, #ff6020 30%, #b84010 60%, transparent 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; animation: dai-fire .5s ease-in-out infinite alternate; }
.scn-daisy-teasing .fire-glow { position:absolute; bottom:20%; left:40%; width:20%; height:25%; background: radial-gradient(ellipse, rgba(255,100,20,.3) 0%, transparent 70%); border-radius: 50%; animation: dai-fireglow 2s ease-in-out infinite alternate; }
.scn-daisy-teasing .lounge-fig { position:absolute; bottom:10%; right:8%; width:16%; height:40%; background: linear-gradient(180deg, #1a100a 0%, #0a0604 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); transform-origin: bottom center; animation: dai-lounge 6s ease-in-out infinite; }
.scn-daisy-teasing .mother-fig { position:absolute; bottom:12%; left:10%; width:14%; height:38%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0604 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); transform-origin: bottom center; animation: dai-mother 7s ease-in-out infinite; }
.scn-daisy-teasing .decanter { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:6%; height:15%; background: linear-gradient(180deg, #604020, #2a1a0a); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: inset 0 4px 6px rgba(0,0,0,.5); animation: dai-decanter 12s linear infinite; }
.scn-daisy-teasing .glass-dai { position:absolute; bottom:18%; left:53%; width:4%; height:8%; background: linear-gradient(180deg, rgba(200,160,100,.3), rgba(100,80,40,.2)); border-radius: 20% 20% 10% 10%; border: 1px solid rgba(200,160,100,.4); animation: dai-glass 10s ease-in-out infinite; }
@keyframes dai-bg { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes dai-fire { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); opacity:.8; } 50% { transform: translateX(-48%) scaleY(1.05) rotate(0deg); opacity:1; } 100% { transform: translateX(-52%) scaleY(.95) rotate(2deg); opacity:.9; } }
@keyframes dai-fireglow { 0% { opacity:.4; transform: scale(.9); } 50% { opacity:.7; transform: scale(1.1); } 100% { opacity:.5; transform: scale(1); } }
@keyframes dai-lounge { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-3px); } }
@keyframes dai-mother { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes dai-decanter { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-48%) rotate(1deg); } 50% { transform: translateX(-52%) rotate(-1deg); } 75% { transform: translateX(-49%) rotate(.5deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes dai-glass { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } }

.scn-dartle-sarcasm-young-innocent { 
  background: linear-gradient(180deg, #1a0a04 0%, #2a1008 40%, #4a180a 100%), radial-gradient(ellipse at 50% 20%, #6a2a10 0%, transparent 60%); 
}
.scn-dartle-sarcasm-young-innocent .dar-bg { position:absolute; inset:0 0 10% 0; background: linear-gradient(180deg, #1a0a04 0%, #0a0402 100%); }
.scn-dartle-sarcasm-young-innocent .candle { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:3%; height:20%; background: linear-gradient(180deg, #e8c880, #c8a050); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -6px 8px rgba(0,0,0,.4); animation: dar-candle 8s ease-in-out infinite; }
.scn-dartle-sarcasm-young-innocent .candle-glow { position:absolute; bottom:35%; left:50%; transform:translateX(-50%); width:10%; height:10%; background: radial-gradient(circle, rgba(255,200,80,.5) 0%, transparent 60%); border-radius: 50%; animation: dar-candleglow 2s ease-in-out infinite alternate; }
.scn-dartle-sarcasm-young-innocent .dartle-fig { position:absolute; bottom:10%; left:25%; width:12%; height:45%; background: linear-gradient(180deg, #2a1008 0%, #0a0402 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(5deg); transform-origin: bottom center; animation: dar-dartle 5s ease-in-out infinite; }
.scn-dartle-sarcasm-young-innocent .emly-fig { position:absolute; bottom:10%; right:30%; width:10%; height:35%; background: linear-gradient(180deg, #1a0a04 0%, #0a0402 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-3deg); transform-origin: bottom center; animation: dar-emly 6s ease-in-out infinite; }
.scn-dartle-sarcasm-young-innocent .table-dar { position:absolute; bottom:10%; left:35%; width:30%; height:4%; background: linear-gradient(90deg, #1a0a04, #2a1008); border-radius: 10%; box-shadow: 0 -2px 6px rgba(0,0,0,.5); }
.scn-dartle-sarcasm-young-innocent .shadow-dartle { position:absolute; bottom:8%; left:20%; width:18%; height:8%; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(4px); animation: dar-shadow-dartle 6s ease-in-out infinite alternate; }
.scn-dartle-sarcasm-young-innocent .shadow-emly { position:absolute; bottom:8%; right:25%; width:14%; height:6%; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(3px); animation: dar-shadow-emly 7s ease-in-out infinite alternate; }
@keyframes dar-candle { 0%,100% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-48%) rotate(1deg); } }
@keyframes dar-candleglow { 0% { opacity:.4; transform: translateX(-50%) scale(.9); } 50% { opacity:.8; transform: translateX(-48%) scale(1.1); } 100% { opacity:.5; transform: translateX(-52%) scale(1); } }
@keyframes dar-dartle { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } }
@keyframes dar-emly { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes dar-shadow-dartle { 0% { transform: scaleX(1); opacity:.6; } 50% { transform: scaleX(1.1); opacity:.8; } 100% { transform: scaleX(.9); opacity:.5; } }
@keyframes dar-shadow-emly { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.15); opacity:.7; } 100% { transform: scaleX(.85); opacity:.4; } }

.scn-education-discussed { background: linear-gradient(180deg, #e6c280 0%, #b87a3a 60%, #6b4a31 100%), radial-gradient(circle at 30% 40%, #f4ebd0 0%, transparent 70%); overflow: hidden; }
.scn-education-discussed .bg-wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #d9b082 0%, #a77a4a 100%); }
.scn-education-discussed .bg-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #6b4a31 0%, #4a3020 100%); border-radius: 30% 20% 0 0 / 20% 10% 0 0; }
.scn-education-discussed .window-light { position: absolute; top: 8%; left: 15%; width: 45%; height: 50%; background: radial-gradient(ellipse at 50% 50%, rgba(244,235,208,.7) 0%, rgba(244,235,208,.1) 60%, transparent 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 60px 30px rgba(244,235,208,.3); animation: ed-light 8s ease-in-out infinite alternate; }
.scn-education-discussed .table { position: absolute; bottom: 22%; left: 20%; right: 20%; height: 12%; background: linear-gradient(180deg, #8a6040 0%, #5a3a22 100%); border-radius: 8% 8% 4% 4% / 40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-education-discussed .board { position: absolute; bottom: 28%; left: 35%; width: 20%; height: 8%; background: linear-gradient(135deg, #c8a060 0%, #a07830 100%); border-radius: 6% 6% 4% 4%; box-shadow: inset 0 2px 8px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.2); border: 2px solid #6a4a2a; animation: ed-flicker 6s ease-in-out infinite; }
.scn-education-discussed .figure-aunt { position: absolute; bottom: 22%; left: 30%; width: 10%; height: 20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ed-sway 12s ease-in-out infinite; }
.scn-education-discussed .figure-dick { position: absolute; bottom: 22%; right: 25%; width: 12%; height: 22%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ed-sway 15s ease-in-out infinite reverse; }
.scn-education-discussed .warm-glow { position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 60%, rgba(232,180,100,.25) 0%, transparent 70%); pointer-events: none; animation: ed-light 10s ease-in-out infinite alternate; }
@keyframes ed-light { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes ed-flicker { 0% { box-shadow: inset 0 2px 8px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.2); } 50% { box-shadow: inset 0 2px 12px rgba(200,160,96,.4), 0 6px 12px rgba(0,0,0,.3); } 100% { box-shadow: inset 0 2px 8px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.2); } }
@keyframes ed-sway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-aunt-whip-pat { background: linear-gradient(180deg, #eeb462 0%, #d98a4a 50%, #5c3a21 100%), radial-gradient(ellipse at 50% 0%, #fdf6e3 0%, transparent 60%); overflow: hidden; }
.scn-aunt-whip-pat .bg-interior { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(92,58,33,.4) 100%); }
.scn-aunt-whip-pat .figure-aunt { position: absolute; bottom: 10%; left: 20%; right: 20%; height: 70%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; transform-origin: bottom center; animation: aw-breathe 8s ease-in-out infinite; }
.scn-aunt-whip-pat .shawl { position: absolute; bottom: 30%; left: 15%; right: 15%; height: 25%; background: linear-gradient(180deg, #b08060 0%, #8a6040 100%); border-radius: 60% 40% 20% 20% / 80% 60% 20% 20%; transform-origin: bottom center; animation: aw-sway 12s ease-in-out infinite; }
.scn-aunt-whip-pat .arm-whip { position: absolute; bottom: 55%; left: 55%; width: 35%; height: 12%; background: linear-gradient(135deg, #8a6040 0%, #5a3a22 100%); border-radius: 40% 40% 20% 20% / 60% 60% 10% 10%; transform-origin: 0% 50%; transform: rotate(-15deg); box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: aw-pat 4s ease-in-out infinite; }
.scn-aunt-whip-pat .head-narrator { position: absolute; bottom: 5%; left: 45%; width: 8%; height: 12%; background: linear-gradient(180deg, #5c3a21 0%, #3a2210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aw-bob 4s ease-in-out infinite; }
.scn-aunt-whip-pat .warm-lantern { position: absolute; top: 15%; right: 20%; width: 15%; height: 15%; background: radial-gradient(circle, #fdf6e3 0%, #eeb462 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(238,180,98,.4); animation: aw-glow 5s ease-in-out infinite alternate; }
.scn-aunt-whip-pat .shadow-overlay { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 60%); pointer-events: none; }
@keyframes aw-breathe { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes aw-sway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aw-pat { 0% { transform: rotate(-15deg) translateY(0); } 25% { transform: rotate(-5deg) translateY(-3px); } 50% { transform: rotate(-15deg) translateY(0); } 75% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes aw-bob { 0% { transform: translateY(0); } 25% { transform: translateY(-4px); } 50% { transform: translateY(0); } 75% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes aw-glow { 0% { opacity: .6; box-shadow: 0 0 40px 20px rgba(238,180,98,.3); } 50% { opacity: 1; box-shadow: 0 0 80px 40px rgba(238,180,98,.6); } 100% { opacity: .7; box-shadow: 0 0 50px 25px rgba(238,180,98,.4); } }

.scn-uriah-heep-intro { background: linear-gradient(135deg, #1f3235 0%, #3a4d4e 40%, #5c6a6b 100%), radial-gradient(ellipse at 20% 50%, #e0b868 0%, transparent 80%); overflow: hidden; }
.scn-uriah-heep-intro .bg-corridor { position: absolute; inset: 0; background: linear-gradient(90deg, #1f3235 0%, #3a4d4e 30%, #5c6a6b 70%, #3a4d4e 100%); }
.scn-uriah-heep-intro .door-frame { position: absolute; top: 10%; left: 60%; width: 30%; height: 80%; background: linear-gradient(180deg, #2a3a3c 0%, #1a2a2c 100%); border-radius: 4% 4% 0 0; border: 4px solid #4a5b5e; box-shadow: inset 0 0 30px rgba(0,0,0,.5); transform: perspective(600px) rotateY(-10deg); transform-origin: left center; }
.scn-uriah-heep-intro .figure-uriah { position: absolute; bottom: 0; left: 20%; width: 18%; height: 65%; background: linear-gradient(180deg, #2a3a3c 0%, #0a1a1c 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: uh-enter 15s ease-in-out infinite; }
.scn-uriah-heep-intro .hand-point { position: absolute; bottom: 40%; left: 38%; width: 25%; height: 8%; background: linear-gradient(135deg, #4a5b5e 0%, #2a3a3c 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform-origin: 0% 50%; transform: rotate(10deg); box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: uh-point 6s ease-in-out infinite; }
.scn-uriah-heep-intro .figure-aunt { position: absolute; bottom: 0; right: 15%; width: 20%; height: 55%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: uh-flicker 8s ease-in-out infinite; }
.scn-uriah-heep-intro .shadow-stripe-1 { position: absolute; top: 0; left: 10%; width: 8%; height: 100%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 40%, rgba(0,0,0,.4) 100%); animation: uh-slide 20s linear infinite; }
.scn-uriah-heep-intro .shadow-stripe-2 { position: absolute; top: 0; left: 40%; width: 6%; height: 100%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 50%, rgba(0,0,0,.3) 100%); animation: uh-slide 25s linear infinite reverse; }
.scn-uriah-heep-intro .shadow-stripe-3 { position: absolute; top: 0; left: 70%; width: 10%; height: 100%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 60%, rgba(0,0,0,.5) 100%); animation: uh-slide 30s linear infinite; }
@keyframes uh-enter { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(5px) scaleY(1.02); } 50% { transform: translateX(-5px) scaleY(0.98); } 75% { transform: translateX(3px) scaleY(1.01); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes uh-point { 0% { transform: rotate(10deg) scaleX(1); } 25% { transform: rotate(20deg) scaleX(1.05); } 50% { transform: rotate(5deg) scaleX(0.95); } 75% { transform: rotate(15deg) scaleX(1.02); } 100% { transform: rotate(10deg) scaleX(1); } }
@keyframes uh-flicker { 0% { opacity: .8; } 20% { opacity: 1; } 50% { opacity: .7; } 80% { opacity: .9; } 100% { opacity: .8; } }
@keyframes uh-slide { 0% { transform: translateX(0); } 50% { transform: translateX(20px); } 100% { transform: translateX(0); } }

.scn-purpose-education { background: linear-gradient(180deg, #4e3628 0%, #7a5a42 50%, #3a281c 100%), radial-gradient(circle at 50% 30%, #d9a468 0%, transparent 70%); overflow: hidden; }
.scn-purpose-education .bg-bookshelf { position: absolute; top: 0; left: 0; right: 0; height: 70%; background: linear-gradient(90deg, #5a3a2a 0%, #6a4a3a 20%, #5a3a2a 40%, #6a4a3a 60%, #5a3a2a 80%, #6a4a3a 100%); border-radius: 0 0 10% 10%; box-shadow: inset 0 10px 30px rgba(0,0,0,.4); }
.scn-purpose-education .mantel { position: absolute; bottom: 35%; left: 15%; right: 15%; height: 6%; background: linear-gradient(180deg, #8a6a52 0%, #5a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-purpose-education .fire-glow { position: absolute; bottom: 25%; left: 35%; width: 20%; height: 20%; background: radial-gradient(circle, #d9a468 0%, #b87a3a 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(217,164,104,.5); animation: pe-fire 4s ease-in-out infinite alternate; }
.scn-purpose-education .figure-aunt { position: absolute; bottom: 5%; left: 25%; width: 15%; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-bob 14s ease-in-out infinite; }
.scn-purpose-education .figure-wickfield { position: absolute; bottom: 5%; right: 25%; width: 16%; height: 38%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pe-bob 16s ease-in-out infinite reverse; }
.scn-purpose-education .floating-mote-1 { position: absolute; top: 40%; left: 30%; width: 4px; height: 4px; background: #f4ebd0; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(244,235,208,.6); animation: pe-drift 12s ease-in-out infinite; }
.scn-purpose-education .floating-mote-2 { position: absolute; top: 50%; left: 60%; width: 6px; height: 6px; background: #f4ebd0; border-radius: 50%; box-shadow: 0 0 8px 3px rgba(244,235,208,.5); animation: pe-drift 18s ease-in-out infinite 3s; }
@keyframes pe-fire { 0% { opacity: .7; transform: scaleY(1) translateY(0); } 50% { opacity: 1; transform: scaleY(1.08) translateY(-4px); } 100% { opacity: .8; transform: scaleY(0.95) translateY(2px); } }
@keyframes pe-bob { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pe-drift { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; } 10% { opacity: .9; } 50% { transform: translateY(-30px) translateX(15px) scale(1.2); opacity: .7; } 90% { opacity: .8; } 100% { transform: translateY(-60px) translateX(30px) scale(0.5); opacity: 0; } }

/* morning-at-steerforths — window-lit calm */
.scn-morning-at-steerforths {
  background: linear-gradient(135deg, #f5e6d0 0%, #d4c4a8 40%, #e8d8c0 100%),
              radial-gradient(ellipse at 70% 30%, #fff8e8 0%, transparent 60%);
}
.scn-morning-at-steerforths .window-pane {
  position: absolute; left:8%; top:10%; width:35%; height:75%;
  background: linear-gradient(180deg, #c8e8f8 0%, #d8eef8 60%, #b0d0e8 100%);
  border: 6px solid #8a7a6a; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,232,248,.35);
  animation: ms-glow 8s ease-in-out infinite alternate;
}
.scn-morning-at-steerforths .curtain-l,
.scn-morning-at-steerforths .curtain-r {
  position: absolute; top:8%; width:10%; height:80%;
  background: linear-gradient(180deg, #d4c8b8 0%, #c0b4a4 50%, #b0a494 100%);
}
.scn-morning-at-steerforths .curtain-l {
  left:6%; border-radius: 0 20% 20% 0;
  animation: ms-sway 12s ease-in-out infinite;
}
.scn-morning-at-steerforths .curtain-r {
  right:56%; border-radius: 20% 0 0 20%;
  animation: ms-sway 12s ease-in-out 6s infinite;
}
.scn-morning-at-steerforths .figure {
  position: absolute; bottom:25%; left:50%; width:22px; height:50px;
  background: linear-gradient(180deg, #4a4038 0%, #3a3028 60%, #2a2018 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ms-pose 6s ease-in-out infinite;
}
.scn-morning-at-steerforths .chair {
  position: absolute; bottom:20%; right:20%; width:50px; height:40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.15);
}
.scn-morning-at-steerforths .table {
  position: absolute; bottom:15%; right:30%; width:60px; height:12px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.1);
}
.scn-morning-at-steerforths .carpet {
  position: absolute; bottom:8%; left:20%; right:15%; height:20%;
  background: linear-gradient(180deg, #8a7060 0%, #6a5040 50%, #5a4030 100%);
  border-radius: 40% 40% 0 0; opacity: .8;
}
.scn-morning-at-steerforths .light-beam {
  position: absolute; left:20%; top:10%; width:40%; height:90%;
  background: linear-gradient(135deg, rgba(255,248,220,.3) 0%, transparent 60%);
  animation: ms-beam 6s ease-in-out infinite alternate;
}
@keyframes ms-glow {
  0% { box-shadow: inset 0 0 20px rgba(200,232,248,.25); }
  50% { box-shadow: inset 0 0 40px rgba(200,232,248,.45); }
  100% { box-shadow: inset 0 0 20px rgba(200,232,248,.25); }
}
@keyframes ms-sway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ms-pose {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ms-beam {
  0% { opacity: .4; transform: scaleX(1); }
  50% { opacity: .7; transform: scaleX(1.05); }
  100% { opacity: .5; transform: scaleX(.98); }
}

/* plan-surprise-natives — bright interior, two figures */
.scn-plan-surprise-natives {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 50%, #d4c0a0 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 70%);
}
.scn-plan-surprise-natives .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e8ddd0 0%, #d4c4b0 50%, #c8b8a0 100%);
}
.scn-plan-surprise-natives .table {
  position: absolute; bottom:20%; left:20%; right:20%; height:18px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.2);
}
.scn-plan-surprise-natives .figure-s,
.scn-plan-surprise-natives .figure-d {
  position: absolute; bottom:25%; width:24px; height:55px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 60%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-plan-surprise-natives .figure-s {
  left:28%; animation: ps-gesture 5s ease-in-out infinite;
}
.scn-plan-surprise-natives .figure-d {
  right:28%; animation: ps-listen 5s ease-in-out 1s infinite;
}
.scn-plan-surprise-natives .map {
  position: absolute; bottom:24%; left:38%; right:38%; height:12px;
  background: linear-gradient(135deg, #c8b88a 0%, #b0a070 50%, #d0c098 100%);
  border-radius: 2px; transform: rotate(-2deg);
  animation: ps-map 15s ease-in-out infinite alternate;
}
.scn-plan-surprise-natives .lamp {
  position: absolute; top:8%; left:45%; right:45%; height:18px;
  background: radial-gradient(ellipse, #ffd880 0%, #d4b060 70%);
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(255,216,128,.4);
  animation: ps-swing 6s ease-in-out infinite;
}
.scn-plan-surprise-natives .rug {
  position: absolute; bottom:5%; left:22%; right:22%; height:22%;
  background: linear-gradient(180deg, #d4a080 0%, #b08060 50%, #90604a 100%);
  border-radius: 50% 50% 0 0; opacity: .7;
}
.scn-plan-surprise-natives .chair-bg {
  position: absolute; bottom:18%; right:15%; width:40px; height:45px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 2px 6px rgba(0,0,0,.1);
}
@keyframes ps-gesture {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  40% { transform: translateX(4px) translateY(-3px) rotate(3deg); }
  70% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes ps-listen {
  0% { transform: translateX(0) rotate(1deg); }
  40% { transform: translateX(-2px) rotate(-1deg); }
  70% { transform: translateX(-1px) rotate(0deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ps-map {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(-3deg) scale(.98); }
}
@keyframes ps-swing {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}

/* omer-and-joram-news — warm tailor shop interior */
.scn-omer-and-joram-news {
  background: linear-gradient(180deg, #e8d8c0 0%, #d4c0a8 40%, #c0a888 100%),
              radial-gradient(ellipse at 60% 50%, #f0e0c8 0%, transparent 60%);
}
.scn-omer-and-joram-news .floor {
  position: absolute; bottom:0; left:0; right:0; height:28%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-omer-and-joram-news .counter {
  position: absolute; bottom:22%; left:15%; right:15%; height:20px;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 50%, #6a5a3a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.2);
  animation: oj-counter 10s ease-in-out infinite alternate;
}
.scn-omer-and-joram-news .figure-omer {
  position: absolute; bottom:30%; left:42%; width:32px; height:55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: oj-omer 7s ease-in-out infinite;
}
.scn-omer-and-joram-news .fabric-rolls {
  position: absolute; bottom:42%; left:20%; width:14%; height:30%;
  background: linear-gradient(180deg, #b09878 0%, #9a8060 40%, #8a7050 70%, #7a6040 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: inset -4px 0 8px rgba(0,0,0,.2);
}
.scn-omer-and-joram-news .garland {
  position: absolute; top:12%; left:10%; right:10%; height:16px;
  background: linear-gradient(90deg, #d4a060 0%, #c09050 20%, #b08040 40%, #c09860 60%, #d4a060 80%, #c09050 100%);
  border-radius: 50% 50% 0 0; opacity: .7;
  animation: oj-garland 8s ease-in-out infinite alternate;
}
.scn-omer-and-joram-news .chair {
  position: absolute; bottom:20%; right:18%; width:36px; height:42px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 2px 6px rgba(0,0,0,.1);
}
.scn-omer-and-joram-news .window-bg {
  position: absolute; right:10%; top:15%; width:28%; height:50%;
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 60%, #d0c0a0 100%);
  border: 4px solid #7a6a4a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(240,232,208,.3);
  animation: oj-window 12s ease-in-out infinite alternate;
}
@keyframes oj-counter {
  0% { transform: translateY(0); box-shadow: 0 4px 12px rgba(0,0,0,.2); }
  50% { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.25); }
  100% { transform: translateY(0); box-shadow: 0 4px 12px rgba(0,0,0,.2); }
}
@keyframes oj-omer {
  0% { transform: translateY(0) rotate(-1deg); }
  40% { transform: translateY(-3px) rotate(0deg); }
  70% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes oj-garland {
  0% { transform: translateY(0) scaleY(1); opacity: .6; }
  50% { transform: translateY(-3px) scaleY(1.1); opacity: .8; }
  100% { transform: translateY(0) scaleY(1); opacity: .7; }
}
@keyframes oj-window {
  0% { box-shadow: inset 0 0 20px rgba(240,232,208,.25); }
  50% { box-shadow: inset 0 0 35px rgba(240,232,208,.4); }
  100% { box-shadow: inset 0 0 20px rgba(240,232,208,.25); }
}

/* barksis-wife-inquiry — calm bright counter scene */
.scn-barksis-wife-inquiry {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 45%, #d0c0a0 100%),
              radial-gradient(ellipse at 60% 40%, #fff8e8 0%, transparent 60%);
}
.scn-barksis-wife-inquiry .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a2a 100%);
  border-radius: 15% 15% 0 0;
}
.scn-barksis-wife-inquiry .counter {
  position: absolute; bottom:22%; left:12%; right:12%; height:22px;
  background: linear-gradient(180deg, #a09070 0%, #8a7a5a 50%, #7a6a4a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.18);
  animation: bw-counter 9s ease-in-out infinite alternate;
}
.scn-barksis-wife-inquiry .figure-omer {
  position: absolute; bottom:32%; left:40%; width:34px; height:58px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: bw-omer 8s ease-in-out infinite;
}
.scn-barksis-wife-inquiry .shelf {
  position: absolute; bottom:48%; left:18%; right:18%; height:8px;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.1);
  animation: bw-shelf 14s ease-in-out infinite alternate;
}
.scn-barksis-wife-inquiry .shelf::after {
  content: ''; position: absolute; left:10%; top:-20px; width:12%; height:20px;
  background: linear-gradient(180deg, #c0a880 0%, #a08860 100%);
  border-radius: 3px; box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.scn-barksis-wife-inquiry .chair {
  position: absolute; bottom:20%; right:16%; width:38px; height:44px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 2px 6px rgba(0,0,0,.1);
}
.scn-barksis-wife-inquiry .window-bg {
  position: absolute; left:8%; top:12%; width:25%; height:55%;
  background: linear-gradient(180deg, #f5ecd8 0%, #e8dcc4 60%, #d8ccb0 100%);
  border: 4px solid #7a6a4a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(245,236,216,.3);
  animation: bw-window 10s ease-in-out infinite alternate;
}
.scn-barksis-wife-inquiry .lamp-small {
  position: absolute; bottom:14%; left:14%; width:10px; height:14px;
  background: radial-gradient(ellipse, #ffd880 0%, #d4b060 70%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 6px rgba(255,216,128,.35);
  animation: bw-lamp 6s ease-in-out infinite alternate;
}
@keyframes bw-counter {
  0% { transform: translateY(0); box-shadow: 0 4px 12px rgba(0,0,0,.18); }
  50% { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.22); }
  100% { transform: translateY(0); box-shadow: 0 4px 12px rgba(0,0,0,.18); }
}
@keyframes bw-omer {
  0% { transform: translateY(0) rotate(0deg); }
  35% { transform: translateY(-2px) rotate(1deg); }
  65% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes bw-shelf {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(.99); }
}
@keyframes bw-window {
  0% { box-shadow: inset 0 0 20px rgba(245,236,216,.25); }
  50% { box-shadow: inset 0 0 40px rgba(245,236,216,.4); }
  100% { box-shadow: inset 0 0 20px rgba(245,236,216,.25); }
}
@keyframes bw-lamp {
  0% { opacity: .7; transform: scale(1); box-shadow: 0 0 16px 4px rgba(255,216,128,.3); }
  50% { opacity: 1; transform: scale(1.08); box-shadow: 0 0 28px 8px rgba(255,216,128,.5); }
  100% { opacity: .8; transform: scale(.98); box-shadow: 0 0 20px 6px rgba(255,216,128,.35); }
}

/* Scene 1: aunt-recalls-david */
.scn-aunt-recalls-david {
  background: linear-gradient(180deg, #f5e6d3 0%, #e3d0b5 100%), radial-gradient(ellipse at 70% 20%, #fffbe6 0%, transparent 60%);
}
.scn-aunt-recalls-david .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,248,230,0.15) 0%, transparent 100%);
}
.scn-aunt-recalls-david .window {
  position: absolute; top: 8%; left: 12%; width: 22%; height: 40%;
  background: linear-gradient(180deg, #f8f0e0 0%, #e0d0b0 100%);
  border-radius: 6% 6% 2% 2%; box-shadow: inset 0 0 20px rgba(255,240,180,0.4);
  animation: ard-window 12s ease-in-out infinite alternate;
}
.scn-aunt-recalls-david .sunbeam {
  position: absolute; top: 10%; left: 15%; width: 40%; height: 70%;
  background: linear-gradient(135deg, rgba(255,250,220,0.25) 0%, transparent 100%);
  transform: rotate(-12deg); transform-origin: top left;
  animation: ard-sunbeam 8s ease-in-out infinite alternate;
}
.scn-aunt-recalls-david .sofa {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 22%;
  background: linear-gradient(135deg, #a08060 0%, #705040 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: ard-sofa 6s ease-in-out infinite;
}
.scn-aunt-recalls-david .figure-aunt {
  position: absolute; bottom: 20%; left: 35%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ard-figure-aunt 4s ease-in-out infinite alternate;
}
.scn-aunt-recalls-david .figure-dick {
  position: absolute; bottom: 20%; left: 52%; width: 12%; height: 34%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ard-figure-dick 4.5s ease-in-out infinite alternate;
}
.scn-aunt-recalls-david .table {
  position: absolute; bottom: 18%; left: 46%; width: 8%; height: 4%;
  background: #6a5040; border-radius: 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-aunt-recalls-david .picture {
  position: absolute; top: 12%; left: 62%; width: 14%; height: 24%;
  background: linear-gradient(135deg, #c8b090 0%, #a89070 100%);
  border: 3px solid #5a4030; border-radius: 4%;
  animation: ard-picture 10s ease-in-out infinite;
}
@keyframes ard-window {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes ard-sunbeam {
  0% { transform: rotate(-12deg) translateX(0); opacity: 0.4; }
  50% { transform: rotate(-10deg) translateX(15px); opacity: 0.6; }
  100% { transform: rotate(-12deg) translateX(0); opacity: 0.4; }
}
@keyframes ard-sofa {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.005); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ard-figure-aunt {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  70% { transform: translateY(1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ard-figure-dick {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(0.5deg); }
  75% { transform: translateY(1px) rotate(-0.3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ard-picture {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.01); }
  100% { transform: rotate(0deg) scale(1); }
}

/* Scene 2: aunt-blames-marriage */
.scn-aunt-blames-marriage {
  background: linear-gradient(135deg, #f5efe8 0%, #a39b8c 100%), radial-gradient(ellipse at 80% 70%, #c8553d 0%, transparent 60%);
}
.scn-aunt-blames-marriage .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.15) 100%);
}
.scn-aunt-blames-marriage .fireplace {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-aunt-blames-marriage .fire-glow {
  position: absolute; bottom: 28%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 40%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: abm-fire 0.8s ease-in-out infinite alternate;
}
.scn-aunt-blames-marriage .mantel {
  position: absolute; bottom: 58%; left: 22%; width: 56%; height: 4%;
  background: #5a4030; border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-aunt-blames-marriage .figure-aunt {
  position: absolute; bottom: 22%; left: 32%; width: 18%; height: 48%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: abm-aunt 1.5s ease-in-out infinite alternate;
}
.scn-aunt-blames-marriage .figure-dick {
  position: absolute; bottom: 22%; left: 55%; width: 14%; height: 36%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: abm-dick 2s ease-in-out infinite alternate;
}
.scn-aunt-blames-marriage .vase {
  position: absolute; bottom: 60%; left: 48%; width: 6%; height: 12%;
  background: linear-gradient(135deg, #a08060 0%, #705040 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: abm-vase 3s ease-in-out infinite;
}
.scn-aunt-blames-marriage .clock {
  position: absolute; bottom: 62%; left: 42%; width: 8%; height: 8%;
  background: radial-gradient(circle, #d0c0a0 0%, #a09070 100%);
  border-radius: 50%; border: 2px solid #4a3020;
  animation: abm-clock 1.2s ease-in-out infinite alternate;
}
@keyframes abm-fire {
  0% { opacity: 0.7; transform: scale(1) rotate(0deg); }
  50% { opacity: 1; transform: scale(1.08) rotate(2deg); }
  100% { opacity: 0.75; transform: scale(0.95) rotate(-1deg); }
}
@keyframes abm-aunt {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(-3deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(6px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes abm-dick {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  30% { transform: translateY(-2px) rotate(1deg) scale(0.98); }
  70% { transform: translateY(1px) rotate(-0.5deg) scale(1.02); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes abm-vase {
  0% { transform: rotate(3deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-3px); }
  50% { transform: rotate(1deg) translateY(0); }
  75% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes abm-clock {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-15deg); }
}

/* Scene 3: question-davids-son */
.scn-question-davids-son {
  background: linear-gradient(180deg, #fdf4e3 0%, #f0e2ca 100%), radial-gradient(ellipse at 30% 40%, #fff8e7 0%, transparent 70%);
}
.scn-question-davids-son .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,248,235,0.2) 0%, transparent 100%);
}
.scn-question-davids-son .window {
  position: absolute; top: 6%; left: 10%; width: 25%; height: 45%;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 6% 6% 2% 2%; box-shadow: inset 0 0 24px rgba(255,240,180,0.3);
  animation: qd-window 10s ease-in-out infinite alternate;
}
.scn-question-davids-son .figure-left {
  position: absolute; bottom: 20%; left: 30%; width: 16%; height: 42%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: qd-figure-left 5s ease-in-out infinite alternate;
}
.scn-question-davids-son .figure-right {
  position: absolute; bottom: 20%; left: 55%; width: 13%; height: 36%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: qd-figure-right 5.5s ease-in-out infinite alternate;
}
.scn-question-davids-son .portrait {
  position: absolute; top: 12%; left: 52%; width: 12%; height: 22%;
  background: linear-gradient(135deg, #c0a880 0%, #a08060 100%);
  border: 3px solid #4a3020; border-radius: 4%;
  animation: qd-portrait 8s ease-in-out infinite;
}
.scn-question-davids-son .pedestal {
  position: absolute; bottom: 50%; left: 54%; width: 8%; height: 3%;
  background: #5a4030; border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: qd-pedestal 12s ease-in-out infinite alternate;
}
@keyframes qd-window {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.015) translateY(-2px); }
  100% { opacity: 0.9; transform: scale(1) translateY(0); }
}
@keyframes qd-figure-left {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.01) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes qd-figure-right {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.008) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes qd-portrait {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-3px) rotate(1deg) scale(1.01); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes qd-pedestal {
  0% { box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
  50% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
  100% { box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
}

/* Scene 4: aunt-muses-over-breakfast */
.scn-aunt-muses-over-breakfast {
  background: linear-gradient(180deg, #fcf3e0 0%, #e8d8be 100%), radial-gradient(ellipse at 50% 10%, #fffbe3 0%, transparent 60%);
}
.scn-aunt-muses-over-breakfast .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,248,230,0.1) 0%, transparent 100%);
}
.scn-aunt-muses-over-breakfast .table {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(135deg, #a08060 0%, #7a5a40 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,0.15);
  animation: amb-table 6s ease-in-out infinite alternate;
}
.scn-aunt-muses-over-breakfast .teapot {
  position: absolute; bottom: 32%; left: 42%; width: 16%; height: 18%;
  background: linear-gradient(135deg, #d0b090 0%, #a08060 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: amb-teapot 4s ease-in-out infinite;
}
.scn-aunt-muses-over-breakfast .cup {
  position: absolute; bottom: 22%; left: 55%; width: 8%; height: 10%;
  background: linear-gradient(135deg, #e0c8b0 0%, #c0a080 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  animation: amb-cup 3s ease-in-out infinite alternate;
}
.scn-aunt-muses-over-breakfast .figure-aunt {
  position: absolute; bottom: 20%; left: 20%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: amb-figure-aunt 5s ease-in-out infinite alternate;
}
.scn-aunt-muses-over-breakfast .cat {
  position: absolute; bottom: 22%; left: 65%; width: 10%; height: 8%;
  background: linear-gradient(135deg, #7a6040 0%, #4a3020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: amb-cat 2s ease-in-out infinite alternate;
}
.scn-aunt-muses-over-breakfast .spill {
  position: absolute; bottom: 20%; left: 58%; width: 20%; height: 5%;
  background: radial-gradient(circle, #d0c0a0 0%, #b0a080 100%);
  border-radius: 50%; opacity: 0.7;
  animation: amb-spill 4s ease-in-out infinite alternate;
}
@keyframes amb-table {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.002); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes amb-teapot {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  70% { transform: translateY(1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes amb-cup {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes amb-figure-aunt {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes amb-cat {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.05); }
  100% { transform: rotate(-10deg) scale(1); }
}
@keyframes amb-spill {
  0% { transform: scale(1) rotate(0deg); opacity: 0.5; }
  50% { transform: scale(1.15) rotate(4deg); opacity: 0.8; }
  100% { transform: scale(0.95) rotate(-3deg); opacity: 0.5; }
}

.scn-dora-accuses-david-of-regret { background: linear-gradient(180deg, #fcf5e8 0%, #f0e0c0 100%), radial-gradient(ellipse at 40% 30%, #fff8e0 0%, transparent 50%); }
.scn-dora-accuses-david-of-regret .wall { position:absolute; inset:0; background: linear-gradient(180deg, #fcf5e8 0%, #e8d0a0 100%); opacity:0.6; }
.scn-dora-accuses-david-of-regret .window { position:absolute; top:10%; left:20%; width:30%; height:40%; background: linear-gradient(135deg, #fff8e0 0%, #e8d0a0 100%); border-radius:5px; box-shadow: inset 0 0 20px rgba(255,255,200,0.5); animation: drr-light 4s ease-in-out infinite; }
.scn-dora-accuses-david-of-regret .lamp { position:absolute; top:5%; left:70%; width:20px; height:40px; background: radial-gradient(circle at 50% 20%, #ffcc00 0%, #b08040 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,204,0,0.3); animation: drr-flicker 2s ease-in-out infinite; }
.scn-dora-accuses-david-of-regret .table { position:absolute; bottom:20%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:5px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-dora-accuses-david-of-regret .dora-fig { position:absolute; bottom:20%; left:45%; width:14%; height:40%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: drr-tremble 3s ease-in-out infinite; }
.scn-dora-accuses-david-of-regret .david-fig { position:absolute; bottom:20%; right:30%; width:12%; 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: drr-shift 4s ease-in-out infinite; }
.scn-dora-accuses-david-of-regret .shadow { position:absolute; bottom:0; left:30%; width:40%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); animation: drr-shadow 6s ease-in-out infinite; }
@keyframes drr-light { 0%,100% { opacity:1; transform:scaleX(1); } 50% { opacity:0.8; transform:scaleX(1.02); } }
@keyframes drr-flicker { 0%,100% { opacity:1; box-shadow: 0 0 30px 10px rgba(255,204,0,0.3); } 25% { opacity:0.9; box-shadow: 0 0 20px 5px rgba(255,204,0,0.2); } 75% { opacity:1.1; box-shadow: 0 0 40px 15px rgba(255,204,0,0.4); } }
@keyframes drr-tremble { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(2deg) translateX(2px); } 75% { transform: rotate(-2deg) translateX(-2px); } }
@keyframes drr-shift { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(-1deg); } }
@keyframes drr-shadow { 0%,100% { opacity:0.3; } 50% { opacity:0.5; } }

.scn-dora-cries-over-housekeeping { background: linear-gradient(180deg, #e8ddd0 0%, #c0b0a0 100%), radial-gradient(ellipse at 30% 60%, #404060 0%, transparent 70%); }
.scn-dora-cries-over-housekeeping .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8ddd0 0%, #b0a090 100%); }
.scn-dora-cries-over-housekeeping .window { position:absolute; top:15%; left:10%; width:25%; height:35%; background: linear-gradient(135deg, #fff8e0 0%, #d0c0b0 100%); border-radius:5px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: dcr-light 5s ease-in-out infinite; }
.scn-dora-cries-over-housekeeping .table { position:absolute; bottom:25%; left:40%; width:25%; height:8%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:5px; }
.scn-dora-cries-over-housekeeping .couch { position:absolute; bottom:20%; left:5%; width:35%; height:30%; background: linear-gradient(180deg, #705a40 0%, #403028 100%); border-radius:40% 40% 20% 20%; }
.scn-dora-cries-over-housekeeping .dora-cry { position:absolute; bottom:20%; left:40%; width:15%; height:45%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dcr-sob 3s ease-in-out infinite; }
.scn-dora-cries-over-housekeeping .david-still { position:absolute; bottom:22%; left:60%; width:12%; height:40%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dcr-still 4s ease-in-out infinite; }
.scn-dora-cries-over-housekeeping .glass { position:absolute; bottom:30%; left:55%; width:4%; height:6%; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(200,200,200,0.2) 100%); border-radius:20% 20% 10% 10%; animation: dcr-glass 2s ease-in-out infinite; }
@keyframes dcr-light { 0%,100% { opacity:0.9; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.05); } }
@keyframes dcr-sob { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-6px) rotate(2deg); } 75% { transform: translateY(8px) rotate(-2deg); } }
@keyframes dcr-still { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes dcr-glass { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } }

.scn-aunt-refuses-to-advise { background: linear-gradient(180deg, #3a1a0a 0%, #5a2a0a 50%, #8a4a2a 100%), radial-gradient(ellipse at 50% 80%, #ffa040 0%, transparent 60%); }
.scn-aunt-refuses-to-advise .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a1a0a 0%, #2a0a00 100%); opacity:0.7; }
.scn-aunt-refuses-to-advise .hearth { position:absolute; bottom:15%; left:50%; width:20%; height:25%; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a0a00 100%); border-radius:20% 20% 10% 10%; }
.scn-aunt-refuses-to-advise .fire { position:absolute; bottom:20%; left:50%; width:10%; height:15%; transform:translateX(-50%); background: radial-gradient(circle at 50% 80%, #ff6600 0%, #ffaa00 40%, transparent 70%); border-radius:10%; animation: aref-fire 2s ease-in-out infinite; }
.scn-aunt-refuses-to-advise .aunt-fig { position:absolute; bottom:20%; left:35%; width:18%; height:45%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom right; animation: aref-rock 4s ease-in-out infinite; }
.scn-aunt-refuses-to-advise .david-fig { position:absolute; bottom:22%; right:35%; width:14%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aref-stand 5s ease-in-out infinite; }
.scn-aunt-refuses-to-advise .chair { position:absolute; bottom:18%; left:30%; width:22%; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:10% 10% 30% 30%; }
.scn-aunt-refuses-to-advise .rug { position:absolute; bottom:10%; left:25%; width:50%; height:10%; background: linear-gradient(90deg, #8a4a2a 0%, #6a3a1a 50%, #8a4a2a 100%); border-radius:20%; animation: aref-rug 3s ease-in-out infinite; }
@keyframes aref-fire { 0%,100% { transform: translateX(-50%) scaleX(1); opacity:0.9; } 50% { transform: translateX(-50%) scaleX(1.2); opacity:1; } }
@keyframes aref-rock { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } }
@keyframes aref-stand { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-1deg); } 70% { transform: translateY(2px) rotate(1deg); } }
@keyframes aref-rug { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }

.scn-aunt-returns-by-garden-path { background: linear-gradient(180deg, #0a1628 0%, #1a2a3a 50%, #2a3a4a 100%), radial-gradient(ellipse at 30% 80%, #c0d0e0 0%, transparent 60%); }
.scn-aunt-returns-by-garden-path .sky { position:absolute; inset:0; background: linear-gradient(180deg, #0a1628 0%, #15203a 100%); }
.scn-aunt-returns-by-garden-path .moon { position:absolute; top:8%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #e0e8f0 0%, #c0d0e0 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(192,208,224,0.5); animation: agp-moon 20s ease-in-out infinite; }
.scn-aunt-returns-by-garden-path .path { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:40% 40% 0 0; }
.scn-aunt-returns-by-garden-path .cottage { position:absolute; bottom:25%; left:10%; width:15%; height:30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-aunt-returns-by-garden-path .aunt-walk { position:absolute; bottom:15%; left:40%; width:12%; height:35%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: agp-walk 4s ease-in-out infinite; }
.scn-aunt-returns-by-garden-path .lantern { position:absolute; bottom:30%; left:42%; width:6px; height:10px; background: radial-gradient(circle at 50% 50%, #ffd680 0%, #b08040 60%); border-radius:20%; box-shadow: 0 0 30px 10px rgba(255,214,128,0.7); animation: agp-lantern 4s ease-in-out infinite; }
.scn-aunt-returns-by-garden-path .bush { position:absolute; bottom:18%; right:10%; width:20%; height:25%; background: linear-gradient(180deg, #1a3a1a 0%, #0a1a0a 100%); border-radius:50% 50% 0 0; animation: agp-bush 8s ease-in-out infinite; }
@keyframes agp-moon { 0%,100% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } }
@keyframes agp-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(20px) rotate(-2deg); } 75% { transform: translateX(30px) rotate(2deg); } 100% { transform: translateX(40px) rotate(-2deg); } }
@keyframes agp-lantern { 0%,100% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(2px,-3px) rotate(5deg); } }
@keyframes agp-bush { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } }

.scn-mr-chillip-murdstone-tyranny {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 60%, #0d0804 100%), radial-gradient(ellipse at 50% 100%, #3a2418 0%, transparent 70%);
}
.scn-mr-chillip-murdstone-tyranny .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
}
.scn-mr-chillip-murdstone-tyranny .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0a04 0%, #2a1a0e 100%);
}
.scn-mr-chillip-murdstone-tyranny .table {
  position:absolute; bottom:25%; left:30%; width:80px; height:20px; background:#3a2a1a; border-radius:4px; box-shadow:0 2px 4px rgba(0,0,0,0.5);
}
.scn-mr-chillip-murdstone-tyranny .glass {
  position:absolute; bottom:38%; left:38%; width:12px; height:16px; background: radial-gradient(circle, #b08040 0%, transparent 60%); border-radius:0 0 4px 4px; box-shadow:0 0 10px 2px rgba(176,128,64,0.5); animation: mt1-glow 3s ease-in-out infinite;
}
.scn-mr-chillip-murdstone-tyranny .candle {
  position:absolute; bottom:42%; left:37%; width:4px; height:12px; background:#e0c080; box-shadow:0 0 8px 2px #ffd060; animation: mt1-flicker 1.5s ease-in-out infinite;
}
.scn-mr-chillip-murdstone-tyranny .figure-chillip {
  position:absolute; bottom:24%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mt1-sway 5s ease-in-out infinite;
}
.scn-mr-chillip-murdstone-tyranny .shadow-figure {
  position:absolute; bottom:20%; right:20%; width:50px; height:80px; background: rgba(30,10,0,0.8); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; animation: mt1-loom 8s ease-in-out infinite alternate;
}
.scn-mr-chillip-murdstone-tyranny .vignette {
  position:absolute; inset:0; pointer-events:none; background: radial-gradient(ellipse at 50% 50%, transparent 0%, rgba(0,0,0,0.4) 100%); animation: mt1-shadow 6s ease-in-out infinite alternate;
}
@keyframes mt1-shadow { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes mt1-glow { 0% { box-shadow:0 0 6px 1px rgba(176,128,64,0.3); } 50% { box-shadow:0 0 14px 4px rgba(176,128,64,0.6); } 100% { box-shadow:0 0 8px 2px rgba(176,128,64,0.4); } }
@keyframes mt1-flicker { 0% { transform:scaleY(1); } 25% { transform:scaleY(0.8); } 50% { transform:scaleY(1.1); } 75% { transform:scaleY(0.9); } 100% { transform:scaleY(1); } }
@keyframes mt1-sway { 0% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(2px) rotate(2deg); } 100% { transform:translateX(0) rotate(-2deg); } }
@keyframes mt1-loom { 0% { transform:scale(1) translateY(0); opacity:0.6; } 50% { transform:scale(1.05) translateY(-5px); opacity:0.9; } 100% { transform:scale(1) translateY(0); opacity:0.6; } }

.scn-mr-chillip-murdstone-doom {
  background: linear-gradient(180deg, #1f1410 0%, #0f0a08 60%, #050303 100%), radial-gradient(ellipse at 50% 30%, #2a1a12 0%, transparent 60%);
}
.scn-mr-chillip-murdstone-doom .wall {
  position:absolute; inset:0; background:#3a2a20;
}
.scn-mr-chillip-murdstone-doom .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%; background:#1a0e08;
}
.scn-mr-chillip-murdstone-doom .door {
  position:absolute; bottom:25%; right:20%; width:50px; height:80px; background:#2a1a12; border-radius:2px 2px 0 0; box-shadow:inset 0 0 10px rgba(0,0,0,0.5); animation: mt2-door 10s ease-in-out infinite;
}
.scn-mr-chillip-murdstone-doom .light-crack {
  position:absolute; bottom:25%; right:20%; width:2px; height:80px; background: linear-gradient(180deg, #b08040 0%, transparent 100%); animation: mt2-light 4s ease-in-out infinite alternate;
}
.scn-mr-chillip-murdstone-doom .figure-woman {
  position:absolute; bottom:24%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mt2-shrink 6s ease-in-out infinite alternate;
}
.scn-mr-chillip-murdstone-doom .picture-frame {
  position:absolute; top:20%; left:10%; width:30px; height:40px; border:2px solid #4a3020; background:#1a0e08; border-radius:2px; animation: mt2-tilt 12s ease-in-out infinite;
}
.scn-mr-chillip-murdstone-doom .vignette {
  position:absolute; inset:0; pointer-events:none; background: radial-gradient(ellipse at 50% 50%, transparent 0%, rgba(0,0,0,0.6) 100%); animation: mt2-darken 9s ease-in-out infinite alternate;
}
@keyframes mt2-light { 0% { opacity:0.3; } 50% { opacity:0.9; } 100% { opacity:0.4; } }
@keyframes mt2-shrink { 0% { transform:scale(1) translateY(0); opacity:1; } 50% { transform:scale(0.85) translateY(3px); opacity:0.7; } 100% { transform:scale(1) translateY(0); opacity:1; } }
@keyframes mt2-tilt { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-2deg); } }
@keyframes mt2-door { 0% { transform:scaleX(1); } 50% { transform:scaleX(0.95); } 100% { transform:scaleX(1); } }
@keyframes mt2-darken { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-mr-chillip-observations {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%), radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 70%);
}
.scn-mr-chillip-observations .bg-wall {
  position:absolute; inset:0; background:#2a1a0e;
}
.scn-mr-chillip-observations .window {
  position:absolute; top:10%; left:30%; width:60px; height:80px; background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%); border:2px solid #5a4a3a;
}
.scn-mr-chillip-observations .curtain-l {
  position:absolute; width:30px; height:90px; left:28%; top:8%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0e 100%); border-radius:0 0 10px 10px; animation: mt3-sway 8s ease-in-out infinite;
}
.scn-mr-chillip-observations .curtain-r {
  position:absolute; width:30px; height:90px; right:28%; top:8%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0e 100%); border-radius:0 0 10px 10px; animation: mt3-sway 8s ease-in-out infinite; animation-delay:-4s;
}
.scn-mr-chillip-observations .table {
  position:absolute; bottom:30%; left:40%; width:60px; height:15px; background:#4a3a2a; border-radius:4px;
}
.scn-mr-chillip-observations .teacup {
  position:absolute; bottom:42%; left:45%; width:10px; height:10px; background: radial-gradient(circle, #c0a080 0%, #8a6a4a 100%); box-shadow:0 0 6px 1px rgba(192,160,128,0.3); animation: mt3-steam 5s ease-in-out infinite;
}
.scn-mr-chillip-observations .figure-chillip {
  position:absolute; bottom:24%; left:25%; width:18px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mt3-nod 6s ease-in-out infinite;
}
.scn-mr-chillip-observations .figure-mrs-chillip {
  position:absolute; bottom:24%; left:55%; width:18px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mt3-nod 6s ease-in-out infinite; animation-delay:-3s;
}
.scn-mr-chillip-observations .fireplace {
  position:absolute; bottom:30%; left:10%; width:50px; height:60px; background:#2a1a0e; border-radius:4px 4px 0 0; box-shadow:inset 0 -10px 10px rgba(0,0,0,0.5);
}
.scn-mr-chillip-observations .fire {
  position:absolute; bottom:30%; left:15%; width:20px; height:20px; background: radial-gradient(circle, #d08030 0%, #8a4010 60%, transparent 100%); animation: mt3-fire 2s ease-in-out infinite;
}
@keyframes mt3-sway { 0% { transform:rotate(0deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(0deg); } }
@keyframes mt3-steam { 0% { transform:translateY(0) scale(1); opacity:0.6; } 50% { transform:translateY(-4px) scale(0.9); opacity:0.3; } 100% { transform:translateY(0) scale(1); opacity:0.6; } }
@keyframes mt3-nod { 0% { transform:rotate(-1deg); } 50% { transform:rotate(1deg); } 100% { transform:rotate(-1deg); } }
@keyframes mt3-fire { 0% { transform:scale(1); opacity:0.8; } 50% { transform:scale(1.1); opacity:1; } 100% { transform:scale(1); opacity:0.8; } }

.scn-mr-chillip-closing-advice {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 50%, #0f0804 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-mr-chillip-closing-advice .bg-wall {
  position:absolute; inset:0; background:#1a0e06;
}
.scn-mr-chillip-closing-advice .desk {
  position:absolute; bottom:25%; left:25%; width:80px; height:10px; background:#3a2a1a; border-radius:2px;
}
.scn-mr-chillip-closing-advice .book {
  position:absolute; bottom:30%; left:35%; width:30px; height:20px; background:#5a4a3a; border-radius:2px; box-shadow:2px 2px 4px rgba(0,0,0,0.5); animation: mt4-book 8s ease-in-out infinite;
}
.scn-mr-chillip-closing-advice .candle {
  position:absolute; bottom:40%; left:30%; width:4px; height:20px; background:#e0c080; box-shadow:0 0 8px 2px #ffd060; animation: mt4-candle 3s ease-in-out infinite;
}
.scn-mr-chillip-closing-advice .head-silhouette {
  position:absolute; bottom:35%; left:40%; width:30px; height:40px; background:#0a0604; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mt4-think 7s ease-in-out infinite;
}
.scn-mr-chillip-closing-advice .brain-glow {
  position:absolute; bottom:45%; left:48%; width:12px; height:12px; background: radial-gradient(circle, #ffd060 0%, transparent 70%); border-radius:50%; box-shadow:0 0 20px 6px rgba(255,208,96,0.5); animation: mt4-pulse 4s ease-in-out infinite;
}
.scn-mr-chillip-closing-advice .hand {
  position:absolute; bottom:25%; left:55%; width:14px; height:30px; background: linear-gradient(180deg, #1a0e06 0%, #0a0604 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: mt4-point 6s ease-in-out infinite;
}
@keyframes mt4-think { 0% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-3deg); } }
@keyframes mt4-pulse { 0% { box-shadow:0 0 10px 2px rgba(255,208,96,0.4); transform:scale(0.95); } 50% { box-shadow:0 0 30px 10px rgba(255,208,96,0.7); transform:scale(1.05); } 100% { box-shadow:0 0 10px 2px rgba(255,208,96,0.4); transform:scale(0.95); } }
@keyframes mt4-candle { 0% { transform:scaleY(1) rotate(-1deg); } 25% { transform:scaleY(0.9) rotate(1deg); } 50% { transform:scaleY(1.05) rotate(0deg); } 75% { transform:scaleY(0.95) rotate(-1deg); } 100% { transform:scaleY(1) rotate(1deg); } }
@keyframes mt4-book { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes mt4-point { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(5deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(0); } }

.scn-ham-delivers-emily-letter { background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 50%, #0d0702 100%), radial-gradient(ellipse at 40% 60%, #3a2210 0%, transparent 60%); }
.scn-ham-delivers-emily-letter .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1f0f05 0%, #0a0300 100%); }
.scn-ham-delivers-emily-letter .window { position:absolute; top:10%; right:12%; width:30px; height:40px; background: radial-gradient(ellipse, #2a1a0a 0%, #0d0702 100%); border-radius:4px; box-shadow: inset 0 0 8px #1a0e05; animation: hd1-window 8s ease-in-out infinite; }
.scn-ham-delivers-emily-letter .candle-glow { position:absolute; bottom:35%; left:30%; width:12px; height:18px; background: radial-gradient(circle, #ffb060 0%, #d07020 50%, #2a1a0a 100%); border-radius:50%; box-shadow: 0 0 30px 15px #d07020, 0 0 60px 30px rgba(208,112,32,0.4); animation: hd1-candle 2s ease-in-out infinite alternate; }
.scn-ham-delivers-emily-letter .table { position:absolute; bottom:20%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #3a2210 0%, #1a0e05 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.6); }
.scn-ham-delivers-emily-letter .letter { position:absolute; bottom:32%; left:45%; width:40px; height:50px; background: linear-gradient(135deg, #f0e0c0 0%, #c0a880 100%); border-radius:2px; transform:rotate(-5deg); animation: hd1-letter 6s ease-in-out infinite; }
.scn-ham-delivers-emily-letter .figure-ham { position:absolute; bottom:20%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #1a0e05 0%, #0a0300 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: hd1-figure 5s ease-in-out infinite; }
.scn-ham-delivers-emily-letter .figure-davy { position:absolute; bottom:20%; right:25%; width:18px; height:48px; background: linear-gradient(180deg, #1a0e05 0%, #0a0300 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: hd1-figure 5s ease-in-out infinite reverse; }
@keyframes hd1-window { 0% { opacity:0.3; box-shadow: inset 0 0 8px #1a0e05; } 50% { opacity:0.6; box-shadow: inset 0 0 12px #2a1a0a; } 100% { opacity:0.3; box-shadow: inset 0 0 8px #1a0e05; } }
@keyframes hd1-candle { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.05) translateY(-1px); opacity:1; } 100% { transform: scale(0.95) translateY(1px); opacity:0.8; } }
@keyframes hd1-letter { 0% { transform:rotate(-5deg) translateX(0); } 50% { transform:rotate(-3deg) translateX(2px); } 100% { transform:rotate(-5deg) translateX(0); } }
@keyframes hd1-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }

.scn-emily-letter-continued { background: linear-gradient(180deg, #1a0e05 0%, #0a0300 50%, #140804 100%), radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, transparent 70%); }
.scn-emily-letter-continued .desk-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1f0f05 0%, #0a0300 100%); }
.scn-emily-letter-continued .paper { position:absolute; bottom:40%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%); border-radius:2px; animation: ec2-paper 8s ease-in-out infinite; }
.scn-emily-letter-continued .inkwell { position:absolute; bottom:45%; left:30%; width:10px; height:15px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40%; animation: ec2-ink 4s ease-in-out infinite; }
.scn-emily-letter-continued .candle { position:absolute; bottom:35%; left:20%; width:8px; height:20px; background: linear-gradient(180deg, #ffb060 0%, #d07020 100%); border-radius:4px 4px 2px 2px; box-shadow: 0 0 20px 10px #d07020; animation: ec2-candle 2s ease-in-out infinite alternate; }
.scn-emily-letter-continued .hand-writing { position:absolute; bottom:42%; left:52%; width:30px; height:10px; background: linear-gradient(180deg, #1a0e05 0%, #0a0300 100%); border-radius:50%; animation: ec2-hand 5s ease-in-out infinite; }
.scn-emily-letter-continued .shadow-shape { position:absolute; bottom:30%; right:20%; width:40px; height:50px; background: linear-gradient(135deg, #0a0300 0%, #000 100%); border-radius:40% 60% 30% 50%; filter:blur(8px); animation: ec2-shadow 7s ease-in-out infinite; }
@keyframes ec2-paper { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-48%) rotate(2deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes ec2-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ec2-candle { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.7; transform: scaleY(0.9); } }
@keyframes ec2-hand { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(10px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes ec2-shadow { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.1); opacity:0.7; } 100% { transform: scale(1); opacity:0.5; } }

.scn-emily-letter-final { background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%), radial-gradient(ellipse at 50% 0%, #6a8a9a 0%, transparent 70%); }
.scn-emily-letter-final .coach-body { position:absolute; bottom:20%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 10px 20px rgba(0,0,0,0.5); animation: ef3-coach 6s ease-in-out infinite; }
.scn-emily-letter-final .coach-window { position:absolute; bottom:35%; left:35%; width:30%; height:30%; background: radial-gradient(ellipse, #6a8a9a 0%, #2a3a4a 100%); border-radius:4px; border:2px solid #1a0e05; animation: ef3-window 4s ease-in-out infinite alternate; }
.scn-emily-letter-final .landscape { position:absolute; bottom:15%; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius:40% 40% 0 0; animation: ef3-landscape 10s linear infinite; }
.scn-emily-letter-final .road { position:absolute; bottom:10%; left:-10%; right:-10%; height:10%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); animation: ef3-road 15s linear infinite; }
.scn-emily-letter-final .rain { position:absolute; top:0; left:0; right:0; bottom:0; background: repeating-linear-gradient(0deg, transparent, transparent 5px, rgba(255,255,255,0.1) 5px, rgba(255,255,255,0.1) 6px); animation: ef3-rain 2s linear infinite; }
.scn-emily-letter-final .figure-david { position:absolute; bottom:30%; left:42%; width:15px; height:35px; background: linear-gradient(180deg, #1a0e05 0%, #0a0300 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: ef3-david 4s ease-in-out infinite; }
@keyframes ef3-coach { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ef3-window { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes ef3-landscape { 0% { background-position: 0 0; } 100% { background-position: -200px 0; } }
@keyframes ef3-road { 0% { background-position: 0 0; } 100% { background-position: -300px 0; } }
@keyframes ef3-rain { 0% { transform: translateY(-100%); } 100% { transform: translateY(100%); } }
@keyframes ef3-david { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }

.scn-coach-shipwreck-alarm { background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 40%, #0a1a2a 100%), radial-gradient(ellipse at 50% 80%, #4a6a8a 0%, transparent 70%); }
.scn-coach-shipwreck-alarm .sea { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #152535 100%); animation: cs4-sea 3s ease-in-out infinite; }
.scn-coach-shipwreck-alarm .ship { position:absolute; bottom:30%; left:40%; width:80px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:0 0 50% 50% / 0 0 100% 100%; animation: cs4-ship 4s ease-in-out infinite; }
.scn-coach-shipwreck-alarm .wave-breaker { position:absolute; bottom:20%; left:30%; width:120px; height:20px; background: linear-gradient(180deg, #4a6a8a 0%, #2a3a5a 100%); border-radius:50%; filter:blur(3px); animation: cs4-wave 2.5s ease-in-out infinite alternate; }
.scn-coach-shipwreck-alarm .rock { position:absolute; bottom:5%; right:15%; width:40px; height:50px; background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:30% 30% 20% 20%; transform:rotate(-15deg); animation: cs4-rock 8s ease-in-out infinite; }
.scn-coach-shipwreck-alarm .beacon { position:absolute; top:10%; right:20%; width:10px; height:20px; background: radial-gradient(circle, #ffffc0 0%, #f0b040 100%); border-radius:50%; box-shadow: 0 0 40px 20px #f0b040; animation: cs4-beacon 1.5s ease-in-out infinite alternate; }
.scn-coach-shipwreck-alarm .figure-sailor { position:absolute; bottom:32%; left:44%; width:12px; height:30px; background: linear-gradient(180deg, #1a0e05 0%, #0a0300 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cs4-sailor 3s ease-in-out infinite; }
@keyframes cs4-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes cs4-ship { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-2deg) translateY(1px); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes cs4-wave { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-20px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes cs4-rock { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes cs4-beacon { 0% { opacity:0.3; box-shadow: 0 0 20px 10px #f0b040; } 50% { opacity:1; box-shadow: 0 0 60px 30px #f0b040; } 100% { opacity:0.3; box-shadow: 0 0 20px 10px #f0b040; } }
@keyframes cs4-sailor { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }

/* --- Scene: reading-maldons-letter (Tense, Bright Interior) --- */
.scn-reading-maldons-letter {
  background: linear-gradient(180deg, #e8e4df 0%, #c5c0b8 100%), radial-gradient(ellipse at 60% 40%, #ffffff 0%, transparent 60%);
}
.scn-reading-maldons-letter .rml-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #b8b4ae 0%, #d4d0c8 50%, #b8b4ae 100%);
  animation: rml-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-reading-maldons-letter .rml-window {
  position: absolute; top: 10%; left: 5%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #eff4f8 0%, #dce8f0 100%);
  box-shadow: inset 0 0 40px 10px rgba(255,255,255,0.6), 0 0 60px 20px rgba(220,232,240,0.3);
  border-radius: 4px; border: 8px solid #7a7368;
  animation: rml-window-light 5s ease-in-out infinite alternate;
}
.scn-reading-maldons-letter .rml-shelf {
  position: absolute; top: 55%; left: 0; right: 0; height: 6%;
  background: linear-gradient(180deg, #6b5b4e 0%, #4a3f36 100%);
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-reading-maldons-letter .rml-table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #8b735e 0%, #5e4d3e 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.4);
}
.scn-reading-maldons-letter .rml-figure-dress {
  position: absolute; bottom: 25%; left: 50%; width: 28%; height: 50%;
  transform: translateX(-60%);
  background: radial-gradient(ellipse at 50% 20%, #884c5e 0%, #5e2a3a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
  animation: rml-breathe 6s ease-in-out infinite;
}
.scn-reading-maldons-letter .rml-figure-head {
  position: absolute; bottom: 68%; left: 50%; width: 14%; height: 18%;
  transform: translateX(-55%);
  background: radial-gradient(ellipse at 50% 40%, #e8d4c4 0%, #c0a894 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2);
  animation: rml-breathe 6s ease-in-out infinite;
}
.scn-reading-maldons-letter .rml-letter {
  position: absolute; bottom: 45%; left: 55%; width: 20%; height: 26%;
  background: linear-gradient(135deg, #fcfcf0 0%, #e8e0cc 100%);
  transform: rotate(-8deg) translateX(-50%);
  border-radius: 2px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.5), inset 0 0 20px rgba(255,255,255,0.8);
  animation: rml-letter-rustle 4s ease-in-out infinite;
}
.scn-reading-maldons-letter .rml-glasses {
  position: absolute; bottom: 62%; left: 48%; width: 10%; height: 10%;
  border: 3px solid #8a7a6a;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, rgba(255,255,255,0.9) 0%, rgba(200,220,240,0.3) 60%);
  transform: translateX(-50%);
  animation: rml-glasses-move 7s ease-in-out infinite;
}
@keyframes rml-wall-pulse { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rml-window-light { 0% { box-shadow: inset 0 0 40px 10px rgba(255,255,255,0.6), 0 0 60px 20px rgba(220,232,240,0.3); } 50% { box-shadow: inset 0 0 60px 20px rgba(255,255,255,0.8), 0 0 80px 30px rgba(220,232,240,0.5); } 100% { box-shadow: inset 0 0 30px 5px rgba(255,255,255,0.5), 0 0 40px 10px rgba(220,232,240,0.2); } }
@keyframes rml-breathe { 0% { transform: translateX(-60%) translateY(0); } 50% { transform: translateX(-60%) translateY(-4px); } 100% { transform: translateX(-60%) translateY(0); } }
@keyframes rml-letter-rustle { 0% { transform: rotate(-8deg) translateX(-50%) scale(1); } 30% { transform: rotate(-6deg) translateX(-48%) scale(1.02); } 70% { transform: rotate(-10deg) translateX(-52%) scale(0.98); } 100% { transform: rotate(-8deg) translateX(-50%) scale(1); } }
@keyframes rml-glasses-move { 0% { transform: translateX(-50%) rotate(0deg) translateY(0); } 50% { transform: translateX(-40%) rotate(4deg) translateY(-4px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } }

/* --- Scene: anntie-promptitude (Tense, Bright Interior) --- */
.scn-anntie-promptitude {
  background: linear-gradient(180deg, #eae6df 0%, #c2bab0 100%), radial-gradient(ellipse at 50% 30%, #fdfdfc 0%, transparent 70%);
}
.scn-anntie-promptitude .atp-desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6b5b4e 0%, #3d322b 100%);
  border-radius: 40% 20% 0 0 / 20% 10% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-anntie-promptitude .atp-letter {
  position: absolute; bottom: 25%; left: 50%; width: 55%; height: 45%;
  transform: translateX(-50%) rotate(-3deg);
  background: linear-gradient(135deg, #fcfcf2 0%, #e6e0cc 100%);
  border-radius: 4px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4), inset 0 0 30px rgba(255,255,255,0.6);
  animation: atp-letter-shake 3s ease-in-out infinite;
}
.scn-anntie-promptitude .atp-hand-cuff {
  position: absolute; bottom: 40%; left: 30%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #c8b8a8 0%, #8a7a6a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  animation: atp-hand-tremor 2s ease-in-out infinite alternate;
}
.scn-anntie-promptitude .atp-hand-fingers {
  position: absolute; bottom: 50%; left: 40%; width: 15%; height: 10%;
  background: #c8b8a8;
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: atp-hand-tremor 2s ease-in-out infinite alternate 0.2s;
}
.scn-anntie-promptitude .atp-magnifier {
  position: absolute; bottom: 45%; left: 60%; width: 18%; height: 25%;
  border: 6px solid #8a7a6a;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, rgba(255,255,255,0.9) 0%, rgba(220,230,240,0.4) 60%, transparent 80%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3), inset 0 0 30px rgba(255,255,255,0.5);
  animation: atp-magnifier-scan 6s ease-in-out infinite;
}
.scn-anntie-promptitude .atp-inkstand {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: atp-inkstand-hold 8s ease-in-out infinite;
}
.scn-anntie-promptitude .atp-quill {
  position: absolute; bottom: 30%; left: 22%; width: 4%; height: 25%;
  background: linear-gradient(180deg, #f0e8dc 0%, #c8b8a0 60%, #4a3a2a 100%);
  transform: rotate(15deg);
  transform-origin: bottom center;
  border-radius: 2px;
  animation: atp-quill-sway 5s ease-in-out infinite;
}
@keyframes atp-letter-shake { 0% { transform: translateX(-50%) rotate(-3deg) translateY(0); } 25% { transform: translateX(-48%) rotate(-2deg) translateY(-2px); } 75% { transform: translateX(-52%) rotate(-4deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(-3deg) translateY(0); } }
@keyframes atp-hand-tremor { 0% { transform: rotate(-10deg) translate(0, 0); } 100% { transform: rotate(-8deg) translate(1px, -2px); } }
@keyframes atp-magnifier-scan { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(8px, -10px) rotate(5deg); } 50% { transform: translate(12px, -20px) rotate(10deg); } 75% { transform: translate(4px, -8px) rotate(3deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes atp-inkstand-hold { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes atp-quill-sway { 0% { transform: rotate(15deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(15deg); } }

/* --- Scene: waiter-and-weal-cutlet (Funny, Bright Interior) --- */
.scn-waiter-and-weal-cutlet {
  background: linear-gradient(180deg, #f5efe6 0%, #dccfc0 100%), radial-gradient(ellipse at 40% 60%, #fff4e0 0%, transparent 70%);
}
.scn-waiter-and-weal-cutlet .wwc-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d4c8b8 0%, #e8dccc 50%, #d0c4b4 100%);
}
.scn-waiter-and-weal-cutlet .wwc-table {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #8b7a6a 0%, #5e4d3e 100%);
  border-radius: 30% 30% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 30px 40px rgba(0,0,0,0.3);
}
.scn-waiter-and-weal-cutlet .wwc-plate {
  position: absolute; bottom: 25%; left: 50%; width: 30%; height: 16%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #f0ece8 0%, #d0c8c0 100%);
  border-radius: 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3), inset 0 2px 10px rgba(255,255,255,0.5);
}
.scn-waiter-and-weal-cutlet .wwc-cutlet {
  position: absolute; bottom: 28%; left: 50%; width: 14%; height: 10%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 40% 30%, #b86a3e 0%, #8a4620 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: wwc-cutlet-wobble 3s ease-in-out infinite;
}
.scn-waiter-and-weal-cutlet .wwc-waiter-body {
  position: absolute; bottom: 35%; left: 30%; width: 18%; height: 55%;
  transform: translateX(-50%) rotate(4deg);
  background: linear-gradient(180deg, #f0f0e8 0%, #d0c8c0 80%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.2);
  animation: wwc-waiter-bob 4s ease-in-out infinite;
}
.scn-waiter-and-weal-cutlet .wwc-waiter-head {
  position: absolute; bottom: 82%; left: 30%; width: 14%; height: 16%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 40% 40%, #f0dcc8 0%, #c8b098 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2);
  animation: wwc-waiter-bob 4s ease-in-out infinite 0.1s;
}
.scn-waiter-and-weal-cutlet .wwc-david {
  position: absolute; bottom: 30%; left: 65%; width: 16%; height: 40%;
  transform: translateX(-50%) rotate(-6deg);
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: wwc-david-recoil 4s ease-in-out infinite;
}
.scn-waiter-and-weal-cutlet .wwc-david::after {
  content: '';
  position: absolute; top: -20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 40%, #e8d8c8 0%, #c8b8a8 100%);
  border-radius: 50%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-waiter-and-weal-cutlet .wwc-steam-1,
.scn-waiter-and-weal-cutlet .wwc-steam-2 {
  position: absolute; bottom: 38%; left: 50%; width: 8%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: wwc-steam-rise 5s ease-in-out infinite;
}
.scn-waiter-and-weal-cutlet .wwc-steam-2 {
  left: 54%;
  animation-delay: 2.5s;
  width: 6%;
  height: 10%;
}
@keyframes wwc-cutlet-wobble { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 25% { transform: translateX(-48%) scale(1.05) rotate(3deg); } 50% { transform: translateX(-50%) scale(1) rotate(0deg); } 75% { transform: translateX(-52%) scale(1.02) rotate(-3deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes wwc-waiter-bob { 0% { transform: translateX(-50%) rotate(4deg) translateY(0); } 50% { transform: translateX(-50%) rotate(6deg) translateY(-6px); } 100% { transform: translateX(-50%) rotate(4deg) translateY(0); } }
@keyframes wwc-david-recoil { 0% { transform: translateX(-50%) rotate(-6deg) translateY(0); } 25% { transform: translateX(-50%) rotate(-10deg) translateY(-4px); } 50% { transform: translateX(-50%) rotate(-6deg) translateY(0); } 75% { transform: translateX(-50%) rotate(-8deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-6deg) translateY(0); } }
@keyframes wwc-steam-rise { 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; } }

/* --- Scene: little-copperfield-exclamation (Funny, Bright Interior) --- */
.scn-little-copperfield-exclamation {
  background: linear-gradient(180deg, #f4e8d8 0%, #e8d4b8 100%), radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 60%);
}
.scn-little-copperfield-exclamation .lce-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d8c4a8 0%, #e8d8c0 50%, #d0bca0 100%);
}
.scn-little-copperfield-exclamation .lce-doorway {
  position: absolute; top: 5%; left: 20%; width: 35%; height: 95%;
  background: linear-gradient(180deg, #fcf4e8 0%, #e8dcc8 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 60px 20px rgba(255,255,255,0.6), 0 0 40px 10px rgba(232,220,200,0.4);
  animation: lce-light-pulse 7s ease-in-out infinite alternate;
}
.scn-little-copperfield-exclamation .lce-steerforth-body {
  position: absolute; bottom: 15%; left: 35%; width: 22%; height: 60%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: 0 15px 25px rgba(0,0,0,0.4);
  animation: lce-steerforth-surge 4s ease-in-out infinite;
}
.scn-little-copperfield-exclamation .lce-steerforth-head {
  position: absolute; bottom: 68%; left: 35%; width: 16%; height: 18%;
  transform: translateX(-10%) rotate(10deg);
  background: radial-gradient(ellipse at 40% 40%, #4a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: lce-steerforth-surge 4s ease-in-out infinite 0.1s;
}
.scn-little-copperfield-exclamation .lce-steerforth-arms {
  position: absolute; bottom: 50%; left: 25%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-15deg) scaleX(1.2);
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: lce-arms-open 4s ease-in-out infinite;
}
.scn-little-copperfield-exclamation .lce-david-body {
  position: absolute; bottom: 10%; left: 60%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(4deg);
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: lce-david-jump 4s ease-in-out infinite;
}
.scn-little-copperfield-exclamation .lce-david-head {
  position: absolute; bottom: 40%; left: 62%; width: 12%; height: 14%;
  transform: rotate(-8deg);
  background: radial-gradient(ellipse at 40% 40%, #c8b8a8 0%, #8a7a6a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2);
  animation: lce-david-jump 4s ease-in-out infinite 0.15s;
}
.scn-little-copperfield-exclamation .lce-hat-1,
.scn-little-copperfield-exclamation .lce-hat-2 {
  position: absolute; bottom: 70%; left: 50%; width: 10%; height: 8%;
  background: #2a2a2a;
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: lce-hat-fly 6s ease-in-out infinite;
}
.scn-little-copperfield-exclamation .lce-hat-2 {
  left: 30%;
  width: 8%;
  height: 6%;
  animation-delay: 3s;
  animation-duration: 5s;
}
.scn-little-copperfield-exclamation .lce-glow {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 80%;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,235,180,0.25) 0%, transparent 70%);
  pointer-events: none;
  animation: lce-glow-pulse 5s ease-in-out infinite alternate;
}
@keyframes lce-light-pulse { 0% { box-shadow: inset 0 0 60px 20px rgba(255,255,255,0.6), 0 0 40px 10px rgba(232,220,200,0.4); } 100% { box-shadow: inset 0 0 80px 30px rgba(255,255,255,0.8), 0 0 60px 20px rgba(232,220,200,0.6); } }
@keyframes lce-steerforth-surge { 0% { transform: rotate(-5deg) translateY(0) scale(1); } 50% { transform: rotate(-8deg) translateY(-8px) scale(1.05); } 100% { transform: rotate(-5deg) translateY(0) scale(1); } }
@keyframes lce-arms-open { 0% { transform: rotate(-15deg) scaleX(1.2); } 50% { transform: rotate(-25deg) scaleX(1.4); } 100% { transform: rotate(-15deg) scaleX(1.2); } }
@keyframes lce-david-jump { 0% { transform: rotate(4deg) translateY(0) scale(1); } 25% { transform: rotate(2deg) translateY(-6px) scale(1.05); } 50% { transform: rotate(4deg) translateY(0) scale(1); } 75% { transform: rotate(6deg) translateY(-4px) scale(1.02); } 100% { transform: rotate(4deg) translateY(0) scale(1); } }
@keyframes lce-hat-fly { 0% { transform: translateY(0) rotate(0deg) scale(1); opacity: 1; } 25% { transform: translateY(-40px) rotate(30deg) scale(1.1); opacity: 0.8; } 50% { transform: translateY(-80px) rotate(60deg) scale(0.9); opacity: 0.4; } 100% { transform: translateY(-120px) rotate(90deg) scale(0.5); opacity: 0; } }
@keyframes lce-glow-pulse { 0% { opacity: 0.5; transform: scale(1); } 100% { opacity: 1; transform: scale(1.05); } }

/* doctor-strong-meeting (warm, bright-interior) */
.scn-doctor-strong-meeting {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b88a 100%), radial-gradient(ellipse at 30% 50%, #ffe6b0 0%, transparent 60%);
}
.scn-doctor-strong-meeting .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent, rgba(210,180,140,0.2));
  animation: dsm-wall 10s ease-in-out infinite alternate;
}
.scn-doctor-strong-meeting .window {
  position: absolute; left: 5%; top: 10%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #a8d8ea, #e0f0ff);
  border: 4px solid #8b6f47; border-radius: 4px; filter: blur(1px);
  animation: dsm-window 6s ease-in-out infinite;
}
.scn-doctor-strong-meeting .window-light {
  position: absolute; left: 5%; top: 65%; width: 20%; height: 15%;
  background: linear-gradient(180deg, rgba(255,235,180,0.6), transparent);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: dsm-light 8s ease-in-out infinite;
}
.scn-doctor-strong-meeting .desk {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #6b4e31, #4a3520);
  border-radius: 4px; box-shadow: inset 0 5px 10px rgba(0,0,0,0.3);
  animation: dsm-desk 15s ease-in-out infinite;
}
.scn-doctor-strong-meeting .figure-doctor {
  position: absolute; bottom: 25%; left: 20%; width: 50px; height: 70px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dsm-fig1 4s ease-in-out infinite;
}
.scn-doctor-strong-meeting .figure-copperfield {
  position: absolute; bottom: 25%; left: 55%; width: 45px; height: 80px;
  background: linear-gradient(90deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dsm-fig2 4.5s ease-in-out infinite;
}
.scn-doctor-strong-meeting .warm-glow {
  position: absolute; bottom: 30%; left: 35%; width: 100px; height: 100px;
  background: radial-gradient(circle, #ffdba0 0%, transparent 70%);
  animation: dsm-glow 3s ease-in-out infinite alternate;
}
@keyframes dsm-wall   { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes dsm-window { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes dsm-light  { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes dsm-desk   { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes dsm-fig1   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dsm-fig2   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dsm-glow   { 0% { transform: scale(1); opacity:0.5; } 50% { transform: scale(1.1); opacity:0.7; } 100% { transform: scale(1); opacity:0.5; } }

/* more-obligations-than-ever (calm, bright-interior) */
.scn-more-obligations-than-ever {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b888 100%), radial-gradient(ellipse at 50% 30%, #ffe6b0 0%, transparent 60%);
}
.scn-more-obligations-than-ever .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6b4e31, #4a3520);
  animation: ob-desk 20s linear infinite;
}
.scn-more-obligations-than-ever .book {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(135deg, #c4a464, #a08040);
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: ob-book 12s ease-in-out infinite;
}
.scn-more-obligations-than-ever .hand {
  position: absolute; bottom: 45%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c9a87c, #a07a4f);
  border-radius: 40% 60% 50% 50% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: ob-hand 6s ease-in-out infinite;
}
.scn-more-obligations-than-ever .quill {
  position: absolute; bottom: 48%; left: 48%; width: 4px; height: 24px;
  background: #5a4a3a; transform-origin: bottom center;
  animation: ob-quill 4s ease-in-out infinite;
}
.scn-more-obligations-than-ever .lamp {
  position: absolute; bottom: 50%; right: 10%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #a08040 0%, #604020 100%);
  border-radius: 20% 20% 10% 10%;
  animation: ob-lamp 8s ease-in-out infinite;
}
.scn-more-obligations-than-ever .inkwell {
  position: absolute; bottom: 35%; left: 30%; width: 20px; height: 20px;
  background: #2a1a0a; border-radius: 50%; box-shadow: inset 0 0 5px rgba(0,0,0,0.5);
  animation: ob-ink 10s ease-in-out infinite;
}
.scn-more-obligations-than-ever .paper {
  position: absolute; bottom: 30%; left: 45%; width: 80px; height: 100px;
  background: #faf0e6; transform: rotate(2deg);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  animation: ob-paper 15s ease-in-out infinite;
}
@keyframes ob-desk  { 0%,100% { background-position: 0 0; } 50% { background-position: 0 5px; } }
@keyframes ob-book { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-3px); } }
@keyframes ob-hand { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(5px, -2px) rotate(3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ob-quill { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes ob-lamp { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ob-ink  { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ob-paper { 0%,100% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.01); } }

/* determined-character (calm, bright-interior) */
.scn-determined-character {
  background: radial-gradient(ellipse at 50% 50%, #d4b888 0%, #a08040 100%);
}
.scn-determined-character .desk-top {
  position: absolute; inset: 10%;
  background: linear-gradient(135deg, #8b6f47, #6b4e31);
  border-radius: 50%; box-shadow: inset 0 0 50px rgba(0,0,0,0.2);
  animation: det-desk 20s ease-in-out infinite;
}
.scn-determined-character .paper-stack {
  position: absolute; bottom: 30%; left: 35%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #faf0e6, #e0d0b0);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: det-stack 14s ease-in-out infinite;
}
.scn-determined-character .hand-left {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c9a87c, #a07a4f);
  border-radius: 40% 60% 50% 50% / 50% 50% 50% 50%;
  transform-origin: center;
  animation: det-handl 6s ease-in-out infinite;
}
.scn-determined-character .hand-right {
  position: absolute; bottom: 20%; right: 20%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c9a87c, #a07a4f);
  border-radius: 60% 40% 50% 50% / 50% 50% 50% 50%;
  transform-origin: center;
  animation: det-handr 5s ease-in-out infinite;
}
.scn-determined-character .candle {
  position: absolute; top: 30%; left: 50%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0d8a0, #a08040);
  border-radius: 4px;
  animation: det-candle 7s ease-in-out infinite;
}
.scn-determined-character .inkwell {
  position: absolute; top: 25%; right: 30%; width: 18px; height: 18px;
  background: #2a1a0a; border-radius: 50%; box-shadow: inset 0 0 5px rgba(0,0,0,0.5);
  animation: det-ink 12s ease-in-out infinite;
}
.scn-determined-character .quiver {
  position: absolute; top: 25%; left: 30%; width: 10px; height: 20px;
  background: #5a4a3a; border-radius: 2px;
  animation: det-quiv 8s ease-in-out infinite;
}
@keyframes det-desk   { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes det-stack  { 0%,100% { transform: scale(1); } 50% { transform: scale(1.03); } }
@keyframes det-handl  { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(8px, -4px) rotate(5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes det-handr  { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-8px, -4px) rotate(-5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes det-candle { 0% { transform: scaleY(1) rotate(0deg); opacity:0.9; } 50% { transform: scaleY(1.05) rotate(0.5deg); opacity:1; } 100% { transform: scaleY(1) rotate(0deg); opacity:0.9; } }
@keyframes det-ink    { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes det-quiv   { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }

/* micawber-migration-announcement (funny, dim-interior) */
.scn-micawber-migration-announcement {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%), radial-gradient(ellipse at 50% 40%, #6b4e31 0%, transparent 70%);
}
.scn-micawber-migration-announcement .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(90,70,50,0.5), transparent);
  animation: mam-wall 20s ease-in-out infinite;
}
.scn-micawber-migration-announcement .trunk {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 35%;
  background: linear-gradient(180deg, #6b4e31, #4a3520);
  border-radius: 8px; box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: mam-trunk 5s ease-in-out infinite;
}
.scn-micawber-migration-announcement .box-left {
  position: absolute; bottom: 15%; left: 5%; width: 15%; height: 25%;
  background: linear-gradient(135deg, #8b6f47, #6b4e31);
  border-radius: 4px; box-shadow: 0 5px 10px rgba(0,0,0,0.4);
  animation: mam-box 6s ease-in-out infinite;
}
.scn-micawber-migration-announcement .box-right {
  position: absolute; bottom: 15%; right: 5%; width: 15%; height: 30%;
  background: linear-gradient(135deg, #7a5e3f, #5a3e20);
  border-radius: 4px; box-shadow: 0 5px 10px rgba(0,0,0,0.4);
  animation: mam-box 6s ease-in-out infinite reverse;
}
.scn-micawber-migration-announcement .figure-micawber {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #5a3a2a, #2a1a0a);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mam-micawber 3s ease-in-out infinite;
}
.scn-micawber-migration-announcement .figure-mrs-micawber {
  position: absolute; bottom: 25%; right: 35%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mam-mrs 4s ease-in-out infinite;
}
.scn-micawber-migration-announcement .hat {
  position: absolute; bottom: 50%; left: 45%; width: 30px; height: 20px;
  background: #3a2a1a;
  border-radius: 50% 50% 10% 10%;
  animation: mam-hat 2s ease-in-out infinite;
}
.scn-micawber-migration-announcement .teapot {
  position: absolute; bottom: 20%; right: 30%; width: 20px; height: 15px;
  background: #a08040;
  border-radius: 30% 30% 20% 20%;
  animation: mam-teapot 3.5s ease-in-out infinite;
}
@keyframes mam-wall    { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes mam-trunk   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mam-box     { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mam-micawber { 0% { transform: translateY(0) rotate(-2deg) scale(1); } 25% { transform: translateY(-8px) rotate(2deg) scale(1.05); } 50% { transform: translateY(-3px) rotate(-1deg) scale(1.02); } 75% { transform: translateY(-10px) rotate(3deg) scale(1.08); } 100% { transform: translateY(0) rotate(-2deg) scale(1); } }
@keyframes mam-mrs     { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mam-hat     { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(10px, -20px) rotate(20deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes mam-teapot  { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-old-soldiers-compliments {
  background:
    linear-gradient(180deg, #fff8e7 0%, #fae5c0 60%, #e8c88a 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255, 200, 100, 0.4) 0%, transparent 60%);
}
.scn-old-soldiers-compliments .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #fff0d0 0%, #ffe8b0 50%, #f0d890 100%); }
.scn-old-soldiers-compliments .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #c89a5e 0%, #a06e3a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-old-soldiers-compliments .window { position:absolute; top:12%; left:60%; width:20%; height:35%; background: linear-gradient(135deg, #f0e8c0 0%, #d4c090 100%); border:4px solid #b8860b; border-radius: 6px; box-shadow: 0 0 30px 10px rgba(255, 220, 150, 0.5); animation: osc-glow 4s ease-in-out infinite alternate; }
.scn-old-soldiers-compliments .curtain-l { position:absolute; top:10%; left:55%; width:8%; height:40%; background: linear-gradient(180deg, #b8860b 0%, #8a6508 100%); border-radius: 0 20% 20% 0 / 0 30% 30% 0; transform-origin: top left; animation: osc-curtain 6s ease-in-out infinite; }
.scn-old-soldiers-compliments .curtain-r { position:absolute; top:10%; right:20%; width:8%; height:40%; background: linear-gradient(180deg, #b8860b 0%, #8a6508 100%); border-radius: 20% 0 0 20% / 30% 0 0 30%; transform-origin: top right; animation: osc-curtain 6s ease-in-out infinite reverse; }
.scn-old-soldiers-compliments .soldier { position:absolute; bottom:20%; left:30%; width:12%; height:45%; background: linear-gradient(180deg, #c8553d 0%, #a03620 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: osc-sway 3s ease-in-out infinite; }
.scn-old-soldiers-compliments .soldier::before { content:''; position:absolute; top:10%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #5e3a1a 0%, #3e2a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; } /* hat */
.scn-old-soldiers-compliments .shadow { position:absolute; bottom:20%; left:28%; width:16%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%); animation: osc-sway 3s ease-in-out infinite; filter: blur(4px); }
.scn-old-soldiers-compliments .annie { position:absolute; bottom:22%; left:50%; width:8%; height:25%; background: linear-gradient(180deg, #7ab8d4 0%, #4a8aaa 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: osc-bounce 2.8s ease-in-out infinite; }
.scn-old-soldiers-compliments .speech { position:absolute; top:25%; left:42%; width:15%; height:12%; background: radial-gradient(ellipse at 30% 40%, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.5) 100%); border-radius: 50% 50% 10% 10% / 60% 60% 30% 30%; filter: blur(3px); animation: osc-speech 5s ease-in-out infinite; }
@keyframes osc-glow {
  0% { box-shadow: 0 0 20px 6px rgba(255, 220, 150, 0.4); opacity:0.9; }
  50% { box-shadow: 0 0 40px 15px rgba(255, 240, 180, 0.7); opacity:1; }
  100% { box-shadow: 0 0 20px 6px rgba(255, 220, 150, 0.4); opacity:0.9; }
}
@keyframes osc-curtain {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(-3deg); }
  60% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes osc-sway {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(6px) rotate(2deg); }
  60% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes osc-bounce {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-8px) scaleY(0.95); }
  50% { transform: translateY(0) scaleY(1); }
  75% { transform: translateY(-5px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes osc-speech {
  0% { transform: translate(0,0) scale(1); opacity:0.6; }
  30% { transform: translate(4px,-6px) scale(1.1); opacity:0.9; }
  60% { transform: translate(-2px,-3px) scale(0.95); opacity:0.7; }
  100% { transform: translate(0,0) scale(1); opacity:0.6; }
}

/* old-soldier's-compliments */
.scn-old-soldier's-compliments {
  background: linear-gradient(180deg, #f5e6d0 0%, #e3d5b8 50%, #d4c4a8 100%), radial-gradient(ellipse at 60% 30%, rgba(255,240,200,0.4) 0%, transparent 60%);
}
.scn-old-soldier's-compliments .wall {
  position: absolute;
  top:0; left:0; right:0;
  height: 60%;
  background: linear-gradient(135deg, #f0e0c8 0%, #d8c8a8 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.05);
  animation: osc-wall-pulse 8s ease-in-out infinite alternate;
}
.scn-old-soldier's-compliments .floor {
  position: absolute;
  bottom:0; left:0; right:0;
  height: 40%;
  background: linear-gradient(180deg, #b89a6e 0%, #8c6e44 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-old-soldier's-compliments .window {
  position: absolute;
  top:15%; left:15%;
  width: 25%; height: 35%;
  background: linear-gradient(180deg, #a8d8ea 0%, #d0eaf0 100%);
  border: 4px solid #7a5e3a;
  box-shadow: 0 0 30px rgba(168,216,234,0.5);
  border-radius: 4px;
  animation: osc-window-glow 4s ease-in-out infinite alternate;
}
.scn-old-soldier's-compliments .soldier-body {
  position: absolute;
  bottom:20%; right:20%;
  width: 12%; height: 35%;
  background: linear-gradient(180deg, #2e5a2e 0%, #1a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: osc-soldier-bounce 2s ease-in-out infinite;
}
.scn-old-soldier's-compliments .soldier-arm {
  position: absolute;
  bottom:50%; right:23%;
  width: 4%; height: 15%;
  background: linear-gradient(180deg, #2e5a2e 0%, #1a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: osc-salute 1.5s ease-in-out infinite;
}
.scn-old-soldier's-compliments .doctor {
  position: absolute;
  bottom:20%; left:35%;
  width: 14%; height: 30%;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: osc-doctor-nod 4s ease-in-out infinite;
}
.scn-old-soldier's-compliments .annie {
  position: absolute;
  bottom:25%; left:55%;
  width: 10%; height: 25%;
  background: linear-gradient(180deg, #8a5a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: osc-annie-twirl 6s ease-in-out infinite;
}
.scn-old-soldier's-compliments .table {
  position: absolute;
  bottom:16%; left:45%;
  width: 20%; height: 6%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: osc-table-wobble 5s ease-in-out infinite;
}
.scn-old-soldier's-compliments .cup {
  position: absolute;
  bottom:20%; left:47%;
  width: 6%; height: 8%;
  background: linear-gradient(180deg, #f0e0d0 0%, #d0c0a0 100%);
  border-radius: 50% 50% 10% 10%;
  border: 2px solid #8a6a4a;
  animation: osc-cup-wobble 3s ease-in-out infinite;
}
@keyframes osc-wall-pulse {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes osc-window-glow {
  0% { box-shadow: 0 0 30px rgba(168,216,234,0.5); }
  50% { box-shadow: 0 0 60px rgba(168,216,234,0.8); }
  100% { box-shadow: 0 0 30px rgba(168,216,234,0.5); }
}
@keyframes osc-soldier-bounce {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes osc-salute {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes osc-doctor-nod {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes osc-annie-twirl {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes osc-table-wobble {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes osc-cup-wobble {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.scn { position: absolute; pointer-events: none; }
.tiny { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-mother-and-davy-intimacy { background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%), radial-gradient(ellipse at 20% 60%, #4a2a1a 0%, transparent 60%); }
.scn-mother-and-davy-intimacy .bg-interior { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); z-index:0; }
.scn-mother-and-davy-intimacy .fireplace { position:absolute; bottom:10%; left:50%; width:120px; height:100px; transform:translateX(-50%); background: linear-gradient(0deg, #4a2a1a 0%, #3a1a0a 100%); border-radius:12% 12% 4% 4% / 30% 30% 10% 10%; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); z-index:1; }
.scn-mother-and-davy-intimacy .fire-glow { position:absolute; bottom:18%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #ff8040 0%, #d04020 40%, transparent 70%); border-radius:50%; animation: dy1-fire 4s ease-in-out infinite alternate; z-index:2; box-shadow: 0 0 60px 30px rgba(255,128,64,0.6), 0 0 120px 60px rgba(200,60,20,0.3); }
.scn-mother-and-davy-intimacy .figure-mother { position:absolute; bottom:8%; left:38%; width:30px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dy1-mother 6s ease-in-out infinite; z-index:3; }
.scn-mother-and-davy-intimacy .figure-davy { position:absolute; bottom:6%; left:46%; width:18px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dy1-davy 5s ease-in-out infinite alternate; z-index:3; }
.scn-mother-and-davy-intimacy .chair { position:absolute; bottom:5%; left:35%; width:50px; height:30px; background: linear-gradient(0deg, #4a3020 0%, #3a2010 100%); border-radius:20% 20% 10% 10%; z-index:1; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-mother-and-davy-intimacy .window-moon { position:absolute; top:10%; right:10%; width:60px; height:80px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:4%; box-shadow: inset 0 0 20px rgba(240,240,255,.2); z-index:1; }
.scn-mother-and-davy-intimacy .candle { position:absolute; bottom:20%; left:30%; width:4px; height:12px; background: linear-gradient(180deg, #d0a050 0%, #a07030 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 12px 4px rgba(200,160,80,.7); animation: dy1-candle 2s ease-in-out infinite alternate; z-index:4; }
@keyframes dy1-fire { 0% { transform:translateX(-50%) scale(1); opacity:.8; } 50% { transform:translateX(-50%) scale(1.1) translateY(-3px); opacity:1; } 100% { transform:translateX(-50%) scale(0.95); opacity:.9; } }
@keyframes dy1-mother { 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 dy1-davy { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dy1-candle { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.8; transform: scaleY(1); } }

.scn-mother-and-davy-tender { background: linear-gradient(180deg, #1a121a 0%, #0e0a0e 40%, #2a1a2a 100%), radial-gradient(ellipse at 50% 100%, #3a2a3a 0%, transparent 70%); }
.scn-mother-and-davy-tender .bg-bedroom { position:absolute; inset:0; background: linear-gradient(180deg, #1a121a 0%, #0e0a0e 100%); z-index:0; }
.scn-mother-and-davy-tender .bed { position:absolute; bottom:10%; left:10%; width:80%; height:40%; background: linear-gradient(0deg, #2a1a2a 0%, #1a0e1a 100%); border-radius:20% 20% 10% 10%; z-index:1; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
.scn-mother-and-davy-tender .figure-mother-tender { position:absolute; bottom:18%; left:25%; width:35px; height:90px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dy2-hug 8s ease-in-out infinite; z-index:2; }
.scn-mother-and-davy-tender .figure-davy-tender { position:absolute; bottom:16%; left:30%; width:20px; height:55px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dy2-hug-child 6s ease-in-out infinite alternate; z-index:2; }
.scn-mother-and-davy-tender .lamp { position:absolute; top:20%; left:60%; width:12px; height:20px; background: linear-gradient(180deg, #d0a060 0%, #a08040 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 30px 10px rgba(200,160,80,.5); z-index:3; animation: dy2-lamp 4s ease-in-out infinite alternate; }
.scn-mother-and-davy-tender .pillow { position:absolute; bottom:14%; left:20%; width:30px; height:10px; background: linear-gradient(0deg, #4a3a4a 0%, #3a2a3a 100%); border-radius:50%; z-index:1; }
.scn-mother-and-davy-tender .curtain { position:absolute; top:0; right:20%; width:40px; height:100%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 80%); border-radius:10%; z-index:0; animation: dy2-curtain 12s ease-in-out infinite; }
@keyframes dy2-hug { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dy2-hug-child { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dy2-lamp { 0% { opacity:.8; box-shadow: 0 0 20px 8px rgba(200,160,80,.4); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(200,160,80,.7); } 100% { opacity:.9; box-shadow: 0 0 25px 10px rgba(200,160,80,.5); } }
@keyframes dy2-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) translateX(-5px); } 100% { transform: scaleX(1); } }

.scn-peggotty-proposes-yarmouth { background: linear-gradient(180deg, #f0e8c0 0%, #d0c8a0 40%, #b0a880 100%), radial-gradient(ellipse at 60% 30%, #fff0d0 0%, transparent 60%); }
.scn-peggotty-proposes-yarmouth .bg-bright-room { position:absolute; inset:0; background: linear-gradient(180deg, #f0e8c0 0%, #d0c8a0 100%); z-index:0; }
.scn-peggotty-proposes-yarmouth .window-sea { position:absolute; top:10%; left:5%; width:40%; height:50%; background: linear-gradient(180deg, #a0c8e8 0%, #6080a0 100%); border-radius:4%; box-shadow: inset 0 0 20px rgba(255,255,255,.3); z-index:1; animation: yp-waves 8s ease-in-out infinite; }
.scn-peggotty-proposes-yarmouth .table { position:absolute; bottom:15%; left:30%; width:60%; height:5%; background: linear-gradient(0deg, #c0a880 0%, #a89070 100%); border-radius:4px; z-index:2; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-peggotty-proposes-yarmouth .figure-peggotty { position:absolute; bottom:18%; left:35%; width:40px; height:90px; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yp-peggotty 7s ease-in-out infinite; z-index:3; }
.scn-peggotty-proposes-yarmouth .figure-davy-seated { position:absolute; bottom:16%; left:55%; width:22px; height:60px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: yp-davy 5s ease-in-out infinite alternate; z-index:3; }
.scn-peggotty-proposes-yarmouth .teacup { position:absolute; bottom:25%; left:40%; width:14px; height:12px; background: linear-gradient(180deg, #d0a080 0%, #a08060 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); z-index:4; animation: yp-teacup 3s ease-in-out infinite; }
.scn-peggotty-proposes-yarmouth .sunbeam { position:absolute; top:5%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, transparent 100%); filter: blur(8px); z-index:1; animation: yp-sunbeam 12s ease-in-out infinite alternate; }
.scn-peggotty-proposes-yarmouth .map { position:absolute; bottom:30%; left:60%; width:40px; height:30px; background: linear-gradient(135deg, #e0d0a0 0%, #c0b080 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.2); z-index:2; animation: yp-map 6s ease-in-out infinite; }
@keyframes yp-waves { 0% { background-position: 0 0; } 50% { background-position: 0 5px; } 100% { background-position: 0 0; } }
@keyframes yp-peggotty { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes yp-davy { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes yp-teacup { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes yp-sunbeam { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.6; transform: scaleY(1.2) translateY(-10px); } 100% { opacity:.4; transform: scaleY(1); } }
@keyframes yp-map { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-mother-consents-to-trip { background: linear-gradient(180deg, #f0d8a0 0%, #d0b880 40%, #a09070 100%), radial-gradient(ellipse at 80% 20%, #ffe0a0 0%, transparent 60%); }
.scn-mother-consents-to-trip .bg-doorway { position:absolute; inset:0; background: linear-gradient(180deg, #f0d8a0 0%, #d0b880 100%); z-index:0; }
.scn-mother-consents-to-trip .door { position:absolute; bottom:0; left:30%; width:40%; height:90%; background: linear-gradient(0deg, #a08050 0%, #806040 100%); border-radius:2%; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); z-index:1; }
.scn-mother-consents-to-trip .figure-mother-door { position:absolute; bottom:5%; left:38%; width:35px; height:85px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ct-mother 6s ease-in-out infinite; z-index:2; }
.scn-mother-consents-to-trip .figure-davy-door { position:absolute; bottom:4%; left:50%; width:20px; height:55px; background: linear-gradient(180deg, #907050 0%, #705030 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ct-davy 5s ease-in-out infinite alternate; z-index:2; }
.scn-mother-consents-to-trip .cart-outside { position:absolute; bottom:10%; right:10%; width:60px; height:40px; background: linear-gradient(0deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:30% 30% 10% 10%; z-index:1; animation: ct-cart 10s linear infinite; }
.scn-mother-consents-to-trip .sunlight { position:absolute; top:5%; left:20%; width:80%; height:40%; background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 100%); filter: blur(12px); z-index:1; animation: ct-sunlight 15s ease-in-out infinite alternate; }
.scn-mother-consents-to-trip .step { position:absolute; bottom:0; left:25%; width:50%; height:4%; background: linear-gradient(0deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:2px; z-index:1; }
.scn-mother-consents-to-trip .flowerpot { position:absolute; bottom:5%; left:35%; width:10px; height:16px; background: linear-gradient(0deg, #b08050 0%, #906040 100%); border-radius:20% 20% 10% 10%; z-index:3; animation: ct-flower 4s ease-in-out infinite; }
@keyframes ct-mother { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ct-davy { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ct-cart { 0% { transform: translateX(0); } 100% { transform: translateX(-30px); } }
@keyframes ct-sunlight { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.6; transform: scaleY(1.3) translateY(-5px); } 100% { opacity:.4; transform: scaleY(1); } }
@keyframes ct-flower { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }

.scn-betsey-trotwood-visit {
  background: linear-gradient(180deg, #f5f0e0 0%, #e8dbc0 40%, #d4c4a0 100%), radial-gradient(ellipse at 30% 50%, #fff8e8 0%, transparent 70%);
}
.scn-betsey-trotwood-visit .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #e3d9c5 0%, #d4c8b0 100%); }
.scn-betsey-trotwood-visit .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #b89a7a 0%, #8a6e52 100%); border-top: 2px solid #c2a88a; }
.scn-betsey-trotwood-visit .window { position: absolute; top: 10%; left: 15%; width: 30%; height: 45%; background: linear-gradient(180deg, #d9e4f0 0%, #b6cee0 100%); border: 4px solid #8b7355; border-radius: 2px; box-shadow: inset 0 0 20px rgba(255,255,240,0.5); }
.scn-betsey-trotwood-visit .curtain-l { position: absolute; top: 10%; left: 15%; width: 12%; height: 48%; background: linear-gradient(180deg, #c4a882 0%, #a88d6a 100%); border-radius: 0 4px 4px 0; transform-origin: top left; animation: btv-curtain 8s ease-in-out infinite alternate; }
.scn-betsey-trotwood-visit .curtain-r { position: absolute; top: 10%; left: 33%; width: 12%; height: 48%; background: linear-gradient(180deg, #c4a882 0%, #a88d6a 100%); border-radius: 4px 0 0 4px; transform-origin: top right; animation: btv-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-betsey-trotwood-visit .figure-betsey { position: absolute; bottom: 28%; left: 45%; width: 12%; height: 40%; background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: btv-figure 6s ease-in-out infinite; }
.scn-betsey-trotwood-visit .figure-baby { position: absolute; bottom: 32%; left: 50%; width: 8%; height: 18%; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: btv-baby 4s ease-in-out infinite; }
.scn-betsey-trotwood-visit .chair { position: absolute; bottom: 25%; left: 55%; width: 10%; height: 30%; background: linear-gradient(180deg, #6b4c3a 0%, #4a3428 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 -2px 6px rgba(0,0,0,0.2); }
.scn-betsey-trotwood-visit .lamplight { position: absolute; bottom: 30%; left: 30%; width: 6%; height: 6%; background: radial-gradient(circle, #f0d080 0%, #e0b050 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 15px #f0d080, 0 0 60px 25px rgba(240,208,128,0.3); animation: btv-lamp 4s ease-in-out infinite alternate; }
@keyframes btv-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes btv-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-0.5deg) } 75% { transform: translateY(-1px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes btv-baby { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes btv-lamp { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(1) } }

.scn-betsey-questions-mother {
  background: linear-gradient(180deg, #f2e8d0 0%, #e0d0b0 40%, #c8b090 100%), radial-gradient(ellipse at 60% 20%, #fffae0 0%, transparent 70%);
}
.scn-betsey-questions-mother .bg-room { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #e8dcc4 0%, #d4c4a8 100%); }
.scn-betsey-questions-mother .table { position: absolute; bottom: 25%; left: 30%; width: 25%; height: 12%; background: linear-gradient(180deg, #8b6e4a 0%, #6a4f33 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-betsey-questions-mother .tea-cup { position: absolute; bottom: 32%; left: 38%; width: 5%; height: 8%; background: linear-gradient(180deg, #b8a090 0%, #8a7265 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 6px rgba(0,0,0,0.2); }
.scn-betsey-questions-mother .steam { position: absolute; bottom: 38%; left: 39%; width: 3%; height: 10%; background: radial-gradient(ellipse, rgba(255,255,255,0.6) 0%, transparent 70%); filter: blur(2px); animation: bqm-steam 6s ease-in-out infinite; }
.scn-betsey-questions-mother .figure-mother { position: absolute; bottom: 22%; left: 20%; width: 14%; height: 40%; background: linear-gradient(180deg, #7a5a4a 0%, #4a3428 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bqm-figure-m 7s ease-in-out infinite; }
.scn-betsey-questions-mother .figure-betsey { position: absolute; bottom: 22%; left: 55%; width: 16%; height: 42%; background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bqm-figure-b 9s ease-in-out infinite; }
.scn-betsey-questions-mother .window { position: absolute; top: 8%; right: 12%; width: 20%; height: 35%; background: linear-gradient(180deg, #d9e4f0 0%, #b6cee0 100%); border: 3px solid #8b7355; border-radius: 2px; box-shadow: inset 0 0 15px rgba(255,255,240,0.4); }
.scn-betsey-questions-mother .clock { position: absolute; top: 12%; left: 12%; width: 6%; height: 10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform-origin: center; animation: bqm-clock 2s ease-in-out infinite alternate; }
@keyframes bqm-steam { 0% { transform: translateY(0) scaleX(1); opacity: 0.6 } 50% { transform: translateY(-15px) scaleX(1.5); opacity: 0.2 } 100% { transform: translateY(0) scaleX(1); opacity: 0.6 } }
@keyframes bqm-figure-m { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(-0.5deg) } 75% { transform: translateY(-1.5px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bqm-figure-b { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0.5deg) } 75% { transform: translateY(-1px) rotate(-0.5deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes bqm-clock { 0% { transform: rotate(-3deg) } 100% { transform: rotate(3deg) } }

.scn-betsey-on-marriage {
  background: linear-gradient(180deg, #f0e4c8 0%, #dccc9c 40%, #c0a87c 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-betsey-on-marriage .bg-interior { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #e0d0b8 0%, #c8b498 100%); }
.scn-betsey-on-marriage .sofa { position: absolute; bottom: 20%; left: 10%; width: 50%; height: 35%; background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%); border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-betsey-on-marriage .cushion { position: absolute; bottom: 30%; left: 15%; width: 15%; height: 12%; background: linear-gradient(180deg, #b08060 0%, #8a6040 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 2px 4px rgba(255,255,240,0.2); animation: bom-cushion 5s ease-in-out infinite; }
.scn-betsey-on-marriage .figure-betsey-large { position: absolute; bottom: 18%; left: 12%; width: 22%; height: 45%; background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bom-betsey 8s ease-in-out infinite; }
.scn-betsey-on-marriage .figure-mother-small { position: absolute; bottom: 22%; left: 40%; width: 14%; height: 35%; background: linear-gradient(180deg, #7a5a4a 0%, #4a3428 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bom-mother 6s ease-in-out infinite; }
.scn-betsey-on-marriage .fireplace { position: absolute; bottom: 15%; right: 12%; width: 20%; height: 50%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-betsey-on-marriage .fire-glow { position: absolute; bottom: 20%; right: 18%; width: 8%; height: 15%; background: radial-gradient(ellipse, #f0a060 0%, #d07030 50%, transparent 100%); filter: blur(3px); animation: bom-fire 3s ease-in-out infinite alternate; }
.scn-betsey-on-marriage .picture-frame { position: absolute; top: 8%; left: 40%; width: 12%; height: 18%; background: linear-gradient(180deg, #8b7355 0%, #5a4530 100%); border: 4px solid #6a503a; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); transform-origin: center; animation: bom-frame 12s ease-in-out infinite; }
@keyframes bom-cushion { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes bom-betsey { 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(-2deg) } }
@keyframes bom-mother { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0.5deg) } 75% { transform: translateY(-1.5px) rotate(-0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes bom-fire { 0% { opacity: 0.6; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.2) } 100% { opacity: 0.7; transform: scaleY(1) } }
@keyframes bom-frame { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }

.scn-child-questions-marriage {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #4a3a5a 0%, transparent 70%);
}
.scn-child-questions-marriage .bg-night { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #1e1e3e 0%, #12122a 100%); }
.scn-child-questions-marriage .hearth { position: absolute; bottom: 15%; left: 20%; width: 60%; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.7); }
.scn-child-questions-marriage .fire { position: absolute; bottom: 25%; left: 35%; width: 30%; height: 25%; background: radial-gradient(ellipse at 50% 30%, #e08040 0%, #b05020 50%, #802010 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; filter: blur(2px); animation: cqm-fire 2s ease-in-out infinite alternate; }
.scn-child-questions-marriage .figure-child { position: absolute; bottom: 18%; left: 25%; width: 10%; height: 30%; background: linear-gradient(180deg, #2a1a1a 0%, #121010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cqm-child 4s ease-in-out infinite; }
.scn-child-questions-marriage .figure-peggotty { position: absolute; bottom: 20%; left: 60%; width: 14%; height: 35%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cqm-peggotty 6s ease-in-out infinite; }
.scn-child-questions-marriage .blanket { position: absolute; bottom: 22%; left: 22%; width: 16%; height: 10%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: center; animation: cqm-blanket 5s ease-in-out infinite; }
.scn-child-questions-marriage .candle { position: absolute; bottom: 30%; left: 10%; width: 3%; height: 12%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 8px 2px #e0c080; }
.scn-child-questions-marriage .candle-light { position: absolute; bottom: 40%; left: 9%; width: 5%; height: 5%; background: radial-gradient(circle, #f0d080 0%, #e0b050 40%, transparent 100%); filter: blur(2px); animation: cqm-candle 4s ease-in-out infinite alternate; }
@keyframes cqm-fire { 0% { transform: scaleY(1) translateY(0); opacity: 0.8 } 25% { transform: scaleY(1.1) translateY(-2px); opacity: 1 } 50% { transform: scaleY(0.95) translateY(0); opacity: 0.9 } 75% { transform: scaleY(1.05) translateY(-1px); opacity: 1 } 100% { transform: scaleY(1) translateY(0); opacity: 0.8 } }
@keyframes cqm-child { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1.5px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cqm-peggotty { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0.5deg) } 75% { transform: translateY(-1px) rotate(-0.5deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes cqm-blanket { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes cqm-candle { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.15) } 100% { opacity: 0.8; transform: scale(1) } }

/* arrival-at-yarmouth */
.scn-arrival-at-yarmouth {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 30%, #FFD700 70%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%);
}
.scn-arrival-at-yarmouth .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #4a90d9 0%, #87CEEB 60%, transparent 100%); animation: yarm-sky 12s ease-in-out infinite alternate; }
.scn-arrival-at-yarmouth .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2E8B57 0%, #1E6B3A 100%); border-radius: 0% 0% 10% 10% / 0% 0% 20% 20%; animation: yarm-sea 8s ease-in-out infinite alternate; }
.scn-arrival-at-yarmouth .sun { position:absolute; top:15%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 70%); border-radius:50%; box-shadow:0 0 40px 20px rgba(255,215,0,0.5); animation: yarm-sun 6s ease-in-out infinite alternate; }
.scn-arrival-at-yarmouth .cloud { position:absolute; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.8) 0%, transparent 100%); filter:blur(4px); }
.scn-arrival-at-yarmouth .cloud-a { top:12%; left:10%; width:100px; height:30px; animation: yarm-drift-a 30s linear infinite; }
.scn-arrival-at-yarmouth .cloud-b { top:20%; left:60%; width:80px; height:20px; animation: yarm-drift-b 40s linear infinite; }
.scn-arrival-at-yarmouth .boat-house { position:absolute; bottom:30%; left:35%; width:100px; height:80px; background: linear-gradient(135deg, #8B4513 0%, #5C3317 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: rotate(-5deg); box-shadow: 0 10px 20px rgba(0,0,0,0.4); animation: yarm-boathouse 4s ease-in-out infinite; }
.scn-arrival-at-yarmouth .figure { position:absolute; bottom:28%; width:20px; height:40px; background: linear-gradient(180deg, #2C1A0E 0%, #1A0F08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; }
.scn-arrival-at-yarmouth .figure-ham { left:38%; animation: yarm-figure-ham 3s ease-in-out infinite; }
.scn-arrival-at-yarmouth .figure-davy { left:42%; height:35px; animation: yarm-figure-davy 3.5s ease-in-out infinite; }
.scn-arrival-at-yarmouth .sail { position:absolute; bottom:35%; left:38%; width:30px; height:50px; background: #F5DEB3; border-radius: 20% 80% 20% 80% / 30% 70% 30% 70%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: yarm-sail 5s ease-in-out infinite alternate; }
@keyframes yarm-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes yarm-sea { 0%{transform:translateY(0)} 50%{transform:translateY(-5px)} 100%{transform:translateY(2px)} }
@keyframes yarm-sun { 0%{transform:scale(0.95);opacity:0.9} 50%{transform:scale(1.05);opacity:1} 100%{transform:scale(1);opacity:0.95} }
@keyframes yarm-drift-a { 0%{transform:translateX(0)} 50%{transform:translateX(50px)} 100%{transform:translateX(100vw)} }
@keyframes yarm-drift-b { 0%{transform:translateX(0)} 50%{transform:translateX(-30px)} 100%{transform:translateX(-100vw)} }
@keyframes yarm-boathouse { 0%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-3deg) translateY(-3px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes yarm-figure-ham { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes yarm-figure-davy { 0%{transform:translateY(0) rotate(1deg)} 50%{transform:translateY(-3px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes yarm-sail { 0%{transform:rotate(0deg)} 50%{transform:rotate(5deg)} 100%{transform:rotate(-5deg)} }

/* inside-the-boat-house */
.scn-inside-the-boat-house {
  background: linear-gradient(180deg, #3E2723 0%, #1B0F0A 50%, #0D0603 100%), radial-gradient(ellipse at 50% 100%, #4E342E 0%, transparent 70%);
}
.scn-inside-the-boat-house .interior-bg { position:absolute; inset:0; background: linear-gradient(180deg, #3E2723 0%, #2A1C14 60%, #1A0E08 100%); }
.scn-inside-the-boat-house .window { position:absolute; top:15%; right:20%; width:40px; height:30px; background: radial-gradient(circle at 50% 50%, #FFF8DC 0%, #B8860B 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 30px 10px rgba(255,248,220,0.3); animation: boat-window 4s ease-in-out infinite alternate; }
.scn-inside-the-boat-house .fire { position:absolute; bottom:20%; left:15%; width:30px; height:50px; background: radial-gradient(circle at 50% 80%, #FF8C00 0%, #FF4500 50%, transparent 100%); border-radius: 50%; filter:blur(3px); animation: boat-fire 2s ease-in-out infinite alternate; }
.scn-inside-the-boat-house .barrel { position:absolute; bottom:20%; width:30px; height:40px; background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%); border-radius: 20% 20% 10% 10%; }
.scn-inside-the-boat-house .barrel-left { left:30%; animation: boat-barrel 5s ease-in-out infinite; }
.scn-inside-the-boat-house .barrel-right { right:30%; animation: boat-barrel 5.5s ease-in-out infinite reverse; }
.scn-inside-the-boat-house .figure { position:absolute; bottom:15%; height:50px; width:20px; background: linear-gradient(180deg, #2C1A0E 0%, #1A0F08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; }
.scn-inside-the-boat-house .figure-p { left:40%; animation: boat-figure-p 3s ease-in-out infinite; }
.scn-inside-the-boat-house .figure-e { left:48%; height:30px; width:15px; animation: boat-figure-e 3.5s ease-in-out infinite; }
.scn-inside-the-boat-house .lantern { position:absolute; top:20%; left:10%; width:10px; height:15px; background: #FFD700; border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 5px rgba(255,215,0,0.5); animation: boat-lantern 4s ease-in-out infinite alternate; }
@keyframes boat-window { 0%{opacity:0.5;transform:scale(1)} 50%{opacity:0.8;transform:scale(1.05)} 100%{opacity:0.6;transform:scale(0.95)} }
@keyframes boat-fire { 0%{transform:scale(0.9);opacity:0.7} 50%{transform:scale(1.1);opacity:1} 100%{transform:scale(0.95);opacity:0.8} }
@keyframes boat-barrel { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-3px) rotate(2deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes boat-figure-p { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes boat-figure-e { 0%{transform:translateY(0) rotate(2deg)} 50%{transform:translateY(-1px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes boat-lantern { 0%{transform:rotate(-5deg)} 50%{transform:rotate(5deg)} 100%{transform:rotate(-3deg)} }

/* mrs-gummidge-lament */
.scn-mrs-gummidge-lament {
  background: linear-gradient(180deg, #1A1A2E 0%, #0F0F1A 50%, #050508 100%), radial-gradient(ellipse at 50% 100%, #2C2C3E 0%, transparent 70%);
}
.scn-mrs-gummidge-lament .dark-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1A1A2E 0%, #0F0F1A 100%); }
.scn-mrs-gummidge-lament .candle { position:absolute; bottom:30%; left:20%; width:15px; height:25px; background: linear-gradient(180deg, #F5DEB3 0%, #D2691E 100%); border-radius: 20% 20% 10% 10%; }
.scn-mrs-gummidge-lament .flame { position:absolute; bottom:55%; left:20%; width:10px; height:15px; background: radial-gradient(circle at 50% 100%, #FFD700 0%, #FF8C00 60%, transparent 100%); border-radius: 50% 50% 20% 20%; animation: gummidge-flame 1.5s ease-in-out infinite alternate; }
.scn-mrs-gummidge-lament .figure { position:absolute; bottom:20%; left:35%; width:25px; height:45px; background: linear-gradient(180deg, #2C1A0E 0%, #1A0F08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gummidge-figure 4s ease-in-out infinite; }
.scn-mrs-gummidge-lament .door { position:absolute; right:10%; top:10%; width:50px; height:80px; background: linear-gradient(135deg, #4E342E 0%, #3E2723 100%); border-radius: 0 0 5% 5%; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.5); animation: gummidge-door 6s ease-in-out infinite alternate; }
.scn-mrs-gummidge-lament .chair { position:absolute; bottom:20%; right:25%; width:30px; height:30px; background: linear-gradient(180deg, #3E2723 0%, #2A1C14 100%); border-radius: 20% 20% 10% 10%; animation: gummidge-chair 5s ease-in-out infinite; }
.scn-mrs-gummidge-lament .shadow { position:absolute; width:40px; height:60px; background: rgba(0,0,0,0.4); filter:blur(5px); }
.scn-mrs-gummidge-lament .shadow-a { bottom:15%; left:10%; animation: gummidge-shadow 7s ease-in-out infinite alternate; }
.scn-mrs-gummidge-lament .shadow-b { bottom:15%; right:15%; animation: gummidge-shadow 8s ease-in-out infinite alternate reverse; }
@keyframes gummidge-flame { 0%{transform:scale(0.8);opacity:0.6} 50%{transform:scale(1.2);opacity:1} 100%{transform:scale(0.9);opacity:0.7} }
@keyframes gummidge-figure { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes gummidge-door { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(0.98)} }
@keyframes gummidge-chair { 0%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-2px) rotate(2deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes gummidge-shadow { 0%{opacity:0.3;transform:translateX(0)} 50%{opacity:0.5;transform:translateX(5px)} 100%{opacity:0.3;transform:translateX(-5px)} }

/* news-of-mother-marriage */
.scn-news-of-mother-marriage {
  background: linear-gradient(180deg, #2C2C3E 0%, #1A1A2E 50%, #0A0A14 100%), radial-gradient(ellipse at 50% 100%, #3E3E5E 0%, transparent 70%);
}
.scn-news-of-mother-marriage .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2C2C3E 0%, #1A1A2E 100%); }
.scn-news-of-mother-marriage .window-bars { position:absolute; top:10%; left:10%; width:40px; height:50px; background: #0A0A14; border: 2px solid #4E4E6E; box-shadow: 0 0 15px rgba(255,255,255,0.1); animation: murd-window 5s ease-in-out infinite alternate; }
.scn-news-of-mother-marriage .shadow-wall { position:absolute; top:20%; left:50%; width:80px; height:120px; background: rgba(0,0,0,0.5); filter:blur(10px); animation: murd-shadow 8s ease-in-out infinite alternate; }
.scn-news-of-mother-marriage .figure { position:absolute; bottom:20%; width:20px; height:50px; background: linear-gradient(180deg, #2C1A0E 0%, #1A0F08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; }
.scn-news-of-mother-marriage .figure-davy { left:30%; height:35px; animation: murd-davy 2s ease-in-out infinite; }
.scn-news-of-mother-marriage .figure-murdstone { left:45%; height:60px; width:25px; background: linear-gradient(180deg, #1A1A2E 0%, #0F0F1A 100%); animation: murd-murdstone 3s ease-in-out infinite; }
.scn-news-of-mother-marriage .figure-clara { left:55%; height:40px; width:18px; background: linear-gradient(180deg, #4A3A3A 0%, #3A2A2A 100%); animation: murd-clara 2.5s ease-in-out infinite; }
.scn-news-of-mother-marriage .table { position:absolute; bottom:10%; left:35%; width:60px; height:20px; background: linear-gradient(180deg, #3E2723 0%, #2A1C14 100%); border-radius: 10% 10% 0 0; animation: murd-table 6s ease-in-out infinite alternate; }
@keyframes murd-window { 0%{opacity:0.3} 50%{opacity:0.6} 100%{opacity:0.2} }
@keyframes murd-shadow { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.1)} 100%{transform:scaleX(0.9)} }
@keyframes murd-davy { 0%{transform:translateY(0) rotate(-3deg)} 50%{transform:translateY(-2px) rotate(2deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes murd-murdstone { 0%{transform:translateY(0) rotate(1deg)} 50%{transform:translateY(-5px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes murd-clara { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-1px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes murd-table { 0%{transform:rotate(0deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-2deg)} }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.sharp { position: absolute; pointer-events: none; }
.soft { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-barkis-dying {
  background: linear-gradient(180deg, #1a0a00 0%, #3a1a0a 40%, #5a2a0a 70%, #3a1a0a 100%),
              radial-gradient(ellipse at 30% 70%, #c06020 0%, transparent 50%);
}
.scn-barkis-dying .bd-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1000 0%, #1a0a00 100%); }
.scn-barkis-dying .bd-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1500 0%, #0f0700 100%); }
.scn-barkis-dying .bd-fire { position:absolute; bottom:25%; left:15%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 70%, #ffa030 0%, #ff7020 40%, #c04010 70%, transparent 90%); border-radius: 50%; filter: blur(12px); animation: bd-fire 3s ease-in-out infinite alternate; }
.scn-barkis-dying .bd-bed { position:absolute; bottom:20%; left:35%; width:120px; height:50px; background: linear-gradient(180deg, #4a2a10 0%, #2a1508 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-barkis-dying .bd-figure-patient { position:absolute; bottom:22%; left:40%; width:60px; height:30px; background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd-patient 6s ease-in-out infinite; }
.scn-barkis-dying .bd-figure-nurse { position:absolute; bottom:17%; left:50%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: bd-nurse 8s ease-in-out infinite alternate; }
.scn-barkis-dying .bd-window { position:absolute; top:10%; right:10%; width:70px; height:90px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%); border: 2px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); }
@keyframes bd-fire { 0% { transform: scale(1) translateY(0); opacity: 0.8; } 50% { transform: scale(1.1) translateY(-2px); opacity: 1; } 100% { transform: scale(0.95) translateY(2px); opacity: 0.7; } }
@keyframes bd-patient { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes bd-nurse { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-emly-fled {
  background: linear-gradient(180deg, #0a0a1a 0%, #151530 40%, #202050 70%, #151530 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a3a 0%, transparent 60%);
}
.scn-emly-fled .ef-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%); }
.scn-emly-fled .ef-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%); }
.scn-emly-fled .ef-window { position:absolute; top:10%; left:10%; width:80px; height:100px; background: linear-gradient(180deg, #0a0a20 0%, #1a1a3a 100%); border: 2px solid #2a2a3a; border-radius: 4px; box-shadow: inset 0 0 15px rgba(0,0,0,0.9); }
.scn-emly-fled .ef-candle { position:absolute; top:12%; left:14%; width:8px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c07030 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255,160,64,0.5); animation: ef-candle 4s ease-in-out infinite alternate; }
.scn-emly-fled .ef-figure-left { position:absolute; bottom:15%; left:25%; width:50px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #101020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ef-figure-left 10s ease-in-out infinite; }
.scn-emly-fled .ef-figure-right { position:absolute; bottom:15%; right:30%; width:55px; height:75px; background: linear-gradient(180deg, #1a1a30 0%, #0a0a18 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; animation: ef-figure-right 12s ease-in-out infinite alternate; }
.scn-emly-fled .ef-table { position:absolute; bottom:20%; left:40%; width:100px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #151528 100%); border-radius: 4px; }
@keyframes ef-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.1) scaleX(1.05); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(0.95); opacity: 0.8; } }
@keyframes ef-figure-left { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-5px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(5px) rotate(2deg); } }
@keyframes ef-figure-right { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-billy-death {
  background: linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 30%, #6a7a8a 50%, #8a9aaa 70%, #6a7a8a 100%),
              radial-gradient(ellipse at 50% 20%, #8a9aaa 0%, transparent 50%);
}
.scn-billy-death .bi-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 40%, #8a9aaa 100%); animation: bi-sky 20s ease-in-out infinite alternate; }
.scn-billy-death .bi-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); }
.scn-billy-death .bi-path { position:absolute; bottom:20%; left:40%; width:30%; height:20%; background: linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 100%); border-radius: 50% 50% 0 0; transform: skewX(-10deg); }
.scn-billy-death .bi-cottage { position:absolute; bottom:35%; right:15%; width:100px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: bi-cottage 8s ease-in-out infinite; }
.scn-billy-death .bi-figure { position:absolute; bottom:18%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bi-figure 12s ease-in-out infinite alternate; }
.scn-billy-death .bi-tree { position:absolute; bottom:25%; left:10%; width:40px; height:100px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; filter: blur(1px); animation: bi-tree 15s ease-in-out infinite; }
@keyframes bi-sky { 0% { opacity: 0.7; background-position: 0 0; } 50% { opacity: 1; background-position: 20% 10%; } 100% { opacity: 0.8; background-position: 0 0; } }
@keyframes bi-cottage { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes bi-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(10px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bi-tree { 0% { transform: rotate(0); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0); } }

.scn-dora-love-letter {
  background: linear-gradient(180deg, #f0e8d0 0%, #d8d0b8 40%, #c0b8a0 70%, #a8a088 100%),
              radial-gradient(ellipse at 50% 50%, #fff8e0 0%, transparent 60%);
}
.scn-dora-love-letter .dl-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d0c8b0 0%, #e8e0c8 50%, #f0e8d0 100%); animation: dl-sky 15s ease-in-out infinite alternate; }
.scn-dora-love-letter .dl-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b0a890 0%, #908878 100%); }
.scn-dora-love-letter .dl-bench { position:absolute; bottom:20%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.scn-dora-love-letter .dl-figure-david { position:absolute; bottom:15%; left:35%; width:45px; height:70px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dl-david 8s ease-in-out infinite; }
.scn-dora-love-letter .dl-figure-dora { position:absolute; bottom:15%; right:35%; width:40px; height:65px; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dl-dora 8s ease-in-out infinite alternate; }
.scn-dora-love-letter .dl-flowers { position:absolute; bottom:30%; right:20%; width:60px; height:50px; background: radial-gradient(ellipse at 50% 60%, #e0a0a0 0%, #c08070 40%, #a06050 70%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: dl-flowers 6s ease-in-out infinite; }
.scn-dora-love-letter .dl-jip { position:absolute; bottom:12%; left:45%; width:20px; height:15px; background: radial-gradient(ellipse at 50% 30%, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 30% 30%; animation: dl-jip 4s ease-in-out infinite; }
@keyframes dl-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dl-david { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes dl-dora { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(0) scale(1); } }
@keyframes dl-flowers { 0% { transform: scale(1) rotate(0); } 33% { transform: scale(1.05) rotate(3deg); } 66% { transform: scale(0.95) rotate(-2deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes dl-jip { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px); } }

/* birth-scene */
.scn-birth-scene {
  background:
    linear-gradient(180deg, #0a0a2a 0%, #15153e 40%, #1a1a4e 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a6e 0%, transparent 70%);
}
.scn-birth-scene .moonlight {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, rgba(200,220,255,0.08) 0%, transparent 60%);
  animation: bir-moon 12s ease-in-out infinite alternate;
}
.scn-birth-scene .window-frame {
  position: absolute; bottom: 35%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #1a1a3e, #0a0a2a);
  border: 2px solid #3a3a5e;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(50,50,100,0.5);
}
.scn-birth-scene .curtain-left {
  position: absolute; bottom: 35%; left: 34%; width: 15%; height: 50%;
  background: linear-gradient(135deg, #2a2a4a, #1a1a3e);
  border-radius: 0 40% 40% 0;
  animation: bir-curtain 8s ease-in-out infinite alternate;
}
.scn-birth-scene .curtain-right {
  position: absolute; bottom: 35%; right: 34%; width: 15%; height: 50%;
  background: linear-gradient(-135deg, #2a2a4a, #1a1a3e);
  border-radius: 40% 0 0 40%;
  animation: bir-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-birth-scene .mother-silhouette {
  position: absolute; bottom: 20%; left: 40%; width: 12%; height: 30%;
  background: #0a0a1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bir-mother 6s ease-in-out infinite;
}
.scn-birth-scene .cradle {
  position: absolute; bottom: 15%; left: 46%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #2a2a1a, #1a1a0a);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 12px rgba(0,0,0,0.6);
  animation: bir-cradle 4s ease-in-out infinite alternate;
}
.scn-birth-scene .clock {
  position: absolute; top: 10%; left: 55%; width: 12%; height: 12%;
  background: radial-gradient(circle, #3a3a5a 30%, #1a1a2a 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(100,100,160,0.4);
  animation: bir-clock 1s steps(60) infinite;
}
@keyframes bir-moon { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes bir-curtain { 0% { transform: rotate(0deg) } 100% { transform: rotate(3deg) } }
@keyframes bir-mother { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4%) rotate(2deg) } }
@keyframes bir-cradle { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes bir-clock { 0% { background: radial-gradient(circle, #5a5a7a 30%, #1a1a2a 70%) } 50% { background: radial-gradient(circle, #6a6a8a 30%, #1a1a2a 70%) } 100% { background: radial-gradient(circle, #3a3a5a 30%, #1a1a2a 70%) } }

/* aunt-arrival */
.scn-aunt-arrival {
  background:
    linear-gradient(180deg, #1a1010 0%, #2a1a12 40%, #3a2218 100%),
    radial-gradient(ellipse at 30% 50%, #4a2a1a 0%, transparent 60%);
}
.scn-aunt-arrival .door-frame {
  position: absolute; right: 10%; bottom: 10%; width: 35%; height: 80%;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border: 4px solid #4a3a2a;
  border-radius: 4% 4% 0 0;
  box-shadow: -10px 0 20px rgba(0,0,0,0.6);
}
.scn-aunt-arrival .lantern-glow {
  position: absolute; right: 25%; bottom: 60%; width: 8%; height: 10%;
  background: radial-gradient(circle, #d0a060 20%, #805030 70%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(200,140,60,0.5);
  animation: aunt-lantern 3s ease-in-out infinite alternate;
}
.scn-aunt-arrival .aunt-figure {
  position: absolute; right: 20%; bottom: 10%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0a08 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: aunt-enter 6s ease-in-out infinite;
}
.scn-aunt-arrival .mother-figure {
  position: absolute; left: 45%; bottom: 10%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: aunt-mother 4s ease-in-out infinite alternate;
}
.scn-aunt-arrival .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3), rgba(0,0,0,0.7));
  animation: aunt-shadow 5s ease-in-out infinite alternate;
}
.scn-aunt-arrival .baby-swaddled {
  position: absolute; left: 48%; bottom: 18%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #5a3a2a, #3a2210);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: aunt-baby 3s ease-in-out infinite;
}
@keyframes aunt-lantern { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes aunt-enter { 0% { transform: translateX(20%) scale(0.8); opacity:0 } 30% { transform: translateX(0) scale(1); opacity:1 } 70% { transform: translateX(0) scale(1); opacity:1 } 100% { transform: translateX(0) scale(1); opacity:1 } }
@keyframes aunt-mother { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2%) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes aunt-shadow { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes aunt-baby { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1%) rotate(2deg) } }

/* murdstone-observing */
.scn-murdstone-observing {
  background:
    linear-gradient(180deg, #d4e0e8 0%, #b8c8d8 40%, #a0b8c8 100%),
    radial-gradient(ellipse at 70% 20%, #f0e8c0 0%, transparent 60%);
}
.scn-murdstone-observing .sunlight-panel {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.15), transparent 50%);
  animation: murd-sunbeam 10s ease-in-out infinite alternate;
}
.scn-murdstone-observing .window-garden {
  position: absolute; bottom: 10%; left: 50%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: murd-garden 8s ease-in-out infinite;
}
.scn-murdstone-observing .murdstone-silhouette {
  position: absolute; right: 20%; bottom: 30%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: murd-stand 4s ease-in-out infinite;
}
.scn-murdstone-observing .david-silhouette {
  position: absolute; left: 35%; bottom: 10%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: murd-david 6s ease-in-out infinite alternate;
}
.scn-murdstone-observing .mother-silhouette-sm {
  position: absolute; left: 28%; bottom: 15%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: murd-mother 5s ease-in-out infinite alternate;
}
.scn-murdstone-observing .shadow-bars {
  position: absolute; top: 0; left: 48%; width: 2%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2), rgba(0,0,0,0.1));
  box-shadow: 8px 0 0 rgba(0,0,0,0.1), -4px 0 0 rgba(0,0,0,0.05);
  animation: murd-bars 3s ease-in-out infinite;
}
@keyframes murd-sunbeam { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes murd-garden { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2%) } }
@keyframes murd-stand { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2%) rotate(2deg) } 70% { transform: translateX(-1%) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes murd-david { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1%) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes murd-mother { 0% { transform: translateX(0) } 50% { transform: translateX(3%) } 100% { transform: translateX(0) } }
@keyframes murd-bars { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }

/* yarmouth-visit */
.scn-yarmouth-visit {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0f0 30%, #e0f0f8 60%, #f0e8c0 100%),
    radial-gradient(ellipse at 50% 70%, #a0d0e0 0%, transparent 60%);
}
.scn-yarmouth-visit .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #a0d8f0 0%, #c0e8f8 50%, #f0f0d0 100%);
  animation: yarm-sky 15s ease-in-out infinite alternate;
}
.scn-yarmouth-visit .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a9ab0 0%, #3a6a8a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: yarm-sea 20s ease-in-out infinite alternate;
}
.scn-yarmouth-visit .boat-house {
  position: absolute; bottom: 20%; left: 20%; width: 50%; height: 40%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
  animation: yarm-house 8s ease-in-out infinite;
}
.scn-yarmouth-visit .dan-figure {
  position: absolute; bottom: 15%; left: 25%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: yarm-dan 5s ease-in-out infinite alternate;
}
.scn-yarmouth-visit .ham-figure {
  position: absolute; bottom: 12%; left: 35%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: yarm-ham 6s ease-in-out infinite alternate-reverse;
}
.scn-yarmouth-visit .emly-figure {
  position: absolute; bottom: 10%; left: 32%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: yarm-emly 4s ease-in-out infinite;
}
.scn-yarmouth-visit .beach-sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b8a88a 100%);
  border-radius: 30% 60% 0 0 / 40% 50% 0 0;
}
.scn-yarmouth-visit .wave-line {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 6%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2) 20%, transparent 40%, rgba(255,255,255,0.15) 60%, transparent 80%);
  background-size: 200% 100%;
  animation: yarm-wave 8s linear infinite;
}
@keyframes yarm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes yarm-sea { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(2%) scale(1.01) } 100% { transform: translateX(0) scale(1) } }
@keyframes yarm-house { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1%) rotate(1deg) } }
@keyframes yarm-dan { 0% { transform: translateX(0) } 50% { transform: translateX(4%) } 100% { transform: translateX(0) } }
@keyframes yarm-ham { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3%) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes yarm-emly { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2%) rotate(3deg) } }
@keyframes yarm-wave { 0% { background-position: 0% 0 } 100% { background-position: -200% 0 } }

.scn-aunts-confession {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 40%, #1e1212 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a2a 0%, transparent 70%);
}
.scn-aunts-confession .wall { 
  position: absolute; inset: 0 0 35% 0; 
  background: linear-gradient(180deg, #2e2424 0%, #1a1212 100%); 
  animation: ac-wall 10s ease-in-out infinite alternate;
}
.scn-aunts-confession .floor { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; 
  background: linear-gradient(0deg, #1a1212 0%, #2a1e1e 100%); 
  border-radius: 30% 20% 0 0 / 40% 30% 0 0; 
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-aunts-confession .lamp { 
  position: absolute; bottom: 32%; left: 40%; width: 12px; height: 28px; 
  background: linear-gradient(0deg, #5a4020, #8a6030); 
  border-radius: 4px 4px 0 0; 
  transform: skewX(-5deg);
}
.scn-aunts-confession .glow { 
  position: absolute; bottom: 28%; left: 38%; width: 80px; height: 80px; 
  background: radial-gradient(circle, rgba(200,150,60,0.35) 0%, transparent 70%); 
  animation: ac-glow 4s ease-in-out infinite alternate;
}
.scn-aunts-confession .aunt { 
  position: absolute; bottom: 33%; left: 55%; width: 22px; height: 40px; 
  background: linear-gradient(180deg, #1e1e2a 0%, #0e0e1a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: rotate(-3deg); 
  animation: ac-figure 6s ease-in-out infinite alternate;
}
.scn-aunts-confession .dora { 
  position: absolute; bottom: 33%; right: 20%; width: 18px; height: 34px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: rotate(2deg); 
  animation: ac-figure 7s ease-in-out infinite alternate;
}
.scn-aunts-confession .sofa { 
  position: absolute; bottom: 30%; left: 48%; width: 60px; height: 20px; 
  background: linear-gradient(0deg, #3a2a1a 0%, #4a3a2a 100%); 
  border-radius: 10% 10% 0 0; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
@keyframes ac-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ac-glow { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }
@keyframes ac-figure { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(1px) rotate(-4deg) } }

.scn-emly-rescue {
  background: 
    linear-gradient(180deg, #1a0e0a 0%, #2a140e 30%, #1a0806 100%),
    radial-gradient(ellipse at 60% 70%, #4a2010 0%, transparent 60%);
}
.scn-emly-rescue .wall { 
  position: absolute; inset: 0 0 40% 0; 
  background: linear-gradient(135deg, #2a1a14, #1a0e0a); 
  animation: er-wall 12s ease-in-out infinite alternate;
}
.scn-emly-rescue .floor { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; 
  background: linear-gradient(0deg, #1a0806 0%, #2a1410 100%); 
  border-radius: 20% 40% 0 0 / 30% 50% 0 0; 
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-emly-rescue .fire { 
  position: absolute; bottom: 18%; left: 20%; width: 50px; height: 60px; 
  background: radial-gradient(ellipse at 50% 100%, #ff6a30 0%, #c84010 50%, transparent 70%); 
  border-radius: 50%; 
  animation: er-fire 2s ease-in-out infinite alternate;
}
.scn-emly-rescue .ember { 
  position: absolute; bottom: 28%; left: 18%; width: 6px; height: 6px; 
  background: #ffa040; 
  border-radius: 50%; 
  box-shadow: 0 0 8px 2px #ff8020; 
  animation: er-ember 3s ease-in-out infinite;
}
.scn-emly-rescue .rosa { 
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 38px; 
  background: linear-gradient(180deg, #3a2020 0%, #2a1010 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: rotate(5deg); 
  animation: er-figure 3s ease-in-out infinite alternate;
}
.scn-emly-rescue .emly { 
  position: absolute; bottom: 30%; left: 40%; width: 18px; height: 34px; 
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: rotate(-10deg); 
  animation: er-figure 3.5s ease-in-out infinite alternate;
}
.scn-emly-rescue .martha { 
  position: absolute; bottom: 30%; left: 32%; width: 16px; height: 32px; 
  background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: rotate(-5deg); 
  animation: er-figure 4s ease-in-out infinite alternate;
}
.scn-emly-rescue .doorway { 
  position: absolute; bottom: 30%; right: 10%; width: 24px; height: 50px; 
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1a14 100%); 
  border-radius: 4px 4px 0 0; 
  border: 1px solid rgba(200,100,30,0.3); 
  box-shadow: inset 0 0 10px rgba(255,100,30,0.1); 
  animation: er-door 8s ease-in-out infinite;
}
@keyframes er-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes er-fire { 0% { transform: scaleY(1) scaleX(1); opacity:0.9 } 50% { transform: scaleY(1.2) scaleX(0.9); opacity:1 } 100% { transform: scaleY(0.9) scaleX(1.1); opacity:0.8 } }
@keyframes er-ember { 0% { transform: translate(0,0) scale(1); opacity:1 } 50% { transform: translate(8px,-12px) scale(0.5); opacity:0.6 } 100% { transform: translate(-4px,-20px) scale(0.2); opacity:0 } }
@keyframes er-figure { 0% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(2px) rotate(8deg) } }
@keyframes er-door { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }

.scn-australia-plan {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 100%),
    radial-gradient(ellipse at 80% 30%, #fff4c0 0%, transparent 60%);
}
.scn-australia-plan .sky { 
  position: absolute; inset: 0 0 30% 0; 
  background: linear-gradient(180deg, #4a90c0 0%, #87ceeb 100%); 
  animation: ap-sky 15s ease-in-out infinite alternate;
}
.scn-australia-plan .sea { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; 
  background: linear-gradient(0deg, #2a6a8a 0%, #5a9aba 100%); 
  border-radius: 0 0 20% 20% / 0 0 30% 30%; 
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.2); 
  animation: ap-sea 8s ease-in-out infinite alternate;
}
.scn-australia-plan .sun { 
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px; 
  background: radial-gradient(circle, #ffe080 0%, #ffcc60 60%, transparent 80%); 
  border-radius: 50%; 
  box-shadow: 0 0 40px 15px rgba(255,200,80,0.5); 
  animation: ap-sun 12s ease-in-out infinite;
}
.scn-australia-plan .ship { 
  position: absolute; bottom: 25%; left: 45%; width: 60px; height: 20px; 
  background: linear-gradient(0deg, #4a3020 0%, #6a5040 100%); 
  border-radius: 30% 30% 10% 10%; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.3); 
  animation: ap-ship 6s ease-in-out infinite alternate;
}
.scn-australia-plan .figures { 
  position: absolute; bottom: 30%; left: 50%; width: 16px; height: 30px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: translateX(-50%); 
  animation: ap-figures 4s ease-in-out infinite alternate;
}
.scn-australia-plan .suitcase { 
  position: absolute; bottom: 26%; left: 48%; width: 14px; height: 10px; 
  background: #5a4a3a; 
  border-radius: 2px; 
  transform: skewX(-10deg); 
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-australia-plan .cloud1 { 
  position: absolute; top: 8%; left: 10%; width: 80px; height: 16px; 
  background: rgba(255,255,255,0.6); 
  border-radius: 50%; 
  filter: blur(5px); 
  animation: ap-cloud1 30s linear infinite;
}
.scn-australia-plan .cloud2 { 
  position: absolute; top: 15%; right: 5%; width: 60px; height: 12px; 
  background: rgba(255,255,255,0.4); 
  border-radius: 50%; 
  filter: blur(4px); 
  animation: ap-cloud2 40s linear infinite reverse;
}
@keyframes ap-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ap-sea { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes ap-sun { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.85 } }
@keyframes ap-ship { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ap-figures { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(1px) } }
@keyframes ap-cloud1 { 0% { transform: translateX(-30px) } 100% { transform: translateX(110vw) } }
@keyframes ap-cloud2 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-emly-farewell {
  background: 
    linear-gradient(180deg, #b0d4e0 0%, #c8e0e8 30%, #f8f0d8 100%),
    radial-gradient(ellipse at 70% 20%, #fff0c0 0%, transparent 60%);
}
.scn-emly-farewell .sky { 
  position: absolute; inset: 0 0 20% 0; 
  background: linear-gradient(180deg, #8ab4c8 0%, #b0d4e0 100%); 
  animation: ef-sky 14s ease-in-out infinite alternate;
}
.scn-emly-farewell .water { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; 
  background: linear-gradient(0deg, #406a7a 0%, #6a9aaa 100%); 
  border-radius: 0 0 30% 30% / 0 0 40% 40%; 
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.15); 
  animation: ef-water 6s ease-in-out infinite alternate;
}
.scn-emly-farewell .dock { 
  position: absolute; bottom: 20%; left: 10%; right: 40%; height: 8px; 
  background: linear-gradient(0deg, #5a4a3a 0%, #7a6a5a 100%); 
  border-radius: 2px; 
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
}
.scn-emly-farewell .ship { 
  position: absolute; bottom: 20%; right: 10%; width: 70px; height: 22px; 
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%); 
  border-radius: 30% 30% 10% 10%; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.3); 
  animation: ef-ship 8s ease-in-out infinite alternate;
}
.scn-emly-farewell .david { 
  position: absolute; bottom: 18%; left: 25%; width: 16px; height: 30px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: rotate(2deg); 
  animation: ef-figure 5s ease-in-out infinite alternate;
}
.scn-emly-farewell .ham { 
  position: absolute; bottom: 18%; left: 35%; width: 18px; height: 32px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: rotate(-2deg); 
  animation: ef-figure 5.5s ease-in-out infinite alternate;
}
.scn-emly-farewell .emigrant-group { 
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 28px; 
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform: translateX(-50%); 
  animation: ef-group 6s ease-in-out infinite alternate;
}
@keyframes ef-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ef-water { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes ef-ship { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ef-figure { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(1px) rotate(3deg) } }
@keyframes ef-group { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(1px) } }

.scn-exposure-showdown {
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 40%, #a08870 100%),
              radial-gradient(ellipse at 30% 80%, #d4c4a8 0%, transparent 70%);
  box-shadow: inset 0 0 80px rgba(60,30,10,0.3);
}
.scn-exposure-showdown .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d8c8b0 0%, #b8a488 60%, #9a8068 100%);
}
.scn-exposure-showdown .desk {
  position: absolute; bottom: 5%; left: 15%; right: 15%; height: 48%;
  background: linear-gradient(180deg, #6a4a2e 0%, #4a3018 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.5);
}
.scn-exposure-showdown .papers {
  position: absolute; bottom: 26%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b490 50%, #b4a07c 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: exp-papers 4s ease-in-out infinite;
}
.scn-exposure-showdown .figure-uriah {
  position: absolute; bottom: 18%; right: 12%; width: 60px; height: 140px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: exp-uriah 3s ease-in-out infinite alternate;
}
.scn-exposure-showdown .figure-micawber {
  position: absolute; bottom: 22%; left: 10%; width: 70px; height: 150px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: exp-micawber 3.5s ease-in-out infinite;
}
.scn-exposure-showdown .lamp {
  position: absolute; top: 12%; right: 20%; width: 30px; height: 50px;
  background: radial-gradient(circle at 50% 30%, #f0e0b0 0%, #c8a860 80%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 0 40px 12px rgba(200,168,96,0.5), 0 0 80px 20px rgba(200,168,96,0.2);
  animation: exp-lamp 2s ease-in-out infinite alternate;
}
.scn-exposure-showdown .shadow-stripe {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(40,20,5,0.6) 0%, rgba(60,30,10,0.4) 100%);
  animation: exp-stripe 5s ease-in-out infinite;
}
@keyframes exp-papers {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
  50% { transform: translateY(-4px) rotate(2deg); opacity: 1; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.9; }
}
@keyframes exp-uriah {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-6px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes exp-micawber {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(8px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes exp-lamp {
  0% { box-shadow: 0 0 30px 8px rgba(200,168,96,0.4),0 0 60px 16px rgba(200,168,96,0.15); opacity: 0.85; }
  50% { box-shadow: 0 0 50px 14px rgba(200,168,96,0.6),0 0 100px 25px rgba(200,168,96,0.3); opacity: 1; }
  100% { box-shadow: 0 0 35px 10px rgba(200,168,96,0.45),0 0 70px 18px rgba(200,168,96,0.2); opacity: 0.9; }
}
@keyframes exp-stripe {
  0% { opacity: 0.5; transform: skewX(-2deg); }
  50% { opacity: 0.7; transform: skewX(2deg); }
  100% { opacity: 0.5; transform: skewX(-2deg); }
}

.scn-dora-deathbed {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 40%, #3a2a4e 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a6e 0%, transparent 70%);
}
.scn-dora-deathbed .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a3e 0%, #2a2a5e 60%, #3a2a4e 100%);
}
.scn-dora-deathbed .bed {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.6);
}
.scn-dora-deathbed .figure-dora {
  position: absolute; bottom: 18%; left: 30%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #5a4a6a 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dor-dora 8s ease-in-out infinite;
}
.scn-dora-deathbed .dog-jip {
  position: absolute; bottom: 14%; left: 45%; width: 30px; height: 24px;
  background: radial-gradient(circle at 50% 40%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: dor-jip 6s ease-in-out infinite;
}
.scn-dora-deathbed .figure-david {
  position: absolute; bottom: 12%; right: 28%; width: 55px; height: 130px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dor-david 10s ease-in-out infinite;
}
.scn-dora-deathbed .moonlight {
  position: absolute; top: 5%; left: 30%; width: 100px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,180,240,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: dor-moonlight 12s ease-in-out infinite alternate;
}
@keyframes dor-dora {
  0% { transform: translateY(0) rotate(-1deg); opacity: 0.8; }
  50% { transform: translateY(-2px) rotate(0deg); opacity: 1; }
  100% { transform: translateY(0) rotate(1deg); opacity: 0.85; }
}
@keyframes dor-jip {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.6; }
  50% { transform: translateY(1px) rotate(5deg); opacity: 0.8; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.6; }
}
@keyframes dor-david {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes dor-moonlight {
  0% { transform: translateX(-5px); opacity: 0.3; }
  50% { transform: translateX(5px); opacity: 0.6; }
  100% { transform: translateX(-3px); opacity: 0.35; }
}

.scn-ship-sailing {
  background: linear-gradient(180deg, #2a2a4a 0%, #4a3a5a 30%, #6a4a3a 60%, #3a2a2a 100%),
              radial-gradient(ellipse at 50% 0%, #5a4a6a 0%, transparent 60%);
}
.scn-ship-sailing .sky-dusk {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #6a4a3a 70%, #8a6a4a 100%);
  animation: shi-sky 10s ease-in-out infinite alternate;
}
.scn-ship-sailing .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 48%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  animation: shi-ocean 6s ease-in-out infinite alternate;
}
.scn-ship-sailing .ship-hull {
  position: absolute; bottom: 30%; left: 25%; width: 140px; height: 60px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: shi-hull 5s ease-in-out infinite;
}
.scn-ship-sailing .sail-mast {
  position: absolute; bottom: 45%; left: 32%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-ship-sailing .figure-ham {
  position: absolute; bottom: 26%; right: 18%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: shi-ham 2s ease-in-out infinite;
}
.scn-ship-sailing .storm1 {
  position: absolute; top: 10%; left: 5%; width: 100px; height: 40px;
  background: linear-gradient(90deg, rgba(60,50,60,0.6) 0%, rgba(80,70,80,0.3) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: shi-storm1 15s linear infinite;
}
.scn-ship-sailing .storm2 {
  position: absolute; top: 20%; right: 10%; width: 120px; height: 50px;
  background: linear-gradient(90deg, rgba(60,50,60,0.4) 0%, rgba(80,70,80,0.2) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: shi-storm2 20s linear infinite reverse;
}
@keyframes shi-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes shi-ocean {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes shi-hull {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes shi-ham {
  0% { transform: translateX(0) translateY(0) rotate(-4deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(0deg); }
  75% { transform: translateX(24px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(32px) translateY(0) rotate(4deg); }
}
@keyframes shi-storm1 {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(150vw); }
}
@keyframes shi-storm2 {
  0% { transform: translateX(0); }
  100% { transform: translateX(-200vw); }
}

.scn-steerforth-death {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4e 40%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 0%, #5a5a6a 0%, transparent 70%);
}
.scn-steerforth-death .sky-overcast {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 60%, #3a3a4e 100%);
  animation: stf-sky 20s ease-in-out infinite alternate;
}
.scn-steerforth-death .beach {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 60% 0 0 / 50% 80% 0 0;
}
.scn-steerforth-death .body {
  position: absolute; bottom: 22%; left: 40%; width: 70px; height: 50px;
  background: linear-gradient(135deg, #5a4a4a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(-10deg);
  animation: stf-body 15s ease-in-out infinite;
}
.scn-steerforth-death .figure-rosa {
  position: absolute; bottom: 28%; left: 60%; width: 55px; height: 120px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: stf-rosa 4s ease-in-out infinite;
}
.scn-steerforth-death .figure-david {
  position: absolute; bottom: 25%; left: 20%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: stf-david 6s ease-in-out infinite;
}
.scn-steerforth-death .wave-lap1 {
  position: absolute; bottom: 8%; left: 0; right: 0; height: 20px;
  background: linear-gradient(90deg, transparent 0%, rgba(80,80,100,0.3) 50%, transparent 100%);
  animation: stf-wave1 15s linear infinite;
}
.scn-steerforth-death .wave-lap2 {
  position: absolute; bottom: 4%; left: 0; right: 0; height: 16px;
  background: linear-gradient(90deg, transparent 0%, rgba(80,80,100,0.2) 50%, transparent 100%);
  animation: stf-wave2 18s linear infinite reverse;
}
@keyframes stf-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes stf-body {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(1px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes stf-rosa {
  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 stf-david {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes stf-wave1 {
  0% { transform: translateX(-10px); opacity: 0.4; }
  50% { transform: translateX(10px); opacity: 0.8; }
  100% { transform: translateX(-10px); opacity: 0.4; }
}
@keyframes stf-wave2 {
  0% { transform: translateX(10px); opacity: 0.3; }
  50% { transform: translateX(-10px); opacity: 0.6; }
  100% { transform: translateX(10px); opacity: 0.3; }
}

/* peg-search */
.scn-peg-search { background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #FFD700 60%, #B8860B 100%), radial-gradient(ellipse at 40% 20%, #FFFFFF 0%, transparent 60%); }
.scn-peg-search .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 70%, transparent 100%); animation: ps-sky 15s ease-in-out infinite alternate; }
.scn-peg-search .sun { position:absolute; top:10%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 60%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.4); animation: ps-sun 12s ease-in-out infinite alternate; }
.scn-peg-search .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: ps-hills 20s ease-in-out infinite alternate; }
.scn-peg-search .road { position:absolute; bottom:28%; left:30%; right:40%; height:10%; background: #C4A882; border-radius: 20% 20% 0 0; transform: perspective(200px) rotateX(5deg); animation: ps-road 8s ease-in-out infinite; }
.scn-peg-search .figure { position:absolute; bottom:33%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #4A3B2C 0%, #2E2218 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: ps-walk 4s ease-in-out infinite; }
.scn-peg-search .letter { position:absolute; bottom:38%; left:37%; width:14px; height:18px; background: #F5DEB3; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); transform-origin: bottom left; animation: ps-tremble 1.5s ease-in-out infinite; }
.scn-peg-search .tree-a { position:absolute; bottom:25%; left:10%; width:8px; height:50px; background: #5C4033; border-radius: 2px; transform-origin: bottom center; animation: ps-tree 10s ease-in-out infinite; }
.scn-peg-search .tree-b { position:absolute; bottom:28%; right:15%; width:6px; height:40px; background: #6B4226; border-radius: 2px; animation: ps-tree 12s ease-in-out infinite reverse; }
@keyframes ps-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ps-sun { 0% { transform: translateX(0); } 50% { transform: translateX(15px) translateY(-5px); } 100% { transform: translateX(-10px) translateY(3px); } }
@keyframes ps-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes ps-road { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ps-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes ps-tremble { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(2deg) scale(1.05); } 50% { transform: rotate(-1deg) scale(0.95); } 75% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes ps-tree { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.05) translateX(2px); } 100% { transform: scaleY(0.95) translateX(-1px); } }

/* marriage-chaos */
.scn-marriage-chaos { background: linear-gradient(180deg, #FFFAF0 0%, #FFF8DC 30%, #F5DEB3 70%, #D2B48C 100%); }
.scn-marriage-chaos .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #FFF8DC 0%, #FAEBD7 100%); border-bottom: 4px solid #CD853F; }
.scn-marriage-chaos .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #D2B48C 0%, #BC8F8F 100%); }
.scn-marriage-chaos .window { position:absolute; top:10%; right:8%; width:50px; height:70px; background: #B0E0E6; border: 4px solid #8B7355; border-radius: 4px; animation: mc-window 6s ease-in-out infinite; }
.scn-marriage-chaos .table { position:absolute; bottom:22%; left:38%; width:80px; height:12px; background: #8B4513; border-radius: 4px; transform-origin: bottom center; animation: mc-table 7s ease-in-out infinite; }
.scn-marriage-chaos .chair.side { position:absolute; bottom:18%; left:30%; width:20px; height:30px; background: #A0522D; border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; }
.scn-marriage-chaos .dora { position:absolute; bottom:20%; left:35%; width:24px; height:44px; background: linear-gradient(180deg, #87CEEB 0%, #FAEBD7 40%, #FFB6C1 70%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mc-dora 3s ease-in-out infinite; }
.scn-marriage-chaos .david { position:absolute; bottom:20%; left:48%; width:22px; height:46px; background: linear-gradient(180deg, #2F4F4F 0%, #696969 50%, #A9A9A9 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mc-david 4s ease-in-out infinite; }
.scn-marriage-chaos .button-1 { position:absolute; bottom:24%; left:30%; width:8px; height:8px; background: #CD853F; border-radius: 50%; box-shadow: 0 0 2px 1px rgba(205,133,63,0.5); animation: mc-button 2s ease-in-out infinite; }
.scn-marriage-chaos .button-2 { position:absolute; bottom:24%; left:34%; width:8px; height:8px; background: #CD853F; border-radius: 50%; box-shadow: 0 0 2px 1px rgba(205,133,63,0.5); animation: mc-button 2.5s ease-in-out infinite 0.3s; }
@keyframes mc-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mc-table { 0% { transform: translateX(0); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px); } }
@keyframes mc-dora { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-3deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes mc-david { 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 mc-button { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-8px) scale(1.2); } 50% { transform: translateY(0) scale(0.9); } 75% { transform: translateY(-4px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }

/* uriah-confrontation */
.scn-uriah-confrontation { background: linear-gradient(180deg, #2F1E1E 0%, #1A1111 50%, #0D0808 100%), radial-gradient(ellipse at 50% 60%, #4B2E2A 0%, transparent 70%); }
.scn-uriah-confrontation .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3B2626 0%, #2F1E1E 100%); }
.scn-uriah-confrontation .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2F1E1E 0%, #1A1111 100%); }
.scn-uriah-confrontation .table { position:absolute; bottom:18%; left:35%; width:70px; height:10px; background: #5C3A2A; border-radius: 2px; transform: perspective(100px) rotateX(5deg); }
.scn-uriah-confrontation .candle { position:absolute; bottom:22%; left:40%; width:6px; height:20px; background: #F5DEB3; border-radius: 2px; }
.scn-uriah-confrontation .candle::after { content:''; position:absolute; top:-10px; left:1px; width:4px; height:10px; background: radial-gradient(circle, #FFD700 0%, #B8860B 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,215,0,0.4); animation: uc-flame 0.8s ease-in-out infinite alternate; }
.scn-uriah-confrontation .david-fig { position:absolute; bottom:20%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #3B3B3B 0%, #1A1A1A 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: uc-david 5s ease-in-out infinite; }
.scn-uriah-confrontation .uriah-fig { position:absolute; bottom:18%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #4B3A3A 0%, #2A1A1A 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom center; animation: uc-uriah 2s ease-in-out infinite; }
.scn-uriah-confrontation .shadow { position:absolute; bottom:18%; left:45%; width:60px; height:20px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(6px); animation: uc-shadow 3s ease-in-out infinite alternate; }
@keyframes uc-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.8; } 100% { transform: scaleY(1.2) translateY(-2px); opacity:1; } }
@keyframes uc-david { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes uc-uriah { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 25% { transform: translateX(3px) rotate(5deg) scaleY(0.9); } 50% { transform: translateX(-2px) rotate(-3deg) scaleY(1.05); } 75% { transform: translateX(1px) rotate(2deg) scaleY(0.95); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes uc-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:0.5; } 50% { transform: scaleX(1.2) scaleY(0.8); opacity:0.7; } 100% { transform: scaleX(0.9) scaleY(1.1); opacity:0.4; } }

/* child-wife */
.scn-child-wife { background: linear-gradient(180deg, #FDF5E6 0%, #FAEBD7 30%, #F5DEB3 70%, #D2B48C 100%), radial-gradient(ellipse at 50% 20%, #FFFACD 0%, transparent 60%); }
.scn-child-wife .bg-church { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #FDF5E6 0%, #F5DEB3 100%); border: 10px solid #D2B48C; border-radius: 8px; }
.scn-child-wife .pew { position:absolute; bottom:10%; left:20%; right:20%; height:8%; background: #8B7355; border-radius: 2px; }
.scn-child-wife .dora-bride { position:absolute; bottom:20%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #FFF8DC 0%, #FAEBD7 30%, #FFE4E1 60%, #F5DEB3 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cw-dora 6s ease-in-out infinite; }
.scn-child-wife .veil { position:absolute; bottom:45%; left:38%; width:44px; height:30px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,240,0.2) 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; filter: blur(1px); animation: cw-veil 8s ease-in-out infinite; }
.scn-child-wife .bouquet { position:absolute; bottom:30%; left:45%; width:12px; height:16px; background: #E8D8B0; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,0.1); animation: cw-bouquet 4s ease-in-out infinite; }
.scn-child-wife .light-beam { position:absolute; top:5%; left:30%; width:80px; height:120px; background: linear-gradient(180deg, rgba(255,255,224,0.3) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: cw-beam 12s ease-in-out infinite alternate; }
@keyframes cw-dora { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cw-veil { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(4px) scaleX(1.05); } 100% { transform: translateY(0) scaleX(0.95); } }
@keyframes cw-bouquet { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes cw-beam { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.6; transform: scaleY(1.2); } 100% { opacity:0.4; transform: scaleY(0.9); } }

/* dr-strongs-will – warm bright interior */
.scn-dr-strongs-will {
  background: linear-gradient(180deg, #ffeac2 0%, #fddba6 40%, #ecc08a 100%),
              radial-gradient(ellipse at 50% 0%, #fff4d4 0%, transparent 70%);
}
.scn-dr-strongs-will .bkgd {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #ffeee0 0%, #fddba6 80%);
  animation: dsw-bkgd 12s ease-in-out infinite alternate;
}
.scn-dr-strongs-will .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b3885a 0%, #8b6034 100%);
  border-radius: 0 0 8% 8%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.15);
  animation: dsw-floor 14s ease-in-out infinite;
}
.scn-dr-strongs-will .window {
  position: absolute; top: 8%; left: 55%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #b8d8e8 0%, #8cb8d0 100%);
  border: 6px solid #6a4e2e; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,.4);
  animation: dsw-window 16s ease-in-out infinite alternate;
}
.scn-dr-strongs-will .chair {
  position: absolute; bottom: 20%; left: 20%; width: 22%; height: 35%;
  background: linear-gradient(180deg, #8b5e3c 0%, #6a422a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 4px 4px 10px rgba(0,0,0,.2);
}
.scn-dr-strongs-will .figure-betsey {
  position: absolute; bottom: 18%; left: 25%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dsw-fig1 5s ease-in-out infinite;
}
.scn-dr-strongs-will .figure-david {
  position: absolute; bottom: 18%; left: 45%; width: 11%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dsw-fig2 6s ease-in-out infinite 1s;
}
.scn-dr-strongs-will .figure-dora {
  position: absolute; bottom: 22%; left: 62%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #c8b09a 0%, #a89078 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dsw-fig3 7s ease-in-out infinite 2s;
  opacity: 0.8;
}
.scn-dr-strongs-will .lamp {
  position: absolute; top: 30%; left: 15%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #ffe0a0 0%, #d4a060 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 0 30px 12px rgba(255,200,130,.6), 0 0 60px 20px rgba(255,200,130,.2);
  animation: dsw-lamp 3s ease-in-out infinite alternate;
}
@keyframes dsw-bkgd { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dsw-floor { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes dsw-window { 0% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes dsw-fig1 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 75% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes dsw-fig2 { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes dsw-fig3 { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } }
@keyframes dsw-lamp { 0% { box-shadow: 0 0 20px 8px rgba(255,200,130,.5); } 50% { box-shadow: 0 0 40px 16px rgba(255,200,130,.7); } 100% { box-shadow: 0 0 25px 10px rgba(255,200,130,.6); } }

/* dicks-box – warm dim interior */
.scn-dicks-box {
  background: linear-gradient(180deg, #2a1f12 0%, #3d2e1a 40%, #4a3820 100%),
              radial-gradient(circle at 35% 50%, #5a442a 0%, transparent 70%);
}
.scn-dicks-box .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1f12 0%, #3d2e1a 100%);
  animation: dbx-wall 20s ease-in-out infinite alternate;
}
.scn-dicks-box .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2e12 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-dicks-box .box {
  position: absolute; bottom: 25%; left: 30%; width: 15%; height: 18%;
  background: linear-gradient(180deg, #8b6030 0%, #6a4220 100%);
  border-radius: 8%;
  box-shadow: 2px 2px 6px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,255,200,.1);
  animation: dbx-box 10s ease-in-out infinite;
}
.scn-dicks-box .candle {
  position: absolute; bottom: 35%; left: 40%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #f0d0a0 0%, #d0a060 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 0 20px 8px rgba(255,200,130,.5);
  animation: dbx-candle 2s ease-in-out infinite alternate;
}
.scn-dicks-box .figure-dick {
  position: absolute; bottom: 12%; left: 22%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbx-fig1 6s ease-in-out infinite;
}
.scn-dicks-box .figure-betsey {
  position: absolute; bottom: 12%; left: 52%; width: 13%; height: 28%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbx-fig2 7s ease-in-out infinite 1s;
}
.scn-dicks-box .glow {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(circle, rgba(255,200,130,.2) 0%, transparent 70%);
  pointer-events: none;
  animation: dbx-glow 4s ease-in-out infinite alternate;
}
@keyframes dbx-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dbx-box { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.03); } }
@keyframes dbx-candle { 0% { box-shadow: 0 0 15px 6px rgba(255,200,130,.5); transform: scaleY(1); } 50% { box-shadow: 0 0 25px 12px rgba(255,200,130,.7); transform: scaleY(1.05); } 100% { box-shadow: 0 0 18px 8px rgba(255,200,130,.6); transform: scaleY(0.98); } }
@keyframes dbx-fig1 { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes dbx-fig2 { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(1deg); } 60% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes dbx-glow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* dartle-cruelty – dark dim interior, cold & sharp */
.scn-dartle-cruelty {
  background: linear-gradient(180deg, #0a0a14 0%, #1a1420 40%, #2a2030 100%),
              radial-gradient(circle at 60% 40%, #2a2030 0%, transparent 70%);
}
.scn-dartle-cruelty .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a14 0%, #1a1420 100%);
  animation: dc-bg 15s ease-in-out infinite alternate;
}
.scn-dartle-cruelty .figure-dartle {
  position: absolute; bottom: 10%; left: 30%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #2a2028 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,.6);
  animation: dc-dartle 4s ease-in-out infinite;
}
.scn-dartle-cruelty .figure-littimer {
  position: absolute; bottom: 8%; left: 55%; width: 15%; height: 38%;
  background: linear-gradient(180deg, #1a1820 0%, #080810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-littimer 5s ease-in-out infinite 0.5s;
}
.scn-dartle-cruelty .chair-back {
  position: absolute; bottom: 10%; left: 28%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #2a1e1e 0%, #121212 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 2px 6px rgba(0,0,0,.5);
}
.scn-dartle-cruelty .shadow-line {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #4a3a5a 50%, transparent 100%);
  filter: blur(1px);
  animation: dc-shadow 3s ease-in-out infinite alternate;
}
.scn-dartle-cruelty .eye-gleam {
  position: absolute; bottom: 45%; left: 35%; width: 4%; height: 4%;
  background: radial-gradient(circle, #e0d8d0 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(224,216,208,.4);
  animation: dc-eye 2s ease-in-out infinite;
}
@keyframes dc-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dc-dartle { 0%,100% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-2px) rotate(-3deg); } 40% { transform: translateX(1px) rotate(2deg); } 60% { transform: translateX(-3px) rotate(-1deg); } 80% { transform: translateX(2px) rotate(3deg); } }
@keyframes dc-littimer { 0%,100% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(4px) scaleY(1.02); } 50% { transform: translateX(-2px) scaleY(0.98); } 75% { transform: translateX(3px) scaleY(1.01); } }
@keyframes dc-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(0.9); } }
@keyframes dc-eye { 0%,100% { opacity: 0.2; } 50% { opacity: 0.8; } }

/* emly-found – tense firelit */
.scn-emly-found {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1810 40%, #3a2218 100%),
              radial-gradient(circle at 50% 60%, #4a2a1a 0%, transparent 70%);
}
.scn-emly-found .sky-fire {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a10 0%, #4a2a1a 50%, #6a3a2a 100%);
  animation: ef-sky 8s ease-in-out infinite alternate;
}
.scn-emly-found .fireplace {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 40%;
  background: linear-gradient(180deg, #3a1a12 0%, #1a0a08 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
}
.scn-emly-found .fire {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 25%;
  background: radial-gradient(circle at 50% 100%, #c8553d 0%, #a0461a 40%, #5e1a1d 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,85,61,.5), 0 0 80px 40px rgba(160,70,26,.3);
  animation: ef-fire 1.5s ease-in-out infinite alternate;
}
.scn-emly-found .figure-peg {
  position: absolute; bottom: 8%; left: 20%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ef-peg 4s ease-in-out infinite;
}
.scn-emly-found .figure-emly {
  position: absolute; bottom: 12%; left: 52%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ef-emly 5s ease-in-out infinite 1s;
}
.scn-emly-found .door {
  position: absolute; bottom: 0; left: 65%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,.5);
}
.scn-emly-found .shadow {
  position: absolute; bottom: 0; left: 18%; width: 50%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  filter: blur(6px);
  animation: ef-shadow 6s ease-in-out infinite alternate;
}
@keyframes ef-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ef-fire { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.15) scaleX(1.05); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(0.95); opacity: 0.85; } }
@keyframes ef-peg { 0%,100% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-3px) translateY(-2px); } 50% { transform: translateX(2px) translateY(1px); } 75% { transform: translateX(-1px) translateY(-1px); } }
@keyframes ef-emly { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.02); } }
@keyframes ef-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.2); } 100% { opacity: 0.5; transform: scaleX(0.9); } }

.scn-miss-larkins-flower {
  background: linear-gradient(180deg, #ffe6b0 0%, #ffcc80 40%, #e6a94d 100%), radial-gradient(ellipse at 50% 0%, #fff5d6 0%, transparent 60%);
}
.scn-miss-larkins-flower .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b3e0ff 0%, #87ceeb 100%);
  animation: lf-sky 12s ease-in-out infinite alternate;
}
.scn-miss-larkins-flower .sun {
  position: absolute; top: 8%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fffbe6 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%;
  animation: lf-sun 20s ease-in-out infinite alternate;
}
.scn-miss-larkins-flower .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7ec850 0%, #4a8c2a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  animation: lf-ground 8s ease-in-out infinite alternate;
}
.scn-miss-larkins-flower .fence {
  position: absolute; bottom: 40%; left: 5%; right: 5%; height: 12%;
  background: repeating-linear-gradient(90deg, #8b5e3c 0px, #8b5e3c 12px, transparent 12px, transparent 20px);
  border-bottom: 4px solid #5c3a1e;
}
.scn-miss-larkins-flower .figure-david {
  position: absolute; bottom: 32%; left: 38%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #4a3728 0%, #2c1f14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lf-bow 3s ease-in-out infinite;
}
.scn-miss-larkins-flower .figure-larkins {
  position: absolute; bottom: 32%; left: 50%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #d9b38c 0%, #c4956a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lf-curtsey 3s ease-in-out infinite;
}
.scn-miss-larkins-flower .flower {
  position: absolute; bottom: 40%; left: 48%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #ff6b6b 0%, #cc3333 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 12px 3px rgba(255,107,107,0.4);
  animation: lf-glint 4s ease-in-out infinite;
}
@keyframes lf-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes lf-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes lf-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lf-bow { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(-5deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-4px) rotate(5deg) } }
@keyframes lf-curtsey { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(3deg) translateY(-3px) } }
@keyframes lf-glint { 0%,100% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } }

.scn-steerforth-home {
  background: linear-gradient(135deg, #d9b38c 0%, #b87c4a 30%, #8c5a2a 100%), radial-gradient(ellipse at 50% 40%, #f0d8b0 0%, transparent 70%);
}
.scn-steerforth-home .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c9a87c 0%, #a17a54 100%);
  animation: sh-wall 20s ease-in-out infinite alternate;
}
.scn-steerforth-home .window {
  position: absolute; top: 12%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #e6f7ff 0%, #b3d9ff 100%);
  border: 6px solid #5c3a1e;
  border-radius: 4px;
  animation: sh-window 10s ease-in-out infinite alternate;
}
.scn-steerforth-home .fireplace {
  position: absolute; bottom: 15%; left: 20%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-steerforth-home .fire-glow {
  position: absolute; bottom: 18%; left: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffa07a 0%, #ff6347 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ff7f50;
  animation: sh-fire 4s ease-in-out infinite alternate;
}
.scn-steerforth-home .sofa {
  position: absolute; bottom: 10%; left: 50%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-steerforth-home .figure-steerforth {
  position: absolute; bottom: 20%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a2e3a 0%, #0d1a24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sh-chair-sway 5s ease-in-out infinite;
}
.scn-steerforth-home .figure-mrs {
  position: absolute; bottom: 22%; left: 30%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1414 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sh-tea-cup 6s ease-in-out infinite;
}
.scn-steerforth-home .shadow-rosa {
  position: absolute; bottom: 20%; left: 70%; width: 20px; height: 56px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: sh-lurk 8s ease-in-out infinite;
}
@keyframes sh-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes sh-window { 0% { box-shadow: inset 0 0 20px #fff } 50% { box-shadow: inset 0 0 40px #fff } 100% { box-shadow: inset 0 0 20px #fff } }
@keyframes sh-fire { 0% { transform: scale(0.8) rotate(0deg) } 25% { transform: scale(1.1) rotate(5deg) } 50% { transform: scale(0.9) rotate(-3deg) } 75% { transform: scale(1.05) rotate(2deg) } 100% { transform: scale(0.8) rotate(0deg) } }
@keyframes sh-chair-sway { 0%,100% { transform: rotate(0) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(3deg) translateY(0) } 75% { transform: rotate(-2deg) translateY(-1px) } }
@keyframes sh-tea-cup { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes sh-lurk { 0%,100% { opacity: 0.4; transform: translateX(0) } 50% { opacity: 0.8; transform: translateX(-5px) } }

.scn-yarmouth-return {
  background: linear-gradient(180deg, #87ceeb 0%, #4d90c7 40%, #2a6a9e 100%), radial-gradient(ellipse at 50% 100%, #b0d4f1 0%, transparent 70%);
}
.scn-yarmouth-return .sky-sea {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b3e0ff 0%, #87ceeb 40%, #4d90c7 70%, #2a6a9e 100%);
  animation: yr-skysea 15s ease-in-out infinite alternate;
}
.scn-yarmouth-return .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #e6d5b8 0%, #c9b280 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-yarmouth-return .boat {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #5c3a1e 0%, #3a2212 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  transform-origin: bottom center;
  animation: yr-boat-bob 6s ease-in-out infinite;
}
.scn-yarmouth-return .sail {
  position: absolute; bottom: 38%; left: 45%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #f5f0e0 0%, #d9caa0 100%);
  border-radius: 20% 20% 10% 10%;
  transform: skewX(-10deg);
  animation: yr-sail-sway 8s ease-in-out infinite alternate;
}
.scn-yarmouth-return .figure-david {
  position: absolute; bottom: 12%; left: 28%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: yr-wave-hand 4s ease-in-out infinite;
}
.scn-yarmouth-return .figure-peggotty {
  position: absolute; bottom: 14%; left: 38%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: yr-hug 5s ease-in-out infinite;
}
.scn-yarmouth-return .gulls {
  position: absolute; top: 10%; left: 20%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #fff 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: yr-gulls 30s linear infinite;
}
@keyframes yr-skysea { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes yr-boat-bob { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes yr-sail-sway { 0% { transform: skewX(-10deg) translateY(0) } 50% { transform: skewX(-5deg) translateY(-2px) } 100% { transform: skewX(-10deg) translateY(0) } }
@keyframes yr-wave-hand { 0%,100% { transform: translateX(0) } 25% { transform: translateX(4px) } 50% { transform: translateX(0) } 75% { transform: translateX(-4px) } }
@keyframes yr-hug { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(-2px) scale(1.05) } }
@keyframes yr-gulls { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }

.scn-doctors-commons {
  background: linear-gradient(180deg, #ffe6b0 0%, #eeb76b 40%, #d4a24e 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-doctors-commons .sky-buildings {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #c0a078 0%, #a08060 50%, #c0a078 100%);
  animation: dc-buildings 20s ease-in-out infinite alternate;
}
.scn-doctors-commons .church-spire {
  position: absolute; top: 5%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3520 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: dc-spire 12s ease-in-out infinite alternate;
}
.scn-doctors-commons .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8c7a5a 0%, #6a5a40 100%);
  animation: dc-street 15s ease-in-out infinite alternate;
}
.scn-doctors-commons .figure-steerforth {
  position: absolute; bottom: 22%; left: 30%; width: 28px; height: 54px;
  background: linear-gradient(180deg, #1a2e3a 0%, #0d1a24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-laugh 3s ease-in-out infinite;
}
.scn-doctors-commons .figure-david {
  position: absolute; bottom: 24%; left: 40%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dc-wince 4s ease-in-out infinite;
}
.scn-doctors-commons .figure-aunt-betsey {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dc-panic 2s ease-in-out infinite;
}
.scn-doctors-commons .shadow-uriah {
  position: absolute; bottom: 20%; left: 65%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5;
  animation: dc-slink 6s ease-in-out infinite;
}
.scn-doctors-commons .comic-dust {
  position: absolute; top: 40%; left: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,230,150,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dc-dust 4s ease-in-out infinite alternate;
}
@keyframes dc-buildings { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes dc-spire { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes dc-street { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dc-laugh { 0%,100% { transform: rotate(0) } 20% { transform: rotate(-8deg) } 40% { transform: rotate(8deg) } 60% { transform: rotate(-5deg) } 80% { transform: rotate(5deg) } }
@keyframes dc-wince { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes dc-panic { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-6px) rotate(-10deg) } 50% { transform: translateY(2px) rotate(5deg) } 75% { transform: translateY(-4px) rotate(-5deg) } }
@keyframes dc-slink { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-3px) scaleY(1.1) } }
@keyframes dc-dust { 0% { opacity: 0.3; transform: scale(0.8) } 50% { opacity: 0.6; transform: scale(1.2) } 100% { opacity: 0.3; transform: scale(0.8) } }

.scn-item-boat-little-emly { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #deb887 100%), radial-gradient(ellipse at 30% 100%, #f0e68c 0%, transparent 70%); }
.scn-item-boat-little-emly .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c4de 0%, #87ceeb 100%); opacity:0.9; animation: bel-sky 8s ease-in-out infinite alternate; }
.scn-item-boat-little-emly .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4682b4 0%, #2f4f4f 100%); animation: bel-sea 6s ease-in-out infinite; }
.scn-item-boat-little-emly .boat { position:absolute; bottom:30%; left:40%; width:80px; height:20px; background: linear-gradient(180deg, #8b4513 0%, #5c3010 100%); border-radius:0 0 20px 20px; box-shadow:0 4px 8px rgba(0,0,0,.4); animation: bel-boat 4s ease-in-out infinite; }
.scn-item-boat-little-emly .sail { position:absolute; bottom:38%; left:44%; width:0; height:0; border-left:30px solid transparent; border-right:10px solid transparent; border-bottom:50px solid #f5f5dc; transform-origin: bottom center; animation: bel-sail 5s ease-in-out infinite alternate; }
.scn-item-boat-little-emly .figure-david { position:absolute; bottom:27%; left:42%; width:14px; height:30px; background: linear-gradient(180deg, #2c1810 0%, #1a0e0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bel-walk-david 3s ease-in-out infinite; }
.scn-item-boat-little-emly .figure-emly { position:absolute; bottom:27%; left:46%; width:12px; height:26px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bel-walk-emly 3.5s ease-in-out infinite; }
.scn-item-boat-little-emly .seagull { position:absolute; top:15%; left:20%; width:20px; height:8px; background: #fff; border-radius:50% 50% 0 0; filter:blur(1px); animation: bel-gull 12s linear infinite; }
@keyframes bel-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes bel-sea { 0% { transform: translateY(0) } 25% { transform: translateY(-4px) } 50% { transform: translateY(2px) } 75% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bel-boat { 0% { transform: rotate(0deg) } 25% { transform: rotate(4deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes bel-sail { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.9) } }
@keyframes bel-walk-david { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(4px) rotate(2deg) } 60% { transform: translateX(8px) rotate(-1deg) } 100% { transform: translateX(12px) rotate(0deg) } }
@keyframes bel-walk-emly { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(-2px) rotate(1deg) } 60% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(-6px) rotate(0deg) } }
@keyframes bel-gull { 0% { transform: translateX(-40px) } 50% { transform: translateX(60vw) translateY(-10px) } 100% { transform: translateX(130vw) } }

.scn-dora-first-sight { background: linear-gradient(180deg, #fff8dc 0%, #f7e7ce 40%, #e0c9a0 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%); }
.scn-dora-first-sight .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #89cff0 0%, #b0e0e6 100%); opacity:0.8; animation: dfs-sky 10s ease-in-out infinite alternate; }
.scn-dora-first-sight .grass { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #98fb98 0%, #3cb371 100%); border-radius:20% 80% 0 0 / 10% 30% 0 0; animation: dfs-grass 15s ease-in-out infinite; }
.scn-dora-first-sight .tree { position:absolute; bottom:30%; left:15%; width:30px; height:80px; background: linear-gradient(180deg, #8b4513 0%, #5c3010 100%); border-radius:10%; transform-origin: bottom center; animation: dfs-tree 12s ease-in-out infinite; }
.scn-dora-first-sight .figure-david { position:absolute; bottom:22%; left:40%; width:16px; height:34px; background: linear-gradient(180deg, #2c1810 0%, #1a0e0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dfs-david 4s ease-in-out infinite; }
.scn-dora-first-sight .figure-dora { position:absolute; bottom:22%; left:46%; width:14px; height:30px; background: linear-gradient(180deg, #f4a460 0%, #d2691e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dfs-dora 4.5s ease-in-out infinite; }
.scn-dora-first-sight .flower-bed { position:absolute; bottom:10%; left:30%; width:80px; height:20px; background: radial-gradient(circle at 30% 50%, #ffb6c1 0%, #ff69b4 30%, transparent 60%); border-radius:50%; filter:blur(3px); animation: dfs-flowers 6s ease-in-out infinite alternate; }
.scn-dora-first-sight .butterfly-a { position:absolute; top:30%; left:30%; width:12px; height:8px; background: #ff6347; border-radius:50%; filter:blur(1px); animation: dfs-bfly 8s ease-in-out infinite; }
.scn-dora-first-sight .butterfly-b { position:absolute; top:40%; left:50%; width:10px; height:6px; background: #ffd700; border-radius:50%; filter:blur(1px); animation: dfs-bfly 10s ease-in-out infinite reverse; animation-delay: -3s; }
@keyframes dfs-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dfs-grass { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dfs-tree { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes dfs-david { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(3px) rotate(2deg) } 60% { transform: translateX(6px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dfs-dora { 0% { transform: translateX(0) rotate(1deg) } 30% { transform: translateX(-2px) rotate(-2deg) } 60% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dfs-flowers { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.3) } 100% { opacity:.6; transform: scaleY(.9) } }
@keyframes dfs-bfly { 0% { transform: translate(0,0) rotate(0deg) scale(1) } 25% { transform: translate(10px,-10px) rotate(20deg) scale(1.2) } 50% { transform: translate(20px,0) rotate(-10deg) scale(.9) } 75% { transform: translate(10px,10px) rotate(15deg) scale(1.1) } 100% { transform: translate(0,0) rotate(0deg) scale(1) } }

.scn-court-dora { background: linear-gradient(180deg, #fff8dc 0%, #ffe4b5 60%, #f5deb3 100%), radial-gradient(ellipse at 50% 100%, #ffe4b5 0%, transparent 70%); }
.scn-court-dora .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); opacity:0.85; animation: cd-sky 12s ease-in-out infinite alternate; }
.scn-court-dora .path { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius:40% 60% 0 0 / 20% 10% 0 0; animation: cd-path 8s ease-in-out infinite; }
.scn-court-dora .fence { position:absolute; bottom:20%; left:10%; width:80%; height:8px; background: #8b4513; border-radius:4px; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: cd-fence 6s ease-in-out infinite alternate; }
.scn-court-dora .figure-david { position:absolute; bottom:22%; left:35%; width:16px; height:34px; background: linear-gradient(180deg, #2c1810 0%, #1a0e0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-david 4s ease-in-out infinite; }
.scn-court-dora .figure-dora { position:absolute; bottom:22%; left:45%; width:14px; height:30px; background: linear-gradient(180deg, #f4a460 0%, #d2691e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-dora 5s ease-in-out infinite; }
.scn-court-dora .flower-bush { position:absolute; bottom:15%; right:15%; width:60px; height:30px; background: radial-gradient(circle at 40% 30%, #ffb6c1 0%, #db7093 40%, transparent 70%); border-radius:50%; filter:blur(2px); animation: cd-bush 9s ease-in-out infinite alternate; }
.scn-court-dora .cloud { position:absolute; top:10%; right:20%; width:70px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, rgba(255,255,255,.3) 100%); border-radius:50%; filter:blur(4px); animation: cd-cloud 30s linear infinite; }
@keyframes cd-sky { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cd-path { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cd-fence { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(.95) } }
@keyframes cd-david { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cd-dora { 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(0deg) } }
@keyframes cd-bush { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.2) } 100% { opacity:.7; transform: scaleY(.9) } }
@keyframes cd-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-micawber-return { background: linear-gradient(180deg, #4a2a1a 0%, #2c1810 40%, #1a0e0a 100%), radial-gradient(ellipse at 50% 60%, #8b4513 0%, transparent 60%); }
.scn-micawber-return .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5c3a20 0%, #3a2210 100%); box-shadow:inset 0 0 30px #1a0e0a; }
.scn-micawber-return .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:30% 70% 0 0 / 10% 20% 0 0; }
.scn-micawber-return .fireplace { position:absolute; bottom:20%; left:15%; width:60px; height:50px; background: linear-gradient(180deg, #8b4513 0%, #5c3010 100%); border-radius:10% 10% 20% 20%; box-shadow:0 0 20px #ff8c00; animation: mcb-fire 3s ease-in-out infinite alternate; }
.scn-micawber-return .table { position:absolute; bottom:15%; left:40%; width:80px; height:20px; background: #6b3a1a; border-radius:10%; box-shadow:0 4px 8px rgba(0,0,0,.5); animation: mcb-table 8s ease-in-out infinite alternate; }
.scn-micawber-return .chair { position:absolute; bottom:15%; left:30%; width:30px; height:40px; background: #5c3010; border-radius:10% 10% 5% 5%; transform-origin: bottom center; animation: mcb-chair 6s ease-in-out infinite; }
.scn-micawber-return .figure-micawber { position:absolute; bottom:12%; left:35%; width:25px; height:45px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mcb-micawber 2.5s ease-in-out infinite; }
.scn-micawber-return .figure-mrs-micawber { position:absolute; bottom:12%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #6b3a1a 0%, #4a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mcb-mrs 3s ease-in-out infinite; }
@keyframes mcb-fire { 0% { box-shadow:0 0 15px #ff8c00; opacity:.7 } 50% { box-shadow:0 0 30px #ffa500; opacity:1 } 100% { box-shadow:0 0 20px #ff8c00; opacity:.8 } }
@keyframes mcb-table { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.05) translateY(-2px) } 100% { transform: scaleX(.98) translateY(0) } }
@keyframes mcb-chair { 0% { transform: rotate(0deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-3deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(0deg) } }
@keyframes mcb-micawber { 0% { transform: translateY(0) rotate(-2deg) } 20% { transform: translateY(-5px) rotate(3deg) } 40% { transform: translateY(0) rotate(-1deg) } 60% { transform: translateY(-3px) rotate(2deg) } 80% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mcb-mrs { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* Scene: barkis-willing (warm sunlit journey) */
.scn-barkis-willing {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f9e79f 50%, #d4ac0d 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%);
}
.scn-barkis-willing .sky { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #85c1e9 0%, #f9e79f 100%); animation:bw-sky 12s ease-in-out infinite alternate; }
.scn-barkis-willing .sun { position:absolute; top:12%; left:75%; width:60px; height:60px; background:radial-gradient(circle, #fff9c4 0%, #f9e79f 50%, transparent 70%); border-radius:50%; box-shadow:0 0 60px 20px #f9e79f, 0 0 120px 40px #f1c40f; animation:bw-sun 6s ease-in-out infinite alternate; }
.scn-barkis-willing .cloud { position:absolute; height:20px; background:linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.2) 100%); border-radius:50%; filter:blur(4px); }
.scn-barkis-willing .cloud-left { top:18%; left:-15%; width:80px; animation:bw-cloud-drift 30s linear infinite; }
.scn-barkis-willing .cloud-right { top:8%; right:-10%; width:60px; animation:bw-cloud-drift 40s linear infinite reverse; }
.scn-barkis-willing .hills { position:absolute; bottom:45%; left:0; right:0; height:25%; background:linear-gradient(180deg, #58d68d 0%, #2ecc71 50%, #27ae60 100%); border-radius:20% 40% 0 0 / 60% 70% 0 0; animation:bw-hills 14s ease-in-out infinite alternate; }
.scn-barkis-willing .road { position:absolute; bottom:10%; left:20%; right:20%; height:35%; background:linear-gradient(180deg, #b9770e 0%, #8e6b2a 100%); border-radius:30% 30% 0 0 / 20% 20% 0 0; transform:perspective(500px) rotateX(50deg); transform-origin:bottom center; }
.scn-barkis-willing .cart { position:absolute; bottom:28%; left:30%; width:60px; height:40px; background:linear-gradient(135deg, #a0522d 0%, #5d4037 100%); border-radius:10% 10% 20% 20%; box-shadow:inset 0 -4px 0 #3e2723; transform:translate(-50%, 0); animation:bw-cart-bounce 2s ease-in-out infinite; }
.scn-barkis-willing .horse { position:absolute; bottom:28%; left:38%; width:40px; height:30px; background:linear-gradient(135deg, #d4a574 0%, #8b5e3c 100%); border-radius:40% 50% 20% 20% / 60% 50% 30% 30%; animation:bw-horse-trot 1.5s ease-in-out infinite; }
.scn-barkis-willing .figure-small { position:absolute; bottom:30%; left:34%; width:10px; height:20px; background:linear-gradient(180deg, #5d4037 0%, #3e2723 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; animation:bw-figure-walk 2s ease-in-out infinite; }

@keyframes bw-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes bw-sun { 0% { transform:scale(.95); box-shadow:0 0 40px 15px #f9e79f } 50% { transform:scale(1.05); box-shadow:0 0 80px 30px #f1c40f } 100% { transform:scale(.98); box-shadow:0 0 50px 20px #f9e79f } }
@keyframes bw-cloud-drift { 0% { transform:translateX(0) } 100% { transform:translateX(120vw) } }
@keyframes bw-hills { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes bw-cart-bounce { 0%,100% { transform:translate(-50%,0) rotate(0deg) } 25% { transform:translate(-50%,-2px) rotate(-1deg) } 50% { transform:translate(-50%,0) rotate(0deg) } 75% { transform:translate(-50%,-1px) rotate(1deg) } }
@keyframes bw-horse-trot { 0%,100% { transform:translateX(0) rotate(0) } 25% { transform:translateX(4px) rotate(-2deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(4px) rotate(2deg) } }
@keyframes bw-figure-walk { 0%,100% { transform:translateX(0) translateY(0) rotate(0) } 25% { transform:translateX(3px) translateY(-1px) rotate(3deg) } 50% { transform:translateX(6px) translateY(0) rotate(-2deg) } 75% { transform:translateX(3px) translateY(-1px) rotate(1deg) } }

/* Scene: emly-shy (calm sunlit interior) */
.scn-emly-shy {
  background:
    linear-gradient(180deg, #fdfefe 0%, #f5e6ca 50%, #e6c9a0 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 80%);
}
.scn-emly-shy .wall-bg { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #f5e6ca 0%, #e6c9a0 100%); box-shadow:inset 0 4px 12px rgba(0,0,0,.08); }
.scn-emly-shy .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #d4a574 0%, #a0522d 100%); border-radius:0 0 10% 10% / 0 0 20% 20%; }
.scn-emly-shy .window { position:absolute; top:12%; left:30%; width:40%; height:50%; background:linear-gradient(180deg, #87ceeb 0%, #f4d03f 100%); border:4px solid #5d4037; border-radius:4% 4% 8% 8%; box-shadow:inset 0 0 20px rgba(255,255,200,.5); animation:es-window 10s ease-in-out infinite alternate; }
.scn-emly-shy .sunbeam { position:absolute; top:30%; left:35%; width:30%; height:40%; background:linear-gradient(135deg, rgba(255,255,200,.3) 0%, transparent 100%); transform:skewX(-15deg); animation:es-sunbeam 12s ease-in-out infinite alternate; filter:blur(2px); }
.scn-emly-shy .table { position:absolute; bottom:22%; left:40%; width:60px; height:20px; background:linear-gradient(180deg, #8b5e3c 0%, #5d4037 100%); border-radius:10% 10% 5% 5%; box-shadow:0 4px 8px rgba(0,0,0,.2); }
.scn-emly-shy .girl-silhouette { position:absolute; bottom:25%; left:44%; width:16px; height:30px; background:linear-gradient(180deg, #4a2c1a 0%, #2c1a0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:es-girl 6s ease-in-out infinite; }
.scn-emly-shy .boy-silhouette { position:absolute; bottom:25%; left:50%; width:18px; height:32px; background:linear-gradient(180deg, #3e2723 0%, #1a0f0a 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin:bottom center; animation:es-boy 7s ease-in-out infinite 1s; }

@keyframes es-window { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes es-sunbeam { 0% { opacity:.3; transform:skewX(-15deg) translateX(0) } 50% { opacity:.5; transform:skewX(-10deg) translateX(5px) } 100% { opacity:.4; transform:skewX(-15deg) translateX(0) } }
@keyframes es-girl { 0%,100% { transform:translateX(0) rotate(0deg) } 30% { transform:translateX(-3px) rotate(-2deg) } 60% { transform:translateX(0) rotate(0deg) } 80% { transform:translateX(2px) rotate(1deg) } }
@keyframes es-boy { 0%,100% { transform:translateX(0) rotate(0deg) } 20% { transform:translateX(2px) rotate(1deg) } 50% { transform:translateX(0) rotate(0) } 70% { transform:translateX(-2px) rotate(-1deg) } }

/* Scene: micawber-intro (tense dim interior) */
.scn-micawber-intro {
  background:
    linear-gradient(180deg, #2c3e50 0%, #1a252f 50%, #0d1b2a 100%),
    radial-gradient(ellipse at 50% 100%, #1a252f 0%, transparent 80%);
}
.scn-micawber-intro .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #3e4a56 0%, #1b2838 100%); }
.scn-micawber-intro .table { position:absolute; bottom:20%; left:30%; width:100px; height:15px; background:linear-gradient(180deg, #5d4037 0%, #3e2723 100%); border-radius:5% 5% 10% 10%; box-shadow:0 6px 12px rgba(0,0,0,.6); }
.scn-micawber-intro .candle { position:absolute; bottom:28%; left:45%; width:8px; height:20px; background:linear-gradient(180deg, #f5cba7 0%, #e6b0aa 100%); border-radius:50% 50% 10% 10%; }
.scn-micawber-intro .flame { position:absolute; bottom:40%; left:45%; width:12px; height:16px; background:radial-gradient(circle, #ffeaa7 0%, #f39c12 60%, transparent 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 20px 8px #f39c12, 0 0 40px 15px rgba(243,156,18,.4); animation:mi-flame .8s ease-in-out infinite alternate; }
.scn-micawber-intro .micawber-figure { position:absolute; bottom:18%; left:35%; width:20px; height:45px; background:linear-gradient(180deg, #3e2723 0%, #1a0f0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation:mi-figure-m 3s ease-in-out infinite; }
.scn-micawber-intro .david-figure { position:absolute; bottom:18%; left:50%; width:16px; height:32px; background:linear-gradient(180deg, #2c1a0e 0%, #0d0805 100%); border-radius:45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin:bottom center; animation:mi-figure-d 2.5s ease-in-out infinite 0.5s; }
.scn-micawber-intro .shadow-pool { position:absolute; bottom:0; left:20%; right:20%; height:25%; background:radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%); animation:mi-shadow 5s ease-in-out infinite alternate; }

@keyframes mi-flame { 0% { transform:scaleY(.9) translateY(0); opacity:.9 } 50% { transform:scaleY(1.2) translateY(-2px); opacity:1 } 100% { transform:scaleY(.95) translateY(0); opacity:.85 } }
@keyframes mi-figure-m { 0%,100% { transform:translateX(0) rotate(0) } 30% { transform:translateX(-2px) rotate(-3deg) } 60% { transform:translateX(2px) rotate(2deg) } }
@keyframes mi-figure-d { 0%,100% { transform:translateX(0) rotate(0) } 25% { transform:translateX(1px) rotate(2deg) } 50% { transform:translateX(-1px) rotate(-2deg) } 75% { transform:translateX(0) rotate(0) } }
@keyframes mi-shadow { 0% { transform:scaleX(1) scaleY(1); opacity:.6 } 50% { transform:scaleX(1.15) scaleY(1.1); opacity:.8 } 100% { transform:scaleX(1) scaleY(1); opacity:.6 } }

/* Scene: flight-to-aunt (tense dark night flight) */
.scn-flight-to-aunt {
  background:
    linear-gradient(180deg, #0d1b2a 0%, #1b2838 30%, #2c3e50 100%),
    radial-gradient(ellipse at 50% 0%, #1b2838 0%, transparent 90%);
}
.scn-flight-to-aunt .night-sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #0b1521 0%, #1a2634 100%); }
.scn-flight-to-aunt .moon { position:absolute; top:8%; right:20%; width:40px; height:40px; background:radial-gradient(circle, #f5e6ca 0%, #e6c9a0 70%, transparent 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(230,201,160,.4); animation:fa-moon 8s ease-in-out infinite alternate; }
.scn-flight-to-aunt .cloud-moon { position:absolute; top:6%; right:15%; width:60px; height:12px; background:linear-gradient(180deg, rgba(255,255,255,.1) 0%, transparent 100%); border-radius:50%; filter:blur(5px); animation:fa-cloud 50s linear infinite; }
.scn-flight-to-aunt .road-dirt { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #2c3e50 0%, #1b2838 100%); border-radius:30% 30% 0 0 / 10% 10% 0 0; }
.scn-flight-to-aunt .tree-left { position:absolute; bottom:30%; left:5%; width:20px; height:80px; background:linear-gradient(180deg, #0d1b2a 0%, #000 100%); border-radius:50% 50% 10% 10% / 60% 60% 20% 20%; transform:skewX(-5deg); animation:fa-tree 6s ease-in-out infinite alternate; }
.scn-flight-to-aunt .tree-right { position:absolute; bottom:30%; right:10%; width:25px; height:90px; background:linear-gradient(180deg, #0d1b2a 0%, #000 100%); border-radius:50% 50% 10% 10% / 60% 60% 20% 20%; transform:skewX(5deg); animation:fa-tree 7s ease-in-out infinite alternate-reverse; }
.scn-flight-to-aunt .figure-runner { position:absolute; bottom:20%; left:30%; width:14px; height:28px; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom left; animation:fa-run 2s ease-in-out infinite; }
.scn-flight-to-aunt .lantern-glow { position:absolute; bottom:24%; left:28%; width:8px; height:8px; background:radial-gradient(circle, #ffeaa7 0%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 6px #ffeaa7, 0 0 40px 12px rgba(255,234,167,.3); animation:fa-lantern 1.2s ease-in-out infinite alternate; }

@keyframes fa-moon { 0% { transform:translateY(0) scale(1); opacity:.8 } 50% { transform:translateY(-4px) scale(1.02); opacity:.95 } 100% { transform:translateY(2px) scale(.98); opacity:.85 } }
@keyframes fa-cloud { 0% { transform:translateX(0) } 100% { transform:translateX(-150vw) } }
@keyframes fa-tree { 0% { transform:skewX(-5deg) scaleY(1) } 50% { transform:skewX(-6deg) scaleY(1.03) } 100% { transform:skewX(-4deg) scaleY(.98) } }
@keyframes fa-run { 0%,100% { transform:translateX(0) translateY(0) rotate(0deg) } 20% { transform:translateX(6px) translateY(-2px) rotate(5deg) } 40% { transform:translateX(12px) translateY(0) rotate(0deg) } 60% { transform:translateX(18px) translateY(-2px) rotate(-4deg) } 80% { transform:translateX(24px) translateY(0) rotate(0deg) } }
@keyframes fa-lantern { 0% { transform:translateY(0) rotate(-3deg); opacity:.6 } 50% { transform:translateY(-1px) rotate(3deg); opacity:1 } 100% { transform:translateY(0) rotate(-3deg); opacity:.7 } }

.scn-new-father {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a2038 40%, #1a1424 100%), radial-gradient(ellipse at 30% 20%, #2a2038 0%, transparent 60%);
}
.scn-new-father .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a2038 0%, #1a1424 100%);
  animation: nf-wall 15s ease-in-out infinite alternate;
}
.scn-new-father .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0e0a14 0%, #1a1424 100%);
  border-radius: 20% 30% 0 0;
}
.scn-new-father .window-dim {
  position: absolute; top: 12%; left: 60%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a2e4a 0%, #2a2040 100%);
  border: 3px solid #2a2038; border-radius: 4px;
  box-shadow: inset 0 0 20px #0a0a1a;
  animation: nf-window 8s ease-in-out infinite alternate;
}
.scn-new-father .mother-figure {
  position: absolute; bottom: 28%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2e4a 0%, #2a1e3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nf-mother 4s ease-in-out infinite alternate;
}
.scn-new-father .murdstone-shadow {
  position: absolute; bottom: 28%; right: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0a060e 0%, #0e0a14 100%);
  border-radius: 40% 40% 0 0;
  filter: blur(2px);
  animation: nf-shadow 6s ease-in-out infinite alternate;
}
.scn-new-father .child-figure {
  position: absolute; bottom: 25%; left: 42%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a1e3a 0%, #1a1224 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: nf-child 5s ease-in-out infinite alternate;
}
.scn-new-father .lantern-glow {
  position: absolute; top: 8%; right: 8%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b07030 0%, #8a5020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(176,112,48,0.6), 0 0 60px 15px rgba(176,112,48,0.3);
  animation: nf-lantern 3s ease-in-out infinite alternate;
}
@keyframes nf-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes nf-window { 0% { box-shadow: inset 0 0 15px #0a0a1a; } 50% { box-shadow: inset 0 0 25px #0a0a1a, 0 0 10px #3a2e4a; } 100% { box-shadow: inset 0 0 15px #0a0a1a; } }
@keyframes nf-mother { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes nf-shadow { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes nf-child { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(1px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes nf-lantern { 0% { opacity: 0.6; box-shadow: 0 0 20px 5px rgba(176,112,48,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(176,112,48,0.8); } 100% { opacity: 0.7; box-shadow: 0 0 25px 6px rgba(176,112,48,0.5); } }

.scn-beatings-begin {
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 40%, #0a0604 100%), radial-gradient(ellipse at 50% 20%, #3a2010 0%, transparent 60%);
}
.scn-beatings-begin .fireplace {
  position: absolute; bottom: 20%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(90deg, #1a0e08 0%, #2a1a10 30%, #3a2010 50%, #2a1a10 70%, #1a0e08 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 30px #0a0604;
}
.scn-beatings-begin .fire-glow {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, #c8553d 0%, #a0461a 40%, transparent 70%);
  border-radius: 50%;
  animation: bb-fire 1.5s ease-in-out infinite alternate;
}
.scn-beatings-begin .murdstone-figure {
  position: absolute; bottom: 25%; right: 25%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #0e0806 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: bb-murdstone 3s ease-in-out infinite alternate;
}
.scn-beatings-begin .cane {
  position: absolute; bottom: 30%; right: 32%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e08 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: top right;
  animation: bb-cane 2s ease-in-out infinite alternate;
}
.scn-beatings-begin .david-figure {
  position: absolute; bottom: 25%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: bb-david 2.5s ease-in-out infinite alternate;
}
.scn-beatings-begin .shadow-on-wall {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #0a0604 0%, #0e0806 100%);
  border-radius: 30% 30% 0 0;
  filter: blur(6px);
  animation: bb-shadow 4s ease-in-out infinite alternate;
}
.scn-beatings-begin .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0e0806 0%, #1a0e08 100%);
  border-radius: 10% 10% 0 0;
}
@keyframes bb-fire { 0% { transform: scale(1) translateY(0); opacity: 0.8; } 50% { transform: scale(1.05) translateY(-2px); opacity: 1; } 100% { transform: scale(0.95) translateY(0); opacity: 0.7; } }
@keyframes bb-murdstone { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(-5deg); } }
@keyframes bb-cane { 0% { transform: rotate(15deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(20deg); } }
@keyframes bb-david { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(3px) scale(0.95); } 100% { transform: translateY(0) scale(1); } }
@keyframes bb-shadow { 0% { transform: scaleX(1) skewX(0); } 50% { transform: scaleX(0.9) skewX(-3deg); } 100% { transform: scaleX(1) skewX(0); } }

.scn-tearful-departure {
  background: linear-gradient(180deg, #2a3040 0%, #404a5a 30%, #5a6675 60%, #6a7585 100%), radial-gradient(ellipse at 70% 30%, #4a5565 0%, transparent 50%);
}
.scn-tearful-departure .sky-dawn {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a7585 0%, #4a5565 60%, #2a3040 100%);
  animation: td-sky 20s ease-in-out infinite alternate;
}
.scn-tearful-departure .hedge {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 50% 10% 40%;
  filter: blur(3px);
  animation: td-hedge 8s ease-in-out infinite alternate;
}
.scn-tearful-departure .cart {
  position: absolute; bottom: 18%; left: 5%; width: 80px; height: 45px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: td-cart 10s linear infinite;
}
.scn-tearful-departure .mother-clara {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #5a6675 0%, #3a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: td-clara 4s ease-in-out infinite alternate;
}
.scn-tearful-departure .miss-murdstone {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 62px;
  background: linear-gradient(180deg, #2a3040 0%, #1a2030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: td-miss 6s ease-in-out infinite alternate;
}
.scn-tearful-departure .peggotty {
  position: absolute; bottom: 10%; right: 15%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: td-peggotty 5s ease-in-out infinite alternate;
}
.scn-tearful-departure .david-figure {
  position: absolute; bottom: 16%; left: 20%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #4a5565 0%, #2a3040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: td-david 3s ease-in-out infinite alternate;
}
.scn-tearful-departure .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #2a3040 0%, #3a4050 100%);
}
@keyframes td-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes td-hedge { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes td-cart { 0% { transform: translateX(0); } 100% { transform: translateX(20px); } }
@keyframes td-clara { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes td-miss { 0% { transform: rotate(5deg); } 50% { transform: rotate(3deg) translateX(1px); } 100% { transform: rotate(5deg); } }
@keyframes td-peggotty { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-3px) scale(0.98); } 100% { transform: translateX(0) scale(1); } }
@keyframes td-david { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }

.scn-inn-trickery {
  background: linear-gradient(180deg, #1a1420 0%, #2a2030 40%, #3a3048 100%), radial-gradient(ellipse at 40% 30%, #2a2030 0%, transparent 60%);
}
.scn-inn-trickery .table {
  position: absolute; bottom: 20%; left: 20%; width: 90px; height: 30px;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 6px 8px rgba(0,0,0,0.5);
}
.scn-inn-trickery .ale-mug {
  position: absolute; bottom: 30%; left: 35%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 5% 5% 10% 10%;
  animation: it-mug 2.5s ease-in-out infinite alternate;
}
.scn-inn-trickery .waiter {
  position: absolute; bottom: 25%; right: 15%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: it-waiter 4s ease-in-out infinite alternate;
}
.scn-inn-trickery .david-figure {
  position: absolute; bottom: 22%; left: 30%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1420 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: it-david 3s ease-in-out infinite alternate;
}
.scn-inn-trickery .lamp {
  position: absolute; top: 15%; left: 10%; width: 14px; height: 20px;
  background: radial-gradient(circle, #c08040 0%, #8a6020 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 25px 6px rgba(192,128,64,0.6), 0 0 50px 15px rgba(192,128,64,0.3);
  animation: it-lamp 2s ease-in-out infinite alternate;
}
.scn-inn-trickery .shadow-boy {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #0a060e 0%, #0e0a14 100%);
  border-radius: 40% 40% 0 0;
  filter: blur(4px);
  animation: it-shadow 5s ease-in-out infinite alternate;
}
.scn-inn-trickery .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0e0a14 0%, #1a1420 100%);
  border-radius: 10% 10% 0 0;
}
@keyframes it-mug { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes it-waiter { 0% { transform: rotate(-3deg); } 50% { transform: rotate(0deg) translateX(2px); } 100% { transform: rotate(-3deg); } }
@keyframes it-david { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(1px) scale(0.97); } 100% { transform: translateY(0) scale(1); } }
@keyframes it-lamp { 0% { opacity: 0.6; box-shadow: 0 0 15px 3px rgba(192,128,64,0.4); } 50% { opacity: 1; box-shadow: 0 0 35px 10px rgba(192,128,64,0.8); } 100% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(192,128,64,0.5); } }
@keyframes it-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1); } }

/* three-years-abroad */
.scn-three-years-abroad {
  background: linear-gradient(180deg, #1f2834 0%, #2c3a47 40%, #354555 100%),
              radial-gradient(ellipse at 50% 100%, #2c3a47 0%, transparent 60%);
}
.scn-three-years-abroad .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a4a5a 0%, #1a2430 100%); animation: ta-sky 20s ease-in-out infinite alternate; }
.scn-three-years-abroad .fog { position:absolute; inset:10% 0 20% 0; background: linear-gradient(90deg, transparent 0%, rgba(200,210,220,.15) 30%, rgba(200,210,220,.08) 70%, transparent 100%); filter: blur(8px); animation: ta-fog 40s linear infinite; }
.scn-three-years-abroad .street { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a2a 0%, #151515 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-three-years-abroad .lamppost { position:absolute; bottom:25%; left:50%; width:6px; height:60px; background: linear-gradient(180deg, #555 0%, #222 100%); border-radius: 2px; transform: translateX(-50%); }
.scn-three-years-abroad .glow { position:absolute; bottom:40%; left:50%; width:30px; height:30px; transform: translate(-50%,0); background: radial-gradient(circle, #c8a060 0%, rgba(200,160,96,.3) 40%, transparent 70%); border-radius: 50%; animation: ta-glow 4s ease-in-out infinite alternate; }
.scn-three-years-abroad .figure { position:absolute; bottom:28%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: ta-walk 6s ease-in-out infinite; }
.scn-three-years-abroad .buildings { position:absolute; bottom:30%; left:0; right:0; height:50%; background: linear-gradient(90deg, #2a3a3a 0%, #1a2a2a 30%, #2a3a3a 60%, #1a2a2a 100%); clip-path: polygon(0% 100%, 0% 40%, 10% 40%, 10% 20%, 20% 20%, 20% 35%, 30% 35%, 30% 50%, 45% 50%, 45% 25%, 55% 25%, 55% 55%, 65% 55%, 65% 15%, 75% 15%, 75% 45%, 85% 45%, 85% 30%, 100% 30%, 100% 100%); opacity: .7; animation: ta-buildings 30s ease-in-out infinite alternate; }
@keyframes ta-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes ta-fog { 0% { transform: translateX(-20%); } 50% { transform: translateX(10%); } 100% { transform: translateX(40%); } }
@keyframes ta-glow { 0% { box-shadow: 0 0 10px 2px #c8a060; opacity: .7; } 50% { box-shadow: 0 0 18px 6px #dbb878; opacity: 1; } 100% { box-shadow: 0 0 12px 3px #c8a060; opacity: .8; } }
@keyframes ta-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0); } }
@keyframes ta-buildings { 0% { transform: scaleX(1); opacity: .7; } 50% { transform: scaleX(1.01) translateY(-2px); opacity: .8; } 100% { transform: scaleX(1); opacity: .7; } }

/* traddles-home */
.scn-traddles-home {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 100%),
              radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-traddles-home .room-back { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-traddles-home .fireplace { position:absolute; bottom:20%; left:10%; width:30%; height:50%; background: linear-gradient(180deg, #5a4a30 0%, #3a2a18 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-traddles-home .fire-glow { position:absolute; bottom:25%; left:15%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, #e08040 0%, rgba(224,128,64,.3) 40%, transparent 80%); animation: th-fire 3s ease-in-out infinite alternate; }
.scn-traddles-home .table { position:absolute; bottom:10%; left:50%; width:40%; height:12%; transform: translateX(-50%); background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-traddles-home .chair { position:absolute; bottom:15%; left:45%; width:15%; height:25%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; transform: rotate(5deg); animation: th-chair 8s ease-in-out infinite; }
.scn-traddles-home .figure1 { position:absolute; bottom:18%; left:42%; width:12%; height:28%; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: th-fig1 6s ease-in-out infinite; }
.scn-traddles-home .figure2 { position:absolute; bottom:18%; left:55%; width:12%; height:26%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; transform-origin: bottom center; animation: th-fig2 7s ease-in-out infinite; }
.scn-traddles-home .tea-set { position:absolute; bottom:12%; left:52%; width:6%; height:4%; background: radial-gradient(circle, #d8c8b0 0%, #a89880 100%); border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,.3); animation: th-tea 10s ease-in-out infinite; }
@keyframes th-fire { 0% { transform: scaleY(1); opacity: .7; box-shadow: 0 0 20px 5px #e08040; } 50% { transform: scaleY(1.15); opacity: 1; box-shadow: 0 0 30px 10px #f09050; } 100% { transform: scaleY(.95); opacity: .8; box-shadow: 0 0 15px 3px #d07030; } }
@keyframes th-chair { 0% { transform: rotate(4deg); } 50% { transform: rotate(7deg) translateY(-1px); } 100% { transform: rotate(4deg); } }
@keyframes th-fig1 { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes th-fig2 { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(-2deg); } 66% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes th-tea { 0% { transform: scale(1); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(1); } }

/* agnes-reunion */
.scn-agnes-reunion {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-agnes-reunion .back-wall { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-agnes-reunion .window { position:absolute; top:10%; left:30%; width:40%; height:40%; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-agnes-reunion .desk { position:absolute; bottom:15%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-agnes-reunion .lamp { position:absolute; bottom:30%; left:25%; width:8%; height:20%; background: linear-gradient(180deg, #806040 0%, #503020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px 2px #c09050; animation: ar-lamp 5s ease-in-out infinite alternate; }
.scn-agnes-reunion .book { position:absolute; bottom:18%; left:35%; width:12%; height:8%; background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 2px; transform: rotate(-10deg); animation: ar-book 12s ease-in-out infinite; }
.scn-agnes-reunion .figure-david { position:absolute; bottom:18%; left:40%; width:10%; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ar-david 8s ease-in-out infinite; }
.scn-agnes-reunion .figure-agnes { position:absolute; bottom:20%; left:55%; width:10%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; transform-origin: bottom center; animation: ar-agnes 8s ease-in-out infinite; }
@keyframes ar-lamp { 0% { box-shadow: 0 0 8px 2px #c09050; opacity: .8; } 50% { box-shadow: 0 0 15px 5px #dba060; opacity: 1; } 100% { box-shadow: 0 0 10px 3px #c09050; opacity: .85; } }
@keyframes ar-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ar-david { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(0); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ar-agnes { 0% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }

/* love-confession */
.scn-love-confession {
  background: linear-gradient(180deg, #1a0a00 0%, #2a0a00 40%, #3a1a0a 100%),
              radial-gradient(ellipse at 50% 60%, #3a1a0a 0%, transparent 70%);
}
.scn-love-confession .wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-love-confession .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 0 0; }
.scn-love-confession .fireplace { position:absolute; bottom:15%; left:20%; width:30%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-love-confession .fire { position:absolute; bottom:20%; left:25%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, #e07030 0%, rgba(224,112,48,.4) 30%, transparent 70%); animation: lc-fire 2s ease-in-out infinite alternate; }
.scn-love-confession .mantel { position:absolute; bottom:45%; left:20%; width:30%; height:5%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 3px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-love-confession .figure1 { position:absolute; bottom:18%; left:35%; width:12%; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lc-fig1 5s ease-in-out infinite; }
.scn-love-confession .figure2 { position:absolute; bottom:20%; left:55%; width:12%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; transform-origin: bottom center; animation: lc-fig2 6s ease-in-out infinite; }
.scn-love-confession .candles { position:absolute; bottom:42%; left:28%; width:3%; height:8%; background: linear-gradient(180deg, #e8d0a0 0%, #c8a070 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 8px 2px #f0d080; animation: lc-candle 4s ease-in-out infinite alternate; }
@keyframes lc-fire { 0% { transform: scaleY(1) scaleX(1); opacity: .8; box-shadow: 0 0 20px 6px #e07030; } 50% { transform: scaleY(1.2) scaleX(.9); opacity: 1; box-shadow: 0 0 30px 12px #f08040; } 100% { transform: scaleY(.9) scaleX(1.1); opacity: .9; box-shadow: 0 0 15px 4px #d06020; } }
@keyframes lc-fig1 { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lc-fig2 { 0% { transform: translateY(0) rotate(-1deg); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lc-candle { 0% { box-shadow: 0 0 6px 1px #f0d080; opacity: .7; } 50% { box-shadow: 0 0 12px 4px #ffd090; opacity: 1; } 100% { box-shadow: 0 0 8px 2px #f0d080; opacity: .8; } }

.scn-school-money { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 30%, #0a0500 100%), radial-gradient(ellipse at 50% 0%, #4a2a1a 0%, transparent 70%); }
.scn-school-money .room-wall { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:0 0 30% 30% / 0 0 20% 20%; }
.scn-school-money .desk { position:absolute; bottom:30%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 -4px 8px rgba(0,0,0,.6); }
.scn-school-money .figure-left { position:absolute; bottom:38%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sm-fig-l 3s ease-in-out infinite; }
.scn-school-money .figure-right { position:absolute; bottom:38%; left:60%; width:22px; height:54px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sm-fig-r 3.5s ease-in-out infinite 0.3s; }
.scn-school-money .purse { position:absolute; bottom:38%; left:45%; width:14px; height:10px; background: radial-gradient(circle, #c8a060 0%, #a08040 100%); border-radius:30%; box-shadow:0 0 6px rgba(200,160,96,.6); animation: sm-purse 2s ease-in-out infinite alternate; }
.scn-school-money .candle-glow { position:absolute; bottom:45%; left:70%; width:8px; height:14px; background: radial-gradient(circle, #ffd080 0%, #ffa030 40%, transparent 70%); border-radius:50% 50% 20% 20%; box-shadow:0 0 20px 6px #ffa030, 0 0 40px 12px rgba(255,160,48,.4); animation: sm-candle 1.5s ease-in-out infinite alternate; }
.scn-school-money .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,.5) 0%, transparent 60%); pointer-events:none; }
@keyframes sm-fig-l { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(2px) rotate(2deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes sm-fig-r { 0% { transform:translateX(0) rotate(0deg) scaleY(1) } 50% { transform:translateX(-1px) rotate(-2deg) scaleY(1.02) } 100% { transform:translateX(0) rotate(0deg) scaleY(1) } }
@keyframes sm-purse { 0% { opacity:.7 } 50% { opacity:1; box-shadow:0 0 8px rgba(200,160,96,.8) } 100% { opacity:.8; box-shadow:0 0 4px rgba(200,160,96,.4) } }
@keyframes sm-candle { 0% { opacity:.8; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.1) } 100% { opacity:.7; transform:scaleY(0.95) } }

.scn-peg-again { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F0E68C 80%, #DEB887 100%), radial-gradient(ellipse at 50% 100%, #FFD700 0%, transparent 70%); }
.scn-peg-again .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 60%, transparent 100%); animation: pa-sky 12s ease-in-out infinite alternate; }
.scn-peg-again .sea { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4682B4 0%, #2F6A8C 100%); border-radius:30% 70% 0 0 / 50% 50% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.3); }
.scn-peg-again .sand { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #F4A460 0%, #DEB887 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; }
.scn-peg-again .boat { position:absolute; bottom:30%; left:30%; width:100px; height:30px; background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); border-radius:60% 40% 20% 20% / 50% 50% 20% 20%; transform-origin:center 80%; animation: pa-boat 5s ease-in-out infinite; box-shadow:0 4px 8px rgba(0,0,0,.4); }
.scn-peg-again .sail { position:absolute; bottom:45%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #FFF8DC 0%, #F5DEB3 100%); border-radius:30% 30% 10% 10% / 80% 80% 20% 20%; clip-path: polygon(50% 0%, 100% 100%, 0% 100%); transform-origin:bottom center; animation: pa-sail 6s ease-in-out infinite; }
.scn-peg-again .figure-ham { position:absolute; bottom:32%; left:48%; width:22px; height:48px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pa-ham 4s ease-in-out infinite; }
.scn-peg-again .wave-1 { position:absolute; bottom:22%; left:0; width:100%; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.3) 0%, transparent 70%); border-radius:50%; animation: pa-wave1 8s linear infinite; }
.scn-peg-again .wave-2 { position:absolute; bottom:18%; left:0; width:100%; height:15px; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.2) 0%, transparent 70%); border-radius:50%; animation: pa-wave2 10s linear infinite 2s; }
@keyframes pa-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes pa-boat { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(8px) rotate(2deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes pa-sail { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.05) } 100% { transform:scaleY(0.95) } }
@keyframes pa-ham { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(3px) rotate(2deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes pa-wave1 { 0% { transform:translateX(-20px) } 100% { transform:translateX(100vw) } }
@keyframes pa-wave2 { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }

.scn-holiday-tyranny { background: linear-gradient(180deg, #2b1e2e 0%, #1a0f1e 40%, #0a0510 100%), radial-gradient(ellipse at 50% 80%, #4a2a3e 0%, transparent 70%); }
.scn-holiday-tyranny .room { position:absolute; inset:0 10% 0 10%; background: linear-gradient(180deg, #3a2a3e 0%, #1a0f1e 100%); border-radius:10% 10% 0 0 / 5% 5% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.6); }
.scn-holiday-tyranny .window-cold { position:absolute; top:10%; right:20%; width:60px; height:80px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius:10%; box-shadow:inset 0 0 20px rgba(0,0,0,.5); animation: ht-window 9s ease-in-out infinite alternate; }
.scn-holiday-tyranny .figure-large { position:absolute; bottom:5%; left:25%; width:35px; height:100px; background: linear-gradient(180deg, #1a0a1a 0%, #0a050a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ht-large 7s ease-in-out infinite; }
.scn-holiday-tyranny .figure-small { position:absolute; bottom:5%; left:55%; width:20px; height:60px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ht-small 4s ease-in-out infinite; }
.scn-holiday-tyranny .chair { position:absolute; bottom:5%; left:35%; width:30px; height:40px; background: linear-gradient(180deg, #5a3a4a 0%, #3a2a3a 100%); border-radius:20% 20% 10% 10%; box-shadow:2px 0 8px rgba(0,0,0,.5); animation: ht-chair 12s ease-in-out infinite; }
.scn-holiday-tyranny .shadow-fall { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); pointer-events:none; }
@keyframes ht-window { 0% { opacity:.6; transform:scaleY(1) } 50% { opacity:.4; transform:scaleY(.95) } 100% { opacity:.7; transform:scaleY(1.02) } }
@keyframes ht-large { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(2px) rotate(1deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes ht-small { 0% { transform:translateX(0) scaleY(1) } 50% { transform:translateX(4px) scaleY(1.03) } 100% { transform:translateX(0) scaleY(.97) } }
@keyframes ht-chair { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }

.scn-mother-dead { background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1f 50%, #050510 100%), radial-gradient(ellipse at 50% 60%, #2a2a4e 0%, transparent 70%); }
.scn-mother-dead .bed { position:absolute; bottom:10%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%); border-radius:20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow:0 -8px 20px rgba(0,0,0,.6); animation: md-bed 20s ease-in-out infinite; }
.scn-mother-dead .figure-peggotty { position:absolute; bottom:20%; left:15%; width:28px; height:60px; background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: md-peg 6s ease-in-out infinite; }
.scn-mother-dead .figure-david { position:absolute; bottom:20%; left:55%; width:18px; height:45px; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a2e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: md-david 5s ease-in-out infinite .5s; }
.scn-mother-dead .candle { position:absolute; bottom:50%; left:70%; width:8px; height:20px; background: linear-gradient(180deg, #f0c8a0 0%, #d0a080 100%); border-radius:30% 30% 10% 10%; box-shadow:0 0 10px rgba(240,200,160,.6); animation: md-candle 2s ease-in-out infinite alternate; }
.scn-mother-dead .glow { position:absolute; bottom:45%; left:65%; width:60px; height:60px; background: radial-gradient(circle, rgba(240,200,160,.5) 0%, transparent 70%); border-radius:50%; animation: md-glow 3s ease-in-out infinite alternate; }
.scn-mother-dead .shadow-md { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, rgba(0,0,0,.5) 0%, transparent 60%); pointer-events:none; }
.scn-mother-dead .ornament { position:absolute; bottom:35%; left:45%; width:10px; height:10px; background: radial-gradient(circle, #c8a060 0%, transparent 70%); border-radius:50%; box-shadow:0 0 8px #c8a060; animation: md-orn 12s linear infinite; }
@keyframes md-bed { 0% { transform:translateY(0) } 50% { transform:translateY(2px) } 100% { transform:translateY(0) } }
@keyframes md-peg { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(1px) rotate(1deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes md-david { 0% { transform:translateX(0) scaleY(1) } 50% { transform:translateX(2px) scaleY(1.02) } 100% { transform:translateX(0) scaleY(.98) } }
@keyframes md-candle { 0% { opacity:.7; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.1) } 100% { opacity:.8; transform:scaleY(.95) } }
@keyframes md-glow { 0% { opacity:.5; transform:scale(1) } 50% { opacity:.8; transform:scale(1.2) } 100% { opacity:.6; transform:scale(.9) } }
@keyframes md-orn { 0% { transform:rotate(0deg) translateX(0) } 100% { transform:rotate(360deg) translateX(0) } }

/* waistcoat-sale – tense, sunlit */
.scn-waistcoat-sale {
  background: linear-gradient(180deg, #8ab8e0 0%, #fce4b0 50%, #d4a84a 100%), 
              radial-gradient(ellipse at 50% 0%, #fff4d0 0%, transparent 60%);
}
.scn-waistcoat-sale .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a9cc0 0%, #b0d0e8 60%); animation: ws-sky 8s ease-in-out infinite alternate; }
.scn-waistcoat-sale .sun    { position:absolute; top:8%; left:60%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #fff7d0 0%, #fce4b0 50%, transparent 70%); box-shadow: 0 0 80px 30px #fce4b0; animation: ws-sun 10s ease-in-out infinite alternate; }
.scn-waistcoat-sale .street { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #8b7355 0%, #5a4a33 100%); border-radius:20% 20% 0 0; animation: ws-street 12s ease-in-out infinite; }
.scn-waistcoat-sale .doorstep { position:absolute; bottom:28%; left:25%; width:200px; height:30px; background: linear-gradient(180deg, #b8a088 0%, #7a6348 100%); border-radius:8px 8px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3); animation: ws-step 6s ease-in-out infinite; }
.scn-waistcoat-sale .david-figure { position:absolute; bottom:30%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, #3a302a 0%, #1e1815 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ws-david 3s ease-in-out infinite; }
.scn-waistcoat-sale .tinker-figure { position:absolute; bottom:30%; left:55%; width:28px; height:52px; background: linear-gradient(180deg, #4a3c2e 0%, #2a1e14 100%); border-radius: 45% 55% 40% 40% / 55% 65% 40% 40%; transform-origin: bottom center; animation: ws-tinker 4s ease-in-out infinite; }
.scn-waistcoat-sale .waistcoat { position:absolute; bottom:38%; left:36%; width:16px; height:20px; background: linear-gradient(180deg, #7a4d2e 0%, #4a2c16 100%); border-radius:30% 30% 10% 10%; transform: rotate(-15deg); animation: ws-waistcoat 2.5s ease-in-out infinite; }
.scn-waistcoat-sale .coins   { position:absolute; bottom:34%; left:65%; width:10px; height:10px; border-radius:50%; background: radial-gradient(circle, #ffd86a 0%, #c89e3a 60%); box-shadow: 12px 4px 0 #ffd86a, 24px 2px 0 #ffd86a; animation: ws-coins 5s ease-in-out infinite; }
@keyframes ws-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes ws-sun    { 0% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.05) translate(3px,-3px) } 100% { transform: scale(1) translate(0,0) } }
@keyframes ws-street { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes ws-step   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ws-david  { 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 ws-tinker { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) rotate(3deg) } 100% { transform: translateX(0) } }
@keyframes ws-waistcoat { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.1) } 100% { transform: rotate(-15deg) scale(1) } }
@keyframes ws-coins  { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.7 } }

/* mr-dick-kite – calm, sunlit */
.scn-mr-dick-kite {
  background: linear-gradient(180deg, #7eb8d4 0%, #b8dce0 30%, #e6e0b0 70%, #8a9a5a 100%), 
              radial-gradient(ellipse at 50% 0%, #f0f4e8 0%, transparent 50%);
}
.scn-mr-dick-kite .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #9cc8e0 0%, #c0e0e8 60%); animation: kt-sky 20s ease-in-out infinite alternate; }
.scn-mr-dick-kite .horizon { position:absolute; bottom:40%; left:0; right:0; height:2px; background: #6a7a4a; }
.scn-mr-dick-kite .kite   { position:absolute; top:15%; left:40%; width:60px; height:70px; background: linear-gradient(180deg, #fff8e0 0%, #e8d8a0 100%); border-radius: 40% 60% 40% 40% / 50% 50% 50% 50%; box-shadow: 2px 4px 8px rgba(0,0,0,.15), inset 0 0 12px rgba(0,0,0,.1); transform: rotate(10deg); animation: kt-kite 8s ease-in-out infinite; }
.scn-mr-dick-kite .string { position:absolute; top:25%; left:46%; width:2px; height:25%; background: linear-gradient(180deg, #8a7040 0%, #5a4a2a 100%); transform-origin: top; animation: kt-string 6s ease-in-out infinite; }
.scn-mr-dick-kite .david-small { position:absolute; bottom:20%; left:20%; width:18px; height:34px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kt-david 5s ease-in-out infinite; }
.scn-mr-dick-kite .mrdick-figure { position:absolute; bottom:20%; left:45%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a34 0%, #3a2e1e 100%); border-radius: 45% 55% 40% 40% / 55% 65% 40% 40%; transform-origin: bottom center; animation: kt-mrdick 7s ease-in-out infinite; }
.scn-mr-dick-kite .cloud-a{ position:absolute; top:12%; left:10%; width:80px; height:24px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(8px); animation: kt-drift-a 40s linear infinite; }
.scn-mr-dick-kite .cloud-b{ position:absolute; top:22%; right:15%; width:60px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.05) 100%); border-radius:50%; filter: blur(6px); animation: kt-drift-b 55s linear infinite reverse; }
@keyframes kt-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes kt-kite   { 0% { transform: rotate(10deg) translate(0,0) } 25% { transform: rotate(5deg) translate(-4px,-6px) } 50% { transform: rotate(10deg) translate(2px,-3px) } 75% { transform: rotate(15deg) translate(-2px,0) } 100% { transform: rotate(10deg) translate(0,0) } }
@keyframes kt-string { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.05) } 100% { transform: rotate(-2deg) scaleY(1) } }
@keyframes kt-david  { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes kt-mrdick { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes kt-drift-a{ 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes kt-drift-b{ 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* aunt-confronts-murdstones – tense, dim-interior */
.scn-aunt-confronts-murdstones {
  background: linear-gradient(180deg, #2a1e1a 0%, #3a2a22 40%, #4a3a2e 80%, #6a4a32 100%), 
              radial-gradient(ellipse at 40% 60%, #603c24 0%, transparent 70%);
}
.scn-aunt-confronts-murdstones .wall   { position:absolute; inset:0 0 0 0; background: linear-gradient(90deg, #3a2a22 0%, #4a3a2e 50%, #3a2a22 100%); }
.scn-aunt-confronts-murdstones .window { position:absolute; top:15%; right:10%; width:80px; height:100px; background: linear-gradient(135deg, #6a6a4a 0%, #9a9a6a 40%, #c0c080 100%); border:4px solid #2a1e14; border-radius:4px; opacity:.6; animation: acm-window 5s ease-in-out infinite alternate; }
.scn-aunt-confronts-murdstones .aunt   { position:absolute; bottom:30%; left:30%; width:30px; height:55px; background: linear-gradient(180deg, #2a2020 0%, #1a1414 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: acm-aunt 3s ease-in-out infinite; }
.scn-aunt-confronts-murdstones .murdstone-a { position:absolute; bottom:32%; left:55%; width:26px; height:50px; background: linear-gradient(180deg, #1c1c2a 0%, #10101a 100%); border-radius: 45% 55% 40% 40% / 55% 65% 40% 40%; transform-origin: bottom; animation: acm-murd-a 4s ease-in-out infinite; }
.scn-aunt-confronts-murdstones .murdstone-b { position:absolute; bottom:28%; left:65%; width:24px; height:45px; background: linear-gradient(180deg, #2a1a1a 0%, #140e0e 100%); border-radius: 45% 55% 40% 40% / 55% 65% 40% 40%; transform-origin: bottom; animation: acm-murd-b 5s ease-in-out infinite; }
.scn-aunt-confronts-murdstones .light-beam { position:absolute; top:15%; right:10%; width:200px; height:500px; background: linear-gradient(135deg, rgba(255,255,200,.15) 0%, transparent 60%); filter: blur(10px); animation: acm-beam 7s ease-in-out infinite alternate; }
.scn-aunt-confronts-murdstones .shadow  { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); }
@keyframes acm-window { 0% { opacity:.4; filter: brightness(.8) } 50% { opacity:.7; filter: brightness(1.2) } 100% { opacity:.5; filter: brightness(1) } }
@keyframes acm-aunt   { 0% { transform: rotate(-3deg) translateX(0) } 25% { transform: rotate(0) translateX(-4px) } 50% { transform: rotate(4deg) translateX(2px) } 75% { transform: rotate(0) translateX(-2px) } 100% { transform: rotate(-3deg) translateX(0) } }
@keyframes acm-murd-a { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes acm-murd-b { 0% { transform: rotate(1deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(2px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes acm-beam   { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(1) } }

/* canterbury-school – warm, sunlit */
.scn-canterbury-school {
  background: linear-gradient(180deg, #b8d4e8 0%, #e0e8c0 40%, #c8b878 70%, #8a7a4a 100%), 
              radial-gradient(ellipse at 70% 10%, #f0e8c0 0%, transparent 50%);
}
.scn-canterbury-school .sky     { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #a0c8e0 0%, #d0e0d0 60%); animation: cs-sky 16s ease-in-out infinite alternate; }
.scn-canterbury-school .building { position:absolute; bottom:25%; left:35%; width:120px; height:80px; background: linear-gradient(180deg, #b09868 0%, #8a7048 100%); border-radius:6px 6px 0 0; box-shadow: inset 0 -4px 0 #6a5232; animation: cs-building 9s ease-in-out infinite; }
.scn-canterbury-school .path    { position:absolute; bottom:15%; left:30%; width:250px; height:40px; background: linear-gradient(180deg, #c8b888 0%, #9a8a5a 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; animation: cs-path 5s ease-in-out infinite; }
.scn-canterbury-school .aunt-carriage { position:absolute; bottom:25%; left:10%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius:40% 40% 20% 20%; animation: cs-carriage 8s ease-in-out infinite; }
.scn-canterbury-school .david-figure  { position:absolute; bottom:20%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: cs-david 4s ease-in-out infinite; }
.scn-canterbury-school .uriah-figure  { position:absolute; bottom:20%; left:58%; width:18px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 40% 60% 35% 35% / 55% 65% 35% 35%; animation: cs-uriah 6s ease-in-out infinite; }
.scn-canterbury-school .gate    { position:absolute; bottom:22%; left:70%; width:30px; height:50px; background: linear-gradient(180deg, #6a5232 0%, #4a3a1e 100%); border-radius:4px; box-shadow: 2px 0 0 #8a7048; animation: cs-gate 7s ease-in-out infinite; }
.scn-canterbury-school .tree    { position:absolute; bottom:15%; left:75%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 20%, #5a7a3a 0%, #3a5a2a 60%, transparent 70%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; animation: cs-tree 10s ease-in-out infinite; }
@keyframes cs-sky     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cs-building { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cs-path    { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes cs-carriage { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(6px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes cs-david   { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cs-uriah   { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(2px) scaleY(1.05) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes cs-gate    { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes cs-tree    { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(-2deg) scale(1.02) } 100% { transform: rotate(0) scale(1) } }

.scn-dr-strongs-school { background: linear-gradient(180deg, #f5e6c8 0%, #e0c896 50%, #c9b18d 100%), radial-gradient(ellipse at 70% 30%, rgba(255,255,220,0.4) 0%, transparent 60%); }
.scn-dr-strongs-school .ds-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0dfc0, #d4bc8f); }
.scn-dr-strongs-school .ds-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8c704a, #5a4a30); border-radius: 0 0 10% 10% / 0 0 20% 20%; }
.scn-dr-strongs-school .ds-window { position:absolute; top:10%; left:65%; width:30%; height:40%; background: linear-gradient(180deg, #c8e8f0, #9cc8d0); border: 8px solid #5a4a30; border-radius: 4px; box-shadow: inset 0 0 30px rgba(200,232,240,0.5); }
.scn-dr-strongs-school .ds-curtain { position:absolute; top:10%; left:65%; width:15%; height:40%; background: linear-gradient(90deg, #7a5a3a, #5a3a2a); border-radius: 0 4px 4px 0; transform-origin: left center; animation: ds-curtain 8s ease-in-out infinite; }
.scn-dr-strongs-school .ds-teacher { position:absolute; bottom:30%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #3a2a1a, #1a1008); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds-teacher 12s ease-in-out infinite; }
.scn-dr-strongs-school .ds-desk { position:absolute; bottom:28%; left:20%; width:100px; height:20px; background: linear-gradient(180deg, #6a5030, #3a2818); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-dr-strongs-school .ds-figure-ag { position:absolute; bottom:30%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #5a4a3a, #2a1a10); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds-fig 10s ease-in-out infinite; }
.scn-dr-strongs-school .ds-lamp { position:absolute; top:5%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #ffeaa0 0%, #d4a050 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(212,160,80,0.5); transform-origin: top center; animation: ds-lamp 6s ease-in-out infinite; }
@keyframes ds-curtain { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(0.8) rotate(5deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes ds-teacher { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ds-fig { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(3px); } }
@keyframes ds-lamp { 0%,100% { opacity:0.9; box-shadow: 0 0 20px 5px rgba(212,160,80,0.4); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(212,160,80,0.6); } }

.scn-uriah-humble { background: linear-gradient(180deg, #1f1410 0%, #0f0a08 50%, #1a0c08 100%), radial-gradient(ellipse at 30% 50%, rgba(80,50,30,0.3) 0%, transparent 70%); }
.scn-uriah-humble .uh-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1c16, #1a0e0a); }
.scn-uriah-humble .uh-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a281a, #1a1008); }
.scn-uriah-humble .uh-desk { position:absolute; bottom:28%; left:35%; width:80px; height:15px; background: linear-gradient(180deg, #4a3018, #2a1a10); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-uriah-humble .uh-lamp { position:absolute; bottom:50%; left:35%; width:12px; height:12px; background: radial-gradient(circle, #f0c060 0%, #b07020 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(176,112,32,0.7); animation: uh-lamp 2s ease-in-out infinite; }
.scn-uriah-humble .uh-uriah { position:absolute; bottom:25%; left:40%; width:30px; height:65px; background: linear-gradient(180deg, #4a2a1a, #2a1208); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: uh-uriah 4s ease-in-out infinite; }
.scn-uriah-humble .uh-shadow { position:absolute; bottom:0; left:35%; width:40px; height:80px; background: rgba(0,0,0,0.5); border-radius: 30% 30% 0 0; transform-origin: top center; animation: uh-shadow 4s ease-in-out infinite; }
.scn-uriah-humble .uh-door { position:absolute; bottom:25%; right:10%; width:40px; height:70px; background: linear-gradient(180deg, #3a2010, #1a0e06); border: 2px solid #2a1408; border-radius: 2px 4px 4px 2px; animation: uh-door 6s ease-in-out infinite; }
@keyframes uh-lamp { 0% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(176,112,32,0.5); } 50% { opacity:1; box-shadow: 0 0 50px 20px rgba(176,112,32,0.9); } 100% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(176,112,32,0.5); } }
@keyframes uh-uriah { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } }
@keyframes uh-shadow { 0%,100% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.05) translateX(-3px); } }
@keyframes uh-door { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }

.scn-letter-and-gold { background: linear-gradient(180deg, #2e231a 0%, #1c140e 50%, #140c08 100%), radial-gradient(ellipse at 50% 60%, rgba(255,200,100,0.3) 0%, transparent 70%); }
.scn-letter-and-gold .lg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a, #1e140a); }
.scn-letter-and-gold .lg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0e, #120a06); }
.scn-letter-and-gold .lg-desk { position:absolute; bottom:28%; left:30%; width:100px; height:18px; background: linear-gradient(180deg, #4a3018, #2a1808); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-letter-and-gold .lg-chair { position:absolute; bottom:28%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #2a1a0e, #140a06); border-radius: 50% 50% 0 0; transform-origin: bottom center; }
.scn-letter-and-gold .lg-david { position:absolute; bottom:28%; left:32%; width:25px; height:50px; background: linear-gradient(180deg, #3a2a1a, #1a1008); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lg-david 5s ease-in-out infinite; }
.scn-letter-and-gold .lg-candle { position:absolute; bottom:50%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #f0c060, #c08020); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 20px 5px rgba(240,192,96,0.5); animation: lg-candle 3s ease-in-out infinite; }
.scn-letter-and-gold .lg-letter { position:absolute; bottom:35%; left:35%; width:40px; height:30px; background: linear-gradient(135deg, #f5e6c8, #d4bc8f); border: 1px solid #8c704a; transform: rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-letter-and-gold .lg-gold { position:absolute; bottom:30%; left:55%; width:20px; height:20px; background: radial-gradient(circle, #ffd700 0%, #b8860b 60%); border-radius: 50%; box-shadow: 0 0 10px 3px rgba(255,215,0,0.5); animation: lg-gold 7s ease-in-out infinite; }
.scn-letter-and-gold .lg-mr-dick { position:absolute; bottom:28%; left:70%; width:35px; height:55px; background: linear-gradient(180deg, #4a3a2a, #1a1008); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lg-mr-dick 8s ease-in-out infinite; }
@keyframes lg-david { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } }
@keyframes lg-candle { 0%,100% { opacity:0.9; transform: scaleY(1); box-shadow: 0 0 15px 3px rgba(240,192,96,0.4); } 50% { opacity:1; transform: scaleY(1.05); box-shadow: 0 0 25px 8px rgba(240,192,96,0.6); } }
@keyframes lg-gold { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(10deg); } }
@keyframes lg-mr-dick { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(5px); } }

.scn-heep-visit { background: linear-gradient(180deg, #1f1410 0%, #0f0806 50%, #140a08 100%), radial-gradient(ellipse at 30% 50%, rgba(100,60,30,0.2) 0%, transparent 70%); }
.scn-heep-visit .hv-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1c16, #180e0a); }
.scn-heep-visit .hv-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10, #0e0804); }
.scn-heep-visit .hv-table { position:absolute; bottom:28%; left:30%; width:120px; height:15px; background: linear-gradient(180deg, #3a2010, #1a0e06); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-heep-visit .hv-lamp { position:absolute; bottom:50%; left:40%; width:10px; height:10px; background: radial-gradient(circle, #e0a060 0%, #a06020 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(160,96,32,0.7); animation: hv-lamp 1.5s ease-in-out infinite; }
.scn-heep-visit .hv-uriah { position:absolute; bottom:25%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #4a2a1a, #2a1208); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hv-uriah 3s ease-in-out infinite; }
.scn-heep-visit .hv-david { position:absolute; bottom:28%; left:45%; width:25px; height:45px; background: linear-gradient(180deg, #3a2a1a, #1a1008); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hv-david 4s ease-in-out infinite; }
.scn-heep-visit .hv-micawber { position:absolute; bottom:25%; left:65%; width:35px; height:55px; background: linear-gradient(180deg, #4a3a2a, #2a1808); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hv-micawber 3.5s ease-in-out infinite; }
.scn-heep-visit .hv-chair { position:absolute; bottom:28%; left:60%; width:30px; height:20px; background: linear-gradient(180deg, #3a2a1a, #1a1008); border-radius: 20% 20% 0 0; }
@keyframes hv-lamp { 0% { opacity:0.5; box-shadow: 0 0 20px 5px rgba(160,96,32,0.4); } 50% { opacity:1; box-shadow: 0 0 50px 20px rgba(160,96,32,0.9); } 100% { opacity:0.5; box-shadow: 0 0 20px 5px rgba(160,96,32,0.4); } }
@keyframes hv-uriah { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(4deg) translateX(-3px); } }
@keyframes hv-david { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-3deg) translateX(2px); } }
@keyframes hv-micawber { 0%,100% { transform: rotate(0deg) translateX(0) scaleX(1); } 50% { transform: rotate(6deg) translateX(5px) scaleX(1.05); } }

/* ------- scene: dora-proposal (warm, sunlit) ------- */
.scn-dora-proposal {
  background:
    linear-gradient(180deg, #6a9ec4 0%, #c8a878 45%, #e8c878 70%, #d4a050 100%),
    radial-gradient(ellipse at 50% 0%, #ffecb0 0%, transparent 70%);
}
.scn-dora-proposal .sky-glow {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, rgba(255,236,176,.3) 0%, transparent 100%);
  animation: dp-sky 14s ease-in-out infinite alternate;
}
.scn-dora-proposal .sun-orb {
  position:absolute; top:8%; left:50%; width:60px; height:60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffecb0 0%, #e8c878 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 80px 20px rgba(232,200,120,.5), 0 0 160px 40px rgba(232,200,120,.2);
  animation: dp-sun 6s ease-in-out infinite alternate;
}
.scn-dora-proposal .ground-sweep {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #8a9a5a 0%, #6a7a4a 50%, #5a6a3a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.3);
  animation: dp-ground 12s ease-in-out infinite alternate;
}
.scn-dora-proposal .tree-left {
  position:absolute; bottom:30%; left:6%; width:40px; height:120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 80% 10% 10% / 40% 60% 10% 10%;
  transform-origin: bottom center;
  box-shadow: -4px 0 12px rgba(0,0,0,.4);
  animation: dp-sway-l 7s ease-in-out infinite alternate;
}
.scn-dora-proposal .tree-right {
  position:absolute; bottom:28%; right:4%; width:50px; height:140px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 80% 20% 10% 10% / 60% 40% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 4px 0 12px rgba(0,0,0,.4);
  animation: dp-sway-r 9s ease-in-out infinite alternate;
}
.scn-dora-proposal .figure-kneel {
  position:absolute; bottom:20%; left:44%; width:22px; height:44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: dp-kneel 3s ease-in-out infinite;
}
.scn-dora-proposal .figure-stand {
  position:absolute; bottom:18%; left:52%; width:24px; height:58px;
  background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 60%, #3a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: dp-stand 4s ease-in-out infinite;
}
@keyframes dp-sky {
  0% { opacity:.7; }
  50% { opacity:1; }
  100% { opacity:.75; }
}
@keyframes dp-sun {
  0% { transform: translateX(-50%) scale(.9); opacity:.85; box-shadow:0 0 60px 15px rgba(232,200,120,.4); }
  50% { transform: translateX(-50%) scale(1.05); opacity:1; box-shadow:0 0 100px 30px rgba(232,200,120,.6); }
  100% { transform: translateX(-50%) scale(.92); opacity:.88; box-shadow:0 0 70px 18px rgba(232,200,120,.45); }
}
@keyframes dp-ground {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-6px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes dp-sway-l {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes dp-sway-r {
  0% { transform: rotate(2deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(1deg); }
}
@keyframes dp-kneel {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  40% { transform: translateX(4px) translateY(-3px) rotate(1deg) scaleY(1.02); }
  70% { transform: translateX(2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes dp-stand {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-3px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* ------- scene: aunt-ruin (tense, dim-interior) ------- */
.scn-aunt-ruin {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #3a2a22 40%, #2a1e1a 70%, #1a1210 100%),
    radial-gradient(ellipse at 40% 60%, #4a3a32 0%, transparent 70%);
}
.scn-aunt-ruin .wall-dim {
  position:absolute; inset:0 0 18% 0;
  background: linear-gradient(135deg, #3a2a22 0%, #2a1a1a 50%, #1a1210 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
  animation: ar-wall 24s ease-in-out infinite alternate;
}
.scn-aunt-ruin .window-pale {
  position:absolute; top:12%; left:28%; width:50px; height:70px;
  background: linear-gradient(180deg, #4a6a7a 0%, #6a8a9a 50%, #4a6a7a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(74,106,122,.3), 0 0 30px rgba(74,106,122,.2);
  animation: ar-window 15s ease-in-out infinite alternate;
}
.scn-aunt-ruin .candle-flicker {
  position:absolute; bottom:28%; left:48%; width:12px; height:18px;
  background: radial-gradient(ellipse at 50% 0%, #e8b060 0%, #c89040 50%, #a07020 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,144,64,.5), 0 0 60px 18px rgba(200,144,64,.2);
  animation: ar-candle 2s ease-in-out infinite alternate;
}
.scn-aunt-ruin .figure-aunt {
  position:absolute; bottom:16%; left:38%; width:30px; height:70px;
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1210 50%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: ar-aunt 6s ease-in-out infinite;
}
.scn-aunt-ruin .figure-david {
  position:absolute; bottom:16%; left:52%; width:24px; height:58px;
  background: linear-gradient(180deg, #1a1210 0%, #2a1a1a 50%, #1a1210 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: ar-david 5s ease-in-out infinite alternate;
}
.scn-aunt-ruin .shadow-cast {
  position:absolute; bottom:10%; left:30%; width:90px; height:40px;
  background: linear-gradient(180deg, rgba(10,5,5,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ar-shadow 7s ease-in-out infinite alternate;
}
.scn-aunt-ruin .floor-plank {
  position:absolute; bottom:0; left:0; right:0; height:18%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 50%, #120a08 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
  animation: ar-floor 30s linear infinite alternate;
}
@keyframes ar-wall {
  0% { opacity:.9; }
  50% { opacity:1; }
  100% { opacity:.85; }
}
@keyframes ar-window {
  0% { opacity:.5; box-shadow:0 0 20px rgba(74,106,122,.15); }
  50% { opacity:.8; box-shadow:0 0 40px rgba(74,106,122,.3); }
  100% { opacity:.55; box-shadow:0 0 25px rgba(74,106,122,.18); }
}
@keyframes ar-candle {
  0% { transform: scaleY(.9) rotate(-2deg); opacity:.8; box-shadow:0 0 25px 6px rgba(200,144,64,.4); }
  50% { transform: scaleY(1.1) rotate(2deg); opacity:1; box-shadow:0 0 40px 12px rgba(200,144,64,.6); }
  100% { transform: scaleY(.95) rotate(0); opacity:.85; box-shadow:0 0 30px 8px rgba(200,144,64,.45); }
}
@keyframes ar-aunt {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-4px) translateY(-2px) rotate(-2deg); }
  60% { transform: translateX(2px) translateY(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ar-david {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(6px) translateY(-3px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes ar-shadow {
  0% { transform: scaleX(1) translateX(0); opacity:.5; }
  50% { transform: scaleX(1.1) translateX(8px); opacity:.8; }
  100% { transform: scaleX(.95) translateX(-2px); opacity:.55; }
}
@keyframes ar-floor {
  0% { opacity:.8; }
  50% { opacity:.95; }
  100% { opacity:.85; }
}

/* ------- scene: woodmans-axe (tense, dim-interior) ------- */
.scn-woodmans-axe {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2e 70%, #12121a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 70%);
}
.scn-woodmans-axe .study-wall {
  position:absolute; inset:0 0 14% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2e 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.5);
  animation: wa-wall 20s ease-in-out infinite alternate;
}
.scn-woodmans-axe .desk-top {
  position:absolute; bottom:12%; left:30%; right:30%; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: wa-desk 18s ease-in-out infinite alternate;
}
.scn-woodmans-axe .lamp-glow {
  position:absolute; bottom:32%; left:46%; width:16px; height:20px;
  background: radial-gradient(ellipse at 50% 0%, #c8a060 0%, #a08040 50%, #806030 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 0 35px 10px rgba(160,128,64,.5), 0 0 70px 20px rgba(160,128,64,.2);
  animation: wa-lamp 3s ease-in-out infinite alternate;
}
.scn-woodmans-axe .figure-work {
  position:absolute; bottom:12%; left:42%; width:28px; height:60px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: wa-work 2s ease-in-out infinite alternate;
}
.scn-woodmans-axe .axe-symbol {
  position:absolute; bottom:40%; left:18%; width:8px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-20deg);
  box-shadow: 0 0 6px 2px rgba(0,0,0,.3);
  animation: wa-axe 4s ease-in-out infinite;
}
.scn-woodmans-axe .paper-pile {
  position:absolute; bottom:18%; left:52%; width:30px; height:18px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 50%, #b8a890 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: wa-paper 8s ease-in-out infinite alternate;
}
.scn-woodmans-axe .book-row {
  position:absolute; bottom:44%; right:8%; width:50px; height:50px;
  background: linear-gradient(90deg, #3a2a3a 0%, #4a3a4a 30%, #2a1a2a 60%, #3a2a3a 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: 2px 2px 8px rgba(0,0,0,.4);
  animation: wa-books 30s linear infinite alternate;
}
@keyframes wa-wall {
  0% { opacity:.85; }
  50% { opacity:1; }
  100% { opacity:.9; }
}
@keyframes wa-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes wa-lamp {
  0% { transform: scaleY(.9) rotate(-3deg); opacity:.8; box-shadow:0 0 30px 8px rgba(160,128,64,.4); }
  50% { transform: scaleY(1.08) rotate(3deg); opacity:1; box-shadow:0 0 45px 14px rgba(160,128,64,.6); }
  100% { transform: scaleY(.92) rotate(0); opacity:.85; box-shadow:0 0 35px 10px rgba(160,128,64,.45); }
}
@keyframes wa-work {
  0% { transform: translateX(0) translateY(0) rotate(-1deg) scaleY(1); }
  30% { transform: translateX(4px) translateY(-2px) rotate(2deg) scaleY(1.02); }
  60% { transform: translateX(-2px) translateY(0) rotate(-2deg) scaleY(.98); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg) scaleY(1); }
}
@keyframes wa-axe {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-4px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes wa-paper {
  0% { transform: translateX(0) rotate(0); opacity:.8; }
  50% { transform: translateX(6px) rotate(2deg); opacity:1; }
  100% { transform: translateX(0) rotate(0); opacity:.85; }
}
@keyframes wa-books {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

/* ------- scene: letter-discovered (tense, bright-interior) ------- */
.scn-letter-discovered {
  background:
    linear-gradient(180deg, #c8b8a8 0%, #d8c8b8 35%, #c8b8a0 65%, #b8a890 100%),
    radial-gradient(ellipse at 50% 20%, #e8e0d8 0%, transparent 70%);
}
.scn-letter-discovered .room-bright {
  position:absolute; inset:0 0 16% 0;
  background: linear-gradient(180deg, #d8c8b8 0%, #c8b8a8 50%, #b8a898 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.1);
  animation: ld-room 16s ease-in-out infinite alternate;
}
.scn-letter-discovered .window-light {
  position:absolute; top:8%; left:14%; width:60px; height:80px;
  background: linear-gradient(180deg, #e8e8f0 0%, #d0d8e0 50%, #e8e8f0 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 0 40px 10px rgba(200,200,220,.3), 0 0 80px 20px rgba(200,200,220,.1);
  animation: ld-window 10s ease-in-out infinite alternate;
}
.scn-letter-discovered .figure-spenlow {
  position:absolute; bottom:12%; left:26%; width:32px; height:76px;
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 50%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 0 6px 14px rgba(0,0,0,.5);
  animation: ld-spenlow 4s ease-in-out infinite alternate;
}
.scn-letter-discovered .figure-murdstone {
  position:absolute; bottom:12%; left:40%; width:28px; height:72px;
  background: linear-gradient(180deg, #1a0a1a 0%, #2a1a2a 50%, #1a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 0 6px 14px rgba(0,0,0,.5);
  animation: ld-murdstone 5s ease-in-out infinite alternate;
}
.scn-letter-discovered .figure-david {
  position:absolute; bottom:12%; left:54%; width:24px; height:60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 6px 14px rgba(0,0,0,.5);
  animation: ld-david 3s ease-in-out infinite;
}
.scn-letter-discovered .letter-litter {
  position:absolute; bottom:6%; left:44%; width:20px; height:14px;
  background: linear-gradient(135deg, #f0e0c0 0%, #e0d0b0 50%, #d8c8a8 100%);
  border-radius: 2% 6% 4% 8%;
  box-shadow: 2px 2px 6px rgba(0,0,0,.2);
  animation: ld-letter 5s ease-in-out infinite;
}
.scn-letter-discovered .jip-dog {
  position:absolute; bottom:6%; left:62%; width:18px; height:14px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: ld-jip 4s ease-in-out infinite alternate;
}
@keyframes ld-room {
  0% { opacity:.9; }
  50% { opacity:1; }
  100% { opacity:.92; }
}
@keyframes ld-window {
  0% { opacity:.8; box-shadow:0 0 30px 8px rgba(200,200,220,.2); }
  50% { opacity:1; box-shadow:0 0 50px 15px rgba(200,200,220,.4); }
  100% { opacity:.85; box-shadow:0 0 35px 10px rgba(200,200,220,.25); }
}
@keyframes ld-spenlow {
  0% { transform: translateX(0) rotate(0); }
  35% { transform: translateX(-4px) translateY(-2px) rotate(-3deg); }
  70% { transform: translateX(2px) translateY(1px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ld-murdstone {
  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 ld-david {
  0% { transform: translateX(0) translateY(0) rotate(-1deg) scaleY(1); }
  25% { transform: translateX(6px) translateY(-4px) rotate(3deg) scaleY(1.03); }
  50% { transform: translateX(-2px) translateY(-1px) rotate(-2deg) scaleY(.97); }
  75% { transform: translateX(4px) translateY(-2px) rotate(1deg) scaleY(1.01); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg) scaleY(1); }
}
@keyframes ld-letter {
  0% { transform: translateX(0) rotate(0) scale(1); opacity:.7; }
  50% { transform: translateX(8px) rotate(6deg) scale(1.05); opacity:1; }
  100% { transform: translateX(0) rotate(0) scale(1); opacity:.75; }
}
@keyframes ld-jip {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(4px) translateY(-2px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
/* end per-scene blocks */
