/* 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-confession {
  background:
    linear-gradient(180deg, #1a1220 0%, #0e0a14 40%, #140f1a 100%),
    radial-gradient(ellipse at 50% 60%, #2a1e30 0%, transparent 60%);
  overflow: hidden;
}
.scn-confession .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1f1428 0%, #120b1a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-confession .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a0e14 0%, #0d0608 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-confession .window {
  position: absolute;
  top: 15%; left: 30%;
  width: 70px; height: 90px;
  background: linear-gradient(180deg, #2a1e3a 0%, #1a0e20 100%);
  border: 3px solid #2a1a30;
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px #4a3a5a, 0 0 10px rgba(0,0,0,0.5);
  animation: conf-window 12s ease-in-out infinite alternate;
}
.scn-confession .candle {
  position: absolute;
  bottom: 32%; left: 45%;
  width: 8px; height: 16px;
  background: linear-gradient(180deg, #e0c080 0%, #a07040 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 -4px 6px rgba(255,200,100,0.4);
  animation: conf-candle 4s ease-in-out infinite;
}
.scn-confession .glow {
  position: absolute;
  bottom: 28%; left: 40%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 60%);
  border-radius: 50%;
  animation: conf-glow 4s ease-in-out infinite alternate;
}
.scn-confession .figure {
  position: absolute;
  bottom: 28%; left: 44%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #0d0810 0%, #1a1020 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: conf-figure 8s ease-in-out infinite;
}
.scn-confession .shadow {
  position: absolute;
  bottom: 27%; left: 46%;
  width: 50px; height: 20px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: conf-shadow 6s ease-in-out infinite alternate;
}
.scn-confession .cross {
  position: absolute;
  top: 18%; left: 65%;
  width: 6px; height: 40px;
  background: #1a1020;
  border-radius: 2px;
  box-shadow: 2px 10px 0 #1a1020, -2px 10px 0 #1a1020;
  transform: translateX(-50%);
  animation: conf-cross 10s ease-in-out infinite alternate;
}
@keyframes conf-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px #4a3a5a, 0 0 10px rgba(0,0,0,0.5); }
  50% { opacity: 0.9; box-shadow: inset 0 0 30px #5a4a6a, 0 0 15px rgba(0,0,0,0.4); }
  100% { opacity: 0.6; box-shadow: inset 0 0 15px #3a2a4a, 0 0 8px rgba(0,0,0,0.6); }
}
@keyframes conf-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  25% { transform: scaleY(1.05) translateY(-1px); opacity: 1; }
  50% { transform: scaleY(0.95) translateY(1px); opacity: 0.8; }
  75% { transform: scaleY(1.02) translateY(-0.5px); opacity: 0.95; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.9; }
}
@keyframes conf-glow {
  0% { transform: scale(1); opacity: 0.5; box-shadow: 0 0 20px 8px rgba(255,200,100,0.1); }
  50% { transform: scale(1.08); opacity: 0.7; box-shadow: 0 0 30px 12px rgba(255,200,100,0.2); }
  100% { transform: scale(0.95); opacity: 0.4; box-shadow: 0 0 15px 5px rgba(255,200,100,0.05); }
}
@keyframes conf-figure {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(2deg) translateY(-2px); }
  60% { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes conf-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.4; }
  50% { transform: scaleX(1.1) translateX(4px); opacity: 0.6; }
  100% { transform: scaleX(0.9) translateX(-2px); opacity: 0.3; }
}
@keyframes conf-cross {
  0% { transform: translateX(-50%) rotate(0deg); opacity: 0.6; }
  50% { transform: translateX(-50%) rotate(3deg); opacity: 0.8; }
  100% { transform: translateX(-50%) rotate(-2deg); opacity: 0.5; }
}

.scn-confrontation-agnes {
  background: linear-gradient(180deg, #1e2440 0%, #2c2b4a 40%, #38325a 100%),
              radial-gradient(ellipse at 70% 60%, #3a2e5c 0%, transparent 70%);
}
.scn-confrontation-agnes .track { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3e3a 0%, #2e2624 100%); border-radius: 20% 20% 0 0; }
.scn-confrontation-agnes .rickshaw { position:absolute; bottom:15%; left:35%; width:140px; height:80px; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a22 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: skewX(-4deg); box-shadow: 0 10px 30px rgba(0,0,0,.6); }
.scn-confrontation-agnes .figure-w { position:absolute; bottom:22%; left:40%; width:28px; height:50px; background: linear-gradient(180deg, #2a223a 0%, #1a1422 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ca-fw 5s ease-in-out infinite; }
.scn-confrontation-agnes .figure-a { position:absolute; bottom:20%; left:52%; width:26px; height:48px; background: linear-gradient(180deg, #2e2640 0%, #1e1828 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ca-fa 6s ease-in-out infinite; }
.scn-confrontation-agnes .lamp { position:absolute; bottom:40%; left:46%; width:10px; height:14px; background: radial-gradient(circle, #e8c868 0%, #b88838 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 8px rgba(184,136,56,.6), 0 0 60px 18px rgba(184,136,56,.3); animation: ca-lamp 3s ease-in-out infinite alternate; }
.scn-confrontation-agnes .swirl-a { position:absolute; bottom:30%; left:20%; width:40px; height:30px; background: radial-gradient(ellipse, rgba(200,180,160,.15) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: ca-swirl-a 12s linear infinite; }
.scn-confrontation-agnes .swirl-b { position:absolute; bottom:28%; left:68%; width:50px; height:35px; background: radial-gradient(ellipse, rgba(200,180,160,.12) 0%, transparent 100%); border-radius: 50%; filter: blur(5px); animation: ca-swirl-b 15s linear infinite reverse; }
@keyframes ca-fw { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(4px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes ca-fa { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-3px) translateY(1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ca-lamp { 0% { box-shadow: 0 0 20px 6px rgba(184,136,56,.5); opacity:.8; } 50% { box-shadow: 0 0 40px 12px rgba(232,200,104,.7); opacity:1; } 100% { box-shadow: 0 0 25px 8px rgba(184,136,56,.4); opacity:.85; } }
@keyframes ca-swirl-a { 0% { transform: translateX(-20px) scale(1); } 50% { transform: translateX(10px) scale(1.2); } 100% { transform: translateX(-20px) scale(1); } }
@keyframes ca-swirl-b { 0% { transform: translateX(20px) scale(1); } 50% { transform: translateX(-10px) scale(1.3); } 100% { transform: translateX(20px) scale(1); } }

.scn-ghostly-walk {
  background: linear-gradient(180deg, #111122 0%, #1c1c34 40%, #2a2648 100%),
              radial-gradient(ellipse at 30% 20%, #1a1a30 0%, transparent 80%);
}
.scn-ghostly-walk .road { position:absolute; bottom:5%; left:0; right:0; height:40%; background: linear-gradient(180deg, #2e2c2a 0%, #1e1c1a 100%); }
.scn-ghostly-walk .phantom { position:absolute; bottom:15%; left:35%; width:30px; height:55px; background: linear-gradient(180deg, rgba(220,210,200,.3) 0%, rgba(180,170,160,.1) 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; filter: blur(2px); animation: gw-ph 8s ease-in-out infinite alternate; }
.scn-ghostly-walk .walker { position:absolute; bottom:13%; left:48%; width:28px; height:52px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gw-walk 4s ease-in-out infinite; }
.scn-ghostly-walk .mist-a { position:absolute; bottom:20%; left:10%; width:120px; height:40px; background: radial-gradient(ellipse, rgba(200,200,220,.12) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: gw-mist-a 20s linear infinite; }
.scn-ghostly-walk .mist-b { position:absolute; bottom:30%; left:60%; width:100px; height:35px; background: radial-gradient(ellipse, rgba(200,200,220,.1) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: gw-mist-b 25s linear infinite reverse; }
.scn-ghostly-walk .stone-wall { position:absolute; bottom:35%; left:0; width:200px; height:18px; background: linear-gradient(90deg, #3a3a3a 0%, #4c4c4a 50%, #3a3a3a 100%); border-radius: 2px; transform: skewX(-8deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); }
@keyframes gw-ph { 0% { opacity:.4; transform: translateX(0) translateY(0); } 50% { opacity:.6; transform: translateX(10px) translateY(-3px); } 100% { opacity:.4; transform: translateX(0) translateY(0); } }
@keyframes gw-walk { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(16px) translateY(0) rotate(2deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(32px) translateY(0) rotate(2deg); } }
@keyframes gw-mist-a { 0% { transform: translateX(-30px) scale(1); } 50% { transform: translateX(40px) scale(1.2); } 100% { transform: translateX(-30px) scale(1); } }
@keyframes gw-mist-b { 0% { transform: translateX(30px) scale(1); } 50% { transform: translateX(-20px) scale(1.3); } 100% { transform: translateX(30px) scale(1); } }

.scn-garden-party-recollection {
  background: linear-gradient(180deg, #3a3c42 0%, #4c4e54 40%, #46484a 100%),
              radial-gradient(ellipse at 50% 30%, #5a5c60 0%, transparent 80%);
}
.scn-garden-party-recollection .garden-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a5e5a 0%, #3a3e3a 100%); border-radius: 0 0 40% 40%; }
.scn-garden-party-recollection .shadow-crowd { position:absolute; bottom:20%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, rgba(30,28,26,.5) 0%, rgba(20,18,16,.3) 100%); border-radius: 30% 30% 10% 10%; filter: blur(3px); animation: gp-crowd 8s ease-in-out infinite alternate; }
.scn-garden-party-recollection .rickshaw-pass { position:absolute; bottom:18%; left:45%; width:130px; height:70px; background: linear-gradient(180deg, #4a423e 0%, #3a322e 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: skewX(-3deg); box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-garden-party-recollection .figure-mw { position:absolute; bottom:22%; left:50%; width:26px; height:50px; background: linear-gradient(180deg, #2a2840 0%, #1a1828 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gp-fig 5s ease-in-out infinite; }
.scn-garden-party-recollection .drooping-tree { position:absolute; bottom:30%; left:5%; width:160px; height:30px; background: radial-gradient(ellipse at 50% 100%, #3a3e2e 0%, transparent 100%); border-radius: 50%; transform: rotate(15deg); filter: blur(2px); animation: gp-tree 12s ease-in-out infinite alternate; }
.scn-garden-party-recollection .petal-puff { position:absolute; top:20%; left:30%; width:40px; height:40px; background: radial-gradient(circle, rgba(220,200,180,.2) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: gp-petal 15s linear infinite; }
@keyframes gp-crowd { 0% { opacity:.6; transform: translateX(0); } 50% { opacity:.8; transform: translateX(-10px); } 100% { opacity:.6; transform: translateX(0); } }
@keyframes gp-fig { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(-5px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes gp-tree { 0% { transform: rotate(13deg) scale(1); } 50% { transform: rotate(17deg) scale(1.02); } 100% { transform: rotate(13deg) scale(1); } }
@keyframes gp-petal { 0% { transform: translateY(0) translateX(0) rotate(0); } 50% { transform: translateY(-20px) translateX(15px) rotate(180deg); } 100% { transform: translateY(0) translateX(0) rotate(360deg); } }

.scn-meeting-kitty {
  background: linear-gradient(180deg, #10101a 0%, #1c1c30 40%, #2a2a40 100%),
              radial-gradient(ellipse at 60% 80%, #1a1a2e 0%, transparent 70%);
}
.scn-meeting-kitty .road-home { position:absolute; bottom:8%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2c2a28 0%, #1e1c1a 100%); }
.scn-meeting-kitty .figure-k { position:absolute; bottom:15%; left:38%; width:24px; height:46px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mk-fk 6s ease-in-out infinite; }
.scn-meeting-kitty .figure-m { position:absolute; bottom:17%; left:52%; width:26px; height:48px; background: linear-gradient(180deg, #2e2e44 0%, #1e1e2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mk-fm 7s ease-in-out infinite alternate; }
.scn-meeting-kitty .shadow-streak { position:absolute; bottom:20%; left:30%; width:180px; height:8px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.4) 50%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: mk-streak 10s linear infinite; }
.scn-meeting-kitty .distant-lamp { position:absolute; bottom:40%; right:15%; width:8px; height:12px; background: radial-gradient(circle, #b8a870 0%, #8a7a50 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 4px rgba(138,122,80,.5); animation: mk-lamp 4s ease-in-out infinite alternate; }
.scn-meeting-kitty .cloud-veil { position:absolute; top:10%; left:20%; right:10%; height:30%; background: linear-gradient(180deg, rgba(40,40,60,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: mk-veil 20s linear infinite; }
@keyframes mk-fk { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(6px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0); } }
@keyframes mk-fm { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(-4px) translateY(1px) rotate(0); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes mk-streak { 0% { transform: translateX(-30px); } 50% { transform: translateX(30px); } 100% { transform: translateX(-30px); } }
@keyframes mk-lamp { 0% { opacity:.5; box-shadow: 0 0 10px 2px rgba(138,122,80,.3); } 50% { opacity:.9; box-shadow: 0 0 30px 8px rgba(184,168,112,.6); } 100% { opacity:.5; box-shadow: 0 0 10px 2px rgba(138,122,80,.3); } }
@keyframes mk-veil { 0% { opacity:.3; transform: translateX(0); } 50% { opacity:.5; transform: translateX(10px); } 100% { opacity:.3; transform: translateX(0); } }

.scn-hotel-room-analysis {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #1e1e36 100%),
    radial-gradient(ellipse at 50% 70%, #2a2a44 0%, transparent 60%);
}
.scn-hotel-room-analysis .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a44 0%, #1e1e36 100%);
  box-shadow: inset 0 0 120px rgba(0,0,0,.6);
}
.scn-hotel-room-analysis .desk {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 22%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-hotel-room-analysis .lamp {
  position: absolute; bottom: 38%; left: 45%; width: 14px; height: 20px;
  background: radial-gradient(circle, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 -20px 40px 10px rgba(200,180,120,.3);
  animation: hra-lamp 3s ease-in-out infinite alternate;
}
.scn-hotel-room-analysis .figure {
  position: absolute; bottom: 20%; left: 58%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hra-fig 5s ease-in-out infinite;
}
.scn-hotel-room-analysis .shadow-fig {
  position: absolute; bottom: 20%; left: 60%; width: 40px; height: 12px;
  background: rgba(0,0,0,.25);
  border-radius: 50%;
  filter: blur(4px);
  animation: hra-shad 5s ease-in-out infinite;
}
.scn-hotel-room-analysis .paper {
  position: absolute; bottom: 32%; left: 42%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #c8b89a 0%, #a89878 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  transform: rotate(-8deg);
  animation: hra-paper 4s ease-in-out infinite alternate;
}
.scn-hotel-room-analysis .curtain {
  position: absolute; top: 5%; right: 10%; width: 30%; height: 60%;
  background: linear-gradient(90deg, transparent 0%, #1a1a2e 30%, #2a2a3e 60%, transparent 100%);
  border-radius: 0 0 60% 0;
  filter: blur(2px);
  animation: hra-curtain 8s ease-in-out infinite alternate;
}
@keyframes hra-lamp {
  0% { opacity: .6; box-shadow: 0 -10px 20px 5px rgba(200,180,120,.2); }
  50% { opacity: 1; box-shadow: 0 -30px 60px 15px rgba(200,180,120,.5); }
  100% { opacity: .7; box-shadow: 0 -15px 30px 8px rgba(200,180,120,.3); }
}
@keyframes hra-fig {
  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 hra-shad {
  0% { transform: scale(1); }
  50% { transform: scale(1.1); opacity: .3; }
  100% { transform: scale(1); }
}
@keyframes hra-paper {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes hra-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}

.scn-reasoning-with-ghost {
  background: 
    linear-gradient(180deg, #0e0e1a 0%, #1a1a30 40%, #121220 100%),
    radial-gradient(ellipse at 60% 80%, #1a1a30 0%, transparent 70%);
}
.scn-reasoning-with-ghost .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-reasoning-with-ghost .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.4);
}
.scn-reasoning-with-ghost .candle {
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c8a86a 0%, #8a6a3a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 -30px 60px 20px rgba(200,168,106,.3);
  animation: rwg-candle 4s ease-in-out infinite alternate;
}
.scn-reasoning-with-ghost .figure {
  position: absolute; bottom: 18%; left: 28%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rwg-fig 6s ease-in-out infinite;
}
.scn-reasoning-with-ghost .ghost {
  position: absolute; bottom: 25%; right: 30%; width: 30px; height: 70px;
  background: radial-gradient(circle at 50% 30%, rgba(220,220,255,.2) 0%, rgba(220,220,255,.1) 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  transform: scale(0.9);
  animation: rwg-ghost 7s ease-in-out infinite alternate;
}
.scn-reasoning-with-ghost .shadow-ghost {
  position: absolute; bottom: 20%; right: 28%; width: 50px; height: 15px;
  background: rgba(100,100,140,.15);
  border-radius: 50%;
  filter: blur(6px);
  animation: rwg-shade 7s ease-in-out infinite;
}
.scn-reasoning-with-ghost .motes {
  position: absolute; inset: 0;
  background: radial-gradient(2px 2px at 20% 40%, rgba(255,255,255,.08) 0%, transparent 100%);
  background-size: 40px 40px;
  animation: rwg-motes 12s linear infinite;
}
@keyframes rwg-candle {
  0% { opacity: .7; box-shadow: 0 -20px 40px 10px rgba(200,168,106,.2); }
  50% { opacity: 1; box-shadow: 0 -40px 80px 25px rgba(200,168,106,.5); }
  100% { opacity: .8; box-shadow: 0 -25px 50px 15px rgba(200,168,106,.3); }
}
@keyframes rwg-fig {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rwg-ghost {
  0% { transform: scale(0.9) translateY(0); opacity: .3; }
  50% { transform: scale(1) translateY(-4px); opacity: .6; }
  100% { transform: scale(0.95) translateY(2px); opacity: .4; }
}
@keyframes rwg-shade {
  0% { transform: scale(1); opacity: .2; }
  50% { transform: scale(1.3); opacity: .5; }
  100% { transform: scale(1); opacity: .2; }
}
@keyframes rwg-motes {
  0% { background-position: 0 0; }
  100% { background-position: 40px 40px; }
}

.scn-broad-daylight-ghost {
  background: 
    linear-gradient(180deg, #6b7a8a 0%, #5a6a7a 30%, #4a5a6a 60%, #3a4a5a 100%),
    radial-gradient(ellipse at 50% 0%, #7a8a9a 0%, transparent 60%);
}
.scn-broad-daylight-ghost .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  animation: bdg-sky 20s ease-in-out infinite alternate;
}
.scn-broad-daylight-ghost .wall {
  position: absolute; bottom: 30%; left: 10%; right: 40%; height: 50%;
  background: linear-gradient(180deg, #8a9aa8 0%, #6a7a8a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,.2);
}
.scn-broad-daylight-ghost .figure {
  position: absolute; bottom: 15%; left: 15%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bdg-fig 8s ease-in-out infinite;
}
.scn-broad-daylight-ghost .face {
  position: absolute; bottom: 55%; left: 35%; width: 20px; height: 25px;
  background: radial-gradient(circle, rgba(200,220,240,.4) 0%, rgba(200,220,240,.1) 70%);
  border-radius: 50%;
  filter: blur(1px);
  box-shadow: 0 0 30px 10px rgba(200,220,240,.2);
  animation: bdg-face 3s ease-in-out infinite alternate;
}
.scn-broad-daylight-ghost .shadow-wall {
  position: absolute; bottom: 30%; left: 8%; width: 35%; height: 50%;
  background: linear-gradient(90deg, rgba(0,0,0,.15) 0%, transparent 100%);
  border-radius: 4px 0 0 0;
  animation: bdg-shadow 6s ease-in-out infinite alternate;
}
.scn-broad-daylight-ghost .crowd-blur {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,.05) 0px, rgba(0,0,0,.05) 8px, transparent 8px, transparent 20px);
  filter: blur(2px);
  animation: bdg-crowd 15s linear infinite;
}
.scn-broad-daylight-ghost .mist {
  position: absolute; top: 10%; left: 50%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(240,240,255,.1) 0%, transparent 70%);
  filter: blur(10px);
  transform: translateX(-50%);
  animation: bdg-mist 25s ease-in-out infinite alternate;
}
@keyframes bdg-sky {
  0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; }
}
@keyframes bdg-fig {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bdg-face {
  0% { opacity: .2; transform: scale(0.8); }
  50% { opacity: .6; transform: scale(1.1); }
  100% { opacity: .3; transform: scale(0.9); }
}
@keyframes bdg-shadow {
  0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .4; }
}
@keyframes bdg-crowd {
  0% { background-position: 0 0; } 100% { background-position: 40px 0; }
}
@keyframes bdg-mist {
  0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-40%) scale(1.2); } 100% { transform: translateX(-60%) scale(0.9); }
}

.scn-treadmill-thought {
  background: 
    linear-gradient(180deg, #12121c 0%, #1e1e2e 40%, #0e0e18 100%),
    radial-gradient(ellipse at 50% 60%, #1e1e2e 0%, transparent 80%);
}
.scn-treadmill-thought .floor-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
}
.scn-treadmill-thought .wheel {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 100px;
  margin-left: -50px;
  background: radial-gradient(circle, #2a2a3e 0%, #1a1a2e 60%, #0a0a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 5px rgba(0,0,0,.5);
  animation: tmt-wheel 4s linear infinite;
}
.scn-treadmill-thought .figure {
  position: absolute; bottom: 38%; left: 50%; width: 24px; height: 45px;
  margin-left: -12px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tmt-fig 1s ease-in-out infinite alternate;
}
.scn-treadmill-thought .thought-ring {
  position: absolute; top: 20%; left: 50%; width: 80px; height: 80px;
  margin-left: -40px;
  background: transparent;
  border: 2px solid rgba(100,120,160,.15);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(100,120,160,.1);
  animation: tmt-ring 8s linear infinite;
}
.scn-treadmill-thought .spoke-1,
.scn-treadmill-thought .spoke-2,
.scn-treadmill-thought .spoke-3,
.scn-treadmill-thought .spoke-4 {
  position: absolute; top: 50%; left: 50%; width: 2px; height: 50px;
  background: rgba(100,120,160,.1);
  transform-origin: 50% 0;
  animation: tmt-spoke 3s ease-in-out infinite;
}
.scn-treadmill-thought .spoke-1 { transform: rotate(0deg); animation-delay: 0s; }
.scn-treadmill-thought .spoke-2 { transform: rotate(45deg); animation-delay: 0.75s; }
.scn-treadmill-thought .spoke-3 { transform: rotate(90deg); animation-delay: 1.5s; }
.scn-treadmill-thought .spoke-4 { transform: rotate(135deg); animation-delay: 2.25s; }
.scn-treadmill-thought .spoke-1,
.scn-treadmill-thought .spoke-2,
.scn-treadmill-thought .spoke-3,
.scn-treadmill-thought .spoke-4 {
  background: linear-gradient(180deg, rgba(100,120,160,.15) 0%, transparent 100%);
}
@keyframes tmt-wheel {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}
@keyframes tmt-fig {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(3deg); }
}
@keyframes tmt-ring {
  0% { transform: rotate(0deg); opacity: .3; }
  50% { transform: rotate(180deg); opacity: .5; }
  100% { transform: rotate(360deg); opacity: .3; }
}
@keyframes tmt-spoke {
  0% { opacity: .2; transform-origin: 50% 0; transform: scaleY(1); }
  50% { opacity: .5; transform-origin: 50% 0; transform: scaleY(1.3); }
  100% { opacity: .2; transform-origin: 50% 0; transform: scaleY(1); }
}

.scn-opening-confession {
  background:
    radial-gradient(circle at 60% 50%, #2a1e1e 0%, #0f0b0b 70%),
    linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
}
.scn-opening-confession .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(135deg, #2c2220 0%, #1a1410 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: oc-wall 12s ease-in-out infinite alternate;
}
.scn-opening-confession .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-opening-confession .lamp-glow {
  position: absolute;
  bottom: 40%;
  left: 25%;
  width: 120px;
  height: 100px;
  background: radial-gradient(circle, rgba(220,180,100,0.3) 0%, transparent 70%);
  filter: blur(15px);
  animation: oc-glow 3s ease-in-out infinite alternate;
}
.scn-opening-confession .lamp-body {
  position: absolute;
  bottom: 45%;
  left: 26%;
  width: 18px;
  height: 30px;
  background: linear-gradient(180deg, #a08060 0%, #6a4e3a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 20px 4px rgba(220,180,100,0.4);
}
.scn-opening-confession .desk {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 200px;
  height: 25px;
  background: linear-gradient(180deg, #4a3428 0%, #2a1e16 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-opening-confession .figure {
  position: absolute;
  bottom: 32%;
  left: 45%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #2a2220 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oc-figure 5s ease-in-out infinite alternate;
}
.scn-opening-confession .shadow {
  position: absolute;
  bottom: 28%;
  left: 42%;
  width: 50px;
  height: 15px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: oc-shadow 5s ease-in-out infinite alternate;
}
@keyframes oc-wall {
  0% { opacity: 0.7; filter: brightness(0.9); }
  50% { opacity: 0.9; filter: brightness(1.1); }
  100% { opacity: 0.8; filter: brightness(0.95); }
}
@keyframes oc-glow {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes oc-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes oc-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.6; }
  100% { transform: scaleX(0.95); opacity: 0.3; }
}

.scn-doctor-delusions {
  background:
    radial-gradient(ellipse at 30% 50%, #1a1a2a 0%, #0f0f1a 70%),
    linear-gradient(180deg, #12121a 0%, #08080f 100%);
}
.scn-doctor-delusions .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #161620 0%, #0a0a12 100%);
  animation: dd-bg 15s ease-in-out infinite alternate;
}
.scn-doctor-delusions .chair {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #3a2a24 0%, #1e1410 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
}
.scn-doctor-delusions .sitter {
  position: absolute;
  bottom: 35%;
  left: 32%;
  width: 28px;
  height: 50px;
  background: linear-gradient(180deg, #2a2220 0%, #14100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dd-sitter 6s ease-in-out infinite alternate;
}
.scn-doctor-delusions .table-lamp {
  position: absolute;
  bottom: 40%;
  left: 55%;
  width: 14px;
  height: 28px;
  background: linear-gradient(180deg, #b09070 0%, #705a48 100%);
  border-radius: 4px 4px 20% 20%;
  box-shadow: -8px 0 20px 6px rgba(220,190,130,0.3);
  animation: dd-lamp 4s ease-in-out infinite alternate;
}
.scn-doctor-delusions .papers {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 50px;
  height: 10px;
  background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: dd-papers 8s ease-in-out infinite alternate;
}
.scn-doctor-delusions .clock {
  position: absolute;
  top: 20%;
  right: 20%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, #c0b090 20%, #8a7a6a 60%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,0.4);
  animation: dd-clock 2s ease-in-out infinite;
}
.scn-doctor-delusions .window {
  position: absolute;
  top: 15%;
  left: 15%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1a26 100%);
  border: 3px solid #2a1e1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: dd-window 10s ease-in-out infinite alternate;
}
@keyframes dd-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes dd-sitter {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes dd-lamp {
  0% { opacity: 0.6; box-shadow: -4px 0 12px 4px rgba(220,190,130,0.2); }
  50% { opacity: 1; box-shadow: -10px 0 30px 8px rgba(220,190,130,0.5); }
  100% { opacity: 0.7; box-shadow: -6px 0 18px 5px rgba(220,190,130,0.3); }
}
@keyframes dd-papers {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-2px); }
  100% { transform: rotate(-7deg) translateY(1px); }
}
@keyframes dd-clock {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes dd-window {
  0% { opacity: 0.5; filter: brightness(0.7); }
  50% { opacity: 0.8; filter: brightness(1.0); }
  100% { opacity: 0.6; filter: brightness(0.8); }
}

.scn-voyage-romance {
  background:
    radial-gradient(circle at 70% 30%, #f5e6c8 0%, #b8d4e0 50%, #6a8e9a 100%),
    linear-gradient(180deg, #c4dce8 0%, #7a9aaa 100%);
}
.scn-voyage-romance .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d4eaf0 0%, #a0c4d0 100%);
  animation: vr-sky 20s ease-in-out infinite alternate;
}
.scn-voyage-romance .ocean {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 50%, #1a3a4a 100%);
  animation: vr-ocean 8s ease-in-out infinite alternate;
}
.scn-voyage-romance .sun-glint {
  position: absolute;
  top: 20%;
  right: 15%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, rgba(255,230,160,0.8) 0%, rgba(255,200,100,0.2) 60%, transparent 80%);
  border-radius: 50%;
  animation: vr-glint 4s ease-in-out infinite alternate;
}
.scn-voyage-romance .ship-deck {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 200px;
  height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4030 100%);
  border-radius: 0% 0% 10% 10% / 0% 0% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: vr-deck 6s ease-in-out infinite alternate;
}
.scn-voyage-romance .mast {
  position: absolute;
  bottom: 45%;
  left: 40%;
  width: 8px;
  height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e16 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: vr-mast 6s ease-in-out infinite alternate;
}
.scn-voyage-romance .sail {
  position: absolute;
  bottom: 65%;
  left: 36%;
  width: 60px;
  height: 80px;
  background: radial-gradient(ellipse at 50% 20%, #f0e6d0 0%, #c0a890 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.2);
  animation: vr-sail 7s ease-in-out infinite alternate;
}
.scn-voyage-romance .figure-left {
  position: absolute;
  bottom: 26%;
  left: 35%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #2a2230 0%, #14101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vr-figure 5s ease-in-out infinite alternate;
}
.scn-voyage-romance .figure-right {
  position: absolute;
  bottom: 26%;
  left: 48%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vr-figure 5s ease-in-out infinite alternate-reverse;
}
.scn-voyage-romance .seagull {
  position: absolute;
  top: 12%;
  left: 20%;
  width: 20px;
  height: 8px;
  background: #2a2a3a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(-10deg);
  animation: vr-gull 25s linear infinite;
}
@keyframes vr-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes vr-ocean {
  0% { transform: translateY(0); background-position: 0% 0%; }
  50% { transform: translateY(-4px); background-position: 50% 0%; }
  100% { transform: translateY(0); background-position: 100% 0%; }
}
@keyframes vr-glint {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes vr-deck {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-0.5deg); }
}
@keyframes vr-mast {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes vr-sail {
  0% { transform: scaleX(0.95) translateX(0); }
  50% { transform: scaleX(1.05) translateX(3px); }
  100% { transform: scaleX(0.98) translateX(0); }
}
@keyframes vr-figure {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(1px); }
}
@keyframes vr-gull {
  0% { transform: translateX(-50px) rotate(-10deg); }
  50% { transform: translateX(40vw) rotate(5deg); }
  100% { transform: translateX(120vw) rotate(-5deg); }
}

.scn-bombay-departure {
  background:
    radial-gradient(ellipse at 50% 30%, #d4e8f0 0%, #8ab0c0 60%),
    linear-gradient(180deg, #b8d0dc 0%, #609098 100%);
}
.scn-bombay-departure .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c0dce8 0%, #90b8c8 100%);
  animation: bd-sky 20s ease-in-out infinite alternate;
}
.scn-bombay-departure .sea {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #4080a0 0%, #206080 50%, #104050 100%);
  animation: bd-sea 10s ease-in-out infinite alternate;
}
.scn-bombay-departure .wharf {
  position: absolute;
  bottom: 30%;
  left: 5%;
  width: 120px;
  height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-bombay-departure .ship {
  position: absolute;
  bottom: 32%;
  right: 15%;
  width: 130px;
  height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3222 100%);
  border-radius: 0% 0% 20% 20% / 0% 0% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: bd-ship 8s ease-in-out infinite alternate;
}
.scn-bombay-departure .smoke {
  position: absolute;
  top: 25%;
  right: 22%;
  width: 40px;
  height: 60px;
  background: radial-gradient(circle at 50% 50%, rgba(200,190,180,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: bd-smoke 12s ease-in-out infinite alternate;
}
.scn-bombay-departure .figure {
  position: absolute;
  bottom: 30%;
  left: 12%;
  width: 18px;
  height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #14141e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bd-figure 6s ease-in-out infinite alternate;
}
.scn-bombay-departure .flag {
  position: absolute;
  top: 28%;
  right: 18%;
  width: 20px;
  height: 12px;
  background: linear-gradient(180deg, #a04630 0%, #702220 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: bd-flag 3s ease-in-out infinite alternate;
}
@keyframes bd-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes bd-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes bd-ship {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes bd-smoke {
  0% { transform: translateY(0) scale(0.9); opacity: 0.3; }
  50% { transform: translateY(-10px) scale(1.2); opacity: 0.6; }
  100% { transform: translateY(-5px) scale(1); opacity: 0.4; }
}
@keyframes bd-figure {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes bd-flag {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-5deg); }
}

/* recovery-under-heatherlegh */
.scn-recovery-under-heatherlegh {
  background:
    linear-gradient(135deg, #f5e6d0 0%, #e8d5b8 40%, #d4c0a0 100%),
    radial-gradient(circle at 70% 30%, #fff8e7 0%, transparent 50%);
}
.scn-recovery-under-heatherlegh .room { position:absolute; inset:0; background:linear-gradient(180deg, #f0e0cc 0%, #d8c4a8 100%); }
.scn-recovery-under-heatherlegh .window { position:absolute; top:10%; left:65%; width:40%; height:50%; background:linear-gradient(180deg, #c8e0f0 0%, #a8c8e0 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 0 40px rgba(255,255,240,0.3); animation:rh-window 15s ease-in-out infinite alternate; }
.scn-recovery-under-heatherlegh .sunbeam { position:absolute; top:0; left:60%; width:30%; height:80%; background:linear-gradient(135deg, rgba(255,255,220,0.4), rgba(255,255,200,0.1)); clip-path:polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%); filter:blur(12px); animation:rh-sunbeam 20s ease-in-out infinite alternate; }
.scn-recovery-under-heatherlegh .bed { position:absolute; bottom:18%; left:10%; width:55%; height:35%; background:linear-gradient(180deg, #c8b098 0%, #a08068 100%); border-radius:8% 8% 4% 4%; box-shadow:0 6px 20px rgba(0,0,0,0.2); }
.scn-recovery-under-heatherlegh .pillow { position:absolute; bottom:38%; left:12%; width:22%; height:14%; background:linear-gradient(180deg, #f0e8dc 0%, #e0d0c0 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:inset 0 2px 8px rgba(0,0,0,0.05); animation:rh-pillow 8s ease-in-out infinite alternate; }
.scn-recovery-under-heatherlegh .patient { position:absolute; bottom:28%; left:22%; width:20%; height:25%; background:linear-gradient(180deg, #c8b8a8 0%, #a89880 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:rh-breath 5s ease-in-out infinite; }
.scn-recovery-under-heatherlegh .doctor { position:absolute; bottom:22%; right:8%; width:14%; height:40%; background:linear-gradient(180deg, #b0a090 0%, #908070 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:rh-attend 12s ease-in-out infinite; }
.scn-recovery-under-heatherlegh .glow { position:absolute; top:8%; left:68%; width:25%; height:30%; background:radial-gradient(circle, rgba(255,250,230,0.6), transparent); filter:blur(30px); animation:rh-glow-pulse 6s ease-in-out infinite alternate; }
@keyframes rh-window { 0% { opacity:0.8; transform:scaleX(1); } 50% { opacity:1; transform:scaleX(1.02); } 100% { opacity:0.9; transform:scaleX(0.98); } }
@keyframes rh-sunbeam { 0% { transform:translateX(-5%) skewX(-2deg); opacity:0.5; } 50% { transform:translateX(5%) skewX(2deg); opacity:0.7; } 100% { transform:translateX(-3%) skewX(-1deg); opacity:0.55; } }
@keyframes rh-pillow { 0%,100% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-3px) scaleY(1.05); } }
@keyframes rh-breath { 0%,100% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.03); } }
@keyframes rh-attend { 0%,100% { transform:translateX(0) rotate(0); } 25% { transform:translateX(4px) rotate(2deg); } 75% { transform:translateX(-4px) rotate(-2deg); } }
@keyframes rh-glow-pulse { 0% { opacity:0.4; transform:scale(0.9); } 50% { opacity:0.7; transform:scale(1.1); } 100% { opacity:0.5; transform:scale(1); } }

/* heatherlegh-treatment-details */
.scn-heatherlegh-treatment-details {
  background:
    linear-gradient(180deg, #3a3028 0%, #4a3f35 40%, #2d241c 100%),
    radial-gradient(circle at 40% 50%, #5a4e44 0%, transparent 60%);
}
.scn-heatherlegh-treatment-details .bg-dim { position:absolute; inset:0; background:linear-gradient(180deg, #4a3f35 0%, #2d241c 100%); }
.scn-heatherlegh-treatment-details .lamp { position:absolute; top:8%; left:45%; width:10%; height:25%; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 40% 10% 10%; transform-origin:bottom center; animation:td-lamp-swing 6s ease-in-out infinite alternate; }
.scn-heatherlegh-treatment-details .lamp-light { position:absolute; top:15%; left:42%; width:16%; height:50%; background:radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.5) 0%, rgba(255,200,100,0.1) 60%, transparent); filter:blur(20px); animation:td-lamp-flicker 4s ease-in-out infinite alternate; }
.scn-heatherlegh-treatment-details .doctor { position:absolute; bottom:15%; left:20%; width:20%; height:45%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:td-doctor 3s ease-in-out infinite; }
.scn-heatherlegh-treatment-details .patient-foot { position:absolute; bottom:18%; left:50%; width:12%; height:20%; background:linear-gradient(180deg, #d8c8b8 0%, #b8a898 100%); border-radius:60% 60% 40% 40% / 80% 80% 40% 40%; transform:rotate(15deg); animation:td-foot-tap 2s ease-in-out infinite; }
.scn-heatherlegh-treatment-details .bottle { position:absolute; top:40%; right:25%; width:8%; height:30%; background:linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius:30% 30% 20% 20%; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); transform-origin:bottom center; animation:td-bottle-wobble 8s ease-in-out infinite; }
.scn-heatherlegh-treatment-details .shadow { 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.4) 100%); animation:td-shadow 7s ease-in-out infinite alternate; }
@keyframes td-lamp-swing { 0% { transform:rotate(-5deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-4deg); } }
@keyframes td-lamp-flicker { 0% { opacity:0.4; transform:scaleY(0.9); } 30% { opacity:0.6; transform:scaleY(1.1); } 70% { opacity:0.5; transform:scaleY(0.95); } 100% { opacity:0.7; transform:scaleY(1.05); } }
@keyframes td-doctor { 0%,100% { transform:translateX(0) rotate(0); } 25% { transform:translateX(6px) rotate(3deg); } 75% { transform:translateX(-4px) rotate(-2deg); } }
@keyframes td-foot-tap { 0%,100% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(18deg) translateY(-3px); } }
@keyframes td-bottle-wobble { 0%,100% { transform:rotate(0); } 33% { transform:rotate(5deg); } 66% { transform:rotate(-5deg); } }
@keyframes td-shadow { 0% { opacity:0.4; transform:scaleY(1); } 50% { opacity:0.6; transform:scaleY(1.1); } 100% { opacity:0.3; transform:scaleY(0.9); } }

/* heatherleghs-parting-words */
.scn-heatherleghs-parting-words {
  background:
    linear-gradient(135deg, #f5e0c0 0%, #e8d0a8 50%, #d4b888 100%),
    radial-gradient(circle at 30% 60%, #fff0d0 0%, transparent 70%);
}
.scn-heatherleghs-parting-words .bg-warm { position:absolute; inset:0; background:linear-gradient(180deg, #f0dcc0 0%, #dcc4a0 100%); }
.scn-heatherleghs-parting-words .doorway { position:absolute; bottom:0; left:35%; width:30%; height:80%; background:linear-gradient(180deg, #704020 0%, #502810 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 0 40px rgba(0,0,0,0.3); }
.scn-heatherleghs-parting-words .doc-figure { position:absolute; bottom:5%; left:58%; width:16%; height:50%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pw-doc 10s ease-in-out infinite; }
.scn-heatherleghs-parting-words .pat-figure { position:absolute; bottom:5%; left:30%; width:16%; height:50%; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:pw-pat 10s ease-in-out infinite; }
.scn-heatherleghs-parting-words .hands { position:absolute; bottom:30%; left:42%; width:12%; height:10%; background:linear-gradient(180deg, #d0b8a0 0%, #b8a090 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:center; animation:pw-handshake 6s ease-in-out infinite; }
.scn-heatherleghs-parting-words .halo { position:absolute; top:10%; left:40%; width:20%; height:30%; background:radial-gradient(circle, rgba(255,220,160,0.5) 0%, transparent); filter:blur(30px); animation:pw-glow 8s ease-in-out infinite alternate; }
@keyframes pw-doc { 0%,100% { transform:translateX(0) rotate(0); } 25% { transform:translateX(-5px) rotate(2deg); } 75% { transform:translateX(3px) rotate(-1deg); } }
@keyframes pw-pat { 0%,100% { transform:translateX(0) rotate(0); } 25% { transform:translateX(5px) rotate(-2deg); } 75% { transform:translateX(-3px) rotate(1deg); } }
@keyframes pw-handshake { 0%,100% { transform:scaleX(1); } 25% { transform:scaleX(1.05); } 50% { transform:scaleY(1.05); } 75% { transform:scaleX(0.95); } }
@keyframes pw-glow { 0% { opacity:0.4; transform:scale(0.9); } 50% { opacity:0.7; transform:scale(1.2); } 100% { opacity:0.5; transform:scale(1); } }

/* heatherleghs-challenge */
.scn-heatherleghs-challenge {
  background:
    linear-gradient(135deg, #d0c0a8 0%, #b8a890 50%, #a08870 100%),
    radial-gradient(circle at 50% 30%, #f0e8d0 0%, transparent 60%);
}
.scn-heatherleghs-challenge .bg-tense { position:absolute; inset:0; background:linear-gradient(180deg, #c8b8a0 0%, #a08870 100%); }
.scn-heatherleghs-challenge .desk { position:absolute; bottom:20%; left:25%; width:50%; height:15%; background:linear-gradient(180deg, #806050 0%, #604030 100%); border-radius:4% 4% 0 0; box-shadow:0 6px 20px rgba(0,0,0,0.4); }
.scn-heatherleghs-challenge .doc-silhouette { position:absolute; bottom:8%; left:60%; width:18%; height:50%; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ch-doc 4s ease-in-out infinite; }
.scn-heatherleghs-challenge .pat-silhouette { position:absolute; bottom:8%; left:22%; width:18%; 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:ch-pat 3.5s ease-in-out infinite; }
.scn-heatherleghs-challenge .sharp-light { position:absolute; top:10%; left:40%; width:20%; height:60%; background:linear-gradient(180deg, rgba(255,255,220,0.4) 0%, transparent); clip-path:polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); filter:blur(4px); animation:ch-light 5s ease-in-out infinite alternate; }
.scn-heatherleghs-challenge .shadow { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%); animation:ch-shadows 6s ease-in-out infinite alternate; }
.scn-heatherleghs-challenge .glint { position:absolute; top:35%; left:55%; width:4%; height:4%; background:radial-gradient(circle, #fff 0%, #ffd 60%, transparent); border-radius:50%; box-shadow:0 0 12px 4px rgba(255,255,200,0.6); animation:ch-glint 3s ease-in-out infinite; }
.scn-heatherleghs-challenge .vibration { position:absolute; inset:0; background:repeating-linear-gradient(0deg, rgba(0,0,0,0.02) 0px, rgba(0,0,0,0.02) 2px, transparent 2px, transparent 4px); animation:ch-vibrate 0.5s infinite; }
@keyframes ch-doc { 0%,100% { transform:translateX(0) rotate(0) scaleY(1); } 25% { transform:translateX(-3px) rotate(2deg) scaleY(1.02); } 75% { transform:translateX(2px) rotate(-1deg) scaleY(0.98); } }
@keyframes ch-pat { 0%,100% { transform:translateX(0) rotate(0) scaleY(1); } 25% { transform:translateX(3px) rotate(-2deg) scaleY(0.98); } 75% { transform:translateX(-2px) rotate(1deg) scaleY(1.02); } }
@keyframes ch-light { 0% { opacity:0.5; transform:scaleX(1); clip-path:polygon(38% 0%, 62% 0%, 82% 100%, 18% 100%); } 50% { opacity:0.8; transform:scaleX(1.05); clip-path:polygon(35% 0%, 65% 0%, 85% 100%, 15% 100%); } 100% { opacity:0.6; transform:scaleX(0.95); clip-path:polygon(42% 0%, 58% 0%, 78% 100%, 22% 100%); } }
@keyframes ch-shadows { 0% { opacity:0.3; transform:scaleY(1); } 50% { opacity:0.5; transform:scaleY(1.1); } 100% { opacity:0.4; transform:scaleY(0.9); } }
@keyframes ch-glint { 0%,100% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.5); } }
@keyframes ch-vibrate { 0% { transform:translate(0,0); } 25% { transform:translate(-1px,1px); } 50% { transform:translate(1px,-1px); } 75% { transform:translate(-1px,-1px); } 100% { transform:translate(0,0); } }

/* one block per scene id. Append to style.css. */

.scn-jack-drags-kitty {
  background: linear-gradient(180deg, #e6d8b5 0%, #c2a882 50%, #8a6e4a 100%),
              radial-gradient(ellipse at 50% 30%, #f2e4c8 0%, transparent 60%);
}
.scn-jack-drags-kitty .room-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #b8a080 0%, #8a7040 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.25); animation: jk-wall 20s ease-in-out infinite;
}
.scn-jack-drags-kitty .window {
  position:absolute; top:8%; left:30%; width:140px; height:200px;
  background: linear-gradient(180deg, #b0d0e0 0%, #80a8c0 100%);
  border: 8px solid #5a3e24; border-radius:4px;
  box-shadow: 0 0 40px rgba(180,210,230,0.5);
  animation: jk-window 6s ease-in-out infinite alternate;
}
.scn-jack-drags-kitty .window-light {
  position:absolute; top:10%; left:33%; width:120px; height:180px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,220,240,0.6), transparent 70%);
  animation: jk-windowlight 4s ease-in-out infinite alternate;
}
.scn-jack-drags-kitty .table {
  position:absolute; bottom:20%; left:45%; width:80px; height:14px;
  background: linear-gradient(180deg, #6a4a2a, #3a2a1a); border-radius:2px;
  transform: skewX(-10deg); animation: jk-table 12s ease-in-out infinite;
}
.scn-jack-drags-kitty .figure-jack {
  position:absolute; bottom:8%; left:35%; width:30px; height:55px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a100a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg); animation: jk-jack 3s ease-in-out infinite alternate;
}
.scn-jack-drags-kitty .figure-kitty {
  position:absolute; bottom:10%; left:48%; width:26px; height:50px;
  background: linear-gradient(180deg, #403020 0%, #281a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg); animation: jk-kitty 3.5s ease-in-out infinite alternate;
}
.scn-jack-drags-kitty .shadow {
  position:absolute; bottom:0; left:20%; width:200px; height:30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3), transparent);
  animation: jk-shadow 8s ease-in-out infinite;
}
.scn-jack-drags-kitty .dust-mote {
  position:absolute; top:20%; right:20%; width:3px; height:3px;
  background: rgba(200,180,140,0.6); border-radius:50%;
  animation: jk-dust 15s linear infinite;
}
@keyframes jk-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.92; } }
@keyframes jk-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes jk-windowlight { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes jk-table { 0%,100% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-10deg) translateY(-2px); } }
@keyframes jk-jack { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes jk-kitty { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(-2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes jk-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.1); opacity:0.5; } 100% { transform: scaleX(1); opacity:0.3; } }
@keyframes jk-dust { 0% { transform: translate(0,0) scale(1); opacity:0; } 10% { opacity:0.6; } 90% { opacity:0.4; } 100% { transform: translate(-40px,20px) scale(0.5); opacity:0; } }

.scn-kitty-learns-truth {
  background: linear-gradient(180deg, #ffe8c8 0%, #f0d4a8 40%, #d4b080 100%),
              radial-gradient(ellipse at 50% 100%, #f4d8a8 0%, transparent 70%);
}
.scn-kitty-learns-truth .sky-hot {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffddb4 0%, #f0c898 100%);
  animation: kt-sky 12s ease-in-out infinite alternate;
}
.scn-kitty-learns-truth .ground {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #c8a06e 0%, #a07848 100%);
  border-radius: 60% 40% 0 0 / 20% 30% 0 0;
}
.scn-kitty-learns-truth .rickshaw-body {
  position:absolute; bottom:20%; left:40%; width:120px; height:80px;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2e1a 50%, #3a2010 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: kt-rickshaw 8s ease-in-out infinite;
}
.scn-kitty-learns-truth .rickshaw-wheel {
  position:absolute; bottom:5%; left:38%; width:40px; height:40px;
  border: 4px solid #2a1a0a; border-radius:50%;
  background: radial-gradient(circle, #4a3a2a 0%, #1a1008 100%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: kt-wheel 12s linear infinite;
}
.scn-kitty-learns-truth .figure-kitty {
  position:absolute; bottom:35%; left:38%; width:28px; height:50px;
  background: linear-gradient(180deg, #b87878 0%, #804848 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: kt-kitty 4s ease-in-out infinite alternate;
}
.scn-kitty-learns-truth .figure-jack {
  position:absolute; bottom:35%; left:52%; width:30px; height:52px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: kt-jack 4.5s ease-in-out infinite alternate;
}
.scn-kitty-learns-truth .shadow-rickshaw {
  position:absolute; bottom:0; left:30%; width:160px; height:20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.2), transparent);
  animation: kt-shadow 10s ease-in-out infinite;
}
.scn-kitty-learns-truth .heat-haze {
  position:absolute; bottom:25%; left:0; right:0; height:30%;
  background: linear-gradient(0deg, rgba(255,220,160,0.3) 0%, transparent 100%);
  filter: blur(8px); animation: kt-haze 6s ease-in-out infinite alternate;
}
@keyframes kt-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes kt-rickshaw { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes kt-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes kt-kitty { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(-3px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes kt-jack { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-7deg) translateX(4px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes kt-shadow { 0%,100% { opacity:0.2; transform: scaleX(1); } 50% { opacity:0.4; transform: scaleX(1.1); } }
@keyframes kt-haze { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-kitty-strikes-jack {
  background: linear-gradient(180deg, #ffe0a0 0%, #f0c070 30%, #d89450 100%),
              radial-gradient(ellipse at 80% 20%, #ffe8b8 0%, transparent 70%);
}
.scn-kitty-strikes-jack .sky-sun {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffdd99 0%, #f0b050 100%);
  animation: ksj-sky 15s ease-in-out infinite alternate;
}
.scn-kitty-strikes-jack .horizon {
  position:absolute; bottom:40%; left:0; right:0; height:5%;
  background: linear-gradient(180deg, #b08040 0%, #805a30 100%);
}
.scn-kitty-strikes-jack .horse-body {
  position:absolute; bottom:20%; left:20%; width:140px; height:90px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a220e 50%, #2a1508 100%);
  border-radius: 40% 30% 20% 30% / 50% 40% 30% 40%;
  transform: rotate(-5deg);
  animation: ksj-horse 4s ease-in-out infinite;
}
.scn-kitty-strikes-jack .figure-kitty-rider {
  position:absolute; bottom:52%; left:24%; width:24px; height:48px;
  background: linear-gradient(180deg, #703a2a 0%, #48201a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: ksj-rider 3.5s ease-in-out infinite alternate;
}
.scn-kitty-strikes-jack .whip {
  position:absolute; bottom:60%; left:30%; width:60px; height:2px;
  background: linear-gradient(90deg, #4a2a1a 0%, #2a1508 100%);
  transform-origin: 0 50%;
  transform: rotate(-30deg);
  animation: ksj-whip 0.6s ease-in-out infinite;
}
.scn-kitty-strikes-jack .figure-jack-struck {
  position:absolute; bottom:18%; left:50%; width:28px; height:50px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg) translateX(10px);
  animation: ksj-jack 2s ease-in-out infinite;
}
.scn-kitty-strikes-jack .dust-puff {
  position:absolute; bottom:22%; left:45%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(180,140,80,0.4), transparent);
  border-radius:50%; filter: blur(6px);
  animation: ksj-dust 3s ease-in-out infinite;
}
.scn-kitty-strikes-jack .sun-glare {
  position:absolute; top:5%; right:10%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(255,230,160,0.6), transparent);
  border-radius:50%; filter: blur(10px);
  animation: ksj-glare 6s ease-in-out infinite alternate;
}
@keyframes ksj-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ksj-horse { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-5px); } }
@keyframes ksj-rider { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes ksj-whip { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-60deg); } 100% { transform: rotate(-30deg); } }
@keyframes ksj-jack { 0%,100% { transform: rotate(20deg) translateX(10px); } 50% { transform: rotate(25deg) translateX(12px); } }
@keyframes ksj-dust { 0%,100% { opacity:0.2; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.5); } }
@keyframes ksj-glare { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(0.9); } }

.scn-heatherlegh-arrives-again {
  background: linear-gradient(180deg, #e0c890 0%, #c8a46e 40%, #986e3e 100%),
              radial-gradient(ellipse at 30% 50%, #e8d09a 0%, transparent 60%);
}
.scn-heatherlegh-arrives-again .road-dust {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #b08048 0%, #7a5028 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-heatherlegh-arrives-again .horse-heather {
  position:absolute; bottom:15%; left:60%; width:130px; height:85px;
  background: linear-gradient(135deg, #4a2a12 0%, #2a1808 100%);
  border-radius: 40% 30% 20% 30% / 50% 40% 30% 40%;
  transform: scaleX(-1);
  animation: hl-horse 6s ease-in-out infinite;
}
.scn-heatherlegh-arrives-again .figure-heather {
  position:absolute; bottom:48%; left:64%; width:26px; height:50px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: hl-heather 4s ease-in-out infinite alternate;
}
.scn-heatherlegh-arrives-again .figure-jack-wounded {
  position:absolute; bottom:10%; left:25%; width:28px; height:52px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: hl-jack 3.5s ease-in-out infinite;
}
.scn-heatherlegh-arrives-again .blood-drip {
  position:absolute; bottom:20%; left:27%; width:4px; height:30px;
  background: linear-gradient(180deg, #5e1a1d 0%, #8a2629 50%, #4a1012 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  animation: hl-blood 5s ease-in-out infinite;
}
.scn-heatherlegh-arrives-again .shadow-long {
  position:absolute; bottom:0; left:10%; width:200px; height:25px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.25), transparent);
  animation: hl-shadow 8s ease-in-out infinite;
}
.scn-heatherlegh-arrives-again .sun-flare {
  position:absolute; top:15%; left:10%; width:100px; height:100px;
  background: radial-gradient(circle, rgba(255,230,160,0.5), transparent);
  filter: blur(15px); animation: hl-flare 6s ease-in-out infinite alternate;
}
@keyframes hl-horse { 0%,100% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-5px); } }
@keyframes hl-heather { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes hl-jack { 0%,100% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(4px); } }
@keyframes hl-blood { 0%,100% { transform: scaleY(1); opacity:0.6; } 50% { transform: scaleY(1.3); opacity:1; } }
@keyframes hl-shadow { 0% { opacity:0.2; transform: scaleX(0.8); } 50% { opacity:0.4; transform: scaleX(1.2); } 100% { opacity:0.2; transform: scaleX(0.8); } }
@keyframes hl-flare { 0% { opacity:0.2; transform: scale(0.8); } 50% { opacity:0.6; transform: scale(1.3); } 100% { opacity:0.3; transform: scale(1); } }

.scn-rickshaw-broken-up {
  background:
    linear-gradient(180deg, #1b1b3a 0%, #2c2040 30%, #4a3a5a 70%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 60%);
}
.scn-rickshaw-broken-up .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a3a5e 0%, #1e1e3a 100%);
  opacity: 0.6; animation: RU-sky 15s ease-in-out infinite alternate;
}
.scn-rickshaw-broken-up .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-rickshaw-broken-up .rickshaw-body {
  position: absolute; bottom: 20%; left: 25%; width: 120px; height: 70px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%; transform: rotate(-8deg);
  box-shadow: -8px 8px 15px rgba(0,0,0,0.7);
  animation: RU-shake 4s ease-in-out infinite;
}
.scn-rickshaw-broken-up .rickshaw-wheel {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 50px;
  border: 6px solid #3a2a1a; border-radius: 50%;
  background: radial-gradient(circle, #2a1a0a 30%, transparent 30%);
  transform: rotate(20deg); animation: RU-wheel 3s linear infinite;
}
.scn-rickshaw-broken-up .rickshaw-shaft {
  position: absolute; bottom: 30%; left: 45%; width: 80px; height: 8px;
  background: linear-gradient(90deg, #4a3a2a, #2a1a0a);
  transform-origin: left center; transform: rotate(30deg);
  border-radius: 4px; animation: RU-shaft 5s ease-in-out infinite;
}
.scn-rickshaw-broken-up .figure-silhouette {
  position: absolute; bottom: 22%; left: 55%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: RU-figure 6s ease-in-out infinite;
}
.scn-rickshaw-broken-up .debris {
  position: absolute; bottom: 18%; left: 10%; width: 40px; height: 8px;
  background: #3a2a1a; border-radius: 2px; transform: rotate(45deg);
  opacity: 0.7; animation: RU-debris 8s ease-in-out infinite;
}
.scn-rickshaw-broken-up .dust {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(80,60,40,0.4), transparent);
  filter: blur(6px); animation: RU-dust 10s linear infinite;
}
@keyframes RU-sky { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes RU-shake { 0% { transform: rotate(-8deg) translateY(0); } 25% { transform: rotate(-6deg) translateY(-2px); } 50% { transform: rotate(-10deg) translateY(0); } 75% { transform: rotate(-7deg) translateY(-1px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes RU-wheel { 0% { transform: rotate(20deg); } 100% { transform: rotate(380deg); } }
@keyframes RU-shaft { 0% { transform: rotate(30deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(30deg); } }
@keyframes RU-figure { 0% { transform: translateX(0) rotate(0deg); } 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 RU-debris { 0% { transform: rotate(45deg) translateY(0); opacity:0.7; } 50% { transform: rotate(50deg) translateY(-5px); opacity:0.4; } 100% { transform: rotate(45deg) translateY(0); opacity:0.7; } }
@keyframes RU-dust { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.5); opacity:0.2; } 100% { transform: scaleX(1); opacity:0.5; } }

.scn-item-ghost-rickshaw-path {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2c2244 40%, #4a3a6e 80%, #2a1a3a 100%),
    radial-gradient(ellipse at 30% 70%, #6a5a8a 0%, transparent 50%);
}
.scn-item-ghost-rickshaw-path .sky-ghost {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a5a 0%, #1a1a3a 100%);
  animation: GP-sky 12s ease-in-out infinite alternate;
}
.scn-item-ghost-rickshaw-path .path {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 55%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-item-ghost-rickshaw-path .ghost-rickshaw-body {
  position: absolute; bottom: 25%; left: 35%; width: 100px; height: 60px;
  background: linear-gradient(135deg, rgba(180,160,200,0.5), rgba(120,100,160,0.3));
  border-radius: 10% 10% 20% 20%; filter: blur(2px);
  box-shadow: 0 0 30px 10px rgba(160,140,200,0.3);
  animation: GP-glide 8s ease-in-out infinite alternate;
}
.scn-item-ghost-rickshaw-path .ghost-wheel {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 40px;
  border: 5px solid rgba(180,160,200,0.4); border-radius: 50%;
  background: radial-gradient(circle, rgba(200,180,220,0.2) 30%, transparent 30%);
  filter: blur(1px); animation: GP-spin 4s linear infinite;
}
.scn-item-ghost-rickshaw-path .ghost-glow {
  position: absolute; bottom: 30%; left: 32%; width: 120px; height: 80px;
  background: radial-gradient(ellipse, rgba(180,160,220,0.2), transparent);
  filter: blur(12px); animation: GP-pulse 6s ease-in-out infinite alternate;
}
.scn-item-ghost-rickshaw-path .figure-witness {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: GP-witness 5s ease-in-out infinite;
}
.scn-item-ghost-rickshaw-path .fog {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, transparent, rgba(200,180,220,0.1), transparent);
  filter: blur(10px); animation: GP-fog 15s linear infinite;
}
@keyframes GP-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes GP-glide { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes GP-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes GP-pulse { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.15); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes GP-witness { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes GP-fog { 0% { transform: translateX(-30px); } 100% { transform: translateX(70vw); } }

.scn-conversation-with-ghost {
  background:
    linear-gradient(180deg, #2a2a5a 0%, #4a3a6a 50%, #6a4a5a 100%),
    radial-gradient(ellipse at 50% 100%, #8a6a7a 0%, transparent 70%);
}
.scn-conversation-with-ghost .bg-twilight {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a4a7a 0%, #3a2a4a 100%);
  animation: CG-twilight 20s ease-in-out infinite alternate;
}
.scn-conversation-with-ghost .ground-cg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-conversation-with-ghost .man-figure {
  position: absolute; bottom: 28%; left: 30%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: CG-man 3s ease-in-out infinite;
}
.scn-conversation-with-ghost .ghost-figure {
  position: absolute; bottom: 28%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, rgba(200,180,220,0.7), rgba(160,140,200,0.4));
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: CG-ghost 3.5s ease-in-out infinite;
}
.scn-conversation-with-ghost .speech-bubble {
  position: absolute; bottom: 55%; left: 45%; width: 30px; height: 20px;
  background: rgba(255,255,240,0.3); border-radius: 50% 50% 50% 10%;
  filter: blur(2px);
  animation: CG-bubble 4s ease-in-out infinite;
}
.scn-conversation-with-ghost .sparkle {
  position: absolute; top: 20%; left: 20%; width: 6px; height: 6px;
  background: #ffd680; border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,214,128,0.5);
  animation: CG-sparkle 2s ease-in-out infinite;
}
.scn-conversation-with-ghost .lamp-post {
  position: absolute; bottom: 20%; left: 10%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 2px;
}
.scn-conversation-with-ghost .lamp-post::after {
  content: ''; position: absolute; top: 0; left: -6px; width: 18px; height: 12px;
  background: radial-gradient(circle, #f0c068 0%, #b08040 70%);
  border-radius: 50%; box-shadow: 0 0 20px 5px rgba(192,128,64,0.4);
  animation: CG-lamp 5s ease-in-out infinite alternate;
}
/* Additional pseudo-element for lamp glow handled by ::after, but to keep child rules clean we can also add a separate div, but we already have 6 children. Using ::after is fine. */
.scn-conversation-with-ghost .lamp-post::after {
  /* Already defined above */
}
@keyframes CG-twilight { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes CG-man { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(10px) rotate(-2deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes CG-ghost { 0% { transform: translateY(0) scale(1); opacity:0.7; } 25% { transform: translateY(-5px) scale(1.05); opacity:0.9; } 50% { transform: translateY(0) scale(1); opacity:0.7; } 75% { transform: translateY(-3px) scale(0.95); opacity:0.8; } 100% { transform: translateY(0) scale(1); opacity:0.7; } }
@keyframes CG-bubble { 0% { transform: scale(0.5); opacity:0; } 30% { transform: scale(1); opacity:0.6; } 70% { transform: scale(1.2); opacity:0.3; } 100% { transform: scale(0.5); opacity:0; } }
@keyframes CG-sparkle { 0% { transform: scale(0.5); opacity:0; } 50% { transform: scale(1.5); opacity:1; } 100% { transform: scale(0.5); opacity:0; } }
@keyframes CG-lamp { 0% { box-shadow: 0 0 15px 3px rgba(192,128,64,0.3); } 50% { box-shadow: 0 0 30px 8px rgba(240,192,104,0.6); } 100% { box-shadow: 0 0 20px 5px rgba(192,128,64,0.4); } }

.scn-overheard-by-strangers {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #1e1e3a 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a5a 0%, transparent 70%);
}
.scn-overheard-by-strangers .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 100%);
  animation: OS-sky 10s ease-in-out infinite alternate;
}
.scn-overheard-by-strangers .bench {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 12px;
  background: linear-gradient(90deg, #3a2a1a, #2a1a0a, #3a2a1a);
  border-radius: 4px;
  animation: OS-bench 6s ease-in-out infinite;
}
.scn-overheard-by-strangers .couple {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-overheard-by-strangers .couple::before {
  content: ''; position: absolute; bottom: 10%; left: 10%; width: 15px; height: 30px;
  background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-overheard-by-strangers .stranger-left {
  position: absolute; bottom: 25%; left: 15%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: OS-stranger-left 5s ease-in-out infinite;
}
.scn-overheard-by-strangers .stranger-right {
  position: absolute; bottom: 25%; right: 15%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: OS-stranger-right 5s ease-in-out infinite reverse;
}
.scn-overheard-by-strangers .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,0.5));
  animation: OS-shadow 8s ease-in-out infinite alternate;
}
.scn-overheard-by-strangers .moth {
  position: absolute; top: 30%; left: 10%; width: 8px; height: 6px;
  background: #d4c4a0; border-radius: 50%; filter: blur(1px);
  animation: OS-moth 3s ease-in-out infinite;
}
@keyframes OS-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes OS-bench { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes OS-stranger-left { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(5deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes OS-stranger-right { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-5deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes OS-shadow { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.5; } }
@keyframes OS-moth { 0% { transform: translate(0, 0) scale(1); } 25% { transform: translate(20px, -15px) scale(1.2); } 50% { transform: translate(40px, -5px) scale(0.8); } 75% { transform: translate(60px, -20px) scale(1.1); } 100% { transform: translate(80px, 0) scale(1); } }
/* Ensure no extra text */

/* Scene: rickshaw-dread (starlit, dark) */
.scn-rickshaw-dread {
  background: linear-gradient(180deg, #0a0a1e 0%, #12122e 40%, #1a1a3a 70%, #0a0a1e 100%),
              radial-gradient(ellipse at 30% 80%, #1a1a3a 0%, transparent 60%);
}
.scn-rickshaw-dread .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0e0e24 0%, #161636 100%);
  animation: rd-sky 20s ease-in-out infinite alternate;
}
.scn-rickshaw-dread .stars {
  position: absolute; top: 8%; left: 10%; width: 60%; height: 40%;
  background: radial-gradient(circle at 20% 30%, #ffffffaa 0.5px, transparent 1px),
              radial-gradient(circle at 60% 50%, #ffffff88 0.5px, transparent 1px),
              radial-gradient(circle at 80% 20%, #ffffff99 0.5px, transparent 1px),
              radial-gradient(circle at 40% 70%, #ffffff77 0.5px, transparent 1px);
  background-size: 40px 40px, 50px 50px, 30px 30px, 60px 60px;
  background-repeat: repeat;
  animation: rd-stars 30s linear infinite;
}
.scn-rickshaw-dread .rickshaw {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 50px;
  background: linear-gradient(135deg, #2a1e12 0%, #1a0e08 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-2deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
  animation: rd-rickshaw 4s ease-in-out infinite;
}
.scn-rickshaw-dread .figure {
  position: absolute; bottom: 15%; left: 20%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #02020a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd-figure 3s ease-in-out infinite;
}
.scn-rickshaw-dread .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #0a0a12 0%, #16162a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-rickshaw-dread .lamp {
  position: absolute; bottom: 28%; left: 35%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd060 0%, #e0a030 100%);
  border-radius: 50%;
  box-shadow: 0 0 18px 6px #c08030, 0 0 36px 12px rgba(192,128,48,0.4);
  animation: rd-lamp 2s ease-in-out infinite alternate;
}
@keyframes rd-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes rd-stars { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes rd-rickshaw { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes rd-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(0deg); } 50% { transform: translateX(16px) rotate(2deg); } 75% { transform: translateX(24px) rotate(0deg); } 100% { transform: translateX(32px) rotate(-2deg); } }
@keyframes rd-lamp { 0% { box-shadow: 0 0 12px 4px #c08030, 0 0 24px 8px rgba(192,128,48,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 24px 8px #ffd060, 0 0 48px 16px rgba(255,208,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 16px 5px #c08030, 0 0 32px 10px rgba(192,128,48,0.35); opacity: 0.85; } }

/* Scene: doctor-advice (bright interior, dark mood) */
.scn-doctor-advice {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #5a4a3a 60%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 60%, #6a5a4a 0%, transparent 70%);
}
.scn-doctor-advice .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%);
  animation: da-wall 12s ease-in-out infinite alternate;
}
.scn-doctor-advice .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
}
.scn-doctor-advice .lamp {
  position: absolute; bottom: 45%; left: 35%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 40%, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px #b08040, 0 0 80px 40px rgba(176,128,64,0.3);
  animation: da-lamp 2s ease-in-out infinite alternate;
}
.scn-doctor-advice .doctor {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: da-figure 4s ease-in-out infinite;
}
.scn-doctor-advice .patient {
  position: absolute; bottom: 25%; right: 25%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: da-figure 4s ease-in-out infinite 2s;
}
.scn-doctor-advice .window {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #0a0a2a 0%, #0e0e3a 100%);
  border: 3px solid #4a3a2a;
  border-radius: 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
.scn-doctor-advice .curtain {
  position: absolute; top: 8%; right: 12%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 30%;
  transform-origin: top;
  animation: da-curtain 10s ease-in-out infinite alternate;
}
@keyframes da-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes da-lamp { 0% { box-shadow: 0 0 30px 15px #b08040, 0 0 60px 30px rgba(176,128,64,0.2); opacity: 0.9; } 50% { box-shadow: 0 0 50px 25px #ffd080, 0 0 100px 50px rgba(255,208,128,0.5); opacity: 1; } 100% { box-shadow: 0 0 35px 18px #b08040, 0 0 70px 35px rgba(176,128,64,0.3); opacity: 0.95; } }
@keyframes da-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes da-curtain { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }

/* Scene: awaiting-death (moonlit, dark) */
.scn-awaiting-death {
  background: linear-gradient(180deg, #0a0a22 0%, #14143a 40%, #1a1a4a 70%, #0a0a22 100%),
              radial-gradient(ellipse at 50% 20%, #1a1a4a 0%, transparent 60%);
}
.scn-awaiting-death .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0e0e30 0%, #161640 100%);
  animation: ad-sky 18s ease-in-out infinite alternate;
}
.scn-awaiting-death .moon {
  position: absolute; top: 12%; right: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 30%, #e0e8f0 0%, #c0c8d0 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #a0a8b0, 0 0 60px 20px rgba(160,168,176,0.3);
  animation: ad-moon 6s ease-in-out infinite alternate;
}
.scn-awaiting-death .clouds {
  position: absolute; top: 18%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, rgba(200,200,210,0.15) 0%, rgba(150,150,160,0.05) 100%);
  filter: blur(8px);
  animation: ad-clouds 40s linear infinite;
}
.scn-awaiting-death .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #0a0a1a 0%, #1a1a3a 100%);
  border-radius: 10% 90% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-awaiting-death .figure {
  position: absolute; bottom: 20%; left: 50%; width: 16px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a1a 0%, #02020a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ad-figure 5s ease-in-out infinite;
}
.scn-awaiting-death .tree {
  position: absolute; bottom: 25%; left: 25%; width: 14px; height: 60px;
  background: linear-gradient(180deg, #0a0a12 0%, #02020a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  transform-origin: bottom;
  animation: ad-tree 8s ease-in-out infinite;
}
.scn-awaiting-death .phantom {
  position: absolute; top: 30%; right: 20%; width: 30px; height: 40px;
  background: radial-gradient(circle, rgba(200,210,220,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ad-phantom 12s ease-in-out infinite alternate;
}
@keyframes ad-sky { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes ad-moon { 0% { box-shadow: 0 0 20px 8px #a0a8b0, 0 0 40px 15px rgba(160,168,176,0.2); opacity: 0.9; } 50% { box-shadow: 0 0 40px 15px #c0c8d0, 0 0 80px 30px rgba(192,200,208,0.4); opacity: 1; } 100% { box-shadow: 0 0 25px 10px #a0a8b0, 0 0 50px 20px rgba(160,168,176,0.25); opacity: 0.95; } }
@keyframes ad-clouds { 0% { transform: translateX(-100%); } 100% { transform: translateX(100vw); } }
@keyframes ad-figure { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-40%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-60%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ad-tree { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes ad-phantom { 0% { opacity: 0.1; transform: translate(0, 0) scale(1); } 50% { opacity: 0.3; transform: translate(10px, -10px) scale(1.2); } 100% { opacity: 0.1; transform: translate(-10px, 5px) scale(0.9); } }

/* Scene: final-horror (very dark, intense) */
.scn-final-horror {
  background: linear-gradient(180deg, #05050a 0%, #0a0a14 40%, #0e0e1a 70%, #05050a 100%),
              radial-gradient(ellipse at 50% 80%, #0e0e1a 0%, transparent 70%);
}
.scn-final-horror .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #090912 0%, #0e0e1e 100%);
  animation: fh-sky 25s ease-in-out infinite alternate;
}
.scn-final-horror .grave {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, #0a0a12 80%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.9);
  animation: fh-grave 10s ease-in-out infinite;
}
.scn-final-horror .figure {
  position: absolute; bottom: 35%; left: 45%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #08080e 0%, #02020a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: top center;
  animation: fh-fall 8s ease-in-out infinite;
}
.scn-final-horror .spirits {
  position: absolute; top: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(180,190,200,0.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: fh-spirit 15s linear infinite;
}
.scn-final-horror .sp1 { left: 10%; }
.scn-final-horror .sp2 { right: 20%; animation-direction: reverse; animation-duration: 20s; }
.scn-final-horror .fog {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(20,20,30,0.8) 0%, transparent 100%);
  filter: blur(8px);
  animation: fh-fog 30s linear infinite;
}
.scn-final-horror .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #05050a 0%, #0a0a12 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
@keyframes fh-sky { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes fh-grave { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.9; } }
@keyframes fh-fall { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(20px) rotate(0deg); } 50% { transform: translateY(40px) rotate(5deg); } 75% { transform: translateY(60px) rotate(0deg); } 100% { transform: translateY(80px) rotate(-5deg); } }
@keyframes fh-spirit { 0% { transform: rotate(0deg) translate(0, 0) scale(1); opacity: 0.2; } 25% { transform: rotate(90deg) translate(30px, -20px) scale(1.3); opacity: 0.4; } 50% { transform: rotate(180deg) translate(-20px, 10px) scale(0.8); opacity: 0.3; } 75% { transform: rotate(270deg) translate(40px, 30px) scale(1.2); opacity: 0.5; } 100% { transform: rotate(360deg) translate(0, 0) scale(1); opacity: 0.2; } }
@keyframes fh-fog { 0% { transform: translateX(-20%) opacity 0.6; } 50% { transform: translateX(20%) opacity 1; } 100% { transform: translateX(-20%) opacity 0.6; } }

/* ---- apparition-voice ---- (dark + sunlit) */
.scn-apparition-voice {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #8a6a3a 40%, #c8a060 70%, #e0c080 100%),
    radial-gradient(ellipse at 50% 0%, #e0c080 0%, transparent 70%);
}
.scn-apparition-voice .sky { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #6a5a4a 0%, transparent 100%); animation:av-sky 12s ease-in-out infinite alternate; }
.scn-apparition-voice .bridge { position:absolute; bottom:25%; left:0; right:0; height:15%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,0.6); animation:av-bridge 10s ease-in-out infinite; }
.scn-apparition-voice .horse-silhouette { position:absolute; bottom:32%; left:20%; width:60px; height:50px; background:radial-gradient(ellipse 70% 100% at 50% 100%, #1a0a00 0%, transparent 70%); border-radius:50% 50% 40% 40%; transform-origin:bottom center; animation:av-horse 4s ease-in-out infinite; }
.scn-apparition-voice .rider-silhouette { position:absolute; bottom:45%; left:22%; width:20px; height:35px; background:#1a0a00; border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:av-rider 4s ease-in-out infinite; }
.scn-apparition-voice .rickshaw-silhouette { position:absolute; bottom:28%; left:60%; width:70px; height:45px; background:linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:30% 30% 10% 10%; box-shadow:0 4px 10px rgba(0,0,0,0.7); animation:av-rickshaw 6s ease-in-out infinite alternate; }
.scn-apparition-voice .voice-ring { position:absolute; top:40%; left:50%; width:80px; height:80px; border:2px solid rgba(255,200,150,0.4); border-radius:50%; transform:translate(-50%,-50%); animation:av-ring 3s ease-out infinite; }
.scn-apparition-voice .voice-ring2 { position:absolute; top:40%; left:50%; width:80px; height:80px; border:1px solid rgba(255,200,150,0.3); border-radius:50%; transform:translate(-50%,-50%); animation:av-ring 3s ease-out infinite 1.5s; }
.scn-apparition-voice .shadow { position:absolute; bottom:20%; left:10%; right:10%; height:20%; background:linear-gradient(180deg, transparent, rgba(0,0,0,0.4)); border-radius:50%; filter:blur(8px); animation:av-shadow 8s ease-in-out infinite alternate; }
@keyframes av-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes av-bridge { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes av-horse { 0%{transform:translateX(0) translateY(0) rotate(-1deg)} 30%{transform:translateX(4px) translateY(-1px) rotate(1deg)} 60%{transform:translateX(8px) translateY(0) rotate(0deg)} 100%{transform:translateX(12px) translateY(-1px) rotate(-1deg)} }
@keyframes av-rider { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 30%{transform:translateX(4px) translateY(-2px) rotate(2deg)} 60%{transform:translateX(8px) translateY(0) rotate(0deg)} 100%{transform:translateX(12px) translateY(-2px) rotate(-1deg)} }
@keyframes av-rickshaw { 0%,100%{transform:scaleX(1) translateY(0)} 50%{transform:scaleX(0.98) translateY(-2px)} }
@keyframes av-ring { 0%{opacity:0.8;transform:translate(-50%,-50%) scale(0.5)} 50%{opacity:0.4;transform:translate(-50%,-50%) scale(1.2)} 100%{opacity:0;transform:translate(-50%,-50%) scale(1.8)} }
@keyframes av-shadow { 0%,100%{opacity:0.3;transform:scaleY(0.9)} 50%{opacity:0.5;transform:scaleY(1)} }

/* ---- pelitis-cherry-brandy ---- (tense + overcast) */
.scn-pelitis-cherry-brandy {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 40%, #5a5a6a 100%),
    radial-gradient(ellipse at 50% 50%, #5a5a6a 0%, transparent 70%);
}
.scn-pelitis-cherry-brandy .wall { position:absolute; inset:0; background:linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); }
.scn-pelitis-cherry-brandy .counter { position:absolute; bottom:20%; left:10%; width:80%; height:10%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 -4px 10px rgba(0,0,0,0.5); animation:pb-counter 8s ease-in-out infinite alternate; }
.scn-pelitis-cherry-brandy .bottle { position:absolute; bottom:28%; left:30%; width:12px; height:28px; background:linear-gradient(180deg, #6a3a2a 0%, #4a2210 100%); border-radius:0 0 2px 2px; transform:rotate(-5deg); animation:pb-bottle 6s ease-in-out infinite; }
.scn-pelitis-cherry-brandy .glass { position:absolute; bottom:27%; left:42%; width:16px; height:22px; background:linear-gradient(180deg, rgba(200,200,220,0.3) 0%, rgba(150,150,170,0.5) 100%); border:1px solid rgba(180,180,200,0.4); border-radius:0 0 4px 4px; box-shadow:inset 0 -6px 6px rgba(150,80,50,0.3); animation:pb-glass 4s ease-in-out infinite; }
.scn-pelitis-cherry-brandy .hand { position:absolute; bottom:28%; left:38%; width:16px; height:20px; background:radial-gradient(ellipse 60% 100% at 50% 100%, #c8b8a0 0%, #8a7a6a 100%); border-radius:40% 40% 20% 20%; transform:rotate(10deg); animation:pb-hand 3s ease-in-out infinite; }
.scn-pelitis-cherry-brandy .stool { position:absolute; bottom:15%; left:50%; width:24px; height:30px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10%; transform:translateX(-50%); animation:pb-stool 5s ease-in-out infinite alternate; }
.scn-pelitis-cherry-brandy .window-overcast { position:absolute; top:10%; right:8%; width:40%; height:30%; background:linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,0.4); animation:pb-window 12s ease-in-out infinite alternate; }
@keyframes pb-counter { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1px)} }
@keyframes pb-bottle { 0%,100%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-3deg) translateY(-2px)} }
@keyframes pb-glass { 0%,100%{opacity:0.6;transform:scaleY(1)} 50%{opacity:0.9;transform:scaleY(1.05)} }
@keyframes pb-hand { 0%{transform:translateX(0) rotate(10deg)} 30%{transform:translateX(4px) rotate(12deg)} 60%{transform:translateX(8px) rotate(8deg)} 100%{transform:translateX(12px) rotate(10deg)} }
@keyframes pb-stool { 0%{transform:translateX(-50%)} 50%{transform:translateX(-50%) translateY(-1px)} 100%{transform:translateX(-50%)} }
@keyframes pb-window { 0%,100%{opacity:0.5;background-position:0 0} 50%{opacity:0.7;background-position:0 5px} }

/* ---- pelitis-conversation-cover ---- (tense + overcast) */
.scn-pelitis-conversation-cover {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #4a4a5a 100%),
    radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 70%);
}
.scn-pelitis-conversation-cover .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 100%); }
.scn-pelitis-conversation-cover .mirror-frame { position:absolute; top:10%; left:60%; width:30%; height:50%; border:8px solid #5a4a3a; border-radius:4px; box-shadow:0 0 20px rgba(0,0,0,0.5); animation:pc-frame 10s ease-in-out infinite alternate; }
.scn-pelitis-conversation-cover .mirror-reflect { position:absolute; top:12%; left:62%; width:26%; height:46%; background:linear-gradient(180deg, rgba(200,200,220,0.2) 0%, rgba(150,150,170,0.4) 100%); border-radius:2px; animation:pc-reflect 6s ease-in-out infinite; }
.scn-pelitis-conversation-cover .figure-chat1 { position:absolute; bottom:25%; left:15%; width:24px; height:60px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation:pc-figure1 4s ease-in-out infinite; }
.scn-pelitis-conversation-cover .figure-chat2 { position:absolute; bottom:25%; left:45%; width:24px; height:60px; background:linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation:pc-figure2 4s ease-in-out infinite 0.5s; }
.scn-pelitis-conversation-cover .lamp { position:absolute; top:5%; left:40%; width:10px; height:20px; background:radial-gradient(circle, #e0c080 0%, #b08040 100%); border-radius:50% 50% 0 0; box-shadow:0 0 24px 6px rgba(192,128,64,0.5), 0 0 48px 12px rgba(192,128,64,0.2); animation:pc-lamp 3s ease-in-out infinite alternate; }
.scn-pelitis-conversation-cover .table { position:absolute; bottom:18%; left:25%; width:50%; height:8%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:6px; box-shadow:0 4px 10px rgba(0,0,0,0.6); animation:pc-table 5s ease-in-out infinite alternate; }
.scn-pelitis-conversation-cover .shadow-figures { position:absolute; bottom:15%; left:10%; right:10%; height:15%; background:linear-gradient(180deg, transparent, rgba(0,0,0,0.3)); border-radius:50%; filter:blur(6px); animation:pc-shadow 8s ease-in-out infinite; }
@keyframes pc-frame { 0%,100%{transform:scaleZ(1) rotate(0deg)} 50%{transform:scaleZ(1.02) rotate(0.5deg)} }
@keyframes pc-reflect { 0%{opacity:0.3} 50%{opacity:0.5} 100%{opacity:0.4} }
@keyframes pc-figure1 { 0%{transform:translateX(0) rotate(-2deg)} 30%{transform:translateX(4px) rotate(1deg)} 60%{transform:translateX(8px) rotate(-1deg)} 100%{transform:translateX(12px) rotate(2deg)} }
@keyframes pc-figure2 { 0%{transform:translateX(0) rotate(2deg)} 30%{transform:translateX(-4px) rotate(-1deg)} 60%{transform:translateX(-8px) rotate(1deg)} 100%{transform:translateX(-12px) rotate(-2deg)} }
@keyframes pc-lamp { 0%{opacity:0.6;box-shadow:0 0 16px 4px rgba(192,128,64,0.3)} 50%{opacity:1;box-shadow:0 0 32px 10px rgba(255,208,96,0.6)} 100%{opacity:0.8;box-shadow:0 0 20px 6px rgba(192,128,64,0.4)} }
@keyframes pc-table { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes pc-shadow { 0%,100%{opacity:0.4} 50%{opacity:0.6} }

/* ---- kitty-arrival ---- (tense + overcast) */
.scn-kitty-arrival {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 40%, #5a5a6a 100%),
    radial-gradient(ellipse at 30% 70%, #5a5a6a 0%, transparent 70%);
}
.scn-kitty-arrival .shop-bg { position:absolute; inset:0; background:linear-gradient(90deg, #3a3a4a 0%, #4a4a5a 50%, #3a3a4a 100%); }
.scn-kitty-arrival .door { position:absolute; right:10%; bottom:0%; width:20%; height:80%; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border:2px solid #4a4a5a; border-radius:4px 4px 0 0; box-shadow:inset 0 0 20px rgba(0,0,0,0.5); animation:ka-door 6s ease-in-out infinite alternate; }
.scn-kitty-arrival .figure-kitty { position:absolute; bottom:20%; right:15%; width:22px; height:55px; background:linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation:ka-kitty 3s ease-in-out infinite; }
.scn-kitty-arrival .figure-protagonist { position:absolute; bottom:20%; left:30%; width:24px; height:58px; background:linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation:ka-protag 4s ease-in-out infinite; }
.scn-kitty-arrival .counter-shop { position:absolute; bottom:12%; left:20%; width:40%; height:12%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 -4px 10px rgba(0,0,0,0.5); animation:ka-counter 8s ease-in-out infinite alternate; }
.scn-kitty-arrival .overcast-window { position:absolute; top:8%; left:5%; width:35%; height:30%; background:linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,0.4); animation:ka-window 12s ease-in-out infinite alternate; }
.scn-kitty-arrival .light-spot { position:absolute; top:5%; right:30%; width:12px; height:12px; background:radial-gradient(circle, #e0c080 0%, transparent 70%); border-radius:50%; box-shadow:0 0 30px 8px rgba(224,192,128,0.4); animation:ka-light 5s ease-in-out infinite alternate; }
.scn-kitty-arrival .shadow-floor { position:absolute; bottom:0; left:10%; right:10%; height:10%; background:linear-gradient(180deg, transparent, rgba(0,0,0,0.4)); border-radius:50%; filter:blur(6px); animation:ka-shadow 8s ease-in-out infinite; }
@keyframes ka-door { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.02)} 100%{transform:scaleX(0.98)} }
@keyframes ka-kitty { 0%{transform:translateX(0) rotate(3deg)} 30%{transform:translateX(-4px) rotate(1deg)} 60%{transform:translateX(-8px) rotate(-1deg)} 100%{transform:translateX(-12px) rotate(2deg)} }
@keyframes ka-protag { 0%{transform:translateX(0) rotate(-2deg)} 30%{transform:translateX(4px) rotate(1deg)} 60%{transform:translateX(8px) rotate(-1deg)} 100%{transform:translateX(12px) rotate(2deg)} }
@keyframes ka-counter { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1px)} }
@keyframes ka-window { 0%,100%{opacity:0.5} 50%{opacity:0.7} }
@keyframes ka-light { 0%{opacity:0.4;transform:scale(0.8)} 50%{opacity:0.8;transform:scale(1.2)} 100%{opacity:0.5;transform:scale(0.9)} }
@keyframes ka-shadow { 0%,100%{opacity:0.3} 50%{opacity:0.5} }

.scn-collapse-and-recovery { background: linear-gradient(180deg, #0d0d1a 0%, #1a0a1a 40%, #2a1a2a 100%), radial-gradient(ellipse at 50% 80%, #1a0a1a 0%, transparent 80%); }
.scn-collapse-and-recovery .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0d0a12 60%, #0a050a 100%); animation: cr-fade 15s ease-in-out infinite alternate; }
.scn-collapse-and-recovery .bed { position:absolute; bottom:5%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 4px 10px #000; animation: cr-bed-shift 8s ease-in-out infinite; }
.scn-collapse-and-recovery .figure-reclining { position:absolute; bottom:8%; left:25%; width:20%; height:18%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(0); animation: cr-breathe 4s ease-in-out infinite; }
.scn-collapse-and-recovery .lamp-glow { position:absolute; top:15%; left:70%; width:10px; height:10px; background: radial-gradient(circle, #a06020 0%, #603010 70%); border-radius:50%; box-shadow: 0 0 30px 8px #804020, 0 0 60px 16px rgba(128,64,32,0.3); animation: cr-lamp 3s ease-in-out infinite alternate; }
.scn-collapse-and-recovery .window-light { position:absolute; top:10%; right:5%; width:40px; height:30px; background: radial-gradient(ellipse, rgba(180,160,140,0.3) 0%, transparent 70%); border-radius: 10% 10% 20% 20%; filter: blur(4px); animation: cr-window 12s ease-in-out infinite alternate; }
.scn-collapse-and-recovery .shadow-cast { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #050308 0%, transparent 100%); animation: cr-shadow 6s ease-in-out infinite; }
@keyframes cr-fade { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes cr-bed-shift { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cr-breathe { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(2px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes cr-lamp { 0% { box-shadow: 0 0 20px 4px #804020; opacity:0.8; } 50% { box-shadow: 0 0 40px 12px #a05030; opacity:1; } 100% { box-shadow: 0 0 25px 6px #804020; opacity:0.85; } }
@keyframes cr-window { 0% { opacity:0.3; transform: scaleX(0.95); } 50% { opacity:0.6; transform: scaleX(1.05); } 100% { opacity:0.4; transform: scaleX(0.98); } }
@keyframes cr-shadow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-heatherlegh-reports-kitty { background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 50%, #c0b090 100%), radial-gradient(ellipse at 30% 70%, #f0e8d8 0%, transparent 70%); }
.scn-heatherlegh-reports-kitty .desk { position:absolute; bottom:10%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); animation: hrk-desk 12s ease-in-out infinite; }
.scn-heatherlegh-reports-kitty .letter { position:absolute; bottom:35%; left:30%; width:20%; height:12%; background: linear-gradient(135deg, #f8f0e0 0%, #e0d0b0 100%); border-radius: 3px; box-shadow: 2px 2px 8px rgba(0,0,0,0.2); transform: rotate(-5deg); animation: hrk-letter 6s ease-in-out infinite alternate; }
.scn-heatherlegh-reports-kitty .ring-object { position:absolute; bottom:38%; left:55%; width:8px; height:8px; background: radial-gradient(circle, #c0a060 0%, #806040 70%); border-radius:50%; box-shadow: 0 0 6px 2px #a08050; animation: hrk-ring 4s ease-in-out infinite; }
.scn-heatherlegh-reports-kitty .hand-reach { position:absolute; bottom:30%; left:18%; width:12%; height:20%; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%; transform-origin: bottom center; animation: hrk-hand 3s ease-in-out infinite; }
.scn-heatherlegh-reports-kitty .lamp-bright { position:absolute; top:10%; right:15%; width:15px; height:15px; background: radial-gradient(circle, #fff0d0 0%, #e0b070 70%); border-radius:50%; box-shadow: 0 0 40px 10px #e0b070, 0 0 80px 20px rgba(224,176,112,0.3); animation: hrk-lamp 2s ease-in-out infinite alternate; }
.scn-heatherlegh-reports-kitty .shadow-sharp { position:absolute; bottom:5%; left:10%; right:0; height:40%; background: linear-gradient(0deg, rgba(0,0,0,0.4) 0%, transparent 100%); animation: hrk-shadow 5s ease-in-out infinite; }
@keyframes hrk-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hrk-letter { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(5px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes hrk-ring { 0% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.1) rotate(15deg); } 50% { transform: scale(0.95) rotate(30deg); } 75% { transform: scale(1.05) rotate(15deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes hrk-hand { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-10px) rotate(5deg); } 60% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hrk-lamp { 0% { box-shadow: 0 0 30px 8px #e0b070; opacity:0.9; } 100% { box-shadow: 0 0 60px 18px #f0d0a0; opacity:1; } }
@keyframes hrk-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

.scn-choice-offered { background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 50%, #c0a890 100%), radial-gradient(ellipse at 20% 80%, #e0d0b8 0%, transparent 80%); }
.scn-choice-offered .floor-tile { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b0a080 0%, #908060 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: co-floor 15s ease-in-out infinite alternate; }
.scn-choice-offered .wall-bg { position:absolute; top:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #e0d0b8 0%, #c8b8a0 100%); animation: co-wall 10s ease-in-out infinite; }
.scn-choice-offered .figure-standing { position:absolute; bottom:30%; left:45%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: co-figure 4s ease-in-out infinite; }
.scn-choice-offered .door-left { position:absolute; bottom:45%; left:20%; width:18%; height:50%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 5% 5% 0 0; box-shadow: inset -4px 0 8px #0003, 2px 0 6px #0003; animation: co-door-l 8s ease-in-out infinite alternate; }
.scn-choice-offered .door-right { position:absolute; bottom:45%; right:20%; width:18%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 4px 0 8px #0003, -2px 0 6px #0003; animation: co-door-r 8s ease-in-out infinite alternate; }
.scn-choice-offered .window-light { position:absolute; top:10%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(255,235,200,0.5) 0%, transparent 80%); filter: blur(5px); animation: co-window 6s ease-in-out infinite; }
@keyframes co-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes co-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes co-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes co-door-l { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-3deg); } 100% { transform: rotateY(0deg); } }
@keyframes co-door-r { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(3deg); } 100% { transform: rotateY(0deg); } }
@keyframes co-window { 0% { opacity:0.4; transform: translateX(-50%) scale(0.95); } 50% { opacity:0.8; transform: translateX(-50%) scale(1.05); } 100% { opacity:0.5; transform: translateX(-50%) scale(0.98); } }

.scn-infernal-anguish { background: linear-gradient(180deg, #0a0505 0%, #1a0a0a 30%, #2a1010 60%, #1a0505 100%), radial-gradient(ellipse at 50% 90%, #2a0a0a 0%, transparent 80%); }
.scn-infernal-anguish .ground-abyss { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #0a0505 0%, #050205 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: ia-ground 20s ease-in-out infinite alternate; }
.scn-infernal-anguish .figure-kneeling { position:absolute; bottom:25%; left:30%; width:20%; height:30%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom center; animation: ia-figure 5s ease-in-out infinite; }
.scn-infernal-anguish .flame-small { position:absolute; bottom:20%; right:25%; width:10px; height:15px; background: radial-gradient(ellipse, #c8553d 0%, #a0461a 50%, #4a1a0a 100%); border-radius: 50%; filter: blur(2px); animation: ia-flame 2s ease-in-out infinite alternate; }
.scn-infernal-anguish .chain-link { position:absolute; bottom:40%; left:18%; width:40px; height:4px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: rotate(-30deg); box-shadow: 0 0 4px #000; animation: ia-chain 8s linear infinite; }
.scn-infernal-anguish .flicker-source { position:absolute; top:20%; left:40%; width:20px; height:20px; background: radial-gradient(circle, #c8553d 0%, #7a2a1a 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px #4a1a0a; animation: ia-flicker 3s ease-in-out infinite alternate; }
.scn-infernal-anguish .shadow-deep { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 30% 70%, transparent 0%, #0a0202 70%); animation: ia-shadow 6s ease-in-out infinite; }
@keyframes ia-ground { 0% { opacity:0.8; transform: scaleY(0.95); } 50% { opacity:1; transform: scaleY(1); } 100% { opacity:0.9; transform: scaleY(0.98); } }
@keyframes ia-figure { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-4px) rotate(2deg); } 40% { transform: translateY(2px) rotate(-1deg); } 60% { transform: translateY(-6px) rotate(1deg); } 80% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-2px) rotate(2deg); } }
@keyframes ia-flame { 0% { transform: scaleY(1) scaleX(0.8); opacity:0.7; } 50% { transform: scaleY(1.3) scaleX(1); opacity:1; } 100% { transform: scaleY(0.9) scaleX(0.9); opacity:0.8; } }
@keyframes ia-chain { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-25deg) translateX(5px); } 100% { transform: rotate(-30deg) translateX(0); } }
@keyframes ia-flicker { 0% { box-shadow: 0 0 40px 12px #4a1a0a; opacity:0.6; } 100% { box-shadow: 0 0 80px 24px #7a2a1a; opacity:1; } }
@keyframes ia-shadow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-choosing-fits {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 40%, #1e1e3a 100%),
    radial-gradient(ellipse at 30% 60%, #2a2a5a 0%, transparent 60%);
}
.scn-choosing-fits .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #141428 100%);
}
.scn-choosing-fits .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
}
.scn-choosing-fits .bed-frame {
  position:absolute; bottom:20%; left:15%; width:70%; height:18%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-choosing-fits .mattress {
  position:absolute; bottom:22%; left:18%; width:64%; height:12%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 8px;
  animation: cf-mattress 6s ease-in-out infinite alternate;
}
.scn-choosing-fits .figure {
  position:absolute; bottom:25%; left:30%; width:20%; height:25%;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a14 50%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cf-figure 8s ease-in-out infinite;
}
.scn-choosing-fits .candle {
  position:absolute; bottom:40%; left:70%; width:3%; height:8%;
  background: linear-gradient(180deg, #f0d0a0 0%, #b08050 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px #f0d0a0;
  animation: cf-candle-flicker 1.5s ease-in-out infinite;
}
.scn-choosing-fits .candle-glow {
  position:absolute; bottom:40%; left:70%; width:12%; height:12%;
  background: radial-gradient(circle, rgba(240,200,100,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: cf-glow-pulse 3s ease-in-out infinite alternate;
}
.scn-choosing-fits .window {
  position:absolute; top:10%; left:10%; width:30%; height:35%;
  background: linear-gradient(180deg, #2a2a5a 0%, #3a3a6a 100%);
  border: 4px solid #4a4a5a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,100,180,0.3);
  animation: cf-window-fade 12s ease-in-out infinite alternate;
}
.scn-choosing-fits .shadow-pool {
  position:absolute; bottom:0; left:20%; width:60%; height:10%;
  background: radial-gradient(ellipse at 50% 0%, #0a0a1a 0%, transparent 70%);
  filter: blur(3px);
}
@keyframes cf-mattress {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes cf-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2%) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2%) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cf-candle-flicker {
  0% { height:8%; opacity:1; }
  25% { height:7.5%; opacity:0.9; }
  50% { height:8.5%; opacity:1; }
  75% { height:7%; opacity:0.8; }
  100% { height:8%; opacity:1; }
}
@keyframes cf-glow-pulse {
  0% { transform: scale(1); opacity:0.5; }
  50% { transform: scale(1.2); opacity:0.7; }
  100% { transform: scale(0.9); opacity:0.4; }
}
@keyframes cf-window-fade {
  0% { opacity:0.6; box-shadow: inset 0 0 20px rgba(100,100,180,0.3); }
  50% { opacity:0.8; box-shadow: inset 0 0 30px rgba(100,100,180,0.5); }
  100% { opacity:0.5; box-shadow: inset 0 0 15px rgba(100,100,180,0.2); }
}

.scn-jack-soliloquizes {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 50%, #1e1e3a 100%),
    radial-gradient(ellipse at 70% 60%, #3a3a5a 0%, transparent 60%);
}
.scn-jack-soliloquizes .room-bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #141428 100%);
}
.scn-jack-soliloquizes .desk {
  position:absolute; bottom:18%; left:30%; width:45%; height:12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-jack-soliloquizes .chair {
  position:absolute; bottom:22%; left:35%; width:20%; height:20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%;
  transform-origin: bottom center;
}
.scn-jack-soliloquizes .figure {
  position:absolute; bottom:22%; left:33%; width:16%; height:35%;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a14 50%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: js-figure 5s ease-in-out infinite;
}
.scn-jack-soliloquizes .lamp {
  position:absolute; bottom:30%; left:65%; width:4%; height:10%;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px #e0c080;
  animation: js-lamp-swing 4s ease-in-out infinite;
}
.scn-jack-soliloquizes .lamp-glow {
  position:absolute; bottom:30%; left:65%; width:15%; height:15%;
  background: radial-gradient(circle, rgba(200,160,80,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: js-glow-fade 3s ease-in-out infinite alternate;
}
.scn-jack-soliloquizes .mirror {
  position:absolute; top:10%; left:55%; width:25%; height:40%;
  background: linear-gradient(180deg, #3a3a5a 0%, #5a5a7a 100%);
  border: 3px solid #4a4a5a;
  border-radius: 8px;
  box-shadow: inset 0 0 15px rgba(100,100,180,0.3), 0 0 20px rgba(0,0,0,0.5);
}
.scn-jack-soliloquizes .reflection {
  position:absolute; top:12%; left:57%; width:21%; height:36%;
  background: linear-gradient(180deg, rgba(50,50,80,0.5) 0%, rgba(30,30,50,0.3) 100%);
  border-radius: 6px;
  filter: blur(2px);
  opacity:0.4;
  animation: js-reflection 7s ease-in-out infinite alternate;
}
@keyframes js-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3%) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3%) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes js-lamp-swing {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes js-glow-fade {
  0% { opacity:0.4; transform: scale(0.8); }
  50% { opacity:0.6; transform: scale(1.1); }
  100% { opacity:0.3; transform: scale(0.9); }
}
@keyframes js-reflection {
  0% { opacity:0.2; }
  50% { opacity:0.5; }
  100% { opacity:0.3; }
}

.scn-restless-sleep {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #0e0e1e 100%),
    radial-gradient(ellipse at 50% 10%, #2a2a4a 0%, transparent 70%);
}
.scn-restless-sleep .cell-bg {
  position:absolute; inset:0 0 10% 0;
  background: linear-gradient(180deg, #141428 0%, #0a0a14 100%);
}
.scn-restless-sleep .cot {
  position:absolute; bottom:12%; left:20%; width:60%; height:15%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.8);
}
.scn-restless-sleep .figure {
  position:absolute; bottom:15%; left:30%; width:20%; height:25%;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a14 50%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: rs-figure 9s ease-in-out infinite;
}
.scn-restless-sleep .chains {
  position:absolute; bottom:15%; left:35%; width:5%; height:30%;
  background: repeating-linear-gradient(0deg, #6a5a5a 0px, #6a5a5a 3px, #3a2a2a 3px, #3a2a2a 6px);
  border-radius: 2px;
  opacity:0.7;
  animation: rs-chains 4s ease-in-out infinite alternate;
}
.scn-restless-sleep .light-beam {
  position:absolute; top:0; left:40%; width:20%; height:100%;
  background: linear-gradient(180deg, rgba(200,200,220,0.1) 0%, rgba(150,150,180,0.05) 80%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(3px);
  animation: rs-light-beam 8s ease-in-out infinite alternate;
}
.scn-restless-sleep .dust-motes {
  position:absolute; top:10%; left:30%; width:40%; height:50%;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,0.03) 0%, transparent 20%),
              radial-gradient(circle at 70% 40%, rgba(255,255,255,0.02) 0%, transparent 15%),
              radial-gradient(circle at 50% 70%, rgba(255,255,255,0.04) 0%, transparent 10%);
  filter: blur(1px);
  animation: rs-dust 15s linear infinite;
}
.scn-restless-sleep .window-bars {
  position:absolute; top:5%; left:42%; width:16%; height:30%;
  border: 3px solid #4a4a5a;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  background: repeating-linear-gradient(0deg, #4a4a5a 0px, #4a4a5a 4px, transparent 4px, transparent 20px);
  animation: rs-bars 6s ease-in-out infinite alternate;
}
.scn-restless-sleep .shadow-hand {
  position:absolute; bottom:20%; left:15%; width:15%; height:20%;
  background: radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: rs-hand 7s ease-in-out infinite;
}
@keyframes rs-figure {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2%) rotate(3deg); }
  66% { transform: translateX(-2%) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rs-chains {
  0% { transform: translateY(0); opacity:0.6; }
  50% { transform: translateY(5px); opacity:0.8; }
  100% { transform: translateY(0); opacity:0.6; }
}
@keyframes rs-light-beam {
  0% { opacity:0.1; transform: scaleY(0.8); }
  50% { opacity:0.3; transform: scaleY(1.1); }
  100% { opacity:0.05; transform: scaleY(0.7); }
}
@keyframes rs-dust {
  0% { transform: translateY(0) translateX(0); }
  25% { transform: translateY(-10px) translateX(5px); }
  50% { transform: translateY(-20px) translateX(-5px); }
  75% { transform: translateY(-10px) translateX(10px); }
  100% { transform: translateY(0) translateX(0); }
}
@keyframes rs-bars {
  0% { opacity:0.5; }
  50% { opacity:0.8; }
  100% { opacity:0.4; }
}
@keyframes rs-hand {
  0% { transform: scale(1) rotate(0deg); opacity:0.2; }
  30% { transform: scale(1.2) rotate(5deg); opacity:0.4; }
  60% { transform: scale(0.9) rotate(-5deg); opacity:0.3; }
  100% { transform: scale(1) rotate(0deg); opacity:0.2; }
}

.scn-heatherleghs-optimism {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e8d4b8 30%, #d4b896 60%, #c4a882 100%),
    radial-gradient(ellipse at 80% 20%, #fff0e0 0%, transparent 50%);
}
.scn-heatherleghs-optimism .study-bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #f0e0d0 0%, #e0c8b0 100%);
}
.scn-heatherleghs-optimism .fireplace {
  position:absolute; bottom:20%; left:20%; width:30%; height:45%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-heatherleghs-optimism .fire {
  position:absolute; bottom:20%; left:25%; width:20%; height:20%;
  background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #ff6a20 40%, #f04a10 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: ho-fire 2s ease-in-out infinite alternate;
}
.scn-heatherleghs-optimism .mantel {
  position:absolute; bottom:55%; left:20%; width:30%; height:5%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-heatherleghs-optimism .armchair {
  position:absolute; bottom:18%; left:55%; width:22%; height:25%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: ho-chair 8s ease-in-out infinite alternate;
}
.scn-heatherleghs-optimism .figure-patient {
  position:absolute; bottom:22%; left:57%; width:14%; height:20%;
  background: linear-gradient(135deg, #2a1a1a 0%, #3a2a2a 50%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ho-patient 6s ease-in-out infinite;
}
.scn-heatherleghs-optimism .figure-doctor {
  position:absolute; bottom:20%; left:70%; width:12%; height:25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ho-doctor 5s ease-in-out infinite alternate;
}
.scn-heatherleghs-optimism .bookshelf {
  position:absolute; top:10%; right:5%; width:20%; height:50%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-heatherleghs-optimism .window-light {
  position:absolute; top:5%; left:5%; width:30%; height:40%;
  background: linear-gradient(180deg, rgba(255,255,220,0.4) 0%, rgba(255,255,200,0.1) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  filter: blur(6px);
  animation: ho-window-light 10s ease-in-out infinite alternate;
}
@keyframes ho-fire {
  0% { transform: scale(1) rotate(0deg); opacity:0.8; }
  50% { transform: scale(1.05) rotate(2deg); opacity:0.9; }
  100% { transform: scale(0.95) rotate(-2deg); opacity:0.7; }
}
@keyframes ho-chair {
  0% { transform: translateY(0); box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
  50% { transform: translateY(-2px); box-shadow: 0 8px 16px rgba(0,0,0,0.4); }
  100% { transform: translateY(0); box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
}
@keyframes ho-patient {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2%) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2%) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ho-doctor {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(3%) rotate(2deg); }
  66% { transform: translateX(-1%) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ho-window-light {
  0% { opacity:0.2; transform: scaleX(0.9); }
  50% { opacity:0.5; transform: scaleX(1.1); }
  100% { opacity:0.3; transform: scaleX(0.95); }
}

.scn-dinner-table-embarrassment {
  background: linear-gradient(180deg, #f5e6d3 0%, #d4b896 60%), radial-gradient(ellipse at 50% 100%, #c8a882 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-dinner-table-embarrassment .wall {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8d5b7 0%, #d4b896 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.1);
}
.scn-dinner-table-embarrassment .table {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 18%;
  background: linear-gradient(180deg, #8b6f47 0%, #6b4f2b 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  transform: perspective(200px) rotateX(20deg);
  animation: det-table 12s ease-in-out infinite alternate;
}
.scn-dinner-table-embarrassment .plate {
  position: absolute;
  bottom: 27%;
  left: 25%;
  width: 30%;
  height: 10%;
  background: radial-gradient(circle at 35% 40%, #f0e6d0 0%, #c8b89a 70%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: det-plate 6s ease-in-out infinite;
}
.scn-dinner-table-embarrassment .candle {
  position: absolute;
  bottom: 37%;
  left: 50%;
  width: 6px;
  height: 20px;
  margin-left: -3px;
  background: linear-gradient(180deg, #f0d090 0%, #c89050 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px #f0c060;
  animation: det-candle 4s ease-in-out infinite alternate;
}
.scn-dinner-table-embarrassment .figure-host {
  position: absolute;
  bottom: 22%;
  right: 15%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: det-host 10s ease-in-out infinite;
}
.scn-dinner-table-embarrassment .figure-guest {
  position: absolute;
  bottom: 22%;
  left: 18%;
  width: 26px;
  height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: det-guest 8s ease-in-out infinite;
}
.scn-dinner-table-embarrassment .guest-beard {
  position: absolute;
  bottom: 28%;
  left: 16%;
  width: 14px;
  height: 10px;
  background: radial-gradient(ellipse at 50% 30%, #a0461a 0%, #6b2d0e 80%);
  border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%;
  animation: det-beard 3.5s ease-in-out infinite alternate;
}
.scn-dinner-table-embarrassment .guest-hand {
  position: absolute;
  bottom: 26%;
  left: 26%;
  width: 8px;
  height: 12px;
  background: #2a1a1a;
  border-radius: 40% 40% 30% 30%;
  transform: rotate(15deg);
  animation: det-hand 2s ease-in-out infinite;
}
.scn-dinner-table-embarrassment .shadow-flicker {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 45% 50%, rgba(0,0,0,0) 40%, rgba(0,0,0,0.08) 100%);
  animation: det-shadow 5s ease-in-out infinite alternate;
}
@keyframes det-table { 0% { transform: perspective(200px) rotateX(20deg) translateY(0); } 50% { transform: perspective(200px) rotateX(22deg) translateY(-2px); } 100% { transform: perspective(200px) rotateX(20deg) translateY(0); } }
@keyframes det-plate { 0%,100% { opacity: 1; } 50% { opacity: 0.8; } }
@keyframes det-candle { 0% { transform: scaleY(1) translateY(0); opacity: 1; } 50% { transform: scaleY(1.1) translateY(-2px); opacity: 0.9; } 100% { transform: scaleY(0.95) translateY(1px); opacity: 1; } }
@keyframes det-host { 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 det-guest { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(3px) rotate(-2deg); } 60% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes det-beard { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.2); } 100% { transform: scaleY(0.9); } }
@keyframes det-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes det-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

.scn-story-collapse {
  background: linear-gradient(180deg, #faf0e6 0%, #e6d5b8 60%), radial-gradient(ellipse at 50% 80%, #dcc7a3 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-story-collapse .door-frame {
  position: absolute;
  bottom: 5%;
  left: 5%;
  right: 30%;
  height: 75%;
  border: 8px solid #6b4f2b;
  border-radius: 4px 4px 0 0;
  background: linear-gradient(180deg, #8b7a5a 0%, #6b5a3a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: stc-frame 12s ease-in-out infinite alternate;
}
.scn-story-collapse .door-panel {
  position: absolute;
  bottom: 5%;
  left: 5%;
  right: 30%;
  height: 75%;
  border: 8px solid #6b4f2b;
  border-radius: 4px 4px 0 0;
  background: linear-gradient(180deg, #8b7a5a 0%, #6b5a3a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: stc-panel 4s ease-in-out infinite alternate;
  transform-origin: left center;
  z-index: 1;
}
.scn-story-collapse .figure-leaving {
  position: absolute;
  bottom: 15%;
  right: 10%;
  width: 28px;
  height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: stc-leave 5s ease-in-out infinite;
  z-index: 2;
}
.scn-story-collapse .figure-arm {
  position: absolute;
  bottom: 22%;
  right: 16%;
  width: 18px;
  height: 6px;
  background: #2a2a3a;
  border-radius: 30% 30% 40% 40%;
  transform: rotate(-30deg);
  transform-origin: left center;
  animation: stc-arm 2s ease-in-out infinite;
  z-index: 2;
}
.scn-story-collapse .hat {
  position: absolute;
  bottom: 52%;
  right: 10%;
  width: 20px;
  height: 12px;
  background: #1a1a2a;
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  animation: stc-hat 3s ease-in-out infinite;
  z-index: 2;
}
.scn-story-collapse .sparkle {
  position: absolute;
  bottom: 60%;
  right: 20%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, #ffd700 0%, rgba(255,215,0,0) 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffd700;
  animation: stc-sparkle 1.5s ease-in-out infinite alternate;
  z-index: 3;
}
.scn-story-collapse .floor-shadow {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.1) 0%, transparent 100%);
  animation: stc-floor 6s ease-in-out infinite alternate;
}
@keyframes stc-frame { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes stc-panel { 0% { transform: scaleX(1); } 30% { transform: scaleX(0.2); } 60% { transform: scaleX(1); } 100% { transform: scaleX(1); } }
@keyframes stc-leave { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-5px) rotate(-2deg); } 50% { transform: translateX(-10px) rotate(0); } 75% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes stc-arm { 0% { transform: rotate(-30deg) scaleY(1); } 50% { transform: rotate(-50deg) scaleY(1.2); } 100% { transform: rotate(-30deg) scaleY(1); } }
@keyframes stc-hat { 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 stc-sparkle { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes stc-floor { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-doctor-heatherlegh-offer {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #3a3a5a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-doctor-heatherlegh-offer .sky-dark {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #16163a 0%, #2a2a4a 100%);
  animation: dho-sky 20s ease-in-out infinite alternate;
}
.scn-doctor-heatherlegh-offer .street {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: dho-street 10s ease-in-out infinite alternate;
}
.scn-doctor-heatherlegh-offer .lamp-post {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 4px;
  height: 60px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.3);
  animation: dho-lamp 6s ease-in-out infinite;
}
.scn-doctor-heatherlegh-offer .lamp-glow {
  position: absolute;
  bottom: 28%;
  left: 28%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, #f0c060 0%, rgba(240,192,96,0) 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #f0c060;
  animation: dho-glow 4s ease-in-out infinite alternate;
}
.scn-doctor-heatherlegh-offer .figure-doctor {
  position: absolute;
  bottom: 22%;
  left: 20%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: dho-doc 8s ease-in-out infinite;
}
.scn-doctor-heatherlegh-offer .figure-narrator {
  position: absolute;
  bottom: 20%;
  right: 20%;
  width: 24px;
  height: 48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: dho-narrator 9s ease-in-out infinite;
}
.scn-doctor-heatherlegh-offer .lurker {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  filter: blur(2px);
  animation: dho-lurk 7s ease-in-out infinite alternate;
}
.scn-doctor-heatherlegh-offer .fog {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,200,220,0.1) 0%, transparent 70%);
  pointer-events: none;
  animation: dho-fog 30s linear infinite;
}
@keyframes dho-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes dho-street { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dho-lamp { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes dho-glow { 0% { box-shadow: 0 0 40px 15px #f0c060; opacity: 0.7; } 50% { box-shadow: 0 0 70px 30px #f0c060; opacity: 1; } 100% { box-shadow: 0 0 50px 20px #f0c060; opacity: 0.8; } }
@keyframes dho-doc { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dho-narrator { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-4px) rotate(2deg); } 60% { transform: translateX(0) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dho-lurk { 0% { opacity: 0.3; transform: translateY(0) scale(1); } 50% { opacity: 0.6; transform: translateY(-2px) scale(1.05); } 100% { opacity: 0.4; transform: translateY(0) scale(1); } }
@keyframes dho-fog { 0% { transform: translateX(0); } 50% { transform: translateX(20px); } 100% { transform: translateX(0); } }

.scn-confrontation-with-doctor {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 60%), radial-gradient(ellipse at 50% 50%, #2a2a4a 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-confrontation-with-doctor .room-dark {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%);
  box-shadow: inset 0 20px 60px rgba(0,0,0,0.6);
  animation: cwd-room 15s ease-in-out infinite alternate;
}
.scn-confrontation-with-doctor .window-dim {
  position: absolute;
  top: 10%;
  right: 10%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 2px solid #2a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.1);
  animation: cwd-window 8s ease-in-out infinite alternate;
}
.scn-confrontation-with-doctor .figure-doctor-c {
  position: absolute;
  bottom: 22%;
  left: 15%;
  width: 26px;
  height: 52px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: cwd-doc 6s ease-in-out infinite;
}
.scn-confrontation-with-doctor .doctor-arm {
  position: absolute;
  bottom: 28%;
  left: 22%;
  width: 14px;
  height: 6px;
  background: #2a2a3a;
  border-radius: 30%;
  transform: rotate(30deg);
  transform-origin: left center;
  animation: cwd-arm 3s ease-in-out infinite alternate;
}
.scn-confrontation-with-doctor .figure-pansay {
  position: absolute;
  bottom: 20%;
  right: 20%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  animation: cwd-pansay 7s ease-in-out infinite;
}
.scn-confrontation-with-doctor .shadow-being {
  position: absolute;
  bottom: 15%;
  left: 55%;
  width: 18px;
  height: 45px;
  background: linear-gradient(180deg, #0a0a15 0%, #050510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  filter: blur(3px);
  animation: cwd-shadow 5s ease-in-out infinite alternate;
}
.scn-confrontation-with-doctor .eyes {
  position: absolute;
  bottom: 38%;
  left: 56%;
  width: 8px;
  height: 4px;
  background: radial-gradient(circle, #c04040 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #c04040;
  animation: cwd-eyes 4s ease-in-out infinite alternate;
}
.scn-confrontation-with-doctor .floor-wood {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: repeating-linear-gradient(90deg, #1a1a1a 0px, #1a1a1a 10px, #2a2a2a 10px, #2a2a2a 12px);
  border-top: 2px solid #0a0a0a;
  animation: cwd-floor 20s linear infinite;
}
@keyframes cwd-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cwd-window { 0% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.05); opacity: 0.5; } 100% { transform: scale(0.95); opacity: 0.2; } }
@keyframes cwd-doc { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(2px) rotate(-1deg); } 40% { transform: translateX(0) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cwd-arm { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(45deg) scaleY(1.2); } 100% { transform: rotate(30deg) scaleY(1); } }
@keyframes cwd-pansay { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cwd-shadow { 0% { opacity: 0.2; transform: translateY(0) scale(1); } 50% { opacity: 0.6; transform: translateY(-3px) scale(1.1); } 100% { opacity: 0.3; transform: translateY(0) scale(1); } }
@keyframes cwd-eyes { 0% { opacity: 0; } 50% { opacity: 1; box-shadow: 0 0 12px 4px #c04040; } 100% { opacity: 0.5; } }
@keyframes cwd-floor { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }

.scn-item-rickshaw-absurdity {
  background: linear-gradient(180deg, #3a2e1a 0%, #2a1e0a 60%, #1a1200 100%),
              radial-gradient(ellipse at 30% 40%, #5a4a2a 0%, transparent 70%);
}
.scn-item-rickshaw-absurdity .room-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2e1a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
  animation: ira-wall 6s ease-in-out infinite alternate;
}
.scn-item-rickshaw-absurdity .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1e0a 0%, #1a1200 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,.6);
  animation: ira-floor 4s ease-in-out infinite;
}
.scn-item-rickshaw-absurdity .rickshaw {
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c8553d 0%, #8a3525 50%, #5a1a10 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,.5);
  animation: ira-rickshaw 2s ease-in-out infinite;
}
.scn-item-rickshaw-absurdity .ghost-a {
  position: absolute; bottom: 35%; left: 20%;
  width: 40px; height: 60px;
  background: radial-gradient(circle at 50% 30%, rgba(200,200,200,.7) 0%, rgba(200,200,200,.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: ira-ghost 5s ease-in-out infinite alternate;
}
.scn-item-rickshaw-absurdity .ghost-b {
  position: absolute; bottom: 30%; right: 15%;
  width: 30px; height: 50px;
  background: radial-gradient(circle at 50% 30%, rgba(220,200,180,.6) 0%, rgba(220,200,180,.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: ira-ghost 7s ease-in-out infinite alternate-reverse;
}
.scn-item-rickshaw-absurdity .lantern {
  position: absolute; bottom: 45%; left: 30%;
  width: 14px; height: 20px;
  background: radial-gradient(circle, #d09050 0%, #a06830 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(208,144,80,.6);
  animation: ira-lantern 3s ease-in-out infinite;
}
.scn-item-rickshaw-absurdity .absurd-hat {
  position: absolute; top: 25%; right: 25%;
  width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a1a1d 0%, #3a0a0d 100%);
  border-radius: 50% 50% 30% 30% / 100% 100% 30% 30%;
  transform: rotate(15deg);
  box-shadow: 0 5px 10px rgba(0,0,0,.4);
  animation: ira-hat 4s ease-in-out infinite alternate;
}
@keyframes ira-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ira-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ira-rickshaw { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(1deg) } 75% { transform: translateX(-52%) rotate(-1deg) } }
@keyframes ira-ghost { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.05) } 100% { transform: translateY(5px) scale(.95) } }
@keyframes ira-lantern { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes ira-hat { 0% { transform: rotate(10deg) } 50% { transform: rotate(20deg) translateY(-5px) } 100% { transform: rotate(15deg) } }

.scn-afternoon-ride-shadow {
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 30%, #7a7a8a 0%, transparent 70%);
}
.scn-afternoon-ride-shadow .overcast-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  animation: ars-sky 12s ease-in-out infinite alternate;
}
.scn-afternoon-ride-shadow .distant-hills {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 30% 50% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: ars-hills 18s ease-in-out infinite alternate;
}
.scn-afternoon-ride-shadow .path-divide {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, transparent 40%, #4a3a2a 45%, #4a3a2a 55%, transparent 60%);
  animation: ars-path 10s ease-in-out infinite;
}
.scn-afternoon-ride-shadow .horse-left {
  position: absolute; bottom: 28%; left: 20%; width: 60px; height: 40px;
  background: #2a2a2a;
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%;
  animation: ars-horse 4s ease-in-out infinite;
}
.scn-afternoon-ride-shadow .rider-left {
  position: absolute; bottom: 40%; left: 20%; width: 20px; height: 35px;
  background: #1a1a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(20px);
  animation: ars-rider 4s ease-in-out infinite;
}
.scn-afternoon-ride-shadow .horse-right {
  position: absolute; bottom: 28%; right: 20%; width: 60px; height: 40px;
  background: #2a2a2a;
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%;
  animation: ars-horse 4s ease-in-out infinite 2s;
}
.scn-afternoon-ride-shadow .rider-right {
  position: absolute; bottom: 40%; right: 20%; width: 20px; height: 35px;
  background: #1a1a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-20px);
  animation: ars-rider 4s ease-in-out infinite 2s;
}
.scn-afternoon-ride-shadow .lie-shadow {
  position: absolute; bottom: 25%; left: 50%; width: 60%; height: 20%;
  background: linear-gradient(90deg, transparent, #1a1a2a 45%, #1a1a2a 55%, transparent);
  transform: translateX(-50%);
  animation: ars-shadow 5s ease-in-out infinite alternate;
}
@keyframes ars-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes ars-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ars-path { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes ars-horse { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-4px) } 50% { transform: translateY(-2px) } 75% { transform: translateY(-4px) } }
@keyframes ars-rider { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(-2px) } 75% { transform: translateY(-4px) rotate(-2deg) } }
@keyframes ars-shadow { 0% { opacity:.4; transform: translateX(-50%) scaleX(1) } 50% { opacity:.8; transform: translateX(-48%) scaleX(1.1) } 100% { opacity:.4; transform: translateX(-52%) scaleX(.9) } }

.scn-road-to-jakko {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 20%, #5a6a7a 0%, transparent 70%);
}
.scn-road-to-jakko .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  animation: rtj-sky 15s ease-in-out infinite alternate;
}
.scn-road-to-jakko .hill-loom {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 40% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,.4);
  animation: rtj-hill 12s ease-in-out infinite alternate;
}
.scn-road-to-jakko .convent-spire {
  position: absolute; bottom: 45%; left: 30%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: rtj-spire 20s ease-in-out infinite;
}
.scn-road-to-jakko .road-climb {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: rtj-road 8s ease-in-out infinite;
}
.scn-road-to-jakko .horse-a {
  position: absolute; bottom: 22%; left: 15%; width: 50px; height: 35px;
  background: #2a2a2a;
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%;
  animation: rtj-horse 3s ease-in-out infinite;
}
.scn-road-to-jakko .rider-a {
  position: absolute; bottom: 35%; left: 15%; width: 18px; height: 30px;
  background: #1a1a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(16px);
  animation: rtj-rider 3s ease-in-out infinite;
}
.scn-road-to-jakko .horse-b {
  position: absolute; bottom: 22%; right: 15%; width: 50px; height: 35px;
  background: #2a2a2a;
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%;
  animation: rtj-horse 3s ease-in-out infinite 1.5s;
}
.scn-road-to-jakko .rider-b {
  position: absolute; bottom: 35%; right: 15%; width: 18px; height: 30px;
  background: #1a1a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-16px);
  animation: rtj-rider 3s ease-in-out infinite 1.5s;
}
.scn-road-to-jakko .heart-pulse {
  position: absolute; bottom: 50%; left: 50%; width: 10px; height: 10px;
  background: #a0461a;
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(160,70,26,.5);
  animation: rtj-heart 1s ease-in-out infinite;
}
@keyframes rtj-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes rtj-hill { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes rtj-spire { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes rtj-road { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rtj-horse { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-5px) } 50% { transform: translateY(-2px) } 75% { transform: translateY(-5px) } }
@keyframes rtj-rider { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-5px) rotate(3deg) } 50% { transform: translateY(-2px) rotate(0deg) } 75% { transform: translateY(-5px) rotate(-3deg) } }
@keyframes rtj-heart { 0%,100% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.3); opacity:1 } }

.scn-memory-laden-path {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 40%, #1a2a1a 100%),
              radial-gradient(ellipse at 50% 50%, #2a2a1a 0%, transparent 70%);
}
.scn-memory-laden-path .dark-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  animation: mlp-sky 20s ease-in-out infinite alternate;
}
.scn-memory-laden-path .boulder-left {
  position: absolute; bottom: 20%; left: 5%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 40% 30% 20% 30% / 50% 40% 30% 40%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: mlp-boulder 15s ease-in-out infinite alternate;
}
.scn-memory-laden-path .boulder-right {
  position: absolute; bottom: 25%; right: 5%; width: 90px; height: 70px;
  background: linear-gradient(220deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 30% 40% 30% 20% / 40% 50% 40% 30%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: mlp-boulder 18s ease-in-out infinite alternate-reverse;
}
.scn-memory-laden-path .pine-tree {
  position: absolute; bottom: 30%; left: 40%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a3a1a 0%, #0a1a0a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: mlp-pine 12s ease-in-out infinite;
}
.scn-memory-laden-path .torrent {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 30% 40% 0 0 / 50% 50% 0 0;
  animation: mlp-torrent 6s ease-in-out infinite;
}
.scn-memory-laden-path .figure-walk {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 50px;
  background: #1a1a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mlp-figure 10s ease-in-out infinite;
}
.scn-memory-laden-path .wind-whisper {
  position: absolute; top: 20%; left: 0; right: 0; height: 10px;
  background: linear-gradient(90deg, transparent, rgba(200,200,200,.1) 50%, transparent);
  animation: mlp-wind 8s linear infinite;
}
.scn-memory-laden-path .shame-shadow {
  position: absolute; bottom: 10%; left: 50%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.8) 0%, transparent 70%);
  animation: mlp-shadow 5s ease-in-out infinite alternate;
}
@keyframes mlp-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes mlp-boulder { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mlp-pine { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes mlp-torrent { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mlp-figure { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes mlp-wind { 0% { transform: translateX(-100%) opacity:.3 } 50% { opacity:.6 } 100% { transform: translateX(100%) opacity:.3 } }
@keyframes mlp-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

/* Scene: reunion-with-kitty (rw) */
.scn-reunion-with-kitty {
  background: 
    linear-gradient(180deg, #f9e4c0 0%, #e6c9a0 40%, #c9a87a 100%),
    radial-gradient(ellipse at 70% 30%, #fff5e6 0%, transparent 60%);
}
.scn-reunion-with-kitty .room-walls { position:absolute; inset:0; background: linear-gradient(135deg, #e8d4b0 0%, #d4b890 100%); animation: rw-walls 20s ease-in-out infinite alternate; }
.scn-reunion-with-kitty .window { position:absolute; top:15%; left:60%; width:30%; height:50%; background: linear-gradient(180deg, #b0d0e8 0%, #d0e4f4 100%); border-radius: 10% / 20%; box-shadow: inset 0 0 30px rgba(255,255,200,.5); animation: rw-window 8s ease-in-out infinite alternate; }
.scn-reunion-with-kitty .sunbeam { position:absolute; top:15%; left:60%; width:25%; height:70%; background: linear-gradient(180deg, rgba(255,230,150,.6) 0%, rgba(255,200,100,.2) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: rw-sunbeam 12s ease-in-out infinite; }
.scn-reunion-with-kitty .sofa { position:absolute; bottom:18%; left:30%; width:40%; height:35%; background: linear-gradient(180deg, #b08060 0%, #8a6040 100%); border-radius: 20% 20% 8% 8% / 40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.3); animation: rw-sofa 6s ease-in-out infinite; }
.scn-reunion-with-kitty .figure-kitty { position:absolute; bottom:22%; left:45%; width:12%; height:40%; background: linear-gradient(180deg, #e6c9a0 0%, #c9a87a 40%, #8a6040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rw-kitty 4s ease-in-out infinite; }
.scn-reunion-with-kitty .figure-narrator { position:absolute; bottom:20%; left:55%; width:10%; height:38%; background: linear-gradient(180deg, #d4b890 0%, #b89a70 50%, #7a5a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rw-narrator 5s ease-in-out infinite alternate; }
.scn-reunion-with-kitty .table { position:absolute; bottom:8%; left:55%; width:20%; height:12%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 10% / 20%; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: rw-table 10s ease-in-out infinite; }
.scn-reunion-with-kitty .vase { position:absolute; bottom:14%; left:62%; width:6%; height:18%; background: linear-gradient(180deg, #d4b890 0%, #b89a70 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 10px rgba(200,150,80,.3); animation: rw-vase 7s ease-in-out infinite alternate; }
@keyframes rw-walls { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes rw-window { 0% { transform: scaleY(1); box-shadow: inset 0 0 30px rgba(255,255,200,.5); } 50% { transform: scaleY(1.02); box-shadow: inset 0 0 50px rgba(255,255,200,.7); } 100% { transform: scaleY(1); } }
@keyframes rw-sunbeam { 0% { opacity: .4; transform: skewX(-3deg); } 50% { opacity: .7; transform: skewX(3deg); } 100% { opacity: .5; } }
@keyframes rw-sofa { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rw-kitty { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5%) rotate(2deg); } 50% { transform: translateX(10%) rotate(-1deg); } 75% { transform: translateX(5%) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes rw-narrator { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3%) rotate(-1deg); } 66% { transform: translateX(3%) rotate(1deg); } 100% { transform: translateX(0); } }
@keyframes rw-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes rw-vase { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }

/* Scene: ride-to-san-jowlie (rs) */
.scn-ride-to-san-jowlie {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #b0d0e8 40%, #e0f0f8 70%, #c0d8e0 100%),
    radial-gradient(ellipse at 80% 20%, #fff8e0 0%, transparent 40%);
}
.scn-ride-to-san-jowlie .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d0e8 0%, #d0e8f4 100%); animation: rs-sky 20s ease-in-out infinite alternate; }
.scn-ride-to-san-jowlie .hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 50%, #2a4a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: rs-hills 18s ease-in-out infinite; }
.scn-ride-to-san-jowlie .road { position:absolute; bottom:12%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); clip-path: polygon(10% 0%, 90% 0%, 85% 100%, 15% 100%); animation: rs-road 12s ease-in-out infinite; }
.scn-ride-to-san-jowlie .horse-fore { position:absolute; bottom:16%; left:35%; width:20%; height:30%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rs-horse-fore 3s ease-in-out infinite; }
.scn-ride-to-san-jowlie .rider-fore { position:absolute; bottom:26%; left:38%; width:8%; height:18%; background: linear-gradient(180deg, #d4b890 0%, #b89a70 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rs-rider-fore 3s ease-in-out infinite alternate; }
.scn-ride-to-san-jowlie .horse-aft { position:absolute; bottom:17%; left:52%; width:18%; height:28%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rs-horse-aft 3s ease-in-out infinite 1.5s; }
.scn-ride-to-san-jowlie .rider-aft { position:absolute; bottom:27%; left:55%; width:7%; height:16%; background: linear-gradient(180deg, #c9a87a 0%, #a88a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rs-rider-aft 3s ease-in-out infinite alternate 1.5s; }
.scn-ride-to-san-jowlie .tree-left { position:absolute; bottom:20%; left:5%; width:12%; height:60%; background: linear-gradient(180deg, #3a5a2a 0%, #1a2a0a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; animation: rs-tree 30s ease-in-out infinite; }
.scn-ride-to-san-jowlie .tree-right { position:absolute; bottom:22%; right:8%; width:10%; height:55%; background: linear-gradient(180deg, #4a6a3a 0%, #1a2a0a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; animation: rs-tree 35s ease-in-out infinite reverse; }
@keyframes rs-sky { 0% { opacity: .8; background-position: 0% 0%; } 50% { opacity: 1; background-position: 50% 0%; } 100% { opacity: .7; background-position: 100% 0%; } }
@keyframes rs-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(2px); } }
@keyframes rs-road { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes rs-horse-fore { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3%) translateY(-2%) rotate(1deg); } 50% { transform: translateX(6%) translateY(0) rotate(-1deg); } 75% { transform: translateX(3%) translateY(-2%) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes rs-rider-fore { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(3deg); } 50% { transform: translateX(4%) rotate(-2deg); } 75% { transform: translateX(2%) rotate(3deg); } 100% { transform: translateX(0); } }
@keyframes rs-horse-aft { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2%) translateY(-2%) rotate(1deg); } 50% { transform: translateX(4%) translateY(0) rotate(-1deg); } 75% { transform: translateX(2%) translateY(-2%) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes rs-rider-aft { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1%) rotate(2deg); } 50% { transform: translateX(2%) rotate(-1deg); } 75% { transform: translateX(1%) rotate(2deg); } 100% { transform: translateX(0); } }
@keyframes rs-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

/* Scene: convent-corner (cc) */
.scn-convent-corner {
  background: 
    linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 30%, #8a9aa0 60%, #b0c0c8 100%),
    radial-gradient(ellipse at 70% 20%, #d0e0e8 0%, transparent 50%);
}
.scn-convent-corner .wall-bg { position:absolute; inset:0 30% 0 0; background: linear-gradient(180deg, #7a8a8a 0%, #4a5a5a 100%); border-right: 4px solid #1a2a2a; animation: cc-wall 15s ease-in-out infinite; }
.scn-convent-corner .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 0 0 0 / 20% 0 0 0; animation: cc-floor 12s ease-in-out infinite; }
.scn-convent-corner .window-arch { position:absolute; top:10%; left:35%; width:25%; height:50%; background: linear-gradient(180deg, #c0d0e0 0%, #a0b0c0 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 0 40px rgba(200,220,240,.6); animation: cc-window 8s ease-in-out infinite alternate; }
.scn-convent-corner .beam-light { position:absolute; top:10%; left:50%; width:20%; height:70%; background: linear-gradient(180deg, rgba(220,230,240,.5) 0%, rgba(180,200,220,.1) 100%); clip-path: polygon(0 0, 100% 0, 75% 100%, 25% 100%); animation: cc-beam 10s ease-in-out infinite; }
.scn-convent-corner .figure-monk { position:absolute; bottom:20%; left:20%; width:12%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cc-monk 4s ease-in-out infinite; }
.scn-convent-corner .book { position:absolute; bottom:22%; left:25%; width:6%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 10% / 20%; animation: cc-book 6s ease-in-out infinite alternate; }
.scn-convent-corner .shadow-cross { position:absolute; top:25%; left:42%; width:16%; height:30%; background: #1a2a2a; opacity: .4; clip-path: polygon(40% 0%, 60% 0%, 60% 40%, 100% 40%, 100% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 60%, 0% 60%, 0% 40%, 40% 40%); animation: cc-cross 20s ease-in-out infinite; }
.scn-convent-corner .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 30% 50%, rgba(200,200,150,.1) 0%, transparent 70%); animation: cc-dust 5s ease-in-out infinite; pointer-events: none; }
@keyframes cc-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes cc-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cc-window { 0% { transform: scaleX(1); box-shadow: inset 0 0 40px rgba(200,220,240,.6); } 50% { transform: scaleX(1.03); box-shadow: inset 0 0 60px rgba(200,220,240,.8); } 100% { transform: scaleX(1); } }
@keyframes cc-beam { 0% { opacity: .3; transform: skewX(-5deg); } 50% { opacity: .7; transform: skewX(5deg); } 100% { opacity: .4; } }
@keyframes cc-monk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(2deg); } 50% { transform: translateX(4%) rotate(-1deg); } 75% { transform: translateX(2%) rotate(2deg); } 100% { transform: translateX(0); } }
@keyframes cc-book { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes cc-cross { 0% { opacity: .2; } 50% { opacity: .5; } 100% { opacity: .3; } }
@keyframes cc-dust { 0%,100% { opacity: .3; } 50% { opacity: .6; } }

/* Scene: mrs-wessington-appears (mw) */
.scn-mrs-wessington-appears {
  background: 
    linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 40%, #4a5a3a 70%, #2a3a1a 100%),
    radial-gradient(ellipse at 40% 60%, #fff8c0 0%, transparent 60%);
}
.scn-mrs-wessington-appears .road-surface { position:absolute; bottom:10%; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: polygon(0 20%, 100% 0%, 100% 100%, 0 100%); animation: mw-road 8s ease-in-out infinite; }
.scn-mrs-wessington-appears .sky-turbid { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0b8a0 0%, #d0d8c0 50%, #e0e8d0 100%); animation: mw-sky 20s ease-in-out infinite alternate; }
.scn-mrs-wessington-appears .rickshaw-body { position:absolute; bottom:20%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 10px 30px rgba(0,0,0,.5); animation: mw-rickshaw 6s ease-in-out infinite; }
.scn-mrs-wessington-appears .rickshaw-wheel { position:absolute; bottom:12%; left:40%; width:12%; height:12%; background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 70%); border-radius: 50%; border: 4px solid #6a5a4a; animation: mw-wheel 2s linear infinite; }
.scn-mrs-wessington-appears .figure-wessington { position:absolute; bottom:28%; left:48%; width:10%; height:40%; background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 50%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(200,180,120,.5); animation: mw-figure 4s ease-in-out infinite; }
.scn-mrs-wessington-appears .figure-narrator-shadow { position:absolute; bottom:22%; left:30%; width:8%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: .6; animation: mw-shadow 5s ease-in-out infinite alternate; }
.scn-mrs-wessington-appears .livery-vert { position:absolute; bottom:20%; left:60%; width:4%; height:30%; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 10%; animation: mw-livery 10s ease-in-out infinite; }
.scn-mrs-wessington-appears .panel-glow { position:absolute; bottom:25%; left:42%; width:8%; height:8%; background: radial-gradient(circle, #ffd080 0%, #c09040 50%, transparent 70%); animation: mw-glow 3s ease-in-out infinite; }
@keyframes mw-road { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes mw-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes mw-rickshaw { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mw-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes mw-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(2deg); } 50% { transform: translateX(4%) rotate(-1deg); } 75% { transform: translateX(2%) rotate(2deg); } 100% { transform: translateX(0); } }
@keyframes mw-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5%) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes mw-livery { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes mw-glow { 0% { opacity: .2; transform: scale(1); } 50% { opacity: .8; transform: scale(1.5); } 100% { opacity: .3; transform: scale(1); } }

.scn-fortnight-haunting {
  background: 
    linear-gradient(180deg, #5c6b7a 0%, #3a4a5a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 0%, #5c6b7a 0%, transparent 60%);
}
.scn-fortnight-haunting .fh-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 60%, transparent 100%);
  animation: fh-sky 12s ease-in-out infinite alternate;
}
.scn-fortnight-haunting .fh-hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: fh-hills 18s ease-in-out infinite alternate;
}
.scn-fortnight-haunting .fh-road {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.6);
}
.scn-fortnight-haunting .fh-rickshaw {
  position: absolute; bottom: 20%; left: 50%; width: 140px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, rgba(200,200,210,0.6) 0%, rgba(150,160,170,0.2) 70%, transparent 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 0 20px 10px rgba(200,200,210,0.3);
  animation: fh-rickshaw 4s ease-in-out infinite;
}
.scn-fortnight-haunting .fh-figure-left {
  position: absolute; bottom: 16%; left: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: fh-figure-l 3s ease-in-out infinite;
}
.scn-fortnight-haunting .fh-figure-right {
  position: absolute; bottom: 16%; right: 25%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #e0e0e8 0%, #c0c0c8 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: fh-figure-r 3s ease-in-out infinite 1.5s;
}
.scn-fortnight-haunting .fh-mist {
  position: absolute; inset: 20% 10% 30% 10%; 
  background: radial-gradient(ellipse at 50% 50%, rgba(180,200,210,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: fh-mist 12s ease-in-out infinite alternate;
}
@keyframes fh-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes fh-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes fh-rickshaw { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } }
@keyframes fh-figure-l { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fh-figure-r { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fh-mist { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-item-ghost-rickshaw {
  background: 
    linear-gradient(180deg, #9ab0c0 0%, #d0dee8 50%, #f0f4f8 100%),
    radial-gradient(ellipse at 50% 0%, #f0f4f8 0%, transparent 70%);
}
.scn-item-ghost-rickshaw .ig-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #aac0d0 0%, #d0dee8 60%, transparent 100%);
  animation: ig-sky 8s ease-in-out infinite alternate;
}
.scn-item-ghost-rickshaw .ig-sun {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff4c0 0%, #ffe080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,224,128,0.4);
  animation: ig-sun 6s ease-in-out infinite;
}
.scn-item-ghost-rickshaw .ig-road {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.3);
}
.scn-item-ghost-rickshaw .ig-rickshaw {
  position: absolute; bottom: 22%; left: 40%; width: 120px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #4a5a6a 0%, #3a4a5a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 2px 2px 8px rgba(0,0,0,.5);
  animation: ig-rickshaw 3s ease-in-out infinite;
}
.scn-item-ghost-rickshaw .ig-rickshaw-ghost {
  position: absolute; bottom: 22%; left: 40%; width: 120px; height: 70px;
  transform: translateX(-50%) translateY(2px);
  background: radial-gradient(ellipse at 50% 50%, rgba(200,210,220,0.3) 0%, transparent 70%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  filter: blur(4px);
  animation: ig-ghost 4s ease-in-out infinite alternate;
}
.scn-item-ghost-rickshaw .ig-tree {
  position: absolute; bottom: 25%; left: 65%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ig-tree 10s ease-in-out infinite;
}
.scn-item-ghost-rickshaw .ig-tree-shadow {
  position: absolute; bottom: 10%; left: 62%; width: 50px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: ig-shadow 10s ease-in-out infinite;
}
@keyframes ig-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ig-sun { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } }
@keyframes ig-rickshaw { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes ig-ghost { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.1; } }
@keyframes ig-tree { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes ig-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } }

.scn-insanity-doubt {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1e1e2e 100%),
    radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 70%);
}
.scn-insanity-doubt .id-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%);
  animation: id-wall 12s ease-in-out infinite alternate;
}
.scn-insanity-doubt .id-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.6);
}
.scn-insanity-doubt .id-window {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border: 4px solid #2a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: id-window 8s ease-in-out infinite alternate;
}
.scn-insanity-doubt .id-window-light {
  position: absolute; top: 18%; left: 62%; width: 60px; height: 70px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,210,220,0.15) 0%, transparent 80%);
  filter: blur(6px);
  animation: id-window-light 8s ease-in-out infinite alternate;
}
.scn-insanity-doubt .id-chair {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 4px 4px 10px rgba(0,0,0,.6);
}
.scn-insanity-doubt .id-figure {
  position: absolute; bottom: 18%; left: 32%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: id-figure 5s ease-in-out infinite;
}
.scn-insanity-doubt .id-table {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
}
@keyframes id-wall { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes id-window { 0% { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); } 50% { background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%); } 100% { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); } }
@keyframes id-window-light { 0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.15; } }
@keyframes id-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } }

.scn-varying-moods {
  background: 
    linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 40%, #1e1e2e 100%),
    radial-gradient(ellipse at 50% 50%, #1a1a2e 0%, transparent 70%);
}
.scn-varying-moods .vm-backdrop {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 60%, transparent 100%);
  animation: vm-backdrop 10s ease-in-out infinite alternate;
}
.scn-varying-moods .vm-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,.7);
}
.scn-varying-moods .vm-wall {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 40%;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-varying-moods .vm-rickshaw {
  position: absolute; bottom: 30%; left: 50%; width: 160px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, rgba(150,160,170,0.5) 0%, rgba(100,110,120,0.2) 70%, transparent 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 0 30px 15px rgba(150,160,170,0.3);
  animation: vm-rickshaw 5s ease-in-out infinite alternate;
}
.scn-varying-moods .vm-figure {
  position: absolute; bottom: 28%; left: 35%; width: 32px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vm-figure 4s ease-in-out infinite;
}
.scn-varying-moods .vm-hands {
  position: absolute; bottom: 32%; left: 34%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #2a2a3a 0%, transparent 100%);
  border-radius: 50%;
  animation: vm-hands 3s ease-in-out infinite;
}
.scn-varying-moods .vm-shadow {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 12px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: vm-shadow 4s ease-in-out infinite;
}
@keyframes vm-backdrop { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes vm-rickshaw { 0% { transform: translateX(-50%) scale(1) translateY(0); } 50% { transform: translateX(-50%) scale(1.03) translateY(-3px); } 100% { transform: translateX(-50%) scale(0.98) translateY(0); } }
@keyframes vm-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes vm-hands { 0%,100% { transform: translate(0,0); } 50% { transform: translate(2px,-2px); } }
@keyframes vm-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.8); } }

.scn-ring-shopping {
  background: linear-gradient(180deg, #f9e6c8 0%, #e8cba3 50%, #d4a76a 100%),
              radial-gradient(ellipse at 60% 20%, #fff5e6 0%, transparent 60%);
}
.scn-ring-shopping .sky-rs {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe0b2 0%, transparent 100%);
  animation: rs-sky 12s ease-in-out infinite alternate;
}
.scn-ring-shopping .window-rs {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 45%;
  background: linear-gradient(135deg, rgba(255,200,150,0.4) 0%, transparent 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 20px rgba(200,150,80,0.5);
  animation: rs-window 9s ease-in-out infinite;
}
.scn-ring-shopping .hand-rs {
  position: absolute; bottom: 38%; left: 44%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #d4a373 0%, #b8854a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-hand 4s ease-in-out infinite;
}
.scn-ring-shopping .ring-rs {
  position: absolute; bottom: 48%; left: 46%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd77a 0%, #cfa33a 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffc65c, 0 0 40px 12px rgba(255,198,92,0.4);
  animation: rs-glow 2s ease-in-out infinite alternate;
}
.scn-ring-shopping .sparkle-rs {
  position: absolute; bottom: 52%; left: 48%; width: 4px; height: 4px;
  background: #fff; border-radius: 50%;
  box-shadow: 0 0 8px 2px #fff;
  animation: rs-twinkle 1.5s ease-in-out infinite;
}
.scn-ring-shopping .leaf-rs {
  position: absolute; width: 20px; height: 10px;
  background: linear-gradient(180deg, #6b8e23 0%, #4a6b1a 100%);
  border-radius: 50% 0 50% 0; opacity: 0.6;
}
.scn-ring-shopping .leaf-a-rs {
  top: 15%; left: 10%; animation: rs-drift-a 20s linear infinite;
}
.scn-ring-shopping .leaf-b-rs {
  top: 25%; right: 15%; width: 15px; height: 8px;
  animation: rs-drift-b 25s linear infinite reverse;
}

@keyframes rs-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes rs-window { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes rs-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg); } }
@keyframes rs-glow { 0% { box-shadow: 0 0 15px 4px #ffc65c, 0 0 30px 8px rgba(255,198,92,0.3); } 50% { box-shadow: 0 0 25px 8px #ffd77a, 0 0 50px 15px rgba(255,215,122,0.5); } 100% { box-shadow: 0 0 18px 5px #ffc65c, 0 0 35px 10px rgba(255,198,92,0.35); } }
@keyframes rs-twinkle { 0%,100% { opacity:0.2; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.2); } }
@keyframes rs-drift-a { 0% { transform: translateX(-30px) rotate(0deg); } 100% { transform: translateX(120vw) rotate(360deg); } }
@keyframes rs-drift-b { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-100vw) rotate(-360deg); } }

.scn-item-sapphire-ring {
  background: linear-gradient(180deg, #fff8e7 0%, #f2e3c6 50%, #d4b88a 100%),
              radial-gradient(ellipse at 50% 60%, #fff5e0 0%, transparent 70%);
}
.scn-item-sapphire-ring .counter-sr {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #8b6f4c 0%, #5a3e2a 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
}
.scn-item-sapphire-ring .cloth-sr {
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(135deg, #1a2a4a 0%, #2a3a6a 100%);
  border-radius: 20% 20% 10% 10%; opacity: 0.7;
  animation: sr-cloth 8s ease-in-out infinite alternate;
}
.scn-item-sapphire-ring .hand-sr {
  position: absolute; bottom: 38%; left: 42%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #d4a373 0%, #b8854a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sr-hand 4s ease-in-out infinite;
}
.scn-item-sapphire-ring .ring-stones-sr {
  position: absolute; bottom: 48%; left: 44%; width: 24px; height: 10px;
  background: radial-gradient(circle at 30% 50%, #4a6ab8 0%, #2a4a8a 40%, transparent 70%),
              radial-gradient(circle at 70% 50%, #d4d4e0 0%, #aaaac0 30%, transparent 70%);
  border-radius: 40%; 
  box-shadow: 0 0 10px 2px rgba(74,106,184,0.6);
  animation: sr-shine 3s ease-in-out infinite alternate;
}
.scn-item-sapphire-ring .tape-sr {
  position: absolute; bottom: 42%; left: 30%; width: 15%; height: 2px;
  background: linear-gradient(90deg, #ffe0b2 0%, #c8a87a 100%);
  border-radius: 1px; opacity: 0.8;
  animation: sr-tape 2s ease-in-out infinite;
}
.scn-item-sapphire-ring .light-sr {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fff9e6 0%, transparent 100%);
  animation: sr-light 7s ease-in-out infinite alternate;
}

@keyframes sr-cloth { 0% { transform: scaleY(1); } 100% { transform: scaleY(0.95); } }
@keyframes sr-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes sr-shine { 0% { opacity:0.8; } 50% { opacity:1; box-shadow: 0 0 20px 4px #4a6ab8; } 100% { opacity:0.85; } }
@keyframes sr-tape { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } }
@keyframes sr-light { 0% { opacity:0.6; } 100% { opacity:1; } }

.scn-combermere-bridge {
  background: linear-gradient(180deg, #87ceeb 0%, #6ba3c4 50%, #4a7a94 100%),
              radial-gradient(ellipse at 70% 30%, #9ed8f0 0%, transparent 60%);
}
.scn-combermere-bridge .sky-cb {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0e0f0 0%, transparent 100%);
  animation: cb-sky 14s ease-in-out infinite alternate;
}
.scn-combermere-bridge .bridge-cb {
  position: absolute; bottom: 35%; left: 5%; width: 90%; height: 20%;
  background: linear-gradient(180deg, #8b7d6b 0%, #5a4e3e 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: cb-bridge 12s ease-in-out infinite;
}
.scn-combermere-bridge .water-cb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a6b8a 0%, #1a3a5a 100%);
  animation: cb-water 5s ease-in-out infinite alternate;
}
.scn-combermere-bridge .figure-cb {
  position: absolute; bottom: 44%; left: 45%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cb-walk 3s ease-in-out infinite;
}
.scn-combermere-bridge .shadow-cb {
  position: absolute; bottom: 42%; left: 42%; width: 30px; height: 6px;
  background: rgba(0,0,0,0.3); border-radius: 50%;
  filter: blur(3px); animation: cb-shadow 3s ease-in-out infinite;
}
.scn-combermere-bridge .rail-cb {
  position: absolute; bottom: 48%; width: 3px; height: 10px;
  background: #4a3e2e; border-radius: 2px;
  animation: cb-rail 10s linear infinite;
}
.scn-combermere-bridge .rail-left-cb { left: 30%; }
.scn-combermere-bridge .rail-right-cb { right: 30%; animation-delay: 2s; }

@keyframes cb-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes cb-bridge { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cb-water { 0% { background-position: 0 0; } 100% { background-position: 20px 10px; } }
@keyframes cb-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(24px) rotate(-2deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes cb-shadow { 0%,100% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.2); } }
@keyframes cb-rail { 0% { opacity:1; } 50% { opacity:0.4; } 100% { opacity:1; } }

.scn-ghost-rickshaw-return {
  background: linear-gradient(180deg, #c9a96e 0%, #b08850 50%, #906838 100%),
              radial-gradient(ellipse at 30% 20%, #e8c888 0%, transparent 60%);
}
.scn-ghost-rickshaw-return .sky-gr {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d6b87a 0%, transparent 100%);
  animation: gr-sky 16s ease-in-out infinite alternate;
}
.scn-ghost-rickshaw-return .road-gr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #7a5e3a 0%, #4a3420 100%);
  animation: gr-road 10s linear infinite;
}
.scn-ghost-rickshaw-return .rickshaw-gr {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 20% 20% 10% 10%; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: gr-rickshaw 8s ease-in-out infinite;
}
.scn-ghost-rickshaw-return .servant-a-gr {
  position: absolute; bottom: 28%; left: 18%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gr-servant-a 6s linear infinite;
}
.scn-ghost-rickshaw-return .servant-b-gr {
  position: absolute; bottom: 28%; left: 30%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gr-servant-b 6s linear infinite 3s;
}
.scn-ghost-rickshaw-return .dust-gr {
  position: absolute; bottom: 18%; width: 20px; height: 8px;
  background: rgba(200,180,140,0.3); border-radius: 50%;
  filter: blur(4px);
}
.scn-ghost-rickshaw-return .dust-a-gr {
  left: 22%; animation: gr-dust 4s ease-out infinite;
}
.scn-ghost-rickshaw-return .dust-b-gr {
  left: 32%; animation: gr-dust 5s ease-out infinite 1s;
}
.scn-ghost-rickshaw-return .sun-gr {
  position: absolute; top: 15%; right: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff0c0 0%, #e8b860 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #e8b860, 0 0 80px 25px rgba(232,184,96,0.3);
  animation: gr-sun 5s ease-in-out infinite alternate;
}

@keyframes gr-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes gr-road { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes gr-rickshaw { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes gr-servant-a { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(12px) rotate(-2deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes gr-servant-b { 0% { transform: translateX(0); } 25% { transform: translateX(4px); } 50% { transform: translateX(8px); } 75% { transform: translateX(12px); } 100% { transform: translateX(16px); } }
@keyframes gr-dust { 0% { opacity:0.8; transform: translateY(0) scale(1); } 100% { opacity:0; transform: translateY(-30px) scale(2); } }
@keyframes gr-sun { 0% { box-shadow: 0 0 30px 10px #e8b860; } 100% { box-shadow: 0 0 50px 20px #f0d080; } }

/* Scene 1: guilt-reflection – tense, dim interior */
.scn-guilt-reflection {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 40%, #1e1e32 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a44 0%, transparent 70%);
}
.scn-guilt-reflection .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a1a2e 0%, #252540 50%, #1a1a2e 100%);
  animation: gr-wall 20s ease-in-out infinite alternate;
}
.scn-guilt-reflection .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 60% 60% 0 0 / 20% 20% 0 0;
  animation: gr-floor 15s ease-in-out infinite;
}
.scn-guilt-reflection .window {
  position: absolute; top: 10%; left: 60%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a44 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: gr-window 8s ease-in-out infinite alternate;
}
.scn-guilt-reflection .figure {
  position: absolute; bottom: 28%; left: 35%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #0a0a12 0%, #15152a 40%, #0a0a12 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gr-figure 6s ease-in-out infinite;
}
.scn-guilt-reflection .mirror {
  position: absolute; top: 12%; left: 30%; width: 15%; height: 32%;
  background: radial-gradient(ellipse at 50% 40%, #2a3a4a 0%, #1a1a2e 100%);
  border-radius: 20% / 30%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 8px rgba(100,140,180,0.2);
  animation: gr-mirror 12s ease-in-out infinite alternate;
}
.scn-guilt-reflection .candle {
  position: absolute; bottom: 25%; left: 50%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #c8a878 0%, #8a6a4a 100%);
  border-radius: 10%;
  box-shadow: 0 0 20px 6px #a08050, 0 0 40px 12px rgba(160,128,80,0.3);
  animation: gr-candle 4s ease-in-out infinite alternate;
}
.scn-guilt-reflection .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 70%);
  opacity: 0.8;
  animation: gr-shadow 10s ease-in-out infinite;
}
@keyframes gr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gr-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gr-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.7); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.7); } }
@keyframes gr-figure { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(5px) rotate(0deg); } 60% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gr-mirror { 0% { opacity: 0.7; box-shadow: inset 0 0 15px rgba(0,0,0,0.5); } 50% { opacity: 1; box-shadow: inset 0 0 25px rgba(0,0,0,0.6), 0 0 12px rgba(100,140,180,0.4); } 100% { opacity: 0.8; box-shadow: inset 0 0 15px rgba(0,0,0,0.5); } }
@keyframes gr-candle { 0% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 0 15px 4px #a08050; } 50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 25px 8px #b09060; } 100% { transform: scaleY(1); opacity: 0.95; box-shadow: 0 0 18px 5px #a08050; } }
@keyframes gr-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }

/* Scene 2: kitty-courtship – warm, sunlit garden */
.scn-kitty-courtship {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #8fbc8f 100%),
              radial-gradient(ellipse at 80% 20%, #fffacd 0%, transparent 60%);
}
.scn-kitty-courtship .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: kc-sky 30s linear infinite alternate;
}
.scn-kitty-courtship .sun {
  position: absolute; top: 5%; right: 10%; width: 12%; height: 20%;
  background: radial-gradient(circle, #fff8dc 0%, #f0e68c 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #f0e68c;
  animation: kc-sun 15s ease-in-out infinite;
}
.scn-kitty-courtship .garden-path {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 45%;
  background: linear-gradient(180deg, #c2b280 0%, #a09060 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  animation: kc-path 12s ease-in-out infinite alternate;
}
.scn-kitty-courtship .figure {
  position: absolute; bottom: 25%; left: 50%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 40%, #b8860b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: kc-figure 8s ease-in-out infinite;
}
.scn-kitty-courtship .parasol {
  position: absolute; bottom: 50%; left: 44%; width: 14%; height: 18%;
  background: radial-gradient(ellipse at 50% 100%, #fff8dc 0%, #f5deb3 60%, transparent 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-10deg);
  animation: kc-parasol 10s ease-in-out infinite alternate;
}
.scn-kitty-courtship .flower-bush {
  position: absolute; bottom: 10%; left: 10%; width: 20%; height: 25%;
  background: radial-gradient(ellipse at 50% 90%, #6b8e23 0%, #556b2f 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: kc-bush 14s ease-in-out infinite;
}
.scn-kitty-courtship .butterfly {
  position: absolute; top: 35%; left: 30%; width: 5%; height: 5%;
  background: radial-gradient(circle, #ff8c00 0%, #ffa500 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #ffa500;
  animation: kc-butterfly 6s ease-in-out infinite;
}
@keyframes kc-sky { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }
@keyframes kc-sun { 0% { transform: translate(0,0); } 50% { transform: translate(5px,-5px); } 100% { transform: translate(0,0); } }
@keyframes kc-path { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes kc-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-45%) rotate(2deg); } 75% { transform: translateX(-55%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes kc-parasol { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(5deg) scale(1.02); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes kc-bush { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(1); } }
@keyframes kc-butterfly { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(30px, -20px) scale(1.2); } 50% { transform: translate(60px, 10px) scale(0.9); } 75% { transform: translate(20px, -30px) scale(1.1); } 100% { transform: translate(0,0) scale(1); } }

/* Scene 3: item-rickshaw-vision – tense, dim interior with vision outside */
.scn-item-rickshaw-vision {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #2a2a3e 100%),
              radial-gradient(ellipse at 50% 80%, #1e1e32 0%, transparent 60%);
}
.scn-item-rickshaw-vision .room-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #12121c 0%, #1c1c2a 50%, #12121c 100%);
  animation: irv-wall 18s ease-in-out infinite alternate;
}
.scn-item-rickshaw-vision .window-frame {
  position: absolute; top: 8%; right: 8%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border: 4px solid #3a3a4e;
  border-radius: 8%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: irv-window 12s ease-in-out infinite;
}
.scn-item-rickshaw-vision .vision-rickshaw {
  position: absolute; top: 15%; right: -40%; width: 45%; height: 30%;
  background: linear-gradient(90deg, transparent 0%, #2a2a3e 20%, #3a3a4e 50%, transparent 100%);
  border-radius: 20% 40% 30% 50%;
  filter: blur(2px);
  animation: irv-rickshaw 12s linear infinite;
}
.scn-item-rickshaw-vision .vision-figure {
  position: absolute; top: 20%; right: -20%; width: 10%; height: 25%;
  background: radial-gradient(ellipse at 50% 30%, #b0c4de 0%, #8a9cb0 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  opacity: 0.7;
  animation: irv-figure 12s linear infinite;
  animation-delay: 0.5s;
}
.scn-item-rickshaw-vision .lamp {
  position: absolute; bottom: 30%; left: 10%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #c8a878 0%, #8a6a4a 100%);
  border-radius: 10%;
  box-shadow: 0 0 30px 8px #a08050, 0 0 60px 15px rgba(160,128,80,0.4);
  animation: irv-lamp 5s ease-in-out infinite alternate;
}
.scn-item-rickshaw-vision .table {
  position: absolute; bottom: 15%; left: 5%; right: 60%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10%;
  animation: irv-table 20s ease-in-out infinite;
}
.scn-item-rickshaw-vision .curtain {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%);
  filter: blur(4px);
  animation: irv-curtain 14s ease-in-out infinite alternate;
}
@keyframes irv-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes irv-window { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); } 50% { box-shadow: inset 0 0 60px rgba(0,0,0,0.9), 0 0 20px rgba(100,140,180,0.1); } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); } }
@keyframes irv-rickshaw { 0% { transform: translateX(100%); opacity: 0; } 10% { opacity: 0.5; } 50% { transform: translateX(0); opacity: 0.8; } 90% { opacity: 0.5; } 100% { transform: translateX(-100%); opacity: 0; } }
@keyframes irv-figure { 0% { transform: translateX(100%) scale(0.8); opacity: 0; } 15% { opacity: 0.6; } 50% { transform: translateX(0) scale(1); opacity: 0.8; } 85% { opacity: 0.6; } 100% { transform: translateX(-100%) scale(0.8); opacity: 0; } }
@keyframes irv-lamp { 0% { transform: scaleY(1) rotate(0deg); box-shadow: 0 0 20px 6px #a08050; } 50% { transform: scaleY(1.03) rotate(2deg); box-shadow: 0 0 35px 10px #b09060; } 100% { transform: scaleY(1) rotate(0deg); box-shadow: 0 0 20px 6px #a08050; } }
@keyframes irv-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes irv-curtain { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.05) translateX(-5px); } 100% { transform: scaleX(1) translateX(0); } }

/* Scene 4: engagement-announcement – warm, sunlit, happy */
.scn-engagement-announcement {
  background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 40%, #ffd700 100%),
              radial-gradient(ellipse at 50% 100%, #fff8dc 0%, transparent 70%);
}
.scn-engagement-announcement .bg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: ea-sky 25s linear infinite alternate;
}
.scn-engagement-announcement .bg-garden {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  animation: ea-garden 15s ease-in-out infinite;
}
.scn-engagement-announcement .couple-left {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 40%, #b8860b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ea-couple-left 8s ease-in-out infinite;
}
.scn-engagement-announcement .couple-right {
  position: absolute; bottom: 20%; right: 30%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 40%, #b8860b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  transform-origin: bottom center;
  animation: ea-couple-right 8s ease-in-out infinite;
  animation-delay: 0.2s;
}
.scn-engagement-announcement .hands {
  position: absolute; bottom: 35%; left: 50%; width: 8%; height: 5%;
  background: linear-gradient(180deg, #deb887 0%, #b8860b 100%);
  border-radius: 40%;
  transform: translateX(-50%);
  animation: ea-hands 6s ease-in-out infinite;
}
.scn-engagement-announcement .ring-glow {
  position: absolute; bottom: 37%; left: 50%; width: 3%; height: 3%;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ffd700, 0 0 40px 15px rgba(255,215,0,0.5);
  animation: ea-ring 4s ease-in-out infinite alternate;
}
.scn-engagement-announcement .petals {
  position: absolute; top: 10%; left: 0; right: 0; height: 10%;
  background: radial-gradient(circle at 30% 50%, #ff69b4 0%, transparent 45%),
              radial-gradient(circle at 70% 30%, #ffb6c1 0%, transparent 50%);
  filter: blur(6px);
  animation: ea-petals 12s linear infinite;
}
@keyframes ea-sky { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }
@keyframes ea-garden { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ea-couple-left { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ea-couple-right { 0% { transform: scaleX(-1) translateX(0) rotate(-2deg); } 25% { transform: scaleX(-1) translateX(-3px) rotate(1deg); } 75% { transform: scaleX(-1) translateX(2px) rotate(-1deg); } 100% { transform: scaleX(-1) translateX(0) rotate(0deg); } }
@keyframes ea-hands { 0% { transform: translateX(-50%) scale(1) rotate(0deg); } 50% { transform: translateX(-50%) scale(1.03) rotate(3deg); } 100% { transform: translateX(-50%) scale(1) rotate(0deg); } }
@keyframes ea-ring { 0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 15px 5px #ffd700; } 50% { transform: scale(1.2); opacity: 1; box-shadow: 0 0 30px 12px #ffd700, 0 0 50px 20px rgba(255,215,0,0.6); } 100% { transform: scale(1); opacity: 0.85; box-shadow: 0 0 18px 6px #ffd700; } }
@keyframes ea-petals { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-30px) rotate(10deg); } }

/* Scene: hopeless-rebellion */
.scn-hopeless-rebellion {
  background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3e 40%, #2c2244 100%), radial-gradient(ellipse at 50% 100%, #3a2a4e 0%, transparent 80%);
}
.scn-hopeless-rebellion .cell-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #0f0f2a 100%);
  border-bottom: 2px solid #3a2a4e;
  animation: hr-wall 15s ease-in-out infinite;
}
.scn-hopeless-rebellion .floor-glow {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 25%;
  background: radial-gradient(ellipse at 50% 0%, #3a2a4e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0;
  animation: hr-floor 10s ease-in-out infinite alternate;
}
.scn-hopeless-rebellion .bars {
  position: absolute;
  top: 5%;
  left: 20%;
  right: 20%;
  height: 60%;
  background:
    repeating-linear-gradient(90deg, transparent 0px, transparent 14px, #2a2a4e 14px, #2a2a4e 16px),
    repeating-linear-gradient(0deg, transparent 0px, transparent 14px, #2a2a4e 14px, #2a2a4e 16px);
  opacity: 0.5;
  animation: hr-bars 8s ease-in-out infinite;
}
.scn-hopeless-rebellion .figure-hunched {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 30%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-figure 6s ease-in-out infinite;
}
.scn-hopeless-rebellion .candle {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 6px;
  height: 12px;
  background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 8px #a06030, 0 0 40px 16px rgba(160,96,48,0.4);
  animation: hr-candle 4s ease-in-out infinite alternate;
}
.scn-hopeless-rebellion .shadow-pool {
  position: absolute;
  bottom: 0;
  left: 30%;
  right: 30%;
  height: 20%;
  background: radial-gradient(ellipse, #0a0a1a 0%, transparent 100%);
  opacity: 0.6;
  animation: hr-pool 12s ease-in-out infinite;
}
.scn-hopeless-rebellion .dust-mote {
  position: absolute;
  top: 30%;
  left: 20%;
  width: 4px;
  height: 4px;
  background: rgba(192,168,128,0.5);
  border-radius: 50%;
  filter: blur(1px);
  animation: hr-dust 20s linear infinite;
  animation-delay: -5s;
}
@keyframes hr-wall {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes hr-floor {
  0% { transform: scaleY(1); opacity: 0.5; }
  50% { transform: scaleY(1.05); opacity: 0.7; }
  100% { transform: scaleY(0.95); opacity: 0.5; }
}
@keyframes hr-bars {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.02); }
  100% { opacity: 0.5; transform: scaleX(0.98); }
}
@keyframes hr-figure {
  0% { transform: translateY(0) rotate(2deg); }
  30% { transform: translateY(-3px) rotate(-1deg); }
  60% { transform: translateY(0) rotate(3deg); }
  100% { transform: translateY(-2px) rotate(0deg); }
}
@keyframes hr-candle {
  0% { box-shadow: 0 0 15px 6px #a06030, 0 0 30px 12px rgba(160,96,48,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 25px 10px #c07040, 0 0 50px 20px rgba(160,96,48,0.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 7px #a06030, 0 0 35px 14px rgba(160,96,48,0.4); opacity: 0.9; }
}
@keyframes hr-pool {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.1); opacity: 0.7; }
  100% { transform: scaleX(0.9); opacity: 0.5; }
}
@keyframes hr-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  25% { transform: translate(10px, -5px) scale(1.2); opacity: 0.6; }
  50% { transform: translate(20px, 5px) scale(0.8); opacity: 0.4; }
  75% { transform: translate(5px, -10px) scale(1.1); opacity: 0.5; }
  100% { transform: translate(30px, -2px) scale(1); opacity: 0.3; }
}

/* Scene: mood-swings */
.scn-mood-swings {
  background: linear-gradient(135deg, #0a0a2e 0%, #1a1a4e 50%, #2a2a5e 100%), radial-gradient(circle at 50% 20%, #2a2a5e 0%, transparent 70%);
}
.scn-mood-swings .room-bg {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 60%, #2a2a5e 100%);
  animation: ms-room 20s ease-in-out infinite alternate;
}
.scn-mood-swings .lamp {
  position: absolute;
  top: 15%;
  left: 45%;
  width: 10px;
  height: 15px;
  background: radial-gradient(circle, #e0b060 0%, #a08040 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 15px #c0a060, 0 0 60px 30px rgba(192,160,96,0.4);
  animation: ms-lamp 3s ease-in-out infinite alternate;
}
.scn-mood-swings .mirror {
  position: absolute;
  top: 25%;
  left: 30%;
  width: 40%;
  height: 50%;
  background: linear-gradient(135deg, #3a3a6e 0%, #2a2a5e 50%, #4a4a7e 100%);
  border: 2px solid #5a5a8a;
  border-radius: 8px 8px 4px 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.6);
  animation: ms-mirror 12s ease-in-out infinite;
}
.scn-mood-swings .figure-torso {
  position: absolute;
  bottom: 15%;
  left: 38%;
  width: 24%;
  height: 45%;
  background: linear-gradient(180deg, #1a1a3e 0%, #0a0a2e 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ms-figure 8s ease-in-out infinite;
}
.scn-mood-swings .clock {
  position: absolute;
  top: 12%;
  right: 10%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, #2a2a4e 30%, #4a4a6e 70%, #5a5a7e 100%);
  border-radius: 50%;
  border: 2px solid #6a6a8a;
  box-shadow: 0 0 6px rgba(0,0,0,0.4);
  animation: ms-clock 60s linear infinite;
}
.scn-mood-swings .curtain {
  position: absolute;
  top: 0;
  left: 0;
  width: 20%;
  height: 100%;
  background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 50%, #1a1a3e 100%);
  border-right: 2px solid #4a4a6e;
  animation: ms-curtain 15s ease-in-out infinite alternate;
}
@keyframes ms-room {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes ms-lamp {
  0% { box-shadow: 0 0 20px 10px #a08040, 0 0 40px 20px rgba(160,128,64,0.3); opacity: 0.7; }
  50% { box-shadow: 0 0 35px 18px #c0a060, 0 0 70px 35px rgba(192,160,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 12px #a08040, 0 0 50px 25px rgba(160,128,64,0.4); opacity: 0.8; }
}
@keyframes ms-mirror {
  0% { transform: scaleX(1) rotate(0deg); }
  25% { transform: scaleX(1.02) rotate(0.5deg); }
  50% { transform: scaleX(0.98) rotate(-0.5deg); }
  75% { transform: scaleX(1.01) rotate(0.3deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes ms-figure {
  0% { transform: translateY(0) rotate(-2deg) scaleX(1); }
  30% { transform: translateY(-4px) rotate(1deg) scaleX(0.98); }
  60% { transform: translateY(0) rotate(-1deg) scaleX(1.02); }
  100% { transform: translateY(-3px) rotate(0deg) scaleX(1); }
}
@keyframes ms-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes ms-curtain {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(0.98); }
  100% { transform: translateX(0) scaleY(1); }
}

/* Scene: leaving-heatherlegh */
.scn-leaving-heatherlegh {
  background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 40%, #f5e6c8 100%), radial-gradient(ellipse at 50% 0%, #fffde7 0%, transparent 70%);
}
.scn-leaving-heatherlegh .sky-warm {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, #f5e6c8 100%);
  animation: lh-sky 30s ease-in-out infinite alternate;
}
.scn-leaving-heatherlegh .cloud-light {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 120px;
  height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: lh-cloud 50s linear infinite;
}
.scn-leaving-heatherlegh .doorway {
  position: absolute;
  bottom: 15%;
  left: 40%;
  width: 20%;
  height: 50%;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: lh-door 12s ease-in-out infinite;
}
.scn-leaving-heatherlegh .figure-walking {
  position: absolute;
  bottom: 8%;
  left: 30%;
  width: 12px;
  height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lh-figure 4s ease-in-out infinite;
}
.scn-leaving-heatherlegh .street {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: lh-street 15s ease-in-out infinite alternate;
}
.scn-leaving-heatherlegh .tree {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 8px;
  height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 0 0;
}
.scn-leaving-heatherlegh .tree::after {
  content: '';
  position: absolute;
  top: -20px;
  left: -15px;
  width: 40px;
  height: 30px;
  background: radial-gradient(ellipse, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 50%;
  filter: blur(3px);
}
.scn-leaving-heatherlegh .sun-ray {
  position: absolute;
  top: 5%;
  left: 30%;
  width: 3px;
  height: 60%;
  background: linear-gradient(180deg, rgba(255,230,150,0.6) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(2px);
  animation: lh-sunray 8s ease-in-out infinite alternate;
}
@keyframes lh-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes lh-cloud {
  0% { transform: translateX(-20px) scaleX(1); }
  50% { transform: translateX(10px) scaleX(1.1); }
  100% { transform: translateX(-20px) scaleX(1); }
}
@keyframes lh-door {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(0.98) translateY(1px); }
}
@keyframes lh-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes lh-street {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.03); opacity: 1; }
  100% { transform: scaleY(0.97); opacity: 0.9; }
}
@keyframes lh-sunray {
  0% { opacity: 0.3; transform: rotate(10deg) scaleY(1); }
  50% { opacity: 0.7; transform: rotate(20deg) scaleY(1.1); }
  100% { opacity: 0.4; transform: rotate(15deg) scaleY(0.9); }
}

/* Scene: wandering-mall */
.scn-wandering-mall {
  background: linear-gradient(180deg, #fff8e7 0%, #f0e0c0 40%, #d4c0a0 100%), radial-gradient(ellipse at 50% 0%, #fffde7 0%, transparent 70%);
}
.scn-wandering-mall .sky-bright {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fff8e7 0%, #f0e0c0 100%);
  animation: wm-sky 20s ease-in-out infinite alternate;
}
.scn-wandering-mall .pavement {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.15);
  animation: wm-pave 15s ease-in-out infinite alternate;
}
.scn-wandering-mall .bandstand {
  position: absolute;
  bottom: 30%;
  right: 15%;
  width: 80px;
  height: 60px;
  background: linear-gradient(180deg, #d4c090 0%, #b8a070 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: wm-band 10s ease-in-out infinite;
}
.scn-wandering-mall .bandstand::before {
  content: '';
  position: absolute;
  top: -20px;
  left: 10px;
  width: 60px;
  height: 20px;
  background: linear-gradient(180deg, #d4c090 0%, #c0a880 100%);
  border-radius: 50% 50% 0 0;
}
.scn-wandering-mall .figure-kitty {
  position: absolute;
  bottom: 12%;
  left: 30%;
  width: 14px;
  height: 35px;
  background: linear-gradient(180deg, #8a5a3a 0%, #6a3a1a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: wm-figurek 6s ease-in-out infinite;
}
.scn-wandering-mall .shadow-figure {
  position: absolute;
  bottom: 10%;
  left: 55%;
  width: 16px;
  height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  opacity: 0.8;
  animation: wm-figures 4s ease-in-out infinite alternate;
}
.scn-wandering-mall .lamp-post {
  position: absolute;
  bottom: 15%;
  left: 10%;
  width: 4px;
  height: 50px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 2px;
}
.scn-wandering-mall .lamp-post::after {
  content: '';
  position: absolute;
  top: -8px;
  left: -6px;
  width: 16px;
  height: 10px;
  background: radial-gradient(circle, #f0d080 0%, #c0a060 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(240,208,128,0.4);
  animation: wm-lamp 3s ease-in-out infinite alternate;
}
.scn-wandering-mall .dust-swirl {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, rgba(200,180,140,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: wm-dust 8s linear infinite;
  animation-delay: -2s;
}
@keyframes wm-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes wm-pave {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(0.98) translateY(1px); }
}
@keyframes wm-band {
  0% { transform: scaleY(1) rotate(0deg); }
  20% { transform: scaleY(1.02) rotate(0.5deg); }
  40% { transform: scaleY(1) rotate(-0.3deg); }
  60% { transform: scaleY(1.01) rotate(0.2deg); }
  80% { transform: scaleY(0.99) rotate(-0.1deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes wm-figurek {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes wm-figures {
  0% { transform: translateX(0) translateY(0) scaleY(1); }
  50% { transform: translateX(-3px) translateY(-2px) scaleY(1.05); }
  100% { transform: translateX(0) translateY(0) scaleY(1); }
}
@keyframes wm-lamp {
  0% { box-shadow: 0 0 15px 5px #c0a060, 0 0 30px 10px rgba(192,160,96,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 25px 12px #f0d080, 0 0 50px 20px rgba(240,208,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 8px #c0a060, 0 0 35px 14px rgba(192,160,96,0.4); opacity: 0.9; }
}
@keyframes wm-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.2; }
  25% { transform: translate(15px, -10px) scale(1.3); opacity: 0.5; }
  50% { transform: translate(30px, 5px) scale(0.8); opacity: 0.3; }
  75% { transform: translate(10px, -5px) scale(1.1); opacity: 0.4; }
  100% { transform: translate(40px, 0) scale(1); opacity: 0.2; }
}

.scn-simla-fire {
  background:
    linear-gradient(180deg, #1a0e0a 0%, #3a2010 30%, #5a2a0a 60%, #3a1000 100%),
    radial-gradient(ellipse at 50% 70%, #cc5500 0%, transparent 70%);
}

.scn-simla-fire .room {
  position: absolute; inset: 0; background: linear-gradient(0deg, #0a0500 0%, #1a0e0a 80%, transparent 100%);
  animation: sf-room 12s ease-in-out infinite alternate;
}
.scn-simla-fire .hearth {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%); width: 140px; height: 50px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e0a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 -6px 12px #000;
}
.scn-simla-fire .log-a,
.scn-simla-fire .log-b {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 14px; background: linear-gradient(90deg, #2a1a0a, #3a2010, #2a1a0a);
  border-radius: 4px; transform-origin: center center;
}
.scn-simla-fire .log-a { transform: translateX(-50%) rotate(-8deg); }
.scn-simla-fire .log-b { transform: translateX(-50%) rotate(10deg); bottom: 20%; width: 70px; }
.scn-simla-fire .flame {
  position: absolute; bottom: 22%; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  background: radial-gradient(ellipse at 50% 30%, #ff8c00 0%, #cc5500 50%, #8b3a00 100%);
  filter: blur(2px); animation: sf-flame 1.2s ease-in-out infinite alternate;
}
.scn-simla-fire .flame-core { left: 50%; transform: translateX(-50%); width: 30px; height: 50px; animation-duration: 0.8s; }
.scn-simla-fire .flame-left { left: 42%; width: 22px; height: 38px; animation-delay: -0.3s; }
.scn-simla-fire .flame-right { left: 58%; width: 22px; height: 38px; animation-delay: -0.6s; }
.scn-simla-fire .figure-sit {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: sf-figure 4s ease-in-out infinite;
}
.scn-simla-fire .smoke {
  position: absolute; bottom: 60%; left: 50%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,120,60,.3) 0%, transparent 70%);
  filter: blur(8px); animation: sf-smoke 6s ease-out infinite;
}

@keyframes sf-room {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sf-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.9; }
  50% { transform: scaleY(1.12) scaleX(0.9); opacity: 1; }
  100% { transform: scaleY(0.92) scaleX(1.05); opacity: 0.85; }
}
@keyframes sf-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sf-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.5; }
  50% { transform: translateY(-30px) scale(1.6); opacity: 0.2; }
  100% { transform: translateY(-80px) scale(2.2); opacity: 0; }
}

/* ---------- persistence-agnes ---------- */
.scn-persistence-agnes {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a3e 0%, #1a1a2a 70%);
}

.scn-persistence-agnes .wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  animation: pa-wall 10s ease-in-out infinite alternate;
}
.scn-persistence-agnes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0a0a12 0%, #1a1a2a 100%);
  box-shadow: inset 0 10px 20px #000;
}
.scn-persistence-agnes .table {
  position: absolute; bottom: 18%; left: 40%; width: 80px; height: 12px;
  background: linear-gradient(90deg, #1a1a20 0%, #2a2a3a 50%, #1a1a20 100%);
  border-radius: 4px; box-shadow: 0 4px 8px #000;
}
.scn-persistence-agnes .chair {
  position: absolute; bottom: 10%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  transform: rotate(-2deg);
}
.scn-persistence-agnes .figure-wait {
  position: absolute; bottom: 10%; left: 38%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pa-figure 3s ease-in-out infinite;
}
.scn-persistence-agnes .pendulum {
  position: absolute; top: 20%; left: 50%; width: 4px; height: 100px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  transform-origin: top center;
  animation: pa-swing 2s ease-in-out infinite;
}
.scn-persistence-agnes .pendulum::after {
  content: ''; position: absolute; bottom: 0; left: -8px; width: 20px; height: 20px;
  background: radial-gradient(circle, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50%;
}
.scn-persistence-agnes .shadow-wall {
  position: absolute; bottom: 0; left: 20%; width: 120px; height: 80%;
  background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%);
  filter: blur(6px); animation: pa-shadow 8s ease-in-out infinite alternate;
}
.scn-persistence-agnes .lamp {
  position: absolute; top: 10%; right: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffa050 0%, #cc5500 100%);
  border-radius: 50%; box-shadow: 0 0 40px 10px #cc5500;
  animation: pa-lamp 4s ease-in-out infinite alternate;
}

@keyframes pa-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pa-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pa-swing {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes pa-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.6; }
  50% { transform: scaleX(1.2) translateX(-10px); opacity: 0.8; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.6; }
}
@keyframes pa-lamp {
  0% { box-shadow: 0 0 30px 6px #cc5500; opacity: 0.8; }
  50% { box-shadow: 0 0 60px 15px #ffa050; opacity: 1; }
  100% { box-shadow: 0 0 40px 8px #cc5500; opacity: 0.85; }
}

/* ---------- hatred-growth ---------- */
.scn-hatred-growth {
  background:
    linear-gradient(180deg, #0a0500 0%, #1a0e0a 50%, #0a0500 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a0a 0%, transparent 70%);
}

.scn-hatred-growth .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0500 0%, #1a0e0a 100%);
  animation: hg-bg 8s ease-in-out infinite alternate;
}
.scn-hatred-growth .figure-hate {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hg-figure 3s ease-in-out infinite;
}
.scn-hatred-growth .shadow-grow {
  position: absolute; bottom: 0; left: 30%; width: 180px; height: 200px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.8) 0%, transparent 70%);
  filter: blur(6px);
  animation: hg-shadow 5s ease-in-out infinite alternate;
}
.scn-hatred-growth .hand-clench {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hg-hand 1.5s ease-in-out infinite;
}
.scn-hatred-growth .spot {
  position: absolute; bottom: 50%; left: 50%; transform: translate(-50%, -50%); width: 40px; height: 40px;
  background: radial-gradient(circle, #6a1a1a 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: hg-spot 4s ease-in-out infinite alternate;
}
.scn-hatred-growth .dust {
  position: absolute; top: 10%; left: 20%; width: 4px; height: 4px;
  background: #3a2a1a; border-radius: 50%;
  animation: hg-dust 6s linear infinite;
}

@keyframes hg-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hg-figure {
  0% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(2deg) scaleY(1.05); }
  100% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
}
@keyframes hg-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.3) scaleY(1.4); opacity: 0.9; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
}
@keyframes hg-hand {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.1); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes hg-spot {
  0% { transform: translate(-50%, -50%) scale(1); opacity: 0.8; }
  50% { transform: translate(-50%, -50%) scale(1.3); opacity: 1; }
  100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.7; }
}
@keyframes hg-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  50% { opacity: 0.5; }
  100% { transform: translate(-30px, 40px) scale(2); opacity: 0; }
}

/* ---------- monotony-appeal ---------- */
.scn-monotony-appeal {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, #1a1a2a 80%);
}

.scn-monotony-appeal .corridor {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a2a3e 0%, #1a1a2a 50%, #2a2a3e 100%);
  animation: ma-corridor 15s ease-in-out infinite alternate;
}
.scn-monotony-appeal .floor-planks {
  position: absolute; bottom: 0; left: -10%; right: -10%; height: 25%;
  background: repeating-linear-gradient(90deg, #1a1a2a 0px, #1a1a2a 40px, #2a2a3e 40px, #2a2a3e 42px);
  transform: perspective(400px) rotateX(60deg);
  transform-origin: bottom;
}
.scn-monotony-appeal .door {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 80px; height: 120px;
  background: linear-gradient(180deg, #3a2a3e 0%, #1a1a2a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px #000;
}
.scn-monotony-appeal .figure {
  position: absolute; bottom: 10%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-monotony-appeal .walk-a {
  left: 20%; animation: ma-walk 6s ease-in-out infinite;
}
.scn-monotony-appeal .walk-b {
  left: 60%; animation: ma-walk 6s ease-in-out infinite reverse;
}
.scn-monotony-appeal .pendulum-clock {
  position: absolute; top: 10%; right: 10%; width: 4px; height: 60px;
  background: #6a5a4a; transform-origin: top center;
  animation: ma-pendulum 1.5s ease-in-out infinite;
}
.scn-monotony-appeal .pendulum-clock::after {
  content: ''; position: absolute; bottom: 0; left: -6px; width: 16px; height: 16px;
  background: radial-gradient(circle, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50%;
}
.scn-monotony-appeal .shadow-step {
  position: absolute; bottom: 0; width: 40px; height: 80px;
  background: rgba(0,0,0,.4); filter: blur(6px);
  animation: ma-shadow 6s ease-in-out infinite;
}

@keyframes ma-corridor {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ma-walk {
  0% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(30px) scaleX(0.98); }
  50% { transform: translateX(60px) scaleX(1); }
  75% { transform: translateX(90px) scaleX(0.98); }
  100% { transform: translateX(120px) scaleX(1); }
}
@keyframes ma-pendulum {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes ma-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(60px) scaleX(1.2); opacity: 0.6; }
  100% { transform: translateX(120px) scaleX(1); opacity: 0.3; }
}

.scn-night-ride-with-rickshaw {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 70%, #1a1a3e 100%),
              radial-gradient(ellipse at 70% 20%, #3a4a8e 0%, transparent 60%);
}
.scn-night-ride-with-rickshaw .moon {
  position: absolute; top: 8%; right: 22%; width: 40px; height: 40px;
  background: radial-gradient(circle at 45% 45%, #e0e8ff 0%, #a0b0e0 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(160,176,224,0.4);
  animation: nr-moon 12s ease-in-out infinite alternate;
}
.scn-night-ride-with-rickshaw .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 16px;
  background: rgba(200,210,230,0.3); filter: blur(8px); border-radius: 50%;
  animation: nr-cloud-a 40s linear infinite;
}
.scn-night-ride-with-rickshaw .cloud-b {
  position: absolute; top: 18%; right: 5%; width: 100px; height: 14px;
  background: rgba(200,210,230,0.25); filter: blur(6px); border-radius: 50%;
  animation: nr-cloud-b 55s linear infinite reverse;
}
.scn-night-ride-with-rickshaw .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 70% 70% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-night-ride-with-rickshaw .rickshaw {
  position: absolute; bottom: 28%; left: 40%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: nr-rickshaw 3s ease-in-out infinite alternate;
}
.scn-night-ride-with-rickshaw .horse {
  position: absolute; bottom: 28%; left: 52%; width: 40px; height: 45px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: nr-horse 2.5s ease-in-out infinite alternate;
}
.scn-night-ride-with-rickshaw .rider {
  position: absolute; bottom: 42%; left: 52%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nr-rider 2.5s ease-in-out infinite alternate;
}
.scn-night-ride-with-rickshaw .tree-a {
  position: absolute; bottom: 28%; left: 15%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: nr-tree-sway 6s ease-in-out infinite;
}
.scn-night-ride-with-rickshaw .tree-b {
  position: absolute; bottom: 28%; right: 20%; width: 25px; height: 70px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: nr-tree-sway 7s ease-in-out infinite reverse;
}
@keyframes nr-moon { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.95); } }
@keyframes nr-cloud-a { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes nr-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-130vw); } }
@keyframes nr-rickshaw { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(-2px) rotate(0); } }
@keyframes nr-horse { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes nr-rider { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes nr-tree-sway { 0% { transform: rotate(0deg); } 33% { transform: rotate(3deg); } 66% { transform: rotate(-4deg); } 100% { transform: rotate(0deg); } }

.scn-doctor-lecture {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a5a 40%, #3a3a6a 100%),
              radial-gradient(ellipse at 50% 80%, #4a4a7a 0%, transparent 60%);
}
.scn-doctor-lecture .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a4e 0%, #1a1a2e 100%);
  border-radius: 4% 4% 0 0;
}
.scn-doctor-lecture .window {
  position: absolute; top: 8%; right: 12%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #a0b0e0 0%, #6070a0 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 20px rgba(255,255,255,0.2);
}
.scn-doctor-lecture .moon-window {
  position: absolute; top: 12%; right: 22%; width: 25px; height: 25px;
  background: radial-gradient(circle, #e0e8ff 0%, #a0b0e0 100%);
  border-radius: 50%; box-shadow: 0 0 20px 8px rgba(160,176,224,0.5);
  animation: dl-moon 10s ease-in-out infinite alternate;
}
.scn-doctor-lecture .desk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-doctor-lecture .doctor {
  position: absolute; bottom: 36%; left: 25%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dl-doctor 2s ease-in-out infinite alternate;
}
.scn-doctor-lecture .patient {
  position: absolute; bottom: 36%; right: 20%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dl-patient 3s ease-in-out infinite;
}
.scn-doctor-lecture .lamp {
  position: absolute; bottom: 42%; left: 40%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,208,128,0.6);
  animation: dl-lamp 1.5s ease-in-out infinite alternate;
}
.scn-doctor-lecture .book {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 8% 8%;
  transform: rotate(-10deg);
  animation: dl-book 4s ease-in-out infinite;
}
@keyframes dl-moon { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } 100% { opacity: 0.85; transform: scale(0.92); } }
@keyframes dl-doctor { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dl-patient { 0% { transform: translateY(0) rotate(1deg); } 33% { transform: translateY(-3px) rotate(-1deg); } 66% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dl-lamp { 0% { box-shadow: 0 0 15px 4px #ffd080; opacity: 0.9; } 50% { box-shadow: 0 0 25px 8px #ffd080; opacity: 1; } 100% { box-shadow: 0 0 18px 5px #ffd080; opacity: 0.85; } }
@keyframes dl-book { 0% { transform: rotate(-12deg) translateX(0); } 50% { transform: rotate(-6deg) translateX(2px); } 100% { transform: rotate(-12deg) translateX(0); } }

.scn-blessington-road-cliff {
  background: linear-gradient(180deg, #0e0e2a 0%, #1a1a3e 40%, #2a2a4e 100%),
              radial-gradient(ellipse at 40% 10%, #3a4a7a 0%, transparent 70%);
}
.scn-blessington-road-cliff .cliff {
  position: absolute; bottom: 20%; left: 10%; right: 50%; height: 60%;
  background: linear-gradient(135deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 0 0 20% 0 / 0 0 30% 0;
  box-shadow: inset -10px 0 30px rgba(0,0,0,0.8);
}
.scn-blessington-road-cliff .pine-a {
  position: absolute; bottom: 30%; left: 15%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: bc-pine 5s ease-in-out infinite;
}
.scn-blessington-road-cliff .pine-b {
  position: absolute; bottom: 32%; left: 22%; width: 14px; height: 50px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: bc-pine 6s ease-in-out infinite reverse;
}
.scn-blessington-road-cliff .rickshaw-stop {
  position: absolute; bottom: 28%; left: 55%; width: 45px; height: 35px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: bc-stop 4s ease-in-out infinite alternate;
}
.scn-blessington-road-cliff .figure-a {
  position: absolute; bottom: 28%; left: 60%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-fig 3s ease-in-out infinite alternate;
}
.scn-blessington-road-cliff .figure-b {
  position: absolute; bottom: 28%; left: 65%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-fig 3.5s ease-in-out infinite alternate-reverse;
}
.scn-blessington-road-cliff .road-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%);
  border-radius: 60% 60% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.9);
}
.scn-blessington-road-cliff .moon-cliff {
  position: absolute; top: 6%; right: 20%; width: 35px; height: 35px;
  background: radial-gradient(circle at 40% 40%, #d0d8f0 0%, #8090b0 100%);
  border-radius: 50%; box-shadow: 0 0 25px 8px rgba(128,144,176,0.4);
  animation: bc-moon 15s ease-in-out infinite alternate;
}
.scn-blessington-road-cliff .cloud-c {
  position: absolute; top: 10%; left: 30%; width: 60px; height: 12px;
  background: rgba(180,190,210,0.25); filter: blur(6px); border-radius: 50%;
  animation: bc-cloud-c 50s linear infinite;
}
.scn-blessington-road-cliff .cloud-d {
  position: absolute; top: 16%; right: 10%; width: 80px; height: 10px;
  background: rgba(180,190,210,0.2); filter: blur(5px); border-radius: 50%;
  animation: bc-cloud-d 65s linear infinite reverse;
}
@keyframes bc-pine { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes bc-stop { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bc-fig { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes bc-moon { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px #8090b0; } 50% { opacity: 1; box-shadow: 0 0 35px 12px #8090b0; } 100% { opacity: 0.75; box-shadow: 0 0 25px 6px #8090b0; } }
@keyframes bc-cloud-c { 0% { transform: translateX(-30px); } 100% { transform: translateX(110vw); } }
@keyframes bc-cloud-d { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-landslide-miraculous-escape {
  background: linear-gradient(180deg, #0a0a1a 0%, #151525 40%, #0e0e1e 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, transparent 80%);
}
.scn-landslide-miraculous-escape .sky-debris {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%);
  animation: le-sky 15s ease-in-out infinite alternate;
}
.scn-landslide-miraculous-escape .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
}
.scn-landslide-miraculous-escape .tree-fall-a {
  position: absolute; bottom: 35%; left: 15%; width: 15px; height: 80px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 10% 10% 10% 10% / 30% 30% 10% 10%;
  transform-origin: 50% 100%;
  animation: le-tree-a 8s ease-in-out infinite;
}
.scn-landslide-miraculous-escape .tree-fall-b {
  position: absolute; bottom: 30%; right: 20%; width: 18px; height: 90px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 10% 10% 10% 10% / 30% 30% 10% 10%;
  transform-origin: 100% 100%;
  animation: le-tree-b 10s ease-in-out infinite;
}
.scn-landslide-miraculous-escape .horse-a {
  position: absolute; bottom: 28%; left: 35%; width: 35px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: le-horse 1.5s ease-in-out infinite alternate;
}
.scn-landslide-miraculous-escape .horse-b {
  position: absolute; bottom: 28%; right: 30%; width: 35px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: le-horse 1.8s ease-in-out infinite alternate-reverse;
}
.scn-landslide-miraculous-escape .rider-a {
  position: absolute; bottom: 42%; left: 36%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: le-rider 1.5s ease-in-out infinite alternate;
}
.scn-landslide-miraculous-escape .rider-b {
  position: absolute; bottom: 42%; right: 31%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: le-rider 1.8s ease-in-out infinite alternate-reverse;
}
.scn-landslide-miraculous-escape .debris-cloud {
  position: absolute; bottom: 25%; left: 40%; width: 120px; height: 40px;
  background: rgba(30,30,40,0.5); filter: blur(15px); border-radius: 50%;
  animation: le-debris 6s ease-in-out infinite alternate;
}
@keyframes le-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes le-tree-a { 0% { transform: rotate(70deg) translateX(10px); } 50% { transform: rotate(65deg) translateX(15px); } 100% { transform: rotate(75deg) translateX(8px); } }
@keyframes le-tree-b { 0% { transform: rotate(-80deg) translateX(-10px); } 50% { transform: rotate(-75deg) translateX(-15px); } 100% { transform: rotate(-85deg) translateX(-8px); } }
@keyframes le-horse { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes le-rider { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(1px) rotate(1deg); } }
@keyframes le-debris { 0% { transform: translateX(0) scale(1); opacity: 0.5; } 50% { transform: translateX(-10px) scale(1.1); opacity: 0.7; } 100% { transform: translateX(5px) scale(0.9); opacity: 0.4; } }

.scn-item-rickshaw-ladies-mile {
  background: linear-gradient(180deg, #2c3a4e 0%, #1a2435 40%, #151e2a 100%), radial-gradient(ellipse at 50% 100%, #1a2435 0%, transparent 70%);
}
.scn-item-rickshaw-ladies-mile .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a4c66 0%, #2c3a4e 100%);
  animation: rlm-sky 15s ease-in-out infinite alternate;
}
.scn-item-rickshaw-ladies-mile .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #1a1f26 0%, #2a333f 50%, #3a4450 100%);
  border-radius: 20% 10% 0 0 / 10% 5% 0 0;
  animation: rlm-ground 20s ease-in-out infinite;
}
.scn-item-rickshaw-ladies-mile .cloud-dark {
  position: absolute; top: 15%; left: -10%; width: 150%; height: 20%;
  background: linear-gradient(180deg, rgba(60,70,90,0.6) 0%, rgba(40,50,70,0.2) 100%);
  border-radius: 50%;
  filter: blur(20px);
  animation: rlm-cloud 40s linear infinite;
}
.scn-item-rickshaw-ladies-mile .horse-fore {
  position: absolute; bottom: 32%; left: 30%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #1e1e2a 0%, #0c0c14 100%);
  border-radius: 60% 40% 20% 50% / 60% 50% 30% 40%;
  transform: scaleX(-1);
  animation: rlm-horse-fore 3s ease-in-out infinite;
}
.scn-item-rickshaw-ladies-mile .horse-rear {
  position: absolute; bottom: 30%; left: 60%; width: 45px; height: 38px;
  background: linear-gradient(135deg, #1a1a26 0%, #0a0a12 100%);
  border-radius: 60% 40% 20% 50% / 60% 50% 30% 40%;
  transform: scaleX(-1);
  animation: rlm-horse-rear 3.5s ease-in-out infinite;
}
.scn-item-rickshaw-ladies-mile .riders {
  position: absolute; bottom: 40%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #0e0e1a 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rlm-rider 3s ease-in-out infinite;
}
.scn-item-rickshaw-ladies-mile .rickshaw {
  position: absolute; bottom: 28%; right: 10%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5);
  animation: rlm-rickshaw 10s ease-in-out infinite;
}
.scn-item-rickshaw-ladies-mile .dust {
  position: absolute; bottom: 20%; left: 20%; width: 100%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,180,200,0.1) 0%, transparent 70%);
  filter: blur(8px);
  animation: rlm-dust 4s ease-in-out infinite;
}
@keyframes rlm-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes rlm-ground { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes rlm-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(40%) } }
@keyframes rlm-horse-fore { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 25% { transform: scaleX(-1) translateY(-3px) rotate(2deg); } 50% { transform: scaleX(-1) translateY(0) rotate(0deg); } 75% { transform: scaleX(-1) translateY(-3px) rotate(-2deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } }
@keyframes rlm-horse-rear { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 25% { transform: scaleX(-1) translateY(-2px) rotate(1deg); } 50% { transform: scaleX(-1) translateY(0) rotate(0deg); } 75% { transform: scaleX(-1) translateY(-2px) rotate(-1deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } }
@keyframes rlm-rider { 0% { transform: translate(0,0) rotate(-1deg); } 25% { transform: translate(2px,-1px) rotate(1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-2px,-1px) rotate(1deg); } 100% { transform: translate(0,0) rotate(-1deg); } }
@keyframes rlm-rickshaw { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rlm-dust { 0% { opacity: 0.4; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(-5px); } 100% { opacity: 0.2; transform: translateY(-10px); } }

.scn-ghost-rickshaw-race {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 40%, #0a0a14 100%), radial-gradient(ellipse at 50% 100%, #0f0f1e 0%, transparent 60%);
}
.scn-ghost-rickshaw-race .sky-ghost {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 100%);
  animation: gr-sky 12s ease-in-out infinite alternate;
}
.scn-ghost-rickshaw-race .ground-ghost {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #0a0a14 0%, #1a1a2a 60%, #252538 100%);
  border-radius: 30% 20% 0 0 / 20% 10% 0 0;
}
.scn-ghost-rickshaw-race .mist {
  position: absolute; top: 30%; left: -20%; width: 140%; height: 30%;
  background: linear-gradient(180deg, rgba(180,180,220,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(30px);
  animation: gr-mist 25s linear infinite;
}
.scn-ghost-rickshaw-race .ghost-rickshaw {
  position: absolute; bottom: 30%; left: 20%; width: 90px; height: 60px;
  background: linear-gradient(135deg, rgba(200,200,255,0.2) 0%, rgba(140,140,200,0.05) 100%);
  border-radius: 15% 15% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(180,180,240,0.3), 0 0 80px 30px rgba(150,150,220,0.1);
  animation: gr-ghost-rickshaw 8s ease-in-out infinite;
}
.scn-ghost-rickshaw-race .ghost-figure {
  position: absolute; bottom: 35%; left: 35%; width: 24px; height: 44px;
  background: linear-gradient(180deg, rgba(220,220,255,0.3) 0%, rgba(140,140,200,0.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(200,200,255,0.3);
  animation: gr-ghost-figure 6s ease-in-out infinite;
}
.scn-ghost-rickshaw-race .horse-solid {
  position: absolute; bottom: 28%; right: 15%; width: 55px; height: 45px;
  background: linear-gradient(135deg, #252538 0%, #0f0f1a 100%);
  border-radius: 60% 40% 20% 50% / 60% 50% 30% 40%;
  transform: scaleX(1);
  animation: gr-horse 3.2s ease-in-out infinite;
}
.scn-ghost-rickshaw-race .rider-solid {
  position: absolute; bottom: 36%; right: 18%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gr-rider 3.2s ease-in-out infinite;
}
@keyframes gr-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes gr-mist { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(30%) scale(1.1); } 100% { transform: translateX(0) scale(0.9); } }
@keyframes gr-ghost-rickshaw { 0% { opacity: 0.2; transform: translateY(0) scale(0.95); } 50% { opacity: 0.6; transform: translateY(-10px) scale(1.05); } 100% { opacity: 0.2; transform: translateY(0) scale(0.95); } }
@keyframes gr-ghost-figure { 0% { opacity: 0.2; transform: translateY(0) rotate(-2deg); } 50% { opacity: 0.6; transform: translateY(-5px) rotate(2deg); } 100% { opacity: 0.2; transform: translateY(0) rotate(-2deg); } }
@keyframes gr-horse { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gr-rider { 0% { transform: translate(0,0) rotate(-1deg); } 25% { transform: translate(1px,-1px) rotate(1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-1px,-1px) rotate(1deg); } 100% { transform: translate(0,0) rotate(-1deg); } }

.scn-banter-and-silence {
  background: linear-gradient(180deg, #3a4a5e 0%, #2c3a4e 40%, #1a2435 100%), radial-gradient(ellipse at 50% 80%, #2c3a4e 0%, transparent 60%);
}
.scn-banter-and-silence .sky-tense {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a5a6e 0%, #3a4a5e 100%);
  animation: bs-sky 14s ease-in-out infinite alternate;
}
.scn-banter-and-silence .road {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, #2a3545 0%, #3a4a5a 30%, #2a3545 50%, #3a4a5a 70%, #2a3545 100%);
  background-size: 60px 100%;
  animation: bs-road 8s linear infinite;
}
.scn-banter-and-silence .horse-left {
  position: absolute; bottom: 25%; left: 20%; width: 50px; height: 42px;
  background: linear-gradient(135deg, #2a2a38 0%, #141420 100%);
  border-radius: 60% 40% 20% 50% / 60% 50% 30% 40%;
  transform: scaleX(-1);
  animation: bs-horse-left 3.8s ease-in-out infinite;
}
.scn-banter-and-silence .rider-left {
  position: absolute; bottom: 33%; left: 22%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bs-rider-left 3.8s ease-in-out infinite;
}
.scn-banter-and-silence .horse-right {
  position: absolute; bottom: 25%; right: 20%; width: 50px; height: 42px;
  background: linear-gradient(135deg, #2a2a38 0%, #141420 100%);
  border-radius: 60% 40% 20% 50% / 60% 50% 30% 40%;
  animation: bs-horse-right 4.2s ease-in-out infinite;
}
.scn-banter-and-silence .rider-right {
  position: absolute; bottom: 33%; right: 22%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bs-rider-right 4.2s ease-in-out infinite;
}
.scn-banter-and-silence .fence-post {
  position: absolute; bottom: 20%; left: 10%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 20px 0 0 #2a3a4a, 40px 0 0 #3a4a5a, 60px 0 0 #2a3a4a, 80px 0 0 #3a4a5a, 100px 0 0 #2a3a4a;
  animation: bs-fence 10s ease-in-out infinite;
}
@keyframes bs-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes bs-road { 0% { background-position: 0 0; } 100% { background-position: -60px 0; } }
@keyframes bs-horse-left { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 25% { transform: scaleX(-1) translateY(-2px) rotate(1deg); } 50% { transform: scaleX(-1) translateY(0) rotate(0deg); } 75% { transform: scaleX(-1) translateY(-2px) rotate(-1deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } }
@keyframes bs-rider-left { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(1px,-1px) rotate(1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-1px,-1px) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes bs-horse-right { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bs-rider-right { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-1px,-1px) rotate(-1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(1px,-1px) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes bs-fence { 0% { transform: translateY(0); opacity: 0.6; } 50% { transform: translateY(-2px); opacity: 0.8; } 100% { transform: translateY(0); opacity: 0.6; } }

.scn-overheard-conversation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 30%, #3a3a5e 60%, #4a4a6e 100%), radial-gradient(ellipse at 50% 100%, #3a3a5e 0%, transparent 70%);
}
.scn-overheard-conversation .sky-dusk {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a3a5e 0%, #3a2a4e 30%, #2a1a3e 100%);
  animation: oc-sky 18s ease-in-out infinite alternate;
}
.scn-overheard-conversation .ground-dusk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3e 50%, #3a3a4e 100%);
  border-radius: 10% 5% 0 0 / 5% 2% 0 0;
  animation: oc-ground 15s ease-in-out infinite;
}
.scn-overheard-conversation .figure-a {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #15152a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: oc-figure-a 6s ease-in-out infinite;
}
.scn-overheard-conversation .figure-b {
  position: absolute; bottom: 25%; right: 30%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: oc-figure-b 7s ease-in-out infinite;
}
.scn-overheard-conversation .rickshaw-dim {
  position: absolute; bottom: 15%; left: 5%; width: 90px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.6);
  opacity: 0.65;
  animation: oc-rickshaw 12s ease-in-out infinite;
}
.scn-overheard-conversation .lantern {
  position: absolute; bottom: 40%; left: 45%; width: 8px; height: 10px;
  background: radial-gradient(circle, #c08050 0%, #a06030 60%, transparent 100%);
  border-radius: 30% 30% 50% 50%;
  box-shadow: 0 0 25px 8px rgba(160,96,48,0.6), 0 0 60px 20px rgba(160,96,48,0.2);
  animation: oc-lantern 4s ease-in-out infinite alternate;
}
.scn-overheard-conversation .shadow {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 30%, transparent 50%, rgba(0,0,0,0.4) 70%, transparent 100%);
  filter: blur(5px);
  animation: oc-shadow 10s ease-in-out infinite;
}
@keyframes oc-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes oc-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes oc-figure-a { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-2px,-1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes oc-figure-b { 0% { transform: scaleX(-1) translate(0,0) rotate(0deg); } 25% { transform: scaleX(-1) translate(-2px,-1px) rotate(-1deg); } 50% { transform: scaleX(-1) translate(0,0) rotate(0deg); } 75% { transform: scaleX(-1) translate(2px,-1px) rotate(1deg); } 100% { transform: scaleX(-1) translate(0,0) rotate(0deg); } }
@keyframes oc-rickshaw { 0% { transform: translateY(0); opacity: 0.6; } 50% { transform: translateY(-3px); opacity: 0.7; } 100% { transform: translateY(0); opacity: 0.6; } }
@keyframes oc-lantern { 0% { opacity: 0.7; box-shadow: 0 0 20px 7px rgba(160,96,48,0.5); } 50% { opacity: 1; box-shadow: 0 0 35px 12px rgba(200,120,60,0.8); } 100% { opacity: 0.75; box-shadow: 0 0 20px 7px rgba(160,96,48,0.5); } }
@keyframes oc-shadow { 0% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(-2px); } 100% { opacity: 0.3; transform: translateY(0); } }

/* final-meeting-agnes — tense overcast landscape */
.scn-final-meeting-agnes {
  background: linear-gradient(180deg, #2c3a4a 0%, #4a5a6a 40%, #5a6a7a 100%), radial-gradient(ellipse at 50% 0%, #4a5a6a 0%, #1a2a3a 70%);
}
.scn-final-meeting-agnes .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a4a5a 0%, #6a7a8a 100%); animation: ag-sky 12s ease-in-out infinite alternate; }
.scn-final-meeting-agnes .storm-clouds { position:absolute; top:8%; left:0; right:0; height:25%; background: linear-gradient(180deg, rgba(40,50,60,.8) 0%, rgba(60,70,80,.4) 100%); border-radius: 0 0 50% 50%; filter: blur(6px); animation: ag-clouds 15s ease-in-out infinite alternate; }
.scn-final-meeting-agnes .hills-back { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; animation: ag-hills 18s ease-in-out infinite alternate; }
.scn-final-meeting-agnes .hills-front { position:absolute; bottom:25%; left:-10%; right:-10%; height:25%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.5); animation: ag-hills 22s ease-in-out infinite alternate-reverse; }
.scn-final-meeting-agnes .path { position:absolute; bottom:15%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 20% 20% 0 0; transform: perspective(200px) rotateX(10deg); animation: ag-path 8s ease-in-out infinite alternate; }
.scn-final-meeting-agnes .figure-left { position:absolute; bottom:20%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ag-walk 4s ease-in-out infinite; }
.scn-final-meeting-agnes .figure-right { position:absolute; bottom:20%; left:45%; width:20px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ag-walk 4s ease-in-out infinite 2s; }
.scn-final-meeting-agnes .tree { position:absolute; bottom:28%; left:68%; width:8px; height:55px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 2px 2px 0 0; transform-origin: bottom center; animation: ag-sway 6s ease-in-out infinite; }
.scn-final-meeting-agnes .tree::before { content:''; position:absolute; top:-15px; left:-12px; width:30px; height:20px; background: radial-gradient(ellipse, rgba(20,40,20,.6) 0%, transparent 70%); filter: blur(3px); }
@keyframes ag-sky { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.4 } }
@keyframes ag-clouds { 0% { transform: translateX(0) scale(1); opacity:.3 } 50% { transform: translateX(15px) scale(1.02); opacity:.5 } 100% { transform: translateX(-10px) scale(.98); opacity:.2 } }
@keyframes ag-hills { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.01) } 100% { transform: translateY(2px) scale(.99) } }
@keyframes ag-path { 0% { transform: perspective(200px) rotateX(10deg) translateX(0) } 50% { transform: perspective(200px) rotateX(8deg) translateX(3px) } 100% { transform: perspective(200px) rotateX(12deg) translateX(-2px) } }
@keyframes ag-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(-2px) rotate(0) } 75% { transform: translateX(12px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(16px) translateY(0) rotate(2deg) } }
@keyframes ag-sway { 0% { transform: rotate(-3deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-2deg) } }

/* item-handkerchief — dark overcast close-up */
.scn-item-handkerchief {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e2e 100%), radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, #0a0a1a 70%);
}
.scn-item-handkerchief .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); animation: hk-bg 10s ease-in-out infinite alternate; }
.scn-item-handkerchief .rickshaw-body { position:absolute; bottom:20%; left:20%; right:20%; height:45%; background: linear-gradient(135deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 -10px 30px rgba(0,0,0,.6); animation: hk-float 8s ease-in-out infinite alternate; }
.scn-item-handkerchief .wheel-back { position:absolute; bottom:10%; left:28%; width:45px; height:45px; border: 6px solid #2a2a1a; border-radius: 50%; background: radial-gradient(circle, #1a1a0a 20%, transparent 20%); box-shadow: 0 0 20px rgba(0,0,0,.5); animation: hk-spin 6s linear infinite; }
.scn-item-handkerchief .wheel-front { position:absolute; bottom:8%; left:55%; width:50px; height:50px; border: 6px solid #2a2a1a; border-radius: 50%; background: radial-gradient(circle, #1a1a0a 20%, transparent 20%); box-shadow: 0 0 20px rgba(0,0,0,.5); animation: hk-spin 6s linear infinite 1.5s; }
.scn-item-handkerchief .figure { position:absolute; bottom:25%; left:38%; width:30px; height:55px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(5deg); animation: hk-lean 5s ease-in-out infinite alternate; }
.scn-item-handkerchief .handkerchief { position:absolute; bottom:35%; left:45%; width:25px; height:25px; background: radial-gradient(ellipse, rgba(200,200,210,.3) 0%, rgba(180,180,190,.1) 100%); border-radius: 0 50% 50% 50%; filter: blur(2px); box-shadow: 0 0 20px 5px rgba(200,200,210,.1); animation: hk-fade 6s ease-in-out infinite alternate; transform: rotate(45deg); }
.scn-item-handkerchief .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.8); }
.scn-item-handkerchief .shadow { position:absolute; bottom:15%; left:20%; right:20%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); filter: blur(8px); animation: hk-shadow 8s ease-in-out infinite alternate; }
@keyframes hk-bg { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes hk-float { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes hk-spin { 0% { transform: rotate(0deg) } 50% { transform: rotate(180deg) } 100% { transform: rotate(360deg) } }
@keyframes hk-lean { 0% { transform: rotate(3deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(2deg) } }
@keyframes hk-fade { 0% { opacity:.1; filter: blur(4px); transform: rotate(40deg) scale(.9) } 50% { opacity:.5; filter: blur(1px); transform: rotate(50deg) scale(1.1) } 100% { opacity:.15; filter: blur(3px); transform: rotate(45deg) scale(.95) } }
@keyframes hk-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(.95) } }

/* agnes-death — calm dim interior */
.scn-agnes-death {
  background: linear-gradient(180deg, #1a1510 0%, #2a1f15 40%, #1a1510 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #0a0a05 70%);
}
.scn-agnes-death .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1f15 0%, #1a1510 100%); animation: ad-wall 15s ease-in-out infinite alternate; }
.scn-agnes-death .window { position:absolute; top:12%; left:30%; right:30%; height:25%; background: linear-gradient(180deg, #4a5a6a 0%, #5a6a7a 100%); border-radius: 2px; box-shadow: inset 0 0 30px rgba(0,0,0,.4); opacity:.4; animation: ad-light 10s ease-in-out infinite alternate; }
.scn-agnes-death .desk { position:absolute; bottom:10%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-agnes-death .candle { position:absolute; bottom:25%; left:48%; width:8px; height:28px; background: linear-gradient(180deg, #e8d8c8 0%, #c8b8a8 100%); border-radius: 2px 2px 0 0; transform-origin: bottom center; animation: ad-candle-sway 5s ease-in-out infinite alternate; }
.scn-agnes-death .glow { position:absolute; bottom:28%; left:48%; width:70px; height:70px; transform: translate(-50%, 50%); background: radial-gradient(circle, rgba(200,180,150,.6) 0%, rgba(200,180,150,.2) 40%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: ad-flicker 3s ease-in-out infinite alternate; }
.scn-agnes-death .letters { position:absolute; bottom:15%; left:30%; width:50px; height:35px; background: linear-gradient(135deg, #d8c8a8 0%, #c8b898 100%); transform: rotate(-8deg); border-radius: 1px; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: ad-float 8s ease-in-out infinite alternate; }
.scn-agnes-death .hand { position:absolute; bottom:18%; left:42%; width:16px; height:22px; background: linear-gradient(180deg, #c8b8a8 0%, #b8a898 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; transform: rotate(-10deg); animation: ad-hand 6s ease-in-out infinite alternate; }
.scn-agnes-death .inkwell { position:absolute; bottom:15%; left:55%; width:14px; height:18px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: ad-inkwell 12s ease-in-out infinite alternate; }
@keyframes ad-wall { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes ad-light { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }
@keyframes ad-candle-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes ad-flicker { 0% { opacity:.3; transform: translate(-50%, 50%) scale(.95) } 50% { opacity:.7; transform: translate(-50%, 50%) scale(1.05) } 100% { opacity:.4; transform: translate(-50%, 50%) scale(.98) } }
@keyframes ad-float { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-6deg) translateY(0) } }
@keyframes ad-hand { 0% { transform: rotate(-12deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-10deg) } }
@keyframes ad-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

/* spring-simla — warm sunlit lovers walk */
.scn-spring-simla {
  background: linear-gradient(180deg, #8ab4d8 0%, #c8dee8 30%, #e8f0f0 100%), radial-gradient(ellipse at 70% 20%, #fce8b0 0%, transparent 50%);
}
.scn-spring-simla .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a9ec8 0%, #a8c8e0 100%); animation: ss-sky 15s ease-in-out infinite alternate; }
.scn-spring-simla .sun { position:absolute; top:12%; right:18%; width:45px; height:45px; background: radial-gradient(circle, #fce8b0 0%, #f8d88 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(248,232,160,.4); animation: ss-pulse 8s ease-in-out infinite alternate; }
.scn-spring-simla .mountains-back { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; animation: ss-mountains 20s ease-in-out infinite alternate; }
.scn-spring-simla .mountains-front { position:absolute; bottom:25%; left:-5%; right:-5%; height:30%; background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%); border-radius: 40% 60% 0 0 / 80% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: ss-mountains 25s ease-in-out infinite alternate-reverse; }
.scn-spring-simla .trees { position:absolute; bottom:20%; left:12%; width:28px; height:60px; background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ss-sway 7s ease-in-out infinite alternate; }
.scn-spring-simla .path { position:absolute; bottom:15%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #c8b898 0%, #b8a888 100%); border-radius: 30% 30% 0 0; transform: perspective(300px) rotateX(15deg); animation: ss-path 9s ease-in-out infinite alternate; }
.scn-spring-simla .figure-kitty { position:absolute; bottom:18%; left:30%; width:18px; height:35px; background: linear-gradient(180deg, #e8d8c8 0%, #c8b8a8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-walk 6s ease-in-out infinite; }
.scn-spring-simla .figure-kitty::after { content:''; position:absolute; top:5px; left:5px; width:8px; height:8px; background: #1a1a2a; border-radius:50%; box-shadow: 0 0 4px rgba(0,0,0,.3); }
.scn-spring-simla .figure-jack { position:absolute; bottom:18%; left:44%; width:20px; height:38px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-walk 6s ease-in-out infinite 0.4s; }
.scn-spring-simla .figure-jack::after { content:''; position:absolute; top:5px; left:6px; width:8px; height:8px; background: #1a1a2a; border-radius:50%; box-shadow: 0 0 4px rgba(0,0,0,.3); }
@keyframes ss-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes ss-pulse { 0% { transform: scale(1); opacity:.7; box-shadow: 0 0 40px 15px rgba(248,232,160,.3) } 50% { transform: scale(1.08); opacity:1; box-shadow: 0 0 80px 30px rgba(248,232,160,.6) } 100% { transform: scale(.98); opacity:.8; box-shadow: 0 0 50px 20px rgba(248,232,160,.4) } }
@keyframes ss-mountains { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.005) } 100% { transform: translateY(2px) scale(.995) } }
@keyframes ss-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes ss-path { 0% { transform: perspective(300px) rotateX(15deg) translateX(0) } 50% { transform: perspective(300px) rotateX(13deg) translateX(4px) } 100% { transform: perspective(300px) rotateX(16deg) translateX(-2px) } }
@keyframes ss-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(-2px) rotate(0) } 75% { transform: translateX(14px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(18px) translateY(0) rotate(2deg) } }

.scn-kitty-passes-by {
  background: linear-gradient(180deg, #f9d6a0 0%, #e4a55f 40%, #c08050 100%),
              radial-gradient(ellipse at 50% 30%, #fff2cd 0%, transparent 50%);
}
.scn-kitty-passes-by .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, rgba(255,210,160,0.4) 0%, transparent 100%);
  animation: kp-sky 12s ease-in-out infinite alternate;
}
.scn-kitty-passes-by .sun {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffedb0 0%, #f0c060 50%, transparent 100%);
  box-shadow: 0 0 50px 20px #f0c060;
  border-radius: 50%;
  transform: translateX(-50%);
  animation: kp-sun 4s ease-in-out infinite alternate;
}
.scn-kitty-passes-by .cloud {
  position: absolute; top: 25%; left: 10%; width: 120px; height: 20px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%; filter: blur(10px);
  animation: kp-cloud 30s linear infinite;
}
.scn-kitty-passes-by .building-left {
  position: absolute; bottom: 40%; left: 5%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #8c6a4a 0%, #5a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 2px 0 10px rgba(0,0,0,0.3);
}
.scn-kitty-passes-by .building-right {
  position: absolute; bottom: 40%; right: 10%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
}
.scn-kitty-passes-by .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a07040 0%, #604020 100%);
  border-radius: 10% 10% 0 0;
}
.scn-kitty-passes-by .horse1 {
  position: absolute; bottom: 45%; left: -10%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 30% 30% 50% / 60% 50% 50% 60%;
  transform-origin: center bottom;
  animation: kp-horse 8s linear infinite;
}
.scn-kitty-passes-by .horse2 {
  position: absolute; bottom: 45%; left: -15%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 30% 30% 50% / 60% 50% 50% 60%;
  transform-origin: center bottom;
  animation: kp-horse 8s linear infinite;
  animation-delay: 2s;
}
.scn-kitty-passes-by .puddle {
  position: absolute; bottom: 15%; left: 40%; width: 80px; height: 10px;
  background: linear-gradient(90deg, transparent 0%, #b08060 30%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: kp-puddle 6s ease-in-out infinite alternate;
}
@keyframes kp-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes kp-sun { 0% { box-shadow: 0 0 30px 10px #f0c060; } 50% { box-shadow: 0 0 60px 25px #ffd080; } 100% { box-shadow: 0 0 40px 15px #f0c060; } }
@keyframes kp-cloud { 0% { transform: translateX(-150px); } 100% { transform: translateX(100vw); } }
@keyframes kp-horse { 0% { transform: translateX(-100px) translateY(0) rotate(0deg); } 50% { transform: translateX(50vw) translateY(-10px) rotate(2deg); } 100% { transform: translateX(120vw) translateY(0) rotate(0deg); } }
@keyframes kp-puddle { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(0.95); } }

.scn-self-reassurance {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 40%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 20%, #5a6a7a 0%, transparent 70%);
}
.scn-self-reassurance .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, transparent 100%);
  animation: sr-sky 10s ease-in-out infinite alternate;
}
.scn-self-reassurance .hills-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 30% 40% 0 0;
  animation: sr-hills-back 15s ease-in-out infinite alternate;
}
.scn-self-reassurance .hills-front {
  position: absolute; bottom: 10%; left: -5%; right: -5%; height: 25%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 30% 0 0;
  animation: sr-hills-front 12s ease-in-out infinite alternate;
}
.scn-self-reassurance .path {
  position: absolute; bottom: 5%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 10% 10% 0 0 / 50% 50% 0 0;
  transform: skewX(-10deg);
  opacity: 0.7;
  animation: sr-path 8s ease-in-out infinite alternate;
}
.scn-self-reassurance .figure {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sr-figure 6s ease-in-out infinite;
}
.scn-self-reassurance .tree {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: sr-tree 8s ease-in-out infinite alternate;
}
.scn-self-reassurance .cloud {
  position: absolute; top: 20%; right: 10%; width: 100px; height: 15px;
  background: rgba(200,200,220,0.3);
  border-radius: 50%; filter: blur(6px);
  animation: sr-cloud 40s linear infinite;
}
@keyframes sr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sr-hills-back { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sr-hills-front { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes sr-path { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes sr-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes sr-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes sr-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-200vw); } }

.scn-convent-slope-again {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 60%);
}
.scn-convent-slope-again .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, transparent 100%);
  animation: cs-sky 8s ease-in-out infinite alternate;
}
.scn-convent-slope-again .slope {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  clip-path: polygon(0 30%, 100% 10%, 100% 100%, 0 100%);
  animation: cs-slope 20s ease-in-out infinite alternate;
}
.scn-convent-slope-again .convent {
  position: absolute; bottom: 55%; right: 10%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 5px 5px 0 0;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: cs-convent 5s ease-in-out infinite;
}
.scn-convent-slope-again .tree-left {
  position: absolute; bottom: 40%; left: 5%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: cs-tree-l 10s ease-in-out infinite alternate;
}
.scn-convent-slope-again .tree-right {
  position: absolute; bottom: 45%; right: 30%; width: 25px; height: 100px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: cs-tree-r 12s ease-in-out infinite alternate;
}
.scn-convent-slope-again .mrs-w {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cs-mrs 7s ease-in-out infinite;
}
.scn-convent-slope-again .narrator {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: cs-narr 9s ease-in-out infinite;
}
@keyframes cs-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cs-slope { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes cs-convent { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes cs-tree-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes cs-tree-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(-4deg); } 100% { transform: rotate(2deg); } }
@keyframes cs-mrs { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes cs-narr { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(10px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

.scn-item-cardcase {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 50%, #1a1a3a 0%, transparent 70%);
}
.scn-item-cardcase .bg-deep {
  position: absolute; inset: 0;
  background: #0a0a1a;
  opacity: 0.8;
  animation: ic-bg 8s ease-in-out infinite alternate;
}
.scn-item-cardcase .dress {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 120px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(100,100,150,0.3);
  animation: ic-dress 6s ease-in-out infinite;
}
.scn-item-cardcase .left-arm {
  position: absolute; bottom: 45%; left: 35%; width: 15px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 50% 50% / 20% 20% 60% 60%;
  transform-origin: top center;
  animation: ic-arm-l 5s ease-in-out infinite alternate;
}
.scn-item-cardcase .right-arm {
  position: absolute; bottom: 45%; right: 35%; width: 15px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 50% 50% / 20% 20% 60% 60%;
  transform-origin: top center;
  animation: ic-arm-r 5s ease-in-out infinite alternate;
}
.scn-item-cardcase .cardcase {
  position: absolute; bottom: 30%; right: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 0 10px 2px rgba(100,80,60,0.4);
  animation: ic-cardcase 7s ease-in-out infinite;
}
.scn-item-cardcase .handkerchief {
  position: absolute; bottom: 25%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, #c0c0c8 0%, #888890 100%);
  border-radius: 50%; filter: blur(1px);
  animation: ic-hanky 9s ease-in-out infinite;
}
.scn-item-cardcase .aura {
  position: absolute; inset: 20% 10% 10% 10%;
  background: radial-gradient(ellipse, rgba(100,100,160,0.15) 0%, transparent 70%);
  animation: ic-aura 10s ease-in-out infinite alternate;
}
@keyframes ic-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ic-dress { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.01); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ic-arm-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(2deg); } }
@keyframes ic-arm-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-2deg); } }
@keyframes ic-cardcase { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ic-hanky { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes ic-aura { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.ball { position: absolute; pointer-events: none; }
.log { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.tree-fall { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-choice-of-excuse {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e2e 40%, #1e141e 100%),
              radial-gradient(ellipse at 50% 100%, #2a1e2e 0%, transparent 70%);
  filter: contrast(1.1) brightness(0.9);
}
.scn-choice-of-excuse .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1a2e 0%, #2a1e2e 50%, #1a1a2e 100%);
  animation: coe-shift 16s ease-in-out infinite alternate;
}
.scn-choice-of-excuse .wall-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, transparent 0%, #0e0a12 70%, #08060a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6); animation: coe-pulse 8s ease-in-out infinite;
}
.scn-choice-of-excuse .table {
  position: absolute; bottom: 18%; left: 50%; width: 140px; height: 14px;
  transform: translateX(-50%); background: linear-gradient(90deg, #3a2a1e 0%, #4a3a2e 50%, #3a2a1e 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-choice-of-excuse .lamp {
  position: absolute; bottom: 28%; left: 50%; width: 14px; height: 28px;
  transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 8px rgba(0,0,0,.4);
}
.scn-choice-of-excuse .lamp-glow {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #d4a060 0%, #8a6030 40%, transparent 70%);
  border-radius: 50%; filter: blur(12px); opacity: 0.7;
  animation: coe-flicker 3s ease-in-out infinite alternate;
}
.scn-choice-of-excuse .figure-standing {
  position: absolute; bottom: 16%; left: 40%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #08080e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -2px 0 8px rgba(0,0,0,.6); transform-origin: bottom center;
  animation: coe-tilt 6s ease-in-out infinite;
}
.scn-choice-of-excuse .figure-seated {
  position: absolute; bottom: 16%; left: 58%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #2a1e2e 0%, #1a121e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; box-shadow: 2px 0 6px rgba(0,0,0,.5);
  animation: coe-sit 10s ease-in-out infinite;
}
@keyframes coe-shift { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes coe-pulse { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes coe-flicker { 0% { opacity: 0.5; transform: translateX(-50%) scale(0.9) } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.1) } 100% { opacity: 0.6; transform: translateX(-50%) scale(0.95) } }
@keyframes coe-tilt { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes coe-sit { 0% { transform: rotate(1deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }

.scn-fits-or-insanity {
  background: linear-gradient(180deg, #0c0a14 0%, #14101e 40%, #0e0a16 100%),
              radial-gradient(ellipse at 50% 20%, #1a1428 0%, transparent 60%);
}
.scn-fits-or-insanity .bedroom-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0c0a14 0%, #161220 50%, #0c0a14 100%);
  animation: foi-drift 20s ease-in-out infinite alternate;
}
.scn-fits-or-insanity .bed-frame {
  position: absolute; bottom: 12%; left: 50%; width: 160px; height: 80px;
  transform: translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 6px; box-shadow: 0 8px 20px rgba(0,0,0,.7);
}
.scn-fits-or-insanity .pillow {
  position: absolute; bottom: 50%; left: 38%; width: 30px; height: 16px;
  background: linear-gradient(180deg, #2a242e 0%, #1a1620 100%);
  border-radius: 60% 60% 50% 50%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.3);
  transform: rotate(-5deg);
}
.scn-fits-or-insanity .figure-prone {
  position: absolute; bottom: 34%; left: 45%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform-origin: bottom center; transform: rotate(8deg);
  animation: foi-turn 12s ease-in-out infinite;
}
.scn-fits-or-insanity .blanket {
  position: absolute; bottom: 18%; left: 42%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #2a1e2a 0%, #1a121a 100%);
  border-radius: 30% 30% 50% 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: rotate(-3deg); animation: foi-cover 8s ease-in-out infinite;
}
.scn-fits-or-insanity .window-dim {
  position: absolute; top: 12%; right: 12%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #1a1a3e 0%, #0e0e2a 100%);
  border: 2px solid #1a1a2e; border-radius: 2px;
  box-shadow: inset 0 0 12px rgba(0,0,20,.5);
}
.scn-fits-or-insanity .shadow-shape {
  position: absolute; top: 0; right: 0; width: 60%; height: 70%;
  background: linear-gradient(135deg, transparent 30%, #0a0812 70%);
  filter: blur(15px); animation: foi-twist 14s ease-in-out infinite alternate;
}
@keyframes foi-drift { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes foi-turn { 0% { transform: rotate(8deg) } 50% { transform: rotate(-4deg) translateX(4px) } 100% { transform: rotate(6deg) } }
@keyframes foi-cover { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes foi-twist { 0% { transform: scale(1) } 50% { transform: scale(1.1) rotate(2deg) } 100% { transform: scale(0.95) rotate(-1deg) } }

.scn-infernal-decision {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a0e0e 30%, #1a0606 100%),
              radial-gradient(ellipse at 50% 30%, #3a1414 0%, transparent 60%);
}
.scn-infernal-decision .abyss-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a0a0a 0%, #2a0e0e 50%, #1a0606 100%);
  animation: inf-churn 15s ease-in-out infinite alternate;
}
.scn-infernal-decision .path-left {
  position: absolute; bottom: 15%; left: 20%; width: 40%; height: 30%;
  background: linear-gradient(45deg, #3a1a1a 0%, #2a0e0e 50%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  opacity: 0.6; animation: inf-glare 8s ease-in-out infinite;
}
.scn-infernal-decision .path-right {
  position: absolute; bottom: 15%; right: 20%; width: 40%; height: 30%;
  background: linear-gradient(-45deg, #3a1a1a 0%, #2a0e0e 50%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 20% 100%);
  opacity: 0.6; animation: inf-glare 8s ease-in-out infinite reverse;
}
.scn-infernal-decision .figure-center {
  position: absolute; bottom: 18%; left: 50%; width: 24px; height: 48px;
  transform: translateX(-50%); background: linear-gradient(180deg, #0e0a0a 0%, #060404 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(40, 10, 10, .6);
  animation: inf-hesitate 6s ease-in-out infinite;
}
.scn-infernal-decision .infernal-glow {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%); background: radial-gradient(ellipse, #5a2020 0%, #3a1010 40%, transparent 80%);
  border-radius: 50%; filter: blur(16px); opacity: 0.6;
  animation: inf-fume 4s ease-in-out infinite alternate;
}
.scn-infernal-decision .flame-left {
  position: absolute; bottom: 20%; left: 28%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #8a4020 0%, #d46030 40%, #6a2010 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center; filter: blur(2px);
  animation: inf-flame 2s ease-in-out infinite alternate;
}
.scn-infernal-decision .flame-right {
  position: absolute; bottom: 20%; right: 28%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #8a4020 0%, #d46030 40%, #6a2010 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center; filter: blur(2px);
  animation: inf-flame 2s ease-in-out infinite alternate-reverse;
}
@keyframes inf-churn { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes inf-glare { 0% { opacity: 0.4; filter: brightness(0.8) } 50% { opacity: 0.7; filter: brightness(1.2) } 100% { opacity: 0.5; filter: brightness(0.9) } }
@keyframes inf-hesitate { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes inf-fume { 0% { opacity: 0.4; transform: scale(0.9) } 50% { opacity: 0.7; transform: scale(1.15) } 100% { opacity: 0.5; transform: scale(1) } }
@keyframes inf-flame { 0% { transform: scaleY(0.8) scaleX(1) } 50% { transform: scaleY(1.2) scaleX(0.9) } 100% { transform: scaleY(0.9) scaleX(1.1) } }

.scn-self-torment {
  background: linear-gradient(180deg, #0e0a16 0%, #1a1224 40%, #0e0a16 100%),
              radial-gradient(ellipse at 50% 50%, #1a1224 0%, transparent 70%);
  filter: saturate(0.8) brightness(0.85);
}
.scn-self-torment .room-night {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0e0a16 0%, #1a1428 50%, #0e0a16 100%);
  animation: st-drift 18s ease-in-out infinite alternate;
}
.scn-self-torment .wall-panel {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #1a1424 0%, #0e0a14 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-self-torment .figure-kneeling {
  position: absolute; bottom: 18%; left: 50%; width: 22px; height: 44px;
  transform: translateX(-50%); background: linear-gradient(180deg, #14101e 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(0,0,0,.6);
  animation: st-kneel 8s ease-in-out infinite;
}
.scn-self-torment .ghost-form {
  position: absolute; bottom: 30%; left: 38%; width: 18px; height: 36px;
  background: linear-gradient(180deg, rgba(40, 30, 50, .4) 0%, rgba(20, 15, 25, .2) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(4px); opacity: 0.5;
  animation: st-ghost 12s ease-in-out infinite alternate;
}
.scn-self-torment .candle {
  position: absolute; bottom: 24%; left: 54%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,.3);
}
.scn-self-torment .candle-glow {
  position: absolute; bottom: 30%; left: 54%; width: 24px; height: 24px;
  transform: translateX(-50%); background: radial-gradient(ellipse, #8a6840 0%, #4a3020 40%, transparent 70%);
  border-radius: 50%; filter: blur(8px); opacity: 0.6;
  animation: st-candle 4s ease-in-out infinite alternate;
}
.scn-self-torment .shadow-bars {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: repeating-linear-gradient(90deg, transparent 0%, transparent 15%, rgba(0,0,0,.15) 15%, rgba(0,0,0,.15) 17%);
  animation: st-bars 14s linear infinite;
}
@keyframes st-drift { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes st-kneel { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 30% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 60% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes st-ghost { 0% { opacity: 0.3; transform: translate(0, 0) scale(0.9) } 50% { opacity: 0.6; transform: translate(-6px, -4px) scale(1.05) } 100% { opacity: 0.4; transform: translate(4px, -2px) scale(0.95) } }
@keyframes st-candle { 0% { opacity: 0.4; transform: scale(0.9) } 50% { opacity: 0.7; transform: scale(1.15) } 100% { opacity: 0.5; transform: scale(1) } }
@keyframes st-bars { 0% { transform: translateX(0) } 100% { transform: translateX(20%) } }

/* insanity-label */
.scn-insanity-label { background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b4946a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); }
.scn-insanity-label .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8dcc4 0%, #d4c4a8 100%); }
.scn-insanity-label .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7650 0%, #6b5a3a 100%); }
.scn-insanity-label .desk { position:absolute; bottom:20%; left:30%; right:30%; height:18%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.3); }
.scn-insanity-label .figure { position:absolute; bottom:20%; left:42%; width:60px; height:100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: il-fig 6s ease-in-out infinite; }
.scn-insanity-label .lamp { position:absolute; bottom:55%; left:48%; width:20px; height:30px; background: radial-gradient(circle at 50% 30%, #ffd700 0%, #b8860b 70%); border-radius:50% 50% 20% 20%; box-shadow:0 0 30px 10px rgba(255,215,0,.5); animation: il-lamp 3s ease-in-out infinite alternate; }
.scn-insanity-label .frame { position:absolute; top:8%; left:60%; width:80px; height:60px; border:6px solid #8a6a4a; background: linear-gradient(135deg, #d4c4a8 0%, #b4946a 100%); border-radius:8px; }
@keyframes il-fig { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(2px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes il-lamp { 0% { opacity:.8; box-shadow:0 0 20px 6px rgba(255,215,0,.4); } 100% { opacity:1; box-shadow:0 0 40px 15px rgba(255,215,0,.7); } }

/* penance-and-watching */
.scn-penance-and-watching { background: linear-gradient(180deg, #1a1a3e 0%, #2a244a 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #2a244a 0%, transparent 70%); }
.scn-penance-and-watching .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2e 100%); }
.scn-penance-and-watching .window { position:absolute; top:15%; left:35%; right:35%; height:40%; border:6px solid #3a3a5a; background: linear-gradient(180deg, #2a2a4e 0%, #0a0a1e 100%); border-radius:4px; }
.scn-penance-and-watching .curtain-left { position:absolute; top:15%; left:35%; width:15%; height:45%; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius:0 40% 40% 0; animation: pw-curtain 10s ease-in-out infinite alternate; }
.scn-penance-and-watching .curtain-right { position:absolute; top:15%; right:35%; width:15%; height:45%; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius:40% 0 0 40%; animation: pw-curtain 12s ease-in-out infinite alternate-reverse; }
.scn-penance-and-watching .figure { position:absolute; bottom:10%; left:48%; width:30px; height:80px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pw-fig 5s ease-in-out infinite; }
.scn-penance-and-watching .cross { position:absolute; top:10%; left:10%; width:40px; height:60px; border:3px solid #8a6a4a; background: transparent; border-radius:2px; animation: pw-cross 8s ease-in-out infinite; }
.scn-penance-and-watching .candle { position:absolute; bottom:5%; left:20%; width:10px; height:30px; background: linear-gradient(180deg, #f0c080 0%, #b08040 100%); border-radius:4px; box-shadow:0 0 20px 6px rgba(255,180,100,.4); animation: pw-candle 4s ease-in-out infinite alternate; }
@keyframes pw-curtain { 0% { transform:translateY(0); } 100% { transform:translateY(8px); } }
@keyframes pw-fig { 0% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(4px) rotate(2deg); } 100% { transform:translateX(0) rotate(-2deg); } }
@keyframes pw-cross { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes pw-candle { 0% { opacity:.8; box-shadow:0 0 15px 4px rgba(255,180,100,.3); } 100% { opacity:1; box-shadow:0 0 30px 10px rgba(255,180,100,.6); } }

/* waiting-for-death */
.scn-waiting-for-death { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #0e0e1e 100%), radial-gradient(ellipse at 50% 50%, #1a1a3e 0%, transparent 60%); }
.scn-waiting-for-death .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); }
.scn-waiting-for-death .bed-frame { position:absolute; bottom:10%; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:20px 20px 8px 8px; box-shadow:0 6px 12px rgba(0,0,0,.6); }
.scn-waiting-for-death .mattress { position:absolute; bottom:12%; left:22%; right:22%; height:28%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10px; }
.scn-waiting-for-death .pillow { position:absolute; bottom:30%; left:35%; width:25%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40%; }
.scn-waiting-for-death .figure { position:absolute; bottom:18%; left:38%; width:50px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:center 80%; animation: wd-fig 10s ease-in-out infinite; }
.scn-waiting-for-death .lamp { position:absolute; top:10%; left:10%; width:16px; height:24px; background: radial-gradient(circle at 50% 30%, #ffd700 0%, #8a6a00 70%); border-radius:8px 8px 4px 4px; box-shadow:0 0 20px 10px rgba(255,215,0,.3); animation: wd-lamp 4s ease-in-out infinite alternate; }
.scn-waiting-for-death .clock { position:absolute; top:8%; right:12%; width:40px; height:40px; border:4px solid #6a5a4a; border-radius:50%; background: #2a1a0a; animation: wd-clock 60s linear infinite; }
@keyframes wd-fig { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.02); } 100% { transform:translateY(0) scaleY(1); } }
@keyframes wd-lamp { 0% { opacity:.7; box-shadow:0 0 15px 5px rgba(255,215,0,.2); } 100% { opacity:1; box-shadow:0 0 30px 12px rgba(255,215,0,.5); } }
@keyframes wd-clock { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }

/* final-plea */
.scn-final-plea { background: linear-gradient(180deg, #1a0e0a 0%, #2a1a10 40%, #0e0604 100%), radial-gradient(ellipse at 50% 100%, #2a1a10 0%, transparent 70%); }
.scn-final-plea .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a10 0%, #1a0e0a 100%); }
.scn-final-plea .desk { position:absolute; bottom:15%; left:25%; right:25%; height:20%; background: linear-gradient(180deg, #5a3a20 0%, #3a1a0a 100%); border-radius:6px; box-shadow:0 4px 10px rgba(0,0,0,.6); }
.scn-final-plea .figure { position:absolute; bottom:15%; left:40%; width:50px; height:90px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: fp-fig 7s ease-in-out infinite; }
.scn-final-plea .candle { position:absolute; bottom:25%; left:35%; width:12px; height:40px; background: linear-gradient(180deg, #ffd080 0%, #b08030 100%); border-radius:4px; box-shadow:0 0 25px 8px rgba(255,180,80,.5); animation: fp-candle 3s ease-in-out infinite alternate; }
.scn-final-plea .paper { position:absolute; bottom:20%; left:42%; width:40px; height:50px; background: #f0dcc0; border-radius:2px; box-shadow:0 3px 6px rgba(0,0,0,.4); transform:rotate(-5deg); }
.scn-final-plea .inkwell { position:absolute; bottom:20%; left:55%; width:14px; height:16px; background: #1a0a00; border-radius:50%; box-shadow:0 2px 4px rgba(0,0,0,.5); }
@keyframes fp-fig { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 50% { transform:translateX(3px) translateY(-2px) rotate(2deg); } 100% { transform:translateX(0) translateY(0) rotate(-1deg); } }
@keyframes fp-candle { 0% { opacity:.8; box-shadow:0 0 15px 4px rgba(255,180,80,.3); } 100% { opacity:1; box-shadow:0 0 35px 12px rgba(255,180,80,.6); } }

/* fall-into-crater */
.scn-fall-into-crater {
  background: linear-gradient(180deg, #0c0c1e 0%, #1a1a3e 50%, #2c2a4a 100%), radial-gradient(ellipse at 50% 20%, #4a4a6e 0%, transparent 70%);
}
.scn-fall-into-crater .crater-sky {
  position: absolute; inset: 0 0 70% 0;
  background: linear-gradient(180deg, #4a5a7a 0%, #2a3a5a 50%, transparent 100%);
  animation: cr-sky 20s ease-in-out infinite alternate;
}
.scn-fall-into-crater .crater-wall-left {
  position: absolute; bottom: 30%; left: 0; width: 25%; height: 70%;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 50%, transparent 100%);
  border-radius: 0 60% 0 0 / 0 80% 0 0;
  animation: cr-wall 15s ease-in-out infinite alternate;
}
.scn-fall-into-crater .crater-wall-right {
  position: absolute; bottom: 30%; right: 0; width: 25%; height: 70%;
  background: linear-gradient(270deg, #1a1a2e 0%, #2a2a3e 50%, transparent 100%);
  border-radius: 60% 0 0 0 / 80% 0 0 0;
  animation: cr-wall 15s ease-in-out infinite alternate-reverse;
}
.scn-fall-into-crater .crater-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #d4c4a8 0%, #b8a88c 50%, #8c7c6c 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-fall-into-crater .crater-figure {
  position: absolute; bottom: 5%; left: 40%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg) translateY(10px);
  animation: cr-breath 4s ease-in-out infinite;
}
.scn-fall-into-crater .crater-horse {
  position: absolute; bottom: 8%; left: 52%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 60% 40% 50% 50% / 70% 60% 40% 30%;
  animation: cr-horse 6s ease-in-out infinite;
}
.scn-fall-into-crater .crater-shadow {
  position: absolute; bottom: 0; left: 35%; width: 80px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: cr-shadow 8s ease-in-out infinite;
}
@keyframes cr-sky { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes cr-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cr-breath { 0% { transform: rotate(15deg) translateY(10px) scale(1,1); } 50% { transform: rotate(15deg) translateY(8px) scale(1.02,1); } 100% { transform: rotate(15deg) translateY(10px) scale(1,1); } }
@keyframes cr-horse { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cr-shadow { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.6; } }

/* crater-details */
.scn-crater-details {
  background: linear-gradient(180deg, #2a2a4a 0%, #4a4a6e 40%, #6a6a8a 100%), radial-gradient(ellipse at 50% 0%, #8a8aaa 0%, transparent 60%);
}
.scn-crater-details .cd-sky {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, #c8a070 0%, #a08060 50%, #806050 100%);
  animation: cd-sky 25s ease-in-out infinite alternate;
}
.scn-crater-details .cd-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: cd-wall 20s ease-in-out infinite alternate;
}
.scn-crater-details .cd-floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(0deg, #d4c4a8 0%, #b8a88c 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3);
}
.scn-crater-details .cd-well {
  position: absolute; bottom: 18%; left: 50%; width: 10px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  animation: cd-well 8s ease-in-out infinite;
}
.scn-crater-details .cd-drip-a {
  position: absolute; bottom: 10%; left: 35%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #8a5a3a 0%, #4a2a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  transform: skewX(10deg);
  animation: cd-drip 5s ease-in-out infinite;
}
.scn-crater-details .cd-drip-b {
  position: absolute; bottom: 12%; left: 60%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #8a5a3a 0%, #4a2a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  transform: skewX(-8deg);
  animation: cd-drip 5s ease-in-out infinite 2.5s;
}
.scn-crater-details .cd-hole-a {
  position: absolute; bottom: 8%; left: 30%; width: 14px; height: 14px;
  background: radial-gradient(circle, #1a1a1a 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.8);
  animation: cd-hole 12s ease-in-out infinite;
}
.scn-crater-details .cd-hole-b {
  position: absolute; bottom: 6%; left: 55%; width: 12px; height: 12px;
  background: radial-gradient(circle, #1a1a1a 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.8);
  animation: cd-hole 12s ease-in-out infinite 6s;
}
@keyframes cd-sky { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes cd-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes cd-well { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes cd-drip { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes cd-hole { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }

/* trapped-by-shots */
.scn-trapped-by-shots {
  background: linear-gradient(180deg, #f0e8c0 0%, #c8b890 50%, #a09070 100%), radial-gradient(ellipse at 50% 0%, #e0d8b0 0%, transparent 60%);
}
.scn-trapped-by-shots .ts-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #8ab4d4 0%, #c8dce8 50%, #f0f0e0 100%);
  animation: ts-sky 30s ease-in-out infinite alternate;
}
.scn-trapped-by-shots .ts-river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #4a7a9a 0%, #6a9aba 50%, #8ab4d4 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: ts-river 15s ease-in-out infinite;
}
.scn-trapped-by-shots .ts-boat {
  position: absolute; bottom: 40%; left: 60%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 60% 60% / 0 0 80% 80%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ts-boat 6s ease-in-out infinite;
}
.scn-trapped-by-shots .ts-sand-slope {
  position: absolute; bottom: 20%; left: 0; width: 30%; height: 80%;
  background: linear-gradient(90deg, #c8a460 0%, #b89050 50%, transparent 100%);
  border-radius: 0 60% 0 0 / 0 100% 0 0;
  animation: ts-slope 10s ease-in-out infinite;
}
.scn-trapped-by-shots .ts-figure {
  position: absolute; bottom: 18%; left: 20%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a1e 0%, #1a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: skewX(-5deg);
  animation: ts-figure 2s ease-in-out infinite;
}
.scn-trapped-by-shots .ts-horse {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 36px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 50% 50% / 70% 60% 40% 30%;
  animation: ts-horse 3s ease-in-out infinite;
}
.scn-trapped-by-shots .ts-splash-1 {
  position: absolute; bottom: 35%; left: 55%; width: 6px; height: 6px;
  background: radial-gradient(circle, #c8e8f0 0%, transparent 100%);
  border-radius: 50%;
  animation: ts-splash 0.8s ease-in-out infinite;
}
.scn-trapped-by-shots .ts-splash-2 {
  position: absolute; bottom: 38%; left: 70%; width: 4px; height: 4px;
  background: radial-gradient(circle, #c8e8f0 0%, transparent 100%);
  border-radius: 50%;
  animation: ts-splash 0.8s ease-in-out infinite 0.4s;
}
@keyframes ts-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ts-river { 0% { background-position: 0% 0%; } 50% { background-position: 10% 5%; } 100% { background-position: 0% 0%; } }
@keyframes ts-boat { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ts-slope { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }
@keyframes ts-figure { 0% { transform: translateY(0) skewX(-5deg); } 25% { transform: translateY(-2px) skewX(-4deg); } 50% { transform: translateY(0) skewX(-3deg); } 75% { transform: translateY(-1px) skewX(-4deg); } 100% { transform: translateY(0) skewX(-5deg); } }
@keyframes ts-horse { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ts-splash { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.5); opacity: 0.3; } 100% { transform: scale(1); opacity: 0; } }

/* pity-wide-spread – calm, bright interior */
.scn-pity-wide-spread {
  background: linear-gradient(135deg, #f9f4e8 0%, #e8dcc8 50%, #d4c5a9 100%),
              radial-gradient(ellipse at 20% 80%, #fff8ef 0%, transparent 60%);
}
.scn-pity-wide-spread .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #fdf8f1 0%, #f0e6d4 100%);
  animation: pw-room 12s ease-in-out infinite alternate;
}
.scn-pity-wide-spread .window-frame {
  position: absolute; top: 10%; left: 12%; width: 62%; height: 50%;
  background: linear-gradient(135deg, #d6c19e 0%, #b8a07e 100%);
  border-radius: 6px; box-shadow: inset 0 0 20px #a88d6b;
}
.scn-pity-wide-spread .window-light {
  position: absolute; top: 14%; left: 16%; width: 50%; height: 42%;
  background: linear-gradient(180deg, #fffbea 0%, #f7edd0 80%, #e2d1ad 100%);
  border-radius: 4px; 
  animation: pw-light 8s ease-in-out infinite alternate;
}
.scn-pity-wide-spread .bed {
  position: absolute; bottom: 6%; left: 10%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #f5ede1 0%, #e3d4bf 100%);
  border-radius: 12px 12px 6px 6px; box-shadow: 0 -4px 10px rgba(0,0,0,0.05);
}
.scn-pity-wide-spread .pillow {
  position: absolute; bottom: 42%; left: 20%; width: 18%; height: 10%;
  background: radial-gradient(ellipse at 50% 40%, #fff8f0 0%, #f0e0cc 100%);
  border-radius: 50%; transform: rotate(-5deg);
  animation: pw-pillow 5s ease-in-out infinite;
}
.scn-pity-wide-spread .figure-pw {
  position: absolute; bottom: 14%; left: 26%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #c9b89e 0%, #a9997f 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pw-figure 6s ease-in-out infinite;
}
.scn-pity-wide-spread .table-pw {
  position: absolute; bottom: 8%; right: 18%; width: 14%; height: 10%;
  background: linear-gradient(180deg, #b8a07e 0%, #9c8462 100%);
  border-radius: 4px;
}
.scn-pity-wide-spread .med-bottle {
  position: absolute; bottom: 14%; right: 23%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 100%);
  border-radius: 30% 30% 10% 10%;
  animation: pw-bottle 4s ease-in-out infinite alternate;
}

@keyframes pw-room {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes pw-light {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.02); opacity: 1; }
  100% { transform: scale(0.98); opacity: 0.88; }
}
@keyframes pw-pillow {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-0.5px); }
}
@keyframes pw-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes pw-bottle {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}

/* refusal-to-be-cured – dark, dim interior */
.scn-refusal-to-be-cured {
  background: linear-gradient(180deg, #1a1512 0%, #2e2520 30%, #1f1815 100%),
              radial-gradient(ellipse at 60% 50%, #3a2e28 0%, transparent 70%);
}
.scn-refusal-to-be-cured .room-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #2c221e 0%, #0f0b0a 100%);
}
.scn-refusal-to-be-cured .table-rc {
  position: absolute; bottom: 10%; left: 30%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #3d322c 0%, #2a201c 100%);
  border-radius: 4px;
}
.scn-refusal-to-be-cured .candle {
  position: absolute; bottom: 18%; left: 38%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #c8a882 0%, #8a6d50 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-refusal-to-be-cured .candle-glow {
  position: absolute; bottom: 20%; left: 35%; width: 10%; height: 8%;
  background: radial-gradient(ellipse, #ffc080 0%, rgba(255,192,128,0.3) 60%, transparent 100%);
  border-radius: 50%;
  animation: rc-glow 3s ease-in-out infinite alternate;
}
.scn-refusal-to-be-cured .figure-rc {
  position: absolute; bottom: 8%; left: 18%; width: 14%; height: 24%;
  background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: rc-figure 5s ease-in-out infinite;
}
.scn-refusal-to-be-cured .hand-rc {
  position: absolute; bottom: 12%; left: 30%; width: 5%; height: 6%;
  background: linear-gradient(180deg, #4a3d36 0%, #2e241f 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(10deg);
  animation: rc-hand 4s ease-in-out infinite alternate;
}
.scn-refusal-to-be-cured .shadow-wal {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0d0a08 100%);
}

@keyframes rc-glow {
  0% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes rc-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes rc-hand {
  0% { transform: rotate(10deg) scaleY(1); }
  50% { transform: rotate(12deg) scaleY(1.02); }
  100% { transform: rotate(10deg) scaleY(1); }
}

/* world-of-shadows – dark, overcast */
.scn-world-of-shadows {
  background: linear-gradient(180deg, #4b5060 0%, #3a3f4a 40%, #2a2e36 100%),
              radial-gradient(ellipse at 50% 100%, #5a6070 0%, transparent 70%);
}
.scn-world-of-shadows .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7080 0%, #4a4f5a 40%, #2a2e36 100%);
  animation: ws-sky 15s ease-in-out infinite alternate;
}
.scn-world-of-shadows .mountains-ws {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4050 0%, #2a2f3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: ws-mountains 20s ease-in-out infinite;
}
.scn-world-of-shadows .road-ws {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #2a2e36 0%, #1a1e24 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-world-of-shadows .rickshaw-ws {
  position: absolute; bottom: 14%; left: 40%; width: 18%; height: 16%;
  background: linear-gradient(135deg, #3a3f4a 0%, #1a1e24 100%);
  border-radius: 20% 30% 10% 10%;
  animation: ws-rickshaw 12s ease-in-out infinite;
}
.scn-world-of-shadows .driver-ws {
  position: absolute; bottom: 20%; left: 38%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #2a2e36 0%, #1a1e24 100%);
  border-radius: 50% 50% 30% 30%;
  animation: ws-driver 4s ease-in-out infinite;
}
.scn-world-of-shadows .passenger-ws {
  position: absolute; bottom: 18%; left: 46%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #2a2e36 0%, #1a1e24 100%);
  border-radius: 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: ws-passenger 5s ease-in-out infinite;
}
.scn-world-of-shadows .mist-ws {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(90,100,120,0.3) 0%, transparent 100%);
  animation: ws-mist 25s ease-in-out infinite alternate;
}
.scn-world-of-shadows .ghost-figure-ws {
  position: absolute; bottom: 20%; right: 30%; width: 6%; height: 14%;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,210,230,0.4) 0%, rgba(200,210,230,0.05) 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: ws-ghost 10s ease-in-out infinite;
}

@keyframes ws-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.65; }
}
@keyframes ws-mountains {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes ws-rickshaw {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ws-driver {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes ws-passenger {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ws-mist {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.1); }
  100% { opacity: 0.2; transform: scaleY(0.9); }
}
@keyframes ws-ghost {
  0% { opacity: 0.2; transform: translateY(0) scale(1); }
  50% { opacity: 0.5; transform: translateY(-3px) scale(1.05); }
  100% { opacity: 0.15; transform: translateY(0) scale(1); }
}

/* club-and-mall-walk – tense, bright interior */
.scn-club-and-mall-walk {
  background: linear-gradient(135deg, #f5eee0 0%, #e5dac8 40%, #c8b89a 100%),
              radial-gradient(ellipse at 80% 20%, #fff8e8 0%, transparent 60%);
}
.scn-club-and-mall-walk .club-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8ccb8 100%);
}
.scn-club-and-mall-walk .window-cm {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 50%;
  background: linear-gradient(135deg, #c8b89a 0%, #a8987a 100%);
  border-radius: 6px; box-shadow: inset 0 0 15px #8a7a5c;
  animation: cm-window 0.5s ease-in-out infinite alternate;
}
.scn-club-and-mall-walk .table-cm {
  position: absolute; bottom: 10%; left: 20%; width: 22%; height: 8%;
  background: linear-gradient(180deg, #baa88b 0%, #9a8872 100%);
  border-radius: 4px;
}
.scn-club-and-mall-walk .chair-cm {
  position: absolute; bottom: 8%; left: 18%; width: 12%; height: 12%;
  background: linear-gradient(135deg, #9a8872 0%, #7a6a58 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: cm-chair 3s ease-in-out infinite;
}
.scn-club-and-mall-walk .figure-cm {
  position: absolute; bottom: 6%; left: 35%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #2a251f 0%, #1a1512 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: cm-figure 4s ease-in-out infinite;
}
.scn-club-and-mall-walk .rickshaw-cm {
  position: absolute; bottom: 10%; right: 70%; width: 16%; height: 14%;
  background: linear-gradient(135deg, #3a2f28 0%, #1a1512 100%);
  border-radius: 20% 30% 10% 10%;
  animation: cm-rickshaw 8s ease-in-out infinite;
}
.scn-club-and-mall-walk .shadow-cm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%);
}
.scn-club-and-mall-walk .glass-cm {
  position: absolute; bottom: 12%; left: 24%; width: 3%; height: 5%;
  background: linear-gradient(180deg, rgba(200,220,240,0.6) 0%, rgba(200,220,240,0.2) 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(5deg);
  animation: cm-glass 2s ease-in-out infinite alternate;
}

@keyframes cm-window {
  0% { box-shadow: inset 0 0 15px #8a7a5c; }
  100% { box-shadow: inset 0 0 20px #8a7a5c, 0 0 10px rgba(0,0,0,0.1); }
}
@keyframes cm-chair {
  0% { transform: rotate(0) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(0.98); }
}
@keyframes cm-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes cm-rickshaw {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-5px) scale(1.03); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes cm-glass {
  0% { opacity: 0.5; transform: rotate(5deg) scaleY(1); }
  50% { opacity: 1; transform: rotate(7deg) scaleY(1.02); }
  100% { opacity: 0.5; transform: rotate(5deg) scaleY(1); }
}

/* billiard-sound-ghost – dark interior, ghostly billiards */
.scn-billiard-sound-ghost {
  background: linear-gradient(180deg, #1a1e2e 0%, #0f1120 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 60% 70%, #2a2e4a 0%, transparent 60%);
}
.scn-billiard-sound-ghost .bg-shadow {
  position: absolute; inset: 0; background: radial-gradient(circle at 50% 90%, #0f1120 0%, transparent 100%);
  animation: bsg-shadow 12s ease-in-out infinite alternate;
}
.scn-billiard-sound-ghost .table-mid {
  position: absolute; bottom: 20%; left: 50%; width: 160px; height: 80px;
  transform: translate(-50%, 0) perspective(400px) rotateX(20deg);
  background: linear-gradient(135deg, #2c4a2a 0%, #1a3a1a 60%, #0e2a0e 100%);
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: bsg-table 20s ease-in-out infinite;
}
.scn-billiard-sound-ghost .ball-a {
  position: absolute; bottom: 44%; left: 42%; width: 14px; height: 14px;
  background: radial-gradient(circle at 30% 30%, #f0e8d0 0%, #b0a060 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: bsg-ball-a 4s ease-in-out infinite;
}
.scn-billiard-sound-ghost .ball-b {
  position: absolute; bottom: 46%; left: 52%; width: 12px; height: 12px;
  background: radial-gradient(circle at 30% 30%, #f0e8d0 0%, #b0a060 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: bsg-ball-b 5s ease-in-out infinite;
}
.scn-billiard-sound-ghost .cue {
  position: absolute; bottom: 38%; left: 28%; width: 80px; height: 4px;
  background: linear-gradient(90deg, #b08060 0%, #8a6048 100%);
  border-radius: 2px; transform-origin: right center;
  animation: bsg-cue 2s ease-in-out infinite;
}
.scn-billiard-sound-ghost .ghost-figure {
  position: absolute; bottom: 18%; left: 60%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,220,255,0.3) 0%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bsg-ghost 8s ease-in-out infinite;
}
.scn-billiard-sound-ghost .moon-haze {
  position: absolute; top: 8%; right: 12%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,220,255,0.15) 0%, transparent 80%);
  border-radius: 50%; filter: blur(8px);
  animation: bsg-haze 30s linear infinite alternate;
}
@keyframes bsg-shadow { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes bsg-table { 0%,100% { transform: translate(-50%,0) perspective(400px) rotateX(20deg); } 50% { transform: translate(-50%,-3px) perspective(400px) rotateX(22deg); } }
@keyframes bsg-ball-a { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(8px,-2px) scale(0.95); } 50% { transform: translate(16px,0) scale(1); } 75% { transform: translate(24px,-1px) scale(1.02); } 100% { transform: translate(32px,0) scale(1); } }
@keyframes bsg-ball-b { 0% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(-6px,2px) rotate(5deg); } 66% { transform: translate(-12px,0) rotate(0deg); } 100% { transform: translate(-18px,-1px) rotate(-5deg); } }
@keyframes bsg-cue { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(6px,-2px) rotate(-8deg); } }
@keyframes bsg-ghost { 0%,100% { transform: translate(0,0) scaleY(1); opacity: 0.4; } 50% { transform: translate(3px,-5px) scaleY(1.05); opacity: 0.7; } }
@keyframes bsg-haze { 0% { transform: translate(0,0); } 100% { transform: translate(-30px,-20px); } }

/* night-terror-and-sleep – dark bedroom, looming fear */
.scn-night-terror-and-sleep {
  background: linear-gradient(180deg, #12101e 0%, #1a1628 40%, #0e0c18 100%),
              radial-gradient(ellipse at 70% 80%, #2a2040 0%, transparent 60%);
}
.scn-night-terror-and-sleep .room-bg {
  position: absolute; inset: 0; background: radial-gradient(circle at 50% 30%, #1a1628 0%, transparent 100%);
  animation: nts-room 14s ease-in-out infinite alternate;
}
.scn-night-terror-and-sleep .bed-frame {
  position: absolute; bottom: 15%; left: 50%; width: 140px; height: 60px;
  transform: translate(-50%,0) perspective(200px) rotateX(10deg);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-night-terror-and-sleep .figure-curled {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nts-figure 6s ease-in-out infinite;
}
.scn-night-terror-and-sleep .door {
  position: absolute; bottom: 20%; right: 15%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a2e1e 0%, #1a140a 100%);
  border-radius: 2px; box-shadow: 0 0 8px rgba(0,0,0,0.8);
  animation: nts-door 12s ease-in-out infinite;
}
.scn-night-terror-and-sleep .door-bar {
  position: absolute; bottom: 55%; right: 16%; width: 8px; height: 30px;
  background: #4a3a2a; border-radius: 2px;
  animation: nts-bar 4s ease-in-out infinite;
}
.scn-night-terror-and-sleep .moon-slit {
  position: absolute; bottom: 30%; right: 10%; width: 4px; height: 60px;
  background: linear-gradient(180deg, rgba(200,220,255,0.3) 0%, transparent 100%);
  filter: blur(1px);
  animation: nts-slit 30s linear infinite alternate;
}
.scn-night-terror-and-sleep .night-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a0810 100%);
  animation: nts-shadow 20s ease-in-out infinite alternate;
}
@keyframes nts-room { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes nts-figure { 0%,100% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(3px,-2px) rotate(-3deg); } 50% { transform: translate(0,-4px) rotate(0deg); } 75% { transform: translate(-3px,-1px) rotate(3deg); } }
@keyframes nts-door { 0%,100% { transform: translate(0,0) rotateY(0deg); } 50% { transform: translate(-2px,0) rotateY(5deg); } }
@keyframes nts-bar { 0%,100% { transform: translate(0,0); } 50% { transform: translate(1px,3px) rotate(3deg); } }
@keyframes nts-slit { 0% { transform: translate(0,0); opacity: 0.3; } 100% { transform: translate(0,-10px); opacity: 0.6; } }
@keyframes nts-shadow { 0% { opacity: 0.4; } 100% { opacity: 0.8; } }

/* daylight-investigation – sunlit billiard room, calm */
.scn-daylight-investigation {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #b8a888 100%),
              radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 60%);
}
.scn-daylight-investigation .sunlit-bg {
  position: absolute; inset: 0; background: radial-gradient(circle at 60% 50%, #f0e8d0 0%, transparent 100%);
  animation: di-bg 15s ease-in-out infinite alternate;
}
.scn-daylight-investigation .window-blaze {
  position: absolute; top: 5%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #fef8e0 0%, #e8d8b0 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,200,100,0.3);
  animation: di-window 12s ease-in-out infinite;
}
.scn-daylight-investigation .table-green {
  position: absolute; bottom: 20%; left: 50%; width: 180px; height: 90px;
  transform: translate(-50%,0) perspective(400px) rotateX(15deg);
  background: linear-gradient(135deg, #4a7a4a 0%, #2a5a2a 60%, #1a3a1a 100%);
  border-radius: 6px; box-shadow: 0 4px 16px rgba(0,0,0,0.15);
  animation: di-table 25s ease-in-out infinite;
}
.scn-daylight-investigation .cue-still {
  position: absolute; bottom: 35%; left: 25%; width: 100px; height: 4px;
  background: linear-gradient(90deg, #c8a880 0%, #a08060 100%);
  border-radius: 2px; transform-origin: right center;
  animation: di-cue 8s ease-in-out infinite;
}
.scn-daylight-investigation .ball-spot {
  position: absolute; bottom: 45%; left: 52%; width: 16px; height: 16px;
  background: radial-gradient(circle at 30% 30%, #f8f0e0 0%, #c8b080 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: di-ball 6s ease-in-out infinite;
}
.scn-daylight-investigation .player-silhouette {
  position: absolute; bottom: 18%; left: 60%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: di-player 10s ease-in-out infinite;
}
.scn-daylight-investigation .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.08) 100%);
  animation: di-floor 20s ease-in-out infinite alternate;
}
@keyframes di-bg { 0%,100% { opacity: 0.9; } 50% { opacity: 1; } }
@keyframes di-window { 0%,100% { transform: translate(0,0); } 50% { transform: translate(0,2px); } }
@keyframes di-table { 0%,100% { transform: translate(-50%,0) perspective(400px) rotateX(15deg); } 50% { transform: translate(-50%,-2px) perspective(400px) rotateX(16deg); } }
@keyframes di-cue { 0%,100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(4px,-1px) rotate(-5deg); } }
@keyframes di-ball { 0%,100% { transform: translate(0,0) scale(1); } 33% { transform: translate(6px,-2px) scale(0.95); } 66% { transform: translate(12px,0) scale(1.02); } }
@keyframes di-player { 0%,100% { transform: translate(0,0); } 50% { transform: translate(2px,-1px); } }
@keyframes di-floor { 0% { opacity: 0.3; } 100% { opacity: 0.7; } }

/* ghost-explained – bright day, packing, ghostly recurrence */
.scn-ghost-explained {
  background: linear-gradient(180deg, #e0d8c8 0%, #ccc0a8 40%, #b8a888 100%),
              radial-gradient(ellipse at 80% 30%, #f0e8d8 0%, transparent 60%);
}
.scn-ghost-explained .morning-bg {
  position: absolute; inset: 0; background: radial-gradient(circle at 20% 50%, #f8f0e0 0%, transparent 100%);
  animation: ge-bg 18s ease-in-out infinite alternate;
}
.scn-ghost-explained .door-open {
  position: absolute; bottom: 15%; left: 10%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 2px; box-shadow: 0 0 12px rgba(0,0,0,0.2);
  transform-origin: left center;
  animation: ge-door 15s ease-in-out infinite;
}
.scn-ghost-explained .figure-pack {
  position: absolute; bottom: 18%; left: 28%; width: 32px; height: 50px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ge-figure 8s ease-in-out infinite;
}
.scn-ghost-explained .table-again {
  position: absolute; bottom: 20%; right: 10%; width: 140px; height: 70px;
  transform: perspective(350px) rotateX(15deg);
  background: linear-gradient(135deg, #4a7a4a 0%, #2a5a2a 60%, #1a3a1a 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  animation: ge-table 30s ease-in-out infinite;
}
.scn-ghost-explained .ball-shift {
  position: absolute; bottom: 40%; right: 20%; width: 14px; height: 14px;
  background: radial-gradient(circle at 30% 30%, #f8f0e0 0%, #c8b080 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ge-ball 5s ease-in-out infinite;
}
.scn-ghost-explained .suitcase {
  position: absolute; bottom: 12%; left: 40%; width: 40px; height: 28px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: ge-suit 20s ease-in-out infinite;
}
.scn-ghost-explained .sun-dust {
  position: absolute; top: 10%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,230,180,0.15) 0%, transparent 80%);
  filter: blur(12px);
  animation: ge-dust 40s linear infinite alternate;
}
@keyframes ge-bg { 0%,100% { opacity: 0.85; } 50% { opacity: 1; } }
@keyframes ge-door { 0%,100% { transform: rotateY(0deg); } 50% { transform: rotateY(-15deg); } }
@keyframes ge-figure { 0%,100% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(4px,-2px) rotate(2deg); } 50% { transform: translate(8px,0) rotate(-1deg); } 75% { transform: translate(12px,-1px) rotate(1deg); } }
@keyframes ge-table { 0%,100% { transform: perspective(350px) rotateX(15deg); } 50% { transform: perspective(350px) rotateX(17deg) translateY(-2px); } }
@keyframes ge-ball { 0% { transform: translate(0,0); } 33% { transform: translate(8px,-2px); } 66% { transform: translate(16px,0); } 100% { transform: translate(24px,-1px); } }
@keyframes ge-suit { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(2px,-1px) scale(1.02); } }
@keyframes ge-dust { 0% { transform: translate(0,0); opacity: 0.4; } 100% { transform: translate(40px,20px); opacity: 0.8; } }

/* Scene: khansamah-and-ghosts (funny, dim interior) */
.scn-khansamah-and-ghosts {
  background: linear-gradient(180deg, #2b1e1a 0%, #1a1210 60%, #0d0a08 100%), radial-gradient(ellipse at 50% 100%, #3f2e28 0%, transparent 70%);
}
.scn-khansamah-and-ghosts .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #4a382f 0%, #362620 100%);
  box-shadow: inset 0 12px 30px rgba(0,0,0,.6);
  animation: kh-wall 12s ease-in-out infinite alternate;
}
.scn-khansamah-and-ghosts .floor {
  position: absolute; bottom: 0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2f221d 0%, #1c1410 100%);
}
.scn-khansamah-and-ghosts .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(135deg, #6b4e3c 0%, #4a3528 100%);
  border-radius: 4% 4% 6% 6% / 10% 10% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: kh-table 9s ease-in-out infinite;
}
.scn-khansamah-and-ghosts .khansamah {
  position: absolute; bottom: 25%; left: 35%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #8a6e5a 0%, #4e3a2c 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: kh-dance 4s ease-in-out infinite;
}
.scn-khansamah-and-ghosts .ghost {
  position: absolute; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: kh-float 6s ease-in-out infinite alternate;
}
.scn-khansamah-and-ghosts .ghost-a {
  bottom: 30%; left: 10%; width: 12%; height: 22%;
  background: radial-gradient(ellipse at 50% 30%, #d9c8b0 0%, #a08a78 40%, rgba(160,138,120,.2) 100%);
  box-shadow: 0 0 30px 10px rgba(160,138,120,.3);
  animation-delay: 0s;
}
.scn-khansamah-and-ghosts .ghost-b {
  bottom: 28%; right: 8%; width: 10%; height: 18%;
  background: radial-gradient(ellipse at 50% 30%, #c4b09c 0%, #8a7664 40%, rgba(138,118,100,.2) 100%);
  box-shadow: 0 0 24px 8px rgba(138,118,100,.3);
  animation-delay: 2s;
}
.scn-khansamah-and-ghosts .dish {
  position: absolute; bottom: 21%; left: 28%; width: 8%; height: 4%;
  background: radial-gradient(ellipse, #c8a078 0%, #a08050 60%);
  border-radius: 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: kh-dish 5s ease-in-out infinite alternate;
}
.scn-khansamah-and-ghosts .lantern {
  position: absolute; top: 15%; left: 45%; width: 4%; height: 8%;
  background: radial-gradient(circle, #ffcc80 0%, #b08040 70%);
  border-radius: 30%;
  box-shadow: 0 0 40px 15px #b08040, 0 0 80px 30px rgba(176,128,64,.4);
  animation: kh-lantern 3s ease-in-out infinite alternate;
}
@keyframes kh-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes kh-table { 0%,100% { transform: rotate(0) } 50% { transform: rotate(1.5deg) } }
@keyframes kh-dance { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8%) rotate(2deg) } 50% { transform: translateX(15%) rotate(-1deg) } 75% { transform: translateX(8%) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes kh-float { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-10%) rotate(3deg) } 100% { transform: translateY(5%) rotate(-2deg) } }
@keyframes kh-dish { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10%) scale(1.1) } 100% { transform: translateX(5%) scale(.95) } }
@keyframes kh-lantern { 0% { box-shadow: 0 0 30px 10px #b08040; opacity:.7 } 50% { box-shadow: 0 0 60px 25px #ffcc80; opacity:1 } 100% { box-shadow: 0 0 35px 12px #b08040; opacity:.8 } }

/* Scene: waiting-for-ghost (tense, dim interior) */
.scn-waiting-for-ghost {
  background: linear-gradient(180deg, #11131a 0%, #1a1c2a 40%, #0a0b14 100%), radial-gradient(ellipse at 50% 100%, #222540 0%, transparent 70%);
}
.scn-waiting-for-ghost .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0f111b 0%, #14172a 100%);
  animation: wg-flicker 5s ease-in-out infinite alternate;
}
.scn-waiting-for-ghost .lamp {
  position: absolute; top: 20%; left: 40%; width: 5%; height: 12%;
  background: linear-gradient(180deg, #7a6a50 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px #5a4a3a;
  animation: wg-lamp 3s ease-in-out infinite alternate;
}
.scn-waiting-for-ghost .lamp-glow {
  position: absolute; top: 15%; left: 33%; width: 34%; height: 50%;
  background: radial-gradient(ellipse, #c0a070 0%, rgba(192,160,112,.2) 60%, transparent 100%);
  filter: blur(15px);
  animation: wg-glow 4s ease-in-out infinite alternate;
}
.scn-waiting-for-ghost .chair {
  position: absolute; bottom: 15%; left: 30%; width: 20%; height: 25%;
  background: linear-gradient(135deg, #3a302a 0%, #1a1410 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  box-shadow: 0 6px 16px rgba(0,0,0,.6);
  animation: wg-chair 8s ease-in-out infinite alternate;
}
.scn-waiting-for-ghost .figure {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1c2a 0%, #0a0b14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: wg-sit 6s ease-in-out infinite;
}
.scn-waiting-for-ghost .shadow {
  position: absolute; border-radius: 50%;
  filter: blur(8px);
  animation: wg-shift 7s ease-in-out infinite alternate;
}
.scn-waiting-for-ghost .shadow-a {
  bottom: 5%; left: 20%; width: 40%; height: 20%;
  background: rgba(0,0,0,.5);
  animation-delay: 0s;
}
.scn-waiting-for-ghost .shadow-b {
  bottom: 2%; right: 10%; width: 30%; height: 15%;
  background: rgba(0,0,0,.4);
  animation-delay: 3s;
}
.scn-waiting-for-ghost .door {
  position: absolute; bottom: 10%; right: 10%; width: 18%; height: 50%;
  background: linear-gradient(135deg, #2a221e 0%, #1a1410 100%);
  border-radius: 6% 6% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: wg-door 9s ease-in-out infinite alternate;
}
@keyframes wg-flicker { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes wg-lamp { 0% { transform: rotate(-1deg); box-shadow: 0 0 25px 6px #5a4a3a; } 50% { transform: rotate(2deg); box-shadow: 0 0 40px 12px #7a6a50; } 100% { transform: rotate(-.5deg); box-shadow: 0 0 28px 8px #5a4a3a; } }
@keyframes wg-glow { 0% { opacity:.4; transform: scale(.95); } 50% { opacity:.7; transform: scale(1.05); } 100% { opacity:.5; transform: scale(.98); } }
@keyframes wg-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) rotate(.5deg) } 100% { transform: translateY(2px) } }
@keyframes wg-sit { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(1px) rotate(0) } }
@keyframes wg-shift { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5%) scale(1.1) } 100% { transform: translateX(-3%) scale(.95) } }
@keyframes wg-door { 0% { transform: rotateY(0) } 50% { transform: rotateY(-5deg) } 100% { transform: rotateY(2deg) } }

/* Scene: katmal-arrival (tense, overcast) */
.scn-katmal-arrival {
  background: linear-gradient(180deg, #4a4e54 0%, #2f333a 40%, #1a1e24 100%), radial-gradient(ellipse at 50% 100%, #3a4048 0%, transparent 70%);
}
.scn-katmal-arrival .sky-overcast {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a6068 0%, #3a3e44 100%);
  animation: ka-sky 15s ease-in-out infinite alternate;
}
.scn-katmal-arrival .bungalow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #4a3e34 0%, #2e2620 100%);
  border-radius: 8% 8% 0 0 / 12% 12% 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,.5), inset 0 0 40px rgba(0,0,0,.6);
  animation: ka-bungalow 10s ease-in-out infinite alternate;
}
.scn-katmal-arrival .door {
  position: absolute; bottom: 0; width: 12%; height: 50%;
  background: linear-gradient(135deg, #2c221c 0%, #18120e 100%);
  border-radius: 6% 6% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: ka-door 8s ease-in-out infinite alternate;
}
.scn-katmal-arrival .door-left { left: 15%; animation-delay: 0s; }
.scn-katmal-arrival .door-center { left: 44%; animation-delay: 2s; }
.scn-katmal-arrival .door-right { right: 15%; animation-delay: 4s; }
.scn-katmal-arrival .daguerreotype {
  position: absolute; top: 18%; left: 35%; width: 10%; height: 16%;
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2e24 100%);
  border: 2px solid #8a7a62;
  border-radius: 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: ka-portrait 7s ease-in-out infinite alternate;
}
.scn-katmal-arrival .khansamah {
  position: absolute; bottom: 10%; left: 25%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2e24 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ka-bow 6s ease-in-out infinite;
}
.scn-katmal-arrival .ghost-figure {
  position: absolute; bottom: 15%; right: 20%; width: 8%; height: 25%;
  background: linear-gradient(180deg, rgba(200,190,180,.3) 0%, rgba(200,190,180,.1) 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  filter: blur(3px);
  animation: ka-ghost-appear 9s ease-in-out infinite alternate;
}
@keyframes ka-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ka-bungalow { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ka-door { 0% { transform: rotateY(0) } 50% { transform: rotateY(-4deg) } 100% { transform: rotateY(2deg) } }
@keyframes ka-portrait { 0% { opacity:.6; transform: scale(.95) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.8; transform: scale(1) } }
@keyframes ka-bow { 0% { transform: rotate(-2deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-3deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(-1deg) } }
@keyframes ka-ghost-appear { 0% { opacity:0; transform: translateY(10%) scale(.8) } 50% { opacity:.5; transform: translateY(-5%) scale(1) } 100% { opacity:.2; transform: translateY(0) scale(.9) } }

/* Scene: sleepless-night (tense, dark) */
.scn-sleepless-night {
  background: linear-gradient(180deg, #0a0c14 0%, #12151f 40%, #080a0f 100%), radial-gradient(ellipse at 50% 100%, #1e2230 0%, transparent 70%);
}
.scn-sleepless-night .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e1119 0%, #161a26 100%);
  animation: sn-room 6s ease-in-out infinite alternate;
}
.scn-sleepless-night .window {
  position: absolute; top: 15%; left: 65%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #1a202c 0%, #0e121a 100%);
  border: 3px solid #2a2e3c;
  border-radius: 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
  animation: sn-window 7s ease-in-out infinite alternate;
}
.scn-sleepless-night .shutter {
  position: absolute; top: 15%; left: 65%; width: 10%; height: 30%;
  background: linear-gradient(135deg, #2a2e3c 0%, #1a1e2a 100%);
  transform-origin: left center;
  animation: sn-shake .8s ease-in-out infinite alternate;
}
.scn-sleepless-night .lamp {
  position: absolute; top: 8%; left: 25%; width: 4%; height: 10%;
  background: radial-gradient(circle, #b08040 0%, #6a5020 100%);
  border-radius: 20%;
  box-shadow: 0 0 40px 15px #b08040, 0 0 80px 30px rgba(176,128,64,.3);
  animation: sn-lamp 4s ease-in-out infinite alternate;
}
.scn-sleepless-night .lamp-shadow {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 60%;
  background: radial-gradient(ellipse, rgba(176,128,64,.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: sn-shadow 5s ease-in-out infinite alternate;
}
.scn-sleepless-night .doolie {
  position: absolute; bottom: 5%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1a1e2a 0%, #0a0c14 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 25% 25%;
  animation: sn-doolie 10s ease-in-out infinite;
}
.scn-sleepless-night .doolie-a { left: 15%; animation-delay: 0s; }
.scn-sleepless-night .doolie-b { left: 35%; animation-delay: 3s; }
.scn-sleepless-night .doolie-c { left: 55%; animation-delay: 6s; }
@keyframes sn-room { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes sn-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.8); } 50% { box-shadow: inset 0 0 50px rgba(0,0,0,.9); } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,.8); } }
@keyframes sn-shake { 0% { transform: rotate(0) } 50% { transform: rotate(12deg) } 100% { transform: rotate(-8deg) } }
@keyframes sn-lamp { 0% { box-shadow: 0 0 30px 10px #b08040; opacity:.7 } 50% { box-shadow: 0 0 60px 25px #ffcc80; opacity:1 } 100% { box-shadow: 0 0 35px 12px #b08040; opacity:.8 } }
@keyframes sn-shadow { 0% { opacity:.3; transform: scale(.9) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(.95) } }
@keyframes sn-doolie { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5%) rotate(2deg) } 100% { transform: translateX(-3%) rotate(-1deg) } }

.scn-pelitis-panic {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 20%, #c8b090 60%, #a08060 100%),
    radial-gradient(ellipse at 30% 20%, #fff8e7 0%, transparent 60%);
}
.scn-pelitis-panic .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8d4b8 0%, #d4b898 100%); }
.scn-pelitis-panic .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6b4c3a 0%, #4a3228 100%); border-radius: 20% 20% 0 0; }
.scn-pelitis-panic .table { position:absolute; bottom:22%; left:25%; width:50%; height:18%; background: linear-gradient(180deg, #8a6c4a 0%, #5a4028 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); transform-origin: center; animation: pp-table 6s ease-in-out infinite; }
.scn-pelitis-panic .chair-left { position:absolute; bottom:22%; left:18%; width:14%; height:24%; background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%); border-radius: 30% 30% 10% 10%; box-shadow: 2px 0 6px rgba(0,0,0,0.3); }
.scn-pelitis-panic .figure-jack { position:absolute; bottom:24%; left:20%; width:10%; height:30%; background: linear-gradient(180deg, #d9c8b0 0%, #a88a70 50%, #5a4028 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-jack 4s ease-in-out infinite; }
.scn-pelitis-panic .figure-kitty { position:absolute; bottom:20%; right:20%; width:10%; height:32%; background: linear-gradient(180deg, #d4b898 0%, #b09070 50%, #7a6048 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-kitty 5s ease-in-out infinite; opacity:0.9; }
.scn-pelitis-panic .lamp { position:absolute; top:12%; left:40%; width:8%; height:14%; background: radial-gradient(circle, #ffe080 0%, #d4a040 70%); border-radius: 50%; box-shadow: 0 0 30px 12px rgba(255,224,128,0.6), 0 0 60px 24px rgba(255,224,128,0.3); animation: pp-lamp 3s ease-in-out infinite alternate; }
.scn-pelitis-panic .bottle { position:absolute; bottom:32%; left:40%; width:4%; height:10%; background: linear-gradient(180deg, #6b8a3a 0%, #3a5a1a 100%); border-radius: 0 0 20% 20%; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
@keyframes pp-table { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pp-jack { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes pp-kitty { 0% { transform: translateY(0) rotate(0deg); opacity:0.8; } 50% { transform: translateY(-4px) rotate(1deg); opacity:1; } 100% { transform: translateY(0) rotate(0deg); opacity:0.8; } }
@keyframes pp-lamp { 0% { box-shadow: 0 0 20px 8px rgba(255,224,128,0.5); opacity:0.85; } 50% { box-shadow: 0 0 40px 16px rgba(255,224,128,0.8); opacity:1; } 100% { box-shadow: 0 0 25px 10px rgba(255,224,128,0.6); opacity:0.9; } }

.scn-solitary-reasoning {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 40%, #05050a 100%),
    radial-gradient(ellipse at 60% 30%, #2a2a4e 0%, transparent 70%);
}
.scn-solitary-reasoning .wall-dark { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #121220 0%, #08080f 100%); }
.scn-solitary-reasoning .floor-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); }
.scn-solitary-reasoning .desk { position:absolute; bottom:15%; left:15%; width:40%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.7); }
.scn-solitary-reasoning .lamp-desk { position:absolute; bottom:32%; left:28%; width:6%; height:12%; background: radial-gradient(circle, #d4a040 0%, #805020 70%); border-radius: 50%; box-shadow: 0 0 40px 16px rgba(212,160,64,0.5), 0 0 80px 32px rgba(212,160,64,0.2); animation: sr-lamp 4s ease-in-out infinite alternate; }
.scn-solitary-reasoning .figure-sitting { position:absolute; bottom:10%; left:20%; width:12%; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #0f0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sr-figure 7s ease-in-out infinite; }
.scn-solitary-reasoning .window-moonlight { position:absolute; top:12%; right:8%; width:25%; height:35%; background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%); border: 3px solid #2a2a4a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.1); animation: sr-moon 12s ease-in-out infinite; }
.scn-solitary-reasoning .shadow-curtain { position:absolute; top:0; right:5%; width:30%; height:90%; background: linear-gradient(180deg, rgba(10,10,20,0.8) 0%, transparent 100%); transform-origin: top; animation: sr-curtain 15s ease-in-out infinite alternate; }
@keyframes sr-lamp { 0% { box-shadow: 0 0 30px 12px rgba(212,160,64,0.4); opacity:0.8; } 50% { box-shadow: 0 0 50px 20px rgba(212,160,64,0.7); opacity:1; } 100% { box-shadow: 0 0 35px 14px rgba(212,160,64,0.5); opacity:0.9; } }
@keyframes sr-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 sr-moon { 0% { background: #3a4a6a; } 50% { background: #4a5a7a; } 100% { background: #2a3a5a; } }
@keyframes sr-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1.05); } }

.scn-lie-and-jakko-ride {
  background:
    linear-gradient(180deg, #8a9a9a 0%, #6a7a7a 30%, #4a5a5a 60%, #3a4a4a 100%),
    radial-gradient(ellipse at 50% 0%, #b0c0c0 0%, transparent 80%);
}
.scn-lie-and-jakko-ride .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #9aa8a8 0%, #7a8888 100%); animation: lj-sky 20s ease-in-out infinite alternate; }
.scn-lie-and-jakko-ride .hills-muted { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.3); animation: lj-hills 18s ease-in-out infinite alternate; }
.scn-lie-and-jakko-ride .path { position:absolute; bottom:10%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 20% 20%; filter: blur(2px); }
.scn-lie-and-jakko-ride .horse-kitty { position:absolute; bottom:12%; left:30%; width:20%; height:25%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: lj-horse1 4s ease-in-out infinite; }
.scn-lie-and-jakko-ride .horse-jack { position:absolute; bottom:12%; left:10%; width:20%; height:25%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: lj-horse2 4.5s ease-in-out infinite; }
.scn-lie-and-jakko-ride .rider-kitty { position:absolute; bottom:30%; left:32%; width:8%; height:15%; background: linear-gradient(180deg, #a09080 0%, #605048 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lj-rider1 4s ease-in-out infinite; }
.scn-lie-and-jakko-ride .rider-jack { position:absolute; bottom:30%; left:12%; width:8%; height:15%; background: linear-gradient(180deg, #908070 0%, #504038 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lj-rider2 4.5s ease-in-out infinite; }
.scn-lie-and-jakko-ride .cloud-cover { position:absolute; top:12%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, rgba(180,190,190,0.5) 0%, transparent 100%); filter: blur(8px); animation: lj-cloud 30s linear infinite; }
@keyframes lj-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes lj-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes lj-horse1 { 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(-2deg); } }
@keyframes lj-horse2 { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(-6px) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes lj-rider1 { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lj-rider2 { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes lj-cloud { 0% { transform: translateX(-20%); } 100% { transform: translateX(120%); } }

.scn-ladies-mile-horror {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 30%, #0f0f1a 60%, #05050a 100%),
    radial-gradient(ellipse at 30% 40%, #3a3a5a 0%, transparent 70%);
}
.scn-ladies-mile-horror .sky-storm { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); animation: lm-sky 15s ease-in-out infinite alternate; }
.scn-ladies-mile-horror .ground-dark { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2a1a 0%, #0f0f0a 100%); border-radius: 30% 30% 0 0; }
.scn-ladies-mile-horror .horse-jack-horror { position:absolute; bottom:10%; left:10%; width:22%; height:28%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: lm-horse 4s ease-in-out infinite; }
.scn-ladies-mile-horror .rider-jack-horror { position:absolute; bottom:32%; left:12%; width:8%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lm-rider 4s ease-in-out infinite; }
.scn-ladies-mile-horror .rickshaw-ghost { position:absolute; bottom:8%; right:20%; width:30%; height:25%; background: linear-gradient(180deg, rgba(100,120,140,0.5) 0%, rgba(60,80,100,0.3) 100%); border-radius: 10% 10% 20% 20%; filter: blur(4px); box-shadow: 0 0 20px rgba(100,120,140,0.4); animation: lm-rickshaw 8s ease-in-out infinite alternate; }
.scn-ladies-mile-horror .jhampani-ghost { position:absolute; bottom:10%; right:35%; width:8%; height:20%; background: rgba(80,100,120,0.4); border-radius: 50% 50% 20% 20%; filter: blur(3px); animation: lm-jhampani 6s ease-in-out infinite alternate; }
.scn-ladies-mile-horror .golden-head { position:absolute; bottom:22%; right:28%; width:6%; height:8%; background: radial-gradient(circle, #d4a040 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(212,160,64,0.6); animation: lm-glow 3s ease-in-out infinite alternate; }
.scn-ladies-mile-horror .mist { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, rgba(80,100,120,0.2) 0%, transparent 60%); filter: blur(12px); animation: lm-mist 12s ease-in-out infinite alternate; }
@keyframes lm-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes lm-horse { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes lm-rider { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lm-rickshaw { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes lm-jhampani { 0% { transform: translateY(0); opacity:0.3; } 50% { transform: translateY(-5px); opacity:0.6; } 100% { transform: translateY(0); opacity:0.3; } }
@keyframes lm-glow { 0% { box-shadow: 0 0 20px 4px rgba(212,160,64,0.4); } 50% { box-shadow: 0 0 40px 12px rgba(212,160,64,0.8); } 100% { box-shadow: 0 0 25px 6px rgba(212,160,64,0.5); } }
@keyframes lm-mist { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.3; } }

/* Scene: overheard-ridicule (tense, dusk) */
.scn-overheard-ridicule {
  background: linear-gradient(180deg, #2d1b3d 0%, #4a2c4a 30%, #7a5a4a 60%, #c08050 80%, #d4a060 100%);
}
.scn-overheard-ridicule .sky-dusk {
  position: absolute; inset: 0 0 55% 0;
  background: radial-gradient(ellipse at 70% 0%, #d08050 0%, #6a3a4a 30%, #2a1a3a 70%);
  animation: or-sky 20s ease-in-out infinite alternate;
}
.scn-overheard-ridicule .hills-distant {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 70% 30% 0 0 / 80% 20% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.5);
  animation: or-hills 30s ease-in-out infinite alternate;
}
.scn-overheard-ridicule .road-curve {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  transform: scaleY(0.6);
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-overheard-ridicule .rickshaw {
  position: absolute; bottom: 27%; left: 45%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(3deg);
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
  animation: or-rickshaw 5s ease-in-out infinite;
}
.scn-overheard-ridicule .man-a {
  position: absolute; bottom: 25%; left: 35%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: or-figure-a 6s ease-in-out infinite;
}
.scn-overheard-ridicule .man-b {
  position: absolute; bottom: 25%; left: 48%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: or-figure-b 6s ease-in-out infinite 3s;
}
.scn-overheard-ridicule .ghost-light {
  position: absolute; bottom: 32%; left: 55%; width: 10px; height: 12px;
  background: radial-gradient(circle, #ffd070 0%, #ffa040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,0.4);
  animation: or-ghostlight 2s ease-in-out infinite alternate;
}
.scn-overheard-ridicule .dust-devil {
  position: absolute; bottom: 22%; left: 20%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,160,100,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: or-dust 8s linear infinite;
}
@keyframes or-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes or-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes or-rickshaw { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(4px); } 100% { transform: rotate(3deg) translateX(0); } }
@keyframes or-figure-a { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(2deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes or-figure-b { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-1deg); } 70% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes or-ghostlight { 0% { box-shadow: 0 0 10px 2px #ffa040; opacity: 0.7; } 50% { box-shadow: 0 0 30px 10px #ffc060; opacity: 1; } 100% { box-shadow: 0 0 15px 4px #ffa040; opacity: 0.8; } }
@keyframes or-dust { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-10px) scale(1.2); opacity: 0.6; } 100% { transform: translateY(0) scale(1); opacity: 0.3; } }

/* Scene: dinner-and-false-cover (funny, gaslit) */
.scn-dinner-and-false-cover {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3a1a 40%, #7a5a3a 100%);
}
.scn-dinner-and-false-cover .wall-warm {
  position: absolute; inset: 0 0 30% 0;
  background: radial-gradient(ellipse at 50% 30%, #8a6a4a 0%, #5a3a2a 100%);
  animation: dfc-wall 15s ease-in-out infinite alternate;
}
.scn-dinner-and-false-cover .table-oval {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  transform: perspective(300px) rotateX(10deg);
}
.scn-dinner-and-false-cover .chair-left {
  position: absolute; bottom: 15%; left: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  transform: rotate(-5deg);
  animation: dfc-chair 4s ease-in-out infinite alternate;
}
.scn-dinner-and-false-cover .chair-right {
  position: absolute; bottom: 15%; right: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  transform: rotate(5deg);
  animation: dfc-chair 4s ease-in-out infinite alternate-reverse;
}
.scn-dinner-and-false-cover .diner-left {
  position: absolute; bottom: 20%; left: 22%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: dfc-diner 5s ease-in-out infinite;
}
.scn-dinner-and-false-cover .diner-right {
  position: absolute; bottom: 20%; right: 22%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #3a2020 0%, #1a0a0a 100%); /* desaturated red whiskers implied? no, avoid face */
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: dfc-diner 5s ease-in-out infinite 2.5s;
}
.scn-dinner-and-false-cover .gas-lamp {
  position: absolute; top: 15%; left: 48%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffe080 0%, #d0a040 60%, transparent 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 4px #d0a040, 0 0 40px 8px rgba(208,160,64,0.5);
  animation: dfc-lamp 3s ease-in-out infinite alternate;
}
.scn-dinner-and-false-cover .curtain-swag {
  position: absolute; top: 5%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 60% 60% / 10% 10% 80% 80%;
  opacity: 0.8;
  animation: dfc-curtain 10s ease-in-out infinite alternate;
}
@keyframes dfc-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dfc-chair { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes dfc-diner { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(3deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dfc-lamp { 0% { box-shadow: 0 0 10px 2px #d0a040; opacity: 0.8; } 50% { box-shadow: 0 0 30px 8px #ffe080; opacity: 1; } 100% { box-shadow: 0 0 15px 3px #d0a040; opacity: 0.9; } }
@keyframes dfc-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }

/* Scene: heatherlegh-introduction (warm, gaslit) */
.scn-heatherlegh-introduction {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #4a3a2a 70%, #7a5a3a 100%);
}
.scn-heatherlegh-introduction .night-road {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-heatherlegh-introduction .building-bg {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  opacity: 0.7;
  animation: hi-building 20s ease-in-out infinite alternate;
}
.scn-heatherlegh-introduction .figure-narrator {
  position: absolute; bottom: 18%; left: 35%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hi-walk 4s ease-in-out infinite;
}
.scn-heatherlegh-introduction .figure-doctor {
  position: absolute; bottom: 18%; left: 45%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hi-walk 4s ease-in-out infinite 2s;
}
.scn-heatherlegh-introduction .figure-ghost {
  position: absolute; bottom: 18%; left: 60%; width: 16px; height: 40px;
  background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, rgba(100,80,60,0.2) 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: hi-ghost 6s ease-in-out infinite;
}
.scn-heatherlegh-introduction .headlamp-glow {
  position: absolute; bottom: 38%; left: 62%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffe080 0%, #d0a040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px #d0a040, 0 0 50px 16px rgba(208,160,64,0.4);
  animation: hi-headlamp 2s ease-in-out infinite alternate;
}
.scn-heatherlegh-introduction .lamppost {
  position: absolute; bottom: 10%; left: 20%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
}
.scn-heatherlegh-introduction .shadow-stretch {
  position: absolute; bottom: 0; left: 30%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: hi-shadow 4s ease-in-out infinite;
}
@keyframes hi-building { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes hi-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hi-ghost { 0% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.6; transform: translateX(5px); } 100% { opacity: 0.3; transform: translateX(0); } }
@keyframes hi-headlamp { 0% { box-shadow: 0 0 15px 4px #d0a040; opacity: 0.7; } 50% { box-shadow: 0 0 35px 12px #ffe080; opacity: 1; } 100% { box-shadow: 0 0 20px 6px #d0a040; opacity: 0.8; } }
@keyframes hi-shadow { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.2); opacity: 0.6; } 100% { transform: scaleX(1); opacity: 0.4; } }

/* Scene: diagnosis-and-ride (tense, moonlit) */
.scn-diagnosis-and-ride {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a5a 70%, #3a3a6a 100%);
}
.scn-diagnosis-and-ride .sky-moonlit {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(ellipse at 50% 30%, #2a2a5a 0%, #1a1a3a 60%, #0a0a1a 100%);
  animation: dar-sky 25s ease-in-out infinite alternate;
}
.scn-diagnosis-and-ride .moon {
  position: absolute; top: 10%; left: 60%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c0d0e0, 0 0 60px 20px rgba(192,208,224,0.3);
  animation: dar-moon 10s ease-in-out infinite alternate;
}
.scn-diagnosis-and-ride .road-dust {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-diagnosis-and-ride .horse-dark {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 30% 20% 40% / 60% 40% 40% 60%;
  transform: translateX(-50%);
  animation: dar-horse 3s ease-in-out infinite;
}
.scn-diagnosis-and-ride .carriage {
  position: absolute; bottom: 24%; left: 35%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  transform: rotate(2deg);
  animation: dar-carriage 3s ease-in-out infinite;
}
.scn-diagnosis-and-ride .figure-doctor-d {
  position: absolute; bottom: 18%; left: 55%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: dar-figure 4s ease-in-out infinite;
}
.scn-diagnosis-and-ride .figure-narrator-d {
  position: absolute; bottom: 18%; left: 62%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: dar-figure 4s ease-in-out infinite 0.5s;
  transform-origin: bottom center;
}
.scn-diagnosis-and-ride .tremor-lines {
  position: absolute; bottom: 30%; left: 60%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,200,220,0.1) 0%, transparent 100%);
  filter: blur(2px);
  animation: dar-tremor 0.5s linear infinite;
}
@keyframes dar-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dar-moon { 0% { box-shadow: 0 0 20px 6px #c0d0e0; transform: scale(1); } 50% { box-shadow: 0 0 40px 14px #e0e8f0; transform: scale(1.05); } 100% { box-shadow: 0 0 25px 8px #c0d0e0; transform: scale(1); } }
@keyframes dar-horse { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes dar-carriage { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(2deg) translateX(0); } }
@keyframes dar-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dar-tremor { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 0.2; transform: scale(1); } }

.scn-ghostly-escort { background: linear-gradient(180deg,#0f172a 0%,#1e293b 40%,#334155 80%), radial-gradient(ellipse at 70% 20%,#38bdf8 0%,transparent 60%); }
.scn-ghostly-escort .moon{position:absolute;top:8%;right:20%;width:60px;height:60px;background:radial-gradient(circle,#f0f9ff,#bae6fd);border-radius:50%;box-shadow:0 0 40px 10px #7dd3fc;animation:ge-moon 10s ease-in-out infinite alternate;}
.scn-ghostly-escort .hill{position:absolute;bottom:30%;left:0;width:100%;height:40%;background:linear-gradient(180deg,#1e293b60 0%,#0f172a 100%);border-radius:100% 100% 0 0;}
.scn-ghostly-escort .path{position:absolute;bottom:30%;left:50%;width:10px;height:60px;background:#334155;transform:translateX(-50%);border-radius:50% 50% 10% 10%;}
.scn-ghostly-escort .figure-left{position:absolute;bottom:35%;left:35%;width:20px;height:50px;background:linear-gradient(180deg,#64748b,#334155);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:ge-walk 4s ease-in-out infinite;}
.scn-ghostly-escort .figure-right{position:absolute;bottom:35%;right:35%;width:20px;height:50px;background:linear-gradient(180deg,#64748b,#334155);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:ge-walk 4s ease-in-out infinite 2s;}
.scn-ghostly-escort .ghost{position:absolute;bottom:38%;left:50%;width:24px;height:36px;background:linear-gradient(180deg,#e2e8f0,#cbd5e1);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:ge-ghost 2.5s ease-in-out infinite;}
.scn-ghostly-escort .lamp{position:absolute;bottom:37%;left:30%;width:8px;height:12px;background:#facc15;border-radius:50%;box-shadow:0 0 20px 8px #fde047;animation:ge-lamp 3s ease-in-out infinite alternate;}
@keyframes ge-moon{0%{transform:scale(1);opacity:.9}50%{transform:scale(1.05);opacity:1}100%{transform:scale(.95);opacity:.85}}
@keyframes ge-walk{0%{transform:translateX(0) translateY(0)}25%{transform:translateX(-5px) translateY(-2px)}50%{transform:translateX(0) translateY(0)}75%{transform:translateX(5px) translateY(-2px)}100%{transform:translateX(0) translateY(0)}}
@keyframes ge-ghost{0%{transform:translateY(0) scaleY(1)}25%{transform:translateY(-5px) scaleY(1.1)}50%{transform:translateY(0) scaleY(1)}75%{transform:translateY(-5px) scaleY(1.1)}100%{transform:translateY(0) scaleY(1)}}
@keyframes ge-lamp{0%{opacity:.7;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}100%{opacity:.8;transform:scale(1)}}

.scn-liver-pill-theory { background: linear-gradient(180deg,#1e293b 0%,#0f172a 40%,#020617 80%), radial-gradient(ellipse at 50% 30%,#475569 0%,transparent 70%); }
.scn-liver-pill-theory .bg{position:absolute;inset:0;background:linear-gradient(180deg,#33415540 0%,transparent 100%);}
.scn-liver-pill-theory .stomach{position:absolute;bottom:35%;left:50%;width:80px;height:60px;transform:translateX(-50%);background:radial-gradient(ellipse,#cbd5e1,#64748b);border-radius:50%;box-shadow:0 4px 12px #00000080;animation:lp-stomach 6s ease-in-out infinite;}
.scn-liver-pill-theory .brain{position:absolute;top:10%;left:50%;width:60px;height:50px;transform:translateX(-50%);background:linear-gradient(180deg,#94a3b8,#475569);border-radius:40% 40% 30% 30%/50% 50% 30% 30%;animation:lp-brain 8s ease-in-out infinite alternate;}
.scn-liver-pill-theory .eye-left{position:absolute;top:22%;left:42%;width:12px;height:16px;background:radial-gradient(circle,#facc15,#a16207);border-radius:50%;animation:lp-eyes 4s ease-in-out infinite;}
.scn-liver-pill-theory .eye-right{position:absolute;top:22%;right:42%;width:12px;height:16px;background:radial-gradient(circle,#facc15,#a16207);border-radius:50%;animation:lp-eyes 4s ease-in-out infinite 1.5s;}
.scn-liver-pill-theory .pill-bottle{position:absolute;bottom:10%;left:20%;width:20px;height:30px;background:linear-gradient(180deg,#f8fafc,#cbd5e1);border-radius:20% 20% 5% 5%;box-shadow:0 2px 4px #000;animation:lp-bottle 12s linear infinite;}
.scn-liver-pill-theory .pill{position:absolute;bottom:28%;left:22%;width:6px;height:10px;background:#fde047;border-radius:40%;box-shadow:0 0 6px 2px #fef08a;animation:lp-pill 3s ease-in-out infinite;}
@keyframes lp-stomach{0%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.08)}100%{transform:translateX(-50%) scale(1)}}
@keyframes lp-brain{0%{transform:translateX(-50%) rotate(-5deg)}50%{transform:translateX(-50%) rotate(5deg)}100%{transform:translateX(-50%) rotate(-5deg)}}
@keyframes lp-eyes{0%,100%{transform:scale(1)}50%{transform:scale(1.3)}}
@keyframes lp-bottle{0%{transform:translateY(0)}25%{transform:translateY(-4px)}50%{transform:translateY(0)}75%{transform:translateY(-4px)}100%{transform:translateY(0)}}
@keyframes lp-pill{0%{opacity:0;transform:translateY(0)}50%{opacity:1;transform:translateY(-10px)}100%{opacity:0;transform:translateY(0)}}

.scn-cliff-fall-miraculous { background: linear-gradient(180deg,#09090b 0%,#1a1a2e 30%,#16213e 60%,#0f3460 100%), radial-gradient(ellipse at 50% 20%,#1e3a5f 0%,transparent 70%); }
.scn-cliff-fall-miraculous .cliff{position:absolute;bottom:0;left:0;width:60%;height:40%;background:linear-gradient(180deg,#3e4a5b,#1a1a2e);border-radius:0 60% 0 0;box-shadow:inset 0 10px 20px #000;animation:cf-cliff 8s ease-in-out infinite alternate;}
.scn-cliff-fall-miraculous .figure-falling{position:absolute;bottom:60%;left:50%;width:18px;height:40px;background:linear-gradient(180deg,#334155,#0f172a);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform:rotate(15deg);animation:cf-fall 2s ease-in infinite;}
.scn-cliff-fall-miraculous .dust-cloud{position:absolute;bottom:30%;left:40%;width:80px;height:40px;background:radial-gradient(ellipse,#94a3b880,#47556940);border-radius:50%;filter:blur(8px);animation:cf-dust 5s ease-in-out infinite;}
.scn-cliff-fall-miraculous .rock-outcrop{position:absolute;bottom:10%;right:5%;width:50px;height:30px;background:linear-gradient(180deg,#3e4a5b,#1e293b);border-radius:10% 10% 0 0;animation:cf-rock 12s ease-in-out infinite alternate;}
.scn-cliff-fall-miraculous .hand{position:absolute;bottom:55%;left:35%;width:14px;height:20px;background:#334155;border-radius:50% 50% 10% 10%/100% 100% 0 0;transform:rotate(30deg);animation:cf-hand 0.8s ease-in-out infinite;}
.scn-cliff-fall-miraculous .debris{position:absolute;bottom:20%;left:20%;width:6px;height:6px;background:#64748b;border-radius:50%;animation:cf-debris 3s linear infinite;}
@keyframes cf-cliff{0%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}100%{transform:rotate(-2deg)}}
@keyframes cf-fall{0%{transform:translateY(0) rotate(15deg)}50%{transform:translateY(200px) rotate(-10deg)}100%{transform:translateY(400px) rotate(30deg)}}
@keyframes cf-dust{0%{opacity:0;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}100%{opacity:0;transform:scale(1.5)}}
@keyframes cf-rock{0%{transform:translateX(0)}50%{transform:translateX(10px)}100%{transform:translateX(0)}}
@keyframes cf-hand{0%{transform:rotate(30deg) scale(1)}50%{transform:rotate(20deg) scale(1.1)}100%{transform:rotate(30deg) scale(1)}}
@keyframes cf-debris{0%{transform:translateY(0) rotate(0deg);opacity:1}100%{transform:translateY(100px) rotate(180deg);opacity:0}}

.scn-gratitude-and-cure { background: linear-gradient(180deg,#2c1810 0%,#4a2c1a 40%,#3b2215 80%), radial-gradient(ellipse at 30% 50%,#6b3a1f 0%,transparent 70%); }
.scn-gratitude-and-cure .wall{position:absolute;inset:0;background:linear-gradient(135deg,#2c1810 50%,#1a0f0a 100%);}
.scn-gratitude-and-cure .bed{position:absolute;bottom:20%;left:20%;width:60%;height:30%;background:linear-gradient(180deg,#5c3a28,#3b2215);border-radius:5% 5% 10% 10%;box-shadow:0 -4px 8px #00000080;animation:gc-bed 14s ease-in-out infinite alternate;}
.scn-gratitude-and-cure .doctor{position:absolute;bottom:45%;right:15%;width:20px;height:50px;background:linear-gradient(180deg,#6b4c3a,#4a2c1a);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:gc-doctor 6s ease-in-out infinite;}
.scn-gratitude-and-cure .patient{position:absolute;bottom:30%;left:30%;width:22px;height:45px;background:linear-gradient(180deg,#7a5a3a,#4a2c1a);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform:rotate(5deg);animation:gc-patient 8s ease-in-out infinite;}
.scn-gratitude-and-cure .lamp-soft{position:absolute;top:10%;left:10%;width:12px;height:18px;background:radial-gradient(circle,#fde047,#c2410c);border-radius:50%;box-shadow:0 0 30px 10px #fde04780,0 0 60px 20px #fbbf2460;animation:gc-lamp 5s ease-in-out infinite alternate;}
.scn-gratitude-and-cure .curtain{position:absolute;top:0;right:0;width:20%;height:100%;background:linear-gradient(180deg,#4a2c1a60,#2c181080);border-radius:0 0 0 50%;animation:gc-curtain 20s ease-in-out infinite alternate;}
@keyframes gc-bed{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes gc-doctor{0%{transform:translateX(0) rotate(-2deg)}50%{transform:translateX(5px) rotate(2deg)}100%{transform:translateX(0) rotate(-2deg)}}
@keyframes gc-patient{0%{transform:rotate(5deg) scale(1)}50%{transform:rotate(3deg) scale(1.02)}100%{transform:rotate(5deg) scale(1)}}
@keyframes gc-lamp{0%{box-shadow:0 0 20px 5px #fde04780;opacity:.8}50%{box-shadow:0 0 40px 15px #fde04780;opacity:1}100%{box-shadow:0 0 20px 5px #fde04780;opacity:.8}}
@keyframes gc-curtain{0%{transform:scaleX(1)}50%{transform:scaleX(1.05)}100%{transform:scaleX(1)}}

.scn-desert-ghost-intro {
  background:
    linear-gradient(180deg, #0b0b1f 0%, #1a1a3a 40%, #2a2a4a 70%, #1f1f35 100%),
    radial-gradient(ellipse at 50% 0%, #3a3a6a 0%, transparent 70%);
}
.scn-desert-ghost-intro .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(10,10,25,0.8) 0%, transparent 100%);
  animation: des-sky 15s ease-in-out infinite alternate;
}
.scn-desert-ghost-intro .moon {
  position: absolute; top: 8%; left: 65%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #e0e8f0 0%, #a0b0c0 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(160,176,192,0.4), 0 0 80px 40px rgba(160,176,192,0.2);
  animation: des-moon-glow 6s ease-in-out infinite alternate;
}
.scn-desert-ghost-intro .dune-far {
  position: absolute; bottom: 25%; left: -10%; right: -10%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  transform: scaleY(0.7);
  animation: des-dune 20s ease-in-out infinite alternate;
}
.scn-desert-ghost-intro .dune-mid {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 22%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 30% 70% 0 0 / 60% 90% 0 0;
  animation: des-dune 24s ease-in-out infinite alternate-reverse;
}
.scn-desert-ghost-intro .dune-near {
  position: absolute; bottom: 0; left: -5%; right: -5%; height: 20%;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 100%);
  border-radius: 10% 90% 0 0 / 30% 70% 0 0;
  animation: des-dune 28s ease-in-out infinite alternate;
}
.scn-desert-ghost-intro .ghost-figure {
  position: absolute; bottom: 30%; left: 40%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, rgba(200,210,220,0.3) 0%, rgba(180,190,200,0.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: des-ghost 8s ease-in-out infinite alternate;
}
.scn-desert-ghost-intro .cactus {
  position: absolute; bottom: 22%; left: 70%;
  width: 14px; height: 40px;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(5deg);
  box-shadow: 6px -8px 0 #1a3a1a, -4px -10px 0 #1a3a1a;
  animation: des-cactus-sway 5s ease-in-out infinite;
}
.scn-desert-ghost-intro .star {
  position: absolute; width: 3px; height: 3px;
  background: #fff; border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.5);
  animation: des-star-twinkle 4s ease-in-out infinite alternate;
}
.scn-desert-ghost-intro .star-1 { top: 12%; left: 20%; }
.scn-desert-ghost-intro .star-2 { top: 5%; left: 45%; animation-delay: -2s; }
@keyframes des-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes des-moon-glow { 0% { box-shadow: 0 0 30px 15px rgba(160,176,192,0.3); } 50% { box-shadow: 0 0 50px 25px rgba(160,176,192,0.5); } 100% { box-shadow: 0 0 35px 18px rgba(160,176,192,0.35); } }
@keyframes des-dune { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes des-ghost { 0% { transform: translateY(0) rotate(0deg); opacity: 0.6; } 50% { transform: translateY(-10px) rotate(3deg); opacity: 0.9; } 100% { transform: translateY(0) rotate(0deg); opacity: 0.6; } }
@keyframes des-cactus-sway { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(-2deg) } }
@keyframes des-star-twinkle { 0% { opacity: 0.3 } 50% { opacity: 1 } 100% { opacity: 0.5 } }

.scn-indian-ghost-types {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a201c 30%, #362820 60%, #1e1814 100%),
    radial-gradient(circle at 50% 80%, #3a2a20 0%, transparent 70%);
}
.scn-indian-ghost-types .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #2a1a14 0%, #3a2a20 50%, #2a1a14 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: igd-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-indian-ghost-types .window-frame {
  position: absolute; top: 15%; left: 40%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: igd-frame 8s ease-in-out infinite alternate;
}
.scn-indian-ghost-types .tree-branch {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 0 0 50%;
  transform-origin: right center;
  animation: igd-branch-wave 4s ease-in-out infinite;
}
.scn-indian-ghost-types .ghost-woman {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 45px;
  background: linear-gradient(180deg, rgba(220,200,180,0.2) 0%, rgba(180,160,140,0.05) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: igd-ghost-woman 6s ease-in-out infinite alternate;
}
.scn-indian-ghost-types .candle-glow {
  position: absolute; bottom: 15%; left: 35%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, #c08030 60%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 15px rgba(255,208,96,0.4), 0 0 60px 30px rgba(192,128,48,0.2);
  animation: igd-candle 3s ease-in-out infinite alternate;
}
.scn-indian-ghost-types .table-silhouette {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 10% 10% 0 0;
  animation: igd-table 10s ease-in-out infinite alternate;
}
.scn-indian-ghost-types .shadow-arm {
  position: absolute; bottom: 18%; left: 42%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0a08 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom left;
  animation: igd-arm 5s ease-in-out infinite;
}
@keyframes igd-wall-pulse { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes igd-frame { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes igd-branch-wave { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } }
@keyframes igd-ghost-woman { 0% { transform: translateY(0) rotate(0deg); opacity: 0.4 } 50% { transform: translateY(-8px) rotate(2deg); opacity: 0.8 } 100% { transform: translateY(0) rotate(0deg); opacity: 0.5 } }
@keyframes igd-candle { 0% { box-shadow: 0 0 20px 10px rgba(255,208,96,0.3); } 50% { box-shadow: 0 0 40px 20px rgba(255,208,96,0.6); } 100% { box-shadow: 0 0 25px 12px rgba(255,208,96,0.35); } }
@keyframes igd-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes igd-arm { 0% { transform: rotate(0deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(0deg) } }

.scn-english-ghosts-and-stations {
  background:
    linear-gradient(180deg, #0e1a2e 0%, #1a2a4a 30%, #2a3a5a 60%, #1e2e4e 100%),
    radial-gradient(ellipse at 80% 20%, #3a5a7a 0%, transparent 70%);
}
.scn-english-ghosts-and-stations .sky {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, rgba(20,30,50,0.6) 0%, transparent 100%);
  animation: egs-sky 12s ease-in-out infinite alternate;
}
.scn-english-ghosts-and-stations .moon {
  position: absolute; top: 8%; right: 15%;
  width: 45px; height: 45px;
  background: radial-gradient(circle, #e8eef4 0%, #b0c0d0 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(176,192,208,0.3), 0 0 80px 40px rgba(176,192,208,0.15);
  animation: egs-moon 8s ease-in-out infinite alternate;
}
.scn-english-ghosts-and-stations .station-roof {
  position: absolute; bottom: 35%; left: 10%; right: 20%;
  height: 12%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 20% 20% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -4px 15px rgba(0,0,0,0.4);
  animation: egs-roof 14s ease-in-out infinite alternate;
}
.scn-english-ghosts-and-stations .platform {
  position: absolute; bottom: 20%; left: 5%; right: 25%;
  height: 8%;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: egs-platform 10s ease-in-out infinite alternate;
}
.scn-english-ghosts-and-stations .ghost-english {
  position: absolute; bottom: 28%; left: 30%;
  width: 18px; height: 50px;
  background: linear-gradient(180deg, rgba(200,210,220,0.25) 0%, rgba(180,190,200,0.1) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: egs-ghost 9s ease-in-out infinite alternate;
}
.scn-english-ghosts-and-stations .train-light {
  position: absolute; bottom: 30%; right: 10%;
  width: 20px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #a06020 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,208,128,0.3);
  animation: egs-train-light 6s ease-in-out infinite alternate;
}
.scn-english-ghosts-and-stations .cloud {
  position: absolute; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(160,180,200,0.3) 0%, rgba(140,160,180,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-english-ghosts-and-stations .cloud-a { top: 12%; left: -10%; animation: egs-cloud 35s linear infinite; }
.scn-english-ghosts-and-stations .cloud-b { top: 20%; right: -10%; width: 60px; height: 16px; animation: egs-cloud 45s linear infinite reverse; }
@keyframes egs-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes egs-moon { 0% { box-shadow: 0 0 30px 15px rgba(176,192,208,0.2); } 50% { box-shadow: 0 0 50px 25px rgba(176,192,208,0.5); } 100% { box-shadow: 0 0 35px 18px rgba(176,192,208,0.3); } }
@keyframes egs-roof { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes egs-platform { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } 100% { transform: scaleX(1) } }
@keyframes egs-ghost { 0% { transform: translateY(0) rotate(0deg); opacity: 0.4 } 50% { transform: translateY(-8px) rotate(2deg); opacity: 0.8 } 100% { transform: translateY(0) rotate(0deg); opacity: 0.5 } }
@keyframes egs-train-light { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.7; transform: scale(1) } }
@keyframes egs-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

.scn-haunted-bungalows-and-daks {
  background:
    linear-gradient(180deg, #0e0a12 0%, #1a1420 30%, #2a1e2a 60%, #161218 100%),
    radial-gradient(ellipse at 30% 80%, #2a1e2a 0%, transparent 70%);
}
.scn-haunted-bungalows-and-daks .interior-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #1a1018 0%, #2a1e28 50%, #1a1018 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
  animation: hbd-wall 10s ease-in-out infinite alternate;
}
.scn-haunted-bungalows-and-daks .window {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border: 4px solid #3a2a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 10px rgba(0,0,0,0.3);
  animation: hbd-window-shake 12s ease-in-out infinite alternate;
}
.scn-haunted-bungalows-and-daks .gravestone {
  position: absolute; bottom: 20%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #4a4040 0%, #3a3030 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
}
.scn-haunted-bungalows-and-daks .g1 { left: 20%; } .scn-haunted-bungalows-and-daks .g2 { left: 45%; height: 25px; width: 14px; animation-delay: -2s; }
.scn-haunted-bungalows-and-daks .phantom-march {
  position: absolute; bottom: 22%; left: 10%; right: 10%;
  height: 8%;
  background: repeating-linear-gradient(90deg, rgba(200,200,210,0.1) 0px, rgba(200,200,210,0.1) 10px, transparent 10px, transparent 20px);
  animation: hbd-march 20s linear infinite;
}
.scn-haunted-bungalows-and-daks .lamp-glow {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 20%, #ffd060 0%, #c08030 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 15px rgba(255,208,96,0.3), 0 0 60px 30px rgba(192,128,48,0.15);
  animation: hbd-lamp 3s ease-in-out infinite alternate;
}
.scn-haunted-bungalows-and-daks .darkness-drape {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a0810 0%, transparent 100%);
  animation: hbd-drape 8s ease-in-out infinite alternate;
}
.scn-haunted-bungalows-and-daks .shadow-figure {
  position: absolute; bottom: 25%; left: 60%;
  width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1018 0%, #0a080c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hbd-shadow-fig 7s ease-in-out infinite alternate;
}
@keyframes hbd-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hbd-window-shake { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes hbd-march { 0% { background-position: 0 0 } 100% { background-position: 100px 0 } }
@keyframes hbd-lamp { 0% { box-shadow: 0 0 20px 10px rgba(255,208,96,0.2); } 50% { box-shadow: 0 0 40px 20px rgba(255,208,96,0.5); } 100% { box-shadow: 0 0 25px 12px rgba(255,208,96,0.3); } }
@keyframes hbd-drape { 0%,100% { opacity: 0.6 } 50% { opacity: 1 } }
@keyframes hbd-shadow-fig { 0% { transform: translateY(0) rotate(0deg); opacity: 0.5 } 50% { transform: translateY(-5px) rotate(3deg); opacity: 1 } 100% { transform: translateY(0) rotate(0deg); opacity: 0.6 } }

/* Scene: doctor-advice-confession — dim interior, tense */
.scn-doctor-advice-confession {
  background: linear-gradient(180deg, #1a1310 0%, #2a1e1a 60%, #3a2a22 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a32 0%, transparent 70%);
}
.scn-doctor-advice-confession .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1e1a 0%, #3a2a22 50%, #2a1e1a 100%);
  border-radius: 0 0 20% 20%;
  animation: doc-wall 12s ease-in-out infinite alternate;
}
.scn-doctor-advice-confession .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1310 100%);
  border-radius: 20% 20% 0 0;
}
.scn-doctor-advice-confession .window {
  position: absolute; top: 15%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  border-radius: 4%;
  box-shadow: 0 0 20px 6px rgba(100,100,140,0.3);
  animation: doc-window 8s ease-in-out infinite alternate;
}
.scn-doctor-advice-confession .lamp {
  position: absolute; top: 20%; right: 25%; width: 20px; height: 40px;
  background: radial-gradient(circle, #b08040 0%, #6a4a2a 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(176,128,64,0.5);
  animation: doc-lamp 3s ease-in-out infinite alternate;
}
.scn-doctor-advice-confession .chair {
  position: absolute; bottom: 32%; left: 20%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 10% 10% 30% 30% / 10% 10% 60% 60%;
}
.scn-doctor-advice-confession .figure {
  position: absolute; bottom: 35%; left: 25%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1310 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: doc-figure 4s ease-in-out infinite;
}
.scn-doctor-advice-confession .clock {
  position: absolute; top: 12%; left: 55%; width: 40px; height: 40px;
  border-radius: 50%;
  background: radial-gradient(circle, #4a3a2a 0%, #2a1e1a 100%);
  border: 3px solid #5a4a3a;
  animation: doc-clock 2s ease-in-out infinite;
}
.scn-doctor-advice-confession .clock::before {
  content: ''; position: absolute; top: 50%; left: 50%; width: 2px; height: 15px;
  background: #b0a090; transform-origin: bottom center;
  animation: doc-clock-hand 60s linear infinite;
}
.scn-doctor-advice-confession .shadow {
  position: absolute; bottom: 0; left: 15%; width: 80px; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: doc-shadow 4s ease-in-out infinite alternate;
}
@keyframes doc-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes doc-window {
  0% { box-shadow: 0 0 15px 4px rgba(100,100,140,0.2); background: #3a3a5e; }
  50% { box-shadow: 0 0 30px 10px rgba(100,100,140,0.4); background: #5a5a7e; }
  100% { box-shadow: 0 0 20px 6px rgba(100,100,140,0.3); background: #4a4a6e; }
}
@keyframes doc-lamp {
  0% { opacity: 0.7; box-shadow: 0 0 20px 6px rgba(176,128,64,0.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 14px rgba(176,128,64,0.6); }
  100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(176,128,64,0.35); }
}
@keyframes doc-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(-3px) rotate(0deg); }
}
@keyframes doc-clock {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}
@keyframes doc-clock-hand {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes doc-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.95); }
}

/* Scene: voyage-and-simla-romance — sunlit warm, ship romance */
.scn-voyage-and-simla-romance {
  background: linear-gradient(180deg, #87CEEB 0%, #5fa8d3 40%, #3b82a0 70%, #1a5a7a 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,255,200,0.2) 0%, transparent 60%);
}
.scn-voyage-and-simla-romance .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #7bb8da 100%);
  animation: voy-sky 12s ease-in-out infinite alternate;
}
.scn-voyage-and-simla-romance .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  animation: voy-sea 8s ease-in-out infinite alternate;
}
.scn-voyage-and-simla-romance .ship {
  position: absolute; bottom: 40%; left: 20%; width: 150px; height: 50px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%;
  transform-origin: bottom center;
  animation: voy-ship 10s ease-in-out infinite;
}
.scn-voyage-and-simla-romance .sail-fore {
  position: absolute; bottom: 40%; left: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #f5f0e0 0%, #d0c8b0 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: voy-sail 6s ease-in-out infinite alternate;
}
.scn-voyage-and-simla-romance .sail-aft {
  position: absolute; bottom: 40%; left: 35%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #f5f0e0 0%, #c0b8a0 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: voy-sail 8s ease-in-out infinite alternate-reverse;
}
.scn-voyage-and-simla-romance .wave-1 {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20px;
  background: linear-gradient(90deg, transparent 0%, #2a7a9a 50%, transparent 100%);
  filter: blur(3px);
  border-radius: 50%;
  animation: voy-wave1 6s linear infinite;
}
.scn-voyage-and-simla-romance .wave-2 {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 15px;
  background: linear-gradient(90deg, transparent 0%, #1a6a8a 50%, transparent 100%);
  filter: blur(3px);
  border-radius: 50%;
  animation: voy-wave2 8s linear infinite reverse;
}
.scn-voyage-and-simla-romance .couple {
  position: absolute; bottom: 42%; left: 28%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: voy-couple 5s ease-in-out infinite;
}
.scn-voyage-and-simla-romance .sun {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd700 0%, #ffaa00 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,0.4);
  animation: voy-sun 4s ease-in-out infinite alternate;
}
@keyframes voy-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes voy-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes voy-ship {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes voy-sail {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.05) rotate(2deg); }
  100% { transform: scaleY(0.95) rotate(-2deg); }
}
@keyframes voy-wave1 {
  0% { transform: translateX(-10px); opacity: 0.6; }
  50% { transform: translateX(10px); opacity: 0.8; }
  100% { transform: translateX(-10px); opacity: 0.6; }
}
@keyframes voy-wave2 {
  0% { transform: translateX(10px); opacity: 0.5; }
  50% { transform: translateX(-10px); opacity: 0.7; }
  100% { transform: translateX(10px); opacity: 0.5; }
}
@keyframes voy-couple {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes voy-sun {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.85; }
}

/* Scene: guilt-and-hate — bright interior, dark mood */
.scn-guilt-and-hate {
  background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 50%, #1a0a2a 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a6a 0%, transparent 70%);
}
.scn-guilt-and-hate .wall-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a5a7a 0%, #4a3a5a 100%);
  border-radius: 0 0 20% 20%;
  animation: gui-wall 8s ease-in-out infinite alternate;
}
.scn-guilt-and-hate .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-guilt-and-hate .lamp {
  position: absolute; top: 15%; left: 38%; width: 25px; height: 35px;
  background: radial-gradient(circle, #ffeaa0 0%, #d0b080 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 40px 15px rgba(255,234,160,0.5);
  animation: gui-lamp 3s ease-in-out infinite alternate;
}
.scn-guilt-and-hate .table {
  position: absolute; bottom: 35%; left: 20%; width: 80px; height: 40px;
  background: linear-gradient(90deg, #3a2a4a 0%, #4a3a5a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
}
.scn-guilt-and-hate .glass {
  position: absolute; bottom: 38%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c0b8d0 0%, #9088a0 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  animation: gui-glass 6s ease-in-out infinite alternate;
}
.scn-guilt-and-hate .figure {
  position: absolute; bottom: 30%; left: 25%; width: 35px; height: 90px;
  background: linear-gradient(180deg, #1a0a2a 0%, #0a0515 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gui-figure 5s ease-in-out infinite;
}
.scn-guilt-and-hate .shadow {
  position: absolute; bottom: 0; left: 22%; width: 100px; height: 25px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(10px);
  animation: gui-shadow 5s ease-in-out infinite alternate;
}
.scn-guilt-and-hate .breath {
  position: absolute; top: 35%; left: 28%; width: 15px; height: 15px;
  background: rgba(200,180,220,0.1);
  border-radius: 50%;
  filter: blur(5px);
  animation: gui-breath 4s ease-in-out infinite;
}
@keyframes gui-wall {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes gui-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 30px 10px rgba(255,234,160,0.3); }
  50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(255,234,160,0.6); }
  100% { opacity: 0.85; box-shadow: 0 0 35px 12px rgba(255,234,160,0.4); }
}
@keyframes gui-glass {
  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(-1px) rotate(0deg); }
}
@keyframes gui-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes gui-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.15); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes gui-breath {
  0% { transform: scale(0.8); opacity: 0; }
  50% { transform: scale(1.2); opacity: 0.3; }
  100% { transform: scale(0.8); opacity: 0; }
}

/* Scene: agnes-breakdown-rickshaw — overcast tense */
.scn-agnes-breakdown-rickshaw {
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 30%, #3a3a4a 70%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 0%, #7a7a8a 0%, transparent 70%);
}
.scn-agnes-breakdown-rickshaw .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #5a5a6a 100%);
  animation: agn-sky 12s ease-in-out infinite alternate;
}
.scn-agnes-breakdown-rickshaw .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-agnes-breakdown-rickshaw .rickshaw {
  position: absolute; bottom: 18%; left: 35%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform-origin: bottom center;
  animation: agn-rickshaw 2s ease-in-out infinite;
}
.scn-agnes-breakdown-rickshaw .canopy {
  position: absolute; bottom: 38%; left: 32%; width: 130px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  animation: agn-canopy 3s ease-in-out infinite alternate;
}
.scn-agnes-breakdown-rickshaw .wheel-l {
  position: absolute; bottom: 10%; left: 30%; width: 35px; height: 35px;
  background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%;
  border: 3px solid #4a3a3a;
  animation: agn-wheel 0.8s linear infinite;
}
.scn-agnes-breakdown-rickshaw .wheel-r {
  position: absolute; bottom: 10%; left: 50%; width: 35px; height: 35px;
  background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%;
  border: 3px solid #4a3a3a;
  animation: agn-wheel 0.8s linear infinite reverse;
}
.scn-agnes-breakdown-rickshaw .agnes {
  position: absolute; bottom: 30%; left: 38%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: agn-agnes 1.5s ease-in-out infinite alternate;
}
.scn-agnes-breakdown-rickshaw .tears {
  position: absolute; bottom: 40%; left: 42%; width: 5px; height: 10px;
  background: radial-gradient(circle, #7a8a9a 0%, transparent 70%);
  border-radius: 50%;
  animation: agn-tears 0.5s linear infinite;
}
@keyframes agn-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes agn-rickshaw {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes agn-canopy {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(1.02) rotate(2deg); }
  100% { transform: scaleX(0.98) rotate(-2deg); }
}
@keyframes agn-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes agn-agnes {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(2px) rotate(-3deg); }
  100% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes agn-tears {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(15px) scale(1.2); opacity: 0.2; }
  100% { transform: translateY(30px) scale(0.8); opacity: 0; }
}

/* hysterical-confession */
.scn-hysterical-confession {
  background: linear-gradient(180deg, #f2e6d0 0%, #d4c0a0 40%, #8b7a5e 100%),
              radial-gradient(ellipse at 30% 60%, #fdf4e0 0%, transparent 60%);
}
.scn-hysterical-confession .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #b8a88a 0%, #9a8a6e 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.15);
  animation: hc-wall 14s ease-in-out infinite alternate;
}
.scn-hysterical-confession .window {
  position: absolute; top: 12%; left: 18%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 60%, #fff8e0 0%, #d4c090 70%);
  border: 4px solid #6a5a3e; border-radius: 4px;
  box-shadow: 0 0 50px 20px rgba(255,240,200,.6), inset 0 0 20px #fff;
  animation: hc-window 6s ease-in-out infinite alternate;
}
.scn-hysterical-confession .sunbeam {
  position: absolute; top: 20%; left: 22%; width: 120px; height: 60%;
  background: linear-gradient(135deg, rgba(255,240,180,.25) 0%, transparent 100%);
  filter: blur(8px); transform: skewX(-10deg);
  animation: hc-beam 8s ease-in-out infinite alternate;
}
.scn-hysterical-confession .figure-jack {
  position: absolute; bottom: 22%; left: 30%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-jack 2s ease-in-out infinite;
}
.scn-hysterical-confession .figure-kitty {
  position: absolute; bottom: 18%; right: 25%; width: 44px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: hc-kitty 3s ease-in-out infinite;
}
.scn-hysterical-confession .shadow-jack {
  position: absolute; bottom: 15%; left: 28%; width: 60px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  animation: hc-shadow 2s ease-in-out infinite;
}
.scn-hysterical-confession .shadow-kitty {
  position: absolute; bottom: 12%; right: 22%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%);
  animation: hc-shadow 3s ease-in-out infinite reverse;
}
.scn-hysterical-confession .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 20% 30%, rgba(255,240,200,.08) 0%, transparent 50%),
              radial-gradient(circle at 80% 70%, rgba(255,240,200,.05) 0%, transparent 50%);
  filter: blur(6px);
  animation: hc-dust 20s linear infinite;
}
@keyframes hc-wall {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes hc-window {
  0% { box-shadow: 0 0 30px 10px rgba(255,240,200,.5); }
  50% { box-shadow: 0 0 60px 25px rgba(255,240,200,.7); }
  100% { box-shadow: 0 0 40px 15px rgba(255,240,200,.55); }
}
@keyframes hc-beam {
  0% { opacity: .6; transform: skewX(-10deg) scaleY(1); }
  50% { opacity: 1; transform: skewX(-8deg) scaleY(1.05); }
  100% { opacity: .7; transform: skewX(-12deg) scaleY(.95); }
}
@keyframes hc-jack {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(0) rotate(-3deg); }
  75% { transform: translateX(-5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hc-kitty {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hc-shadow {
  0% { transform: scaleX(1); opacity: .6; }
  50% { transform: scaleX(1.1); opacity: .8; }
  100% { transform: scaleX(1); opacity: .6; }
}
@keyframes hc-dust {
  0% { background-position: 0 0, 0 0; }
  100% { background-position: 200px 100px, -100px 50px; }
}

/* final-breakup */
.scn-final-breakup {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #e8d080 100%),
              radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 60%);
}
.scn-final-breakup .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0d4f0 0%, #f8e0a0 100%);
  animation: fb-sky 15s ease-in-out infinite alternate;
}
.scn-final-breakup .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 6px;
  background: linear-gradient(90deg, transparent 0%, #c0b070 50%, transparent 100%);
  filter: blur(2px);
  animation: fb-horizon 20s linear infinite;
}
.scn-final-breakup .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b8a060 0%, #8a7a40 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
  animation: fb-ground 12s ease-in-out infinite alternate;
}
.scn-final-breakup .carriage-body {
  position: absolute; bottom: 30%; left: 40%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: fb-carriage 5s ease-in-out infinite;
}
.scn-final-breakup .wheel {
  position: absolute; bottom: 26%; left: 38%; width: 30px; height: 30px;
  border: 4px solid #3a2a1a; border-radius: 50%;
  background: radial-gradient(circle, #5a4a2a 0%, #2a1a0a 100%);
  animation: fb-wheel .8s linear infinite;
}
.scn-final-breakup .figure-kitty {
  position: absolute; bottom: 35%; left: 44%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #f0e8d0 0%, #c0b8a0 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.3));
  animation: fb-kitty 4s ease-in-out infinite alternate;
}
.scn-final-breakup .figure-jack {
  position: absolute; bottom: 35%; left: 52%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: fb-jack 6s ease-in-out infinite alternate;
}
.scn-final-breakup .horse {
  position: absolute; bottom: 28%; left: 55%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 60% 50%, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 50% 30% 30% / 60% 50% 40% 40%;
  transform: rotate(-5deg);
  animation: fb-horse 2s ease-in-out infinite;
}
.scn-final-breakup .dust-sparkle {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 40px;
  background: radial-gradient(circle at 50% 50%, rgba(255,215,0,.15) 0%, transparent 70%);
  filter: blur(4px);
  animation: fb-dust 3s ease-in-out infinite alternate;
}
@keyframes fb-sky {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes fb-horizon {
  0% { transform: translateX(0); opacity: .5; }
  50% { transform: translateX(20px); opacity: .7; }
  100% { transform: translateX(0); opacity: .5; }
}
@keyframes fb-ground {
  0% { background-position: 0 0; }
  100% { background-position: 40px 0; }
}
@keyframes fb-carriage {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes fb-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes fb-kitty {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-4px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes fb-jack {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes fb-horse {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(6px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes fb-dust {
  0% { opacity: .3; transform: scale(1); }
  100% { opacity: .6; transform: scale(1.2); }
}

/* heatherlegh-consolation */
.scn-heatherlegh-consolation {
  background: linear-gradient(180deg, #d4c8b0 0%, #b8a88a 50%, #8a7a5e 100%),
              radial-gradient(ellipse at 40% 50%, #f0e0c0 0%, transparent 70%);
}
.scn-heatherlegh-consolation .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8b898 0%, #a89878 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.1);
  animation: hl-room 20s ease-in-out infinite alternate;
}
.scn-heatherlegh-consolation .window {
  position: absolute; top: 10%; left: 70%; width: 70px; height: 90px;
  background: radial-gradient(circle at 50% 50%, #fffbe6 0%, #d4c090 80%);
  border: 3px solid #6a5a3e; border-radius: 3px;
  box-shadow: 0 0 40px 15px rgba(255,240,180,.5);
  animation: hl-window 7s ease-in-out infinite alternate;
}
.scn-heatherlegh-consolation .desk {
  position: absolute; bottom: 25%; right: 10%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: hl-desk 10s ease-in-out infinite alternate;
}
.scn-heatherlegh-consolation .figure-jack {
  position: absolute; bottom: 18%; left: 20%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: hl-jack 4s ease-in-out infinite;
}
.scn-heatherlegh-consolation .figure-heatherlegh {
  position: absolute; bottom: 20%; right: 20%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: hl-heather 5s ease-in-out infinite alternate;
}
.scn-heatherlegh-consolation .chair {
  position: absolute; bottom: 18%; left: 5%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6a5a3e 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  animation: hl-chair 12s ease-in-out infinite;
}
.scn-heatherlegh-consolation .shadow-desktop {
  position: absolute; bottom: 20%; right: 8%; width: 130px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%);
  animation: hl-shadow 6s ease-in-out infinite alternate;
}
.scn-heatherlegh-consolation .lamp-glow {
  position: absolute; top: 8%; left: 60%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(255,208,128,.5);
  animation: hl-lamp 3s ease-in-out infinite alternate;
}
@keyframes hl-room {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes hl-window {
  0% { box-shadow: 0 0 30px 10px rgba(255,240,180,.4); }
  50% { box-shadow: 0 0 50px 20px rgba(255,240,180,.6); }
  100% { box-shadow: 0 0 35px 12px rgba(255,240,180,.45); }
}
@keyframes hl-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hl-jack {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-3px) rotate(-4deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(3px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hl-heather {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hl-chair {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes hl-shadow {
  0% { opacity: .4; transform: scaleX(1); }
  100% { opacity: .7; transform: scaleX(1.1); }
}
@keyframes hl-lamp {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: .7; transform: scale(1); }
}

/* sickbed-and-letters */
.scn-sickbed-and-letters {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 70%);
}
.scn-sickbed-and-letters .bg-cell {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e0e1a 0%, #1e1e2a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.5);
  animation: sl-bg 30s ease-in-out infinite alternate;
}
.scn-sickbed-and-letters .bed {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: sl-bed 12s ease-in-out infinite alternate;
}
.scn-sickbed-and-letters .pillow {
  position: absolute; bottom: 35%; left: 20%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, #c0b8a8 0%, #a09880 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: sl-pillow 8s ease-in-out infinite alternate;
}
.scn-sickbed-and-letters .figure-jack {
  position: absolute; bottom: 28%; left: 18%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: sl-figure 6s ease-in-out infinite;
}
.scn-sickbed-and-letters .letter-a {
  position: absolute; bottom: 12%; left: 25%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 2px;
  transform: rotate(-20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: sl-letterA 15s ease-in-out infinite alternate;
}
.scn-sickbed-and-letters .letter-b {
  position: absolute; bottom: 8%; left: 35%; width: 35px; height: 25px;
  background: linear-gradient(135deg, #e8d8b8 0%, #c8b898 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: sl-letterB 20s ease-in-out infinite alternate-reverse;
}
.scn-sickbed-and-letters .candle {
  position: absolute; bottom: 45%; right: 20%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a060 100%);
  border-radius: 2px 2px 2px 2px;
  box-shadow: 0 0 30px 15px rgba(255,200,100,.5);
  animation: sl-candle 4s ease-in-out infinite alternate;
}
.scn-sickbed-and-letters .shadow-pool {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.3) 0%, transparent 70%);
  animation: sl-shadow 10s ease-in-out infinite alternate;
}
@keyframes sl-bg {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes sl-bed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes sl-pillow {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.05) translateY(-2px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes sl-figure {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(17deg) translateY(-2px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes sl-letterA {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-18deg) translateX(3px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes sl-letterB {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(4px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes sl-candle {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: .8; transform: scaleY(1); }
}
@keyframes sl-shadow {
  0% { opacity: .4; }
  100% { opacity: .7; }
}

/* Scene: discharge-and-advice (warm interior) */
.scn-discharge-and-advice {
  background: linear-gradient(180deg, #f5e6c8 0%, #c8a87c 40%, #8c6a4a 100%),
              radial-gradient(ellipse at 50% 20%, #ffe0b0 0%, transparent 60%);
}
.scn-discharge-and-advice .bg-da          { position:absolute; inset:0; }
.scn-discharge-and-advice .desk-da        { position:absolute; bottom:10%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: da-desk 6s ease-in-out infinite alternate; }
.scn-discharge-and-advice .window-da      { position:absolute; top:5%; right:10%; width:25%; height:30%; background: linear-gradient(180deg, #b0d0e0 0%, #8ab0c0 100%); border-radius:8px; box-shadow: inset 0 0 20px rgba(255,255,200,.6); animation: da-window 8s ease-in-out infinite alternate; }
.scn-discharge-and-advice .lamp-da        { position:absolute; bottom:30%; left:30%; width:30px; height:40px; background: radial-gradient(circle, #ffe080 0%, #d09040 70%); border-radius:50%; box-shadow: 0 0 40px 15px #ffd060, 0 0 80px 30px rgba(255,208,96,.3); animation: da-lamp 3s ease-in-out infinite alternate; }
.scn-discharge-and-advice .doctor-da      { position:absolute; bottom:14%; left:25%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da-fig 5s ease-in-out infinite; }
.scn-discharge-and-advice .patient-da     { position:absolute; bottom:14%; left:55%; width:28px; 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: da-fig 5s ease-in-out infinite reverse; }
@keyframes da-desk   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes da-window { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes da-lamp   { 0% { box-shadow: 0 0 30px 10px #ffd060, 0 0 60px 20px rgba(255,208,96,.3); opacity:.8 } 50% { box-shadow: 0 0 50px 20px #ffe080, 0 0 100px 40px rgba(255,224,128,.5); opacity:1 } 100% { box-shadow: 0 0 35px 12px #ffd060, 0 0 70px 25px rgba(255,208,96,.35); opacity:.9 } }
@keyframes da-fig    { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(0deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }

/* Scene: happy-return-kitty (sunlit ride) */
.scn-happy-return-kitty {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #90ee90 100%),
              radial-gradient(circle at 20% 30%, #ffd700 0%, transparent 40%);
}
.scn-happy-return-kitty .sky-hk      { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #add8e6 0%, transparent 100%); animation: hk-sky 15s ease-in-out infinite alternate; }
.scn-happy-return-kitty .hills-hk    { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius:40% 60% 0 0 / 80% 70% 0 0; animation: hk-hills 20s ease-in-out infinite alternate; }
.scn-happy-return-kitty .path-hk     { position:absolute; bottom:15%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #c4a882 0%, #8b7355 100%); border-radius:30% 30% 0 0; transform: perspective(200px) rotateX(60deg); animation: hk-path 12s ease-in-out infinite; }
.scn-happy-return-kitty .horse-hk    { position:absolute; bottom:20%; left:40%; width:50px; height:30px; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: hk-horse 4s ease-in-out infinite; }
.scn-happy-return-kitty .rider-hk    { position:absolute; bottom:28%; left:43%; width:20px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hk-rider 4s ease-in-out infinite; }
.scn-happy-return-kitty .sun-hk      { position:absolute; top:8%; left:18%; width:50px; height:50px; background: radial-gradient(circle, #fffacd 0%, #ffd700 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffd700, 0 0 120px 40px rgba(255,215,0,.3); animation: hk-sun 6s ease-in-out infinite alternate; }
.scn-happy-return-kitty .cloud-hk-a  { position:absolute; top:15%; left:10%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(4px); animation: hk-drift 30s linear infinite; }
.scn-happy-return-kitty .cloud-hk-b  { position:absolute; top:25%; right:20%; width:50px; height:12px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.05) 100%); border-radius:50%; filter: blur(3px); animation: hk-drift 40s linear infinite reverse; animation-delay:-10s; }
@keyframes hk-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes hk-hills  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hk-path   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes hk-horse  { 0% { transform: translateX(0) rotate(-1deg) scaleY(1) } 25% { transform: translateX(8px) rotate(1deg) scaleY(0.98) } 50% { transform: translateX(16px) rotate(-1deg) scaleY(1) } 75% { transform: translateX(24px) rotate(1deg) scaleY(0.98) } 100% { transform: translateX(32px) rotate(0deg) scaleY(1) } }
@keyframes hk-rider  { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(0deg) } 50% { transform: translateX(16px) rotate(2deg) } 75% { transform: translateX(24px) rotate(0deg) } 100% { transform: translateX(32px) rotate(-2deg) } }
@keyframes hk-sun    { 0% { box-shadow: 0 0 50px 15px #ffd700, 0 0 100px 30px rgba(255,215,0,.2); opacity:.9 } 50% { box-shadow: 0 0 80px 25px #fff8dc, 0 0 160px 50px rgba(255,248,220,.4); opacity:1 } 100% { box-shadow: 0 0 60px 20px #ffd700, 0 0 120px 40px rgba(255,215,0,.3); opacity:.95 } }
@keyframes hk-drift  { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

/* Scene: playful-cantering (bucking horse) */
.scn-playful-cantering {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #90ee90 100%),
              radial-gradient(circle at 80% 40%, #ffd700 0%, transparent 50%);
}
.scn-playful-cantering .sky-pc     { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0f0 0%, transparent 100%); animation: pc-sky 10s ease-in-out infinite alternate; }
.scn-playful-cantering .road-pc    { position:absolute; bottom:10%; left:0; right:0; height:25%; background: linear-gradient(180deg, #a0825a 0%, #6b5030 100%); border-radius:10% 10% 0 0; animation: pc-road 5s ease-in-out infinite; }
.scn-playful-cantering .convent-pc { position:absolute; bottom:30%; right:10%; width:80px; height:60px; background: linear-gradient(180deg, #f0e0c8 0%, #c0a080 100%); border-radius:4px; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: pc-convent 14s ease-in-out infinite alternate; }
.scn-playful-cantering .horse-pc   { position:absolute; bottom:18%; left:35%; width:50px; height:25px; background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: pc-horse 2s ease-in-out infinite; }
.scn-playful-cantering .rider-pc   { position:absolute; bottom:25%; left:38%; width:18px; height:28px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc-rider 2s ease-in-out infinite; }
.scn-playful-cantering .dust-pc-a  { position:absolute; bottom:15%; left:45%; width:20px; height:12px; background: radial-gradient(circle, #c0a080 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: pc-dust 1.5s ease-out infinite; }
.scn-playful-cantering .dust-pc-b  { position:absolute; bottom:13%; left:50%; width:16px; height:10px; background: radial-gradient(circle, #c0a080 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: pc-dust 1.5s ease-out infinite; animation-delay:0.75s; }
@keyframes pc-sky     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes pc-road    { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } }
@keyframes pc-convent { 0% { transform: scale(1) } 50% { transform: scale(0.98) } 100% { transform: scale(1) } }
@keyframes pc-horse   { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 25% { transform: translateX(5px) rotate(10deg) scaleY(0.9) } 50% { transform: translateX(10px) rotate(0deg) scaleY(1) } 75% { transform: translateX(15px) rotate(-10deg) scaleY(0.9) } 100% { transform: translateX(20px) rotate(0deg) scaleY(1) } }
@keyframes pc-rider   { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(5px) rotate(5deg) } 50% { transform: translateX(10px) rotate(-5deg) } 75% { transform: translateX(15px) rotate(5deg) } 100% { transform: translateX(20px) rotate(-5deg) } }
@keyframes pc-dust    { 0% { transform: translateY(0) scale(1); opacity:1 } 100% { transform: translateY(-20px) scale(2); opacity:0 } }

/* Scene: ghost-returns-sanjowlie (sunlit encounter) */
.scn-ghost-returns-sanjowlie {
  background: linear-gradient(180deg, #b0c4de 0%, #e0e8f0 50%, #f5f5dc 100%),
              radial-gradient(ellipse at 20% 30%, #fffacd 0%, transparent 40%);
}
.scn-ghost-returns-sanjowlie .sky-gr        { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8d8e8 0%, transparent 100%); animation: gr-sky 12s ease-in-out infinite alternate; }
.scn-ghost-returns-sanjowlie .road-gr       { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #b8a890 0%, #8a7a6a 100%); border-radius:20% 20% 0 0; animation: gr-road 6s ease-in-out infinite; }
.scn-ghost-returns-sanjowlie .rickshaw-gr   { position:absolute; bottom:22%; left:45%; width:60px; height:40px; background: linear-gradient(90deg, #1a1a1a 0%, #3a3a3a 30%, #d4a837 50%, #f0c860 70%, #3a3a3a 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: gr-rickshaw 8s ease-in-out infinite alternate; }
.scn-ghost-returns-sanjowlie .ghost-gr      { position:absolute; bottom:20%; left:30%; width:24px; height:50px; background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, rgba(200,200,220,.4) 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); box-shadow: 0 0 40px 10px rgba(255,255,255,.3); animation: gr-ghost 2s ease-in-out infinite alternate; }
.scn-ghost-returns-sanjowlie .tree-gr-l     { position:absolute; bottom:20%; left:8%; width:40px; height:80px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: gr-tree 9s ease-in-out infinite alternate; }
.scn-ghost-returns-sanjowlie .tree-gr-r     { position:absolute; bottom:22%; right:8%; width:35px; height:70px; background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: gr-tree 11s ease-in-out infinite alternate-reverse; }
.scn-ghost-returns-sanjowlie .leaves-gr     { position:absolute; top:10%; left:0; right:0; height:100px; background: linear-gradient(180deg, transparent 0%, rgba(80,120,60,.3) 50%, transparent 100%); filter: blur(8px); animation: gr-leaves 5s ease-in-out infinite; }
@keyframes gr-sky       { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes gr-road      { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }
@keyframes gr-rickshaw  { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes gr-ghost     { 0% { opacity:.6; transform: translateY(0) scaleY(1) } 50% { opacity:.9; transform: translateY(-4px) scaleY(1.1) } 100% { opacity:.5; transform: translateY(2px) scaleY(0.95) } }
@keyframes gr-tree      { 0% { transform: rotate(-2deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.03) } 100% { transform: rotate(-2deg) scaleX(1) } }
@keyframes gr-leaves    { 0% { transform: translateY(0) } 50% { transform: translateY(5px) } 100% { transform: translateY(0) } }

/* Scene: kadir-baksh-confession – funny, sunlit interior */
.scn-kadir-baksh-confession {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #c2a27a 100%),
              radial-gradient(ellipse at 50% 30%, #fef0d8 0%, transparent 70%);
}
.scn-kadir-baksh-confession .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #e3cfb0 0%, #f2e0c5 50%, #ddd0b0 100%);
}
.scn-kadir-bsh-confession .window {
  position: absolute; top: 12%; left: 25%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #b8d8f0 0%, #8bb5d0 100%);
  border: 4px solid #8a6c42; border-radius: 4px;
  box-shadow: inset 0 0 12px rgba(255,240,200,0.6);
  animation: kb-window 12s ease-in-out infinite alternate;
}
.scn-kadir-baksh-confession .sunbeam {
  position: absolute; top: 6%; left: 25%; width: 20px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 80%);
  filter: blur(6px);
  animation: kb-sunbeam 14s ease-in-out infinite alternate;
}
.scn-kadir-baksh-confession .figure {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #4a3c2a 0%, #2a1e12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kb-figure 3s ease-in-out infinite;
}
.scn-kadir-baksh-confession .mosquito-net {
  position: absolute; bottom: 30%; left: 35%; width: 80px; height: 50px;
  background: radial-gradient(ellipse, rgba(240,230,210,0.3) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: kb-net 5s ease-in-out infinite alternate;
}
.scn-kadir-baksh-confession .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(0deg, #b8956a 0%, #d4b080 100%);
  border-radius: 20% 20% 0 0;
}
@keyframes kb-window {
  0%,100% { opacity: 0.85; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
}
@keyframes kb-sunbeam {
  0% { transform: translateX(-5px) rotate(-2deg); opacity: 0.6; }
  50% { transform: translateX(3px) rotate(1deg); opacity: 0.8; }
  100% { transform: translateX(-2px) rotate(0deg); opacity: 0.7; }
}
@keyframes kb-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(6px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(9px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(12px) translateY(0) rotate(0deg); }
}
@keyframes kb-net {
  0% { transform: scaleY(1) rotate(-3deg); }
  50% { transform: scaleY(1.04) rotate(2deg); }
  100% { transform: scaleY(0.98) rotate(-1deg); }
}

/* Scene: ruined-ghost-story – funny, dim interior */
.scn-ruined-ghost-story {
  background: linear-gradient(180deg, #1a1713 0%, #2a2218 40%, #1e1a14 100%),
              radial-gradient(ellipse at 50% 70%, #31261a 0%, transparent 60%);
}
.scn-ruined-ghost-story .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #2c2520 0%, #3d3228 100%);
}
.scn-ruined-ghost-story .window-shutter {
  position: absolute; top: 20%; right: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a4632 0%, #3a2c22 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 8px #1a1410;
  animation: rg-shutter 6s ease-in-out infinite alternate;
}
.scn-ruined-ghost-story .candle {
  position: absolute; bottom: 40%; left: 20%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d4a060 80%, #8a6020 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 6px #ffd080;
  animation: rg-candle 2s ease-in-out infinite alternate;
}
.scn-ruined-ghost-story .rat {
  position: absolute; bottom: 30%; left: 60%; width: 24px; height: 12px;
  background: radial-gradient(ellipse, #4a4040 0%, #2a2220 100%);
  border-radius: 50% 50% 40% 40%;
  animation: rg-rat 4s linear infinite;
}
.scn-ruined-ghost-story .bed {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #6a5240 0%, #3a2a1e 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-ruined-ghost-story .figure {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a1e16 0%, #14100c 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rg-figure 8s ease-in-out infinite;
}
@keyframes rg-shutter {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(4deg); }
  60% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes rg-candle {
  0% { opacity: 0.8; box-shadow: 0 0 15px 4px #ffd080; transform: scaleY(0.95); }
  50% { opacity: 1; box-shadow: 0 0 25px 8px #ffe090; transform: scaleY(1.02); }
  100% { opacity: 0.85; box-shadow: 0 0 18px 5px #ffd080; transform: scaleY(0.98); }
}
@keyframes rg-rat {
  0% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(30px) rotate(3deg); }
  40% { transform: translateX(50px) rotate(-2deg); }
  60% { transform: translateX(60px) rotate(4deg); }
  80% { transform: translateX(70px) rotate(-1deg); }
  100% { transform: translateX(80px) rotate(0deg); }
}
@keyframes rg-figure {
  0%,100% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.03) translateY(-2px); }
}

/* Scene: morrowbie-jukes-intro – tense, moonlit landscape */
.scn-morrowbie-jukes-intro {
  background: linear-gradient(180deg, #060a12 0%, #0e1628 40%, #18243a 100%),
              radial-gradient(ellipse at 50% 15%, #3a4a6a 0%, transparent 70%);
}
.scn-morrowbie-jukes-intro .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0e1a30 0%, #182840 100%);
  animation: mj-sky 20s ease-in-out infinite alternate;
}
.scn-morrowbie-jukes-intro .moon {
  position: absolute; top: 8%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d0e8ff 0%, #8bb0d0 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #8bb0d0, 0 0 80px 24px rgba(80,120,180,0.3);
  animation: mj-moon 6s ease-in-out infinite alternate;
}
.scn-morrowbie-jukes-intro .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2238 0%, #0a1220 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-morrowbie-jukes-intro .dead-tree {
  position: absolute; bottom: 35%; left: 15%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0c0c04 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: inset 0 0 4px #2a2a0a;
  transform: rotate(-5deg);
  animation: mj-tree 8s ease-in-out infinite;
}
.scn-morrowbie-jukes-intro .horse {
  position: absolute; bottom: 22%; left: 35%; width: 60px; height: 35px;
  background: linear-gradient(180deg, #0c121c 0%, #04060c 100%);
  border-radius: 40% 30% 50% 20% / 60% 40% 50% 30%;
  transform-origin: center bottom;
  animation: mj-horse 1.5s ease-in-out infinite;
}
.scn-morrowbie-jukes-intro .rider {
  position: absolute; bottom: 42%; left: 37%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #0a0e18 0%, #020408 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mj-rider 1.5s ease-in-out infinite;
}
.scn-morrowbie-jukes-intro .cloud {
  position: absolute; top: 18%; right: 20%; width: 70px; height: 12px;
  background: linear-gradient(180deg, rgba(200,220,240,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mj-cloud 40s linear infinite;
}
@keyframes mj-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes mj-moon {
  0% { box-shadow: 0 0 30px 8px #8bb0d0; opacity: 0.9; }
  50% { box-shadow: 0 0 60px 18px #aac0e0; opacity: 1; }
  100% { box-shadow: 0 0 40px 12px #8bb0d0; opacity: 0.92; }
}
@keyframes mj-tree {
  0%,100% { transform: rotate(-5deg); }
  50% { transform: rotate(-7deg); }
}
@keyframes mj-horse {
  0% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1); }
  25% { transform: translateX(4px) translateY(-2px) rotate(2deg) scaleX(1.02); }
  50% { transform: translateX(8px) translateY(0) rotate(0deg) scaleX(1); }
  75% { transform: translateX(12px) translateY(-1px) rotate(-1deg) scaleX(0.98); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes mj-rider {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  25% { transform: translateX(4px) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-2px) rotate(3deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes mj-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

/* Scene: fever-chase – tense, moonlit chase */
.scn-fever-chase {
  background: linear-gradient(180deg, #0a101c 0%, #101c30 40%, #1a2a44 100%),
              radial-gradient(ellipse at 50% 10%, #2a3a58 0%, transparent 70%);
}
.scn-fever-chase .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #142238 0%, #0c1628 100%);
  animation: fc-sky 15s ease-in-out infinite alternate;
}
.scn-fever-chase .moon {
  position: absolute; top: 10%; right: 25%; width: 35px; height: 35px;
  background: radial-gradient(circle, #d8ecff 0%, #a0b8d8 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #a0b8d8, 0 0 60px 20px rgba(80,110,160,0.3);
  animation: fc-moon 5s ease-in-out infinite alternate;
}
.scn-fever-chase .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #18222e 0%, #0c1218 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-fever-chase .horse {
  position: absolute; bottom: 20%; left: 20%; width: 55px; height: 32px;
  background: linear-gradient(180deg, #101620 0%, #060a10 100%);
  border-radius: 45% 35% 50% 25% / 60% 45% 55% 30%;
  transform-origin: center bottom;
  animation: fc-horse 1.2s ease-in-out infinite;
}
.scn-fever-chase .rider {
  position: absolute; bottom: 38%; left: 22%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #0c121c 0%, #020408 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fc-rider 1.2s ease-in-out infinite;
}
.scn-fever-chase .dog {
  position: absolute; bottom: 18%; left: 65%; width: 28px; height: 18px;
  background: radial-gradient(ellipse, #1a1a1a 0%, #0c0c0c 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: center bottom;
  animation: fc-dog 0.9s ease-in-out infinite;
}
.scn-fever-chase .cloud {
  position: absolute; top: 12%; left: 10%; width: 50px; height: 10px;
  background: linear-gradient(180deg, rgba(180,200,230,0.25) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fc-cloud 35s linear infinite;
}
@keyframes fc-sky {
  0% { opacity: 0.75; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes fc-moon {
  0% { box-shadow: 0 0 25px 8px #a0b8d8; opacity: 0.85; }
  50% { box-shadow: 0 0 45px 14px #b8c8e0; opacity: 1; }
  100% { box-shadow: 0 0 30px 10px #a0b8d8; opacity: 0.9; }
}
@keyframes fc-horse {
  0% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1); }
  25% { transform: translateX(6px) translateY(-2px) rotate(2deg) scaleX(1.03); }
  50% { transform: translateX(12px) translateY(0) rotate(0deg) scaleX(1); }
  75% { transform: translateX(18px) translateY(-1px) rotate(-1deg) scaleX(0.97); }
  100% { transform: translateX(24px) translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes fc-rider {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  25% { transform: translateX(6px) translateY(-3px) rotate(3deg); }
  50% { transform: translateX(12px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(18px) translateY(-2px) rotate(4deg); }
  100% { transform: translateX(24px) translateY(0) rotate(0deg); }
}
@keyframes fc-dog {
  0% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1); }
  30% { transform: translateX(-4px) translateY(-2px) rotate(-3deg) scaleX(0.96); }
  60% { transform: translateX(-8px) translateY(0) rotate(2deg) scaleX(1.04); }
  100% { transform: translateX(-12px) translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes fc-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(100vw); }
}

.scn-death-agnes-and-engagement {
  background: linear-gradient(180deg, #4a5568 0%, #2d3748 50%, #1a202c 100%), radial-gradient(ellipse at 20% 80%, #4a5568 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-death-agnes-and-engagement .sky-storm { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #718096 0%, #4a5568 100%); animation: dae-sky 8s ease-in-out infinite alternate; }
.scn-death-agnes-and-engagement .cliffs-dark { position:absolute; bottom:15%; left:0; width:100%; height:45%; background: linear-gradient(135deg, #1a202c 0%, #0d131a 100%); clip-path: polygon(0% 100%, 0% 30%, 12% 25%, 25% 40%, 40% 20%, 55% 35%, 70% 15%, 85% 30%, 100% 25%, 100% 100%); animation: dae-cliff 20s ease-in-out infinite alternate; }
.scn-death-agnes-and-engagement .pines-rear { position:absolute; bottom:30%; left:5%; width:20%; height:35%; background: #1a2520; clip-path: polygon(50% 0%, 20% 60%, 40% 60%, 10% 100%, 90% 100%, 60% 60%, 80% 60%); transform: scale(.8); opacity:.7; animation: dae-sway 12s ease-in-out infinite; }
.scn-death-agnes-and-engagement .pines-fore { position:absolute; bottom:20%; right:10%; width:30%; height:50%; background: #0d131a; clip-path: polygon(50% 0%, 20% 60%, 40% 60%, 10% 100%, 90% 100%, 60% 60%, 80% 60%); transform-origin: bottom center; animation: dae-sway 15s ease-in-out infinite reverse; }
.scn-death-agnes-and-engagement .road-mud { position:absolute; bottom:10%; left:-10%; width:120%; height:20%; background: linear-gradient(180deg, #4a3b32 0%, #2d221c 100%); border-radius: 50% 20% 0 0 / 80% 40% 0 0; transform: rotate(-2deg); }
.scn-death-agnes-and-engagement .rickshaw-yellow { position:absolute; bottom:18%; left:40%; width:110px; height:80px; background: linear-gradient(135deg, #d69a4a 0%, #b87a2a 50%, #8c5a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: dae-rattle 4s ease-in-out infinite; }
.scn-death-agnes-and-engagement .figure-bowed { position:absolute; bottom:18%; left:46%; width:16px; height:55px; background: linear-gradient(180deg, #1a202c 0%, #0d131a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dae-bow 6s ease-in-out infinite; }
.scn-death-agnes-and-engagement .rain-lash { position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent, transparent 2px, rgba(200,210,220,.15) 2px, rgba(200,210,220,.15) 4px); animation: dae-rain 0.4s linear infinite; }
@keyframes dae-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dae-cliff { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes dae-sway { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes dae-rattle { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(2px) translateY(-1px) } 75% { transform: translateX(-2px) translateY(1px) } 100% { transform: translateX(0) } }
@keyframes dae-bow { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(8px) rotate(-3deg) } 70% { transform: translateX(16px) rotate(2deg) } 100% { transform: translateX(24px) rotate(0deg) } }
@keyframes dae-rain { 0% { background-position: 0 0 } 100% { background-position: 8px 8px } }

.scn-item-sapphire-ring-measurement {
  background: linear-gradient(180deg, #fdfbf7 0%, #e8dcc8 50%, #d4c4a9 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-item-sapphire-ring-measurement .interior-walls { position:absolute; inset:0; background: linear-gradient(90deg, #8c5a3c 0%, #a66a4a 50%, #8c5a3c 100%); }
.scn-item-sapphire-ring-measurement .counter-wood { position:absolute; bottom:8%; left:5%; width:90%; height:20%; background: linear-gradient(180deg, #5a3825 0%, #3a2215 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-item-sapphire-ring-measurement .glass-case { position:absolute; bottom:18%; left:15%; width:70%; height:16%; background: linear-gradient(90deg, rgba(255,255,255,.15) 0%, rgba(200,220,240,.35) 50%, rgba(255,255,255,.15) 100%); border: 2px solid #c5a059; border-radius: 4px; backdrop-filter: blur(2px); }
.scn-item-sapphire-ring-measurement .hand-out { position:absolute; bottom:12%; left:42%; width:45px; height:35px; background: linear-gradient(180deg, #f0d5b6 0%, #d9b48f 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: srm-hand 8s ease-in-out infinite alternate; }
.scn-item-sapphire-ring-measurement .ring-jewel { position:absolute; bottom:26%; left:48%; width:14px; height:10px; background: radial-gradient(circle, #6eb5ff 0%, #0f52ba 50%, #072a6e 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(15,82,186,.6), 0 0 40px 16px rgba(15,82,186,.3); animation: srm-sparkle 3s ease-in-out infinite alternate; }
.scn-item-sapphire-ring-measurement .window-light { position:absolute; top:6%; right:8%; width:35%; height:45%; background: linear-gradient(135deg, #fffae6 0%, #fdf4d8 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,.8), 0 0 40px rgba(255,250,230,.4); animation: srm-light 7s ease-in-out infinite alternate; }
.scn-item-sapphire-ring-measurement .brass-rule { position:absolute; bottom:24%; left:20%; width:60%; height:4px; background: linear-gradient(90deg, #c5a059 0%, #e3c87a 50%, #c5a059 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); }
@keyframes srm-hand { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.03) rotate(4deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes srm-sparkle { 0% { opacity:.6; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }
@keyframes srm-light { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }

.scn-first-ghost-sighting {
  background: linear-gradient(180deg, #4a5b6e 0%, #2c3848 50%, #1a202c 100%), radial-gradient(ellipse at 50% 100%, #2c3848 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-first-ghost-sighting .sky-pale { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #718096 0%, #4a5b6e 100%); animation: fgs-pale 10s ease-in-out infinite alternate; }
.scn-first-ghost-sighting .ground-flat { position:absolute; bottom:0; left:-5%; width:110%; height:45%; background: linear-gradient(180deg, #2c3848 0%, #1a202c 100%); border-radius: 60% 40% 0 0 / 40% 20% 0 0; }
.scn-first-ghost-sighting .horse-dark { position:absolute; bottom:15%; left:15%; width:110px; height:85px; background: linear-gradient(180deg, #2d3748 0%, #1a202c 100%); border-radius: 40% 20% 20% 40% / 60% 40% 40% 60%; transform-origin: bottom center; animation: fgs-rear 6s ease-in-out infinite; }
.scn-first-ghost-sighting .rider-torso { position:absolute; bottom:45%; left:18%; width:22px; height:55px; background: linear-gradient(180deg, #2d3748 0%, #1a202c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fgs-jerk 3s ease-in-out infinite; }
.scn-first-ghost-sighting .rickshaw-specter { position:absolute; bottom:22%; left:48%; width:140px; height:100px; background: linear-gradient(135deg, rgba(200,190,170,.3) 0%, rgba(180,170,150,.1) 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 0 40px rgba(200,190,170,.2); backdrop-filter: blur(4px); animation: fgs-fade 8s ease-in-out infinite alternate; }
.scn-first-ghost-sighting .figure-specter { position:absolute; bottom:28%; left:55%; width:20px; height:55px; background: linear-gradient(180deg, rgba(220,210,200,.4) 0%, rgba(180,170,160,.1) 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(2px); animation: fgs-fade 8s ease-in-out infinite alternate; }
.scn-first-ghost-sighting .dust-wisp { position:absolute; bottom:5%; left:35%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 100%, rgba(180,170,150,.15) 0%, transparent 70%); animation: fgs-spin 14s linear infinite; }
@keyframes fgs-pale { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes fgs-rear { 0% { transform: rotate(0deg) } 20% { transform: rotate(-4deg) } 80% { transform: rotate(4deg) } 100% { transform: rotate(0deg) } }
@keyframes fgs-jerk { 0% { transform: rotate(0deg) } 30% { transform: rotate(2deg) } 70% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes fgs-fade { 0% { opacity:.2 } 50% { opacity:.7 } 100% { opacity:.1 } }
@keyframes fgs-spin { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(180deg) scale(1.3) } 100% { transform: rotate(360deg) scale(1) } }

.scn-bridge-encounter-ghost {
  background: linear-gradient(180deg, #2c2438 0%, #1a1a2e 50%, #0d111a 100%), radial-gradient(ellipse at 50% 0%, #4a3e5e 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-bridge-encounter-ghost .sky-dusk { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6b5b7b 0%, #2c2438 100%); animation: beg-dusk 12s ease-in-out infinite alternate; }
.scn-bridge-encounter-ghost .bridge-rail { position:absolute; bottom:30%; left:0; width:100%; height:12%; background: repeating-linear-gradient(90deg, #3a3344 0px, #3a3344 8px, transparent 8px, transparent 18px); border-top: 4px solid #4a4354; border-bottom: 2px solid #1a1624; animation: beg-rail 6s ease-in-out infinite; }
.scn-bridge-encounter-ghost .rickshaw-facing { position:absolute; bottom:18%; left:32%; width:160px; height:120px; background: linear-gradient(135deg, #3a2e4d 0%, #1e2640 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; border: 2px solid #4a3e5e; box-shadow: 0 6px 16px rgba(0,0,0,.6); }
.scn-bridge-encounter-ghost .hood-fallen { position:absolute; bottom:45%; left:38%; width:90px; height:45px; background: linear-gradient(180deg, #2c2438 0%, #1a1a2e 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; transform-origin: top center; animation: beg-hood 5s ease-in-out infinite alternate; }
.scn-bridge-encounter-ghost .woman-ghost { position:absolute; bottom:25%; left:43%; width:35px; height:80px; background: linear-gradient(180deg, #d4c9c9 0%, #8c7a8a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(1.5px); animation: beg-reach 6s ease-in-out infinite alternate; }
.scn-bridge-encounter-ghost .lantern-glow { position:absolute; bottom:35%; left:48%; width:12px; height:12px; background: radial-gradient(circle, #e6a85c 0%, #c47a2a 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 16px rgba(226,163,75,.5); animation: beg-glow 3s ease-in-out infinite alternate; }
.scn-bridge-encounter-ghost .mist-low { position:absolute; bottom:0; left:-10%; width:120%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(100,90,120,.3) 0%, transparent 70%); filter: blur(6px); animation: beg-mist 15s ease-in-out infinite alternate; }
@keyframes beg-dusk { 0% { opacity:.7 } 100% { opacity:.9 } }
@keyframes beg-rail { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes beg-hood { 0% { transform: rotate(0deg) } 50% { transform: rotate(-4deg) translateY(4px) } 100% { transform: rotate(4deg) translateY(-2px) } }
@keyframes beg-reach { 0% { transform: translateX(0) scale(1) } 100% { transform: translateX(20px) scale(1.05) } }
@keyframes beg-glow { 0% { opacity:.4 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes beg-mist { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(30px) scale(1.1) } 100% { transform: translateX(-30px) scale(1) } }

.scn-repetition-and-sanity { background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a3a 100%), radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%); }
.scn-repetition-and-sanity .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 100%); }
.scn-repetition-and-sanity .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: rt-hills 15s ease-in-out infinite; }
.scn-repetition-and-sanity .road { position:absolute; bottom:20%; left:0; right:0; height:10%; background: #4a3a2a; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); }
.scn-repetition-and-sanity .figure { position:absolute; bottom:22%; left:20%; width:12px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rt-walk 3s ease-in-out infinite; }
.scn-repetition-and-sanity .horse-a { position:absolute; bottom:25%; left:50%; width:30px; height:20px; background: #1a1a1a; border-radius: 40% 50% 30% 30% / 50% 40% 30% 30%; animation: rt-gallop 2s ease-in-out infinite; }
.scn-repetition-and-sanity .horse-b { position:absolute; bottom:25%; left:60%; width:30px; height:20px; background: #1a1a1a; border-radius: 40% 50% 30% 30% / 50% 40% 30% 30%; animation: rt-gallop 2s ease-in-out infinite 1s; }
.scn-repetition-and-sanity .cloud-a { position:absolute; top:14%; left:18%; width:80px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter: blur(6px); animation: rt-cloud-a 35s linear infinite; }
.scn-repetition-and-sanity .cloud-b { position:absolute; top:22%; right:12%; width:60px; height:14px; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.02) 100%); border-radius:50%; filter: blur(5px); animation: rt-cloud-b 50s linear infinite; }
@keyframes rt-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rt-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(10px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(20px) translateY(0) rotate(-2deg); } }
@keyframes rt-gallop { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(5px) scale(0.95); } 50% { transform: translateX(10px) scale(1); } 75% { transform: translateX(15px) scale(1.05); } 100% { transform: translateX(20px) scale(1); } }
@keyframes rt-cloud-a { 0% { transform: translateX(-30px); } 50% { transform: translateX(50vw); } 100% { transform: translateX(120vw); } }
@keyframes rt-cloud-b { 0% { transform: translateX(0); } 50% { transform: translateX(-60vw); } 100% { transform: translateX(-120vw); } }

.scn-item-ghostly-accoutrements { background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 40%, #0a0a2e 100%), radial-gradient(ellipse at 50% 80%, #3a3a6e 0%, transparent 80%); }
.scn-item-ghostly-accoutrements .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,20,0.3) 100%); animation: ga-pulse 8s ease-in-out infinite; }
.scn-item-ghostly-accoutrements .bg-mid { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, #1a1a2e 100%); }
.scn-item-ghostly-accoutrements .figure-wessington { position:absolute; bottom:30%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ga-turn 4s ease-in-out infinite; }
.scn-item-ghostly-accoutrements .ghost-veil { position:absolute; top:15%; left:30%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 100%, rgba(200,200,255,0.1) 0%, transparent 70%); filter: blur(8px); animation: ga-veil 6s ease-in-out infinite; }
.scn-item-ghostly-accoutrements .ghost-accoutrement1 { position:absolute; bottom:40%; right:30%; width:10px; height:15px; background: radial-gradient(circle, rgba(200,200,255,0.6) 0%, transparent 70%); border-radius:50%; animation: ga-bob 3s ease-in-out infinite; }
.scn-item-ghostly-accoutrements .ghost-accoutrement2 { position:absolute; bottom:40%; right:20%; width:8px; height:12px; background: radial-gradient(circle, rgba(200,200,255,0.4) 0%, transparent 70%); border-radius:50%; animation: ga-bob 3s ease-in-out infinite 1.5s; }
.scn-item-ghostly-accoutrements .mist { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(100,100,150,0.2) 100%); animation: ga-mist 10s ease-in-out infinite; }
@keyframes ga-pulse { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes ga-turn { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(-1); } 75% { transform: rotate(-15deg) scaleX(1); } 100% { transform: rotate(0deg); } }
@keyframes ga-veil { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 50% { transform: translate(10px,-10px) scale(1.1); opacity:0.8; } 100% { transform: translate(0,0) scale(1); opacity:0.5; } }
@keyframes ga-bob { 0% { transform: translate(0,0) rotate(0deg); } 33% { transform: translate(0,-5px) rotate(10deg); } 66% { transform: translate(2px,0) rotate(-5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ga-mist { 0% { opacity:0.3; transform: translateY(0); } 50% { opacity:0.6; transform: translateY(-10px); } 100% { opacity:0.3; transform: translateY(0); } }

.scn-garden-party-shadows { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #2a2a3a 100%), radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%); }
.scn-garden-party-shadows .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); animation: gp-bg 12s ease-in-out infinite; }
.scn-garden-party-shadows .crowd { position:absolute; bottom:20%; left:0; right:0; height:40%; background-image: radial-gradient(circle, #1a1a2a 2px, transparent 2px); background-size: 20px 20px; animation: gp-crowd 20s linear infinite; }
.scn-garden-party-shadows .rickshaw { position:absolute; bottom:25%; left:50%; width:50px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; animation: gp-rickshaw 5s ease-in-out infinite; }
.scn-garden-party-shadows .figure-wessington { position:absolute; bottom:30%; left:48%; width:16px; height:30px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gp-figure 4s ease-in-out infinite; }
.scn-garden-party-shadows .lantern-a { position:absolute; bottom:35%; left:30%; width:6px; height:6px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 10px 3px #ffd080; animation: gp-lantern 2s ease-in-out infinite; }
.scn-garden-party-shadows .lantern-b { position:absolute; bottom:35%; left:70%; width:6px; height:6px; background: #ffd080; border-radius: 50%; box-shadow: 0 0 10px 3px #ffd080; animation: gp-lantern 2s ease-in-out infinite 1s; }
@keyframes gp-bg { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes gp-crowd { 0% { background-position: 0 0; } 50% { background-position: 10px 10px; } 100% { background-position: 0 0; } }
@keyframes gp-rickshaw { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-5px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes gp-figure { 0% { transform: rotate(0deg); } 30% { transform: rotate(5deg); } 60% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes gp-lantern { 0% { opacity:0.8; box-shadow: 0 0 10px 3px #ffd080; } 50% { opacity:1; box-shadow: 0 0 20px 6px #ffd080; } 100% { opacity:0.8; box-shadow: 0 0 10px 3px #ffd080; } }

.scn-fortnight-of-haunting { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%); }
.scn-fortnight-of-haunting .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: fh-bg 15s ease-in-out infinite; }
.scn-fortnight-of-haunting .figure { position:absolute; bottom:25%; left:30%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fh-walk 3s ease-in-out infinite; }
.scn-fortnight-of-haunting .rickshaw { position:absolute; bottom:25%; left:50%; width:40px; height:25px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 10% 10%; animation: fh-rickshaw 4s ease-in-out infinite; }
.scn-fortnight-of-haunting .livery-a { position:absolute; bottom:22%; left:55%; width:8px; height:20px; background: #1a1a1a; border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: fh-livery 3s ease-in-out infinite; }
.scn-fortnight-of-haunting .livery-b { position:absolute; bottom:22%; left:60%; width:8px; height:20px; background: #1a1a1a; border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: fh-livery 3s ease-in-out infinite 0.5s; }
.scn-fortnight-of-haunting .livery-c { position:absolute; bottom:22%; left:65%; width:8px; height:20px; background: #1a1a1a; border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: fh-livery 3s ease-in-out infinite 1s; }
.scn-fortnight-of-haunting .livery-d { position:absolute; bottom:22%; left:70%; width:8px; height:20px; background: #1a1a1a; border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; animation: fh-livery 3s ease-in-out infinite 1.5s; }
@keyframes fh-bg { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }
@keyframes fh-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(15px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(30px) translateY(0) rotate(-2deg); } }
@keyframes fh-rickshaw { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes fh-livery { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(10px) translateY(0) rotate(0deg); } }

.scn-kadir-baksh-confession {
  background:
    linear-gradient(180deg, #fce4b8 0%, #87ceeb 60%, #6ca0c0 100%),
    radial-gradient(ellipse at 70% 20%, #ffe680 0%, transparent 50%);
}

.scn-kadir-baksh-confession .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(135,206,235,0.3) 100%);
  animation: kb-sky 12s ease-in-out infinite alternate;
}

.scn-kadir-baksh-confession .sun {
  position: absolute; top: 12%; right: 18%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd700 0%, #ffb347 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 10px #ffd700;
  animation: kb-sun 4s ease-in-out infinite alternate;
}

.scn-kadir-baksh-confession .bungalow {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3), 0 8px 12px rgba(0,0,0,0.4);
}

.scn-kadir-baksh-confession .roof {
  position: absolute; bottom: 65%; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(135deg, #a0461a 0%, #6b2e12 100%);
  clip-path: polygon(5% 100%, 50% 0%, 95% 100%);
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: kb-roof 9s ease-in-out infinite;
}

.scn-kadir-baksh-confession .veranda {
  position: absolute; bottom: 18%; left: 22%; width: 56%; height: 8%;
  background: linear-gradient(180deg, #d4a373 0%, #b5825a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,0.2);
}

.scn-kadir-baksh-confession .figure {
  position: absolute; bottom: 26%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kb-figure 3s ease-in-out infinite;
}

.scn-kadir-baksh-confession .arm {
  position: absolute; bottom: 48%; left: 42%; width: 16px; height: 8px;
  background: #2a1a0a; border-radius: 50% 50% 0 0;
  transform-origin: 100% 100%;
  animation: kb-arm 0.8s ease-in-out infinite alternate;
}

.scn-kadir-baksh-confession .dust {
  position: absolute; bottom: 20%; right: 10%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(255,220,180,0.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: kb-dust 6s linear infinite;
}

.scn-kadir-baksh-confession .spot {
  position: absolute; bottom: 40%; left: 30%; width: 8px; height: 8px;
  background: #e07a5f; border-radius: 50%;
  box-shadow: 0 0 4px rgba(200,85,61,0.5);
  animation: kb-spot 2s ease-in-out infinite alternate;
}

@keyframes kb-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

@keyframes kb-sun {
  0% { transform: scale(0.9) translateY(0); box-shadow: 0 0 30px 8px #ffd700; }
  50% { transform: scale(1.05) translateY(-4px); box-shadow: 0 0 50px 15px #ffd700; }
  100% { transform: scale(0.95) translateY(-2px); box-shadow: 0 0 40px 10px #ffd700; }
}

@keyframes kb-roof {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

@keyframes kb-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); }
}

@keyframes kb-arm {
  0% { transform: rotate(-30deg); }
  100% { transform: rotate(30deg); }
}

@keyframes kb-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  25% { transform: translateX(-10px) scale(1.2); opacity: 0.3; }
  50% { transform: translateX(-20px) scale(1.5); opacity: 0.1; }
  75% { transform: translateX(-30px) scale(0.8); opacity: 0.2; }
  100% { transform: translateX(-40px) scale(1); opacity: 0; }
}

@keyframes kb-spot {
  0% { opacity: 0.3; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.3); }
}

.scn-kadir-baksh-confession {
  background:
    linear-gradient(180deg, #fef5e7 0%, #f9dca8 40%, #e2b968 100%),
    radial-gradient(ellipse at 70% 20%, #fff3cc 0%, transparent 60%);
}
.scn-kadir-baksh-confession .wall {
  position: absolute;
  inset: 0 0 25% 0;
  background: linear-gradient(90deg, #f5e0c8 0%, #fcefd8 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.08);
}
.scn-kadir-baksh-confession .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #d4b48c 0%, #b8946a 40%, #8f6e4a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-kadir-baksh-confession .doorway {
  position: absolute;
  bottom: 22%; left: 50%; width: 90px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-kadir-baksh-confession .doorway::after {
  content: '';
  position: absolute;
  top: 10%; left: 10%; width: 80%; height: 80%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4% 4% 0 0;
}
.scn-kadir-baksh-confession .sunbeam {
  position: absolute;
  top: 0; left: 30%; width: 120px; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, rgba(255,240,180,0.05) 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: kb-sway 6s ease-in-out infinite alternate;
  transform-origin: top center;
}
.scn-kadir-baksh-confession .figure {
  position: absolute;
  bottom: 22%; left: 36%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kb-walk 4s ease-in-out infinite;
  z-index: 2;
}
.scn-kadir-baksh-confession .turban {
  position: absolute;
  bottom: 72%; left: 33%; width: 28px; height: 16px;
  background: radial-gradient(ellipse at 50% 50%, #c8553d 0%, #8a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: kb-wobble 2s ease-in-out infinite alternate;
  transform-origin: center bottom;
  z-index: 3;
}
.scn-kadir-baksh-confession .shadow {
  position: absolute;
  bottom: 0; left: 30%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(4px);
  animation: kb-shadow 4s ease-in-out infinite;
}
@keyframes kb-sway {
  0%   { transform: skewX(-2deg) scaleX(1); opacity: 0.6; }
  50%  { transform: skewX(2deg) scaleX(1.1); opacity: 0.8; }
  100% { transform: skewX(-1deg) scaleX(1.05); opacity: 0.5; }
}
@keyframes kb-walk {
  0%   { transform: translateX(0) rotate(-2deg) scale(1); }
  25%  { transform: translateX(8px) rotate(2deg) scale(1.02); }
  50%  { transform: translateX(16px) rotate(-1deg) scale(1); }
  75%  { transform: translateX(24px) rotate(1deg) scale(0.98); }
  100% { transform: translateX(32px) rotate(-2deg) scale(1); }
}
@keyframes kb-wobble {
  0%   { transform: rotate(-8deg) scale(1.05); }
  100% { transform: rotate(8deg) scale(0.95); }
}
@keyframes kb-shadow {
  0%   { transform: translateX(0) scale(1); opacity: 0.2; }
  50%  { transform: translateX(16px) scale(1.3); opacity: 0.15; }
  100% { transform: translateX(32px) scale(1); opacity: 0.2; }
}
/* end per-scene blocks */

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-declining-cure { background: linear-gradient(180deg, #1a1423 0%, #2c1f2e 40%, #1f1628 70%, #0d0b12 100%), radial-gradient(ellipse at 20% 60%, #3a2b3a 0%, transparent 80%); }
.scn-declining-cure .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1f2e 0%, #170f1a 100%); animation: dc-wall 12s ease-in-out infinite alternate; }
.scn-declining-cure .bed-frame { position:absolute; bottom:10%; left:15%; width:70%; height:45%; background: linear-gradient(135deg, #3d2a1e 0%, #2a1a12 100%); border-radius: 8px; box-shadow: inset 0 -8px 16px rgba(0,0,0,.6), 0 12px 20px rgba(0,0,0,.5); }
.scn-declining-cure .mattress { position:absolute; bottom:12%; left:18%; width:64%; height:38%; background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%); border-radius: 4px; box-shadow: inset 0 4px 10px rgba(0,0,0,.3); }
.scn-declining-cure .pillow { position:absolute; bottom:42%; left:20%; width:30%; height:14%; background: radial-gradient(ellipse, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; box-shadow: inset 0 2px 6px rgba(255,255,255,.1); }
.scn-declining-cure .figure-lying { position:absolute; bottom:18%; left:22%; width:56%; height:30%; background: linear-gradient(180deg, #1a1212 0%, #0a0808 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: rotate(-2deg); animation: dc-figure 6s ease-in-out infinite; }
.scn-declining-cure .lamp { position:absolute; bottom:50%; left:75%; width:12px; height:18px; background: radial-gradient(circle, #d4a050 0%, #b08030 60%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px rgba(180,120,40,.6), 0 0 60px 20px rgba(180,120,40,.3); animation: dc-lamp 4s ease-in-out infinite alternate; }
.scn-declining-cure .window-glow { position:absolute; top:10%; right:5%; width:60px; height:80px; background: radial-gradient(ellipse, #1a2a4a 0%, #0a1220 70%); border-radius: 4px; box-shadow: inset 0 0 30px 10px rgba(40,80,160,.4), 0 0 40px 15px rgba(40,80,160,.2); animation: dc-window 8s ease-in-out infinite alternate; }
@keyframes dc-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes dc-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes dc-lamp { 0% { box-shadow: 0 0 20px 4px rgba(180,120,40,.4); transform: scale(1); } 50% { box-shadow: 0 0 40px 12px rgba(180,120,40,.7); transform: scale(1.05); } 100% { box-shadow: 0 0 28px 6px rgba(180,120,40,.5); transform: scale(0.98); } }
@keyframes dc-window { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.8; transform: scale(1.02); } 100% { opacity:.5; transform: scale(0.98); } }

.scn-mall-encounter { background: linear-gradient(180deg, #4b5a6a 0%, #3a4a5a 40%, #2a3a4a 70%, #1a2a3a 100%), radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 70%); }
.scn-mall-encounter .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); animation: me-sky 10s ease-in-out infinite alternate; }
.scn-mall-encounter .ground-mall { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 20% 10% 0 0 / 50% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-mall-encounter .bandstand { position:absolute; bottom:20%; left:10%; width:80px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: me-band 12s ease-in-out infinite; }
.scn-mall-encounter .rickshaw { position:absolute; bottom:20%; left:50%; width:80px; height:50px; transform:translateX(-50%); background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: me-rickshaw 5s ease-in-out infinite alternate; }
.scn-mall-encounter .narrator-figure { position:absolute; bottom:18%; left:42%; width:16px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: me-walk 4s ease-in-out infinite; }
.scn-mall-encounter .phantom-figure { position:absolute; bottom:20%; left:52%; width:16px; height:34px; background: linear-gradient(180deg, rgba(200,200,220,.4) 0%, rgba(180,180,200,.1) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); animation: me-phantom 6s ease-in-out infinite; }
.scn-mall-encounter .tree-silhouette { position:absolute; bottom:25%; right:10%; width:40px; height:100px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: -10px 0 20px rgba(0,0,0,.3); animation: me-tree 20s ease-in-out infinite alternate; }
@keyframes me-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes me-band { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes me-rickshaw { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-48%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes me-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(24px) rotate(2deg) } 100% { transform: translateX(32px) rotate(0) } }
@keyframes me-phantom { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.7; transform: translateX(-4px) translateY(-2px) } 100% { opacity:.3; transform: translateX(0) } }
@keyframes me-tree { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.02) rotate(2deg) } 100% { transform: scale(1) rotate(0) } }

.scn-ghostly-wandering { background: linear-gradient(180deg, #2a2a4a 0%, #4a3a5a 30%, #6a5a6a 60%, #8a7a6a 100%), radial-gradient(ellipse at 50% 100%, #7a6a5a 0%, transparent 70%); }
.scn-ghostly-wandering .dusk-sky { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a5a 0%, #5a4a5a 40%, #8a7a6a 100%); animation: gw-sky 14s ease-in-out infinite alternate; }
.scn-ghostly-wandering .hills-late { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: gw-hills 18s ease-in-out infinite alternate; }
.scn-ghostly-wandering .road-curve { position:absolute; bottom:20%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius: 20% 40% 0 0 / 60% 80% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); animation: gw-road 10s ease-in-out infinite; }
.scn-ghostly-wandering .narrator-walk { position:absolute; bottom:22%; left:20%; width:18px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: gw-narrator 5s ease-in-out infinite; }
.scn-ghostly-wandering .ghost-woman { position:absolute; bottom:24%; left:40%; width:16px; height:36px; background: linear-gradient(180deg, rgba(200,180,160,.5) 0%, rgba(180,160,140,.1) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(3px); animation: gw-ghost 7s ease-in-out infinite; }
.scn-ghostly-wandering .cross-silhouette { position:absolute; bottom:30%; left:75%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: gw-cross 20s ease-in-out infinite alternate; }
@keyframes gw-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes gw-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes gw-road { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.02) translateX(2px) } 100% { transform: scale(1) translateX(0) } }
@keyframes gw-narrator { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(6px) rotate(1deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(1deg) } 100% { transform: translateX(24px) rotate(0) } }
@keyframes gw-ghost { 0% { opacity:.4; transform: translateX(0) translateY(0) } 50% { opacity:.7; transform: translateX(4px) translateY(-3px) } 100% { opacity:.4; transform: translateX(0) translateY(0) } }
@keyframes gw-cross { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.03) rotate(2deg) } 100% { transform: scale(1) rotate(0) } }

.scn-rickshaw-presence { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 70%, #0a1a2a 100%), radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%); }
.scn-rickshaw-presence .overcast-bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); animation: rp-bg 12s ease-in-out infinite alternate; }
.scn-rickshaw-presence .road-dark { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 30% 20% 0 0 / 50% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); }
.scn-rickshaw-presence .rickshaw-main { position:absolute; bottom:20%; left:50%; width:90px; height:60px; transform:translateX(-50%); background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,.6), inset 0 0 10px rgba(0,0,0,.4); animation: rp-rickshaw 6s ease-in-out infinite alternate; }
.scn-rickshaw-presence .rickshaw-wheel { position:absolute; bottom:10%; left:40%; width:24px; height:24px; background: radial-gradient(circle, #2a2a2a 0%, #1a1a1a 60%, #0a0a0a 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: rp-wheel 3s linear infinite; }
.scn-rickshaw-presence .driver-shadow { position:absolute; bottom:30%; left:40%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rp-driver 8s ease-in-out infinite; }
.scn-rickshaw-presence .narrator-figure { position:absolute; bottom:18%; left:60%; width:16px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: rp-narrator 5s ease-in-out infinite; }
.scn-rickshaw-presence .lamp-post { position:absolute; bottom:15%; left:80%; width:8px; height:80px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 4px; box-shadow: 0 0 20px 4px rgba(200,180,100,.3); animation: rp-lamp 7s ease-in-out infinite alternate; }
@keyframes rp-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rp-rickshaw { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-48%) translateY(-3px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes rp-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes rp-driver { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes rp-narrator { 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(0) } }
@keyframes rp-lamp { 0% { box-shadow: 0 0 10px 2px rgba(200,180,100,.2); } 50% { box-shadow: 0 0 30px 8px rgba(200,180,100,.5); } 100% { box-shadow: 0 0 15px 4px rgba(200,180,100,.3); } }

.scn-reflections-on-ghosts {
  background: linear-gradient(180deg, #3b3a4a 0%, #2c2b3c 40%, #4e5a6b 100%),
              radial-gradient(ellipse at 30% 80%, #6a7a8a 0%, transparent 70%);
}
.scn-reflections-on-ghosts .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4e5a6b 0%, #3b3a4a 100%);
  animation: ref-sky 15s ease-in-out infinite alternate;
}
.scn-reflections-on-ghosts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2c2b3c 0%, #1f1e2e 100%);
  border-radius: 30% 0 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: ref-ground 12s ease-in-out infinite;
}
.scn-reflections-on-ghosts .doorway {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 200px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border: 2px solid #4a4a5a;
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
  transform: translateX(-50%);
}
.scn-reflections-on-ghosts .figure {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ref-figure 6s ease-in-out infinite;
}
.scn-reflections-on-ghosts .ghost1 {
  position: absolute; bottom: 35%; left: 20%; width: 50px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,210,220,.4) 0%, transparent 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: ref-ghost 8s ease-in-out infinite alternate;
}
.scn-reflections-on-ghosts .ghost2 {
  position: absolute; bottom: 40%; right: 25%; width: 40px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,210,220,.3) 0%, transparent 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: ref-ghost 10s ease-in-out infinite alternate-reverse;
  animation-delay: -3s;
}
.scn-reflections-on-ghosts .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, rgba(200,210,220,.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: ref-mist 20s linear infinite;
}
@keyframes ref-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes ref-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ref-figure { 0%,100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } }
@keyframes ref-ghost { 0% { opacity: .3; transform: translateY(0) scale(1) } 50% { opacity: .6; transform: translateY(-5px) scale(1.05) } 100% { opacity: .3; transform: translateY(0) scale(1) } }
@keyframes ref-mist { 0% { transform: translateX(-20px) } 100% { transform: translateX(20px) } }

.scn-katmal-dak-bungalow {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 60%);
}
.scn-katmal-dak-bungalow .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,.7);
}
.scn-katmal-dak-bungalow .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-katmal-dak-bungalow .window {
  position: absolute; top: 20%; left: 15%; width: 80px; height: 120px;
  background: linear-gradient(135deg, #3a3a4a 0%, #0a0a1a 100%);
  border: 3px solid #4a4a5a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
}
.scn-katmal-dak-bungalow .ghost1 {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 110px;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,210,220,.3) 0%, transparent 60%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(5px);
  animation: kat-ghost 7s ease-in-out infinite alternate;
}
.scn-katmal-dak-bungalow .ghost2 {
  position: absolute; bottom: 20%; right: 30%; width: 45px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,210,220,.25) 0%, transparent 60%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: kat-ghost 9s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-katmal-dak-bungalow .lamp {
  position: absolute; top: 10%; left: 10%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c8a050 0%, #8a6a30 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,160,80,.4);
  animation: kat-lamp 3s ease-in-out infinite alternate;
}
.scn-katmal-dak-bungalow .shadow {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 20px;
  background: rgba(0,0,0,.4);
  transform: skewX(-20deg);
  filter: blur(6px);
  animation: kat-shadow 5s ease-in-out infinite;
}
@keyframes kat-ghost { 0% { opacity: .2; transform: translateY(0) scale(1) } 50% { opacity: .5; transform: translateY(-6px) scale(1.1) } 100% { opacity: .2; transform: translateY(0) scale(1) } }
@keyframes kat-lamp { 0% { opacity: .7; box-shadow: 0 0 20px 5px rgba(200,160,80,.3) } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(200,160,80,.5) } 100% { opacity: .8; box-shadow: 0 0 25px 8px rgba(200,160,80,.35) } }
@keyframes kat-shadow { 0%,100% { transform: skewX(-20deg) translateX(0) } 50% { transform: skewX(-20deg) translateX(10px) } }

.scn-item-billiard-ball {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 60%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-item-billiard-ball .room-back {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,.8);
}
.scn-item-billiard-ball .doorway {
  position: absolute; top: 30%; left: 40%; width: 140px; height: 200px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 2px solid #3a3a4a;
  border-radius: 8px;
  transform: translateX(-50%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-item-billiard-ball .light-spill {
  position: absolute; top: 30%; left: 40%; width: 140px; height: 200px;
  background: linear-gradient(135deg, rgba(220,200,160,.15) 0%, transparent 80%);
  transform: translateX(-50%);
  filter: blur(10px);
  animation: bil-light 4s ease-in-out infinite alternate;
}
.scn-item-billiard-ball .billiard-ball {
  position: absolute; bottom: 25%; left: 10%; width: 30px; height: 30px;
  background: radial-gradient(circle at 35% 35%, #f0e0c0 0%, #c0a880 50%, #6a5a3a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: bil-ball 6s ease-in-out infinite;
}
.scn-item-billiard-ball .shadow-person {
  position: absolute; bottom: 20%; right: 20%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bil-person 8s ease-in-out infinite;
}
.scn-item-billiard-ball .shadow-person2 {
  position: absolute; bottom: 22%; right: 30%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bil-person 8s ease-in-out infinite reverse;
  animation-delay: -2s;
  opacity: .7;
}
@keyframes bil-light { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }
@keyframes bil-ball { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(20px) rotate(180deg) } 50% { transform: translateX(0) rotate(360deg) } 75% { transform: translateX(-20px) rotate(540deg) } }
@keyframes bil-person { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(3deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 75% { transform: translateX(3px) rotate(2deg) } }

.scn-ruined-ghost-story {
  background: linear-gradient(180deg, #f5ecd0 0%, #e8dbb0 30%, #c8b080 100%),
              radial-gradient(ellipse at 20% 20%, #fff8e8 0%, transparent 70%);
}
.scn-ruined-ghost-story .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8dbb0 0%, #d4c89a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.1);
}
.scn-ruined-ghost-story .window-frame {
  position: absolute; top: 15%; left: 25%; width: 140px; height: 180px;
  background: linear-gradient(180deg, #a09070 0%, #8a7a5a 100%);
  border: 4px solid #6a5a3a;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
}
.scn-ruined-ghost-story .curtain {
  position: absolute; top: 15%; left: 22%; width: 50px; height: 180px;
  background: linear-gradient(180deg, #c0a880 0%, #a09070 100%);
  border-radius: 0 20px 20px 0;
  transform: translateX(-10px);
  animation: rui-curtain 6s ease-in-out infinite alternate;
}
.scn-ruined-ghost-story .ceiling-cloth {
  position: absolute; top: 5%; left: 30%; right: 30%; height: 40px;
  background: linear-gradient(180deg, #d4c89a 0%, #b8ac80 100%);
  border-radius: 20px 20px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.1);
  animation: rui-cloth 8s ease-in-out infinite;
}
.scn-ruined-ghost-story .rat-bump {
  position: absolute; top: 6%; left: 45%; width: 12px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: rui-rat 2s ease-in-out infinite;
}
.scn-ruined-ghost-story .sash {
  position: absolute; top: 15%; left: 25%; width: 140px; height: 8px;
  background: #6a5a3a;
  border-radius: 4px;
  transform: translateY(170px);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: rui-sash 0.6s ease-in-out infinite alternate;
}
.scn-ruined-ghost-story .daylight-beam {
  position: absolute; top: 15%; left: 25%; width: 140px; height: 180px;
  background: linear-gradient(135deg, rgba(255,255,220,.25) 0%, transparent 80%);
  filter: blur(8px);
  animation: rui-beam 10s ease-in-out infinite alternate;
}
@keyframes rui-curtain { 0% { transform: translateX(-10px) scaleX(1) } 50% { transform: translateX(0) scaleX(1.05) } 100% { transform: translateX(-10px) scaleX(1) } }
@keyframes rui-cloth { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes rui-rat { 0%,100% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-40%) translateY(-2px) } 50% { transform: translateX(-30%) translateY(0) } 75% { transform: translateX(-40%) translateY(-2px) } }
@keyframes rui-sash { 0% { transform: translateY(170px) rotate(0deg) } 100% { transform: translateY(170px) rotate(5deg) } }
@keyframes rui-beam { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }

/* twilight-encounter - tense, dusk */
.scn-twilight-encounter {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a6e 60%, #6a5a8e 100%),
              radial-gradient(ellipse at 50% 100%, #6a5a8e 0%, transparent 70%);
  z-index: 0;
}
.scn-twilight-encounter .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #3a2a5e 50%, transparent 100%);
  animation: te-sky 10s ease-in-out infinite alternate;
}
.scn-twilight-encounter .path {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 30% 50% 0 / 0 40% 60% 0;
  transform: skewY(-4deg);
  animation: te-path 8s ease-in-out infinite;
}
.scn-twilight-encounter .figure-thing {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 60%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 30% 30%;
  transform: scale(1.2);
  box-shadow: 0 0 30px 8px rgba(60, 0, 0, 0.6);
  animation: te-thing 3s ease-in-out infinite alternate;
}
.scn-twilight-encounter .figure-narrator {
  position: absolute; bottom: 26%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: te-narrator 4s ease-in-out infinite;
}
.scn-twilight-encounter .tree-left {
  position: absolute; bottom: 30%; left: 5%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 60%, #0a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: te-sway 7s ease-in-out infinite;
}
.scn-twilight-encounter .tree-right {
  position: absolute; bottom: 30%; right: 5%; width: 25px; height: 110px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 60%, #0a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: te-sway 9s ease-in-out infinite reverse;
}
.scn-twilight-encounter .glow-ember {
  position: absolute; bottom: 32%; left: 35%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,85,61,0.4);
  animation: te-ember 1.5s ease-in-out infinite alternate;
}
@keyframes te-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes te-path {
  0%, 100% { transform: skewY(-4deg) translateX(0); }
  50% { transform: skewY(-4deg) translateX(5px); }
}
@keyframes te-thing {
  0% { transform: scale(1.2) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.25) translateY(-2px); opacity: 1; }
  100% { transform: scale(1.2) translateY(0); opacity: 0.85; }
}
@keyframes te-narrator {
  0% { transform: rotate(5deg) translateX(0); }
  25% { transform: rotate(3deg) translateX(5px); }
  50% { transform: rotate(5deg) translateX(10px); }
  75% { transform: rotate(4deg) translateX(5px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes te-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes te-ember {
  0% { transform: scale(1); opacity: 0.6; }
  100% { transform: scale(1.3); opacity: 1; }
}

/* heatherlegh-cure - warm, sunlit */
.scn-heatherlegh-cure {
  background: linear-gradient(180deg, #fdf5e6 0%, #f5deb3 40%, #bfa57a 70%, #8a7352 100%),
              radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%);
}
.scn-heatherlegh-cure .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, transparent 100%);
  animation: hc-sky 12s ease-in-out infinite alternate;
}
.scn-heatherlegh-cure .cliff {
  position: absolute; bottom: 30%; left: -10%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #a08060 0%, #705030 60%, #4a3020 100%);
  border-radius: 0 30% 20% 0 / 0 60% 40% 0;
  transform: rotate(2deg);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-heatherlegh-cure .pine {
  position: absolute; bottom: 35%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2d5a27 0%, #1a3a14 60%, #0a1a08 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
}
.scn-heatherlegh-cure .cluster-1 {
  left: 20%; height: 70px;
  animation: hc-pine 8s ease-in-out infinite;
}
.scn-heatherlegh-cure .cluster-2 {
  left: 28%; height: 55px; width: 16px;
  animation: hc-pine 10s ease-in-out infinite reverse;
}
.scn-heatherlegh-cure .rickshaw {
  position: absolute; bottom: 25%; left: 35%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #d4a574 0%, #b08050 40%, #8a6040 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: hc-rickshaw 6s ease-in-out infinite;
}
.scn-heatherlegh-cure .wheel {
  position: absolute; bottom: 22%; left: 38%; width: 14px; height: 14px;
  background: radial-gradient(circle, #3a2a1a 40%, #1a0a0a 80%);
  border-radius: 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: hc-wheel 3s linear infinite;
}
.scn-heatherlegh-cure .figure-heatherlegh {
  position: absolute; bottom: 24%; left: 32%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #b8a080 0%, #7a6050 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  transform: rotate(-5deg);
  animation: hc-figure 5s ease-in-out infinite;
}
.scn-heatherlegh-cure .landslide {
  position: absolute; bottom: 15%; right: -5%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 60%, #2a1a0a 100%);
  border-radius: 40% 0 0 20% / 60% 0 0 30%;
  transform: rotate(3deg);
  animation: hc-slide 15s ease-in-out infinite;
}
@keyframes hc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes hc-pine {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes hc-rickshaw {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes hc-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes hc-figure {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(3px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes hc-slide {
  0%, 100% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
}

/* ghost-reappearance-sanjowlie - tense, sunlit */
.scn-ghost-reappearance-sanjowlie {
  background: linear-gradient(180deg, #fff8dc 0%, #f0e68c 30%, #d2b48c 70%, #a08060 100%),
              radial-gradient(ellipse at 80% 20%, #fffacd 0%, transparent 50%);
}
.scn-ghost-reappearance-sanjowlie .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0c4de 40%, transparent 100%);
  animation: gr-sky 9s ease-in-out infinite alternate;
}
.scn-ghost-reappearance-sanjowlie .road {
  position: absolute; bottom: 15%; left: -5%; width: 110%; height: 25%;
  background: linear-gradient(180deg, #d2b48c 0%, #c0a080 50%, #a08060 100%);
  transform: skewX(-2deg);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.2);
}
.scn-ghost-reappearance-sanjowlie .rickshaw-ghost {
  position: absolute; bottom: 35%; left: 50%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #0a0a0a 100%);
  border-radius: 5% 5% 20% 20% / 10% 10% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  transform: translateX(-50%) rotate(2deg);
  animation: gr-ghost 3s ease-in-out infinite alternate;
}
.scn-ghost-reappearance-sanjowlie .rider {
  position: absolute; bottom: 38%; left: 52%; width: 16px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(-10deg);
  animation: gr-rider 4s ease-in-out infinite;
}
.scn-ghost-reappearance-sanjowlie .horse {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 45px;
  background: linear-gradient(180deg, #8a7352 0%, #5a4a3a 60%, #3a2a1a 100%);
  border-radius: 30% 20% 40% 30% / 50% 30% 60% 40%;
  transform: rotate(2deg);
  box-shadow: 0 6px 10px rgba(0,0,0,0.3);
  animation: gr-horse 5s ease-in-out infinite;
}
.scn-ghost-reappearance-sanjowlie .dust {
  position: absolute; bottom: 10%; left: 35%; width: 40px; height: 15px;
  background: radial-gradient(ellipse, rgba(210,180,140,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: gr-dust 6s ease-in-out infinite;
}
.scn-ghost-reappearance-sanjowlie .shadow-sharp {
  position: absolute; bottom: 10%; left: 30%; width: 60px; height: 8px;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gr-shadow 7s ease-in-out infinite;
}
@keyframes gr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes gr-ghost {
  0% { transform: translateX(-50%) rotate(2deg) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.02); opacity: 1; }
  100% { transform: translateX(-50%) rotate(2deg) scale(0.98); opacity: 0.85; }
}
@keyframes gr-rider {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(-8deg) translateX(5px); }
  100% { transform: rotate(-10deg) translateX(-2px); }
}
@keyframes gr-horse {
  0%, 100% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-3px); }
}
@keyframes gr-dust {
  0%, 100% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.1); opacity: 0.3; }
}
@keyframes gr-shadow {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(1.2); }
}

/* item-engagement-ring - dark, sunlit */
.scn-item-engagement-ring {
  background: linear-gradient(180deg, #f0e68c 0%, #d2b48c 30%, #a08060 70%, #5a4a3a 100%),
              radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 60%);
}
.scn-item-engagement-ring .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0c4de 0%, #dcdcdc 40%, transparent 100%);
  animation: ir-sky 15s ease-in-out infinite alternate;
}
.scn-item-engagement-ring .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a08060 0%, #7a6050 60%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-item-engagement-ring .figure-kitty {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #e0c0a0 0%, #b09070 50%, #7a6050 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(-15deg);
  animation: ir-kitty 4s ease-in-out infinite;
}
.scn-item-engagement-ring .figure-narrator {
  position: absolute; bottom: 28%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 60%, #0a0500 100%);
  border-radius: 45% 45% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(10deg);
  animation: ir-narrator 4s ease-in-out infinite alternate;
}
.scn-item-engagement-ring .horse-away {
  position: absolute; bottom: 20%; left: 60%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #8a7352 0%, #5a4a3a 60%, #3a2a1a 100%);
  border-radius: 30% 20% 40% 30% / 50% 30% 60% 40%;
  transform: rotate(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ir-horse 6s ease-in-out infinite;
}
.scn-item-engagement-ring .whip {
  position: absolute; bottom: 40%; left: 52%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #a08060 0%, #7a6050 100%);
  border-radius: 2px;
  transform-origin: top left;
  transform: rotate(-40deg);
  animation: ir-whip 2s ease-in-out infinite;
}
.scn-item-engagement-ring .shadow-long {
  position: absolute; bottom: 5%; left: 30%; width: 100px; height: 10px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ir-shadow 8s ease-in-out infinite;
}
.scn-item-engagement-ring .ring-sparkle {
  position: absolute; bottom: 38%; left: 48%; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff8dc 0%, #f0e68c 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(240,230,140,0.6);
  animation: ir-sparkle 1s ease-in-out infinite alternate;
}
@keyframes ir-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ir-kitty {
  0% { transform: rotate(-15deg) translateX(0); }
  25% { transform: rotate(-10deg) translateX(6px); }
  50% { transform: rotate(-15deg) translateX(12px); }
  75% { transform: rotate(-12deg) translateX(6px); }
  100% { transform: rotate(-15deg) translateX(0); }
}
@keyframes ir-narrator {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-4px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes ir-horse {
  0%, 100% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(6deg) translateX(8px); }
}
@keyframes ir-whip {
  0%, 100% { transform: rotate(-40deg); }
  50% { transform: rotate(-20deg); }
}
@keyframes ir-shadow {
  0%, 100% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.1); opacity: 0.7; }
}
@keyframes ir-sparkle {
  0% { transform: scale(1); opacity: 0.4; }
  100% { transform: scale(1.5); opacity: 1; }
}

.scn-past-love-agnes {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 40%, #0d0d1a 100%), radial-gradient(ellipse at 30% 60%, #3a2a3a 0%, transparent 80%);
}
.scn-past-love-agnes .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1220 0%, #0d0d1a 70%);
  animation: pla-bg 12s ease-in-out infinite alternate;
}
.scn-past-love-agnes .window {
  position: absolute; left: 10%; top: 20%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 60%, #4a6a8a 0%, #1a2a3a 70%, #0d0d1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 40px 10px rgba(70, 100, 140, 0.3);
  animation: pla-window 8s ease-in-out infinite alternate;
}
.scn-past-love-agnes .lamp {
  position: absolute; left: 55%; bottom: 35%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d4a050 0%, #8a6020 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 12px #d4a050, 0 0 60px 20px rgba(212, 160, 80, 0.4);
  animation: pla-lamp 4s ease-in-out infinite alternate;
}
.scn-past-love-agnes .table {
  position: absolute; left: 50%; bottom: 25%; width: 40px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-past-love-agnes .figure-sit {
  position: absolute; left: 45%; bottom: 20%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pla-figure 6s ease-in-out infinite;
}
@keyframes pla-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pla-window { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.02); } 100% { opacity: 0.75; transform: scaleY(0.98); } }
@keyframes pla-lamp { 0% { box-shadow: 0 0 20px 8px #d4a050, 0 0 40px 12px rgba(212,160,80,0.3); } 50% { box-shadow: 0 0 35px 16px #f0c070, 0 0 70px 24px rgba(240,192,112,0.5); } 100% { box-shadow: 0 0 25px 10px #d4a050, 0 0 50px 16px rgba(212,160,80,0.35); } }
@keyframes pla-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-courting-kitty {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a202a 50%, #0d0d1a 100%), radial-gradient(ellipse at 70% 40%, #3a2a2a 0%, transparent 70%);
}
.scn-courting-kitty .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1220 0%, #0d0d1a 70%);
  animation: ck-ambient 15s ease-in-out infinite alternate;
}
.scn-courting-kitty .fireplace {
  position: absolute; left: 20%; bottom: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a3a1a 0%, #4a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 20px 4px #6a2010, 0 0 40px 12px rgba(200,80,30,0.5);
  animation: ck-fire 3s ease-in-out infinite alternate;
}
.scn-courting-kitty .window-moon {
  position: absolute; right: 10%; top: 20%; width: 25%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, #8a9aba 0%, #4a5a7a 60%, #1a2a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 30px 8px rgba(138,154,186,0.3);
  animation: ck-moon 10s ease-in-out infinite alternate;
}
.scn-courting-kitty .figure-man {
  position: absolute; left: 40%; bottom: 25%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ck-man 6s ease-in-out infinite;
}
.scn-courting-kitty .figure-woman {
  position: absolute; right: 35%; bottom: 28%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ck-woman 7s ease-in-out infinite reverse;
}
@keyframes ck-ambient { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ck-fire { 0% { box-shadow: 0 0 30px 8px rgba(200,80,30,0.4); transform: scaleY(1); } 50% { box-shadow: 0 0 50px 16px rgba(255,100,50,0.6); transform: scaleY(1.05); } 100% { box-shadow: 0 0 35px 10px rgba(200,80,30,0.45); transform: scaleY(0.97); } }
@keyframes ck-moon { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.01); } 100% { opacity: 0.75; transform: scaleY(0.99); } }
@keyframes ck-man { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-1px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ck-woman { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-1px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-item-yellow-rickshaw {
  background: linear-gradient(180deg, #4a7a9a 0%, #7a9aba 40%, #d4c080 100%), radial-gradient(ellipse at 50% 100%, #e0c080 0%, transparent 60%);
}
.scn-item-yellow-rickshaw .sky-bright {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7ab0d4 0%, #c0d8e0 100%);
  animation: yr-sky 20s ease-in-out infinite alternate;
}
.scn-item-yellow-rickshaw .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b09860 0%, #8a7a50 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: yr-road 15s ease-in-out infinite alternate;
}
.scn-item-yellow-rickshaw .rickshaw-body {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #d4b020 0%, #b09010 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: yr-body 8s ease-in-out infinite;
}
.scn-item-yellow-rickshaw .jhampanee-left {
  position: absolute; bottom: 18%; left: 35%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: yr-jhampanee 6s ease-in-out infinite;
}
.scn-item-yellow-rickshaw .jhampanee-right {
  position: absolute; bottom: 18%; right: 35%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: yr-jhampanee 6s ease-in-out infinite -2s;
}
.scn-item-yellow-rickshaw .horse-ghost {
  position: absolute; bottom: 22%; right: 20%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 60% 50%, rgba(200,200,200,0.6) 0%, transparent 80%);
  filter: blur(4px);
  animation: yr-horse 10s ease-in-out infinite alternate;
}
.scn-item-yellow-rickshaw .rider-ghost {
  position: absolute; bottom: 28%; right: 22%; width: 12px; height: 18px;
  background: radial-gradient(ellipse at 50% 40%, rgba(220,220,240,0.5) 0%, transparent 70%);
  filter: blur(3px);
  animation: yr-rider 10s ease-in-out infinite alternate -3s;
}
@keyframes yr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes yr-road { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes yr-body { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes yr-jhampanee { 0% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(0); } 75% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes yr-horse { 0% { opacity: 0; } 25% { opacity: 0.6; } 50% { opacity: 1; } 75% { opacity: 0.5; } 100% { opacity: 0; } }
@keyframes yr-rider { 0% { opacity: 0; } 25% { opacity: 0.5; } 50% { opacity: 0.9; } 75% { opacity: 0.4; } 100% { opacity: 0; } }

.scn-ladies-mile-horror {
  background: linear-gradient(180deg, #6a8a9a 0%, #8aaaba 50%, #c0d0d0 100%), radial-gradient(ellipse at 50% 100%, #a0b8b8 0%, transparent 70%);
}
.scn-ladies-mile-horror .sky-glare {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #80a0b0 0%, #b0c8d0 100%);
  animation: lmh-sky 18s ease-in-out infinite alternate;
}
.scn-ladies-mile-horror .path {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(180deg, #a09070 0%, #807050 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: lmh-path 12s ease-in-out infinite alternate;
}
.scn-ladies-mile-horror .tree-left {
  position: absolute; bottom: 30%; left: 5%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lmh-tree 8s ease-in-out infinite;
}
.scn-ladies-mile-horror .tree-right {
  position: absolute; bottom: 30%; right: 5%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lmh-tree 8s ease-in-out infinite -4s;
}
.scn-ladies-mile-horror .apparition {
  position: absolute; bottom: 25%; left: 50%; width: 18px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, rgba(220,220,240,0.6) 0%, transparent 80%);
  filter: blur(2px);
  animation: lmh-apparition 7s ease-in-out infinite alternate;
}
@keyframes lmh-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes lmh-path { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(-1px); } }
@keyframes lmh-tree { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes lmh-apparition { 0% { opacity: 0.2; transform: translateX(-50%) scaleY(0.95); } 50% { opacity: 0.8; transform: translateX(-50%) scaleY(1.05); } 100% { opacity: 0.3; transform: translateX(-50%) scaleY(1); } }

.scn-jukes-crater {
  background:
    linear-gradient(180deg, #a8acb0 0%, #7c8085 40%, #4a4e52 70%, #2a2e30 100%),
    radial-gradient(ellipse at 50% 80%, #3a3e42 0%, transparent 60%);
}
.scn-jukes-crater .sky {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, #bcbfc4 0%, #909498 100%);
  animation: jc-sky 18s ease-in-out infinite alternate;
}
.scn-jukes-crater .crater-wall-far {
  position: absolute; top: 15%; left: -10%; right: -10%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #6b7068 0%, #4b5048 70%, #2b2e2a 100%);
  border-radius: 40% 60% 0 0 / 60% 70% 0 0;
  animation: jc-wall 25s ease-in-out infinite alternate;
}
.scn-jukes-crater .crater-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8c8272 0%, #6b6151 50%, #4a4035 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
  animation: jc-floor 15s ease-in-out infinite alternate;
}
.scn-jukes-crater .well {
  position: absolute; bottom: 25%; right: 25%; width: 30px; height: 50px;
  background: #111;
  border-radius: 40%;
  box-shadow:
    inset 0 8px 12px rgba(0,0,0,0.9),
    inset 0 -4px 8px rgba(60, 40, 20, 0.2),
    0 0 20px 4px rgba(0,0,0,0.6);
  animation: jc-well 4s ease-in-out infinite alternate;
}
.scn-jukes-crater .driftwood-posts {
  position: absolute; bottom: 28%; left: 5%; right: 5%; height: 20px;
  background:
    repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 3px, transparent 3px, transparent 30px),
    repeating-linear-gradient(90deg, #2a1a0a 0px, #2a1a0a 2px, transparent 2px, transparent 35px);
  background-position: 0 0, 15px 10px;
  background-size: 60px 20px, 70px 20px;
  animation: jc-driftwood 12s linear infinite alternate;
}
.scn-jukes-crater .figure-tumble {
  position: absolute; bottom: 15%; left: 45%; width: 40px; height: 25px;
  background: #0a0a0a;
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  box-shadow: -2px -10px 0 #1a1a1a;
  transform-origin: center center;
  animation: jc-tumble 1.5s cubic-bezier(0.68, -0.55, 0.27, 1.55) infinite;
}
.scn-jukes-crater .shadow-creep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, #0a0a0a 100%);
  animation: jc-shadow 8s ease-in-out infinite alternate;
}
.scn-jukes-crater .muzzle-flash {
  position: absolute; top: 25%; right: 10%; width: 15px; height: 15px;
  background: radial-gradient(circle, #fff 0%, #f5d142 30%, transparent 70%);
  box-shadow: 0 0 30px 15px rgba(245, 209, 66, 0.3);
  animation: jc-flash 3s steps(1) infinite;
}
@keyframes jc-sky {
  0% { filter: brightness(1) contrast(1); }
  50% { filter: brightness(0.95) contrast(1.1); }
  100% { filter: brightness(1.05) contrast(0.9); }
}
@keyframes jc-wall {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.01) translateY(-3px); }
  100% { transform: scale(1.02) translateY(-5px); }
}
@keyframes jc-floor {
  0% { filter: brightness(1); }
  50% { filter: brightness(0.95); }
  100% { filter: brightness(0.9); }
}
@keyframes jc-well {
  0% { transform: scale(1); box-shadow: inset 0 8px 12px rgba(0,0,0,0.9), inset 0 -4px 8px rgba(60,40,20,0.2), 0 0 20px 4px rgba(0,0,0,0.6); }
  50% { transform: scale(1.02); box-shadow: inset 0 12px 20px rgba(0,0,0,1), inset 0 -6px 12px rgba(60,40,20,0.3), 0 0 30px 8px rgba(0,0,0,0.8); }
  100% { transform: scale(0.98); box-shadow: inset 0 6px 10px rgba(0,0,0,0.8), inset 0 -2px 6px rgba(60,40,20,0.1), 0 0 15px 2px rgba(0,0,0,0.5); }
}
@keyframes jc-driftwood {
  0% { background-position: 0 0, 15px 10px; }
  100% { background-position: -60px 0, -55px 10px; }
}
@keyframes jc-tumble {
  0% { transform: translate(0, 0) rotate(0deg) scale(1); }
  25% { transform: translate(15px, -10px) rotate(30deg) scale(1.1); }
  50% { transform: translate(30px, 0) rotate(60deg) scale(1); }
  75% { transform: translate(45px, -5px) rotate(90deg) scale(1.05); }
  100% { transform: translate(60px, 0) rotate(120deg) scale(1); }
}
@keyframes jc-shadow {
  0% { opacity: 0.2; }
  50% { opacity: 0.6; }
  100% { opacity: 0.9; }
}
@keyframes jc-flash {
  0%, 100% { opacity: 0; transform: scale(0.5); }
  8% { opacity: 1; transform: scale(1.5); }
  12% { opacity: 0; transform: scale(0.8); }
  65% { opacity: 0; transform: scale(0.4); }
  72% { opacity: 1; transform: scale(1.2); }
  78% { opacity: 0; transform: scale(0.6); }
}
/* end per-scene blocks */
