/* 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-marguerite-deathbed {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #3a2a24 100%), radial-gradient(ellipse at 40% 60%, #2a1e1a 0%, transparent 70%);
}
.scn-marguerite-deathbed .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1f1814 0%, #2f241e 50%, #1f1814 100%);
  animation: md-wall 20s ease-in-out infinite alternate;
}
.scn-marguerite-deathbed .bed {
  position: absolute; bottom: 15%; left: 25%; width: 55%; height: 30%;
  background: linear-gradient(180deg, #4a352a 0%, #2a1e1a 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 12px 20px rgba(0,0,0,.6);
  animation: md-bed 6s ease-in-out infinite;
}
.scn-marguerite-deathbed .marguerite {
  position: absolute; bottom: 28%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a24 0%, #1f1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: md-fig 4s ease-in-out infinite;
}
.scn-marguerite-deathbed .suzanne {
  position: absolute; bottom: 18%; left: 32%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: md-fig 3s ease-in-out infinite 1s;
}
.scn-marguerite-deathbed .priest {
  position: absolute; bottom: 20%; right: 22%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: md-priest 8s ease-in-out infinite;
}
.scn-marguerite-deathbed .candle {
  position: absolute; bottom: 50%; left: 15%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #f0a060 0%, #b07030 100%);
  border-radius: 2px; box-shadow: 0 0 24px 8px #f0a060, 0 0 48px 16px rgba(240,160,96,.4);
  animation: md-candle 1s ease-in-out infinite alternate;
}
.scn-marguerite-deathbed .shadow {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: md-shadow 6s ease-in-out infinite;
}
@keyframes md-wall {
  0% { opacity: .85 }
  50% { opacity: .95 }
  100% { opacity: .85 }
}
@keyframes md-bed {
  0%,100% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
}
@keyframes md-fig {
  0% { transform: translateX(0) translateY(0) rotate(-1deg) }
  50% { transform: translateX(2px) translateY(-1px) rotate(1deg) }
  100% { transform: translateX(-1px) translateY(0) rotate(0) }
}
@keyframes md-priest {
  0%,100% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-3px) scaleY(1.02) }
}
@keyframes md-candle {
  0% { box-shadow: 0 0 20px 6px #f0a060, 0 0 40px 12px rgba(240,160,96,.3); opacity: .85 }
  100% { box-shadow: 0 0 30px 10px #f0a060, 0 0 60px 20px rgba(240,160,96,.5); opacity: 1 }
}
@keyframes md-shadow {
  0%,100% { opacity: .6 }
  50% { opacity: .8 }
}

.scn-marguerite-confession {
  background: linear-gradient(180deg, #1f1a1e 0%, #2f242a 40%, #1f1a1e 100%), radial-gradient(ellipse at 50% 30%, #3f3038 0%, transparent 70%);
}
.scn-marguerite-confession .room-shadow {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1418 0%, transparent 50%);
  animation: mc-shadow 12s ease-in-out infinite alternate;
}
.scn-marguerite-confession .marguerite-sit {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #3a2a30 0%, #1f181c 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: mc-sit 4s ease-in-out infinite;
}
.scn-marguerite-confession .suzanne-kneel {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #2a2024 0%, #181014 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: mc-kneel 3s ease-in-out infinite 0.5s;
}
.scn-marguerite-confession .priest-stand {
  position: absolute; bottom: 15%; right: 25%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a2228 0%, #1a1418 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: mc-stand 8s ease-in-out infinite;
}
.scn-marguerite-confession .cross {
  position: absolute; bottom: 40%; left: 18%; width: 4px; height: 28px;
  background: #4a3a40; border-radius: 1px; box-shadow: 0 0 8px 2px rgba(200,160,120,.2);
  animation: mc-cross 6s ease-in-out infinite alternate;
}
.scn-marguerite-confession .light-beam {
  position: absolute; top: 0; left: 45%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(200,180,160,.15) 0%, transparent 100%);
  animation: mc-light 5s ease-in-out infinite;
}
@keyframes mc-shadow { 0% { opacity: .7 } 100% { opacity: .9 } }
@keyframes mc-sit { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes mc-kneel { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes mc-stand { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } }
@keyframes mc-cross { 0% { opacity: .7; box-shadow: 0 0 4px 1px rgba(200,160,120,.1) } 100% { opacity: 1; box-shadow: 0 0 12px 4px rgba(200,160,120,.3) } }
@keyframes mc-light { 0%,100% { opacity: .3 } 50% { opacity: .6 } }

/* scene 1 */
.scn-lemonnier-fathers-love {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 60%);
}
.scn-lemonnier-fathers-love .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-lemonnier-fathers-love .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-lemonnier-fathers-love .cradle-shadow { position:absolute; bottom:30%; left:20%; width:120px; height:50px; background: rgba(0,0,0,0.4); border-radius: 40% 40% 20% 20%; filter: blur(12px); animation: lfl-shadow 6s ease-in-out infinite; }
.scn-lemonnier-fathers-love .cradle { position:absolute; bottom:30%; left:20%; width:120px; height:50px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); transform-origin: bottom center; animation: lfl-cradle 4s ease-in-out infinite; }
.scn-lemonnier-fathers-love .child { position:absolute; bottom:35%; left:30%; width:30px; height:18px; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lfl-child 3s ease-in-out infinite; }
.scn-lemonnier-fathers-love .father { position:absolute; bottom:25%; left:60%; width:40px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lfl-father 5s ease-in-out infinite; }
.scn-lemonnier-fathers-love .candle { position:absolute; bottom:45%; left:75%; width:6px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #c08040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 8px #ffc060; }
.scn-lemonnier-fathers-love .glow { position:absolute; bottom:45%; left:75%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,192,96,0.3) 0%, transparent 70%); transform: translate(-50%, -50%); animation: lfl-glow 3s ease-in-out infinite alternate; }
@keyframes lfl-shadow { 0%,100% { opacity:0.5 } 50% { opacity:0.8 } }
@keyframes lfl-cradle { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 75% { transform: rotate(-2deg) translateY(-1px); } }
@keyframes lfl-child { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-2px); } 75% { transform: translateY(-1px); } }
@keyframes lfl-father { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(3deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes lfl-glow { 0% { opacity:0.7; transform: translate(-50%, -50%) scale(1); } 100% { opacity:1; transform: translate(-50%, -50%) scale(1.2); } }

/* scene 2 */
.scn-lemonnier-grieving-father {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 30%, #2a2a3a 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 60%);
}
.scn-lemonnier-grieving-father .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-lemonnier-grieving-father .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; }
.scn-lemonnier-grieving-father .cradle-dark { position:absolute; bottom:25%; left:15%; width:140px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: inset 0 4px 12px rgba(0,0,0,0.8); animation: lgf-cradle 5s ease-in-out infinite; }
.scn-lemonnier-grieving-father .child-silhouette { position:absolute; bottom:30%; left:25%; width:25px; height:15px; background: #0a0a1a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lgf-child 3s ease-in-out infinite; }
.scn-lemonnier-grieving-father .father-grief { position:absolute; bottom:20%; left:55%; width:50px; height:100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lgf-father 6s ease-in-out infinite; }
.scn-lemonnier-grieving-father .shadow-arm { position:absolute; bottom:28%; left:50%; width:40px; height:20px; background: #0a0a1a; border-radius: 50% 50% 20% 20%; transform: rotate(-30deg); transform-origin: right center; animation: lgf-arm 4s ease-in-out infinite; }
.scn-lemonnier-grieving-father .tear-drop { position:absolute; bottom:15%; left:65%; width:4px; height:6px; background: rgba(100,140,180,0.5); border-radius: 50% 50% 50% 0; transform: rotate(45deg); animation: lgf-tear 2s ease-in-out infinite; }
@keyframes lgf-cradle { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes lgf-child { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-1px); } 75% { transform: translateY(-1px); } }
@keyframes lgf-father { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(-4deg); } 75% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes lgf-arm { 0%,100% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-20deg) translateX(5px); } }
@keyframes lgf-tear { 0%,100% { opacity:0; transform: translate(0,0) rotate(45deg) scale(1); } 50% { opacity:0.8; transform: translate(2px,10px) rotate(45deg) scale(0.8); } }

/* scene 3 */
.scn-lemonnier-childhood {
  background: 
    linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 30%, #c0b090 60%, #a09080 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
}
.scn-lemonnier-childhood .window-frame { position:absolute; inset:5% 10% 40% 10%; border: 8px solid #8a7a6a; border-radius: 4% 4% 2% 2%; background: linear-gradient(180deg, #d0e0f0 0%, #b0c0d0 100%); box-shadow: inset 0 0 30px rgba(255,255,200,0.5); }
.scn-lemonnier-childhood .sunlight { position:absolute; inset:5% 10% 40% 10%; background: linear-gradient(135deg, rgba(255,255,220,0.4) 0%, transparent 60%); opacity:0.6; animation: lch-sunlight 10s ease-in-out infinite alternate; }
.scn-lemonnier-childhood .father-stand { position:absolute; bottom:20%; left:20%; width:45px; height:100px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lch-father 4s ease-in-out infinite; }
.scn-lemonnier-childhood .child-play { position:absolute; bottom:15%; left:35%; width:30px; height:40px; background: linear-gradient(180deg, #a09080 0%, #807060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lch-child 3s ease-in-out infinite; }
.scn-lemonnier-childhood .duretour { position:absolute; bottom:20%; left:55%; width:50px; height:100px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lch-duretour 5s ease-in-out infinite; }
.scn-lemonnier-childhood .ball { position:absolute; bottom:25%; left:30%; width:20px; height:20px; background: radial-gradient(circle at 35% 35%, #e0a050 0%, #c08030 100%); border-radius: 50%; box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: lch-ball 2s ease-in-out infinite; }
.scn-lemonnier-childhood .rug { position:absolute; bottom:5%; left:15%; right:15%; height:30px; background: linear-gradient(90deg, #c04040 0%, #d06060 20%, #c04040 40%, #d06060 60%, #c04040 80%, #d06060 100%); border-radius: 40% 40% 0 0; opacity:0.4; }
.scn-lemonnier-childhood .toy-block { position:absolute; bottom:12%; left:45%; width:15px; height:15px; background: linear-gradient(135deg, #c0e060 0%, #80a040 100%); border-radius: 10%; box-shadow: 2px 2px 4px rgba(0,0,0,0.2); animation: lch-block 3s ease-in-out infinite; }
@keyframes lch-sunlight { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes lch-father { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes lch-child { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(3deg); } 75% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes lch-duretour { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } }
@keyframes lch-ball { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-8px); } 75% { transform: translateY(-4px); } }
@keyframes lch-block { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(15deg); } 75% { transform: translateY(-1px) rotate(-10deg); } }

/* scene 4 */
.scn-duretour-affection {
  background: 
    linear-gradient(180deg, #f8f0d8 0%, #e8d8b8 30%, #d0c0a0 60%, #b8a890 100%),
    radial-gradient(ellipse at 30% 40%, #ffffe0 0%, transparent 50%);
}
.scn-duretour-affection .bg-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%); }
.scn-duretour-affection .floor-bright { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 30% 30% 0 0 / 15% 15% 0 0; }
.scn-duretour-affection .duretour-toss { position:absolute; bottom:25%; left:40%; width:55px; height:110px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dta-toss 2s ease-in-out infinite; }
.scn-duretour-affection .child-laugh { position:absolute; bottom:40%; left:45%; width:30px; height:25px; background: linear-gradient(180deg, #a09080 0%, #807060 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dta-child 2s ease-in-out infinite; }
.scn-duretour-affection .father-watch { position:absolute; bottom:20%; left:65%; width:45px; height:100px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dta-father 4s ease-in-out infinite; }
.scn-duretour-affection .mustache-tick { position:absolute; bottom:30%; left:42%; width:20px; height:10px; background: #3a2a1a; border-radius: 50% 50% 20% 20%; transform-origin: center; animation: dta-mustache 1.5s ease-in-out infinite; }
.scn-duretour-affection .sparkle { position:absolute; top:30%; right:20%; width:10px; height:10px; background: radial-gradient(circle, #ffe080 0%, transparent 70%); border-radius: 50%; animation: dta-sparkle 3s ease-in-out infinite; }
@keyframes dta-toss { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-10px) rotate(5deg); } 75% { transform: translateY(-5px) rotate(-3deg); } }
@keyframes dta-child { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-15px) rotate(10deg); } 75% { transform: translateY(-8px) rotate(-5deg); } }
@keyframes dta-father { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes dta-mustache { 0%,100% { transform: translateY(0) rotate(0deg) scaleX(1); } 25% { transform: translateY(-2px) rotate(10deg) scaleX(1.2); } 75% { transform: translateY(-1px) rotate(-5deg) scaleX(0.9); } }
@keyframes dta-sparkle { 0%,100% { opacity:0; transform: scale(1); } 50% { opacity:1; transform: scale(2); } }

/* grief-and-despair */
.scn-grief-and-despair {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 50%, #2a1a2e 100%),
    radial-gradient(ellipse at 30% 80%, #2a1a2e 0%, transparent 60%);
}
.scn-grief-and-despair .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); }
.scn-grief-and-despair .window { position: absolute; top: 12%; left: 35%; width: 30%; height: 40%; background: #0d0d1a; border: 6px solid #2a2a3e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-grief-and-despair .sky { position: absolute; top: 14%; left: 37%; width: 26%; height: 36%; background: linear-gradient(180deg, #0a0a1e 0%, #151530 100%); border-radius: 2px; animation: gd-sky 12s ease-in-out infinite alternate; }
.scn-grief-and-despair .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #0d0d1a 0%, #1a1a2e 100%); }
.scn-grief-and-despair .figure { position: absolute; bottom: 20%; left: 50%; width: 30px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gd-figure 6s ease-in-out infinite; }
.scn-grief-and-despair .candle { position: absolute; bottom: 26%; left: 40%; width: 8px; height: 20px; background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%); border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; }
.scn-grief-and-despair .glow { position: absolute; bottom: 30%; left: 38%; width: 24px; height: 24px; background: radial-gradient(circle, #e0b860 0%, #c08040 50%, transparent 70%); border-radius: 50%; animation: gd-glow 2s ease-in-out infinite alternate; }
@keyframes gd-sky { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:0.7; transform: scale(0.98); } }
@keyframes gd-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(2deg); } }
@keyframes gd-glow { 0% { box-shadow: 0 0 20px 6px #e0b860, 0 0 40px 12px rgba(224,184,96,0.4); opacity:0.8; } 50% { box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.5); opacity:1; } 100% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,0.3); opacity:0.7; } }

/* fixed-idea-of-absence */
.scn-fixed-idea-of-absence {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 40%, #2a2a3a 100%),
    radial-gradient(ellipse at 70% 60%, #2a2a3a 0%, transparent 50%);
}
.scn-fixed-idea-of-absence .room { position: absolute; inset: 0; background: linear-gradient(135deg, #0e0e1a 0%, #1a1a2a 100%); }
.scn-fixed-idea-of-absence .chair { position: absolute; bottom: 25%; left: 35%; width: 60px; height: 80px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 10% 10%; transform: perspective(400px) rotateX(10deg); }
.scn-fixed-idea-of-absence .figure { position: absolute; bottom: 28%; left: 38%; width: 40px; height: 60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fa-figure 8s ease-in-out infinite; }
.scn-fixed-idea-of-absence .portrait { position: absolute; top: 15%; right: 25%; width: 50px; height: 70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border: 4px solid #3a3a4a; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: fa-portrait 10s ease-in-out infinite alternate; }
.scn-fixed-idea-of-absence .lamp { position: absolute; top: 20%; left: 20%; width: 12px; height: 30px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20%; }
.scn-fixed-idea-of-absence .lamp-glow { position: absolute; top: 18%; left: 17%; width: 30px; height: 30px; background: radial-gradient(circle, #d0a060 0%, #a08040 40%, transparent 70%); border-radius: 50%; animation: fa-glow 3s ease-in-out infinite alternate; }
.scn-fixed-idea-of-absence .shadow { position: absolute; bottom: 22%; left: 30%; width: 80px; height: 20px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(8px); animation: fa-shadow 6s ease-in-out infinite; }
@keyframes fa-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes fa-portrait { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes fa-glow { 0% { box-shadow: 0 0 20px 4px #d0a060, 0 0 40px 10px rgba(208,160,96,0.4); opacity:0.8; } 50% { box-shadow: 0 0 30px 8px #e0b070, 0 0 60px 15px rgba(224,176,112,0.5); opacity:1; } 100% { box-shadow: 0 0 15px 3px #a08040, 0 0 30px 6px rgba(160,128,64,0.3); opacity:0.6; } }
@keyframes fa-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.2); opacity:0.6; } 100% { transform: scaleX(0.9); opacity:0.3; } }

/* unique-woman-vanishes */
.scn-unique-woman-vanishes {
  background: linear-gradient(180deg, #0c0c18 0%, #18182a 50%, #282838 100%),
    radial-gradient(ellipse at 50% 30%, #282838 0%, transparent 60%);
}
.scn-unique-woman-vanishes .bg { position: absolute; inset: 0; background: linear-gradient(135deg, #0c0c18 0%, #18182a 100%); }
.scn-unique-woman-vanishes .mirror { position: absolute; top: 15%; left: 30%; width: 40%; height: 50%; background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%); border: 8px solid #3a3a4a; border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); transform: perspective(600px) rotateY(5deg); }
.scn-unique-woman-vanishes .mirror-glow { position: absolute; top: 18%; left: 33%; width: 34%; height: 44%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.1) 0%, transparent 70%); border-radius: 4px; animation: uv-glow 5s ease-in-out infinite alternate; }
.scn-unique-woman-vanishes .figure { position: absolute; bottom: 20%; left: 42%; width: 28px; height: 50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: uv-figure 7s ease-in-out infinite; }
.scn-unique-woman-vanishes .doorway { position: absolute; bottom: 0; left: 10%; width: 25%; height: 60%; background: linear-gradient(180deg, #0a0a1a 0%, #0d0d1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-unique-woman-vanishes .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, #0c0c18 0%, #18182a 100%); }
@keyframes uv-glow { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(0.95); } }
@keyframes uv-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity:0.8; } 50% { transform: translateX(-50%) translateY(-4px) rotate(-2deg); opacity:0.5; } 100% { transform: translateX(-50%) translateY(0) rotate(2deg); opacity:0.3; } }

/* never-again */
.scn-never-again {
  background: linear-gradient(180deg, #0d0d19 0%, #191929 50%, #292939 100%),
    radial-gradient(ellipse at 80% 20%, #292939 0%, transparent 50%);
}
.scn-never-again .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #191929 0%, #0d0d19 100%); }
.scn-never-again .clock { position: absolute; top: 12%; right: 20%; width: 60px; height: 60px; background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%); border: 6px solid #3a3a4a; border-radius: 50%; animation: na-clock 60s linear infinite; }
.scn-never-again .clock::after { content: ''; position: absolute; top: 50%; left: 50%; width: 2px; height: 24px; background: #8a7a6a; transform-origin: bottom; animation: na-hand 60s linear infinite; }
.scn-never-again .figure { position: absolute; bottom: 20%; left: 50%; width: 32px; height: 52px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: na-figure 10s ease-in-out infinite; }
.scn-never-again .door { position: absolute; bottom: 0; left: 5%; width: 20%; height: 70%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
.scn-never-again .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #0d0d19 0%, #191929 100%); }
.scn-never-again .shadow { position: absolute; bottom: 22%; left: 30%; width: 100px; height: 20px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(10px); animation: na-shadow 8s ease-in-out infinite; }
.scn-never-again .dust { position: absolute; top: 20%; left: 10%; width: 4px; height: 4px; background: rgba(200,180,160,0.3); border-radius: 50%; animation: na-dust 15s linear infinite; }
@keyframes na-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes na-hand { 0% { transform: rotate(0deg); } 100% { transform: rotate(-360deg); } }
@keyframes na-figure { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95) translateY(2px); } 100% { transform: translateX(-50%) scaleY(1.05) translateY(-2px); } }
@keyframes na-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.1); opacity:0.5; } 100% { transform: scaleX(0.9); opacity:0.2; } }
@keyframes na-dust { 0% { transform: translate(0, 0) scale(1); opacity:0; } 10% { opacity:0.6; } 90% { opacity:0.6; } 100% { transform: translate(30px, -60px) scale(0.5); opacity:0; } }

/* Scene: saval-regret-love (overcast, dark, interior) */
.scn-saval-regret-love { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%), radial-gradient(ellipse at 30% 70%, #3a3a4a 0%, transparent 60%); }
.scn-saval-regret-love .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(90deg, #2a2a35 0%, #1e1e28 50%, #2a2a35 100%); }
.scn-saval-regret-love .wall { position:absolute; top:0; left:0; right:0; bottom:15%; background: linear-gradient(135deg, #1f1f2f 0%, #181828 100%); }
.scn-saval-regret-love .window { position:absolute; top:10%; left:50%; width:35%; height:45%; transform:translateX(-50%); background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border:3px solid #2a2a3a; border-radius:10px; box-shadow: inset 0 0 20px rgba(80,80,120,.3); }
.scn-saval-regret-love .bed { position:absolute; bottom:15%; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:0 0 20px 20px; }
.scn-saval-regret-love .figure { position:absolute; bottom:20%; left:30%; width:40%; height:35%; background: radial-gradient(ellipse at 50% 50%, #4a4a5a 0%, #2a2a3a 80%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: srl-breathe 6s ease-in-out infinite; }
.scn-saval-regret-love .clock { position:absolute; top:8%; right:10%; width:12%; height:15%; background: radial-gradient(circle, #5a5a6a 0%, #3a3a4a 100%); border-radius:50%; border:2px solid #2a2a3a; }
.scn-saval-regret-love .clock::after { content:''; position:absolute; top:50%; left:50%; width:4px; height:40%; background:#6a6a7a; transform:translate(-50%,-100%) rotate(0deg); transform-origin: bottom center; border-radius:2px; animation: srl-tick 60s linear infinite; }
.scn-saval-regret-love .bottle { position:absolute; bottom:18%; right:15%; width:8%; height:20%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius:0 0 40% 40%; }
@keyframes srl-breathe { 0%,100% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.02) scaleX(0.98); } }
@keyframes srl-tick { 0% { transform: translate(-50%,-100%) rotate(0deg); } 100% { transform: translate(-50%,-100%) rotate(360deg); } }

/* Scene: saval-love-unfulfilled (overcast, dark, doorway scene) */
.scn-saval-love-unfulfilled { background: linear-gradient(135deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%), radial-gradient(circle at 60% 80%, #3a3a4e 0%, transparent 70%); }
.scn-saval-love-unfulfilled .floor-dark { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1a 100%); }
.scn-saval-love-unfulfilled .doorway { position:absolute; top:10%; left:35%; width:30%; height:70%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border:3px solid #3a3a4a; border-radius:0 0 20px 20px; }
.scn-saval-love-unfulfilled .figure-left { position:absolute; bottom:25%; left:20%; width:20%; height:50%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: slu-turn 7s ease-in-out infinite; }
.scn-saval-love-unfulfilled .figure-right { position:absolute; bottom:25%; right:20%; width:20%; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: slu-fade 10s ease-in-out infinite alternate; }
.scn-saval-love-unfulfilled .light-shaft { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(160,160,200,0.08) 0%, transparent 60%); animation: slu-shaft 8s ease-in-out infinite alternate; }
.scn-saval-love-unfulfilled .dust { position:absolute; top:20%; left:35%; width:30%; height:60%; background: radial-gradient(circle, rgba(200,200,255,0.03) 0%, transparent 70%); animation: slu-dust 20s linear infinite; }
@keyframes slu-turn { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(-5px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(5deg) translateX(5px); } }
@keyframes slu-fade { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(0.95); } 100% { opacity:1; transform: scaleX(1); } }
@keyframes slu-shaft { 0% { left:25%; opacity:0.2; } 50% { left:35%; opacity:0.6; } 100% { left:25%; opacity:0.2; } }
@keyframes slu-dust { 0% { transform: translateY(0) scale(1); opacity:0; } 50% { transform: translateY(-20px) scale(1.2); opacity:0.5; } 100% { transform: translateY(-40px) scale(0.8); opacity:0; } }

/* Scene: saval-memory-walks (sunlit, warm, outdoors) */
.scn-saval-memory-walks { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 70%, #d2b48c 100%); }
.scn-saval-memory-walks .sky-warm { position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); }
.scn-saval-memory-walks .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #90ee90 0%, #32cd32 50%, #228b22 100%); border-radius:80% 80% 0 0 / 20% 20% 0 0; }
.scn-saval-memory-walks .tree-left { position:absolute; bottom:35%; left:5%; width:15%; height:60%; background: linear-gradient(135deg, #8b4513 0%, #5c3a1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.2); animation: smw-sway 12s ease-in-out infinite; }
.scn-saval-memory-walks .tree-right { position:absolute; bottom:35%; right:5%; width:15%; height:60%; background: linear-gradient(135deg, #8b4513 0%, #5c3a1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform: scaleX(-1); box-shadow: inset 0 -10px 20px rgba(0,0,0,.2); animation: smw-sway 14s ease-in-out infinite reverse; }
.scn-saval-memory-walks .figure-walk { position:absolute; bottom:40%; left:30%; width:12%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: smw-walk 4s steps(4) infinite; }
.scn-saval-memory-walks .sunbeam { position:absolute; top:10%; left:20%; width:50%; height:60%; background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%); transform: rotate(-20deg); animation: smw-beam 8s ease-in-out infinite alternate; }
.scn-saval-memory-walks .leaves { position:absolute; top:15%; left:0; right:0; height:30%; background: radial-gradient(circle at 20% 30%, #90ee90 0%, transparent 60%); filter: blur(8px); animation: smw-leaves 20s linear infinite; }
@keyframes smw-sway { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes smw-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(-2deg); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(30px) rotate(2deg); } 100% { transform: translateX(40px) rotate(0deg); } }
@keyframes smw-beam { 0% { opacity:0.3; transform: rotate(-20deg) scaleX(0.8); } 50% { opacity:0.7; transform: rotate(-15deg) scaleX(1); } 100% { opacity:0.5; transform: rotate(-25deg) scaleX(0.9); } }
@keyframes smw-leaves { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }

/* Scene: saval-memory-picnic (sunlit, warm, overhead picnic) */
.scn-saval-memory-picnic { background: linear-gradient(180deg, #b0e57c 0%, #6b8e23 50%, #8fbc8f 100%); }
.scn-saval-memory-picnic .grass { position:absolute; inset:0; background: linear-gradient(135deg, #7c9c5e 0%, #5a7a3a 100%); }
.scn-saval-memory-picnic .blanket { position:absolute; bottom:30%; left:20%; width:60%; height:40%; background: linear-gradient(135deg, #c44d34 0%, #a83c26 50%, #8b2e1a 100%); border-radius:15px; transform:rotate(5deg); box-shadow: 0 8px 16px rgba(0,0,0,.2); }
.scn-saval-memory-picnic .basket { position:absolute; bottom:50%; left:30%; width:20%; height:20%; background: linear-gradient(135deg, #b8860b 0%, #8b6508 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; }
.scn-saval-memory-picnic .figure1 { position:absolute; bottom:30%; left:25%; width:18%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-10deg); }
.scn-saval-memory-picnic .figure2 { position:absolute; bottom:30%; right:25%; width:18%; height:35%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(10deg); }
.scn-saval-memory-picnic .plate { position:absolute; bottom:40%; left:45%; width:10%; height:8%; background: radial-gradient(circle, #f5deb3 0%, #d2b48c 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.scn-saval-memory-picnic .bottle-picnic { position:absolute; bottom:45%; left:55%; width:6%; height:16%; background: linear-gradient(180deg, #c0c0c0 0%, #a0a0a0 100%); border-radius:0 0 30% 30%; transform:rotate(15deg); }
@keyframes smp-birdsong { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(3deg); } }
/* Only 1 animation needed but we already have 3 other scenes with 4+ each. This scene has 1 explicit animation; but we can add more to reach ≥4. Let's add a gentle floating animation for grass or blanket. */
.scn-saval-memory-picnic .grass { animation: smp-grass 30s ease-in-out infinite alternate; }
.scn-saval-memory-picnic .blanket { animation: smp-blanket 12s ease-in-out infinite; }
.scn-saval-memory-picnic .figure1, .scn-saval-memory-picnic .figure2 { animation: smp-figures 8s ease-in-out infinite alternate; }
@keyframes smp-grass { 0% { background-position: 0% 0%; } 100% { background-position: 10% 10%; } }
@keyframes smp-blanket { 0%,100% { transform: rotate(4deg) scale(1); } 50% { transform: rotate(6deg) scale(1.02); } }
@keyframes smp-figures { 0% { transform: rotate(-10deg) translateY(0); } 100% { transform: rotate(-8deg) translateY(-3px); } }

.scn-henriette-swings { background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 60%, #90EE90 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 70%); }
.scn-henriette-swings .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%); animation: hs-sky 18s ease-in-out infinite alternate; }
.scn-henriette-swings .sun { position:absolute; top:8%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #FFD700 0%, #FFA500 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,215,0,0.4); animation: hs-sun 30s ease-in-out infinite; }
.scn-henriette-swings .grass { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #228B22 0%, #32CD32 50%, #98FB98 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; animation: hs-grass 12s ease-in-out infinite alternate; }
.scn-henriette-swings .swing-frame { position:absolute; bottom:45%; left:50%; width:120px; height:80px; transform:translateX(-50%); border-left:4px solid #8B4513; border-right:4px solid #8B4513; border-top:4px solid #8B4513; border-radius: 50% 50% 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,0.2); }
.scn-henriette-swings .swing-seat { position:absolute; bottom:42%; left:50%; width:50px; height:6px; transform:translateX(-50%); background: #8B4513; border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: hs-swing 3s ease-in-out infinite; }
.scn-henriette-swings .henriette { position:absolute; bottom:42%; left:50%; width:20px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #FFDAB9 0%, #DEB887 40%, #FFE4B5 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs-henriette 3s ease-in-out infinite; }
.scn-henriette-swings .ribbon { position:absolute; bottom:62%; left:50%; width:8px; height:15px; transform:translateX(-50%); background: #FF7F50; border-radius: 50% 50% 10% 10%; animation: hs-ribbon 3s ease-in-out infinite; }
.scn-henriette-swings .shadow { position:absolute; bottom:0; left:20%; width:60%; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); border-radius:50%; animation: hs-shadow 3s ease-in-out infinite; }
@keyframes hs-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hs-sun { 0%,100% { transform: scale(1) translate(0,0); box-shadow: 0 0 80px 40px rgba(255,215,0,0.4) } 50% { transform: scale(1.05) translate(3px,-3px); box-shadow: 0 0 100px 50px rgba(255,215,0,0.5) } }
@keyframes hs-grass { 0% { background-position: 0% 0%; } 50% { background-position: 50% 0%; } 100% { background-position: 100% 0%; } }
@keyframes hs-swing { 0% { transform: translateX(-50%) rotate(-15deg); } 25% { transform: translateX(-50%) rotate(15deg); } 50% { transform: translateX(-50%) rotate(-10deg); } 75% { transform: translateX(-50%) rotate(10deg); } 100% { transform: translateX(-50%) rotate(-15deg); } }
@keyframes hs-henriette { 0% { transform: translateX(-50%) rotate(-10deg); } 25% { transform: translateX(-50%) rotate(10deg); } 50% { transform: translateX(-50%) rotate(-5deg); } 75% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-10deg); } }
@keyframes hs-ribbon { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(180deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes hs-shadow { 0% { transform: scaleX(1) translateX(0); opacity:0.3 } 25% { transform: scaleX(1.3) translateX(-20px); opacity:0.4 } 50% { transform: scaleX(1) translateX(0); opacity:0.3 } 75% { transform: scaleX(1.3) translateX(20px); opacity:0.4 } 100% { transform: scaleX(1) translateX(0); opacity:0.3 } }

.scn-swinging-up { background: linear-gradient(180deg, #87CEEB 0%, #87CEEB 40%, #90EE90 40%, #90EE90 100%), radial-gradient(ellipse at 70% 10%, #FFD700 0%, transparent 60%); }
.scn-swinging-up .sky-up { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 100%); animation: su-sky 20s ease-in-out infinite alternate; }
.scn-swinging-up .sun-up { position:absolute; top:5%; right:15%; width:70px; height:70px; background: radial-gradient(circle, #FFD700 0%, #FFA500 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 100px 60px rgba(255,215,0,0.5); animation: su-sun 25s ease-in-out infinite; }
.scn-swinging-up .foliage { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #228B22 0%, #32CD32 60%, transparent 100%); border-radius: 0 0 60% 60% / 0 0 40% 40%; transform: scaleY(1.5); }
.scn-swinging-up .swing-ropes { position:absolute; bottom:30%; left:50%; width:4px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #8B4513 0%, #A0522D 100%); border-radius: 20%; animation: su-ropes 3s ease-in-out infinite; }
.scn-swinging-up .swing-seat-up { position:absolute; bottom:15%; left:50%; width:60px; height:5px; transform:translateX(-50%); background: #8B4513; border-radius: 20%; animation: su-seat 3s ease-in-out infinite; }
.scn-swinging-up .girl-up { position:absolute; bottom:15%; left:50%; width:22px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #FFDAB9 0%, #FFE4B5 30%, #DEB887 60%, #FFE4B5 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: su-girl 3s ease-in-out infinite; }
.scn-swinging-up .skirt-flash { position:absolute; bottom:25%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #FFDAB9 0%, transparent 100%); border-radius: 50% 50% 0 0; opacity:0.6; animation: su-skirt 3s ease-in-out infinite; }
.scn-swinging-up .dust { position:absolute; bottom:5%; left:30%; width:40px; height:40px; background: radial-gradient(circle, rgba(139,69,19,0.3) 0%, transparent 70%); border-radius:50%; animation: su-dust 3s ease-in-out infinite; }
@keyframes su-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes su-sun { 0%,100% { transform: scale(1) translate(0,0); box-shadow: 0 0 100px 60px rgba(255,215,0,0.5) } 50% { transform: scale(1.08) translate(-5px,0); box-shadow: 0 0 120px 70px rgba(255,215,0,0.6) } }
@keyframes su-ropes { 0% { transform: translateX(-50%) rotate(-20deg); } 25% { transform: translateX(-50%) rotate(20deg); } 50% { transform: translateX(-50%) rotate(-15deg); } 75% { transform: translateX(-50%) rotate(15deg); } 100% { transform: translateX(-50%) rotate(-20deg); } }
@keyframes su-seat { 0% { transform: translateX(-50%) rotate(-18deg); } 25% { transform: translateX(-50%) rotate(18deg); } 50% { transform: translateX(-50%) rotate(-12deg); } 75% { transform: translateX(-50%) rotate(12deg); } 100% { transform: translateX(-50%) rotate(-18deg); } }
@keyframes su-girl { 0% { transform: translateX(-50%) rotate(-15deg); } 25% { transform: translateX(-50%) rotate(15deg); } 50% { transform: translateX(-50%) rotate(-10deg); } 75% { transform: translateX(-50%) rotate(10deg); } 100% { transform: translateX(-50%) rotate(-15deg); } }
@keyframes su-skirt { 0% { opacity:0.3; transform: translateX(-50%) scaleY(1); } 25% { opacity:0.7; transform: translateX(-50%) scaleY(1.5); } 50% { opacity:0.5; transform: translateX(-50%) scaleY(1); } 75% { opacity:0.7; transform: translateX(-50%) scaleY(1.5); } 100% { opacity:0.3; transform: translateX(-50%) scaleY(1); } }
@keyframes su-dust { 0%,100% { transform: translate(0,0) scale(1); opacity:0.3 } 50% { transform: translate(10px,-10px) scale(1.5); opacity:0 } }

.scn-madame-dufour-swing { background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #90EE90 40%, #90EE90 100%), radial-gradient(ellipse at 30% 10%, #FFD700 0%, transparent 50%); }
.scn-madame-dufour-swing .sky-md { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 100%); animation: ms-sky 15s ease-in-out infinite alternate; }
.scn-madame-dufour-swing .grass-md { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #228B22 0%, #32CD32 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
.scn-madame-dufour-swing .tree-trunk { position:absolute; bottom:40%; left:15%; width:25px; height:100px; background: linear-gradient(180deg, #8B4513 0%, #A0522D 50%, #8B4513 100%); border-radius: 30%; transform: rotate(5deg); }
.scn-madame-dufour-swing .swing-frame-md { position:absolute; bottom:45%; left:50%; width:140px; height:90px; transform:translateX(-50%); border-left:5px solid #8B4513; border-right:5px solid #8B4513; border-top:5px solid #8B4513; border-radius: 50% 50% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-madame-dufour-swing .swing-seat-md { position:absolute; bottom:40%; left:50%; width:55px; height:7px; transform:translateX(-50%); background: #8B4513; border-radius: 20%; box-shadow: 0 3px 6px rgba(0,0,0,0.4); animation: ms-seat 4s ease-in-out infinite; }
.scn-madame-dufour-swing .madame { position:absolute; bottom:40%; left:50%; width:28px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #FFDAB9 0%, #DEB887 60%, #A0522D 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-madame 4s ease-in-out infinite; }
.scn-madame-dufour-swing .cyprien { position:absolute; bottom:35%; left:35%; width:24px; height:65px; transform:translateX(-50%); background: linear-gradient(180deg, #FFDAB9 0%, #DEB887 40%, #8B4513 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-cyprien 4s ease-in-out infinite; }
.scn-madame-dufour-swing .headband { position:absolute; bottom:62%; left:50%; width:12px; height:4px; transform:translateX(-50%); background: #FF7F50; border-radius: 20%; animation: ms-headband 4s ease-in-out infinite; }
.scn-madame-dufour-swing .sparkle { position:absolute; bottom:50%; left:55%; width:8px; height:8px; background: radial-gradient(circle, #FFD700 0%, transparent 80%); border-radius:50%; animation: ms-sparkle 2s ease-in-out infinite; }
@keyframes ms-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ms-seat { 0% { transform: translateX(-50%) rotate(-12deg); } 25% { transform: translateX(-50%) rotate(12deg); } 50% { transform: translateX(-50%) rotate(-8deg); } 75% { transform: translateX(-50%) rotate(8deg); } 100% { transform: translateX(-50%) rotate(-12deg); } }
@keyframes ms-madame { 0% { transform: translateX(-50%) rotate(-10deg); } 25% { transform: translateX(-50%) rotate(10deg); } 50% { transform: translateX(-50%) rotate(-5deg); } 75% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-10deg); } }
@keyframes ms-cyprien { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(5deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-3px) rotate(-5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ms-headband { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(180deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes ms-sparkle { 0%,100% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } }

.scn-children-watching { background: linear-gradient(180deg, #87CEEB 0%, #87CEEB 50%, #90EE90 50%, #90EE90 100%), radial-gradient(ellipse at 10% 10%, #FFD700 0%, transparent 40%); }
.scn-children-watching .sky-cw { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 100%); animation: cw-sky 22s ease-in-out infinite alternate; }
.scn-children-watching .hedge { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #228B22 0%, #32CD32 50%, #006400 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-children-watching .fence { position:absolute; bottom:30%; left:10%; width:80%; height:8px; background: linear-gradient(90deg, #8B4513 0%, #A0522D 50%, #8B4513 100%); border-radius: 20%; }
.scn-children-watching .urchins { position:absolute; bottom:32%; width:18px; height:25px; background: linear-gradient(180deg, #FFDAB9 0%, #DEB887 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; }
.scn-children-watching .urchins.a { left:20%; animation: cw-urchin-a 4s ease-in-out infinite; }
.scn-children-watching .urchins.b { left:45%; animation: cw-urchin-b 4.5s ease-in-out infinite 0.5s; }
.scn-children-watching .urchins.c { left:70%; animation: cw-urchin-c 3.8s ease-in-out infinite 1s; }
.scn-children-watching .hat { position:absolute; bottom:50%; left:15%; width:20px; height:10px; background: #8B4513; border-radius: 50% 50% 0 0; animation: cw-hat 6s ease-in-out infinite; }
.scn-children-watching .grin { position:absolute; bottom:38%; left:22%; width:12px; height:4px; background: #FF4500; border-radius: 0 0 50% 50%; animation: cw-grin 4s ease-in-out infinite; }
@keyframes cw-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cw-urchin-a { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(10deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(-10deg); } }
@keyframes cw-urchin-b { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-8deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(8deg); } }
@keyframes cw-urchin-c { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(12deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-4px) rotate(-12deg); } }
@keyframes cw-hat { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(15deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-10px) rotate(-15deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cw-grin { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.5); } }

/* item-dog-collar – warm sunlit close-up of collar */
.scn-item-dog-collar {
  background: linear-gradient(180deg, #f7e6c0 0%, #d4b86a 50%, #b8913a 100%),
              radial-gradient(ellipse at 30% 60%, #e8c878 0%, transparent 70%);
}
.scn-item-dog-collar .collar {
  position: absolute; top: 35%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 70%, #723011 100%);
  border-radius: 40% 40% 0 0;
  transform-origin: center bottom;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4), inset 0 4px 8px rgba(255,200,100,0.3);
  animation: dc-collar-breathe 4s ease-in-out infinite alternate;
}
.scn-item-dog-collar .plate {
  position: absolute; top: 40%; left: 38%; width: 24%; height: 10%;
  background: linear-gradient(180deg, #b08a4a 0%, #8a6a2a 100%);
  border-radius: 8%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: dc-plate-shine 6s ease-in-out infinite;
}
.scn-item-dog-collar .fur {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 40%, #5a3535 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 60% 60%;
  opacity: 0.9;
  animation: dc-fur-shift 8s ease-in-out infinite alternate;
}
.scn-item-dog-collar .sunbeam {
  position: absolute; background: linear-gradient(90deg, transparent 0%, rgba(255,220,150,0.3) 50%, transparent 100%);
  border-radius: 0; filter: blur(2px);
}
.scn-item-dog-collar .beam-a { top: 0; left: 10%; width: 20%; height: 60%; transform: skewX(-10deg); animation: dc-beam-drift 12s linear infinite; }
.scn-item-dog-collar .beam-b { top: 10%; right: 5%; width: 15%; height: 50%; transform: skewX(15deg); animation: dc-beam-drift 15s linear infinite reverse; }
.scn-item-dog-collar .glint {
  position: absolute; top: 36%; left: 45%; width: 4%; height: 4%;
  background: radial-gradient(circle, #fff8e0 0%, rgba(255,248,224,0) 100%);
  border-radius: 50%;
  animation: dc-glint-spark 3s ease-in-out infinite;
}
@keyframes dc-collar-breathe { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes dc-plate-shine { 0% { opacity: 0.7; transform: rotate(0deg); } 50% { opacity: 1; transform: rotate(2deg); } 100% { opacity: 0.8; transform: rotate(0deg); } }
@keyframes dc-fur-shift { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.01) rotate(1deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes dc-beam-drift { 0% { transform: translateX(-10%) skewX(-10deg); opacity: 0.3; } 50% { transform: translateX(10%) skewX(-10deg); opacity: 0.7; } 100% { transform: translateX(40vw) skewX(-10deg); opacity: 0.1; } }
@keyframes dc-glint-spark { 0% { transform: scale(0.5); opacity: 0; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.3; } }

/* master-complaint – tense sunlit interior */
.scn-master-complaint {
  background: linear-gradient(180deg, #f9e8c0 0%, #d4a56a 40%, #a07840 100%),
              radial-gradient(ellipse at 60% 40%, #fff0d0 0%, transparent 60%);
}
.scn-master-complaint .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d9c090 0%, #b09060 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.2);
  animation: mc-wall-pulse 8s ease-in-out infinite alternate;
}
.scn-master-complaint .window-bar {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #a08050 0%, #705030 100%);
  border-radius: 4%; box-shadow: inset 0 0 0 6px #503820;
  animation: mc-window-shake 6s ease-in-out infinite;
}
.scn-master-complaint .master-shadow {
  position: absolute; bottom: 10%; left: 45%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: mc-shadow-stretch 4s ease-in-out infinite alternate;
}
.scn-master-complaint .dog-silhouette {
  position: absolute; bottom: 10%; left: 20%; width: 15%; height: 25%;
  background: #3a2a1a;
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: mc-dog-tremble 2s ease-in-out infinite;
}
.scn-master-complaint .door {
  position: absolute; top: 5%; right: 8%; width: 20%; height: 80%;
  background: linear-gradient(180deg, #806040 0%, #503020 100%);
  border-radius: 0 4% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: mc-door-creak 12s ease-in-out infinite;
}
.scn-master-complaint .light-ray {
  position: absolute; top: 5%; left: 30%; width: 5%; height: 70%;
  background: linear-gradient(180deg, rgba(255,220,150,0.5) 0%, transparent 100%);
  filter: blur(3px);
  animation: mc-ray-flicker 3s ease-in-out infinite;
}
@keyframes mc-wall-pulse { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mc-window-shake { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(1px,0) rotate(0.5deg); } 50% { transform: translate(-1px,1px) rotate(-0.5deg); } 75% { transform: translate(0,-1px) rotate(0.5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes mc-shadow-stretch { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.05) translateX(-2px); } 100% { transform: scaleY(0.95) translateX(2px); } }
@keyframes mc-dog-tremble { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mc-door-creak { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(1deg); } 100% { transform: rotateY(0deg); } }
@keyframes mc-ray-flicker { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.9; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(0.8); } }

/* losing-dog-attempts – sad sunlit landscape with weary dog */
.scn-losing-dog-attempts {
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b080 40%, #a08860 100%),
              radial-gradient(ellipse at 40% 80%, #d0c0a0 0%, transparent 70%);
}
.scn-losing-dog-attempts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b0a080 0%, #908060 100%);
  border-radius: 30% 0 0 0 / 20% 0 0 0;
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.15);
  animation: ld-ground-sink 20s ease-in-out infinite alternate;
}
.scn-losing-dog-attempts .dog-body {
  position: absolute; bottom: 18%; left: 25%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 60%, #5a3030 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ld-dog-walk 6s ease-in-out infinite;
}
.scn-losing-dog-attempts .road {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #806040 0%, #604020 100%);
  border-radius: 0;
  clip-path: polygon(0% 40%, 100% 20%, 100% 80%, 0% 100%);
  animation: ld-road-scroll 30s linear infinite;
}
.scn-losing-dog-attempts .sun {
  position: absolute; top: 8%; left: 70%; width: 12%; height: 16%;
  background: radial-gradient(circle, #ffe0a0 0%, #f0c060 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,192,96,0.4);
  animation: ld-sun-set 20s ease-in-out infinite alternate;
}
.scn-losing-dog-attempts .tree-tree {
  position: absolute; bottom: 28%; left: 60%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3020 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: -10px 0 15px rgba(0,0,0,0.2);
  animation: ld-tree-sway 8s ease-in-out infinite;
}
.scn-losing-dog-attempts .cloud-drift {
  position: absolute; top: 5%; left: -20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, rgba(200,180,140,0.5) 0%, rgba(200,180,140,0.1) 100%);
  border-radius: 40%; filter: blur(5px);
  animation: ld-cloud-move 40s linear infinite;
}
@keyframes ld-ground-sink { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes ld-dog-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes ld-road-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes ld-sun-set { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(5px) scale(0.95); opacity: 0.8; } 100% { transform: translateY(-5px) scale(1); opacity: 0.9; } }
@keyframes ld-tree-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes ld-cloud-move { 0% { transform: translateX(0); } 50% { transform: translateX(30vw); } 100% { transform: translateX(80vw); } }

/* final-decision – dark, dim interior with trunk, lantern, figure */
.scn-final-decision {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-final-decision .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a221a 0%, #1a1210 100%);
  animation: fd-wall-fade 12s ease-in-out infinite alternate;
}
.scn-final-decision .trunk {
  position: absolute; bottom: 10%; left: 20%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 4%; box-shadow: 0 10px 20px rgba(0,0,0,0.7);
  animation: fd-trunk-settle 10s ease-in-out infinite;
}
.scn-final-decision .lantern-glow {
  position: absolute; top: 30%; left: 50%; width: 10%; height: 12%;
  background: radial-gradient(circle, #c08040 0%, #a06020 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(192,128,64,0.5);
  animation: fd-lantern-flicker 4s ease-in-out infinite;
}
.scn-final-decision .figure-silhouette {
  position: absolute; bottom: 5%; left: 55%; width: 12%; height: 45%;
  background: #0a0a0a;
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: fd-figure-breath 6s ease-in-out infinite;
}
.scn-final-decision .window-night {
  position: absolute; top: 8%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 0 4px #4a3a2a;
  animation: fd-night-shimmer 15s ease-in-out infinite alternate;
}
.scn-final-decision .shadow-creep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, #0a0a0a 100%);
  animation: fd-shadow-creep 20s ease-in-out infinite alternate;
}
@keyframes fd-wall-fade { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes fd-trunk-settle { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fd-lantern-flicker { 0% { transform: scale(1); box-shadow: 0 0 30px 10px rgba(192,128,64,0.4); } 50% { transform: scale(1.1); box-shadow: 0 0 50px 20px rgba(192,128,64,0.7); } 100% { transform: scale(0.95); box-shadow: 0 0 30px 10px rgba(192,128,64,0.4); } }
@keyframes fd-figure-breath { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes fd-night-shimmer { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes fd-shadow-creep { 0% { height: 15%; opacity: 0.7; } 50% { height: 20%; opacity: 1; } 100% { height: 12%; opacity: 0.6; } }

/* Scene: travel-reflections (calm, overcast) */
.scn-travel-reflections {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 60%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 80%, #5a6a7a 0%, transparent 70%);
}
.scn-travel-reflections .window-frame {
  position: absolute; inset: 10% 15% 25% 10%;
  border: 8px solid #3a4a5a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-travel-reflections .glass {
  position: absolute; inset: 12% 17% 27% 12%;
  background: linear-gradient(135deg, rgba(180,200,220,0.2) 0%, rgba(100,120,140,0.4) 100%);
  border-radius: 2px;
  animation: tr-glass 8s ease-in-out infinite alternate;
}
.scn-travel-reflections .reflection-figure {
  position: absolute; bottom: 30%; left: 30%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: tr-figure 6s ease-in-out infinite alternate;
}
.scn-travel-reflections .landscape-a {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  filter: blur(4px);
  animation: tr-land 15s linear infinite;
}
.scn-travel-reflections .landscape-b {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #6a7a8a 0%, #5a6a7a 100%);
  border-radius: 30% 50% 0 0 / 60% 50% 0 0;
  filter: blur(6px);
  animation: tr-land 20s linear infinite reverse;
}
.scn-travel-reflections .raindrop {
  position: absolute; width: 3px; height: 12px;
  background: linear-gradient(180deg, rgba(200,220,240,0.6), transparent);
  border-radius: 50%;
  animation: tr-rain 2s linear infinite;
}
.scn-travel-reflections .raindrop-1 { left: 20%; top: -10%; animation-delay: 0s; }
.scn-travel-reflections .raindrop-2 { left: 60%; top: -20%; animation-delay: 1s; }
.scn-travel-reflections .fog {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, rgba(100,120,140,0.3), transparent 70%);
  animation: tr-fog 10s ease-in-out infinite alternate;
}
@keyframes tr-glass {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.02); }
  100% { opacity: 0.4; transform: scale(0.98); }
}
@keyframes tr-figure {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.5; }
  50% { transform: translateY(-3px) rotate(2deg); opacity: 0.7; }
  100% { transform: translateY(2px) rotate(-1deg); opacity: 0.6; }
}
@keyframes tr-land {
  0% { transform: translateX(0); }
  100% { transform: translateX(-10%); }
}
@keyframes tr-rain {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(40vh); opacity: 0.5; }
  100% { transform: translateY(80vh); opacity: 0; }
}
@keyframes tr-fog {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.3; }
}

/* Scene: auvergne-inn (calm, bright-interior) */
.scn-auvergne-inn {
  background: linear-gradient(180deg, #c8a878 0%, #a88858 40%, #7a6840 100%),
              radial-gradient(ellipse at 60% 30%, #e0c898 0%, transparent 70%);
}
.scn-auvergne-inn .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #b89868 0%, #d0b080 50%, #a88858 100%);
  border-radius: 0 0 20% 20% / 0 0 15% 15%;
}
.scn-auvergne-inn .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #7a6840 0%, #5a4830 100%);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-auvergne-inn .chair {
  position: absolute; bottom: 10%; left: 30%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #8a7850 0%, #5a4830 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: bottom center;
  animation: ai-chair 6s ease-in-out infinite;
}
.scn-auvergne-inn .woman {
  position: absolute; bottom: 18%; left: 35%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #4a3820 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ai-woman 4s ease-in-out infinite;
}
.scn-auvergne-inn .window-light {
  position: absolute; top: 15%; right: 20%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at center, rgba(255,230,180,0.6), transparent);
  border-radius: 5px;
  box-shadow: 0 0 30px 10px rgba(255,230,180,0.3);
  animation: ai-light 5s ease-in-out infinite alternate;
}
.scn-auvergne-inn .plate {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 6px;
  background: radial-gradient(ellipse, #e0d0b0 0%, #c0a880 100%);
  border-radius: 50%;
  animation: ai-plate 3s ease-in-out infinite;
}
.scn-auvergne-inn .shadow {
  position: absolute; bottom: 20%; left: 20%; right: 30%; height: 8%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.2) 50%, transparent);
  filter: blur(4px);
}
@keyframes ai-chair {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes ai-woman {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ai-light {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes ai-plate {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(0.98); }
}

/* Scene: old-woman-departure (calm, bright-interior) */
.scn-old-woman-departure {
  background: linear-gradient(180deg, #d0b888 0%, #b89868 50%, #7a6840 100%),
              radial-gradient(ellipse at 20% 80%, #e8d0a0 0%, transparent 60%);
}
.scn-old-woman-departure .doorway {
  position: absolute; right: 20%; top: 10%; bottom: 10%; width: 35%;
  background: linear-gradient(135deg, #6a5840 0%, #4a3820 100%);
  border-radius: 10% 0 0 10% / 15% 0 0 15%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-old-woman-departure .figure {
  position: absolute; bottom: 15%; left: 40%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a3820 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: owd-figure 6s ease-in-out infinite;
}
.scn-old-woman-departure .alpenstock {
  position: absolute; bottom: 15%; left: 55%; width: 4px; height: 55px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4830 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: owd-stick 4s ease-in-out infinite;
}
.scn-old-woman-departure .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #7a6840 0%, #5a4830 100%);
  border-radius: 0 10% 0 0;
}
.scn-old-woman-departure .light-outside {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 120px;
  background: radial-gradient(ellipse, rgba(255,240,200,0.5), transparent);
  border-radius: 50%;
  animation: owd-light 8s ease-in-out infinite alternate;
}
.scn-old-woman-departure .shadow-inside {
  position: absolute; inset: 10% 0 10% 0; left: 0; width: 40%;
  background: linear-gradient(90deg, rgba(0,0,0,0.3), transparent);
  filter: blur(10px);
}
@keyframes owd-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(10px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(20px) translateY(0) rotate(0deg); }
  75% { transform: translateX(30px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(40px) translateY(0) rotate(0deg); opacity: 0.5; }
}
@keyframes owd-stick {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(5deg); }
}
@keyframes owd-light {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.9); }
}

/* Scene: lake-pavin (calm, sunlit) */
.scn-lake-pavin {
  background: linear-gradient(180deg, #a0c8e8 0%, #80a8c8 40%, #5a8aae 100%),
              radial-gradient(ellipse at 50% 100%, #c8e0f0 0%, transparent 70%);
}
.scn-lake-pavin .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #80b0d0 0%, #a0c8e8 100%);
  animation: lp-sky 12s ease-in-out infinite alternate;
}
.scn-lake-pavin .lake {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5a8aae 0%, #4a7a9e 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: lp-lake 8s ease-in-out infinite alternate;
}
.scn-lake-pavin .hills {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: lp-hills 18s ease-in-out infinite alternate;
}
.scn-lake-pavin .cross {
  position: absolute; bottom: 42%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #5a4830 0%, #3a2810 100%);
  border-radius: 2px;
  transform-origin: bottom center;
}
.scn-lake-pavin .cross-a { left: 30%; animation: lp-cross 6s ease-in-out infinite; }
.scn-lake-pavin .cross-b { left: 60%; animation: lp-cross 8s ease-in-out infinite reverse; }
.scn-lake-pavin .path {
  position: absolute; bottom: 25%; left: 35%; right: 25%; height: 5%;
  background: linear-gradient(90deg, transparent, #8a7a5a 30%, #7a6840 70%, transparent);
  border-radius: 10px;
  opacity: 0.6;
}
.scn-lake-pavin .figure {
  position: absolute; bottom: 28%; left: 20%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #4a3820 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lp-walk 10s ease-in-out infinite;
}
.scn-lake-pavin .guide {
  position: absolute; bottom: 28%; left: 12%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #5a4830 0%, #3a2810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lp-walk 10s ease-in-out infinite 2s;
}
@keyframes lp-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes lp-lake {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(-2px); }
}
@keyframes lp-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes lp-cross {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(0deg); }
  100% { transform: rotate(2deg); }
}
@keyframes lp-walk {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(15px) translateY(-1px); }
  50% { transform: translateX(30px) translateY(0); }
  75% { transform: translateX(45px) translateY(-1px); }
  100% { transform: translateX(60px) translateY(0); opacity: 0.3; }
}

.scn-truth-revealed {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3a 40%, #3a2a1a 80%), radial-gradient(ellipse at 70% 40%, #1a1a2e 0%, transparent 70%);
}
.scn-truth-revealed .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); animation: tr-wall 12s ease-in-out infinite alternate; }
.scn-truth-revealed .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a12 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-truth-revealed .lamp { position:absolute; top:20%; right:25%; width:12px; height:30px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 15px rgba(180,140,60,.3), 0 0 60px 30px rgba(180,140,60,.15); animation: tr-lamp 3s ease-in-out infinite alternate; }
.scn-truth-revealed .figure-left { position:absolute; bottom:20%; left:45%; width:22px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-fig-l 4s ease-in-out infinite; }
.scn-truth-revealed .figure-right { position:absolute; bottom:20%; right:40%; width:20px; height:58px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-fig-r 4s ease-in-out infinite reverse; }
.scn-truth-revealed .shadow-left { position:absolute; bottom:15%; left:42%; width:30px; height:8px; background: rgba(0,0,0,.5); border-radius: 50%; filter:blur(6px); animation: tr-shad 4s ease-in-out infinite; }
.scn-truth-revealed .shadow-right { position:absolute; bottom:15%; right:37%; width:28px; height:8px; background: rgba(0,0,0,.5); border-radius: 50%; filter:blur(6px); animation: tr-shad 4s ease-in-out infinite 2s; }
.scn-truth-revealed .glow { position:absolute; bottom:30%; left:48%; width:40px; height:60px; background: radial-gradient(ellipse, rgba(180,140,60,.15) 0%, transparent 70%); transform: translate(-20%, -50%); animation: tr-glow 3s ease-in-out infinite alternate; }

@keyframes tr-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes tr-lamp { 0% { box-shadow: 0 0 20px 10px rgba(180,140,60,.2), 0 0 40px 20px rgba(180,140,60,.1); } 50% { box-shadow: 0 0 35px 18px rgba(180,140,60,.35), 0 0 70px 35px rgba(180,140,60,.15); } 100% { box-shadow: 0 0 25px 12px rgba(180,140,60,.25), 0 0 50px 25px rgba(180,140,60,.12); } }
@keyframes tr-fig-l { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(3px,-2px) rotate(4deg); } 50% { transform: translate(6px,0) rotate(8deg); } 75% { transform: translate(3px,-2px) rotate(4deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes tr-fig-r { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-3px,-2px) rotate(-4deg); } 50% { transform: translate(-6px,0) rotate(-8deg); } 75% { transform: translate(-3px,-2px) rotate(-4deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes tr-shad { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.3); } 100% { transform: scaleX(1); } }
@keyframes tr-glow { 0% { opacity:.5; } 50% { opacity:1; } 100% { opacity:.6; } }

.scn-lemonnier-aftermath {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3a 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #2a2a3a 0%, transparent 80%);
}
.scn-lemonnier-aftermath .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); animation: la-wall 15s ease-in-out infinite alternate; }
.scn-lemonnier-aftermath .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a12 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-lemonnier-aftermath .window { position:absolute; top:15%; right:15%; width:40px; height:50px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border:2px solid #2a2a3a; box-shadow: inset 0 0 10px rgba(0,0,0,.5); border-radius:4%; animation: la-win 10s ease-in-out infinite alternate; }
.scn-lemonnier-aftermath .table { position:absolute; bottom:20%; left:50%; width:100px; height:15px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-lemonnier-aftermath .chair { position:absolute; bottom:25%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: la-chair 6s ease-in-out infinite; }
.scn-lemonnier-aftermath .figure-seated { position:absolute; bottom:28%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: la-fig 7s ease-in-out infinite; }
.scn-lemonnier-aftermath .bowl { position:absolute; bottom:20%; left:45%; width:18px; height:6px; background: radial-gradient(ellipse, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: la-bowl 8s ease-in-out infinite; }
.scn-lemonnier-aftermath .shadow { position:absolute; bottom:20%; left:30%; width:40px; height:20px; background: rgba(0,0,0,.4); filter:blur(8px); border-radius: 50%; }

@keyframes la-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes la-win { 0% { background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); } 50% { background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); } 100% { background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); } }
@keyframes la-chair { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(0,-1px) rotate(1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(0,-1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes la-fig { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-1px,0) rotate(-2deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(1px,0) rotate(2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes la-bowl { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }

.scn-violent-confrontation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 70%);
}
.scn-violent-confrontation .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); animation: vc-wall 8s ease-in-out infinite alternate; }
.scn-violent-confrontation .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-violent-confrontation .table { position:absolute; bottom:25%; left:50%; width:120px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-violent-confrontation .arm-left { position:absolute; bottom:35%; left:35%; width:40px; height:8px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); border-radius: 50%; transform-origin: right center; animation: vc-arm-l 3s ease-in-out infinite; }
.scn-violent-confrontation .arm-right { position:absolute; bottom:35%; right:35%; width:40px; height:8px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); border-radius: 50%; transform-origin: left center; animation: vc-arm-r 3s ease-in-out infinite; }
.scn-violent-confrontation .figure-left { position:absolute; bottom:28%; left:30%; width:25px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vc-fig-l 3s ease-in-out infinite; }
.scn-violent-confrontation .figure-right { position:absolute; bottom:28%; right:30%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vc-fig-r 3s ease-in-out infinite reverse; }
.scn-violent-confrontation .shadow-pool { position:absolute; bottom:20%; left:30%; width:80px; height:15px; background: rgba(0,0,0,.4); filter:blur(10px); border-radius: 50%; }
.scn-violent-confrontation .cloth { position:absolute; bottom:27%; left:50%; width:30px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: vc-cloth 2s ease-in-out infinite alternate; }

@keyframes vc-wall { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes vc-arm-l { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-30deg) translateX(-5px); } 50% { transform: rotate(20deg) translateX(3px); } 75% { transform: rotate(-20deg) translateX(-2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes vc-arm-r { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(30deg) translateX(5px); } 50% { transform: rotate(-20deg) translateX(-3px); } 75% { transform: rotate(20deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes vc-fig-l { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-3px,-2px) rotate(-5deg); } 50% { transform: translate(3px,1px) rotate(5deg); } 75% { transform: translate(-2px,-1px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes vc-fig-r { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(3px,-2px) rotate(5deg); } 50% { transform: translate(-3px,1px) rotate(-5deg); } 75% { transform: translate(2px,-1px) rotate(3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes vc-cloth { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.1); } 100% { transform: translateX(-50%) scaleY(1); } }

.scn-suicide-letter {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3a 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 80%);
}
.scn-suicide-letter .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); animation: sl-wall 20s ease-in-out infinite alternate; }
.scn-suicide-letter .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a12 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-suicide-letter .table { position:absolute; bottom:25%; left:50%; width:80px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-suicide-letter .letter { position:absolute; bottom:30%; left:45%; width:30px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: sl-letter 12s ease-in-out infinite; }
.scn-suicide-letter .chair { position:absolute; bottom:25%; left:30%; width:18px; height:25px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: sl-chair 8s ease-in-out infinite; }
.scn-suicide-letter .figure-returning { position:absolute; bottom:28%; right:20%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sl-fig 14s ease-in-out infinite; }
.scn-suicide-letter .shadow-door { position:absolute; bottom:25%; right:15%; width:30px; height:60px; background: rgba(0,0,0,.5); filter:blur(10px); border-radius: 10%; }
.scn-suicide-letter .candle { position:absolute; top:30%; left:40%; width:6px; height:20px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 10%; box-shadow: 0 0 20px 8px rgba(180,160,80,.3), 0 0 40px 16px rgba(180,160,80,.15); animation: sl-candle 4s ease-in-out infinite alternate; }

@keyframes sl-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sl-letter { 0% { transform: rotate(0deg); } 25% { transform: rotate(-2deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes sl-chair { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(0,-2px) rotate(1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(0,-2px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes sl-fig { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-5px,0) rotate(-2deg); } 50% { transform: translate(-10px,0) rotate(0deg); } 75% { transform: translate(-5px,0) rotate(2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes sl-candle { 0% { box-shadow: 0 0 15px 6px rgba(180,160,80,.2), 0 0 30px 12px rgba(180,160,80,.1); } 50% { box-shadow: 0 0 25px 10px rgba(180,160,80,.35), 0 0 50px 20px rgba(180,160,80,.15); } 100% { box-shadow: 0 0 18px 7px rgba(180,160,80,.25), 0 0 35px 14px rgba(180,160,80,.12); } }

/* grandmother-cat */
.scn-grandmother-cat {
  background: linear-gradient(180deg, #fef9e7 0%, #fce4c8 40%, #e8d6b0 100%),
              radial-gradient(ellipse at 60% 30%, rgba(255,243,176,0.6) 0%, transparent 60%);
}
.scn-grandmother-cat .sky { position:absolute; inset:0; background: linear-gradient(180deg, #fff6d5 0%, transparent 100%); animation: gc-sky 12s ease-in-out infinite alternate; }
.scn-grandmother-cat .garden-wall { position:absolute; bottom:25%; left:0; right:0; height:45%; background: linear-gradient(180deg, #c9a87c 0%, #b58b5a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.15); }
.scn-grandmother-cat .grandmother { position:absolute; bottom:38%; left:20%; width:50px; height:90px; background: linear-gradient(180deg, #b67a52 0%, #8c5a36 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: gc-grandma 6s ease-in-out infinite; }
.scn-grandmother-cat .cat { position:absolute; bottom:42%; left:55%; width:35px; height:25px; background: linear-gradient(180deg, #e6b78c 0%, #c98c6a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gc-cat 8s ease-in-out infinite; }
.scn-grandmother-cat .flowers { position:absolute; bottom:20%; left:40%; width:30px; height:40px; background: radial-gradient(ellipse, #f0a0c0 0%, #c06080 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 10px 5px rgba(240,160,192,0.4); animation: gc-flowers 5s ease-in-out infinite alternate; }
.scn-grandmother-cat .sun-rays { position:absolute; top:0; left:30%; width:60%; height:100%; background: linear-gradient(135deg, rgba(255,255,200,0.2) 0%, transparent 50%, rgba(255,255,200,0.1) 100%); animation: gc-sunrays 10s linear infinite; }
@keyframes gc-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes gc-grandma { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-8px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes gc-cat { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(20px) translateY(-5px); } 50% { transform: translateX(40px) translateY(0); } 75% { transform: translateX(20px) translateY(-3px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes gc-flowers { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.1); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes gc-sunrays { 0% { transform: translateX(-20%) rotate(0deg); } 100% { transform: translateX(20%) rotate(2deg); } }

/* item-two-canoes */
.scn-item-two-canoes {
  background: linear-gradient(180deg, #faf3e0 0%, #e6d4b3 40%, #c9b491 100%),
              radial-gradient(ellipse at 40% 60%, rgba(255,235,170,0.4) 0%, transparent 70%);
}
.scn-item-two-canoes .shed-roof { position:absolute; top:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #b0916a 0%, #8a6e4c 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.2); }
.scn-item-two-canoes .shed-wall { position:absolute; bottom:0; left:0; right:0; height:75%; background: linear-gradient(180deg, #c6a77a 0%, #a5825a 100%); border-radius: 0 0 5% 5%; box-shadow: inset 0 10px 20px rgba(0,0,0,0.1); }
.scn-item-two-canoes .canoe-back { position:absolute; bottom:18%; left:20%; width:140px; height:30px; background: linear-gradient(180deg, #c4905a 0%, #a66e3a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform: scale(0.85) rotate(-3deg); animation: itc-canoe-back 8s ease-in-out infinite alternate; }
.scn-item-two-canoes .canoe-front { position:absolute; bottom:15%; left:30%; width:150px; height:35px; background: linear-gradient(180deg, #d4a06a 0%, #b07a4a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: itc-canoe-front 6s ease-in-out infinite alternate; }
.scn-item-two-canoes .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #8c6e46 0%, #6a5030 100%); border-radius: 10% 10% 0 0; }
.scn-item-two-canoes .figure { position:absolute; bottom:25%; left:55%; width:30px; height:60px; background: linear-gradient(180deg, #d4a870 0%, #b08050 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: itc-figure 4s ease-in-out infinite; }
.scn-item-two-canoes .sunbeam { position:absolute; top:10%; left:30%; width:40%; height:60%; background: linear-gradient(135deg, rgba(255,255,210,0.25) 0%, transparent 60%, rgba(255,255,210,0.1) 100%); animation: itc-sunbeam 10s linear infinite; }
@keyframes itc-canoe-back { 0% { transform: translateX(0) scale(0.85) rotate(-3deg); } 50% { transform: translateX(-5px) scale(0.87) rotate(-2deg); } 100% { transform: translateX(0) scale(0.85) rotate(-3deg); } }
@keyframes itc-canoe-front { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes itc-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes itc-sunbeam { 0% { opacity:0.3; transform: rotate(0deg); } 50% { opacity:0.6; transform: rotate(3deg); } 100% { opacity:0.3; transform: rotate(0deg); } }

/* dufour-boating-past */
.scn-dufour-boating-past {
  background: linear-gradient(180deg, #b8d4e8 0%, #8fb6d0 30%, #6a9ab8 100%),
              radial-gradient(ellipse at 30% 70%, rgba(255,255,200,0.3) 0%, transparent 60%);
}
.scn-dufour-boating-past .water-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #9cc0d8 0%, transparent 100%); animation: dbp-sky 15s ease-in-out infinite alternate; }
.scn-dufour-boating-past .water-surface { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5084a0 0%, #3a6a84 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: dbp-water 8s ease-in-out infinite alternate; }
.scn-dufour-boating-past .dock { position:absolute; bottom:25%; left:10%; width:30%; height:8%; background: linear-gradient(180deg, #8a6e3c 0%, #6a5030 100%); border-radius: 5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-dufour-boating-past .dufour { position:absolute; bottom:32%; left:18%; width:40px; height:75px; background: linear-gradient(180deg, #c4a07a 0%, #a07a5a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dbp-dufour 5s ease-in-out infinite; }
.scn-dufour-boating-past .boat-left { position:absolute; bottom:18%; left:15%; width:100px; height:25px; background: linear-gradient(180deg, #b08050 0%, #8a603a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: dbp-boat-left 8s ease-in-out infinite alternate; }
.scn-dufour-boating-past .boat-right { position:absolute; bottom:15%; left:40%; width:110px; height:28px; background: linear-gradient(180deg, #b88a5a 0%, #9a6e44 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; animation: dbp-boat-right 6s ease-in-out infinite alternate; }
.scn-dufour-boating-past .clouds { position:absolute; top:10%; left:20%; width:40%; height:15%; background: linear-gradient(180deg, rgba(200,220,240,0.6) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: dbp-clouds 35s linear infinite; }
.scn-dufour-boating-past .sun-glint { position:absolute; bottom:8%; left:60%; width:20px; height:20px; background: radial-gradient(circle, #ffedaa 0%, transparent 100%); border-radius: 50%; animation: dbp-glint 3s ease-in-out infinite alternate; }
@keyframes dbp-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes dbp-water { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dbp-dufour { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes dbp-boat-left { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(10px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dbp-boat-right { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-8px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dbp-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(60vw); } }
@keyframes dbp-glint { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.5); } 100% { opacity:0.3; transform: scale(1); } }

/* lunch-announced */
.scn-lunch-announced {
  background: linear-gradient(180deg, #f5e6c0 0%, #e8d4a2 30%, #d4b880 100%),
              radial-gradient(ellipse at 70% 40%, rgba(255,240,180,0.4) 0%, transparent 60%);
}
.scn-lunch-announced .boathouse-bg { position:absolute; inset:0; background: linear-gradient(180deg, #dcc896 0%, #c4ae7a 100%); border-radius: 10%; }
.scn-lunch-announced .entrance-arch { position:absolute; bottom:15%; left:20%; width:60%; height:70%; background: radial-gradient(ellipse at 50% 100%, transparent 0%, #b09666 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.2); }
.scn-lunch-announced .waitress { position:absolute; bottom:20%; left:25%; width:25px; height:55px; background: linear-gradient(180deg, #e8c0a0 0%, #c8a080 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: la-waitress 4s ease-in-out infinite; }
.scn-lunch-announced .table { position:absolute; bottom:12%; left:45%; width:120px; height:15px; background: linear-gradient(180deg, #c4a070 0%, #a08050 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-lunch-announced .figure-1 { position:absolute; bottom:18%; left:42%; width:30px; height:45px; background: linear-gradient(180deg, #d4a878 0%, #b08058 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: la-figure1 6s ease-in-out infinite; }
.scn-lunch-announced .figure-2 { position:absolute; bottom:18%; left:58%; width:30px; height:45px; background: linear-gradient(180deg, #d4a878 0%, #b08058 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: la-figure2 6s ease-in-out infinite 1s; }
.scn-lunch-announced .sunlight-beam { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,255,210,0.25) 0%, transparent 60%); animation: la-beam 12s linear infinite; }
@keyframes la-waitress { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-6px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes la-figure1 { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes la-figure2 { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes la-beam { 0% { opacity:0.2; transform: scaleY(0.9); } 50% { opacity:0.6; transform: scaleY(1); } 100% { opacity:0.2; transform: scaleY(0.9); } }

/* item-suicide-rope - dark interior with hanging rope */
.scn-item-suicide-rope {
  background: 
    linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 40%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 0%, #3a2a20 0%, transparent 60%);
}
.scn-item-suicide-rope .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0d0d0d 0%, #1a1210 100%); }
.scn-item-suicide-rope .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a1e1a 0%, #1a1410 50%, #2a1e1a 100%); }
.scn-item-suicide-rope .door { position:absolute; bottom:30%; left:35%; width:30%; height:60%; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius:2% 2% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.5); }
.scn-item-suicide-rope .keyhole-glow { position:absolute; bottom:48%; left:48%; width:6px; height:10px; background: radial-gradient(circle, #ffcc80 0%, #b08040 70%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,204,128,.4), 0 0 40px 12px rgba(255,204,128,.15); animation: sr-glow 2s ease-in-out infinite alternate; }
.scn-item-suicide-rope .rope { position:absolute; top:5%; left:50%; width:6px; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; transform: translateX(-50%) rotate(0deg); transform-origin: top center; animation: sr-rope 4s ease-in-out infinite; }
.scn-item-suicide-rope .chair { position:absolute; bottom:12%; left:45%; width:14%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; transform: rotate(-2deg); box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-item-suicide-rope .shadow { position:absolute; bottom:0; left:30%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%); animation: sr-shadow 6s ease-in-out infinite; }

@keyframes sr-glow { 0% { opacity:.6; box-shadow: 0 0 15px 3px #b08040, 0 0 30px 6px rgba(176,128,64,.15); } 50% { opacity:1; box-shadow: 0 0 25px 8px #ffcc80, 0 0 50px 15px rgba(255,204,128,.3); } 100% { opacity:.7; box-shadow: 0 0 18px 4px #b08040, 0 0 35px 8px rgba(176,128,64,.2); } }
@keyframes sr-rope { 0%,100% { transform: translateX(-50%) rotate(1deg); } 25% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(2deg); } }
@keyframes sr-shadow { 0%,100% { opacity:.4; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.1); } }

/* discovery-of-body - dim room with body on floor */
.scn-discovery-of-body {
  background: 
    linear-gradient(180deg, #0a0a0a 0%, #151515 30%, #2a1e1a 100%),
    radial-gradient(ellipse at 50% 100%, #1a100d 0%, transparent 70%);
}
.scn-discovery-of-body .bg { position:absolute; inset:0; background: linear-gradient(90deg, #121212 0%, #1a1818 50%, #121212 100%); }
.scn-discovery-of-body .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1e1a 0%, #1a100d 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.5); }
.scn-discovery-of-body .body { position:absolute; bottom:8%; left:30%; width:20%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(10deg); box-shadow: 0 -4px 8px rgba(0,0,0,.4); animation: db-body 3s ease-in-out infinite; }
.scn-discovery-of-body .tray { position:absolute; bottom:28%; left:55%; width:12%; height:4%; background: #5a4a3a; border-radius: 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); transform: rotate(-15deg); animation: db-tray-fall 2s ease-out forwards; }
.scn-discovery-of-body .spill { position:absolute; bottom:10%; left:50%; width:20%; height:10%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; opacity:.6; animation: db-spill 5s ease-in-out infinite; }
.scn-discovery-of-body .door-open { position:absolute; top:0; left:10%; width:25%; height:100%; background: linear-gradient(180deg, #0d0d0d 0%, #1a1410 100%); border-right: 2px solid #2a1e1a; box-shadow: 4px 0 8px rgba(0,0,0,.4); transform: perspective(800px) rotateY(30deg); transform-origin: left; animation: db-door 8s ease-in-out infinite alternate; }
.scn-discovery-of-body .window-light { position:absolute; top:10%; right:10%; width:15%; height:20%; background: radial-gradient(circle at 30% 30%, #3a3a5a 0%, #1a1a2a 70%); border-radius: 5%; box-shadow: 0 0 30px 10px rgba(58,58,90,.2); animation: db-window 12s ease-in-out infinite alternate; }

@keyframes db-body { 0%,100% { transform: rotate(10deg) translateY(0); } 25% { transform: rotate(12deg) translateY(-2px); } 50% { transform: rotate(9deg) translateY(-1px); } 75% { transform: rotate(11deg) translateY(1px); } }
@keyframes db-tray-fall { 0% { transform: translateY(-100px) rotate(-15deg); opacity:1; } 100% { transform: translateY(0) rotate(-30deg); opacity:1; } }
@keyframes db-spill { 0%,100% { opacity:.5; transform: scaleX(1) rotate(-5deg); } 50% { opacity:.7; transform: scaleX(1.2) rotate(5deg); } }
@keyframes db-door { 0% { transform: perspective(800px) rotateY(30deg); } 100% { transform: perspective(800px) rotateY(25deg); } }
@keyframes db-window { 0%,100% { opacity:.6; } 50% { opacity:1; } }

/* suicide-discovered - maid silhouette, body, tray shattering */
.scn-suicide-discovered {
  background: 
    linear-gradient(180deg, #0a0a0a 0%, #1a1210 40%, #0d0805 100%),
    radial-gradient(ellipse at 50% 20%, #2a1a10 0%, transparent 60%);
}
.scn-suicide-discovered .bg { position:absolute; inset:0; background: linear-gradient(90deg, #121212 0%, #1a1410 50%, #0d0d0d 100%); }
.scn-suicide-discovered .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1410 0%, #0d0805 100%); }
.scn-suicide-discovered .body { position:absolute; bottom:8%; left:35%; width:18%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1005 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-suicide-discovered .maid-silhouette { position:absolute; bottom:15%; left:55%; width:14%; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: translateX(20px) scaleX(-1); animation: sd-maid 1.5s ease-out forwards; }
.scn-suicide-discovered .tray-falling { position:absolute; top:10%; left:60%; width:12%; height:4%; background: #5a4a3a; border-radius:10%; transform: rotate(45deg); animation: sd-tray-fall 0.8s cubic-bezier(.5,0,.8,1) forwards; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.scn-suicide-discovered .shards { position:absolute; bottom:20%; left:58%; width:8%; height:6%; background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%); clip-path: polygon(0% 0%, 100% 50%, 60% 100%, 20% 80%, 0% 50%); opacity:0; animation: sd-shards 0.8s 0.6s linear forwards; filter: blur(1px); }
.scn-suicide-discovered .door { position:absolute; bottom:0; left:5%; width:30%; height:100%; background: linear-gradient(180deg, #1a1410 0%, #0d0805 100%); border-right: 2px solid #2a1a10; box-shadow: 4px 0 12px rgba(0,0,0,.5); }

@keyframes sd-maid { 0% { transform: translateX(50px) scaleX(-1); opacity:0; } 100% { transform: translateX(20px) scaleX(-1); opacity:1; } }
@keyframes sd-tray-fall { 0% { transform: rotate(10deg) translateY(-80px); opacity:1; } 100% { transform: rotate(70deg) translateY(0); opacity:1; } }
@keyframes sd-shards { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0; transform: scale(1.5) translateY(20px); } }

/* item-suicide-letter - desk with letter, candle, child silhouette */
.scn-item-suicide-letter {
  background: 
    linear-gradient(180deg, #0a0a0a 0%, #151515 30%, #1a1210 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a10 0%, transparent 70%);
}
.scn-item-suicide-letter .bg { position:absolute; inset:0; background: linear-gradient(90deg, #121212 0%, #1a1410 50%, #121212 100%); }
.scn-item-suicide-letter .desk { position:absolute; bottom:10%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1005 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.4); }
.scn-item-suicide-letter .letter { position:absolute; bottom:22%; left:40%; width:20%; height:12%; background: linear-gradient(135deg, #c8b88a 0%, #a89870 100%); border-radius: 2%; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: sl-letter 4s ease-in-out infinite; }
.scn-item-suicide-letter .candle { position:absolute; bottom:28%; left:52%; width:4%; height:14%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 10%; transform: rotate(2deg); }
.scn-item-suicide-letter .candle-glow { position:absolute; bottom:40%; left:53%; width:6px; height:6px; background: radial-gradient(circle, #ffcc80 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,204,128,.5), 0 0 60px 20px rgba(255,204,128,.2); animation: sl-glow 2s ease-in-out infinite alternate; }
.scn-item-suicide-letter .inkwell { position:absolute; bottom:22%; left:55%; width:6%; height:8%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-item-suicide-letter .child-silhouette { position:absolute; bottom:8%; right:20%; width:10%; height:20%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: scaleX(-1); animation: sl-child 6s ease-in-out infinite; }

@keyframes sl-letter { 0%,100% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-2px); } 50% { transform: rotate(-4deg) translateY(-1px); } 75% { transform: rotate(-1deg) translateY(1px); } }
@keyframes sl-glow { 0% { opacity:.7; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,.15); } 50% { opacity:1; box-shadow: 0 0 35px 10px #ffcc80, 0 0 70px 20px rgba(255,204,128,.3); } 100% { opacity:.8; box-shadow: 0 0 25px 8px #b08040, 0 0 50px 15px rgba(176,128,64,.2); } }
@keyframes sl-child { 0%,100% { transform: scaleX(-1) translateX(0); } 25% { transform: scaleX(-1) translateX(5px) rotateY(10deg); } 50% { transform: scaleX(-1) translateX(0); } 75% { transform: scaleX(-1) translateX(-3px) rotateY(-5deg); } }

/* farm-courtyard (calm, sunlit) */
.scn-farm-courtyard {
  background: linear-gradient(180deg, #7bb8e0 0%, #a0d0e8 30%, #c8e6f0 60%, #f0e6c0 100%),
              radial-gradient(ellipse at 50% 0%, #fdf4d0 0%, transparent 60%);
}
.scn-farm-courtyard .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7cb8e0 0%, #b0d8ee 50%, transparent 100%);
  animation: fc-sky 20s ease-in-out infinite alternate;
}
.scn-farm-courtyard .sun {
  position: absolute; top: 12%; left: 70%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5d0 0%, #fde89c 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(253,232,156,0.4);
  animation: fc-sun 12s ease-in-out infinite alternate;
}
.scn-farm-courtyard .trees-back {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 22%;
  background: repeating-linear-gradient(90deg, 
    transparent 0px, transparent 20px, 
    #4a6b3a 20px, #4a6b3a 30px, 
    transparent 30px, transparent 50px);
  border-radius: 60% 40% 0 0 / 30% 50% 0 0;
  opacity: 0.6;
  animation: fc-trees-back 25s ease-in-out infinite alternate;
}
.scn-farm-courtyard .trees-front {
  position: absolute; bottom: 32%; left: 5%; right: 5%; height: 20%;
  background: repeating-linear-gradient(90deg,
    transparent 0px, transparent 30px,
    #5a7a4a 30px, #5a7a4a 45px,
    transparent 45px, transparent 70px);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  animation: fc-trees-front 18s ease-in-out infinite alternate;
}
.scn-farm-courtyard .building {
  position: absolute; bottom: 28%; left: 30%; width: 120px; height: 70px;
  background: linear-gradient(180deg, #c8a070 0%, #b08850 40%, #8a6830 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
.scn-farm-courtyard .stable {
  position: absolute; bottom: 28%; left: 55%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #b89870 0%, #8a7050 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: fc-stable 10s ease-in-out infinite alternate;
}
.scn-farm-courtyard .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c8b080 0%, #a08850 40%, #7a6830 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-farm-courtyard .fence {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 4px;
  background: #6a5020;
  box-shadow: 0 10px 0 #6a5020, 0 20px 0 #6a5020;
  border-radius: 2px;
}

@keyframes fc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes fc-sun { 0% { transform: scale(0.95); box-shadow: 0 0 40px 15px rgba(253,232,156,0.2); } 50% { transform: scale(1.05); box-shadow: 0 0 70px 25px rgba(253,232,156,0.5); } 100% { transform: scale(1); box-shadow: 0 0 50px 20px rgba(253,232,156,0.3); } }
@keyframes fc-trees-back { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes fc-trees-front { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes fc-stable { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* horse-coco (sad, sunlit) */
.scn-horse-coco {
  background: linear-gradient(180deg, #a8c8d8 0%, #d0e0e8 40%, #f0e8d0 80%, #d8c8a0 100%),
              radial-gradient(ellipse at 50% 0%, #fdf4d0 0%, transparent 50%);
}
.scn-horse-coco .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #98b8c8 0%, #c0d8e0 50%, transparent 100%);
  animation: hc-sky 16s ease-in-out infinite alternate;
}
.scn-horse-coco .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c8b890 0%, #a89860 50%, #887840 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-horse-coco .horse-body {
  position: absolute; bottom: 22%; left: 30%; width: 120px; height: 70px;
  background: linear-gradient(180deg, #b8a080 0%, #988068 50%, #786048 100%);
  border-radius: 50% 40% 50% 40% / 60% 50% 50% 60%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: hc-body 8s ease-in-out infinite alternate;
}
.scn-horse-coco .horse-head {
  position: absolute; bottom: 30%; left: 55%; width: 50px; height: 65px;
  background: linear-gradient(180deg, #b8a080 0%, #a08868 50%, #786048 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  transform-origin: bottom left;
  animation: hc-head 6s ease-in-out infinite alternate;
}
.scn-horse-coco .horse-mane {
  position: absolute; bottom: 38%; left: 52%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 30% 40% 40% / 40% 30% 50% 50%;
  animation: hc-mane 5s ease-in-out infinite alternate;
}
.scn-horse-coco .horse-eye {
  position: absolute; bottom: 38%; left: 60%; width: 8px; height: 6px;
  background: #2a1a0a;
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(0,0,0,0.1);
  animation: hc-eye 10s ease-in-out infinite;
}
.scn-horse-coco .shadow {
  position: absolute; bottom: 16%; left: 25%; width: 130px; height: 16px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(6px);
  animation: hc-shadow 8s ease-in-out infinite alternate;
}

@keyframes hc-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes hc-body { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hc-head { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-2deg); } }
@keyframes hc-mane { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes hc-eye { 0% { transform: scaleY(1); } 25% { transform: scaleY(0.3); } 50% { transform: scaleY(1); } 75% { transform: scaleY(0.3); } 100% { transform: scaleY(1); } }
@keyframes hc-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.1); } 100% { opacity:0.3; transform: scaleX(1); } }

/* zidore-hatred (tense, sunlit) */
.scn-zidore-hatred {
  background: linear-gradient(180deg, #b8d0e0 0%, #d8e8f0 30%, #f0e8c8 60%, #d8c098 100%),
              radial-gradient(ellipse at 50% 0%, #fdf4d0 0%, transparent 50%);
}
.scn-zidore-hatred .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #a8c8d8 0%, #c8d8e0 50%, transparent 100%);
  animation: zh-sky 14s ease-in-out infinite alternate;
}
.scn-zidore-hatred .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c8b890 0%, #b09870 50%, #887048 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-zidore-hatred .zidore-figure {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: zh-figure 2s ease-in-out infinite;
}
.scn-zidore-hatred .zidore-fist {
  position: absolute; bottom: 30%; left: 32%; width: 12px; height: 14px;
  background: #4a3a2a;
  border-radius: 50% 50% 40% 40%;
  animation: zh-fist 1.2s ease-in-out infinite;
}
.scn-zidore-hatred .farmhand-shadow-1 {
  position: absolute; bottom: 20%; left: 60%; width: 40px; height: 70px;
  background: rgba(0,0,0,0.12);
  border-radius: 50% 40% 40% 50% / 40% 40% 50% 50%;
  filter: blur(4px);
  animation: zh-shadow1 3s ease-in-out infinite alternate;
}
.scn-zidore-hatred .farmhand-shadow-2 {
  position: absolute; bottom: 22%; left: 70%; width: 35px; height: 65px;
  background: rgba(0,0,0,0.10);
  border-radius: 50% 40% 50% 40% / 40% 50% 40% 50%;
  filter: blur(4px);
  animation: zh-shadow2 3.5s ease-in-out infinite alternate;
  animation-delay: -1s;
}
.scn-zidore-hatred .switch {
  position: absolute; bottom: 26%; left: 28%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: zh-switch 0.6s ease-in-out infinite;
}

@keyframes zh-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes zh-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes zh-fist { 0% { transform: translate(0,0) rotate(-5deg); } 25% { transform: translate(2px,-1px) rotate(3deg); } 50% { transform: translate(0,0) rotate(-5deg); } 75% { transform: translate(-2px,-1px) rotate(3deg); } 100% { transform: translate(0,0) rotate(-5deg); } }
@keyframes zh-shadow1 { 0% { transform: translateX(0) scaleX(1); opacity:0.1; } 50% { transform: translateX(5px) scaleX(1.05); opacity:0.2; } 100% { transform: translateX(0) scaleX(1); opacity:0.1; } }
@keyframes zh-shadow2 { 0% { transform: translateX(0) scaleX(1); opacity:0.08; } 50% { transform: translateX(-5px) scaleX(1.03); opacity:0.18; } 100% { transform: translateX(0) scaleX(1); opacity:0.08; } }
@keyframes zh-switch { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-15deg); } 100% { transform: rotate(0deg); } }

/* horse-pasture (tense, sunlit) */
.scn-horse-pasture {
  background: linear-gradient(180deg, #a0c8d8 0%, #c0dce8 30%, #e8e0c0 60%, #c8b890 100%),
              radial-gradient(ellipse at 50% 0%, #fdf4d0 0%, transparent 50%);
}
.scn-horse-pasture .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #90b8c8 0%, #b8d0d8 50%, transparent 100%);
  animation: hp-sky 18s ease-in-out infinite alternate;
}
.scn-horse-pasture .pasture-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #d0c090 0%, #b8a070 50%, #a08858 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-horse-pasture .horse-grazing {
  position: absolute; bottom: 20%; left: 20%; width: 110px; height: 60px;
  background: linear-gradient(180deg, #b8a080 0%, #a08868 50%, #786048 100%);
  border-radius: 50% 40% 50% 40% / 60% 50% 50% 60%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.3);
  animation: hp-body 6s ease-in-out infinite alternate;
}
.scn-horse-pasture .horse-head-down {
  position: absolute; bottom: 14%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #b8a080 0%, #a08868 50%, #786048 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  transform-origin: top center;
  animation: hp-head-down 4s ease-in-out infinite alternate;
}
.scn-horse-pasture .zidore-sneak {
  position: absolute; bottom: 18%; left: 60%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hp-zidore 3s ease-in-out infinite;
}
.scn-horse-pasture .switch-held {
  position: absolute; bottom: 28%; left: 58%; width: 5px; height: 35px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: hp-switch 1s ease-in-out infinite;
}
.scn-horse-pasture .shadow-cast {
  position: absolute; bottom: 12%; left: 55%; width: 80px; height: 12px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(5px);
  animation: hp-shadow 3s ease-in-out infinite alternate;
}

@keyframes hp-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes hp-body { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hp-head-down { 0% { transform: rotate(10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(10deg); } }
@keyframes hp-zidore { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(5px) scaleX(1.02); } 50% { transform: translateX(0) scaleX(1); } 75% { transform: translateX(-5px) scaleX(0.98); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes hp-switch { 0% { transform: rotate(0deg); } 25% { transform: rotate(20deg); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes hp-shadow { 0% { transform: scaleX(1); opacity:0.2; } 50% { transform: scaleX(1.3); opacity:0.4; } 100% { transform: scaleX(1); opacity:0.2; } }

.scn-dufour-birthday-outing {
  background: linear-gradient(180deg, #f7e8c4 0%, #d4c28a 40%, #a6b07a 70%, #6a8a5a 100%), radial-gradient(ellipse at 30% 20%, #fff3d8 0%, transparent 60%);
}
.scn-dufour-birthday-outing .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a8d8f0 0%, #d0e8f8 40%, #e8f0ff 100%);
  animation: dbo-sky 25s ease-in-out infinite alternate;
}
.scn-dufour-birthday-outing .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff9c0 0%, #fddc6a 40%, #e8a030 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(253,220,106,0.5), 0 0 160px 40px rgba(232,160,48,0.3);
  animation: dbo-sun 15s ease-in-out infinite alternate;
}
.scn-dufour-birthday-outing .trees {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a7a3a 0%, #3a5a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 80% 0 0;
  filter: blur(2px);
  animation: dbo-trees 20s ease-in-out infinite alternate;
}
.scn-dufour-birthday-outing .table {
  position: absolute; bottom: 18%; left: 25%; width: 120px; height: 20px;
  background: linear-gradient(90deg, #c4a462 0%, #dbb874 50%, #c4a462 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  transform: perspective(300px) rotateX(10deg);
}
.scn-dufour-birthday-outing .basket {
  position: absolute; bottom: 20%; left: 32%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #b8844a 0%, #8a5a2e 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
}
.scn-dufour-birthday-outing .figure-a {
  position: absolute; bottom: 16%; left: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2e1a 100%); /* terracotta */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbo-fig-a 4s ease-in-out infinite;
}
.scn-dufour-birthday-outing .figure-b {
  position: absolute; bottom: 16%; left: 40%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbo-fig-b 4.5s ease-in-out infinite 0.5s;
}
.scn-dufour-birthday-outing .figure-c {
  position: absolute; bottom: 18%; left: 50%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #a0461a 0%, #6a2a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbo-fig-c 3.8s ease-in-out infinite 1s;
}

@keyframes dbo-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dbo-sun { 0% { transform: scale(1) translate(0, 0); box-shadow: 0 0 60px 15px rgba(253,220,106,0.4); } 50% { transform: scale(1.05) translate(2px, -2px); box-shadow: 0 0 100px 25px rgba(253,220,106,0.6); } 100% { transform: scale(0.98) translate(-1px, 1px); box-shadow: 0 0 70px 18px rgba(253,220,106,0.45); } }
@keyframes dbo-trees { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dbo-fig-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dbo-fig-b { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-6px) rotate(-2deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes dbo-fig-c { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(10px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }

/* ———————————————————— family-in-wagon ———————————————————— */

.scn-family-in-wagon {
  background: linear-gradient(180deg, #f4e9c0 0%, #d4bc7a 35%, #8aaa5a 65%, #5a7a3a 100%), radial-gradient(ellipse at 50% 0%, #fffbe0 0%, transparent 50%);
}
.scn-family-in-wagon .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a0c8e8 0%, #c8e0f0 50%, #e0f0ff 100%);
  animation: fiw-sky 20s ease-in-out infinite alternate;
}
.scn-family-in-wagon .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-family-in-wagon .wagon-body {
  position: absolute; bottom: 28%; left: 30%; width: 140px; height: 60px;
  background: linear-gradient(90deg, #7a5a3a 0%, #9a7a4a 50%, #6a4a2a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  transform: perspective(200px) rotateX(5deg);
}
.scn-family-in-wagon .wheel-front {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 30px;
  background: radial-gradient(circle, #4a3a2a 30%, #2a1a0a 70%);
  border-radius: 50%;
  border: 3px solid #3a2a1a;
  animation: fiw-wheel 3s linear infinite;
}
.scn-family-in-wagon .wheel-back {
  position: absolute; bottom: 22%; left: 32%; width: 28px; height: 28px;
  background: radial-gradient(circle, #4a3a2a 30%, #2a1a0a 70%);
  border-radius: 50%;
  border: 3px solid #3a2a1a;
  animation: fiw-wheel 3s linear infinite reverse;
}
.scn-family-in-wagon .figure-grandma {
  position: absolute; bottom: 24%; left: 48%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%); /* burgundy */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fiw-bob 2.5s ease-in-out infinite;
}
.scn-family-in-wagon .figure-girl {
  position: absolute; bottom: 24%; left: 54%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%); /* dusty rose */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fiw-bob 2.8s ease-in-out infinite 0.3s;
}
.scn-family-in-wagon .figure-boy {
  position: absolute; bottom: 24%; left: 38%; width: 50px; height: 14px;
  background: linear-gradient(90deg, #c8a050 0%, #e0b868 100%);
  border-radius: 50% / 80%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: fiw-boy 4s ease-in-out infinite;
}
/* boy is lying down, so shape is horizontal */

@keyframes fiw-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fiw-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes fiw-bob { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fiw-boy { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }

/* ———————————————————— countryside-view ———————————————————— */

.scn-countryside-view {
  background: linear-gradient(180deg, #dce8f0 0%, #b0c8d8 30%, #7a9a6a 60%, #4a6a3a 100%), radial-gradient(ellipse at 50% 0%, #f0f8ff 0%, transparent 60%);
}
.scn-countryside-view .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #80b0d8 0%, #a0c8e0 50%, #c0e0f0 100%);
  animation: cv-sky 30s ease-in-out infinite alternate;
}
.scn-countryside-view .hills-far {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 70% 0 0;
  filter: blur(3px);
  opacity: 0.8;
  animation: cv-hills-far 25s ease-in-out infinite alternate;
}
.scn-countryside-view .hills-near {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
  animation: cv-hills-near 18s ease-in-out infinite alternate;
}
.scn-countryside-view .bell-tower {
  position: absolute; bottom: 32%; left: 20%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #78604a 100%);
  border-radius: 10% 10% 0 0;
  transform: perspective(200px) rotateX(2deg);
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
}
.scn-countryside-view .aqueduct {
  position: absolute; bottom: 35%; right: 15%; width: 80px; height: 12px;
  background: linear-gradient(90deg, #8a7a6a 0%, #b09a7a 50%, #7a6a5a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  transform: perspective(300px) rotateX(15deg);
}
.scn-countryside-view .trees-left {
  position: absolute; bottom: 22%; left: 5%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(1px);
  animation: cv-tree 12s ease-in-out infinite alternate;
}
.scn-countryside-view .trees-right {
  position: absolute; bottom: 25%; right: 30%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #5a8a4a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(1px);
  animation: cv-tree 14s ease-in-out infinite alternate 1s;
}

@keyframes cv-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cv-hills-far { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cv-hills-near { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes cv-tree { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(0deg) scaleY(1); } }

/* ———————————————————— dusty-ugly-country ———————————————————— */

.scn-dusty-ugly-country {
  background: linear-gradient(180deg, #d4b888 0%, #a08050 30%, #7a5a3a 60%, #5a3a1a 100%), radial-gradient(ellipse at 50% 50%, #c8a060 0%, transparent 60%);
}
.scn-dusty-ugly-country .sky-dust {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c0b070 0%, #d0c080 40%, #e0d090 100%);
  animation: duc-sky 10s ease-in-out infinite alternate;
}
.scn-dusty-ugly-country .sun-harsh {
  position: absolute; top: 10%; left: 40%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff4b0 0%, #e8c050 40%, #c09830 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(232,192,80,0.5), 0 0 80px 20px rgba(192,152,48,0.3);
  animation: duc-sun 8s ease-in-out infinite alternate;
}
.scn-dusty-ugly-country .house-skel {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 70px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4% 4% 2% 2%;
  clip-path: polygon(0 30%, 100% 0, 100% 100%, 0 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: duc-shiver 3s ease-in-out infinite;
}
.scn-dusty-ugly-country .house-unfin {
  position: absolute; bottom: 28%; right: 25%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 2px;
  clip-path: polygon(0 0, 70% 10%, 70% 100%, 0 100%);
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  animation: duc-shiver 3.5s ease-in-out infinite 0.5s;
}
.scn-dusty-ugly-country .wall-fragment {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 0 20% 0 0;
  transform: skewX(-5deg);
  animation: duc-fall 6s ease-in-out infinite;
}
.scn-dusty-ugly-country .dust-cloud {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 30% 100%, #d0c0a0 0%, transparent 70%);
  filter: blur(8px);
  animation: duc-dust 12s ease-in-out infinite alternate;
}
.scn-dusty-ugly-country .shadow-sharp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(50,30,10,0.6) 0%, transparent 100%);
  animation: duc-shadow 4s ease-in-out infinite alternate;
}

@keyframes duc-sky { 0% { opacity: 0.7; filter: brightness(0.9); } 50% { opacity: 0.85; filter: brightness(1); } 100% { opacity: 0.6; filter: brightness(0.8); } }
@keyframes duc-sun { 0% { transform: scale(1); box-shadow: 0 0 30px 8px rgba(232,192,80,0.4); } 50% { transform: scale(1.08); box-shadow: 0 0 60px 15px rgba(232,192,80,0.6); } 100% { transform: scale(0.95); box-shadow: 0 0 40px 10px rgba(232,192,80,0.3); } }
@keyframes duc-shiver { 0% { transform: translate(0, 0); } 20% { transform: translate(1px, -1px); } 40% { transform: translate(-1px, 1px); } 60% { transform: translate(1px, 1px); } 80% { transform: translate(-1px, -1px); } 100% { transform: translate(0, 0); } }
@keyframes duc-fall { 0% { transform: translateY(0) skewX(-5deg); } 50% { transform: translateY(4px) skewX(-7deg); } 100% { transform: translateY(0) skewX(-5deg); } }
@keyframes duc-dust { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.2); } 100% { opacity: 0.4; transform: scaleY(0.9); } }
@keyframes duc-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-marguerite-plot { background: linear-gradient(180deg, #0a0a14 0%, #16161e 40%, #1e1e2a 100%), radial-gradient(ellipse at 30% 50%, #2a2a3e 0%, transparent 70%); }
.scn-marguerite-plot .bg-shadow    { position:absolute; inset:0; background: linear-gradient(180deg, #0d0d18 0%, #12121c 50%, #0a0a12 100%); animation: mp-bg 12s ease-in-out infinite alternate; }
.scn-marguerite-plot .window-light { position:absolute; top:8%; left:15%; width:40px; height:70px; background: linear-gradient(180deg, rgba(200,200,220,.4) 0%, rgba(100,100,130,.1) 100%); border-radius:2px; filter:blur(4px); animation: mp-light 9s ease-in-out infinite; }
.scn-marguerite-plot .table        { position:absolute; bottom:22%; left:20%; right:20%; height:18px; background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%); border-radius:2px; box-shadow:0 3px 8px rgba(0,0,0,.6); }
.scn-marguerite-plot .figure-hunched { position:absolute; bottom:18%; left:38%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 30%, #1a1a24 0%, #0e0e16 60%); border-radius:50% 50% 30% 30% / 40% 40% 60% 60%; transform-origin:bottom center; animation: mp-figure 7s ease-in-out infinite; }
.scn-marguerite-plot .hands-working { position:absolute; bottom:24%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #1c1c2a 0%, #121220 100%); border-radius:30% 30% 20% 20%; animation: mp-hands 3s ease-in-out infinite; }
.scn-marguerite-plot .glass-shards { position:absolute; bottom:26%; left:48%; width:40px; height:14px; background: linear-gradient(90deg, rgba(180,200,220,.3) 0%, rgba(140,160,190,.1) 50%, rgba(180,200,220,.2) 100%); border-radius:20%; filter:blur(1px); animation: mp-shards 5s ease-in-out infinite; }
.scn-marguerite-plot .jar          { position:absolute; bottom:20%; left:44%; width:16px; height:24px; background: linear-gradient(180deg, rgba(100,120,140,.25) 0%, rgba(80,90,110,.15) 100%); border-radius:4px 4px 6px 6px; border:1px solid rgba(150,170,190,.15); }
@keyframes mp-bg     { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mp-light  { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes mp-figure { 0% { transform:scaleY(1) translateY(0) } 50% { transform:scaleY(.98) translateY(-1px) } 100% { transform:scaleY(1) translateY(0) } }
@keyframes mp-hands  { 0% { transform:translateX(-50%) rotate(0deg) } 25% { transform:translateX(-50%) rotate(-2deg) translateY(-1px) } 75% { transform:translateX(-50%) rotate(2deg) translateY(1px) } 100% { transform:translateX(-50%) rotate(0deg) } }
@keyframes mp-shards { 0% { opacity:.5 } 50% { opacity:.9 } 100% { opacity:.4 } }

.scn-marguerite-confession-end { background: linear-gradient(180deg, #0a0808 0%, #1a1210 40%, #2a1816 100%), radial-gradient(ellipse at 50% 40%, #3a1a14 0%, transparent 60%); }
.scn-marguerite-confession-end .bg-deep        { position:absolute; inset:0; background: linear-gradient(180deg, #0d0a0a 0%, #151010 60%, #0a0808 100%); animation: mce-bg 15s ease-in-out infinite alternate; }
.scn-marguerite-confession-end .fireplace      { position:absolute; bottom:20%; left:50%; width:100px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0e0c0a 100%); border-radius:10% 10% 4% 4%; box-shadow:inset 0 -10px 20px rgba(0,0,0,.5); }
.scn-marguerite-confession-end .flame-main     { position:absolute; bottom:25%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 60%, #ff8833 .5%, #cc4411 30%, transparent 70%); border-radius:50%; animation: mce-flame 1.5s ease-in-out infinite; }
.scn-marguerite-confession-end .flame-ember    { position:absolute; bottom:22%; left:48%; width:14px; height:14px; background: radial-gradient(circle, #ff6622 .5%, #aa3300 40%, transparent 70%); border-radius:50%; animation: mce-ember 3s ease-in-out infinite; }
.scn-marguerite-confession-end .figure-kneeling { position:absolute; bottom:15%; left:30%; width:50px; height:90px; background: radial-gradient(ellipse at 50% 20%, #1c1414 0%, #0e0a0a 60%); border-radius:50% 50% 30% 30% / 40% 40% 50% 50%; transform-origin:bottom center; animation: mce-kneel 6s ease-in-out infinite; }
.scn-marguerite-confession-end .hands-clasped  { position:absolute; bottom:22%; left:28%; width:24px; height:18px; background: linear-gradient(180deg, #1a1212 0%, #0e0a0a 100%); border-radius:40% 40% 30% 30%; animation: mce-hands 4s ease-in-out infinite; }
.scn-marguerite-confession-end .shadow-dance   { position:absolute; bottom:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(20,10,8,.4) 100%); filter:blur(12px); animation: mce-shadow 8s ease-in-out infinite; }
.scn-marguerite-confession-end .wall-dark      { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #0e0a0a 0%, transparent 100%); animation: mce-wall 12s ease-in-out infinite alternate; }
@keyframes mce-bg    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes mce-flame { 0% { transform:translateX(-50%) scaleY(1) rotate(-1deg); opacity:.9 } 30% { transform:translateX(-50%) scaleY(1.1) rotate(2deg); opacity:1 } 60% { transform:translateX(-50%) scaleY(.95) rotate(-2deg); opacity:.8 } 100% { transform:translateX(-50%) scaleY(1) rotate(0); opacity:.9 } }
@keyframes mce-ember { 0% { transform:translate(0,0) scale(1); opacity:.6 } 50% { transform:translate(4px,-2px) scale(1.2); opacity:1 } 100% { transform:translate(-2px,2px) scale(.8); opacity:.4 } }
@keyframes mce-kneel { 0% { transform:scaleY(1) translateY(0) } 33% { transform:scaleY(.97) translateY(-1px) rotate(.5deg) } 66% { transform:scaleY(1.02) translateY(1px) rotate(-.5deg) } 100% { transform:scaleY(1) translateY(0) } }
@keyframes mce-hands { 0% { transform:rotate(0deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-2px) } 100% { transform:rotate(3deg) translateY(1px) } }
@keyframes mce-shadow{ 0% { opacity:.5 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes mce-wall  { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }

.scn-marguerite-death-forgiveness { background: linear-gradient(180deg, #1a1210 0%, #3a2216 30%, #4a2a1a 60%, #2a1810 100%), radial-gradient(ellipse at 50% 80%, #5a301a 0%, transparent 70%); }
.scn-marguerite-death-forgiveness .bg-warm        { position:absolute; inset:0; background: linear-gradient(180deg, #1e1410 0%, #3a2016 40%, #2a1812 100%); animation: mdf-bg 14s ease-in-out infinite alternate; }
.scn-marguerite-death-forgiveness .bed-frame      { position:absolute; bottom:5%; left:15%; right:15%; height:45%; background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%); border-radius:6% 6% 2% 2%; box-shadow:inset 0 8px 16px rgba(0,0,0,.4); }
.scn-marguerite-death-forgiveness .figure-lying   { position:absolute; bottom:8%; left:30%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 30%, #2a1a14 0%, #1a0e0a 60%); border-radius:50% 50% 30% 30% / 30% 30% 60% 60%; transform-origin:center 30%; animation: mdf-lying 9s ease-in-out infinite; }
.scn-marguerite-death-forgiveness .figure-suzanne { position:absolute; bottom:6%; left:15%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 20%, #2c1e16 0%, #1a100c 60%); border-radius:50% 50% 40% 40% / 40% 40% 50% 50%; transform-origin:bottom center; animation: mdf-suzanne 11s ease-in-out infinite; }
.scn-marguerite-death-forgiveness .hands-suzanne  { position:absolute; bottom:14%; left:14%; width:16px; height:12px; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); border-radius:30%; animation: mdf-hands-s 7s ease-in-out infinite; }
.scn-marguerite-death-forgiveness .bedclothes     { position:absolute; bottom:6%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #3a2a20 0%, #2a1a14 100%); border-radius:30% 30% 10% 10%; filter:blur(2px); }
.scn-marguerite-death-forgiveness .fire-glow      { position:absolute; top:10%; left:40%; right:20%; bottom:40%; background: radial-gradient(ellipse at 50% 50%, rgba(180,120,50,.25) 0%, transparent 80%); animation: mdf-glow 5s ease-in-out infinite; }
.scn-marguerite-death-forgiveness .candle         { position:absolute; top:18%; left:52%; width:8px; height:20px; background: linear-gradient(180deg, #4a2a18 0%, #2a1a0e 100%); border-radius:2px; }
@keyframes mdf-bg      { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mdf-lying   { 0% { transform:scaleY(1) translateY(0) } 25% { transform:scaleY(1.01) translateY(-1px) } 75% { transform:scaleY(.99) translateY(1px) } 100% { transform:scaleY(1) translateY(0) } }
@keyframes mdf-suzanne { 0% { transform:scaleY(1) translateY(0) rotate(0deg) } 33% { transform:scaleY(.98) translateY(-1px) rotate(1deg) } 66% { transform:scaleY(1.01) translateY(1px) rotate(-1deg) } 100% { transform:scaleY(1) translateY(0) rotate(0deg) } }
@keyframes mdf-hands-s { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-2px) rotate(-4deg) } 100% { transform:translateY(1px) rotate(2deg) } }
@keyframes mdf-glow    { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-lucas-farm-manor { background: linear-gradient(180deg, #9a9a8a 0%, #babaae 30%, #cacaae 60%, #8a8a7a 100%), radial-gradient(ellipse at 50% 30%, #dada ce 0%, transparent 70%); }
.scn-lucas-farm-manor .sky-overcast   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #9e9e8e 0%, #bebeb2 40%, #cecebe 100%); animation: lfm-sky 25s ease-in-out infinite alternate; }
.scn-lucas-farm-manor .fields-far     { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a7a5a 0%, #6a6a4a 100%); border-radius:60% 40% 0 0 / 40% 30% 0 0; animation: lfm-fields 18s ease-in-out infinite; }
.scn-lucas-farm-manor .farmhouse      { position:absolute; bottom:25%; left:20%; width:140px; height:80px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:4% 4% 2% 2%; box-shadow:0 6px 12px rgba(0,0,0,.2); }
.scn-lucas-farm-manor .barn           { position:absolute; bottom:25%; left:55%; width:90px; height:60px; background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%); border-radius:3% 3% 2% 2%; transform:scale(.95); }
.scn-lucas-farm-manor .trees          { position:absolute; bottom:28%; left:8%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 30%, #5a6a3a 0%, #3a4a2a 60%); border-radius:50% 50% 20% 20%; }
.scn-lucas-farm-manor .fence          { position:absolute; bottom:27%; left:0; right:0; height:8px; background: repeating-linear-gradient(90deg, #5a4a3a 0px 4px, transparent 4px 20px); border-radius:1px; }
.scn-lucas-farm-manor .cloud-slow-a   { position:absolute; top:10%; left:10%; width:120px; height:18px; background: linear-gradient(180deg, rgba(220,220,210,.7) 0%, rgba(200,200,190,.1) 100%); border-radius:50%; filter:blur(8px); animation: lfm-cloud-a 45s linear infinite; }
.scn-lucas-farm-manor .cloud-slow-b   { position:absolute; top:16%; right:5%; width:90px; height:14px; background: linear-gradient(180deg, rgba(210,210,200,.5) 0%, rgba(190,190,180,.05) 100%); border-radius:50%; filter:blur(6px); animation: lfm-cloud-b 55s linear infinite reverse; }
.scn-lucas-farm-manor .weather-vane   { position:absolute; top:4%; left:24%; width:4px; height:30px; background: #4a4a3a; border-radius:1px; transform-origin:bottom center; animation: lfm-vane 10s ease-in-out infinite; }
@keyframes lfm-sky     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes lfm-fields  { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes lfm-cloud-a { 0% { transform:translateX(-30px) } 100% { transform:translateX(120vw) } }
@keyframes lfm-cloud-b { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }
@keyframes lfm-vane    { 0% { transform:rotate(0deg) } 30% { transform:rotate(8deg) } 70% { transform:rotate(-6deg) } 100% { transform:rotate(2deg) } }

.scn-item-flower-wreath {
  background: linear-gradient(180deg, #fad7a0 0%, #e8cf9e 40%, #f2d7a0 70%, #fce4b8 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d6 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-item-flower-wreath .bg-sun {
  position:absolute; inset:0; background: radial-gradient(circle at 75% 20%, #fff8e0 0%, transparent 50%);
  animation: ifw-sun 8s ease-in-out infinite alternate;
}
.scn-item-flower-wreath .wreath-main {
  position:absolute; top:50%; left:50%; width:120px; height:120px; transform:translate(-50%,-50%);
  background: radial-gradient(circle at 50% 50%, #8fbc8f 0%, #6b8e23 40%, #556b2f 70%, #3a5a1a 100%);
  border-radius:50%; box-shadow: 0 8px 20px rgba(0,0,0,.15);
  clip-path: polygon(0% 50%, 25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%);
  animation: ifw-wreath 12s ease-in-out infinite;
}
.scn-item-flower-wreath .wreath-flower {
  position:absolute; width:30px; height:30px; border-radius:50%;
  background: radial-gradient(circle at 40% 40%, #ffe599 0%, #f0c040 60%, #b8860b 100%);
  box-shadow: 0 0 12px 4px rgba(255,215,0,.3);
}
.scn-item-flower-wreath .fl1 { top:30%; left:45%; animation: ifw-flower 6s ease-in-out infinite; }
.scn-item-flower-wreath .fl2 { top:55%; left:35%; animation: ifw-flower 6s ease-in-out infinite 0.5s; }
.scn-item-flower-wreath .fl3 { top:45%; left:60%; animation: ifw-flower 6s ease-in-out infinite 1s; }
.scn-item-flower-wreath .leaf {
  position:absolute; width:20px; height:40px; border-radius:50% 0;
  background: linear-gradient(180deg, #7a9f3a 0%, #5a7a2a 100%);
  transform-origin: bottom center;
}
.scn-item-flower-wreath .l1 { top:40%; left:30%; rotate:20deg; animation: ifw-leaf1 10s ease-in-out infinite; }
.scn-item-flower-wreath .l2 { top:50%; left:55%; rotate:-30deg; animation: ifw-leaf2 10s ease-in-out infinite; }
.scn-item-flower-wreath .l3 { top:35%; left:55%; rotate:60deg; animation: ifw-leaf3 10s ease-in-out infinite; }
.scn-item-flower-wreath .dapple {
  position:absolute; inset:0; background: radial-gradient(circle at 30% 60%, rgba(255,255,200,.15) 0%, transparent 30%);
  filter: blur(8px); animation: ifw-dapple 14s ease-in-out infinite alternate;
}
@keyframes ifw-sun { 0% { opacity:.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:.8; transform:scale(.95) } }
@keyframes ifw-wreath { 0% { transform:translate(-50%,-50%) scale(1) rotate(0deg) } 50% { transform:translate(-50%,-50%) scale(1.02) rotate(2deg) } 100% { transform:translate(-50%,-50%) scale(1) rotate(-1deg) } }
@keyframes ifw-flower { 0% { transform:scale(1) rotate(0deg) } 50% { transform:scale(1.1) rotate(15deg) } 100% { transform:scale(1) rotate(-5deg) } }
@keyframes ifw-leaf1 { 0%,100% { transform:rotate(20deg) translateY(0) } 50% { transform:rotate(25deg) translateY(-5px) } }
@keyframes ifw-leaf2 { 0%,100% { transform:rotate(-30deg) translateY(0) } 50% { transform:rotate(-35deg) translateY(-5px) } }
@keyframes ifw-leaf3 { 0%,100% { transform:rotate(60deg) translateY(0) } 50% { transform:rotate(55deg) translateY(-5px) } }
@keyframes ifw-dapple { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-saval-memory-return {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c090 40%, #c8a878 100%),
              radial-gradient(ellipse at 60% 0%, #fff8dc 0%, transparent 60%);
}
.scn-saval-memory-return .sky-glow {
  position:absolute; top:0; left:0; right:0; bottom:40%;
  background: linear-gradient(180deg, #ffe8b0 0%, #f5d890 60%, transparent 100%);
  animation: smr-sky 12s ease-in-out infinite alternate;
}
.scn-saval-memory-return .ground-path {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #b08050 0%, #8a6a40 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-saval-memory-return .tree-tree {
  position:absolute; bottom:30%; left:15%; width:60px; height:180px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 30% 30% 20% 20% / 80% 80% 20% 20%;
  box-shadow: -10px 0 20px rgba(0,0,0,.15);
}
.scn-saval-memory-return .couple-man {
  position:absolute; bottom:32%; left:40%; width:22px; height:55px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smr-man 4s ease-in-out infinite;
}
.scn-saval-memory-return .couple-woman {
  position:absolute; bottom:32%; left:46%; width:20px; height:50px;
  background: linear-gradient(180deg, #6a4a6a 0%, #3a2a4a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: smr-woman 4s ease-in-out infinite 0.2s;
}
.scn-saval-memory-return .shadow-cast {
  position:absolute; bottom:30%; left:38%; width:50px; height:8px;
  background: rgba(0,0,0,.2); border-radius: 50%;
  filter: blur(4px);
  animation: smr-shadow 4s ease-in-out infinite;
}
.scn-saval-memory-return .dust-mote {
  position:absolute; width:4px; height:4px; background: #fff5d0; border-radius:50%;
  filter: blur(2px);
}
.scn-saval-memory-return .m1 { top:20%; left:30%; animation: smr-mote1 20s linear infinite; }
.scn-saval-memory-return .m2 { top:25%; left:60%; animation: smr-mote2 25s linear infinite 3s; }
@keyframes smr-sky { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.7; transform: scaleY(.98) } }
@keyframes smr-man { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes smr-woman { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(3px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes smr-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(1) } }
@keyframes smr-mote1 { 0% { transform: translate(0,0) scale(1); opacity:.4 } 50% { transform: translate(50px,-30px) scale(1.5); opacity:.7 } 100% { transform: translate(100px,0) scale(1); opacity:.4 } }
@keyframes smr-mote2 { 0% { transform: translate(0,0) scale(1); opacity:.3 } 50% { transform: translate(-40px,-20px) scale(1.4); opacity:.6 } 100% { transform: translate(-80px,0) scale(1); opacity:.3 } }

.scn-saval-realization {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #5a6a7a 0%, transparent 60%);
}
.scn-saval-realization .room-wall {
  position:absolute; top:0; left:0; right:0; bottom:0;
  background: linear-gradient(90deg, #3a3a4a 0%, #4a4a5a 50%, #3a3a4a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
}
.scn-saval-realization .room-floor {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-saval-realization .window-sash {
  position:absolute; top:15%; left:15%; width:70%; height:60%;
  border: 4px solid #2a2a3a; background: transparent;
  border-radius: 2%; box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-saval-realization .window-pane {
  position:absolute; top:17%; left:17%; width:66%; height:56%;
  background: linear-gradient(180deg, #6a7a8a 0%, #8a9a9a 30%, #6a7a8a 100%);
  opacity:.4;
  animation: sre-pane 8s ease-in-out infinite alternate;
}
.scn-saval-realization .figure-man {
  position:absolute; bottom:15%; left:40%; width:28px; height:70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sre-man 6s ease-in-out infinite;
}
.scn-saval-realization .shadow-fall {
  position:absolute; bottom:15%; left:42%; width:40px; height:6px;
  background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(3px);
  animation: sre-shadow 6s ease-in-out infinite;
}
.scn-saval-realization .ray-light {
  position:absolute; top:20%; left:20%; width:0; height:0;
  border-left: 60px solid transparent; border-right: 60px solid transparent;
  border-bottom: 200px solid rgba(180,200,220,.1);
  transform:rotate(10deg);
  filter: blur(8px);
  animation: sre-ray 10s ease-in-out infinite alternate;
}
@keyframes sre-pane { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes sre-man { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 60% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes sre-shadow { 0% { transform: scaleX(1) } 30% { transform: scaleX(1.2) } 60% { transform: scaleX(.9) } 100% { transform: scaleX(1) } }
@keyframes sre-ray { 0% { opacity:.2; transform: rotate(10deg) translateY(0) } 50% { opacity:.5; transform: rotate(15deg) translateY(-10px) } 100% { opacity:.3; transform: rotate(8deg) translateY(0) } }

.scn-sandres-house-visit {
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 40%, #3a4a5a 100%),
              radial-gradient(ellipse at 50% 0%, #7a8a9a 0%, transparent 50%);
}
.scn-sandres-house-visit .street-grey {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-sandres-house-visit .house-facade {
  position:absolute; bottom:28%; left:30%; width:40%; height:50%;
  background: linear-gradient(180deg, #6a7a7a 0%, #5a6a6a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 10px 30px rgba(0,0,0,.4);
}
.scn-sandres-house-visit .door-dark {
  position:absolute; bottom:28%; left:42%; width:16%; height:40%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 4% 4% 0 0 / 8% 8% 0 0;
  box-shadow: inset 0 0 15px rgba(0,0,0,.6);
}
.scn-sandres-house-visit .door-knocker {
  position:absolute; bottom:45%; left:49%; width:6px; height:6px;
  background: radial-gradient(circle, #8a7a5a 0%, #5a4a3a 100%);
  border-radius:50%; box-shadow: 0 0 6px 2px rgba(0,0,0,.5);
  animation: shv-knock 4s ease-in-out infinite;
}
.scn-sandres-house-visit .figure-saval {
  position:absolute; bottom:25%; left:34%; width:26px; height:65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: shv-figure 8s ease-in-out infinite;
}
.scn-sandres-house-visit .lamp-post {
  position:absolute; bottom:30%; left:20%; width:8px; height:50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 2px;
}
.scn-sandres-house-visit .lamp-post::after {
  content:''; position:absolute; top:-6px; left:50%; transform:translateX(-50%);
  width:16px; height:16px; background: radial-gradient(circle, #d0c080 0%, #7a6a40 100%);
  border-radius:50%; box-shadow: 0 0 20px 6px rgba(200,180,120,.3);
}
.scn-sandres-house-visit .fog-wisp {
  position:absolute; width:80px; height:20px; background: rgba(200,210,220,.1);
  border-radius:50%; filter: blur(12px);
}
.scn-sandres-house-visit .w1 { top:15%; left:10%; animation: shv-fog1 40s linear infinite; }
.scn-sandres-house-visit .w2 { top:25%; left:60%; animation: shv-fog2 50s linear infinite 10s; }
@keyframes shv-knock { 0%,100% { transform: translateY(0) scale(1) } 25% { transform: translateY(-5px) scale(1.1) } 50% { transform: translateY(0) scale(1) } 75% { transform: translateY(-5px) scale(1.1) } }
@keyframes shv-figure { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(3px) translateY(-1px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(3px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes shv-fog1 { 0% { transform: translateX(-100px) scale(1); opacity:.2 } 50% { transform: translateX(200px) scale(1.5); opacity:.4 } 100% { transform: translateX(400px) scale(1); opacity:.2 } }
@keyframes shv-fog2 { 0% { transform: translateX(0) scale(1); opacity:.1 } 50% { transform: translateX(-100px) scale(1.3); opacity:.3 } 100% { transform: translateX(-200px) scale(1); opacity:.1 } }

/* item-infant-outfit */
.scn-item-infant-outfit {
  background: 
    linear-gradient(180deg, #3d2c1e 0%, #2a1f14 40%, #1f1610 100%),
    radial-gradient(ellipse at 30% 60%, #5e3d28 0%, transparent 60%);
}
.scn-item-infant-outfit .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3628 0%, #2f2218 100%);
  animation: iio-wall 14s ease-in-out infinite alternate;
}
.scn-item-infant-outfit .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3525 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: iio-table 8s ease-in-out infinite alternate;
}
.scn-item-infant-outfit .outfit {
  position: absolute; bottom: 22%; left: 35%; width: 20%; height: 12%;
  background: radial-gradient(ellipse at 50% 40%, #cdb38c 0%, #8b7355 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: iio-outfit 6s ease-in-out infinite;
}
.scn-item-infant-outfit .candle {
  position: absolute; bottom: 22%; left: 55%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #f5d6a0 0%, #c9a06c 40%, #7a5a3a 100%);
  border-radius: 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: iio-candle 4s ease-in-out infinite alternate;
}
.scn-item-infant-outfit .glow {
  position: absolute; bottom: 18%; left: 50%; width: 12%; height: 14%;
  background: radial-gradient(circle, rgba(255,235,180,0.35) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -20%);
  box-shadow: 0 0 60px 20px rgba(255,235,180,0.15);
  animation: iio-glow 3s ease-in-out infinite alternate;
}
.scn-item-infant-outfit .chair {
  position: absolute; bottom: 10%; left: 15%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3628 0%, #2a1f14 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: iio-chair 10s ease-in-out infinite;
}
.scn-item-infant-outfit .fold {
  position: absolute; bottom: 20%; left: 30%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #9a856e 0%, #63503c 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  filter: blur(1px);
  opacity: 0.7;
  animation: iio-fold 7s ease-in-out infinite alternate;
}
@keyframes iio-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes iio-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes iio-outfit { 0%,100% { transform: scale(1) rotate(-1deg); } 50% { transform: scale(1.02) rotate(1deg); } }
@keyframes iio-candle { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.05) rotate(0deg); } 100% { transform: scaleY(0.98) rotate(2deg); } }
@keyframes iio-glow { 0% { opacity: 0.7; transform: translate(-50%,-20%) scale(0.95); } 50% { opacity: 1; transform: translate(-50%,-22%) scale(1.1); } 100% { opacity: 0.8; transform: translate(-50%,-19%) scale(1); } }
@keyframes iio-chair { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes iio-fold { 0% { opacity: 0.5; transform: translateX(-2px); } 100% { opacity: 0.8; transform: translateX(2px); } }

/* trial-testimonies-bitter */
.scn-trial-testimonies-bitter {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #141424 40%, #0f0f1a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 70%);
}
.scn-trial-testimonies-bitter .court-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #252538 0%, #1e1e30 50%, #252538 100%);
  clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%);
  animation: ttb-wall 12s ease-in-out infinite alternate;
}
.scn-trial-testimonies-bitter .bench {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #3a2f2f 0%, #1f1a1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.7);
  animation: ttb-bench 6s ease-in-out infinite alternate;
}
.scn-trial-testimonies-bitter .witness {
  position: absolute; bottom: 30%; left: 30%; width: 15%; height: 25%;
  background: radial-gradient(ellipse at 50% 40%, #3a2e2e 0%, #1f1818 80%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ttb-witness 5s ease-in-out infinite;
}
.scn-trial-testimonies-bitter .figures {
  position: absolute; bottom: 32%; right: 12%; width: 20%; height: 28%;
  background: linear-gradient(180deg, #2a2020 0%, #0f0a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: -8px 0 16px rgba(0,0,0,0.5);
  animation: ttb-figures 7s ease-in-out infinite alternate;
}
.scn-trial-testimonies-bitter .gavel {
  position: absolute; bottom: 25%; left: 48%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #5a4030 0%, #2a1e14 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: ttb-gavel 3s ease-in-out infinite;
}
.scn-trial-testimonies-bitter .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 30%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
  animation: ttb-shadow 9s ease-in-out infinite alternate;
}
@keyframes ttb-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ttb-bench { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ttb-witness { 0%,100% { transform: scaleY(1) rotate(-2deg); } 30% { transform: scaleY(1.02) rotate(0deg); } 60% { transform: scaleY(0.98) rotate(1deg); } }
@keyframes ttb-figures { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ttb-gavel { 0% { transform: rotate(-5deg) translateX(-2px); } 25% { transform: rotate(5deg) translateX(2px); } 50% { transform: rotate(-8deg) translateX(-3px); } 75% { transform: rotate(6deg) translateX(3px); } 100% { transform: rotate(-5deg) translateX(-2px); } }
@keyframes ttb-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; } }

/* trial-president-asks */
.scn-trial-president-asks {
  background: 
    linear-gradient(180deg, #1c1c30 0%, #161628 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 60%, #2a2a42 0%, transparent 70%);
}
.scn-trial-president-asks .desk {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #3a2f2f 0%, #1f1a1a 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 16px rgba(0,0,0,0.6);
  animation: tpa-desk 10s ease-in-out infinite alternate;
}
.scn-trial-president-asks .president {
  position: absolute; bottom: 22%; left: 30%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #3a3232 0%, #1f1a1a 80%);
  border-radius: 40% 40% 20% 20% / 60% 60% 10% 10%;
  transform-origin: bottom center;
  animation: tpa-president 6s ease-in-out infinite;
}
.scn-trial-president-asks .accused {
  position: absolute; bottom: 12%; right: 15%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #2a2020 0%, #0f0a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: -6px 0 12px rgba(0,0,0,0.5);
  animation: tpa-accused 7s ease-in-out infinite alternate;
}
.scn-trial-president-asks .light {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(220,210,190,0.12) 0%, transparent 70%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: tpa-light 5s ease-in-out infinite alternate;
}
.scn-trial-president-asks .papers {
  position: absolute; bottom: 20%; left: 40%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #d0c8b0 0%, #a09880 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: tpa-papers 8s ease-in-out infinite;
}
.scn-trial-president-asks .chair {
  position: absolute; bottom: 8%; left: 28%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #3a2f2f 0%, #1f1a1a 100%);
  border-radius: 40% 40% 5% 5% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: tpa-chair 9s ease-in-out infinite alternate;
}
@keyframes tpa-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes tpa-president { 0%,100% { transform: scaleY(1) rotate(-1deg); } 30% { transform: scaleY(1.01) rotate(0deg); } 60% { transform: scaleY(0.99) rotate(1deg); } }
@keyframes tpa-accused { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes tpa-light { 0% { opacity: 0.5; transform: rotate(10deg) scale(0.9); } 50% { opacity: 1; transform: rotate(20deg) scale(1.1); } 100% { opacity: 0.6; transform: rotate(15deg) scale(1); } }
@keyframes tpa-papers { 0%,100% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } }
@keyframes tpa-chair { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* rosalie-story-begins */
.scn-rosalie-story-begins {
  background: 
    linear-gradient(180deg, #2a2830 0%, #1e1c24 40%, #14121a 100%),
    radial-gradient(ellipse at 40% 50%, #3a3840 0%, transparent 70%);
}
.scn-rosalie-story-begins .room-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3440 0%, #2a2430 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: rsb-wall 15s ease-in-out infinite alternate;
}
.scn-rosalie-story-begins .window {
  position: absolute; top: 8%; left: 65%; width: 18%; height: 25%;
  background: radial-gradient(ellipse at 50% 60%, #6a6a80 0%, #2a2a3a 80%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4), 0 0 30px rgba(100,100,140,0.1);
  animation: rsb-window 12s ease-in-out infinite alternate;
}
.scn-rosalie-story-begins .rosalie {
  position: absolute; bottom: 20%; left: 20%; width: 16%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #4a4050 0%, #2a2030 80%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: rsb-rosalie 8s ease-in-out infinite;
}
.scn-rosalie-story-begins .story-light {
  position: absolute; bottom: 22%; left: 22%; width: 10%; height: 12%;
  background: radial-gradient(circle, rgba(220,210,200,0.15) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-30%, -20%);
  animation: rsb-story-light 5s ease-in-out infinite alternate;
}
.scn-rosalie-story-begins .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: rsb-shadow-floor 10s ease-in-out infinite alternate;
}
.scn-rosalie-story-begins .book {
  position: absolute; bottom: 18%; left: 25%; width: 8%; height: 5%;
  background: linear-gradient(180deg, #a09080 0%, #706058 100%);
  border-radius: 2px;
  transform: rotate(12deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: rsb-book 9s ease-in-out infinite;
}
@keyframes rsb-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rsb-window { 0% { opacity: 0.6; transform: scale(0.98); } 50% { opacity: 1; transform: scale(1); } 100% { opacity: 0.7; transform: scale(0.99); } }
@keyframes rsb-rosalie { 0%,100% { transform: scaleY(1) rotate(-2deg); } 30% { transform: scaleY(1.02) rotate(0deg); } 70% { transform: scaleY(0.98) rotate(1deg); } }
@keyframes rsb-story-light { 0% { opacity: 0.3; transform: translate(-30%,-20%) scale(0.9); } 50% { opacity: 0.7; transform: translate(-32%,-22%) scale(1.1); } 100% { opacity: 0.4; transform: translate(-28%,-18%) scale(1); } }
@keyframes rsb-shadow-floor { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes rsb-book { 0%,100% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(14deg) translateX(1px); } }

/* --- Scene: rowing-mother --- */
.scn-rowing-mother { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #f5deb3 100%), radial-gradient(ellipse at 50% 10%, rgba(255,255,200,0.3) 0%, transparent 80%); }
.scn-rowing-mother .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b0e0e6 0%, #ffd700 40%, transparent 100%); animation: rm-sky 8s ease-in-out infinite alternate; }
.scn-rowing-mother .water { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4682b4 0%, #2f4f4f 100%); animation: rm-water 6s ease-in-out infinite; }
.scn-rowing-mother .island-wood { position:absolute; bottom:40%; right:10%; width:30%; height:25%; background: linear-gradient(180deg, #228b22 0%, #006400 100%); border-radius: 50% 0 0 50% / 100% 0 0 50%; filter: blur(4px); animation: rm-drift 30s linear infinite; }
.scn-rowing-mother .boat { position:absolute; bottom:42%; left:30%; width:50px; height:12px; background: linear-gradient(90deg, #8b4513 0%, #d2691e 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: rm-boat 4s ease-in-out infinite; }
.scn-rowing-mother .figure-mother { position:absolute; bottom:44%; left:32%; width:10px; height:20px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: rm-figure-m 3s ease-in-out infinite alternate; }
.scn-rowing-mother .figure-rower { position:absolute; bottom:43%; left:36%; width:12px; height:22px; background: linear-gradient(180deg, #f4a460 0%, #cd853f 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: rm-row 1s ease-in-out infinite; }
.scn-rowing-mother .sun-glare { position:absolute; top:10%; left:35%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,255,200,0.8) 0%, rgba(255,215,0,0.3) 40%, transparent 70%); border-radius:50%; filter: blur(10px); animation: rm-glare 5s ease-in-out infinite alternate; }
.scn-rowing-mother .ripples { position:absolute; bottom:30%; left:25%; width:40px; height:6px; background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 80%); border-radius:50%; filter: blur(2px); animation: rm-ripple 2s ease-in-out infinite; }
@keyframes rm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rm-water { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes rm-drift { 0% { transform: translateX(0) } 100% { transform: translateX(-40px) } }
@keyframes rm-boat { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes rm-figure-m { 0% { transform: translateY(0) rotate(0) } 100% { transform: translateY(-2px) rotate(3deg) } }
@keyframes rm-row { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-10deg) } }
@keyframes rm-glare { 0% { opacity:0.6; transform: scale(0.9) } 100% { opacity:1; transform: scale(1.1) } }
@keyframes rm-ripple { 0% { opacity:0; width:30px } 50% { opacity:0.6; width:60px } 100% { opacity:0; width:90px } }

/* --- Scene: henriette-water-ecstasy --- */
.scn-henriette-water-ecstasy { background: linear-gradient(135deg, #fffacd 0%, #ffd700 30%, #daa520 70%, #b8860b 100%), radial-gradient(ellipse at 30% 80%, rgba(255,200,100,0.2) 0%, transparent 60%); }
.scn-henriette-water-ecstasy .sky-ecstasy { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #fff0b5 100%); animation: hwe-sky 10s ease-in-out infinite; }
.scn-henriette-water-ecstasy .tree-branch { position:absolute; top:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #228b22 0%, transparent 100%); transform-origin: bottom; animation: hwe-branch 4s ease-in-out infinite alternate; }
.scn-henriette-water-ecstasy .figure-reclining { position:absolute; bottom:20%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #ffe4b5 0%, #deb887 100%); border-radius: 60% 40% 40% 60% / 50% 60% 40% 50%; transform: rotate(20deg); transform-origin: bottom; animation: hwe-recline 3s ease-in-out infinite; }
.scn-henriette-water-ecstasy .bank-grass { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 30% 70% 0 0 / 100% 100% 0 0; animation: hwe-grass 6s ease-in-out infinite alternate; }
.scn-henriette-water-ecstasy .wine-cup { position:absolute; bottom:32%; left:50%; width:10px; height:15px; background: radial-gradient(circle at 30% 30%, #ffe4b5, transparent 50%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 10px 2px rgba(255,200,0,0.5); animation: hwe-cup 2s ease-in-out infinite; }
.scn-henriette-water-ecstasy .heat-haze { position:absolute; inset:30% 10%; background: radial-gradient(ellipse at 50% 0%, rgba(255,180,0,0.15) 0%, transparent 70%); filter: blur(15px); animation: hwe-haze 8s ease-in-out infinite alternate; }
.scn-henriette-water-ecstasy .sun { position:absolute; top:10%; right:15%; width:50px; height:50px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.3); animation: hwe-sun 12s ease-in-out infinite; }
@keyframes hwe-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hwe-branch { 0% { transform: rotate(0) } 100% { transform: rotate(5deg) } }
@keyframes hwe-recline { 0%,100% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(22deg) translateY(-3px) } }
@keyframes hwe-grass { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.05) } }
@keyframes hwe-cup { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes hwe-haze { 0% { opacity:0.3 } 100% { opacity:0.7 } }
@keyframes hwe-sun { 0% { transform: scale(0.9); box-shadow: 0 0 30px 10px rgba(255,215,0,0.2) } 50% { transform: scale(1.1); box-shadow: 0 0 50px 30px rgba(255,215,0,0.4) } 100% { transform: scale(0.9); box-shadow: 0 0 30px 10px rgba(255,215,0,0.2) } }

/* --- Scene: names-introduced --- */
.scn-names-introduced { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #deb887 100%), radial-gradient(ellipse at 50% 20%, rgba(255,200,100,0.2) 0%, transparent 70%); }
.scn-names-introduced .sky-ni { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #ffd700 30%, transparent 100%); animation: ni-sky 10s ease-in-out infinite; }
.scn-names-introduced .river-ni { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4682b4 0%, #2f4f4f 100%); animation: ni-river 8s ease-in-out infinite; }
.scn-names-introduced .bank-ni { position:absolute; bottom:15%; left:0; right:0; height:35%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; }
.scn-names-introduced .figure-henri { position:absolute; bottom:20%; left:30%; width:18px; height:35px; background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ni-henri 4s ease-in-out infinite; }
.scn-names-introduced .figure-henriette { position:absolute; bottom:22%; left:55%; width:16px; height:34px; background: linear-gradient(180deg, #4a4a4a 0%, #2c2c2c 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: ni-henriette 4s ease-in-out infinite 0.5s; }
.scn-names-introduced .sun-ni { position:absolute; top:10%; left:50%; width:60px; height:60px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.3); animation: ni-sun 6s ease-in-out infinite alternate; }
.scn-names-introduced .reeds { position:absolute; bottom:18%; left:20%; width:4px; height:50px; background: linear-gradient(180deg, #556b2f 0%, #3b5323 100%); border-radius:10% 10% 0 0; transform: rotate(-10deg); animation: ni-reed 3s ease-in-out infinite; }
.scn-names-introduced .reeds::before { content:''; position:absolute; top:-10px; left:-2px; width:8px; height:8px; background: radial-gradient(circle, #8b4513 0%, #a0522d 100%); border-radius:50%; }
@keyframes ni-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ni-river { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes ni-henri { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ni-henriette { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ni-sun { 0% { transform: scale(0.9); box-shadow: 0 0 30px 10px rgba(255,215,0,0.2) } 100% { transform: scale(1.1); box-shadow: 0 0 50px 30px rgba(255,215,0,0.4) } }
@keyframes ni-reed { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-10deg) } }

/* --- Scene: weir-noise --- */
.scn-weir-noise { background: linear-gradient(180deg, #87ceeb 0%, #4682b4 40%, #2f4f4f 100%), radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.3) 0%, transparent 70%); }
.scn-weir-noise .sky-wn { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 100%); animation: wn-sky 3s ease-in-out infinite alternate; }
.scn-weir-noise .weir { position:absolute; bottom:30%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #7a7a7a 0%, #4a4a4a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,0.5); animation: wn-weir 2s ease-in-out infinite; }
.scn-weir-noise .water-wn { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1e90ff 0%, #000080 100%); animation: wn-water 1.5s ease-in-out infinite; }
.scn-weir-noise .spray { position:absolute; bottom:30%; left:45%; width:60px; height:30px; background: radial-gradient(ellipse, rgba(255,255,255,0.5) 0%, transparent 70%); border-radius:50%; filter: blur(5px); animation: wn-spray 0.8s ease-in-out infinite; }
.scn-weir-noise .figure-henri-wn { position:absolute; bottom:20%; left:30%; width:16px; height:34px; background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: wn-figure1 2s ease-in-out infinite; }
.scn-weir-noise .figure-henriette-wn { position:absolute; bottom:22%; left:55%; width:14px; height:32px; background: linear-gradient(180deg, #4a4a4a 0%, #2c2c2c 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: wn-figure2 2.5s ease-in-out infinite 0.3s; }
.scn-weir-noise .shadow-wn { position:absolute; bottom:0; left:25%; width:50%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); animation: wn-shadow 3s ease-in-out infinite alternate; }
.scn-weir-noise .tension-lines { position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(0,0,0,0.05) 5px, rgba(0,0,0,0.05) 10px); animation: wn-lines 0.5s linear infinite; }
@keyframes wn-sky { 0% { opacity:0.7 } 100% { opacity:1 } }
@keyframes wn-weir { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes wn-water { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wn-spray { 0% { opacity:0.5; transform: translateY(0) scale(1) } 100% { opacity:1; transform: translateY(-5px) scale(1.2) } }
@keyframes wn-figure1 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wn-figure2 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wn-shadow { 0% { opacity:0.3 } 100% { opacity:0.6 } }
@keyframes wn-lines { 0% { background-position: 0 0 } 100% { background-position: 10px 10px } }

.scn-lemonnier-remarriage {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d5a8 40%, #d4b88a 100%),
    radial-gradient(ellipse at 50% 70%, #f0d8a0 0%, transparent 60%);
}
.scn-lemonnier-remarriage .lr-wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #e8d5a8 0%, #d4c594 100%);
  border-bottom: 4px solid #c4a87a;
}
.scn-lemonnier-remarriage .lr-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #baa078 0%, #a08a64 100%);
  animation: lr-floor 6s ease-in-out infinite alternate;
}
.scn-lemonnier-remarriage .lr-window {
  position:absolute; top:10%; left:50%; width:120px; height:140px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #fff8e0 0%, #ffe8b0 50%, #ffd880 100%);
  border: 6px solid #c4a87a; border-radius:4px;
  box-shadow: inset 0 0 30px #fff4d0, 0 8px 20px rgba(0,0,0,0.15);
  animation: lr-window 8s ease-in-out infinite alternate;
}
.scn-lemonnier-remarriage .lr-sunbeam {
  position:absolute; top:10%; left:50%; width:100px; height:200px;
  transform:translateX(-50%) skewX(-5deg);
  background: linear-gradient(135deg, rgba(255,240,180,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: lr-beam 12s ease-in-out infinite alternate;
}
.scn-lemonnier-remarriage .lr-figure-main {
  position:absolute; bottom:30%; left:38%; width:40px; height:80px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lr-figure 4s ease-in-out infinite;
}
.scn-lemonnier-remarriage .lr-figure-child {
  position:absolute; bottom:32%; left:48%; width:25px; height:45px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5040 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lr-child 5s ease-in-out infinite;
}
.scn-lemonnier-remarriage .lr-chair {
  position:absolute; bottom:34%; left:44%; width:30px; height:50px;
  background: linear-gradient(180deg, #8a6840 0%, #6a5030 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(5deg);
  box-shadow: 2px 4px 6px rgba(0,0,0,0.2);
  animation: lr-chair 7s ease-in-out infinite alternate;
}
.scn-lemonnier-remarriage .lr-table {
  position:absolute; bottom:30%; left:30%; width:60px; height:10px;
  background: linear-gradient(180deg, #a08060 0%, #8a6840 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: lr-table 9s ease-in-out infinite alternate;
}
@keyframes lr-floor { 0% { opacity:1; } 50% { opacity:0.9; } 100% { opacity:1; } }
@keyframes lr-window { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes lr-beam { 0% { transform: translateX(-50%) skewX(-5deg) scaleY(0.9); opacity:0.7; } 50% { transform: translateX(-48%) skewX(0deg) scaleY(1.1); opacity:1; } 100% { transform: translateX(-52%) skewX(2deg) scaleY(0.95); opacity:0.8; } }
@keyframes lr-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lr-child { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(3deg); } 60% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lr-chair { 0% { transform: rotate(5deg); } 50% { transform: rotate(7deg); } 100% { transform: rotate(4deg); } }
@keyframes lr-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }

.scn-lemonnier-wife-pregnancy {
  background:
    linear-gradient(180deg, #e8ddd0 0%, #d4c4b0 50%, #b8a48c 100%),
    radial-gradient(ellipse at 40% 60%, #d4c4b0 0%, transparent 70%);
}
.scn-lemonnier-wife-pregnancy .lwp-background {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #b0a088 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.1);
}
.scn-lemonnier-wife-pregnancy .lwp-table {
  position:absolute; bottom:25%; left:50%; width:120px; height:12px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #9a8068 0%, #7a6850 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: lwp-table 2s ease-in-out infinite alternate;
}
.scn-lemonnier-wife-pregnancy .lwp-husband {
  position:absolute; bottom:30%; left:38%; width:45px; height:75px;
  background: linear-gradient(180deg, #5a4838 0%, #3a3028 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lwp-husband 1.5s ease-in-out infinite alternate;
}
.scn-lemonnier-wife-pregnancy .lwp-wife {
  position:absolute; bottom:28%; left:52%; width:40px; height:70px;
  background: linear-gradient(180deg, #6a5850 0%, #4a4038 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lwp-wife 1.8s ease-in-out infinite alternate;
}
.scn-lemonnier-wife-pregnancy .lwp-lamp {
  position:absolute; bottom:40%; left:46%; width:12px; height:20px;
  background: linear-gradient(180deg, #d4a060 0%, #b88848 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 8px #d4a060, 0 0 40px 12px rgba(212,160,96,0.4);
  animation: lwp-lamp 0.8s ease-in-out infinite alternate;
}
.scn-lemonnier-wife-pregnancy .lwp-clock {
  position:absolute; top:10%; right:20%; width:20px; height:20px;
  background: radial-gradient(circle, #fff8e0 0%, #c8b898 100%);
  border-radius: 50%;
  border: 3px solid #8a7050;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: lwp-clock 4s linear infinite;
}
.scn-lemonnier-wife-pregnancy .lwp-shadows {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.2) 100%);
  animation: lwp-shadows 2s ease-in-out infinite alternate;
}
@keyframes lwp-table { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } 100% { transform: translateX(-50%) scaleX(0.98); } }
@keyframes lwp-husband { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes lwp-wife { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lwp-lamp { 0% { box-shadow: 0 0 20px 8px #d4a060, 0 0 40px 12px rgba(212,160,96,0.4); } 50% { box-shadow: 0 0 30px 12px #d4a060, 0 0 60px 20px rgba(212,160,96,0.5); } 100% { box-shadow: 0 0 18px 6px #d4a060, 0 0 36px 10px rgba(212,160,96,0.3); } }
@keyframes lwp-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes lwp-shadows { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-duretour-introduction {
  background:
    linear-gradient(180deg, #f0e4d0 0%, #dcc8b0 50%, #c0ac94 100%),
    radial-gradient(ellipse at 30% 50%, #f0e4d0 0%, transparent 60%);
}
.scn-duretour-introduction .di-backwall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #dcc8b0 0%, #c0ac94 100%);
  border-bottom: 6px solid #a89078;
}
.scn-duretour-introduction .di-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #b09880 0%, #988068 100%);
  animation: di-floor 8s ease-in-out infinite alternate;
}
.scn-duretour-introduction .di-door {
  position:absolute; bottom:20%; left:30%; width:80px; height:140px;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2), 3px 0 10px rgba(0,0,0,0.2);
  animation: di-door 6s ease-in-out infinite alternate;
}
.scn-duretour-introduction .di-nurse {
  position:absolute; bottom:28%; left:28%; width:38px; height:70px;
  background: linear-gradient(180deg, #7a6860 0%, #5a5048 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: di-nurse 4s ease-in-out infinite alternate;
}
.scn-duretour-introduction .di-lemonnier {
  position:absolute; bottom:30%; left:38%; width:42px; height:75px;
  background: linear-gradient(180deg, #5a4838 0%, #3a3028 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: di-lemonnier 5s ease-in-out infinite alternate;
}
.scn-duretour-introduction .di-youngman {
  position:absolute; bottom:28%; left:50%; width:40px; height:72px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: di-youngman 4.5s ease-in-out infinite alternate;
}
.scn-duretour-introduction .di-light {
  position:absolute; top:10%; left:40%; width:60px; height:80px;
  background: linear-gradient(180deg, rgba(255,240,200,0.5) 0%, transparent 100%);
  filter: blur(12px);
  animation: di-light 10s ease-in-out infinite alternate;
}
@keyframes di-floor { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes di-door { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.02); } 100% { transform: rotate(-1deg) scaleX(0.98); } }
@keyframes di-nurse { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes di-lemonnier { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes di-youngman { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes di-light { 0% { transform: scaleY(0.8); opacity:0.6; } 50% { transform: scaleY(1.2); opacity:1; } 100% { transform: scaleY(0.9); opacity:0.7; } }

.scn-lemonnier-wife-death {
  background:
    linear-gradient(180deg, #f5ede0 0%, #e0d0b8 50%, #c8b4a0 100%),
    radial-gradient(ellipse at 50% 60%, #f5ede0 0%, transparent 70%);
}
.scn-lemonnier-wife-death .lwd-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #e0d0b8 0%, #c8b4a0 100%);
  border-bottom: 4px solid #b09880;
}
.scn-lemonnier-wife-death .lwd-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b09880 0%, #988068 100%);
  animation: lwd-floor 10s ease-in-out infinite alternate;
}
.scn-lemonnier-wife-death .lwd-table {
  position:absolute; bottom:22%; left:50%; width:160px; height:14px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #a08870 0%, #806850 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: lwd-table 7s ease-in-out infinite alternate;
}
.scn-lemonnier-wife-death .lwd-figure-lemonnier {
  position:absolute; bottom:30%; left:32%; width:45px; height:80px;
  background: linear-gradient(180deg, #5a4838 0%, #3a3028 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lwd-lemonnier 5s ease-in-out infinite alternate;
}
.scn-lemonnier-wife-death .lwd-figure-wife {
  position:absolute; bottom:30%; left:44%; width:40px; height:75px;
  background: linear-gradient(180deg, #6a5850 0%, #4a4038 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lwd-wife 4s ease-in-out infinite alternate;
}
.scn-lemonnier-wife-death .lwd-figure-duretour {
  position:absolute; bottom:30%; left:56%; width:42px; height:78px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: lwd-duretour 4.5s ease-in-out infinite alternate;
}
.scn-lemonnier-wife-death .lwd-flowers {
  position:absolute; bottom:30%; left:48%; width:20px; height:30px;
  background: radial-gradient(circle at 50% 20%, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 8px 2px #c8553d, 0 0 16px 4px rgba(200,85,61,0.4);
  animation: lwd-flowers 6s ease-in-out infinite alternate;
}
.scn-lemonnier-wife-death .lwd-theaterbox {
  position:absolute; bottom:28%; left:60%; width:30px; height:20px;
  background: linear-gradient(180deg, #b09070 0%, #907050 100%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  transform: rotate(10deg);
  animation: lwd-box 8s ease-in-out infinite alternate;
}
@keyframes lwd-floor { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes lwd-table { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.01); } 100% { transform: translateX(-50%) scaleX(0.99); } }
@keyframes lwd-lemonnier { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lwd-wife { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lwd-duretour { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes lwd-flowers { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(0.95) rotate(-3deg); } }
@keyframes lwd-box { 0% { transform: rotate(10deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(8deg); } }

/* horse-starving – moonlit, dark mood */
.scn-horse-starving {
  background: 
    linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 40%, #2a2a4e 100%),
    radial-gradient(ellipse at 70% 100%, #2a2a4e 0%, transparent 70%);
}
.scn-horse-starving .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #14143a 0%, #0f0f2a 100%); animation: hs-sky 12s ease-in-out infinite alternate; }
.scn-horse-starving .moon { position:absolute; top:12%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #c8d4e6 0%, #8a9ab8 100%); border-radius:50%; box-shadow: 0 0 30px 8px #8a9ab8, 0 0 60px 20px rgba(138,154,184,.3); animation: hs-moon 30s linear infinite; }
.scn-horse-starving .embankment { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.6); animation: hs-emb 15s ease-in-out infinite; }
.scn-horse-starving .horse { position:absolute; bottom:28%; left:55%; width:60px; height:70px; background: linear-gradient(120deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; clip-path: polygon(10% 0%, 90% 0%, 100% 40%, 85% 70%, 60% 90%, 40% 90%, 15% 70%, 0% 40%); animation: hs-horse 4s ease-in-out infinite; }
.scn-horse-starving .man { position:absolute; bottom:25%; left:25%; width:14px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs-man-arm 3s ease-in-out infinite; }
.scn-horse-starving .stone { position:absolute; width:6px; height:6px; background: #2a2a3a; border-radius:50%; }
.scn-horse-starving .stone1 { bottom:28%; left:30%; animation: hs-stone1 2s ease-in-out infinite; }
.scn-horse-starving .stone2 { bottom:29%; left:32%; animation: hs-stone2 2.3s ease-in-out infinite 0.4s; }
.scn-horse-starving .stone3 { bottom:27%; left:34%; animation: hs-stone3 2.6s ease-in-out infinite 0.8s; }
@keyframes hs-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes hs-moon { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(-5px) } }
@keyframes hs-emb { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hs-horse { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(0deg) } 50% { transform: translateX(-1px) rotate(2deg) } 75% { transform: translateX(1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hs-man-arm { 0% { transform: rotate(-5deg) } 30% { transform: rotate(5deg) } 60% { transform: rotate(-10deg) } 100% { transform: rotate(-5deg) } }
@keyframes hs-stone1 { 0% { transform: translate(0,0) } 50% { transform: translate(15px,-10px) } 100% { transform: translate(0,0) } }
@keyframes hs-stone2 { 0% { transform: translate(0,0) } 50% { transform: translate(18px,-8px) } 100% { transform: translate(0,0) } }
@keyframes hs-stone3 { 0% { transform: translate(0,0) } 50% { transform: translate(12px,-12px) } 100% { transform: translate(0,0) } }

/* horse-death – sunlit, dark mood */
.scn-horse-death {
  background: 
    linear-gradient(180deg, #f6e8d0 0%, #d4c2a0 40%, #b8a088 100%),
    radial-gradient(ellipse at 50% 0%, #fdf4e0 0%, transparent 60%);
}
.scn-horse-death .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f8e8c0 0%, #e0c8a0 100%); animation: hd-sky 10s ease-in-out infinite alternate; }
.scn-horse-death .sun { position:absolute; top:8%; left:60%; width:50px; height:50px; background: radial-gradient(circle, #ffebc0 0%, #e0c070 100%); border-radius:50%; box-shadow: 0 0 40px 15px #e0c070, 0 0 80px 30px rgba(224,192,112,.3); animation: hd-sun 20s linear infinite; }
.scn-horse-death .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #a08860 0%, #7a684a 100%); border-radius: 20% 40% 0 0 / 30% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: hd-ground 12s ease-in-out infinite; }
.scn-horse-death .horse-corpse { position:absolute; bottom:18%; left:40%; width:80px; height:40px; background: linear-gradient(180deg, #a07860 0%, #785040 100%); border-radius: 60% 60% 40% 40% / 40% 40% 30% 30%; transform: rotate(-5deg); box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: hd-corpse 3s ease-in-out infinite; }
.scn-horse-death .man-figure { position:absolute; bottom:25%; left:20%; width:16px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hd-man 6s ease-in-out infinite; }
.scn-horse-death .mallet { position:absolute; bottom:20%; left:55%; width:20px; height:6px; background: #5a3a2a; border-radius: 10% 10% 10% 10% / 50% 50% 50% 50%; transform: rotate(15deg); animation: hd-mallet 5s ease-in-out infinite; }
.scn-horse-death .clod { position:absolute; bottom:28%; left:28%; width:12px; height:8px; background: #6a5a42; border-radius: 40% 40% 30% 30%; transform: rotate(10deg); animation: hd-clod 4s ease-in-out infinite; }
.scn-horse-death .dirt-spatter { position:absolute; bottom:24%; left:24%; width:14px; height:10px; background: #5a4a32; border-radius: 50%; filter: blur(2px); animation: hd-spatter 4.5s ease-in-out infinite; }
@keyframes hd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes hd-sun { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(1.05) } 100% { transform: translateX(-5px) scale(1) } }
@keyframes hd-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hd-corpse { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(-3deg) scaleX(0.98) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes hd-man { 0% { transform: translateX(0) } 25% { transform: translateX(8px) } 50% { transform: translateX(16px) } 75% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes hd-mallet { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(15deg) } }
@keyframes hd-clod { 0% { transform: translate(0,0) rotate(10deg) } 50% { transform: translate(5px,-5px) rotate(20deg) } 100% { transform: translate(0,0) rotate(10deg) } }
@keyframes hd-spatter { 0% { opacity:0 } 50% { opacity:.6 } 100% { opacity:0 } }

/* horse-burial – sunlit, calm mood */
.scn-horse-burial {
  background: 
    linear-gradient(180deg, #d4e8c0 0%, #a0c080 40%, #7a9a60 100%),
    radial-gradient(ellipse at 40% 100%, #a0c080 0%, transparent 60%);
}
.scn-horse-burial .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #e0f0d0 0%, #b0d0a0 100%); animation: hb-sky 15s ease-in-out infinite alternate; }
.scn-horse-burial .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10% 20% 0 0 / 15% 30% 0 0; box-shadow: inset 0 6px 18px rgba(0,0,0,.5); }
.scn-horse-burial .hole { position:absolute; bottom:8%; left:45%; width:70px; height:20px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%; box-shadow: inset 0 3px 8px rgba(0,0,0,.7); animation: hb-hole 8s ease-in-out infinite; }
.scn-horse-burial .gravedigger1 { position:absolute; bottom:25%; left:30%; width:18px; height:50px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hb-digger1 3s ease-in-out infinite; }
.scn-horse-burial .gravedigger2 { position:absolute; bottom:25%; left:58%; width:18px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hb-digger2 3.2s ease-in-out infinite 0.5s; }
.scn-horse-burial .horse-body { position:absolute; bottom:12%; left:40%; width:60px; height:30px; background: linear-gradient(180deg, #8a7050 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 20% 20%; transform: rotate(-8deg); box-shadow: 0 3px 8px rgba(0,0,0,.4); animation: hb-body 6s ease-in-out infinite; }
.scn-horse-burial .shovel1 { position:absolute; bottom:30%; left:25%; width:20px; height:4px; background: #705a40; border-radius: 20% 20% 10% 10%; transform: rotate(-20deg); transform-origin: right bottom; animation: hb-shovel1 3s ease-in-out infinite; }
.scn-horse-burial .shovel2 { position:absolute; bottom:30%; left:63%; width:20px; height:4px; background: #6a5038; border-radius: 20% 20% 10% 10%; transform: rotate(20deg); transform-origin: left bottom; animation: hb-shovel2 3.2s ease-in-out infinite 0.5s; }
.scn-horse-burial .grass { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #4a7a2a 0%, #2a5a1a 100%); border-radius: 20% 80% 0 0 / 30% 60% 0 0; animation: hb-grass 20s ease-in-out infinite; }
@keyframes hb-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes hb-hole { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes hb-digger1 { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes hb-digger2 { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-3px) rotate(-2deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes hb-body { 0% { opacity:.9 } 50% { opacity:.8 } 100% { opacity:.9 } }
@keyframes hb-shovel1 { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-20deg) } }
@keyframes hb-shovel2 { 0% { transform: rotate(20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(20deg) } }
@keyframes hb-grass { 0% { transform: scaleY(.9) } 50% { transform: scaleY(1) } 100% { transform: scaleY(.95) } }

/* deathbed-mother – dim-interior, calm mood */
.scn-deathbed-mother {
  background: 
    linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 50%, #0a0505 100%),
    radial-gradient(ellipse at 50% 100%, #1a0e0e 0%, transparent 60%);
}
.scn-deathbed-mother .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #3a2a22 0%, #2a1a12 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: dm-wall 15s ease-in-out infinite alternate; }
.scn-deathbed-mother .window-glow { position:absolute; top:12%; left:70%; width:30px; height:40px; background: linear-gradient(135deg, #a09080 0%, #706050 100%); border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%; box-shadow: inset 0 0 15px #6a5a4a, 0 0 30px 8px rgba(160,144,128,.2); animation: dm-window 8s ease-in-out infinite; }
.scn-deathbed-mother .bed-frame { position:absolute; bottom:10%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5% / 40% 40% 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-deathbed-mother .pillow { position:absolute; bottom:38%; left:30%; width:25%; height:20%; background: linear-gradient(135deg, #c0b0a0 0%, #a09080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -3px 8px rgba(0,0,0,.2); animation: dm-pillow 4s ease-in-out infinite; }
.scn-deathbed-mother .figure-silhouette { position:absolute; bottom:18%; left:28%; width:15%; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dm-figure 6s ease-in-out infinite; }
.scn-deathbed-mother .hair-strands { position:absolute; bottom:38%; left:26%; width:20%; height:8%; background: linear-gradient(90deg, #d0c0b0 0%, #e0d0c0 50%, #d0c0b0 100%); border-radius: 50%; filter: blur(2px); opacity:.6; animation: dm-hair 5s ease-in-out infinite; }
.scn-deathbed-mother .chair-shadow { position:absolute; bottom:12%; left:5%; width:12%; height:25%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; opacity:.4; }
.scn-deathbed-mother .dust-mote { position:absolute; top:30%; left:40%; width:3px; height:3px; background: rgba(200,180,160,.5); border-radius:50%; box-shadow: 0 0 4px 1px rgba(200,180,160,.2); animation: dm-dust 12s ease-in-out infinite; }
@keyframes dm-wall { 0% { opacity:.85 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes dm-window { 0% { box-shadow: 0 0 20px 5px rgba(160,144,128,.15) } 50% { box-shadow: 0 0 40px 12px rgba(160,144,128,.3) } 100% { box-shadow: 0 0 20px 5px rgba(160,144,128,.15) } }
@keyframes dm-pillow { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dm-figure { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes dm-hair { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes dm-dust { 0% { transform: translate(0,0) } 25% { transform: translate(10px,-8px) } 50% { transform: translate(5px,-15px) } 75% { transform: translate(-5px,-6px) } 100% { transform: translate(0,0) } }

.scn-soup-acceptance { background: linear-gradient(180deg, #1c1410 0%, #2a1e18 40%, #3c2a20 100%), radial-gradient(ellipse at 50% 60%, #4a3528 0%, #1c1410 70%); }
.scn-soup-acceptance .bg-dark { position:absolute; inset:0; background: linear-gradient(160deg, #1c1410 0%, #0e0a08 100%); animation: sa-bg 10s ease-in-out infinite alternate; }
.scn-soup-acceptance .table { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #3a2818 0%, #2a1a0e 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); transform: perspective(400px) rotateX(5deg); }
.scn-soup-acceptance .plate { position:absolute; bottom:28%; left:50%; width:70px; height:18px; transform: translateX(-50%); background: radial-gradient(ellipse, #8a6a4a 0%, #5a3a2a 80%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-soup-acceptance .steam { position:absolute; bottom:42%; left:50%; width:30px; height:40px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(200,160,120,.3) 0%, transparent 70%); filter: blur(6px); animation: sa-steam 4s ease-in-out infinite; }
.scn-soup-acceptance .hand { position:absolute; bottom:32%; left:45%; width:24px; height:36px; background: linear-gradient(180deg, #b08a6a 0%, #8a6a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sa-hand 5s ease-in-out infinite; }
.scn-soup-acceptance .lamp { position:absolute; top:16%; right:22%; width:20px; height:28px; background: radial-gradient(circle, #e8c080 0%, #b08040 60%, #5a3a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 40px 12px rgba(200,140,60,.5), 0 0 80px 24px rgba(200,140,60,.2); animation: sa-lamp 3s ease-in-out infinite alternate; }
.scn-soup-acceptance .shadow { position:absolute; bottom:10%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: sa-shadow 6s ease-in-out infinite alternate; }
@keyframes sa-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sa-steam { 0% { transform: translateX(-50%) translateY(0) scale(1); opacity:.6 } 50% { transform: translateX(-50%) translateY(-12px) scale(1.3); opacity:.3 } 100% { transform: translateX(-50%) translateY(0) scale(1); opacity:.6 } }
@keyframes sa-hand { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(8px) rotate(5deg) } 75% { transform: translateX(4px) rotate(0deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes sa-lamp { 0% { box-shadow: 0 0 30px 8px rgba(200,140,60,.4); opacity:.85 } 50% { box-shadow: 0 0 60px 20px rgba(200,140,60,.7); opacity:1 } 100% { box-shadow: 0 0 35px 10px rgba(200,140,60,.45); opacity:.9 } }
@keyframes sa-shadow { 0% { transform: scaleX(1) translateY(0); opacity:.7 } 50% { transform: scaleX(1.2) translateY(4px); opacity:.9 } 100% { transform: scaleX(1) translateY(0); opacity:.7 } }

.scn-force-feeding-scene { background: linear-gradient(180deg, #0e0a0e 0%, #1a1216 50%, #2e1e1e 100%), radial-gradient(ellipse at 30% 70%, #2e1e1e 0%, #0e0a0e 70%); }
.scn-force-feeding-scene .bg-abyss { position:absolute; inset:0; background: linear-gradient(180deg, #0e0a0e 0%, #1a1216 50%, #0e0a0e 100%); animation: ff-bg 8s ease-in-out infinite alternate; }
.scn-force-feeding-scene .table-tilt { position:absolute; bottom:8%; left:10%; right:10%; height:28%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.7); transform: perspective(300px) rotateX(8deg) rotateZ(-2deg); }
.scn-force-feeding-scene .figure-celeste { position:absolute; bottom:20%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #1a121a 0%, #0e0a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ff-celeste 3s ease-in-out infinite; }
.scn-force-feeding-scene .figure-jean { position:absolute; bottom:22%; left:55%; width:30px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ff-jean 2.5s ease-in-out infinite; }
.scn-force-feeding-scene .spoon { position:absolute; bottom:40%; left:42%; width:6px; height:20px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 30%; transform: rotate(-30deg); animation: ff-spoon 2s ease-in-out infinite; }
.scn-force-feeding-scene .glass { position:absolute; bottom:34%; left:58%; width:12px; height:16px; background: linear-gradient(180deg, rgba(180,200,200,.4) 0%, rgba(120,140,140,.2) 100%); border-radius: 20% 20% 10% 10%; transform: rotate(20deg); animation: ff-glass 1.8s ease-in-out infinite; }
.scn-force-feeding-scene .shadow-writhe { position:absolute; bottom:8%; left:20%; right:20%; height:50%; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%); filter: blur(12px); animation: ff-shadow 4s ease-in-out infinite alternate; }
@keyframes ff-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ff-celeste { 0% { transform: translateX(0) rotate(-2deg) scaleY(1) } 25% { transform: translateX(-4px) rotate(3deg) scaleY(1.02) } 50% { transform: translateX(2px) rotate(-1deg) scaleY(1) } 75% { transform: translateX(-2px) rotate(2deg) scaleY(1.01) } 100% { transform: translateX(0) rotate(-2deg) scaleY(1) } }
@keyframes ff-jean { 0% { transform: translateX(0) rotate(2deg) scaleY(1) } 30% { transform: translateX(6px) rotate(-4deg) scaleY(.95) } 60% { transform: translateX(3px) rotate(3deg) scaleY(1) } 100% { transform: translateX(0) rotate(2deg) scaleY(1) } }
@keyframes ff-spoon { 0% { transform: rotate(-30deg) translateY(0) } 25% { transform: rotate(-20deg) translateY(-4px) } 50% { transform: rotate(-35deg) translateY(2px) } 75% { transform: rotate(-25deg) translateY(-2px) } 100% { transform: rotate(-30deg) translateY(0) } }
@keyframes ff-glass { 0% { transform: rotate(20deg) translateY(0) } 40% { transform: rotate(60deg) translateY(-8px) } 70% { transform: rotate(90deg) translateY(-16px) } 100% { transform: rotate(120deg) translateY(-24px) opacity:0 } }
@keyframes ff-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:.8 } 50% { transform: scaleX(1.3) scaleY(1.1); opacity:1 } 100% { transform: scaleX(1) scaleY(1); opacity:.8 } }

.scn-father-rage { background: linear-gradient(180deg, #0e0808 0%, #1e1212 40%, #2e1818 100%), radial-gradient(ellipse at 60% 40%, #2e1818 0%, #0e0808 70%); }
.scn-father-rage .bg-fury { position:absolute; inset:0; background: linear-gradient(160deg, #0e0808 0%, #1e1212 50%, #0e0808 100%); animation: fr-bg 6s ease-in-out infinite alternate; }
.scn-father-rage .figure-father { position:absolute; bottom:10%; left:30%; width:60px; height:90px; background: linear-gradient(180deg, #1e1212 0%, #0e0808 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fr-father 3s ease-in-out infinite; }
.scn-father-rage .figure-child { position:absolute; bottom:16%; left:52%; width:24px; height:32px; background: linear-gradient(180deg, #2a1818 0%, #1a0e0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: fr-child 2.5s ease-in-out infinite; }
.scn-father-rage .hands { position:absolute; bottom:38%; left:38%; width:20px; height:16px; background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 0 12px rgba(0,0,0,.5); transform-origin: center; animation: fr-hands 1.8s ease-in-out infinite; }
.scn-father-rage .shadow-rage { position:absolute; bottom:0; left:10%; right:10%; height:60%; background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 80%); filter: blur(16px); animation: fr-shadow 5s ease-in-out infinite alternate; }
.scn-father-rage .lamp-flicker { position:absolute; top:12%; left:20%; width:18px; height:24px; background: radial-gradient(circle, #e8a060 0%, #a06030 60%, #3a1a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 50px 16px rgba(200,100,40,.6), 0 0 100px 32px rgba(200,100,40,.3); animation: fr-lamp 2s ease-in-out infinite alternate; }
@keyframes fr-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes fr-father { 0% { transform: translateX(0) rotate(-2deg) scaleY(1) } 20% { transform: translateX(-6px) rotate(4deg) scaleY(1.05) } 40% { transform: translateX(3px) rotate(-3deg) scaleY(1) } 60% { transform: translateX(-4px) rotate(2deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(-2deg) scaleY(1) } }
@keyframes fr-child { 0% { transform: translateX(0) rotate(1deg) scaleY(1) } 30% { transform: translateX(8px) rotate(-5deg) scaleY(.9) } 60% { transform: translateX(4px) rotate(3deg) scaleY(1) } 100% { transform: translateX(0) rotate(1deg) scaleY(1) } }
@keyframes fr-hands { 0% { transform: translate(0,0) rotate(-10deg) scale(1) } 25% { transform: translate(-4px,-2px) rotate(5deg) scale(1.1) } 50% { transform: translate(2px,-1px) rotate(-5deg) scale(1) } 75% { transform: translate(-2px,-3px) rotate(8deg) scale(1.05) } 100% { transform: translate(0,0) rotate(-10deg) scale(1) } }
@keyframes fr-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:.7 } 50% { transform: scaleX(1.4) scaleY(1.2); opacity:1 } 100% { transform: scaleX(1) scaleY(1); opacity:.7 } }
@keyframes fr-lamp { 0% { box-shadow: 0 0 40px 12px rgba(200,100,40,.5); opacity:.8 } 30% { box-shadow: 0 0 70px 24px rgba(200,100,40,.8); opacity:1 } 60% { box-shadow: 0 0 50px 16px rgba(200,100,40,.6); opacity:.9 } 100% { box-shadow: 0 0 60px 20px rgba(200,100,40,.7); opacity:.95 } }

.scn-celeste-revelation { background: linear-gradient(180deg, #0e0a0e 0%, #1e121a 40%, #2e1a22 100%), radial-gradient(ellipse at 40% 50%, #2e1a22 0%, #0e0a0e 70%); }
.scn-celeste-revelation .bg-reveal { position:absolute; inset:0; background: linear-gradient(180deg, #0e0a0e 0%, #1e121a 50%, #0e0a0e 100%); animation: cr-bg 9s ease-in-out infinite alternate; }
.scn-celeste-revelation .figure-celeste { position:absolute; bottom:12%; left:25%; width:45px; height:80px; background: linear-gradient(180deg, #1e1418 0%, #0e0a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cr-celeste 4s ease-in-out infinite; }
.scn-celeste-revelation .figure-father { position:absolute; bottom:16%; left:55%; width:50px; height:70px; background: linear-gradient(180deg, #1a1216 0%, #0e0a0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cr-father 5s ease-in-out infinite; }
.scn-celeste-revelation .hair { position:absolute; bottom:50%; left:22%; width:30px; height:40px; background: linear-gradient(180deg, #1a0a0a 0%, #0e0505 100%); border-radius: 40% 60% 30% 50% / 50% 70% 30% 50%; filter: blur(2px); transform-origin: top center; animation: cr-hair 3s ease-in-out infinite; }
.scn-celeste-revelation .eyes { position:absolute; bottom:58%; left:28%; width:8px; height:4px; background: radial-gradient(circle, #c0a060 0%, #806030 80%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(192,160,96,.6); animation: cr-eyes 2s ease-in-out infinite alternate; }
.scn-celeste-revelation .shadow-reveal { position:absolute; bottom:0; left:15%; right:15%; height:50%; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 80%); filter: blur(14px); animation: cr-shadow 6s ease-in-out infinite alternate; }
.scn-celeste-revelation .lamp-reveal { position:absolute; top:10%; right:18%; width:16px; height:22px; background: radial-gradient(circle, #e8b080 0%, #b07040 60%, #4a2010 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 45px 14px rgba(200,120,60,.5), 0 0 90px 28px rgba(200,120,60,.2); animation: cr-lamp 3.5s ease-in-out infinite alternate; }
@keyframes cr-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cr-celeste { 0% { transform: translateX(0) rotate(-1deg) scaleY(1) } 30% { transform: translateX(-3px) rotate(3deg) scaleY(1.02) } 60% { transform: translateX(2px) rotate(-2deg) scaleY(1) } 100% { transform: translateX(0) rotate(-1deg) scaleY(1) } }
@keyframes cr-father { 0% { transform: translateX(0) rotate(1deg) scaleY(1) } 40% { transform: translateX(4px) rotate(-2deg) scaleY(.98) } 80% { transform: translateX(-2px) rotate(1deg) scaleY(1) } 100% { transform: translateX(0) rotate(1deg) scaleY(1) } }
@keyframes cr-hair { 0% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(8deg) scaleY(1.1) } 50% { transform: rotate(-4deg) scaleY(1) } 75% { transform: rotate(6deg) scaleY(1.05) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes cr-eyes { 0% { box-shadow: 0 0 8px 2px rgba(192,160,96,.5); opacity:.8 } 50% { box-shadow: 0 0 18px 6px rgba(192,160,96,.9); opacity:1 } 100% { box-shadow: 0 0 10px 3px rgba(192,160,96,.6); opacity:.85 } }
@keyframes cr-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:.75 } 50% { transform: scaleX(1.3) scaleY(1.1); opacity:1 } 100% { transform: scaleX(1) scaleY(1); opacity:.75 } }
@keyframes cr-lamp { 0% { box-shadow: 0 0 35px 10px rgba(200,120,60,.45); opacity:.85 } 40% { box-shadow: 0 0 60px 20px rgba(200,120,60,.7); opacity:1 } 70% { box-shadow: 0 0 45px 14px rgba(200,120,60,.55); opacity:.9 } 100% { box-shadow: 0 0 50px 16px rgba(200,120,60,.6); opacity:.95 } }

/* kiss-in-wood – tense + sunlit forest */
.scn-kiss-in-wood { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #2e8b57 100%), radial-gradient(ellipse at 50% 20%, rgba(255,250,200,0.3) 0%, transparent 60%); }
.scn-kiss-in-wood .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #f0e68c 50%, transparent 100%); animation: kw-sky 12s ease-in-out infinite alternate; }
.scn-kiss-in-wood .sunbeams { position:absolute; top:10%; left:30%; width:40%; height:60%; background: linear-gradient(135deg, rgba(255,255,200,0.4) 0%, transparent 80%); clip-path: polygon(40% 0,60% 0,80% 100%,20% 100%); animation: kw-sunbeams 8s ease-in-out infinite alternate; }
.scn-kiss-in-wood .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #228b22 0%, #006400 100%); border-radius: 30% 70% 0 0; }
.scn-kiss-in-wood .tree-left { position:absolute; bottom:25%; left:20%; width:12%; height:75%; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom center; animation: kw-tree 6s ease-in-out infinite; }
.scn-kiss-in-wood .tree-right { position:absolute; bottom:25%; right:20%; width:12%; height:75%; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom center; animation: kw-tree 6s ease-in-out infinite reverse; }
.scn-kiss-in-wood .figures { position:absolute; bottom:30%; left:50%; width:30px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2b1a10 0%, #1a0f08 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: kw-figures 4s ease-in-out infinite alternate; }
.scn-kiss-in-wood .leaves { position:absolute; top:5%; left:15%; width:70%; height:30%; background: radial-gradient(circle at 30% 50%, #3cb371 0%, transparent 40%), radial-gradient(circle at 70% 60%, #2e8b57 0%, transparent 40%); filter: blur(4px); opacity:0.5; animation: kw-leaves 20s linear infinite; }
.scn-kiss-in-wood .shadow { position:absolute; bottom:20%; left:40%; width:20%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%); transform: rotate(-10deg); animation: kw-shadow 4s ease-in-out infinite alternate; }
@keyframes kw-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes kw-sunbeams { 0% { transform: translateX(-5px) scale(1); opacity:0.6 } 50% { transform: translateX(5px) scale(1.1); opacity:1 } 100% { transform: translateX(-2px) scale(0.95); opacity:0.7 } }
@keyframes kw-tree { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(1deg) translateX(2px) } 50% { transform: rotate(-1deg) translateX(-2px) } 75% { transform: rotate(0.5deg) translateX(1px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes kw-figures { 0% { transform: translateX(-50%) rotate(0deg) translateY(0) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(0deg) translateY(0) } }
@keyframes kw-leaves { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes kw-shadow { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-8deg) scale(0.9) } 100% { transform: rotate(-10deg) scale(1.05) } }

/* mother-return – tense + sunlit path */
.scn-mother-return { background: linear-gradient(180deg, #b0c4de 0%, #d4e6a5 40%, #8fbc8f 70%, #556b2f 100%), radial-gradient(ellipse at 50% 30%, rgba(255,255,200,0.2) 0%, transparent 50%); }
.scn-mother-return .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c4de 0%, #d4e6a5 80%, transparent 100%); animation: mr-sky 15s ease-in-out infinite alternate; }
.scn-mother-return .path { position:absolute; bottom:20%; left:30%; right:30%; height:15%; background: linear-gradient(180deg, #c4a882 0%, #a0845c 100%); border-radius: 50% 50% 50% 50%; transform: skewX(-10deg); }
.scn-mother-return .bush-left { position:absolute; bottom:15%; left:10%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 80%, #6b8e23 0%, #4a6e1f 100%); border-radius: 60% 40% 40% 60%; clip-path: polygon(0% 100%, 20% 50%, 50% 20%, 80% 50%, 100% 100%); animation: mr-bush 8s ease-in-out infinite; }
.scn-mother-return .bush-right { position:absolute; bottom:15%; right:10%; width:20%; height:25%; background: radial-gradient(ellipse at 50% 80%, #6b8e23 0%, #4a6e1f 100%); border-radius: 40% 60% 60% 40%; clip-path: polygon(0% 100%, 20% 40%, 50% 10%, 80% 40%, 100% 100%); animation: mr-bush 8s ease-in-out infinite reverse; }
.scn-mother-return .stout-lady { position:absolute; bottom:25%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #8b6f47 0%, #5c4a30 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(1.1); animation: mr-figure 6s ease-in-out infinite; }
.scn-mother-return .companion { position:absolute; bottom:25%; right:40%; width:35px; height:65px; background: linear-gradient(180deg, #7a5c3a 0%, #4a3200 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform: scale(0.95) rotate(5deg); animation: mr-figure 6s ease-in-out infinite reverse; }
.scn-mother-return .tree-mid { position:absolute; bottom:35%; left:50%; width:8%; height:70%; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 10% 10% 20% 20%; transform: translateX(-50%); animation: mr-tree 10s ease-in-out infinite; }
.scn-mother-return .dust { position:absolute; bottom:23%; left:35%; width:15%; height:5%; background: radial-gradient(ellipse, rgba(210,180,140,0.4) 0%, transparent 70%); filter: blur(3px); animation: mr-dust 4s ease-in-out infinite; }
@keyframes mr-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mr-bush { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes mr-figure { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-3px) } 100% { transform: scale(0.98) translateY(0) } }
@keyframes mr-tree { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes mr-dust { 0% { opacity:0 } 50% { opacity:0.6 } 100% { opacity:0 } }

/* farewell-oarsmen – tense + dusk dock */
.scn-farewell-oarsmen { background: linear-gradient(180deg, #2c3e50 0%, #34495e 30%, #4a6741 60%, #1e2b2b 100%), radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.02) 0%, transparent 50%); }
.scn-farewell-oarsmen .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2c3e50 0%, #4a6741 60%, transparent 100%); animation: fo-sky 20s ease-in-out infinite alternate; }
.scn-farewell-oarsmen .water { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2b3c 0%, #0e1a24 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); animation: fo-water 6s ease-in-out infinite alternate; }
.scn-farewell-oarsmen .dock { position:absolute; bottom:25%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 5% 5% 30% 30%; transform: perspective(50px) rotateX(10deg); }
.scn-farewell-oarsmen .boat { position:absolute; bottom:22%; left:15%; width:50%; height:15%; background: linear-gradient(180deg, #4a2c1a 0%, #2b1a10 100%); border-radius: 40% 40% 20% 20%; clip-path: polygon(0% 50%, 10% 0%, 90% 0%, 100% 50%, 90% 100%, 10% 100%); animation: fo-boat 8s ease-in-out infinite; }
.scn-farewell-oarsmen .oarsman-left { position:absolute; bottom:28%; left:23%; width:20px; height:30px; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: fo-oarsman 4s ease-in-out infinite; }
.scn-farewell-oarsmen .oarsman-right { position:absolute; bottom:28%; right:28%; width:20px; height:28px; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: fo-oarsman 4s ease-in-out infinite reverse; }
.scn-farewell-oarsmen .handshake { position:absolute; bottom:30%; left:45%; width:20px; height:10px; background: #6b4226; border-radius: 20% 20% 20% 20%; transform: rotate(20deg); animation: fo-handshake 3s ease-in-out infinite; }
.scn-farewell-oarsmen .ripple { position:absolute; bottom:15%; left:30%; width:40%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.1) 0%, transparent 60%); animation: fo-ripple 5s ease-in-out infinite; }
@keyframes fo-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes fo-water { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(0) } }
@keyframes fo-boat { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fo-oarsman { 0% { transform: rotate(-15deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-15deg) } }
@keyframes fo-handshake { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(30deg) scale(1.1) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes fo-ripple { 0% { transform: scale(0.8); opacity:0.4 } 50% { transform: scale(1.2); opacity:0.8 } 100% { transform: scale(0.8); opacity:0.4 } }

/* sad-departure – tense + gaslit interior */
.scn-sad-departure { background: linear-gradient(180deg, #1a1a2e 0%, #16213e 30%, #0f3460 70%, #090a1a 100%), radial-gradient(ellipse at 50% 50%, rgba(255,180,50,0.05) 0%, transparent 70%); }
.scn-sad-departure .wall { position:absolute; inset:0 20% 0 0; background: linear-gradient(180deg, #2c2c44 0%, #1a1a2e 100%); box-shadow: inset -20px 0 30px rgba(0,0,0,0.7); }
.scn-sad-departure .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #3e2a1a 0%, #1f140a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.8); }
.scn-sad-departure .door { position:absolute; bottom:15%; left:58%; width:30%; height:70%; background: linear-gradient(180deg, #4a2e1a 0%, #281a0e 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); border-left: 3px solid #6b4226; transform: perspective(20px) rotateY(5deg); }
.scn-sad-departure .gas-lamp { position:absolute; top:15%; left:50%; width:20px; height:30px; background: radial-gradient(circle, #ffcc66 0%, #b8860b 50%, #5a3a0a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,180,50,0.5), 0 0 60px 20px rgba(255,180,50,0.2); animation: sd-lamp 3s ease-in-out infinite alternate; }
.scn-sad-departure .henri { position:absolute; bottom:15%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #2b1a10 0%, #1f0f08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-5deg); animation: sd-figure 5s ease-in-out infinite; }
.scn-sad-departure .madame { position:absolute; bottom:15%; left:55%; width:25px; height:45px; background: linear-gradient(180deg, #3e2a1a 0%, #2b1a10 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(3deg); animation: sd-figure 5s ease-in-out infinite reverse; }
.scn-sad-departure .shadow-door { position:absolute; bottom:15%; left:60%; width:25%; height:65%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); transform: skewX(-10deg); animation: sd-shadow 6s ease-in-out infinite alternate; }
.scn-sad-departure .light-pool { position:absolute; bottom:0; left:40%; width:20%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(255,180,50,0.2) 0%, transparent 70%); filter: blur(8px); animation: sd-pool 6s ease-in-out infinite alternate; }
@keyframes sd-lamp { 0% { box-shadow: 0 0 20px 5px rgba(255,180,50,0.4); transform: scale(1) } 50% { box-shadow: 0 0 40px 15px rgba(255,180,50,0.6); transform: scale(1.05) } 100% { box-shadow: 0 0 25px 8px rgba(255,180,50,0.45); transform: scale(0.98) } }
@keyframes sd-figure { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(-1deg) translateY(0) } 75% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes sd-shadow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes sd-pool { 0% { transform: scale(0.8); opacity:0.4 } 50% { transform: scale(1.1); opacity:0.7 } 100% { transform: scale(0.9); opacity:0.5 } }

/* body-decomposition */
.scn-body-decomposition { background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 60%, #3a2a2a 0%, transparent 70%); }
.scn-body-decomposition .bd-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%); }
.scn-body-decomposition .bd-window { position:absolute; top:8%; left:10%; width:40%; height:50%; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a2a 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.6); animation: bd-window-glow 8s ease-in-out infinite alternate; }
.scn-body-decomposition .bd-moon { position:absolute; top:12%; left:25%; width:20px; height:20px; background: radial-gradient(circle, #d0d0e0 0%, #9090a0 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(160,160,180,.3); animation: bd-moon-float 12s ease-in-out infinite; }
.scn-body-decomposition .bd-bed { position:absolute; bottom:15%; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:8px 8px 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.7); }
.scn-body-decomposition .bd-figure { position:absolute; bottom:18%; left:30%; width:30%; height:30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bd-figure-twitch 4s ease-in-out infinite; }
.scn-body-decomposition .bd-shadow { position:absolute; bottom:0; left:20%; width:60%; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 100%); filter: blur(8px); animation: bd-shadow-pulse 6s ease-in-out infinite; }
.scn-body-decomposition .bd-ember { position:absolute; bottom:40%; left:70%; width:4px; height:4px; background: radial-gradient(circle, #ff8040 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 12px 2px #ff8040; animation: bd-ember-drift 5s linear infinite; }
@keyframes bd-window-glow { 0%,100% { opacity:.6; box-shadow: inset 0 0 30px rgba(0,0,0,.6); } 50% { opacity:.8; box-shadow: inset 0 0 50px rgba(0,0,0,.8); } }
@keyframes bd-moon-float { 0%,100% { transform: translate(0,0); } 50% { transform: translate(2px,-2px); } }
@keyframes bd-figure-twitch { 0%,100% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(1deg) scale(1.02); } 50% { transform: rotate(-1deg) scale(0.98); } 75% { transform: rotate(0.5deg) scale(1.01); } }
@keyframes bd-shadow-pulse { 0%,100% { opacity:.4; transform: scaleX(1); } 50% { opacity:.7; transform: scaleX(1.1); } }
@keyframes bd-ember-drift { 0% { transform: translate(0,0) rotate(0deg); opacity:1; } 50% { transform: translate(-10px,-15px) rotate(180deg); opacity:.6; } 100% { transform: translate(-20px,-30px) rotate(360deg); opacity:0; } }

/* horror-of-rot */
.scn-horror-of-rot { background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 50%, #0a0000 100%), radial-gradient(ellipse at 50% 70%, #2a1a1a 0%, transparent 60%); }
.scn-horror-of-rot .hr-grave-soil { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-horror-of-rot .hr-coffin { position:absolute; bottom:25%; left:30%; width:40%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:4px; box-shadow: 0 4px 15px rgba(0,0,0,.8); animation: hr-coffin-settle 10s ease-in-out infinite; }
.scn-horror-of-rot .hr-figure { position:absolute; bottom:28%; left:38%; width:20%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hr-figure-decay 15s ease-in-out infinite; }
.scn-horror-of-rot .hr-hand { position:absolute; bottom:30%; left:45%; width:8%; height:14%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-20deg); animation: hr-hand-twist 8s ease-in-out infinite; }
.scn-horror-of-rot .hr-rot-spark { position:absolute; bottom:40%; left:50%; width:6px; height:6px; background: radial-gradient(circle, #b0a080 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(176,160,128,.3); animation: hr-spark-flicker 3s ease-in-out infinite alternate; }
.scn-horror-of-rot .hr-weed { position:absolute; bottom:30%; left:20%; width:8%; height:20%; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius:0 0 20% 20%; transform: skewX(-10deg); animation: hr-weed-sway 6s ease-in-out infinite; }
@keyframes hr-coffin-settle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hr-figure-decay { 0%,100% { transform: scale(1) rotate(0); opacity:.8; } 25% { transform: scale(0.95) rotate(-1deg); opacity:.7; } 50% { transform: scale(1.05) rotate(1deg); opacity:.9; } 75% { transform: scale(0.98) rotate(-0.5deg); opacity:.75; } }
@keyframes hr-hand-twist { 0%,100% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } }
@keyframes hr-spark-flicker { 0% { opacity:.2; box-shadow: 0 0 10px 2px rgba(176,160,128,.3); } 50% { opacity:.8; box-shadow: 0 0 20px 4px rgba(176,160,128,.5); } 100% { opacity:.3; box-shadow: 0 0 12px 3px rgba(176,160,128,.2); } }
@keyframes hr-weed-sway { 0%,100% { transform: skewX(-10deg) rotate(0); } 50% { transform: skewX(-5deg) rotate(5deg); } }

/* item-spade-and-coffin */
.scn-item-spade-and-coffin { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 30%, #0a0a1a 100%), radial-gradient(ellipse at 80% 20%, #2a2a4a 0%, transparent 60%); }
.scn-item-spade-and-coffin .sc-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a2a 100%); animation: sc-sky-pulse 15s ease-in-out infinite alternate; }
.scn-item-spade-and-coffin .sc-moon { position:absolute; top:8%; right:15%; width:30px; height:30px; background: radial-gradient(circle, #d0d0e0 0%, #a0a0c0 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(160,160,200,.4); animation: sc-moon-glow 8s ease-in-out infinite; }
.scn-item-spade-and-coffin .sc-grave-mound { position:absolute; bottom:22%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.7); }
.scn-item-spade-and-coffin .sc-coffin { position:absolute; bottom:30%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:4px; transform: perspective(400px) rotateX(10deg); box-shadow: 0 4px 15px rgba(0,0,0,.8); animation: sc-coffin-open 12s ease-in-out infinite; }
.scn-item-spade-and-coffin .sc-spade { position:absolute; bottom:25%; left:10%; width:6%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; transform: rotate(-30deg); transform-origin: bottom left; animation: sc-spade-dig 6s ease-in-out infinite; }
.scn-item-spade-and-coffin .sc-lantern { position:absolute; bottom:40%; left:60%; width:12px; height:18px; background: radial-gradient(circle at 50% 60%, #ffa040 0%, #c06020 100%); border-radius:4px; box-shadow: 0 0 30px 8px rgba(255,160,64,.6); animation: sc-lantern-swing 5s ease-in-out infinite; }
.scn-item-spade-and-coffin .sc-figure { position:absolute; bottom:22%; left:50%; width:16%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-figure-kneel 7s ease-in-out infinite; }
@keyframes sc-sky-pulse { 0%,100% { opacity:.7; } 50% { opacity:1; } }
@keyframes sc-moon-glow { 0%,100% { box-shadow: 0 0 60px 20px rgba(160,160,200,.4); } 50% { box-shadow: 0 0 80px 30px rgba(160,160,200,.6); } }
@keyframes sc-coffin-open { 0%,100% { transform: perspective(400px) rotateX(10deg) scaleY(1); } 50% { transform: perspective(400px) rotateX(5deg) scaleY(1.05); } }
@keyframes sc-spade-dig { 0%,100% { transform: rotate(-30deg) translate(0); } 50% { transform: rotate(-20deg) translate(0,-3px); } }
@keyframes sc-lantern-swing { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes sc-figure-kneel { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }

/* verdict-of-not-guilty */
.scn-verdict-of-not-guilty { background: linear-gradient(180deg, #e8e0d0 0%, #f0e8d8 30%, #d8d0c0 100%), radial-gradient(ellipse at 50% 30%, #fff8f0 0%, transparent 60%); }
.scn-verdict-of-not-guilty .vn-wall { position:absolute; inset:0; background: linear-gradient(135deg, #d8d0c0 0%, #c8c0b0 100%); }
.scn-verdict-of-not-guilty .vn-bench { position:absolute; top:5%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:0 0 8px 8px; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-verdict-of-not-guilty .vn-jury { position:absolute; top:30%; left:10%; right:10%; height:15%; display:flex; justify-content:space-around; }
.scn-verdict-of-not-guilty .vn-jury::before { content:''; display:block; width:100%; height:100%; background: repeating-linear-gradient(90deg, #5a4a3a 0%, #5a4a3a 8%, transparent 8%, transparent 12%); }
.scn-verdict-of-not-guilty .vn-defendant { position:absolute; bottom:15%; left:40%; width:20%; height:35%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vn-defendant-stand 6s ease-in-out infinite; }
.scn-verdict-of-not-guilty .vn-window-light { position:absolute; top:8%; right:5%; width:30%; height:50%; background: linear-gradient(135deg, #fff8e0 0%, #f0e8c0 100%); clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%); box-shadow: inset 0 0 30px rgba(255,255,200,.3); animation: vn-light-pulse 5s ease-in-out infinite alternate; }
.scn-verdict-of-not-guilty .vn-gavel { position:absolute; top:12%; left:50%; width:4%; height:10%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; transform: translateX(-50%); animation: vn-gavel-strike 4s ease-in-out infinite; }
.scn-verdict-of-not-guilty .vn-shadow-stripe { position:absolute; top:0; left:30%; width:10%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.15) 100%); filter: blur(4px); animation: vn-stripe-sweep 8s linear infinite; }
@keyframes vn-defendant-stand { 0%,100% { transform: translateY(0) scale(1); } 25% { transform: translateY(-2px) scale(1.02); } 50% { transform: translateY(0) scale(0.98); } 75% { transform: translateY(-1px) scale(1.01); } }
@keyframes vn-light-pulse { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes vn-gavel-strike { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(10deg); } }
@keyframes vn-stripe-sweep { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }

.scn-nightingale-romance { background: linear-gradient(180deg, #f5d7a0 0%, #e8b86a 40%, #c8954a 70%, #a07030 100%), radial-gradient(ellipse at 70% 20%, #ffe8b0 0%, transparent 60%); }
.scn-nightingale-romance .sky-warm { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffe0a0 0%, #f5c870 60%, transparent 100%); animation: nr-sky 14s ease-in-out infinite alternate; }
.scn-nightingale-romance .balcony { position:absolute; bottom:30%; left:50%; width:160px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a87a 0%, #a08050 50%, #706030 100%); border-radius:6% 6% 4% 4%; box-shadow: 0 -4px 20px rgba(200,168,122,.4), inset 0 4px 10px rgba(255,255,200,.3); }
.scn-nightingale-romance .pillar-l { position:absolute; bottom:30%; left:calc(50% - 90px); width:18px; height:120px; background: linear-gradient(180deg, #d0b890 0%, #a08860 100%); border-radius:6px; box-shadow: -2px 0 8px rgba(0,0,0,.15); }
.scn-nightingale-romance .pillar-r { position:absolute; bottom:30%; left:calc(50% + 72px); width:18px; height:120px; background: linear-gradient(180deg, #d0b890 0%, #a08860 100%); border-radius:6px; box-shadow: 2px 0 8px rgba(0,0,0,.15); }
.scn-nightingale-romance .nightingale { position:absolute; bottom:48%; left:50%; width:16px; height:12px; transform:translateX(-50%); background: radial-gradient(ellipse at 60% 30%, #6a5a3a 0%, #3a2a1a 100%); border-radius:50% 60% 40% 50%; box-shadow: 0 0 12px 4px rgba(255,200,100,.2); animation: nr-bird 3s ease-in-out infinite; }
.scn-nightingale-romance .moon-glow { position:absolute; top:8%; right:18%; width:50px; height:50px; background: radial-gradient(circle at 50% 50%, #ffe8c0 0%, #f0c870 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(240,200,112,.25); animation: nr-moon 20s ease-in-out infinite alternate; }
.scn-nightingale-romance .vine-l { position:absolute; bottom:40%; left:calc(50% - 105px); width:40px; height:60px; background: radial-gradient(ellipse at 50% 0%, #5a7030 0%, #3a5020 70%) no-repeat; border-radius:0 40% 0 0; transform:rotate(10deg); animation: nr-vine 12s ease-in-out infinite; }
.scn-nightingale-romance .vine-r { position:absolute; bottom:40%; right:calc(50% - 105px); width:40px; height:50px; background: radial-gradient(ellipse at 50% 0%, #5a7030 0%, #3a5020 70%) no-repeat; border-radius:40% 0 0 0; transform:rotate(-10deg); animation: nr-vine 12s ease-in-out infinite reverse; }
@keyframes nr-sky { 0% { opacity:.85; filter:brightness(.95) } 50% { opacity:1; filter:brightness(1.05) } 100% { opacity:.9; filter:brightness(1) } }
@keyframes nr-bird { 0% { transform:translateX(-50%) translateY(0) scale(1) rotate(-2deg) } 30% { transform:translateX(-50%) translateY(-3px) scale(1.05) rotate(3deg) } 60% { transform:translateX(-50%) translateY(-1px) scale(.98) rotate(-1deg) } 100% { transform:translateX(-50%) translateY(0) scale(1) rotate(0) } }
@keyframes nr-moon { 0% { transform:scale(.9); opacity:.7 } 50% { transform:scale(1.05); opacity:.95 } 100% { transform:scale(.95); opacity:.8 } }
@keyframes nr-vine { 0% { transform:rotate(10deg) scaleY(1) } 50% { transform:rotate(7deg) scaleY(1.08) } 100% { transform:rotate(10deg) scaleY(1) } }

.scn-item-nest-night { background: linear-gradient(180deg, #1a3a2a 0%, #2a5a3a 30%, #4a7a5a 60%, #6a9a7a 100%), radial-gradient(ellipse at 50% 80%, #8ab88a 0%, transparent 70%); }
.scn-item-nest-night .water-deep { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a3a2a 0%, #0a2a1a 40%, #0a1a12 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.5); animation: inn-water 8s ease-in-out infinite alternate; }
.scn-item-nest-night .bank-left { position:absolute; bottom:42%; left:0; width:35%; height:20%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 0 60% 40% 0 / 0 80% 60% 0; box-shadow: inset -4px 0 12px rgba(0,0,0,.3); }
.scn-item-nest-night .bank-right { position:absolute; bottom:40%; right:0; width:30%; height:22%; background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%); border-radius: 60% 0 0 50% / 80% 0 0 60%; box-shadow: inset 4px 0 12px rgba(0,0,0,.3); animation: inn-bank 20s ease-in-out infinite alternate; }
.scn-item-nest-night .boat { position:absolute; bottom:38%; left:40%; width:70px; height:24px; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 2px 10px rgba(0,0,0,.5); animation: inn-boat 5s ease-in-out infinite; }
.scn-item-nest-night .reeds-l { position:absolute; bottom:40%; left:12%; width:8px; height:60px; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%); border-radius:40% 40% 20% 20%; box-shadow: -4px -10px 0 #3a6a2a, 4px -20px 0 #4a7a3a; animation: inn-reeds 6s ease-in-out infinite; }
.scn-item-nest-night .reeds-r { position:absolute; bottom:38%; right:10%; width:7px; height:50px; background: linear-gradient(180deg, #3a6a2a 0%, #1a4a0a 100%); border-radius:40% 40% 20% 20%; box-shadow: 6px -8px 0 #3a6a2a, -3px -18px 0 #2a5a1a; animation: inn-reeds 6s ease-in-out infinite .8s; }
.scn-item-nest-night .canopy { position:absolute; top:0; left:0; right:0; height:45%; background: radial-gradient(ellipse at 50% 0%, #2a5a3a 0%, #1a3a2a 50%, transparent 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; filter: blur(4px); animation: inn-canopy 25s ease-in-out infinite alternate; }
.scn-item-nest-night .firefly-a { position:absolute; bottom:50%; left:30%; width:5px; height:5px; background: #e8f0a0; border-radius:50%; box-shadow: 0 0 12px 6px rgba(232,240,160,.5); animation: inn-firefly 4s ease-in-out infinite; }
.scn-item-nest-night .firefly-b { position:absolute; bottom:45%; left:60%; width:4px; height:4px; background: #f0e8a0; border-radius:50%; box-shadow: 0 0 10px 5px rgba(240,232,160,.4); animation: inn-firefly 4s ease-in-out infinite 1.5s; }
@keyframes inn-water { 0% { transform:translateY(0) scaleY(1); opacity:.85 } 50% { transform:translateY(3px) scaleY(1.02); opacity:.95 } 100% { transform:translateY(-1px) scaleY(.98); opacity:.9 } }
@keyframes inn-bank { 0% { transform:translateX(0) } 50% { transform:translateX(-2px) } 100% { transform:translateX(1px) } }
@keyframes inn-boat { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 30% { transform:translateX(4px) translateY(-2px) rotate(2deg) } 60% { transform:translateX(-2px) translateY(1px) rotate(-1.5deg) } 100% { transform:translateX(0) translateY(0) rotate(0) } }
@keyframes inn-reeds { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(3deg) translateY(-3px) } 100% { transform:rotate(-1deg) translateY(1px) } }
@keyframes inn-canopy { 0% { opacity:.6; filter:blur(4px) brightness(.9) } 50% { opacity:.8; filter:blur(3px) brightness(1.05) } 100% { opacity:.65; filter:blur(5px) brightness(.95) } }
@keyframes inn-firefly { 0% { opacity:0; transform:translateY(0) translateX(0) scale(.5) } 20% { opacity:1; transform:translateY(-10px) translateX(6px) scale(1) } 50% { opacity:.8; transform:translateY(-20px) translateX(-4px) scale(.9) } 80% { opacity:1; transform:translateY(-30px) translateX(8px) scale(1.1) } 100% { opacity:0; transform:translateY(-40px) translateX(2px) scale(.6) } }

.scn-nightingale-song { background: linear-gradient(180deg, #c8e0b0 0%, #a0c880 30%, #80a860 60%, #5a8030 100%), radial-gradient(ellipse at 50% 100%, #b0d8a0 0%, transparent 70%); }
.scn-nightingale-song .sky-above { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #d8f0c0 0%, #b0d8a0 40%, #90b870 100%); filter: blur(8px); animation: ns-sky 16s ease-in-out infinite alternate; }
.scn-nightingale-song .branch-l { position:absolute; top:22%; left:8%; width:45%; height:8px; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius:4px; transform:rotate(-8deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ns-branch 20s ease-in-out infinite; }
.scn-nightingale-song .branch-r { position:absolute; top:18%; right:5%; width:35%; height:6px; background: linear-gradient(180deg, #3a2a0a 0%, #1a0a00 100%); border-radius:3px; transform:rotate(12deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ns-branch 20s ease-in-out infinite .7s; }
.scn-nightingale-song .bird { position:absolute; top:18%; left:50%; width:20px; height:16px; transform:translateX(-50%); background: radial-gradient(ellipse at 55% 40%, #6a5a3a 0%, #3a2a1a 100%); border-radius:50% 55% 45% 50% / 60% 60% 40% 40%; box-shadow: 0 0 10px 4px rgba(200,240,180,.15); animation: ns-bird 2.5s ease-in-out infinite; }
.scn-nightingale-song .leaves-a { position:absolute; top:20%; left:20%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 50%, #5a8030 0%, #3a6010 100%); border-radius:60% 20% 50% 30%; filter:blur(2px); animation: ns-leaves 14s ease-in-out infinite; }
.scn-nightingale-song .leaves-b { position:absolute; top:14%; right:18%; width:35px; height:18px; background: radial-gradient(ellipse at 50% 50%, #4a7020 0%, #2a5000 100%); border-radius:30% 60% 40% 50%; filter:blur(2px); animation: ns-leaves 14s ease-in-out infinite .5s; }
.scn-nightingale-song .song-waves { position:absolute; top:42%; left:50%; width:100px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,.15) 0%, transparent 60%); border-radius:40% 60% 50% 50%; filter:blur(6px); animation: ns-song 3s ease-in-out infinite; }
.scn-nightingale-song .ground-moss { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a8030 0%, #3a6010 50%, #1a3a00 100%); border-radius: 30% 70% 0 0 / 40% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
@keyframes ns-sky { 0% { opacity:.7; filter:blur(8px) brightness(.9) } 50% { opacity:.9; filter:blur(6px) brightness(1.05) } 100% { opacity:.75; filter:blur(10px) brightness(.95) } }
@keyframes ns-branch { 0% { transform:rotate(-8deg) translateY(0) } 50% { transform:rotate(-6deg) translateY(-2px) } 100% { transform:rotate(-9deg) translateY(1px) } }
@keyframes ns-bird { 0% { transform:translateX(-50%) translateY(0) scale(1) rotate(-3deg) } 25% { transform:translateX(-50%) translateY(-4px) scale(1.06) rotate(4deg) } 50% { transform:translateX(-50%) translateY(-1px) scale(.97) rotate(-2deg) } 75% { transform:translateX(-50%) translateY(-5px) scale(1.03) rotate(5deg) } 100% { transform:translateX(-50%) translateY(0) scale(1) rotate(0) } }
@keyframes ns-leaves { 0% { transform:scale(1) } 50% { transform:scale(1.12) } 100% { transform:scale(.95) } }
@keyframes ns-song { 0% { transform:translateX(-50%) scale(.9); opacity:.4 } 30% { transform:translateX(-50%) scale(1.15); opacity:.7 } 60% { transform:translateX(-50%) scale(1.05); opacity:.5 } 100% { transform:translateX(-50%) scale(.95); opacity:.35 } }

.scn-henriette-tears { background: linear-gradient(180deg, #f0d8b0 0%, #d4b880 40%, #b89860 70%, #8a7840 100%), radial-gradient(ellipse at 50% 60%, #ffe8c0 0%, transparent 70%); }
.scn-henriette-tears .bg-warm { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, #f8e0c0 0%, #e0c8a0 40%, rgba(180,150,90,.2) 100%); filter: blur(10px); animation: ht-bg 18s ease-in-out infinite alternate; }
.scn-henriette-tears .figure-h { position:absolute; bottom:8%; left:50%; width:60px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #d8b890 0%, #b89870 40%, #8a6848 100%); border-radius: 50% 50% 40% 40% / 45% 45% 55% 55%; box-shadow: 0 8px 20px rgba(0,0,0,.15); animation: ht-figure 4s ease-in-out infinite; }
.scn-henriette-tears .shoulder { position:absolute; bottom:38%; left:50%; width:82px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a880 0%, #a88860 50%, #88704a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 -2px 12px rgba(0,0,0,.1); }
.scn-henriette-tears .tear-a { position:absolute; bottom:58%; left:48%; width:4px; height:8px; background: radial-gradient(ellipse at 50% 30%, #c0d8e8 0%, #80a8c8 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 6px 2px rgba(128,168,200,.3); animation: ht-tear 3s ease-in-out infinite; }
.scn-henriette-tears .tear-b { position:absolute; bottom:62%; left:52%; width:3px; height:6px; background: radial-gradient(ellipse at 50% 30%, #b8d0e0 0%, #7098b8 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 0 5px 2px rgba(112,152,184,.25); animation: ht-tear 3s ease-in-out infinite 1.2s; }
.scn-henriette-tears .light-halo { position:absolute; top:20%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle at 50% 50%, rgba(255,232,192,.25) 0%, rgba(255,232,192,.08) 40%, transparent 70%); border-radius:50%; filter: blur(12px); animation: ht-halo 6s ease-in-out infinite alternate; }
.scn-henriette-tears .shadow-wrap { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(80,60,30,.4) 100%); border-radius:0; animation: ht-shadow 8s ease-in-out infinite alternate; }
.scn-henriette-tears .hand-hand { position:absolute; bottom:18%; left:38%; width:20px; height:30px; background: linear-gradient(180deg, #d0b090 0%, #b89870 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform:rotate(10deg); box-shadow: 0 2px 6px rgba(0,0,0,.1); animation: ht-hand 5s ease-in-out infinite; }
@keyframes ht-bg { 0% { opacity:.7; filter:blur(10px) brightness(.9) } 50% { opacity:.9; filter:blur(8px) brightness(1.05) } 100% { opacity:.75; filter:blur(12px) brightness(.95) } }
@keyframes ht-figure { 0% { transform:translateX(-50%) translateY(0) rotate(0) } 25% { transform:translateX(-50%) translateY(-3px) rotate(1deg) } 50% { transform:translateX(-50%) translateY(1px) rotate(-1.5deg) } 75% { transform:translateX(-50%) translateY(-4px) rotate(2deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0) } }
@keyframes ht-tear { 0% { transform:translateY(0) scaleY(1); opacity:0 } 15% { opacity:1 } 50% { transform:translateY(12px) scaleY(1.2); opacity:.8 } 85% { opacity:.4 } 100% { transform:translateY(24px) scaleY(.8); opacity:0 } }
@keyframes ht-halo { 0% { transform:translateX(-50%) scale(.9); opacity:.5 } 50% { transform:translateX(-50%) scale(1.1); opacity:.75 } 100% { transform:translateX(-50%) scale(.95); opacity:.6 } }
@keyframes ht-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }
@keyframes ht-hand { 0% { transform:rotate(10deg) translateY(0) } 30% { transform:rotate(8deg) translateY(-4px) } 60% { transform:rotate(12deg) translateY(2px) } 100% { transform:rotate(10deg) translateY(0) } }

.scn-publication-footer {
  background: linear-gradient(180deg, #2b1e16 0%, #1a120a 50%, #0f0b07 100%), radial-gradient(ellipse at 50% 40%, #3a251a 0%, transparent 60%);
}
.scn-publication-footer .shelf {
  position: absolute;
  top: 15%;
  left: 5%;
  right: 5%;
  height: 10px;
  background: linear-gradient(90deg, #4a3520, #6b4f30, #4a3520);
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  border-radius: 2px;
  animation: pf-shelf 20s ease-in-out infinite alternate;
}
.scn-publication-footer .books {
  position: absolute;
  top: 16%;
  left: 8%;
  right: 8%;
  height: 35px;
  background: linear-gradient(90deg, #6b4a2a, #8b6a4a, #4b2a1a, #7a5a3a, #5a3a2a);
  background-size: 40px 100%;
  background-repeat: repeat;
  border-radius: 2px;
  box-shadow: inset 0 -3px 6px rgba(0,0,0,0.3);
  animation: pf-books 30s linear infinite alternate;
}
.scn-publication-footer .desk {
  position: absolute;
  bottom: 5%;
  left: 10%;
  right: 10%;
  height: 25%;
  background: linear-gradient(180deg, #5a3a2a, #3a2a1a);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5), inset 0 2px 4px rgba(100,70,40,0.3);
  animation: pf-desk 15s ease-in-out infinite alternate;
}
.scn-publication-footer .lamp {
  position: absolute;
  bottom: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 70px;
  background: linear-gradient(180deg, #c0a070 10%, #907050 30%, #604030 100%);
  border-radius: 6px 6px 8px 8px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.6);
  animation: pf-lamp 8s ease-in-out infinite alternate;
}
.scn-publication-footer .glow {
  position: absolute;
  bottom: 28%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 140px;
  height: 140px;
  background: radial-gradient(circle, rgba(255,200,100,0.7) 0%, rgba(255,200,100,0.2) 40%, transparent 70%);
  filter: blur(8px);
  animation: pf-glow 6s ease-in-out infinite alternate;
}
.scn-publication-footer .window {
  position: absolute;
  top: 4%;
  right: 5%;
  width: 80px;
  height: 110px;
  background: radial-gradient(ellipse at center, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%);
  border: 6px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 4px 8px rgba(0,0,0,0.5);
  animation: pf-window 12s ease-in-out infinite alternate;
}
@keyframes pf-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes pf-books { 0% { background-position: 0 0; } 50% { background-position: 20px 0; } 100% { background-position: 40px 0; } }
@keyframes pf-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes pf-lamp { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes pf-glow { 0% { opacity: 0.6; transform: translate(-50%, -50%) scale(1); } 50% { opacity: 0.9; transform: translate(-50%, -50%) scale(1.05); } 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(1); } }
@keyframes pf-window { 0% { opacity: 0.7; filter: blur(0px); } 50% { opacity: 0.9; filter: blur(2px); } 100% { opacity: 0.7; filter: blur(0px); } }

.scn-factory-landscape {
  background: linear-gradient(180deg, #3a3a3a 0%, #4a4a4a 40%, #2a2a2a 100%), radial-gradient(ellipse at 50% 100%, #5a5a5a 0%, transparent 70%);
}
.scn-factory-landscape .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  animation: fl-sky 14s ease-in-out infinite alternate;
}
.scn-factory-landscape .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: fl-ground 12s ease-in-out infinite;
}
.scn-factory-landscape .chimney-left {
  position: absolute; bottom: 40%; left: 25%; width: 16px; height: 80px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 4px 4px 0 0;
  animation: fl-chimney 6s ease-in-out infinite alternate;
}
.scn-factory-landscape .chimney-right {
  position: absolute; bottom: 40%; left: 60%; width: 20px; height: 100px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 4px 4px 0 0;
  animation: fl-chimney 8s ease-in-out infinite alternate-reverse;
}
.scn-factory-landscape .smoke-plume {
  position: absolute; bottom: 70%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,200,200,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: fl-smoke 15s linear infinite;
}
.scn-factory-landscape .river {
  position: absolute; bottom: 30%; left: 10%; right: 20%; height: 8px;
  background: linear-gradient(90deg, #2a4a5a, #4a7a8a, #2a4a5a);
  border-radius: 50%;
  animation: fl-river 20s ease-in-out infinite;
}
.scn-factory-landscape .factory-building {
  position: absolute; bottom: 38%; left: 35%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: fl-build 10s ease-in-out infinite;
}
@keyframes fl-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fl-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fl-chimney { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes fl-smoke { 0% { transform: translate(0, 0) scale(1); opacity: 0.3; } 50% { transform: translate(20px, -30px) scale(1.5); opacity: 0.6; } 100% { transform: translate(40px, -60px) scale(2); opacity: 0; } }
@keyframes fl-river { 0% { background-position: 0% 0%; } 50% { background-position: 100% 0%; } 100% { background-position: 0% 0%; } }
@keyframes fl-build { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-restaurant-poulin {
  background: linear-gradient(180deg, #b8d8e8 0%, #f0d890 60%, #e8b860 100%), radial-gradient(ellipse at 50% 0%, #fef0c0 0%, transparent 70%);
}
.scn-restaurant-poulin .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4e0 0%, #f0e8b0 100%);
  animation: rp-sky 16s ease-in-out infinite alternate;
}
.scn-restaurant-poulin .building {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #f8e8c8 0%, #d8c8a8 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.2);
  animation: rp-build 8s ease-in-out infinite;
}
.scn-restaurant-poulin .sign {
  position: absolute; bottom: 70%; left: 35%; width: 60px; height: 20px;
  background: linear-gradient(90deg, #f0e8d0, #fff8e0, #f0e8d0);
  border-radius: 20%;
  box-shadow: 0 0 20px 5px rgba(255,240,200,0.7);
  animation: rp-sign 4s ease-in-out infinite alternate;
}
.scn-restaurant-poulin .arbor {
  position: absolute; bottom: 45%; left: 55%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #4a7a3a 0%, transparent 70%);
  border-radius: 40% 40% 20% 20%;
  filter: blur(2px);
  animation: rp-arbor 12s ease-in-out infinite;
}
.scn-restaurant-poulin .swing {
  position: absolute; bottom: 35%; left: 60%; width: 4px; height: 40px;
  background: #6a4a3a;
  border-radius: 50%;
  animation: rp-swing 5s ease-in-out infinite alternate;
}
.scn-restaurant-poulin .swing::after {
  content: ''; position: absolute; bottom: -8px; left: -10px; width: 24px; height: 8px;
  background: #8a6a4a;
  border-radius: 50%;
}
.scn-restaurant-poulin .table {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 6px;
  background: #6a4a3a;
  border-radius: 4px;
  animation: rp-table 3s ease-in-out infinite;
}
@keyframes rp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rp-build { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rp-sign { 0% { box-shadow: 0 0 10px 2px rgba(255,240,200,0.5); } 50% { box-shadow: 0 0 30px 8px rgba(255,240,200,0.9); } 100% { box-shadow: 0 0 15px 4px rgba(255,240,200,0.6); } }
@keyframes rp-arbor { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes rp-swing { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes rp-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-arriving-at-inn {
  background: linear-gradient(180deg, #80cce0 0%, #f0e0a0 50%, #b8a060 100%), radial-gradient(ellipse at 50% 0%, #90d0e0 0%, transparent 70%);
}
.scn-arriving-at-inn .sky-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #70b8d0 0%, #f0e0b0 100%);
  animation: ai-sky 18s ease-in-out infinite alternate;
}
.scn-arriving-at-inn .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #6a8a4a 0%, #3a5a2a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  animation: ai-field 14s ease-in-out infinite;
}
.scn-arriving-at-inn .inn-back {
  position: absolute; bottom: 35%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a878 0%, #a08858 100%);
  border-radius: 8px 8px 0 0;
  animation: ai-inn 10s ease-in-out infinite;
}
.scn-arriving-at-inn .carriage {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: ai-carriage 6s ease-in-out infinite alternate;
}
.scn-arriving-at-inn .wheel {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 24px;
  background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  border: 2px solid #3a2a1a;
  animation: ai-wheel 8s linear infinite;
}
.scn-arriving-at-inn .step {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  animation: ai-step 4s ease-in-out infinite;
}
.scn-arriving-at-inn .wife-figure {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ai-wife 5s ease-in-out infinite alternate;
}
.scn-arriving-at-inn .husband-figure {
  position: absolute; bottom: 22%; left: 52%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ai-husband 5s ease-in-out infinite alternate-reverse;
}
@keyframes ai-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ai-field { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ai-inn { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ai-carriage { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ai-wheel { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); } }
@keyframes ai-step { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } 100% { transform: scaleY(1); } }
@keyframes ai-wife { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ai-husband { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-madame-dufour {
  background: linear-gradient(180deg, #f0d8b8 0%, #e8c8a8 50%, #d8b898 100%), radial-gradient(ellipse at 50% 50%, #f8e8d0 0%, transparent 70%);
}
.scn-madame-dufour .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0d8c0 0%, #e0c8b0 100%);
  animation: md-bg 12s ease-in-out infinite alternate;
}
.scn-madame-dufour .dress {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0a0c0 0%, #8a7a9a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: md-dress 8s ease-in-out infinite;
}
.scn-madame-dufour .head {
  position: absolute; bottom: 60%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #f0d8b8 0%, #d8b898 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: md-head 5s ease-in-out infinite alternate;
}
.scn-madame-dufour .arm-left {
  position: absolute; bottom: 45%; left: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #d8b898 0%, #c8a888 100%);
  border-radius: 30%;
  transform: rotate(15deg);
  transform-origin: top center;
  animation: md-arm-left 6s ease-in-out infinite alternate;
}
.scn-madame-dufour .arm-right {
  position: absolute; bottom: 45%; right: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #d8b898 0%, #c8a888 100%);
  border-radius: 30%;
  transform: rotate(-15deg);
  transform-origin: top center;
  animation: md-arm-right 6s ease-in-out infinite alternate-reverse;
}
.scn-madame-dufour .fan {
  position: absolute; bottom: 55%; right: 28%; width: 30px; height: 20px;
  background: linear-gradient(90deg, #e8c8a0, #d8b890, #e8c8a0);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: md-fan 4s ease-in-out infinite alternate;
}
@keyframes md-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes md-dress { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes md-head { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes md-arm-left { 0% { transform: rotate(10deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(10deg); } }
@keyframes md-arm-right { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-10deg); } }
@keyframes md-fan { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(30deg) scale(1.2); } 100% { transform: rotate(0deg) scale(1); } }

.scn-marguerite-confession {
  background:
    radial-gradient(ellipse at 20% 80%, #4a1a0a 0%, transparent 60%),
    radial-gradient(ellipse at 60% 90%, #7a3a1a 0%, transparent 50%),
    linear-gradient(170deg, #1a0f0a 0%, #2b1c14 40%, #3d261a 100%);
}
.scn-marguerite-confession .room-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(0deg, #1a0f0a 0%, transparent 40%);
  animation: mg1-wall 20s ease-in-out infinite alternate;
}
.scn-marguerite-confession .fireplace {
  position: absolute; bottom: 10%; left: 8%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #2a1a0f 0%, #1a0f0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -20px 40px rgba(200,80,20,0.3);
  animation: mg1-firep 6s ease-in-out infinite;
}
.scn-marguerite-confession .bed {
  position: absolute; bottom: 15%; left: 35%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: mg1-bed 8s ease-in-out infinite alternate;
}
.scn-marguerite-confession .marguerite {
  position: absolute; bottom: 28%; left: 42%; width: 14%; height: 25%;
  background: radial-gradient(circle at 50% 30%, #5a3a2a, #2a1a12);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: mg1-figure 4s ease-in-out infinite;
}
.scn-marguerite-confession .priest {
  position: absolute; bottom: 22%; left: 20%; width: 16%; height: 32%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mg1-bow 9s ease-in-out infinite alternate;
}
.scn-marguerite-confession .suzanne {
  position: absolute; bottom: 20%; right: 18%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(10deg);
  animation: mg1-suzanne 5s ease-in-out infinite;
}
.scn-marguerite-confession .candle-glow {
  position: absolute; bottom: 50%; left: 25%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffaa40 0%, #a06020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,150,30,0.3);
  animation: mg1-glow 3s ease-in-out infinite alternate;
}
@keyframes mg1-wall {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; }
}
@keyframes mg1-firep {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); }
}
@keyframes mg1-bed {
  0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); }
}
@keyframes mg1-figure {
  0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(3deg) translateX(5px); } 50% { transform: rotate(-2deg) translateX(-3px); } 75% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); }
}
@keyframes mg1-bow {
  0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(8deg) scaleY(1.02); } 100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes mg1-suzanne {
  0% { transform: rotate(10deg) scaleX(1); } 50% { transform: rotate(12deg) scaleX(1.02); } 100% { transform: rotate(8deg) scaleX(0.98); }
}
@keyframes mg1-glow {
  0% { opacity: 0.7; box-shadow: 0 0 40px 20px rgba(255,150,30,0.2); } 50% { opacity: 1; box-shadow: 0 0 80px 40px rgba(255,200,60,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 50px 25px rgba(255,150,30,0.25); }
}

.scn-marguerite-childhood-love {
  background:
    radial-gradient(ellipse at 70% 90%, #4a2010 0%, transparent 60%),
    linear-gradient(170deg, #1a0f0a 0%, #2b1c14 40%, #3d261a 100%);
}
.scn-marguerite-childhood-love .interior-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #1a0f0a 0%, #2a1a12 60%, transparent);
  animation: mg2-wall 15s ease-in-out infinite alternate;
}
.scn-marguerite-childhood-love .hearth {
  position: absolute; bottom: 8%; left: 5%; width: 25%; height: 55%;
  background: linear-gradient(180deg, #3a2010 0%, #1a0f0a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -30px 60px rgba(200,80,20,0.3);
}
.scn-marguerite-childhood-love .girl {
  position: absolute; bottom: 25%; left: 30%; width: 20%; height: 40%;
  background: radial-gradient(circle at 50% 30%, #5a3a2a, #2a1a12);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mg2-girl 6s ease-in-out infinite;
}
.scn-marguerite-childhood-love .henry-silhouette {
  position: absolute; bottom: 20%; right: 15%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: mg2-henry 8s ease-in-out infinite;
}
.scn-marguerite-childhood-love .shadow {
  position: absolute; bottom: 0%; left: 25%; width: 50%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: mg2-shadow 10s ease-in-out infinite alternate;
}
.scn-marguerite-childhood-love .firelight {
  position: absolute; bottom: 30%; left: 10%; width: 15%; height: 15%;
  background: radial-gradient(circle, #ffaa40 0%, #b06020 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mg2-flicker 2s ease-in-out infinite alternate;
}
@keyframes mg2-wall {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes mg2-girl {
  0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(2deg) translateX(4px); } 50% { transform: rotate(-1deg) translateX(-2px); } 75% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); }
}
@keyframes mg2-henry {
  0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.02); } 100% { transform: rotate(-3deg) scaleY(0.98); }
}
@keyframes mg2-shadow {
  0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(0.95); }
}
@keyframes mg2-flicker {
  0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.7; transform: scale(0.9); }
}

.scn-marguerite-jealousy {
  background:
    radial-gradient(ellipse at 20% 85%, #5a2a10 0%, transparent 50%),
    radial-gradient(ellipse at 80% 90%, #7a3a1a 0%, transparent 50%),
    linear-gradient(170deg, #1a0f0a 0%, #2b1c14 40%, #3d261a 100%);
}
.scn-marguerite-jealousy .kitchen-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(0deg, #1a0f0a 0%, transparent 40%);
  animation: mg3-wall 18s ease-in-out infinite alternate;
}
.scn-marguerite-jealousy .oven {
  position: absolute; bottom: 10%; left: 5%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #3a2010 0%, #1a0f0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -20px 40px rgba(200,80,20,0.3);
  animation: mg3-oven 7s ease-in-out infinite;
}
.scn-marguerite-jealousy .table {
  position: absolute; bottom: 15%; left: 35%; width: 50%; height: 25%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a12 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: mg3-table 9s ease-in-out infinite alternate;
}
.scn-marguerite-jealousy .cook {
  position: absolute; bottom: 28%; left: 40%; width: 16%; height: 30%;
  background: radial-gradient(circle at 50% 30%, #5a3a2a, #2a1a12);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: mg3-cook 5s ease-in-out infinite;
}
.scn-marguerite-jealousy .man-seated {
  position: absolute; bottom: 18%; right: 12%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mg3-man 10s ease-in-out infinite;
}
.scn-marguerite-jealousy .steam {
  position: absolute; bottom: 60%; left: 45%; width: 10%; height: 12%;
  background: radial-gradient(circle, rgba(200,180,160,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mg3-steam 4s ease-in-out infinite alternate;
}
.scn-marguerite-jealousy .flame-glow {
  position: absolute; bottom: 35%; left: 12%; width: 12%; height: 12%;
  background: radial-gradient(circle, #ffaa30 0%, #a05010 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(255,150,30,0.3);
  animation: mg3-glow 2.5s ease-in-out infinite alternate;
}
@keyframes mg3-wall {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes mg3-oven {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.015); } 100% { transform: scaleY(0.985); }
}
@keyframes mg3-table {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes mg3-cook {
  0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(2deg) translateX(3px); } 50% { transform: rotate(-1deg) translateX(-2px); } 75% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); }
}
@keyframes mg3-man {
  0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(4deg) scaleY(1.01); } 100% { transform: rotate(-2deg) scaleY(0.99); }
}
@keyframes mg3-steam {
  0% { transform: translateY(0) scaleX(1); opacity: 0.3; } 50% { transform: translateY(-10px) scaleX(1.2); opacity: 0.6; } 100% { transform: translateY(-20px) scaleX(0.8); opacity: 0.1; }
}
@keyframes mg3-glow {
  0% { opacity: 0.6; box-shadow: 0 0 30px 10px rgba(255,150,30,0.2); } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(255,200,50,0.4); } 100% { opacity: 0.7; box-shadow: 0 0 40px 15px rgba(255,150,30,0.25); }
}

.scn-marguerite-witness-kiss {
  background:
    radial-gradient(ellipse at 50% 100%, #1a2a4a 0%, transparent 60%),
    linear-gradient(180deg, #0b1628 0%, #15233d 50%, #1f3650 100%);
}
.scn-marguerite-witness-kiss .night-sky {
  position: absolute; inset: 0; 
  background: radial-gradient(circle at 70% 20%, transparent 60%, rgba(0,20,40,0.5) 90%);
  animation: mg4-sky 20s ease-in-out infinite alternate;
}
.scn-marguerite-witness-kiss .moon {
  position: absolute; top: 10%; right: 20%; width: 12%; height: 12%;
  background: radial-gradient(circle, #c8d8e8 0%, #a0b8d0 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(200,220,240,0.2);
  animation: mg4-moon 15s ease-in-out infinite alternate;
}
.scn-marguerite-witness-kiss .pine-tree {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 60%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: mg4-tree 8s ease-in-out infinite alternate;
}
.scn-marguerite-witness-kiss .pine-branches {
  position: absolute; bottom: 40%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 30% 50%, #1a3a1a 0%, transparent 60%);
  filter: blur(4px);
  animation: mg4-branches 12s ease-in-out infinite;
}
.scn-marguerite-witness-kiss .figure-left {
  position: absolute; bottom: 22%; left: 38%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mg4-figL 6s ease-in-out infinite;
}
.scn-marguerite-witness-kiss .figure-right {
  position: absolute; bottom: 22%; right: 38%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mg4-figR 6s ease-in-out infinite;
}
.scn-marguerite-witness-kiss .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a1a12 0%, #060d08 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-marguerite-witness-kiss .moonlight-ray {
  position: absolute; top: 15%; left: 60%; width: 30%; height: 50%;
  background: linear-gradient(135deg, rgba(200,220,240,0.05) 0%, transparent 100%);
  animation: mg4-ray 10s ease-in-out infinite alternate;
}
@keyframes mg4-sky {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes mg4-moon {
  0% { transform: translateX(0) scale(1); box-shadow: 0 0 40px 20px rgba(200,220,240,0.15); } 50% { transform: translateX(5px) scale(1.02); box-shadow: 0 0 60px 30px rgba(200,220,240,0.3); } 100% { transform: translateX(-3px) scale(0.98); box-shadow: 0 0 50px 25px rgba(200,220,240,0.2); }
}
@keyframes mg4-tree {
  0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); }
}
@keyframes mg4-branches {
  0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); }
}
@keyframes mg4-figL {
  0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-2deg) translateX(-3px); } 50% { transform: rotate(1deg) translateX(2px); } 75% { transform: rotate(-1deg) translateX(-1px); } 100% { transform: rotate(0deg) translateX(0); }
}
@keyframes mg4-figR {
  0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(2deg) translateX(3px); } 50% { transform: rotate(-1deg) translateX(-2px); } 75% { transform: rotate(1deg) translateX(1px); } 100% { transform: rotate(0deg) translateX(0); }
}
@keyframes mg4-ray {
  0% { opacity: 0.1; transform: translateX(-10px); } 50% { opacity: 0.3; transform: translateX(0); } 100% { opacity: 0.1; transform: translateX(10px); }
}

.scn-chateau-murol { background: linear-gradient(180deg, #2a1a3e 0%, #4a2a3a 30%, #7a5040 60%, #c08050 100%), radial-gradient(ellipse at 40% 100%, #c08050 0%, transparent 80%); }
.scn-chateau-murol .sky-dusk { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a0a2e 0%, #3a1a3a 30%, #7a5040 60%, #c08050 100%); opacity:.5; animation: cm-dusk 15s ease-in-out infinite; }
.scn-chateau-murol .hills-distant { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.6); animation: cm-hills 20s ease-in-out infinite; }
.scn-chateau-murol .peak { position:absolute; bottom:28%; left:50%; width:180px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.5); animation: cm-peak 8s ease-in-out infinite; }
.scn-chateau-murol .tower { position:absolute; bottom:28%; left:50%; width:60px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 40%, #2a1808 100%); border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: 2px 0 12px rgba(0,0,0,.6), inset 0 0 30px rgba(0,0,0,.4); animation: cm-tower 6s ease-in-out infinite; }
.scn-chateau-murol .tower-window { position:absolute; bottom:38%; left:50%; width:8px; height:14px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); animation: cm-glow 4s ease-in-out infinite alternate; }
.scn-chateau-murol .cloud-drift-a { position:absolute; top:15%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,180,120,.4) 0%, rgba(200,120,80,.1) 100%); border-radius:50%; filter: blur(8px); animation: cm-drift-a 40s linear infinite; }
.scn-chateau-murol .cloud-drift-b { position:absolute; top:25%; right:5%; width:70px; height:14px; background: linear-gradient(180deg, rgba(255,200,160,.3) 0%, rgba(200,140,100,.05) 100%); border-radius:50%; filter: blur(6px); animation: cm-drift-b 55s linear infinite reverse; }
.scn-chateau-murol .birds { position:absolute; top:20%; left:30%; width:30px; height:8px; background: #1a0a0a; border-radius:50% 50% 0 0 / 100% 100% 0 0; transform:rotate(-10deg); animation: cm-birds 12s ease-in-out infinite; }
@keyframes cm-dusk { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes cm-hills { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(0) } }
@keyframes cm-peak { 0%,100% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.01) translateY(-2px) } }
@keyframes cm-tower { 0%,100% { transform:translateX(-50%) } 50% { transform:translateX(-50%) translateY(-1px) } }
@keyframes cm-glow { 0% { box-shadow:0 0 15px 4px #b08040,0 0 30px 8px rgba(176,128,64,.3); opacity:.7 } 50% { box-shadow:0 0 30px 8px #ffd080,0 0 60px 16px rgba(255,208,128,.5); opacity:1 } 100% { box-shadow:0 0 20px 5px #c08040,0 0 40px 10px rgba(192,128,64,.35); opacity:.85 } }
@keyframes cm-drift-a { 0% { transform:translateX(-40px) } 100% { transform:translateX(120vw) } }
@keyframes cm-drift-b { 0% { transform:translateX(0) } 100% { transform:translateX(-120vw) } }
@keyframes cm-birds { 0% { transform:translate(0,0) rotate(-10deg) } 25% { transform:translate(15px,-8px) rotate(-5deg) } 50% { transform:translate(30px,-2px) rotate(5deg) } 75% { transform:translate(45px,-6px) rotate(-2deg) } 100% { transform:translate(60px,0) rotate(-10deg) } }

.scn-chateau-interior { background: linear-gradient(180deg, #1a0a1a 0%, #2a1a2a 30%, #3a2a2a 60%, #4a3a2a 100%), radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 70%); }
.scn-chateau-interior .stone-wall-l { position:absolute; inset:0 60% 0 0; background: linear-gradient(90deg, #2a1a1a 0%, #3a2a1a 30%, #4a3a2a 60%, #5a4a3a 100%); border-right:4px solid #1a0a0a; box-shadow:inset -8px 0 20px rgba(0,0,0,.6); animation: ci-wall-l 15s ease-in-out infinite; }
.scn-chateau-interior .stone-wall-r { position:absolute; inset:0 0 0 60%; background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 40%, #3a2a1a 70%, #2a1a1a 100%); border-left:4px solid #1a0a0a; box-shadow:inset 8px 0 20px rgba(0,0,0,.6); animation: ci-wall-r 15s ease-in-out infinite; }
.scn-chateau-interior .floor-path { position:absolute; bottom:0; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.5); animation: ci-floor 20s ease-in-out infinite; }
.scn-chateau-interior .gate-arch { position:absolute; bottom:28%; left:30%; right:30%; height:50%; background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 40%, #3a2a1a 100%); border-radius:50% 50% 0 0 / 60% 60% 0 0; border:3px solid #1a0a0a; box-shadow:inset 0 12px 30px rgba(0,0,0,.7); animation: ci-gate 10s ease-in-out infinite; }
.scn-chateau-interior .light-shaft { position:absolute; top:0; left:35%; right:35%; height:70%; background: linear-gradient(180deg, rgba(255,200,150,.2) 0%, rgba(255,180,120,.1) 40%, transparent 100%); clip-path:polygon(30% 0%, 70% 0%, 65% 100%, 35% 100%); animation: ci-shaft 8s ease-in-out infinite alternate; }
.scn-chateau-interior .dust-motes { position:absolute; top:10%; left:30%; width:6px; height:6px; background:radial-gradient(circle, rgba(255,220,180,.8) 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,220,180,.3); animation: ci-dust 18s ease-in-out infinite; }
.scn-chateau-interior .shadow-veil { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, transparent 0%, rgba(0,0,0,.4) 70%, rgba(0,0,0,.7) 100%); animation: ci-veil 12s ease-in-out infinite; }
@keyframes ci-wall-l { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes ci-wall-r { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes ci-floor { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes ci-gate { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.01) } 100% { transform:scaleY(1) } }
@keyframes ci-shaft { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes ci-dust { 0% { transform:translate(0,0) scale(1) } 25% { transform:translate(8px,-12px) scale(1.2) } 50% { transform:translate(16px,4px) scale(.9) } 75% { transform:translate(24px,-8px) scale(1.1) } 100% { transform:translate(32px,0) scale(1) } }
@keyframes ci-veil { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-old-woman-weeping { background: linear-gradient(180deg, #0a0a1a 0%, #1a0a1a 30%, #2a1a2a 60%, #3a2a2a 100%), radial-gradient(ellipse at 50% 0%, #3a2a3a 0%, transparent 80%); }
.scn-old-woman-weeping .ruin-wall { position:absolute; bottom:20%; left:10%; right:20%; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 20% 20% 10% 10% / 40% 40% 5% 5%; box-shadow:inset 0 8px 24px rgba(0,0,0,.8), 0 4px 12px rgba(0,0,0,.5); clip-path:polygon(0% 0%, 85% 0%, 75% 100%, 0% 100%); animation: ow-ruin 20s ease-in-out infinite; }
.scn-old-woman-weeping .woman-silhouette { position:absolute; bottom:22%; left:25%; width:40px; height:90px; background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 60%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform:translateX(-50%); box-shadow:0 0 20px rgba(0,0,0,.6); animation: ow-figure 14s ease-in-out infinite; }
.scn-old-woman-weeping .woman-head { position:absolute; bottom:70%; left:25%; width:28px; height:32px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:inset 0 -4px 8px rgba(0,0,0,.4); animation: ow-head 12s ease-in-out infinite; }
.scn-old-woman-weeping .weeping-hands { position:absolute; bottom:50%; left:25%; width:20px; height:16px; transform:translateX(-50%); background: #0a0a0a; border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%; box-shadow:0 0 6px rgba(0,0,0,.5); animation: ow-hands 6s ease-in-out infinite; }
.scn-old-woman-weeping .tear-glow { position:absolute; bottom:42%; left:25%; width:4px; height:6px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,200,255,.8) 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(200,200,255,.4); animation: ow-tears 4s ease-in-out infinite; }
.scn-old-woman-weeping .moon-shaft { position:absolute; top:0; left:20%; right:60%; height:60%; background: linear-gradient(180deg, rgba(200,200,255,.15) 0%, rgba(200,200,255,.05) 50%, transparent 100%); clip-path:polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); animation: ow-moon 10s ease-in-out infinite alternate; }
.scn-old-woman-weeping .ivy-cling { position:absolute; bottom:25%; left:12%; width:30px; height:50px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 0 60% 0 40% / 0 100% 0 80%; transform:rotate(10deg); box-shadow:inset 0 0 10px rgba(0,0,0,.3); animation: ow-ivy 25s ease-in-out infinite; }
.scn-old-woman-weeping .shadow-overlay { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 60%, transparent 0%, rgba(0,0,0,.5) 70%, rgba(0,0,0,.8) 100%); animation: ow-shadow 15s ease-in-out infinite; }
@keyframes ow-ruin { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.01) } }
@keyframes ow-figure { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.01) translateY(-2px) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes ow-head { 0% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(-3deg) } 100% { transform:translateX(-50%) rotate(0deg) } }
@keyframes ow-hands { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.05) translateY(-2px) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes ow-tears { 0% { opacity:.3; transform:translateX(-50%) translateY(0) } 50% { opacity:.8; transform:translateX(-50%) translateY(8px) } 100% { opacity:.3; transform:translateX(-50%) translateY(16px) } }
@keyframes ow-moon { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes ow-ivy { 0% { transform:rotate(10deg) scale(1) } 50% { transform:rotate(8deg) scale(1.01) } 100% { transform:rotate(10deg) scale(1) } }
@keyframes ow-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-old-woman-story { background: linear-gradient(180deg, #0a0a1a 0%, #1a0a1a 40%, #2a1a2a 80%, #1a0a1a 100%), radial-gradient(ellipse at 50% 40%, #2a1a2a 0%, transparent 70%); }
.scn-old-woman-story .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a0a1a 50%, #2a1a2a 100%); animation: os-dark 18s ease-in-out infinite; }
.scn-old-woman-story .woman-seated { position:absolute; bottom:10%; left:50%; width:70px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 60%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow:0 0 30px rgba(0,0,0,.7); animation: os-seated 16s ease-in-out infinite; }
.scn-old-woman-story .woman-shoulders { position:absolute; bottom:55%; left:50%; width:50px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; animation: os-shoulders 12s ease-in-out infinite; }
.scn-old-woman-story .lap-hands { position:absolute; bottom:28%; left:50%; width:24px; height:14px; transform:translateX(-50%); background: #0a0000; border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%; box-shadow:0 0 8px rgba(0,0,0,.6); animation: os-lap 8s ease-in-out infinite; }
.scn-old-woman-story .falling-tears { position:absolute; bottom:40%; left:46%; width:4px; height:8px; background: radial-gradient(circle, rgba(180,180,255,.7) 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 10px 3px rgba(180,180,255,.3); animation: os-tears 5s ease-in-out infinite; }
.scn-old-woman-story .soft-aura { position:absolute; bottom:0; left:30%; right:30%; height:80%; background: radial-gradient(ellipse at 50% 60%, rgba(100,80,120,.15) 0%, transparent 70%); animation: os-aura 14s ease-in-out infinite alternate; }
.scn-old-woman-story .shadow-pool { position:absolute; bottom:0; left:25%; right:25%; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.8) 0%, transparent 70%); animation: os-pool 20s ease-in-out infinite; }
.scn-old-woman-story .drift-mist { position:absolute; top:10%; left:5%; width:120px; height:30px; background: linear-gradient(180deg, rgba(100,80,120,.15) 0%, transparent 100%); border-radius:50%; filter: blur(12px); animation: os-mist 30s ease-in-out infinite; }
@keyframes os-dark { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes os-seated { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.01) translateY(-2px) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes os-shoulders { 0% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(-2deg) translateY(-1px) } 100% { transform:translateX(-50%) rotate(0deg) } }
@keyframes os-lap { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.03) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes os-tears { 0% { opacity:.2; transform:translate(0,0) } 25% { opacity:.7; transform:translate(-2px,10px) } 50% { opacity:.9; transform:translate(1px,20px) } 75% { opacity:.5; transform:translate(-1px,30px) } 100% { opacity:.2; transform:translate(0,40px) } }
@keyframes os-aura { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes os-pool { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.05) } 100% { transform:scaleY(1) } }
@keyframes os-mist { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(40px) scale(1.1) } 100% { transform:translateX(0) scale(1) } }

/* Scene: item-dark-lantern */
.scn-item-dark-lantern { background: linear-gradient(180deg, #0a0a1a 0%, #1a1030 40%, #2a1a3e 100%), radial-gradient(ellipse at 30% 80%, #2a2a4e 0%, transparent 70%); }

.scn-item-dark-lantern .sky { position:absolute; inset:0 0 70% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1030 60%, #2a1a3e 100%); animation: dl-sky 8s ease-in-out infinite alternate; }
.scn-item-dark-lantern .ground { position:absolute; bottom:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 70% 0 0 / 90% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-item-dark-lantern .gravestone-a { position:absolute; bottom:40%; left:22%; width:24px; height:40px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 30% 30% 5% 5% / 50% 50% 5% 5%; transform: rotate(-4deg); box-shadow: 2px 0 6px rgba(0,0,0,.5); }
.scn-item-dark-lantern .gravestone-b { position:absolute; bottom:38%; left:32%; width:20px; height:36px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 30% 30% 5% 5% / 50% 50% 5% 5%; transform: rotate(2deg); box-shadow: 2px 0 6px rgba(0,0,0,.5); }
.scn-item-dark-lantern .coffin { position:absolute; bottom:30%; left:50%; width:80px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%; transform: translateX(-50%) rotate(-2deg); box-shadow: 0 4px 10px rgba(0,0,0,.7); animation: dl-coffin 6s ease-in-out infinite; }
.scn-item-dark-lantern .figure { position:absolute; bottom:32%; left:44%; 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 center; animation: dl-figure 4s ease-in-out infinite; }
.scn-item-dark-lantern .lantern { position:absolute; bottom:40%; left:46%; width:8px; height:10px; background: radial-gradient(circle, #ffd680 0%, #b08040 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.4); animation: dl-lantern 3s ease-in-out infinite; }

@keyframes dl-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes dl-coffin { 0% { transform: translateX(-50%) rotate(-2deg) translateY(0); } 50% { transform: translateX(-50%) rotate(-2deg) translateY(-4px); } 100% { transform: translateX(-50%) rotate(-2deg) translateY(0); } }
@keyframes dl-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(10px) translateY(-2px) rotate(1deg); } 60% { transform: translateX(20px) translateY(0) rotate(-1deg); } 100% { transform: translateX(30px) translateY(-1px) rotate(0); } }
@keyframes dl-lantern { 0% { box-shadow: 0 0 15px 4px #c08040; transform: rotate(-5deg); } 50% { box-shadow: 0 0 30px 10px #ffd060; transform: rotate(3deg); } 100% { box-shadow: 0 0 18px 5px #c08040; transform: rotate(-2deg); } }

/* Scene: arrest-of-lawyer */
.scn-arrest-of-lawyer { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 70%); }

.scn-arrest-of-lawyer .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 60%, #2a2a4a 100%); animation: al-sky 10s ease-in-out infinite alternate; }
.scn-arrest-of-lawyer .building-left { position:absolute; bottom:40%; left:0; width:30%; height:60%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0 10% 0 0; box-shadow: inset -6px 0 12px rgba(0,0,0,.5); }
.scn-arrest-of-lawyer .building-right { position:absolute; bottom:40%; right:0; width:35%; height:65%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 0 0 0; box-shadow: inset 6px 0 12px rgba(0,0,0,.5); }
.scn-arrest-of-lawyer .street { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.7); }
.scn-arrest-of-lawyer .lamp { position:absolute; bottom:45%; left:50%; width:6px; height:16px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 0 0 10% 10% / 0 0 40% 40%; transform: translateX(-50%); }
.scn-arrest-of-lawyer .lamp::after { content:''; position:absolute; bottom:-6px; left:50%; width:10px; height:6px; background: radial-gradient(circle, #e0c060 0%, #806020 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #b09040; transform: translateX(-50%); animation: al-lampglow 4s ease-in-out infinite alternate; }
.scn-arrest-of-lawyer .figure-victim { position:absolute; bottom:30%; left:40%; width:16px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: al-victim 3s ease-in-out infinite; }
.scn-arrest-of-lawyer .figure-attacker { position:absolute; bottom:30%; left:50%; width:18px; height:34px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: al-attacker 2.5s ease-in-out infinite; }

@keyframes al-sky { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.5; } }
@keyframes al-lampglow { 0% { box-shadow: 0 0 12px 2px #b09040; } 50% { box-shadow: 0 0 24px 6px #e0c060; } 100% { box-shadow: 0 0 14px 3px #b09040; } }
@keyframes al-victim { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-6px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(6px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes al-attacker { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(8px) scale(1.1); } 50% { transform: translateX(-4px) scale(0.95); } 75% { transform: translateX(4px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }

/* Scene: court-outrage */
.scn-court-outrage { background: linear-gradient(135deg, #c8a86e 0%, #a8884e 50%, #7a6a3a 100%), radial-gradient(ellipse at 80% 20%, #f0d8a0 0%, transparent 70%); }

.scn-court-outrage .wall-back { position:absolute; inset:0; background: linear-gradient(180deg, #d8b888 0%, #b09060 100%); }
.scn-court-outrage .window { position:absolute; top:10%; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #b0a080 0%, #a09070 100%); border: 6px solid #5a4a2a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.3); animation: co-window 12s ease-in-out infinite alternate; }
.scn-court-outrage .bench { position:absolute; bottom:50%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-court-outrage .judge { position:absolute; bottom:52%; left:42%; width:20px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: co-judge 6s ease-in-out infinite; }
.scn-court-outrage .prosecutor { position:absolute; bottom:55%; left:20%; width:16px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: co-prosecutor 4s ease-in-out infinite; }
.scn-court-outrage .defendant { position:absolute; bottom:48%; left:60%; width:18px; height:32px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: co-defendant 5s ease-in-out infinite; }
.scn-court-outrage .crowd { position:absolute; bottom:10%; left:5%; right:5%; height:35%; background: repeating-linear-gradient(90deg, #3a2a1a 0%, #3a2a1a 6px, transparent 6px, transparent 12px); border-radius: 20% 20% 0 0; animation: co-crowd 3s ease-in-out infinite; }

@keyframes co-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes co-judge { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes co-prosecutor { 0% { transform: translateX(0) scale(1); } 33% { transform: translateX(10px) scale(1.05); } 66% { transform: translateX(-5px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }
@keyframes co-defendant { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-4px) scale(0.9); } 50% { transform: translateY(0) scale(1); } 75% { transform: translateY(-2px) scale(0.95); } 100% { transform: translateY(0) scale(1); } }
@keyframes co-crowd { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.5; } }

/* Scene: lawyer-rises-to-speak */
.scn-lawyer-rises-to-speak { background: linear-gradient(135deg, #d0b890 0%, #b09070 50%, #907050 100%), radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 60%); }

.scn-lawyer-rises-to-speak .wall-back { position:absolute; inset:0; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); }
.scn-lawyer-rises-to-speak .light-beam { position:absolute; top:0; left:30%; width:40%; height:80%; background: linear-gradient(180deg, rgba(240,220,180,0.4) 0%, rgba(240,220,180,0) 100%); transform: skewX(-10deg); animation: lr-beam 8s ease-in-out infinite alternate; }
.scn-lawyer-rises-to-speak .bench { position:absolute; bottom:50%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-lawyer-rises-to-speak .lawyer { position:absolute; bottom:52%; left:50%; width:20px; height:34px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); transform-origin: bottom center; animation: lr-lawyer 5s ease-in-out infinite; }
.scn-lawyer-rises-to-speak .desk { position:absolute; bottom:45%; left:45%; width:10%; height:5%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; }
.scn-lawyer-rises-to-speak .audience { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: repeating-linear-gradient(90deg, #3a2a1a 0%, #3a2a1a 8px, transparent 8px, transparent 14px); border-radius: 30% 30% 0 0; animation: lr-audience 4s ease-in-out infinite; }
.scn-lawyer-rises-to-speak .shadow-floor { position:absolute; bottom:0; left:10%; right:10%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); border-radius: 50% 50% 0 0; animation: lr-shadow 5s ease-in-out infinite; }

@keyframes lr-beam { 0% { opacity:.3; transform: skewX(-10deg) translateX(-10px); } 50% { opacity:.8; transform: skewX(-5deg) translateX(5px); } 100% { opacity:.4; transform: skewX(-10deg) translateX(0); } }
@keyframes lr-lawyer { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-50%) translateY(-8px) rotate(2deg); } 60% { transform: translateX(-50%) translateY(-4px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes lr-audience { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.5; } }
@keyframes lr-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.9); } }

/* sun‑setting‑monte‑cinto */
.scn-sun-setting-monte-cinto {
  background: linear-gradient(180deg, #f5a623 0%, #d46a1a 40%, #7a3a1a 75%, #2a1a0a 100%),
              radial-gradient(ellipse at 70% 50%, #ffd280 0%, transparent 50%);
}
.scn-sun-setting-monte-cinto .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffb347 0%, #c85a1a 60%, transparent 100%); animation: ssmc-sky 12s ease-in-out infinite alternate; }
.scn-sun-setting-monte-cinto .sun { position:absolute; bottom:52%; left:70%; width:40px; height:40px; margin-left:-20px; background: radial-gradient(circle, #ffcc66 0%, #ff8c00 80%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,140,0,.6); animation: ssmc-sun 20s linear infinite; }
.scn-sun-setting-monte-cinto .mountain { position:absolute; bottom:30%; left:0; right:0; height:45%; background: linear-gradient(170deg, #3a2a1a 0%, #1a100a 100%); clip-path: polygon(0% 100%, 10% 60%, 30% 80%, 50% 20%, 70% 50%, 90% 30%, 100% 100%); animation: ssmc-mountain 15s ease-in-out infinite; }
.scn-sun-setting-monte-cinto .shadow { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(20,10,5,.6) 0%, transparent 100%); animation: ssmc-shadow 18s ease-in-out infinite alternate; }
.scn-sun-setting-monte-cinto .valley { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-sun-setting-monte-cinto .village { position:absolute; bottom:8%; left:20%; display:flex; gap:12px; }
.scn-sun-setting-monte-cinto .village::before { content:''; width:20px; height:25px; background: #5a3a1a; border-radius:4px; box-shadow: 0 0 8px 2px rgba(200,120,40,.3); animation: ssmc-glint 4s ease-in-out infinite; }
.scn-sun-setting-monte-cinto .village::after { content:''; width:16px; height:20px; background: #4a2a0a; border-radius:3px; }
.scn-sun-setting-monte-cinto .figure-a { position:absolute; bottom:15%; left:55%; width:16px; height:32px; background: linear-gradient(180deg, #1a100a 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssmc-walk-a 5s ease-in-out infinite; }
.scn-sun-setting-monte-cinto .figure-b { position:absolute; bottom:15%; left:62%; width:14px; height:30px; background: linear-gradient(180deg, #1a100a 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssmc-walk-b 5.5s ease-in-out infinite 1s; }
@keyframes ssmc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ssmc-sun { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(8px) scale(.95) } 100% { transform: translateY(0) scale(1) } }
@keyframes ssmc-mountain { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes ssmc-shadow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes ssmc-glint { 0%,100% { opacity:.5; box-shadow: 0 0 6px 1px rgba(200,120,40,.2) } 50% { opacity:1; box-shadow: 0 0 12px 3px rgba(200,120,40,.5) } }
@keyframes ssmc-walk-a { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0deg) } }
@keyframes ssmc-walk-b { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(7px) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(14px) translateY(0) rotate(1deg) } 75% { transform: translateX(21px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(28px) translateY(0) rotate(0deg) } }

/* reflection‑on‑vendetta */
.scn-reflection-on-vendetta {
  background: linear-gradient(180deg, #2a1a3a 0%, #4a3050 30%, #6a4a5a 60%, #3a2a3a 100%),
              radial-gradient(ellipse at 50% 30%, #9a6a7a 0%, transparent 60%);
}
.scn-reflection-on-vendetta .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a3a5a 0%, #3a1a3a 100%); animation: rov-sky 14s ease-in-out infinite alternate; }
.scn-reflection-on-vendetta .distant-hills { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a2a3a 0%, #2a1a2a 100%); border-radius:40% 60% 0 0 / 60% 40% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); animation: rov-hills 12s ease-in-out infinite; }
.scn-reflection-on-vendetta .bandit-silhouette { position:absolute; bottom:38%; left:65%; width:20px; height:40px; background: #1a0a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rov-bandit 8s ease-in-out infinite; }
.scn-reflection-on-vendetta .figure-seated { position:absolute; bottom:12%; left:35%; width:24px; height:36px; background: linear-gradient(180deg, #3a2020 0%, #1a1010 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rov-seated 6s ease-in-out infinite; }
.scn-reflection-on-vendetta .rock { position:absolute; bottom:10%; left:30%; width:40px; height:20px; background: linear-gradient(180deg, #5a3a3a 0%, #3a2020 100%); border-radius:30% 30% 40% 40% / 50% 50% 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-reflection-on-vendetta .foreground { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 60% 0 0 / 100% 100% 0 0; }
.scn-reflection-on-vendetta .glow { position:absolute; bottom:30%; left:45%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,150,200,.3) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: rov-glow 10s ease-in-out infinite alternate; }
@keyframes rov-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes rov-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rov-bandit { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } }
@keyframes rov-seated { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(3deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(2deg) } }
@keyframes rov-glow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(.95) } }

/* cemetery‑watchman‑awakened */
.scn-cemetery-watchman-awakened {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 40%, #1a1a3a 70%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 80%, #1a2a3a 0%, transparent 60%);
}
.scn-cemetery-watchman-awakened .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); animation: cwa-sky 20s ease-in-out infinite alternate; }
.scn-cemetery-watchman-awakened .moon { position:absolute; top:10%; left:75%; width:30px; height:30px; background: radial-gradient(circle, #d0d0e0 0%, #a0a0c0 80%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(160,160,200,.4); animation: cwa-moon 12s linear infinite; }
.scn-cemetery-watchman-awakened .graves { position:absolute; bottom:20%; left:0; right:0; height:40%; display:flex; flex-direction:column; gap:6px; padding:0 10%; }
.scn-cemetery-watchman-awakened .graves::before { content:''; width:20px; height:30px; background: #2a2a3a; border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%; align-self:flex-end; animation: cwa-grave 8s ease-in-out infinite; }
.scn-cemetery-watchman-awakened .graves::after { content:''; width:24px; height:28px; background: #2a2a3a; border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%; animation: cwa-grave 8s ease-in-out infinite 2s; }
.scn-cemetery-watchman-awakened .cottage { position:absolute; bottom:25%; left:15%; width:60px; height:45px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-cemetery-watchman-awakened .window-glow { position:absolute; bottom:32%; left:20%; width:14px; height:18px; background: radial-gradient(circle, #f0d080 0%, #b08030 70%); border-radius:10%; box-shadow: 0 0 20px 5px #c08030, 0 0 40px 10px rgba(192,128,48,.3); animation: cwa-glow 2s ease-in-out infinite alternate; }
.scn-cemetery-watchman-awakened .dog-barking { position:absolute; bottom:12%; left:50%; width:20px; height:28px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cwa-dog .8s ease-in-out infinite; }
.scn-cemetery-watchman-awakened .watchman { position:absolute; bottom:22%; left:25%; width:16px; height:34px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cwa-watchman 4s ease-in-out infinite; }
.scn-cemetery-watchman-awakened .tree { position:absolute; bottom:15%; right:15%; width:10px; height:60px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:20%; transform-origin: bottom center; animation: cwa-tree 7s ease-in-out infinite; }
.scn-cemetery-watchman-awakened .tree::before { content:''; position:absolute; top:-20px; left:-15px; width:40px; height:25px; background: #1a1a2a; border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; filter: blur(2px); }
@keyframes cwa-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cwa-moon { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cwa-grave { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cwa-glow { 0% { box-shadow: 0 0 15px 3px #c08030, 0 0 30px 6px rgba(192,128,48,.2); opacity:.8 } 50% { box-shadow: 0 0 25px 8px #e0a040, 0 0 50px 15px rgba(224,160,64,.5); opacity:1 } 100% { box-shadow: 0 0 18px 4px #c08030, 0 0 35px 8px rgba(192,128,48,.3); opacity:.85 } }
@keyframes cwa-dog { 0%,100% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-3px) rotate(5deg) } 50% { transform: translateY(-1px) rotate(-8deg) } 75% { transform: translateY(-2px) rotate(6deg) } }
@keyframes cwa-watchman { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-1px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } }
@keyframes cwa-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }

/* keeper‑takes‑gun */
.scn-keeper-takes-gun {
  background: linear-gradient(180deg, #0a0a12 0%, #15152a 40%, #0f0f20 70%, #0a0a12 100%),
              radial-gradient(ellipse at 30% 50%, #1a1a2a 0%, transparent 60%);
}
.scn-keeper-takes-gun .dark-sky { position:absolute; inset:0 0 65% 0; background: linear-gradient(180deg, #12122a 0%, #0a0a12 100%); animation: ktg-sky 18s ease-in-out infinite alternate; }
.scn-keeper-takes-gun .avenue { position:absolute; bottom:20%; left:0; right:0; height:45%; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 30%, #1a1a2a 70%); clip-path: polygon(0% 100%, 5% 0%, 95% 0%, 100% 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: ktg-avenue 10s ease-in-out infinite; }
.scn-keeper-takes-gun .monument { position:absolute; bottom:30%; left:70%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); clip-path: polygon(20% 100%, 10% 20%, 50% 0%, 90% 20%, 80% 100%); box-shadow: 0 0 15px rgba(0,0,0,.6); animation: ktg-monument 20s linear infinite; }
.scn-keeper-takes-gun .keeper { position:absolute; bottom:12%; left:30%; width:22px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ktg-keeper 5s ease-in-out infinite; }
.scn-keeper-takes-gun .dog-ahead { position:absolute; bottom:15%; left:50%; width:18px; height:26px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ktg-dog 4s ease-in-out infinite; }
.scn-keeper-takes-gun .gun { position:absolute; bottom:18%; left:36%; width:18px; height:6px; background: linear-gradient(90deg, #2a2a3a 0%, #4a4a5a 100%); border-radius: 0 20% 20% 0 / 0 50% 50% 0; transform: rotate(-20deg); transform-origin: 0% 50%; animation: ktg-gun 3s ease-in-out infinite; }
.scn-keeper-takes-gun .moonlight { position:absolute; top:8%; left:65%; width:50px; height:50px; background: radial-gradient(circle, rgba(180,180,220,.15) 0%, transparent 70%); border-radius:50%; filter: blur(12px); animation: ktg-light 15s ease-in-out infinite alternate; }
@keyframes ktg-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ktg-avenue { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes ktg-monument { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.03) } 100% { opacity:.5; transform: scale(1) } }
@keyframes ktg-keeper { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(20px) translateY(0) rotate(0deg) } }
@keyframes ktg-dog { 0% { transform: translateX(0) translateY(0) rotate(3deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(-2deg) } 50% { transform: translateX(8px) translateY(0) rotate(4deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(-3deg) } 100% { transform: translateX(16px) translateY(0) rotate(0deg) } }
@keyframes ktg-gun { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-20deg) } }
@keyframes ktg-light { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.5; transform: scale(1.2) } 100% { opacity:.3; transform: scale(.9) } }

/* letter-discovery */
.scn-letter-discovery {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1626 40%, #2a1f2a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, transparent 70%);
}
.scn-letter-discovery .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0a12 0%, #12121e 50%, #1a1622 100%);
  animation: ld-deep 12s ease-in-out infinite alternate;
}
.scn-letter-discovery .wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1e1a2a 0%, #2a2230 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-letter-discovery .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #3a2e24 0%, #2a1e16 100%);
  border-radius: 4% 4% 0 0;
}
.scn-letter-discovery .letter {
  position: absolute; bottom: 22%; left: 35%; width: 14%; height: 18%;
  background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a8 50%, #c0b090 100%);
  border-radius: 2px; transform: rotate(-8deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,.5);
  animation: ld-letter 4s ease-in-out infinite alternate;
}
.scn-letter-discovery .hand {
  position: absolute; bottom: 24%; left: 30%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #2a2a38 0%, #1a1a26 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ld-hand 2.5s ease-in-out infinite alternate;
}
.scn-letter-discovery .candle {
  position: absolute; bottom: 16%; left: 58%; width: 3%; height: 15%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8b080 40%, #8a6a40 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 2px rgba(200,160,80,.3);
  animation: ld-candle 3s ease-in-out infinite;
}
.scn-letter-discovery .glow {
  position: absolute; bottom: 22%; left: 56%; width: 12%; height: 20%;
  background: radial-gradient(circle, rgba(240,200,120,.35) 0%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: ld-glow 2.5s ease-in-out infinite alternate;
}

@keyframes ld-deep { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ld-letter { 0% { transform: rotate(-8deg) translate(0,0) } 50% { transform: rotate(-5deg) translate(2px,-2px) } 100% { transform: rotate(-8deg) translate(0,0) } }
@keyframes ld-hand { 0% { transform: rotate(5deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(5deg) } }
@keyframes ld-candle { 0%,100% { opacity: .9; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.02) } }
@keyframes ld-glow { 0% { opacity: .6; transform: scale(1) } 50% { opacity: .9; transform: scale(1.1) } 100% { opacity: .7; transform: scale(1.05) } }

/* judge-reaction */
.scn-judge-reaction {
  background: linear-gradient(180deg, #1a1a2a 0%, #12121e 50%, #0a0a12 100%),
              radial-gradient(ellipse at 70% 50%, #2a2a3e 0%, transparent 60%);
}
.scn-judge-reaction .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0a14 0%, #161622 50%, #1a1a28 100%);
  animation: jr-room 10s ease-in-out infinite alternate;
}
.scn-judge-reaction .window-light {
  position: absolute; right: 10%; top: 10%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  box-shadow: -20px 0 40px rgba(60,80,100,.3);
  animation: jr-window 6s ease-in-out infinite alternate;
}
.scn-judge-reaction .judge {
  position: absolute; bottom: 15%; right: 30%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #1a1a26 0%, #0e0e18 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: jr-judge 4s ease-in-out infinite;
}
.scn-judge-reaction .nun {
  position: absolute; bottom: 15%; left: 20%; width: 9%; height: 35%;
  background: linear-gradient(180deg, #2a2a36 0%, #1a1a22 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: jr-nun 5s ease-in-out infinite alternate;
}
.scn-judge-reaction .dead-form {
  position: absolute; bottom: 5%; left: 40%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #2a2a32 0%, #1a1a22 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 30% 30%;
  transform: scale(0.95);
  animation: jr-dead 8s ease-in-out infinite;
}
.scn-judge-reaction .shadow-bar {
  position: absolute; bottom: 0; left: 12%; width: 8%; height: 100%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  transform: skewX(-10deg);
  animation: jr-shadow 7s ease-in-out infinite alternate;
}
.scn-judge-reaction .bar2 {
  left: 48%; width: 6%; animation-delay: -3s;
}

@keyframes jr-room { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes jr-window { 0% { opacity: .7; transform: scaleX(1) } 50% { opacity: .9; transform: scaleX(1.05) } 100% { opacity: .75; transform: scaleX(1) } }
@keyframes jr-judge { 0% { transform: rotate(0) translateX(0) } 30% { transform: rotate(-1deg) translateX(-2px) } 70% { transform: rotate(1deg) translateX(1px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes jr-nun { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes jr-dead { 0%,100% { opacity: .8 } 50% { opacity: .6 } }
@keyframes jr-shadow { 0% { opacity: .4; transform: skewX(-10deg) } 50% { opacity: .6; transform: skewX(-8deg) } 100% { opacity: .3; transform: skewX(-12deg) } }

/* judge-departure */
.scn-judge-departure {
  background: linear-gradient(180deg, #2a3a4a 0%, #3a4a5a 30%, #5a6a7a 60%, #8a9aaa 100%),
              radial-gradient(ellipse at 50% 30%, #4a5a6a 0%, transparent 70%);
}
.scn-judge-departure .bg-dawn {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 40%, #8a9aaa 100%);
  animation: jd-dawn 12s ease-in-out infinite;
}
.scn-judge-departure .window-frame {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(180deg, #9aabbb 0%, #7a8a9a 100%);
  clip-path: polygon(5% 0, 95% 0, 90% 100%, 10% 100%);
  opacity: .4; animation: jd-window 8s ease-in-out infinite alternate;
}
.scn-judge-departure .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 0 0;
}
.scn-judge-departure .candle-left {
  position: absolute; bottom: 28%; left: 35%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c8b080 40%, #d0c090 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px 2px rgba(200,160,80,.3);
  animation: jd-candle 5s ease-in-out infinite;
}
.scn-judge-departure .candle-right {
  position: absolute; bottom: 28%; right: 35%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #a09080 0%, #807060 40%, #605040 100%);
  border-radius: 30% 30% 10% 10%; opacity: .5;
  animation: jd-candle 5s ease-in-out infinite reverse;
}
.scn-judge-departure .son {
  position: absolute; bottom: 15%; left: 45%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #1a1a26 0%, #0e0e18 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: jd-son 6s ease-in-out infinite;
}
.scn-judge-departure .sister {
  position: absolute; bottom: 15%; right: 20%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #2a2a36 0%, #1a1a22 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: jd-sister 7s ease-in-out infinite alternate;
}

@keyframes jd-dawn { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes jd-window { 0% { opacity: .3; transform: scaleY(1) } 50% { opacity: .5; transform: scaleY(1.02) } 100% { opacity: .35; transform: scaleY(0.98) } }
@keyframes jd-candle { 0%,100% { transform: scaleY(1); opacity: .9 } 50% { transform: scaleY(1.03); opacity: 1 } }
@keyframes jd-son { 0% { transform: rotate(0) translateX(0) } 25% { transform: rotate(-1deg) translateX(-3px) } 75% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes jd-sister { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(0.98) } }

/* travel-coach */
.scn-travel-coach {
  background: linear-gradient(180deg, #0a1220 0%, #121c2a 40%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 70%, #2a3a4a 0%, transparent 60%);
}
.scn-travel-coach .coach-interior {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0e1826 0%, #16202e 50%, #1a2a38 100%);
  animation: tc-interior 15s ease-in-out infinite alternate;
}
.scn-travel-coach .window-moon {
  position: absolute; top: 15%; right: 8%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #3a5a7a 0%, #4a6a8a 100%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%);
  box-shadow: -10px 0 30px rgba(60,90,120,.3);
  animation: tc-window 10s ease-in-out infinite alternate;
}
.scn-travel-coach .seat {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e10 100%);
  border-radius: 5% 5% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.5);
}
.scn-travel-coach .woman {
  position: absolute; bottom: 20%; left: 55%; width: 9%; height: 25%;
  background: linear-gradient(180deg, #1a1a26 0%, #0e0e18 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tc-woman 6s ease-in-out infinite alternate;
}
.scn-travel-coach .lantern {
  position: absolute; top: 20%; left: 45%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #d0b080 0%, #b09070 100%);
  border-radius: 20%; box-shadow: 0 0 20px 4px rgba(200,160,80,.4);
  animation: tc-lantern 4s ease-in-out infinite;
}
.scn-travel-coach .lantern-glow {
  position: absolute; top: 16%; left: 42%; width: 14%; height: 20%;
  background: radial-gradient(circle, rgba(240,200,120,.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: tc-glow 3s ease-in-out infinite alternate;
}
.scn-travel-coach .curtain {
  position: absolute; top: 15%; right: 12%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  border-radius: 0 20% 20% 0;
  animation: tc-curtain 12s ease-in-out infinite alternate;
}

@keyframes tc-interior { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes tc-window { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.03) } 100% { opacity: .55; transform: scaleX(0.98) } }
@keyframes tc-woman { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes tc-lantern { 0%,100% { transform: translateY(0) rotate(-2deg); opacity: .85 } 50% { transform: translateY(-3px) rotate(2deg); opacity: 1 } }
@keyframes tc-glow { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .8; transform: scale(1.15) } 100% { opacity: .6; transform: scale(1.05) } }
@keyframes tc-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(3px) } }

/* polite-strangers */
.scn-polite-strangers { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #deb887 100%), radial-gradient(ellipse at 50% 100%, #deb887 0%, transparent 70%); }
.scn-polite-strangers .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #add8e6 0%, #87CEEB 40%, transparent 100%); animation: ps-sky 15s ease-in-out infinite alternate; }
.scn-polite-strangers .river { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #4682b4 0%, #2c6f9a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.3); }
.scn-polite-strangers .boat { position: absolute; bottom: 18%; left: 15%; width: 80px; height: 20px; background: linear-gradient(90deg, #8B4513 0%, #a0522d 50%, #6b3a1f 100%); border-radius: 0 0 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: ps-boat 20s ease-in-out infinite; }
.scn-polite-strangers .tree-a { position: absolute; bottom: 32%; left: 5%; width: 40px; height: 80px; background: linear-gradient(180deg, #228b22 0%, #006400 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 20px rgba(0,100,0,.3); animation: ps-tree 12s ease-in-out infinite alternate; }
.scn-polite-strangers .tree-b { position: absolute; bottom: 32%; right: 10%; width: 50px; height: 100px; background: linear-gradient(180deg, #2e8b57 0%, #1e6b3e 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px rgba(30,107,62,.3); animation: ps-tree 15s ease-in-out infinite alternate-reverse; }
.scn-polite-strangers .figure-mother { position: absolute; bottom: 26%; left: 35%; width: 30px; height: 50px; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ps-figure 6s ease-in-out infinite; }
.scn-polite-strangers .figure-daughter { position: absolute; bottom: 26%; left: 42%; width: 24px; height: 44px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ps-figure 7s ease-in-out infinite 0.5s; }
.scn-polite-strangers .figure-man1 { position: absolute; bottom: 24%; left: 52%; width: 28px; height: 48px; background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ps-figure 8s ease-in-out infinite 1s; }
.scn-polite-strangers .figure-man2 { position: absolute; bottom: 24%; left: 58%; width: 28px; height: 48px; background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ps-figure 8s ease-in-out infinite 1.5s; }
@keyframes ps-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes ps-boat { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(20px) translateY(-3px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ps-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ps-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }

/* boating-men-embarrass */
.scn-boating-men-embarrass { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #b8860b 100%), radial-gradient(ellipse at 50% 100%, #b8860b 0%, transparent 70%); }
.scn-boating-men-embarrass .bg { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87CEEB 40%, transparent 100%); animation: bme-sky 10s ease-in-out infinite alternate; }
.scn-boating-men-embarrass .riverbank { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); }
.scn-boating-men-embarrass .girl { position: absolute; bottom: 28%; left: 40%; width: 28px; height: 50px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: bme-girl 4s ease-in-out infinite; }
.scn-boating-men-embarrass .arm-left { position: absolute; bottom: 30%; left: 52%; width: 8px; height: 40px; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius: 40% 40% 20% 20%; transform-origin: top center; animation: bme-arm 3s ease-in-out infinite; }
.scn-boating-men-embarrass .arm-right { position: absolute; bottom: 30%; right: 12%; width: 8px; height: 40px; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius: 40% 40% 20% 20%; transform-origin: top center; animation: bme-arm 3.4s ease-in-out infinite 0.2s; }
.scn-boating-men-embarrass .cap { position: absolute; bottom: 52%; left: 55%; width: 22px; height: 12px; background: linear-gradient(90deg, #2c2c2c 0%, #4a4a4a 40%, #c8553d 50%, #2c2c2c 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: bme-cap 5s ease-in-out infinite; }
.scn-boating-men-embarrass .shadow { position: absolute; bottom: 0; left: 35%; width: 60%; height: 10%; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 100%); border-radius: 50%; animation: bme-shadow 7s ease-in-out infinite; }
@keyframes bme-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes bme-girl { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bme-arm { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.1); } 100% { transform: rotate(0) scaleY(1); } }
@keyframes bme-cap { 0% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0); } }
@keyframes bme-shadow { 0% { opacity: .2; } 50% { opacity: .4; } 100% { opacity: .2; } }

/* dufour-annoyed */
.scn-dufour-annoyed { background: linear-gradient(180deg, #f5deb3 0%, #deb887 50%, #d2b48c 100%), radial-gradient(ellipse at 50% 100%, #d2b48c 0%, transparent 70%); }
.scn-dufour-annoyed .bg-interior { position: absolute; inset: 0; background: linear-gradient(180deg, #ffe4b5 0%, #f0d9b5 100%); animation: da-bg 15s ease-in-out infinite alternate; }
.scn-dufour-annoyed .table { position: absolute; bottom: 20%; left: 20%; width: 60%; height: 12%; background: linear-gradient(180deg, #8B4513 0%, #a0522d 50%, #6b3a1f 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.4); }
.scn-dufour-annoyed .dufour { position: absolute; bottom: 24%; left: 25%; width: 30px; height: 50px; background: linear-gradient(180deg, #555555 0%, #333333 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da-figure 6s ease-in-out infinite; }
.scn-dufour-annoyed .madame { position: absolute; bottom: 24%; left: 35%; width: 35px; height: 48px; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: da-figure 6.5s ease-in-out infinite 0.3s; }
.scn-dufour-annoyed .daughter { position: absolute; bottom: 24%; left: 46%; width: 24px; height: 44px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: da-figure 7s ease-in-out infinite 0.7s; }
.scn-dufour-annoyed .yellow-hair { position: absolute; bottom: 24%; left: 58%; width: 28px; height: 48px; background: linear-gradient(180deg, #ffd700 0%, #daa520 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px rgba(255,215,0,.5); animation: da-figure 5.5s ease-in-out infinite 1s; }
.scn-dufour-annoyed .plate { position: absolute; bottom: 22%; left: 50%; width: 16px; height: 8px; background: radial-gradient(circle, #ffffff 0%, #ddd 100%); border-radius: 50%; animation: da-plate 4s ease-in-out infinite; }
.scn-dufour-annoyed .cutlery { position: absolute; bottom: 23%; left: 52%; width: 4px; height: 12px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); border-radius: 20%; animation: da-cutlery 3s ease-in-out infinite; }
@keyframes da-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes da-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes da-plate { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes da-cutlery { 0% { transform: rotate(0); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0); } }

/* boating-life */
.scn-boating-life { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #deb887 100%), radial-gradient(ellipse at 50% 100%, #deb887 0%, transparent 70%); }
.scn-boating-life .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #add8e6 0%, #87CEEB 40%, transparent 100%); animation: bl-sky 20s ease-in-out infinite alternate; }
.scn-boating-life .water { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #4682b4 0%, #2c6f9a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.3); animation: bl-water 8s ease-in-out infinite; }
.scn-boating-life .boat-fore { position: absolute; bottom: 22%; left: 10%; width: 100px; height: 25px; background: linear-gradient(90deg, #8B4513 0%, #a0522d 50%, #6b3a1f 100%); border-radius: 0 0 50% 50%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: bl-boat 25s ease-in-out infinite; }
.scn-boating-life .boatman { position: absolute; bottom: 28%; left: 15%; width: 30px; height: 55px; background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bl-boatman 6s ease-in-out infinite; }
.scn-boating-life .gesture { position: absolute; bottom: 35%; left: 20%; width: 20px; height: 30px; background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom left; animation: bl-gesture 4s ease-in-out infinite; }
.scn-boating-life .shore { position: absolute; bottom: 10%; left: 60%; width: 40%; height: 30%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 60% 40% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); }
.scn-boating-life .figure-listener1 { position: absolute; bottom: 18%; left: 65%; width: 28px; height: 50px; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bl-listener 8s ease-in-out infinite; }
.scn-boating-life .figure-listener2 { position: absolute; bottom: 18%; left: 72%; width: 28px; height: 50px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bl-listener 9s ease-in-out infinite 1s; }
@keyframes bl-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes bl-water { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes bl-boat { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(30px) translateY(-5px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes bl-boatman { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bl-gesture { 0% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(-20deg) scaleX(1.1); } 100% { transform: rotate(0) scaleX(1); } }
@keyframes bl-listener { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* --- scene: sisters-history (sad, firelit) --- */
.scn-sisters-history {
  background: 
    linear-gradient(180deg, #1a0f0a 0%, #2b1a12 40%, #3d2218 70%, #1f100a 100%),
    radial-gradient(ellipse at 30% 50%, #4a2a1a 0%, transparent 60%);
}
.scn-sisters-history .sh-bg { position:absolute; inset:0; background: linear-gradient(135deg, #261813 0%, #1a0f0a 100%); }
.scn-sisters-history .sh-fireplace { position:absolute; bottom:10%; left:20%; width:120px; height:140px; background: linear-gradient(90deg, #3a2518 0%, #4a3020 50%, #3a2518 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -20px 30px #1a0f0a; }
.scn-sisters-history .sh-flames { position:absolute; bottom:14%; left:32%; width:80px; height:100px; background: radial-gradient(ellipse 50% 100% at 50% 100%, #b86a3a 0%, #9a4a2a 40%, #6a2a1a 70%, transparent 100%); border-radius: 50% 50% 10% 10%; animation: sh-fire 0.6s ease-in-out infinite alternate; }
.scn-sisters-history .sh-ember-1 { position:absolute; bottom:22%; left:28%; width:6px; height:6px; background: #e09040; border-radius:50%; box-shadow: 0 0 10px 3px #c07030; animation: sh-drift-1 3s ease-in-out infinite; }
.scn-sisters-history .sh-ember-2 { position:absolute; bottom:25%; left:40%; width:4px; height:4px; background: #d08030; border-radius:50%; box-shadow: 0 0 8px 2px #b06020; animation: sh-drift-2 2.5s ease-in-out infinite 1s; }
.scn-sisters-history .sh-figure-suzanne { position:absolute; bottom:8%; left:12%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-bow 8s ease-in-out infinite; }
.scn-sisters-history .sh-figure-marguerite { position:absolute; bottom:6%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #3a2218 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh-bow 8s ease-in-out infinite 0.5s; }
.scn-sisters-history .sh-shadow { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, transparent 0%, #0d0705 100%); pointer-events: none; }
@keyframes sh-fire {
  0% { transform: scaleY(0.95) translateY(2px); opacity:0.8; }
  50% { transform: scaleY(1.05) translateY(-2px); opacity:1; }
  100% { transform: scaleY(0.98) translateY(0); opacity:0.85; }
}
@keyframes sh-drift-1 {
  0% { transform: translate(0,0) scale(1); opacity:0.9; }
  33% { transform: translate(10px,-15px) scale(0.9); opacity:0.6; }
  66% { transform: translate(5px,-30px) scale(0.7); opacity:0.3; }
  100% { transform: translate(8px,-45px) scale(0.5); opacity:0; }
}
@keyframes sh-drift-2 {
  0% { transform: translate(0,0) scale(1); opacity:0.8; }
  50% { transform: translate(-8px,-20px) scale(0.8); opacity:0.4; }
  100% { transform: translate(-12px,-40px) scale(0.5); opacity:0; }
}
@keyframes sh-bow {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}

/* --- scene: sisters-hist (warm, firelit) --- */
.scn-sisters-hist {
  background: 
    linear-gradient(180deg, #2a1a12 0%, #3d2618 40%, #4a3220 70%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 60%, #5a3a24 0%, transparent 70%);
}
.scn-sisters-hist .sh2-bg { position:absolute; inset:0; background: linear-gradient(135deg, #20130c 0%, #2a1a12 100%); }
.scn-sisters-hist .sh2-hearth { position:absolute; bottom:5%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #3a2218 0%, #2a1810 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px #1a0f0a; }
.scn-sisters-hist .sh2-flames { position:absolute; bottom:12%; left:35%; width:100px; height:120px; background: radial-gradient(ellipse 50% 100% at 50% 100%, #d08040 0%, #b06030 30%, #6a2a1a 70%, transparent 100%); border-radius: 50% 50% 10% 10%; animation: sh2-flame 0.5s ease-in-out infinite alternate; }
.scn-sisters-hist .sh2-embrace-a { position:absolute; bottom:8%; left:30%; width:50px; height:60px; background: linear-gradient(180deg, #3a2218 0%, #2a1810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh2-hold 6s ease-in-out infinite; }
.scn-sisters-hist .sh2-embrace-b { position:absolute; bottom:8%; left:42%; width:50px; height:60px; background: linear-gradient(180deg, #3a2218 0%, #2a1810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sh2-hold 6s ease-in-out infinite 0.3s; }
.scn-sisters-hist .sh2-rug { position:absolute; bottom:4%; left:20%; width:60%; height:8%; background: linear-gradient(90deg, #4a3220 0%, #5a3a28 30%, #4a3220 70%, #3a2218 100%); border-radius: 50% / 100% 100% 0 0; }
.scn-sisters-hist .sh2-candle { position:absolute; bottom:30%; left:12%; width:8px; height:20px; background: linear-gradient(180deg, #e8c080 0%, #b08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 15px 5px #e8c080; animation: sh2-candle 3s ease-in-out infinite alternate; }
.scn-sisters-hist .sh2-warm-haze { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 50% 80%, rgba(200,120,60,0.3) 0%, transparent 70%); pointer-events: none; animation: sh2-haze 7s ease-in-out infinite alternate; }
@keyframes sh2-flame {
  0% { transform: scaleY(0.9) translateY(2px); opacity:0.85; }
  50% { transform: scaleY(1.1) translateY(-2px); opacity:1; }
  100% { transform: scaleY(0.95) translateY(0); opacity:0.9; }
}
@keyframes sh2-hold {
  0% { transform: rotate(0deg) scale(1); }
  30% { transform: rotate(2deg) scale(1.02); }
  60% { transform: rotate(-1deg) scale(0.98); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes sh2-candle {
  0% { box-shadow: 0 0 10px 3px #e8c080; }
  50% { box-shadow: 0 0 20px 6px #f0d090; }
  100% { box-shadow: 0 0 12px 4px #e8c080; }
}
@keyframes sh2-haze {
  0% { opacity:0.6; transform: scale(1); }
  50% { opacity:0.9; transform: scale(1.05); }
  100% { opacity:0.5; transform: scale(0.95); }
}

/* --- scene: sisters-fidelity (warm, firelit, elderly) --- */
.scn-sisters-fidelity {
  background: 
    linear-gradient(180deg, #1f120a 0%, #2e1c14 40%, #3d2618 70%, #1f120a 100%),
    radial-gradient(ellipse at 70% 80%, #4a3020 0%, transparent 60%);
}
.scn-sisters-fidelity .sf-bg { position:absolute; inset:0; background: linear-gradient(135deg, #24140c 0%, #2a1a12 100%); }
.scn-sisters-fidelity .sf-fire { position:absolute; bottom:8%; left:35%; width:120px; height:130px; background: radial-gradient(ellipse 50% 100% at 50% 100%, #c07030 0%, #a05020 40%, #5a2a18 80%, transparent 100%); border-radius: 50% 50% 5% 5%; animation: sf-fire 0.7s ease-in-out infinite alternate; }
.scn-sisters-fidelity .sf-coals { position:absolute; bottom:6%; left:38%; width:80px; height:30px; background: radial-gradient(ellipse at 50% 50%, #e08040 0%, #b06030 50%, #6a3018 100%); border-radius: 50%; animation: sf-glow 10s ease-in-out infinite alternate; }
.scn-sisters-fidelity .sf-suzanne { position:absolute; bottom:5%; left:10%; width:45px; height:65px; background: linear-gradient(180deg, #3a2218 0%, #2a1810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-rock 12s ease-in-out infinite; }
.scn-sisters-fidelity .sf-marguerite { position:absolute; bottom:5%; left:18%; width:45px; height:65px; background: linear-gradient(180deg, #3a2218 0%, #2a1810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-rock 12s ease-in-out infinite 0.5s; }
.scn-sisters-fidelity .sf-cat { position:absolute; bottom:3%; left:55%; width:30px; height:15px; background: #4a3020; border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 4px #1a0f0a; animation: sf-cat-twitch 5s ease-in-out infinite; }
.scn-sisters-fidelity .sf-clock { position:absolute; top:10%; right:10%; width:30px; height:30px; background: radial-gradient(circle, #5a3a28 0%, #3a2218 100%); border-radius:50%; border: 2px solid #6a4a30; animation: sf-clock-tick 2s steps(2) infinite; }
.scn-sisters-fidelity .sf-dust-mote { position:absolute; top:30%; left:20%; width:4px; height:4px; background: #d0b080; border-radius:50%; box-shadow: 0 0 6px 2px #c0a070; animation: sf-dust 30s linear infinite; }
.scn-sisters-fidelity .sf-window { position:absolute; top:5%; left:5%; width:40px; height:50px; background: #1a0f0a; border-radius: 5%; box-shadow: inset 0 0 10px #0a0500, 0 0 5px #6a4a30; }
@keyframes sf-fire {
  0% { transform: scaleY(0.9) translateY(3px); }
  50% { transform: scaleY(1.08) translateY(-2px); }
  100% { transform: scaleY(0.95) translateY(1px); }
}
@keyframes sf-glow {
  0% { box-shadow: 0 0 10px 5px #b06030, 0 0 20px 10px #804020; opacity:0.8; }
  50% { box-shadow: 0 0 15px 8px #d08040, 0 0 30px 15px #a05020; opacity:1; }
  100% { box-shadow: 0 0 10px 5px #b06030, 0 0 20px 10px #804020; opacity:0.85; }
}
@keyframes sf-rock {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(1.5deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sf-cat-twitch {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(2deg); }
  60% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes sf-clock-tick {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(6deg); }
}
@keyframes sf-dust {
  0% { transform: translate(0, 0) scale(1); opacity:0; }
  10% { opacity:0.6; }
  90% { opacity:0.4; }
  100% { transform: translate(80px, -60px) scale(0.5); opacity:0; }
}

/* --- scene: priest-arrival (tense, firelit) --- */
.scn-priest-arrival {
  background: 
    linear-gradient(180deg, #1a0f0a 0%, #2a1a12 40%, #3d2218 70%, #1a0f0a 100%),
    radial-gradient(ellipse at 40% 50%, #4a2a1a 0%, transparent 70%);
}
.scn-priest-arrival .pa-bg { position:absolute; inset:0; background: linear-gradient(135deg, #24140c 0%, #1a0f0a 100%); }
.scn-priest-arrival .pa-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1810 0%, #1a0f0a 100%); }
.scn-priest-arrival .pa-bed { position:absolute; bottom:8%; left:10%; width:50%; height:30%; background: linear-gradient(180deg, #3a2218 0%, #2a1810 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 -5px 15px #0d0705; }
.scn-priest-arrival .pa-dying-woman { position:absolute; bottom:15%; left:15%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-sit 4s ease-in-out infinite; }
.scn-priest-arrival .pa-priest { position:absolute; bottom:12%; right:15%; width:50px; height:80px; background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-enter 10s ease-in-out infinite; }
.scn-priest-arrival .pa-acolyte { position:absolute; bottom:12%; right:5%; width:30px; height:50px; background: linear-gradient(180deg, #3a2218 0%, #2a1810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-enter 10s ease-in-out infinite 0.2s; }
.scn-priest-arrival .pa-door { position:absolute; bottom:18%; right:-5%; width:50px; height:90px; background: linear-gradient(180deg, #3a2518 0%, #2a1810 100%); border-radius: 5%; transform: rotate(-3deg); animation: pa-door 8s ease-in-out infinite alternate; }
.scn-priest-arrival .pa-fire { position:absolute; bottom:5%; left:5%; width:70px; height:80px; background: radial-gradient(ellipse 50% 100% at 50% 100%, #d07030 0%, #a05020 40%, #5a2a18 80%, transparent 100%); border-radius: 50% 50% 5% 5%; animation: pa-flame 0.3s ease-in-out infinite alternate; }
@keyframes pa-sit {
  0% { transform: rotate(0deg) translateY(0); }
  20% { transform: rotate(0deg) translateY(-5px); }
  40% { transform: rotate(3deg) translateY(-3px); }
  60% { transform: rotate(-2deg) translateY(0); }
  80% { transform: rotate(1deg) translateY(-5px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes pa-enter {
  0% { transform: translateX(20px) scale(0.8); opacity:0; }
  20% { transform: translateX(10px) scale(0.9); opacity:0.5; }
  40% { transform: translateX(0) scale(1); opacity:1; }
  60% { transform: translateX(0) scale(1); opacity:1; }
  80% { transform: translateX(5px) scale(0.95); opacity:0.8; }
  100% { transform: translateX(20px) scale(0.8); opacity:0; }
}
@keyframes pa-door {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(-5px); }
  100% { transform: rotate(-3deg) translateX(0); }
}
@keyframes pa-flame {
  0% { transform: scaleY(0.85) translateY(3px); }
  50% { transform: scaleY(1.15) translateY(-3px); }
  100% { transform: scaleY(0.9) translateY(1px); }
}

/* wedding-provocation – tense sunlit interior */
.scn-wedding-provocation {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9c09a 40%, #a68b6a 100%),
    radial-gradient(ellipse at 30% 100%, #d9c09a 0%, transparent 70%);
}
.scn-wedding-provocation .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #c4a882 0%, #e0cbaa 50%, #c4a882 100%);
}
.scn-wedding-provocation .window {
  position: absolute; top: 10%; left: 30%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #fce4b8 60%, #b89a6a 100%);
  border-radius: 6px; box-shadow: inset 0 0 40px rgba(255,240,200,0.6), 0 0 60px rgba(255,220,150,0.3);
  animation: wp-glow 4s ease-in-out infinite alternate;
}
.scn-wedding-provocation .outside {
  position: absolute; top: 8%; left: 28%; width: 124px; height: 164px;
  background: linear-gradient(180deg, #faddb0 0%, #ffe8b0 50%, #fcd89a 100%);
  filter: blur(4px); opacity: 0.7;
  animation: wp-dazzle 6s ease-in-out infinite;
}
.scn-wedding-provocation .figure {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2e221a 0%, #1c120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wp-fig 3s ease-in-out infinite alternate;
}
.scn-wedding-provocation .shadow {
  position: absolute; bottom: 18%; left: 33%; width: 80px; height: 30px;
  background: rgba(30,20,10,0.5); border-radius: 50%;
  transform: skewX(-20deg);
  animation: wp-shad 4s ease-in-out infinite alternate;
}
.scn-wedding-provocation .curtain {
  position: absolute; top: 8%; left: 28%; width: 140px; height: 170px;
  border: 6px solid #8b6f4a; border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: wp-curtain 12s ease-in-out infinite alternate;
}
.scn-wedding-provocation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a5c3a 0%, #5a3f24 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
@keyframes wp-glow {
  0% { box-shadow: 0 0 20px rgba(255,240,200,0.5); opacity: 0.9; }
  50% { box-shadow: 0 0 60px rgba(255,240,200,0.8); opacity: 1; }
  100% { box-shadow: 0 0 30px rgba(255,240,200,0.6); opacity: 0.95; }
}
@keyframes wp-dazzle {
  0% { filter: blur(3px); opacity: 0.6; }
  50% { filter: blur(5px); opacity: 0.8; }
  100% { filter: blur(4px); opacity: 0.7; }
}
@keyframes wp-fig {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes wp-shad {
  0% { transform: skewX(-20deg) scaleX(1); opacity: 0.5; }
  50% { transform: skewX(-15deg) scaleX(1.1); opacity: 0.7; }
  100% { transform: skewX(-20deg) scaleX(1); opacity: 0.5; }
}
@keyframes wp-curtain {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

/* st-lucia-takes-gun – sunlit interior, dark mood */
.scn-st-lucia-takes-gun {
  background:
    linear-gradient(180deg, #d1b48a 0%, #8b6f4a 40%, #3e2a18 100%),
    radial-gradient(ellipse at 60% 20%, #fce4b8 0%, transparent 70%);
}
.scn-st-lucia-takes-gun .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #b89870 0%, #8a6b45 100%);
}
.scn-st-lucia-takes-gun .window {
  position: absolute; top: 12%; left: 25%; width: 100px; height: 140px;
  background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #fce4b8 70%, #d4a86a 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,240,200,0.5), 0 0 50px rgba(255,220,150,0.2);
  animation: stg-window 5s ease-in-out infinite alternate;
}
.scn-st-lucia-takes-gun .figure-brother {
  position: absolute; bottom: 18%; left: 40%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #1c120c 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stg-brother 2s ease-in-out infinite alternate;
}
.scn-st-lucia-takes-gun .figure-sister {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2e1f15 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: stg-sister 2.5s ease-in-out infinite alternate;
}
.scn-st-lucia-takes-gun .gun {
  position: absolute; top: 48%; left: 45%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #3a2a1a 0%, #201610 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  transform: rotate(-20deg);
  animation: stg-gun 3s ease-in-out infinite alternate;
}
.scn-st-lucia-takes-gun .table {
  position: absolute; bottom: 12%; left: 38%; width: 120px; height: 18px;
  background: linear-gradient(180deg, #5a3f24 0%, #3e2a18 100%);
  border-radius: 2px;
}
.scn-st-lucia-takes-gun .plate {
  position: absolute; bottom: 16%; left: 42%; width: 30px; height: 10px;
  background: radial-gradient(circle, #f5e6c8 0%, #c4a882 100%);
  border-radius: 50%; box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: stg-plate 4s ease-in-out infinite alternate;
}
@keyframes stg-window {
  0% { box-shadow: 0 0 20px rgba(255,240,200,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 50px rgba(255,240,200,0.7); opacity: 1; }
  100% { box-shadow: 0 0 30px rgba(255,240,200,0.5); opacity: 0.9; }
}
@keyframes stg-brother {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg) scaleX(0.98); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes stg-sister {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes stg-gun {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-3px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes stg-plate {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* st-lucia-hides-gun – sunlit tense doorway */
.scn-st-lucia-hides-gun {
  background:
    linear-gradient(180deg, #e6d4b8 0%, #c4a882 40%, #8a6b45 100%),
    radial-gradient(ellipse at 40% 100%, #d4b896 0%, transparent 70%);
}
.scn-st-lucia-hides-gun .door {
  position: absolute; top: 5%; left: 35%; width: 140px; height: 200px;
  background: linear-gradient(180deg, #4a3620 0%, #2e1f0c 100%);
  border-radius: 6px 6px 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.5), 8px 0 15px rgba(0,0,0,0.3);
}
.scn-st-lucia-hides-gun .figure-brother {
  position: absolute; bottom: 22%; left: 38%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #1c120c 0%, #0a0705 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: shg-brother 4s ease-in-out infinite alternate;
}
.scn-st-lucia-hides-gun .figure-sister {
  position: absolute; bottom: 22%; left: 52%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2e1f15 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: shg-sister 3.5s ease-in-out infinite alternate;
}
.scn-st-lucia-hides-gun .sunbeam {
  position: absolute; top: 10%; left: 30%; width: 90px; height: 150px;
  background: linear-gradient(135deg, rgba(255,240,200,0.6) 0%, rgba(255,240,200,0.1) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: shg-beam 6s ease-in-out infinite alternate;
}
.scn-st-lucia-hides-gun .shadow-brother {
  position: absolute; bottom: 16%; left: 36%; width: 70px; height: 25px;
  background: rgba(20,14,8,0.6); border-radius: 50%;
  transform: skewX(-15deg);
  animation: shg-shadow 4.5s ease-in-out infinite alternate;
}
.scn-st-lucia-hides-gun .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #7a5c3a 0%, #4a3620 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
@keyframes shg-brother {
  0% { transform: scaleX(-1) translateY(0) rotate(0deg); }
  50% { transform: scaleX(-1) translateY(-3px) rotate(2deg); }
  100% { transform: scaleX(-1) translateY(0) rotate(-1deg); }
}
@keyframes shg-sister {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes shg-beam {
  0% { opacity: 0.3; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); }
  50% { opacity: 0.7; clip-path: polygon(0% 0%, 100% 0%, 75% 100%, 25% 100%); }
  100% { opacity: 0.4; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); }
}
@keyframes shg-shadow {
  0% { transform: skewX(-15deg) scaleX(1); opacity: 0.5; }
  50% { transform: skewX(-10deg) scaleX(1.15); opacity: 0.75; }
  100% { transform: skewX(-15deg) scaleX(1); opacity: 0.5; }
}

/* ambush-in-dark – moonlit confrontation */
.scn-ambush-in-dark {
  background:
    linear-gradient(180deg, #0c1428 0%, #1a2342 40%, #2a3558 100%),
    radial-gradient(ellipse at 50% 0%, #3a4a6a 0%, transparent 60%);
}
.scn-ambush-in-dark .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0e1a30 0%, #1e2e4e 50%, #2a3a5a 100%);
  animation: aid-sky 10s ease-in-out infinite alternate;
}
.scn-ambush-in-dark .moon {
  position: absolute; top: 8%; left: 65%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 70%, #8090a0 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,210,230,0.4), 0 0 60px 20px rgba(200,210,230,0.15);
  animation: aid-moon 6s ease-in-out infinite alternate;
}
.scn-ambush-in-dark .figure-victim {
  position: absolute; bottom: 32%; left: 30%; width: 40px; 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: aid-victim 2.5s ease-in-out infinite alternate;
}
.scn-ambush-in-dark .figure-stlucia {
  position: absolute; bottom: 32%; left: 52%; width: 38px; height: 78px;
  background: linear-gradient(180deg, #2a2a3a 0%, #14141e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: aid-stlucia 2s ease-in-out infinite alternate;
}
.scn-ambush-in-dark .gun {
  position: absolute; bottom: 48%; left: 50%; width: 70px; height: 6px;
  background: linear-gradient(90deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 3px; transform: rotate(-10deg);
  animation: aid-gun 1.8s ease-in-out infinite alternate;
}
.scn-ambush-in-dark .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2430 0%, #0e1620 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-ambush-in-dark .shrub {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 0 0; filter: blur(2px);
  animation: aid-shrub 8s ease-in-out infinite alternate;
}
@keyframes aid-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes aid-moon {
  0% { box-shadow: 0 0 20px 5px rgba(200,210,230,0.3); }
  50% { box-shadow: 0 0 40px 15px rgba(200,210,230,0.5); }
  100% { box-shadow: 0 0 25px 8px rgba(200,210,230,0.35); }
}
@keyframes aid-victim {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes aid-stlucia {
  0% { transform: scaleX(-1) translateY(0) rotate(0deg); }
  50% { transform: scaleX(-1) translateY(-3px) rotate(-2deg); }
  100% { transform: scaleX(-1) translateY(0) rotate(1deg); }
}
@keyframes aid-gun {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes aid-shrub {
  0% { transform: scaleY(1); opacity: 0.6; }
  50% { transform: scaleY(1.1); opacity: 0.8; }
  100% { transform: scaleY(1); opacity: 0.6; }
}

/* return-to-wood */
.scn-return-to-wood {
  background: linear-gradient(180deg, #4a3728 0%, #2c1e14 50%, #1a0f07 100%), radial-gradient(ellipse at 30% 20%, #ffd580 0%, transparent 60%);
}
.scn-return-to-wood .wall {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1a, #5a4a3a, #3a2a1a);
  animation: rtw-wall 12s ease-in-out infinite alternate;
}
.scn-return-to-wood .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 0 0 20% 20%;
}
.scn-return-to-wood .window {
  position: absolute; top:15%; left:35%; width:30%; height:25%;
  background: radial-gradient(ellipse at center, #ffe0a0 0%, #d0a050 60%, transparent 70%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 8px #ffd080;
}
.scn-return-to-wood .sunbeam {
  position: absolute; top:10%; left:38%; width:24%; height:70%;
  background: linear-gradient(180deg, rgba(255,235,150,0.25) 0%, rgba(255,200,80,0.1) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: rtw-sunbeam 8s ease-in-out infinite alternate;
}
.scn-return-to-wood .figure {
  position: absolute; bottom:30%; left:45%; width:12%; height:25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rtw-figure 6s ease-in-out infinite;
}
.scn-return-to-wood .shadow {
  position: absolute; bottom:28%; left:42%; width:20%; height:4%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: rtw-shadow 6s ease-in-out infinite;
}
.scn-return-to-wood .dusty {
  position: absolute; top:30%; left:10%; width:80%; height:40%;
  background: radial-gradient(circle at 50% 50%, rgba(255,220,150,0.15) 0%, transparent 70%);
  filter: blur(6px);
  animation: rtw-dusty 20s linear infinite;
}
@keyframes rtw-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; background-position: 0% 0%; }
  100% { opacity: 0.9; background-position: 10% 0%; }
}
@keyframes rtw-sunbeam {
  0% { transform: translateX(-2%) skewX(-2deg); opacity: 0.6; }
  50% { transform: translateX(2%) skewX(2deg); opacity: 1; }
  100% { transform: translateX(-2%) skewX(-2deg); opacity: 0.7; }
}
@keyframes rtw-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3%) rotate(-2deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-2%) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rtw-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.3; }
  100% { transform: scaleX(1); opacity: 0.4; }
}
@keyframes rtw-dusty {
  0% { transform: translate(0,0) scale(1); opacity: 0.3; }
  33% { transform: translate(5%,-3%) scale(1.1); opacity: 0.5; }
  66% { transform: translate(-3%,2%) scale(0.9); opacity: 0.2; }
  100% { transform: translate(0,0) scale(1); opacity: 0.3; }
}

/* flower-filled-landau */
.scn-flower-filled-landau {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 30% 40%, #8a7a5a 0%, transparent 70%);
}
.scn-flower-filled-landau .carriage-interior {
  position: absolute; inset:5% 10% 10% 10%;
  background: linear-gradient(135deg, #3a2a1a, #2a1a0a);
  border-radius: 10%;
  box-shadow: inset 0 0 30px rgba(255,200,100,0.2);
}
.scn-flower-filled-landau .flowers-bg {
  position: absolute; top:20%; left:20%; width:60%; height:60%;
  background: radial-gradient(ellipse at 50% 50%, #c8a87a 0%, #a08060 40%, transparent 70%);
  filter: blur(2px);
  animation: ffl-flowers-bg 10s ease-in-out infinite alternate;
}
.scn-flower-filled-landau .flowers-fg {
  position: absolute; top:30%; left:25%; width:50%; height:50%;
  background: radial-gradient(ellipse at 50% 50%, #e8c888 0%, #b09060 30%, #806040 60%, transparent 80%);
  filter: blur(1px);
  animation: ffl-flowers-fg 12s ease-in-out infinite alternate;
  animation-delay: 2s;
}
.scn-flower-filled-landau .figure1 {
  position: absolute; bottom:20%; left:25%; width:20%; height:30%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ffl-figure 8s ease-in-out infinite;
}
.scn-flower-filled-landau .figure2 {
  position: absolute; bottom:20%; right:25%; width:20%; height:28%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ffl-figure 8s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-flower-filled-landau .petal {
  position: absolute; top:35%; left:40%; width:8%; height:12%;
  background: radial-gradient(ellipse at 50% 50%, #c08060 0%, #a06040 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ffl-petal 15s linear infinite;
}
@keyframes ffl-flowers-bg {
  0% { transform: scale(1) translateY(0); opacity: 0.6; }
  50% { transform: scale(1.05) translateY(-3%); opacity: 0.8; }
  100% { transform: scale(1) translateY(0); opacity: 0.6; }
}
@keyframes ffl-flowers-fg {
  0% { transform: scale(1) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.03) translateY(-2%); opacity: 0.9; }
  100% { transform: scale(1) translateY(0); opacity: 0.7; }
}
@keyframes ffl-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4%) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ffl-petal {
  0% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.5; }
  50% { transform: translateY(30%) rotate(180deg) scale(0.8); opacity: 0.3; }
  100% { transform: translateY(60%) rotate(360deg) scale(0.5); opacity: 0; }
}

/* item-flower-carriage */
.scn-item-flower-carriage {
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #2a1a0a 100%), radial-gradient(ellipse at 40% 30%, #d0b87a 0%, transparent 60%);
}
.scn-item-flower-carriage .wheel {
  position: absolute; bottom:10%; left:30%; width:40%; height:40%;
  background: radial-gradient(circle at 50% 50%, #8a7a5a 0%, #5a4a2a 70%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px #2a1a0a;
  animation: ifc-wheel 20s linear infinite;
}
.scn-item-flower-carriage .whip {
  position: absolute; top:20%; left:60%; width:5%; height:50%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: top center;
  animation: ifc-whip 4s ease-in-out infinite;
}
.scn-item-flower-carriage .trace {
  position: absolute; top:30%; left:20%; width:30%; height:3%;
  background: linear-gradient(90deg, #6a5a3a, #4a3a1a);
  border-radius: 50%;
  animation: ifc-trace 6s ease-in-out infinite alternate;
}
.scn-item-flower-carriage .trace-dots {
  position: absolute; top:30%; left:20%; width:30%; height:5%;
  background: radial-gradient(circle at 10% 50%, #c8a86a 0%, transparent 2%), radial-gradient(circle at 30% 50%, #c8a86a 0%, transparent 2%), radial-gradient(circle at 50% 50%, #c8a86a 0%, transparent 2%), radial-gradient(circle at 70% 50%, #c8a86a 0%, transparent 2%), radial-gradient(circle at 90% 50%, #c8a86a 0%, transparent 2%);
  background-size: 20% 100%;
  animation: ifc-trace 6s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-item-flower-carriage .lantern1 {
  position: absolute; top:15%; left:30%; width:12%; height:10%;
  background: radial-gradient(circle at 50% 50%, #f0d090 0%, #c8a050 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #d0a050, 0 0 40px 12px rgba(200,160,80,0.3);
  animation: ifc-lantern 3s ease-in-out infinite alternate;
}
.scn-item-flower-carriage .lantern2 {
  position: absolute; top:15%; right:25%; width:12%; height:10%;
  background: radial-gradient(circle at 50% 50%, #f0d090 0%, #c8a050 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #d0a050, 0 0 40px 12px rgba(200,160,80,0.3);
  animation: ifc-lantern 3s ease-in-out infinite alternate;
  animation-delay: 1.5s;
}
.scn-item-flower-carriage .garland {
  position: absolute; top:22%; left:58%; width:15%; height:30%;
  background: radial-gradient(ellipse at 50% 80%, #b0a070 0%, #8a7a50 40%, transparent 60%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-20deg);
  animation: ifc-garland 5s ease-in-out infinite;
}
@keyframes ifc-wheel {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes ifc-whip {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes ifc-trace {
  0% { transform: translateY(0); opacity: 0.8; }
  50% { transform: translateY(2%); opacity: 1; }
  100% { transform: translateY(0); opacity: 0.8; }
}
@keyframes ifc-lantern {
  0% { box-shadow: 0 0 15px 4px #c8a050, 0 0 30px 8px rgba(200,160,80,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 25px 8px #e0c070, 0 0 50px 16px rgba(224,192,112,0.5); opacity: 1; }
  100% { box-shadow: 0 0 15px 4px #c8a050, 0 0 30px 8px rgba(200,160,80,0.3); opacity: 0.9; }
}
@keyframes ifc-garland {
  0% { transform: rotate(-20deg) scaleY(1); }
  50% { transform: rotate(-15deg) scaleY(1.05); }
  100% { transform: rotate(-20deg) scaleY(1); }
}

/* flower-battle */
.scn-flower-battle {
  background: linear-gradient(180deg, #d0c8b0 0%, #b0a890 50%, #8a7a6a 100%), radial-gradient(ellipse at 50% 70%, #f0e0c0 0%, transparent 60%);
}
.scn-flower-battle .crowd {
  position: absolute; bottom:10%; left:0; right:0; height:40%;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #6a5a4a 4px, #5a4a3a 8px);
  background-size: 8px 100%;
  mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 60%, transparent 100%);
  animation: fbt-crowd 6s ease-in-out infinite alternate;
}
.scn-flower-battle .police-horse {
  position: absolute; bottom:35%; left:40%; width:30%; height:20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 60% 60% 30% 30% / 80% 80% 40% 40%;
  animation: fbt-horse 4s ease-in-out infinite;
}
.scn-flower-battle .police-rider {
  position: absolute; bottom:48%; left:43%; width:14%; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: fbt-rider 4s ease-in-out infinite;
}
.scn-flower-battle .batons {
  position: absolute; bottom:50%; left:48%; width:4%; height:12%;
  background: linear-gradient(180deg, #8a7a6a, #5a4a3a);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: fbt-batons 1.5s ease-in-out infinite;
}
.scn-flower-battle .pushing {
  position: absolute; bottom:20%; left:38%; width:25%; height:15%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: fbt-push 3s ease-in-out infinite alternate;
}
.scn-flower-battle .dust {
  position: absolute; bottom:10%; left:10%; width:80%; height:20%;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,160,140,0.15) 0%, transparent 60%);
  filter: blur(6px);
  animation: fbt-dust 15s linear infinite;
}
.scn-flower-battle .street {
  position: absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #8a7a6a, #6a5a4a);
  border-radius: 0 0 30% 30%;
}
@keyframes fbt-crowd {
  0% { transform: translateX(0); opacity: 0.8; }
  50% { transform: translateX(2%); opacity: 0.9; }
  100% { transform: translateX(0); opacity: 0.8; }
}
@keyframes fbt-horse {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2%) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fbt-rider {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3%) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fbt-batons {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes fbt-push {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.3); opacity: 0.5; }
  100% { transform: scaleX(1); opacity: 0.3; }
}
@keyframes fbt-dust {
  0% { transform: translateX(0) scaleY(1); opacity: 0.2; }
  50% { transform: translateX(5%) scaleY(1.05); opacity: 0.4; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.2; }
}

/* forest-aitone */
.scn-forest-aitone {
  background:
    linear-gradient(180deg, #7d9a9c 0%, #b0c9c5 40%, #d4dbb8 70%, #a8b87a 100%),
    radial-gradient(ellipse at 80% 20%, #f5e3b3 0%, transparent 60%);
}
.scn-forest-aitone .sky { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #a3c2c8 0%, #c6d9c0 100%); animation: fa1-sky 15s ease-in-out infinite alternate; }
.scn-forest-aitone .canopy { position: absolute; inset: 0 0 10% 0; background: linear-gradient(180deg, #4a6b3a 0%, #2f5221 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: fa1-canopy 8s ease-in-out infinite; }
.scn-forest-aitone .trees-bg { position: absolute; bottom: 20%; left: 0; right: 0; height: 60%; background: repeating-linear-gradient(90deg, #2d4a22 0px, #2d4a22 8px, #3d5e2e 8px, #3d5e2e 16px); border-radius: 30% 70% 0 0 / 80% 80% 0 0; filter: blur(3px); opacity: 0.7; animation: fa1-trees-bg 20s linear infinite; }
.scn-forest-aitone .trees-mid { position: absolute; bottom: 18%; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #3b5a2c 0%, #1a3a12 100%); clip-path: polygon(5% 0, 15% 10%, 20% 0, 28% 15%, 35% 5%, 42% 20%, 50% 10%, 58% 0, 65% 12%, 72% 8%, 80% 18%, 88% 3%, 95% 14%, 100% 0, 100% 100%, 0% 100%); animation: fa1-trees-mid 12s ease-in-out infinite; }
.scn-forest-aitone .path { position: absolute; bottom: 10%; left: 40%; width: 20%; height: 15%; background: linear-gradient(180deg, #8c7340 0%, #5e4e2e 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); animation: fa1-path 6s ease-in-out infinite; }
.scn-forest-aitone .light-ray { position: absolute; top: 5%; left: 30%; width: 40%; height: 60%; background: linear-gradient(180deg, rgba(255,240,190,0.3) 0%, transparent 100%); clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%); filter: blur(8px); animation: fa1-light-ray 10s ease-in-out infinite alternate; }
.scn-forest-aitone .clearing { position: absolute; bottom: 8%; left: 20%; width: 25%; height: 12%; background: radial-gradient(ellipse, #b2a85a 0%, #7c8b3e 70%); border-radius: 50%; filter: blur(4px); animation: fa1-clearing 7s ease-in-out infinite; }
.scn-forest-aitone .needle-drift { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: transparent; pointer-events: none; animation: fa1-needle-drift 30s linear infinite; }
@keyframes fa1-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes fa1-canopy { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes fa1-trees-bg { 0% { background-position: 0 0 } 100% { background-position: -200px 0 } }
@keyframes fa1-trees-mid { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fa1-path { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes fa1-light-ray { 0% { opacity: 0.4; transform: rotate(-2deg) } 50% { opacity: 0.8; transform: rotate(0deg) } 100% { opacity: 0.5; transform: rotate(3deg) } }
@keyframes fa1-clearing { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes fa1-needle-drift { 0% { background-position: 0 0 } 100% { background-position: 100px 100px } }

/* clearing-view */
.scn-clearing-view {
  background:
    linear-gradient(180deg, #8bb7c7 0%, #b6cec0 40%, #d1dbb0 70%, #aabb7a 100%),
    radial-gradient(ellipse at 70% 30%, #f5e6c0 0%, transparent 50%);
}
.scn-clearing-view .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #9fc3cb 0%, #c1d7c0 100%); animation: cv2-sky 20s ease-in-out infinite alternate; }
.scn-clearing-view .mountains-bg { position: absolute; bottom: 25%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #7b8e6a 0%, #4a5a3b 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: cv2-mountains 25s ease-in-out infinite; }
.scn-clearing-view .valley-mist { position: absolute; bottom: 20%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, rgba(200,220,200,0.4) 0%, transparent 100%); filter: blur(10px); animation: cv2-mist 18s ease-in-out infinite alternate; }
.scn-clearing-view .twisted-tree-left { position: absolute; bottom: 15%; left: 5%; width: 60px; height: 120px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; transform: rotate(-15deg) scaleX(0.6); box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: cv2-twisted-left 10s ease-in-out infinite; }
.scn-clearing-view .twisted-tree-right { position: absolute; bottom: 15%; right: 5%; width: 50px; height: 110px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 20% 40% 0 0 / 40% 60% 0 0; transform: rotate(20deg) scaleX(0.7); box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: cv2-twisted-right 12s ease-in-out infinite; }
.scn-clearing-view .ridge { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #4a5a3b 0%, #2a3a1a 100%); border-radius: 0 0 10% 10% / 0 0 30% 30%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); animation: cv2-ridge 8s ease-in-out infinite; }
.scn-clearing-view .clouds { position: absolute; top: 10%; left: 0; width: 100%; height: 30%; background: radial-gradient(circle at 30% 50%, rgba(255,255,255,0.3) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(255,255,255,0.2) 0%, transparent 40%); filter: blur(6px); animation: cv2-clouds 40s linear infinite; }
.scn-clearing-view .sun-glow { position: absolute; top: 0; right: 15%; width: 80px; height: 80px; background: radial-gradient(circle, #f5e6c0 0%, rgba(245,230,192,0.4) 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(245,230,192,0.5); animation: cv2-sun-glow 9s ease-in-out infinite alternate; }
@keyframes cv2-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes cv2-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cv2-mist { 0% { opacity: 0.3; transform: translateX(0) } 50% { opacity: 0.6; transform: translateX(-20px) } 100% { opacity: 0.3; transform: translateX(0) } }
@keyframes cv2-twisted-left { 0% { transform: rotate(-15deg) scaleX(0.6) } 50% { transform: rotate(-12deg) scaleX(0.65) } 100% { transform: rotate(-15deg) scaleX(0.6) } }
@keyframes cv2-twisted-right { 0% { transform: rotate(20deg) scaleX(0.7) } 50% { transform: rotate(17deg) scaleX(0.75) } 100% { transform: rotate(20deg) scaleX(0.7) } }
@keyframes cv2-ridge { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes cv2-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(-300px) } }
@keyframes cv2-sun-glow { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(1) } }

/* niolo-valley */
.scn-niolo-valley {
  background:
    linear-gradient(180deg, #d6d0b0 0%, #b5a87a 40%, #8a7a4a 70%, #5a4e2e 100%),
    radial-gradient(ellipse at 50% 30%, #f5e1a0 0%, transparent 50%);
}
.scn-niolo-valley .sky-heat { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #e6dbaa 0%, #c6b87a 100%); animation: nv3-heat 15s ease-in-out infinite alternate; }
.scn-niolo-valley .mountain-left { position: absolute; bottom: 15%; left: 0; width: 45%; height: 60%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2e1a 100%); border-radius: 0 80% 0 0 / 0 100% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,0.4); animation: nv3-mountain-left 20s ease-in-out infinite; }
.scn-niolo-valley .mountain-right { position: absolute; bottom: 15%; right: 0; width: 45%; height: 60%; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a22 100%); border-radius: 80% 0 0 0 / 100% 0 0 0; box-shadow: inset 10px 0 20px rgba(0,0,0,0.4); animation: nv3-mountain-right 22s ease-in-out infinite; }
.scn-niolo-valley .valley-floor { position: absolute; bottom: 0; left: 5%; right: 5%; height: 20%; background: linear-gradient(90deg, #5a4a2a 0%, #8a7a4a 50%, #5a4a2a 100%); border-radius: 0 0 10% 10% / 0 0 30% 30%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); animation: nv3-valley-floor 10s ease-in-out infinite; }
.scn-niolo-valley .stone-slabs { position: absolute; bottom: 5%; left: 10%; width: 30%; height: 12%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%); border-radius: 5px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); animation: nv3-stone-slabs 12s ease-in-out infinite; }
.scn-niolo-valley .distant-haze { position: absolute; top: 30%; left: 10%; right: 10%; height: 20%; background: linear-gradient(180deg, rgba(255,240,200,0.2) 0%, transparent 100%); filter: blur(15px); animation: nv3-haze 25s ease-in-out infinite alternate; }
.scn-niolo-valley .sun-orb { position: absolute; top: 10%; left: 50%; width: 60px; height: 60px; transform: translateX(-50%); background: radial-gradient(circle, #f5e1a0 0%, rgba(245,225,160,0.5) 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(245,225,160,0.4); animation: nv3-sun-orb 8s ease-in-out infinite alternate; }
.scn-niolo-valley .shadow-cracks { position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: repeating-linear-gradient(90deg, #3a2e1a 0px, #3a2e1a 2px, transparent 2px, transparent 8px); opacity: 0.4; animation: nv3-shadow-cracks 6s ease-in-out infinite; }
@keyframes nv3-heat { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes nv3-mountain-left { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes nv3-mountain-right { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes nv3-valley-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nv3-stone-slabs { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes nv3-haze { 0% { opacity: 0.2 } 50% { opacity: 0.5 } 100% { opacity: 0.2 } }
@keyframes nv3-sun-orb { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes nv3-shadow-cracks { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }

/* desert-granite-valley */
.scn-desert-granite-valley {
  background:
    linear-gradient(180deg, #c87a3a 0%, #a55a2a 30%, #5a3a1a 70%, #2e1a0a 100%),
    radial-gradient(ellipse at 50% 20%, #f5a84a 0%, transparent 60%);
}
.scn-desert-granite-valley .sky-blast { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #e09540 0%, #c07030 50%, #8a4a1a 100%); animation: dg4-sky 10s ease-in-out infinite alternate; }
.scn-desert-granite-valley .sun-fierce { position: absolute; top: 0; left: 40%; width: 80px; height: 80px; background: radial-gradient(circle, #ffcc66 0%, rgba(255,204,102,0.6) 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 100px 40px rgba(255,204,102,0.6), 0 0 200px 80px rgba(255,204,102,0.3); animation: dg4-sun-fierce 6s ease-in-out infinite alternate; }
.scn-desert-granite-valley .rock-wall { position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); clip-path: polygon(0% 40%, 10% 30%, 20% 45%, 30% 25%, 40% 35%, 50% 20%, 60% 40%, 70% 30%, 80% 50%, 90% 20%, 100% 35%, 100% 100%, 0% 100%); animation: dg4-rock-wall 15s ease-in-out infinite; }
.scn-desert-granite-valley .jagged-elect { position: absolute; bottom: 40%; left: 20%; width: 40%; height: 30%; background: repeating-linear-gradient(45deg, #5a2a0a 0px, #5a2a0a 3px, transparent 3px, transparent 10px); clip-path: polygon(20% 0, 30% 15%, 25% 30%, 40% 20%, 50% 40%, 35% 50%, 60% 60%, 50% 80%, 70% 70%, 80% 100%, 0% 100%); opacity: 0.8; animation: dg4-jagged 8s ease-in-out infinite; }
.scn-desert-granite-valley .heat-shimmer { position: absolute; top: 20%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, transparent 0%, rgba(255,180,80,0.15) 50%, transparent 100%); filter: blur(6px); animation: dg4-heat-shimmer 3s ease-in-out infinite alternate; }
.scn-desert-granite-valley .shadow-dagger { position: absolute; bottom: 20%; left: 30%; width: 20%; height: 30%; background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: dg4-shadow-dagger 5s ease-in-out infinite alternate; }
.scn-desert-granite-valley .dust-devil { position: absolute; top: 30%; right: 10%; width: 40px; height: 80px; background: radial-gradient(ellipse at 50% 0%, rgba(150,100,50,0.4) 0%, transparent 100%); filter: blur(4px); transform: rotate(10deg); animation: dg4-dust-devil 4s ease-in-out infinite; }
.scn-desert-granite-valley .cracking-ground { position: absolute; bottom: 0; left: 0; right: 0; height: 10%; background: repeating-linear-gradient(90deg, #2a0a00 0px, #2a0a00 3px, transparent 3px, transparent 12px); opacity: 0.5; animation: dg4-cracking 2s ease-in-out infinite; }
@keyframes dg4-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes dg4-sun-fierce { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.05) rotate(5deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes dg4-rock-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dg4-jagged { 0% { opacity: 0.7; transform: rotate(0deg) } 50% { opacity: 1; transform: rotate(2deg) } 100% { opacity: 0.7; transform: rotate(0deg) } }
@keyframes dg4-heat-shimmer { 0% { opacity: 0.2; transform: translateX(0) } 50% { opacity: 0.8; transform: translateX(10px) } 100% { opacity: 0.2; transform: translateX(0) } }
@keyframes dg4-shadow-dagger { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) } 100% { transform: translateX(0) } }
@keyframes dg4-dust-devil { 0% { transform: rotate(10deg) scaleY(1) } 50% { transform: rotate(15deg) scaleY(1.2) } 100% { transform: rotate(10deg) scaleY(1) } }
@keyframes dg4-cracking { 0% { opacity: 0.4; transform: scaleX(1) } 50% { opacity: 0.8; transform: scaleX(1.02) } 100% { opacity: 0.4; transform: scaleX(1) } }

/* one block per scene id. Append to style.css. */
.scn-valley-torrent-heat { background: linear-gradient(180deg, #b08850 0%, #d4b078 30%, #f0d8a0 70%, #ffe8c0 100%), radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%); }
.scn-valley-torrent-heat .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c09868 0%, #e8c898 50%, #f8e0b8 100%); animation: vt-sky 20s ease-in-out infinite alternate; }
.scn-valley-torrent-heat .mtn-back { position:absolute; bottom:50%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5050 0%, #8a7070 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,.3); animation: vt-mtn-back 25s ease-in-out infinite alternate; }
.scn-valley-torrent-heat .mtn-front { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a3a3a 0%, #7a5a4a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.4); animation: vt-mtn-front 18s ease-in-out infinite alternate; }
.scn-valley-torrent-heat .sun { position:absolute; top:12%; left:60%; width:80px; height:80px; background: radial-gradient(circle, #fff4d0 0%, #ffdd90 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,221,144,.5); animation: vt-sun 8s ease-in-out infinite alternate; }
.scn-valley-torrent-heat .haze { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(240,216,160,.2) 0%, transparent 100%); filter: blur(12px); animation: vt-haze 15s ease-in-out infinite alternate; }
.scn-valley-torrent-heat .rocks { position:absolute; bottom:10%; left:5%; width:20%; height:15%; background: linear-gradient(180deg, #6a5040 0%, #4d3a30 100%); border-radius: 20% 60% 30% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: vt-rocks 12s ease-in-out infinite; }
.scn-valley-torrent-heat .torrent { position:absolute; bottom:15%; left:25%; right:10%; height:12%; background: linear-gradient(90deg, transparent 0%, #b8d8e0 20%, #c8e8f0 50%, #b8d8e0 80%, transparent 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 4px 6px rgba(0,0,0,.3); animation: vt-torrent 3s ease-in-out infinite; }
.scn-valley-torrent-heat .spray { position:absolute; bottom:25%; left:35%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,255,255,.3) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: vt-spray 2s ease-in-out infinite alternate; }
@keyframes vt-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes vt-mtn-back { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes vt-mtn-front { 0% { transform: translateY(0); } 50% { transform: translateY(-6px); } 100% { transform: translateY(0); } }
@keyframes vt-sun { 0% { box-shadow: 0 0 40px 20px rgba(255,221,144,.4); } 50% { box-shadow: 0 0 80px 40px rgba(255,221,144,.7); } 100% { box-shadow: 0 0 50px 25px rgba(255,221,144,.5); } }
@keyframes vt-haze { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes vt-rocks { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes vt-torrent { 0% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes vt-spray { 0% { transform: translate(0,0) scale(1); } 100% { transform: translate(8px,-6px) scale(1.3); } }

.scn-item-wooden-cross { background: linear-gradient(180deg, #c8a870 0%, #e0c898 40%, #f0d8b0 100%), radial-gradient(ellipse at 50% 100%, #f0d8b0 0%, transparent 70%); }
.scn-item-wooden-cross .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4ba8a 0%, #e8d0a8 100%); animation: wc-sky 30s ease-in-out infinite alternate; }
.scn-item-wooden-cross .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a7050 0%, #6a5040 50%, #4d3a30 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.4); }
.scn-item-wooden-cross .cross-post { position:absolute; bottom:42%; left:50%; width:8px; height:90px; transform:translateX(-50%); background: linear-gradient(90deg, #6a4a3a 0%, #8a6a4a 50%, #5a3a2a 100%); border-radius:2px; box-shadow: 2px 2px 3px rgba(0,0,0,.3); }
.scn-item-wooden-cross .cross-beam { position:absolute; bottom:55%; left:50%; width:60px; height:8px; transform:translateX(-55%); background: linear-gradient(180deg, #6a4a3a 0%, #8a6a4a 50%, #5a3a2a 100%); border-radius:2px; box-shadow: 2px 2px 3px rgba(0,0,0,.3); }
.scn-item-wooden-cross .stones { position:absolute; bottom:40%; left:42%; width:70px; height:35px; background: radial-gradient(ellipse at 50% 100%, #7a6050 0%, #5a4030 60%, transparent 100%); border-radius: 40% 40% 20% 20%; animation: wc-stones 20s ease-in-out infinite; }
.scn-item-wooden-cross .shadow { position:absolute; bottom:40%; left:42%; width:80px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.3) 0%, transparent 70%); transform: translateX(-10px); animation: wc-shadow 25s ease-in-out infinite alternate; }
.scn-item-wooden-cross .pebble-1 { position:absolute; bottom:38%; left:35%; width:12px; height:8px; background: #6a5040; border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: wc-pebble 30s ease-in-out infinite; }
.scn-item-wooden-cross .pebble-2 { position:absolute; bottom:37%; right:30%; width:10px; height:7px; background: #7a6040; border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: wc-pebble 35s ease-in-out infinite reverse; }
@keyframes wc-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.95; } }
@keyframes wc-stones { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes wc-shadow { 0% { transform: translateX(-20px) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.1); } 100% { transform: translateX(-20px) scaleX(1); } }
@keyframes wc-pebble { 0% { transform: translate(0,0); } 50% { transform: translate(2px,-1px); } 100% { transform: translate(0,0); } }

.scn-bandit-story-request { background: linear-gradient(180deg, #c09860 0%, #e0c090 40%, #f0d8b0 100%), radial-gradient(ellipse at 30% 20%, #f0d8b0 0%, transparent 60%); }
.scn-bandit-story-request .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b08858 0%, #d8b888 100%); animation: br-sky 15s ease-in-out infinite alternate; }
.scn-bandit-story-request .sun { position:absolute; top:15%; left:25%; width:70px; height:70px; background: radial-gradient(circle, #fff0c0 0%, #f0c880 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(240,200,128,.6); animation: br-sun 6s ease-in-out infinite alternate; }
.scn-bandit-story-request .canyon { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5040 0%, #8a6a50 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: br-canyon 20s ease-in-out infinite alternate; }
.scn-bandit-story-request .cactus { position:absolute; bottom:38%; left:70%; width:20px; height:50px; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; box-shadow: -4px 0 0 #1a3a1a, 4px 0 0 #1a3a1a; animation: br-cactus 12s ease-in-out infinite; }
.scn-bandit-story-request .bandit { position:absolute; bottom:35%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%); border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom center; box-shadow: 0 8px 12px rgba(0,0,0,.5); animation: br-bandit 4s ease-in-out infinite; }
.scn-bandit-story-request .narrator { position:absolute; bottom:33%; left:55%; width:25px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 50% 30% 40% / 50% 60% 40% 50%; transform-origin: bottom center; box-shadow: 0 6px 10px rgba(0,0,0,.4); animation: br-narrator 5s ease-in-out infinite; }
.scn-bandit-story-request .shadow-line { position:absolute; bottom:30%; left:30%; right:40%; height:4px; background: linear-gradient(90deg, transparent, rgba(0,0,0,.5), transparent); animation: br-shadow 8s ease-in-out infinite alternate; }
@keyframes br-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes br-sun { 0% { transform: scale(1) translate(0,0); opacity:.9; } 50% { transform: scale(1.1) translate(5px,-5px); opacity:1; } 100% { transform: scale(1) translate(0,0); opacity:.9; } }
@keyframes br-canyon { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes br-cactus { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes br-bandit { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(3deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes br-narrator { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-6px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes br-shadow { 0% { opacity:.2; } 50% { opacity:.5; } 100% { opacity:.2; } }

.scn-sister-shames-st-lucia { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #7a5040 60%, #8a6040 100%), radial-gradient(ellipse at 50% 0%, #8a6040 0%, transparent 70%); }
.scn-sister-shames-st-lucia .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #6a4a3a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-sister-shames-st-lucia .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-sister-shames-st-lucia .window { position:absolute; top:25%; left:20%; width:60px; height:100px; background: linear-gradient(180deg, #d4b878 0%, #e8d098 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.3); border: 4px solid #3a2a1a; animation: ss-window 10s ease-in-out infinite alternate; }
.scn-sister-shames-st-lucia .light-beam { position:absolute; top:25%; left:20%; width:60px; height:200px; background: linear-gradient(180deg, rgba(212,184,120,.4) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); filter: blur(6px); animation: ss-beam 8s ease-in-out infinite alternate; }
.scn-sister-shames-st-lucia .figure-st { position:absolute; bottom:30%; left:40%; width:28px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%); border-radius: 40% 50% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom center; box-shadow: 0 8px 12px rgba(0,0,0,.6); animation: ss-fig-st 4s ease-in-out infinite; }
.scn-sister-shames-st-lucia .figure-sis { position:absolute; bottom:30%; left:55%; width:24px; height:75px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%; transform-origin: bottom center; box-shadow: 0 8px 12px rgba(0,0,0,.5); animation: ss-fig-sis 5s ease-in-out infinite; }
.scn-sister-shames-st-lucia .black-cloth { position:absolute; bottom:35%; left:62%; width:30px; height:20px; background: #0a0a1a; border-radius: 10% 10% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.6); transform: rotate(20deg); animation: ss-cloth 6s ease-in-out infinite alternate; }
.scn-sister-shames-st-lucia .dust { position:absolute; bottom:20%; left:30%; width:40px; height:10px; background: radial-gradient(ellipse, rgba(200,180,140,.3) 0%, transparent 70%); filter: blur(6px); animation: ss-dust 12s ease-in-out infinite alternate; }
@keyframes ss-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes ss-beam { 0% { opacity:.2; } 50% { opacity:.5; } 100% { opacity:.2; } }
@keyframes ss-fig-st { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes ss-fig-sis { 0% { transform: translateX(0) rotate(-3deg) scale(1); } 50% { transform: translateX(5px) rotate(3deg) scale(1.05); } 100% { transform: translateX(0) rotate(-3deg) scale(1); } }
@keyframes ss-cloth { 0% { transform: rotate(15deg) translateY(0); } 100% { transform: rotate(25deg) translateY(-5px); } }
@keyframes ss-dust { 0% { transform: translateX(0) scale(1); } 100% { transform: translateX(20px) scale(1.3); } }

/* ---- second-wounding (tense, moonlit) ---- */
.scn-second-wounding {
  background: linear-gradient(180deg, #0f1528 0%, #1b2240 40%, #2a3360 100%), radial-gradient(ellipse at 50% 0%, #2a4a7a 0%, transparent 70%);
}
.scn-second-wounding .moon {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e8eef8 0%, #c0cce0 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,220,240,0.3);
  animation: sw-moon-glow 6s ease-in-out infinite alternate;
}
.scn-second-wounding .sky-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0d1320 0%, #182030 40%, transparent 100%);
  animation: sw-sky-pulse 12s ease-in-out infinite;
}
.scn-second-wounding .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0a0e15 0%, #161e2d 60%, #1f2840 100%);
  border-radius: 30% 70% 0 0 / 20% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-second-wounding .st-lucia {
  position: absolute; bottom: 28%; left: 35%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #1a1c28 0%, #0c0e18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sw-fig-shift 4s ease-in-out infinite;
}
.scn-second-wounding .other-man {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1c28 0%, #0a0c14 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sw-cower 3s ease-in-out infinite;
}
.scn-second-wounding .gun {
  position: absolute; bottom: 45%; left: 40%; width: 45px; height: 6px;
  background: linear-gradient(90deg, #2a2e3a 0%, #1a1e28 100%);
  border-radius: 40% 20% 20% 40% / 50% 50%;
  transform: rotate(-20deg);
  animation: sw-gun-aim 5s ease-in-out infinite;
}
.scn-second-wounding .shadow {
  position: absolute; bottom: 28%; left: 30%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sw-shadow-sway 6s ease-in-out infinite alternate;
}
.scn-second-wounding .rock {
  position: absolute; bottom: 30%; left: 65%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #2a3040 0%, #181e28 100%);
  border-radius: 60% 30% 40% 50% / 40% 50% 50% 30%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
@keyframes sw-moon-glow {
  0% { box-shadow: 0 0 30px 15px rgba(200,220,240,0.2); transform: scale(1); }
  50% { box-shadow: 0 0 50px 25px rgba(200,220,240,0.4); transform: scale(1.02); }
  100% { box-shadow: 0 0 40px 20px rgba(200,220,240,0.3); transform: scale(0.98); }
}
@keyframes sw-sky-pulse {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sw-fig-shift {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes sw-cower {
  0% { transform: translateX(0) translateY(0) scale(1); }
  25% { transform: translateX(-3px) translateY(2px) scale(0.95); }
  50% { transform: translateX(0) translateY(0) scale(1); }
  75% { transform: translateX(2px) translateY(-1px) scale(1.02); }
  100% { transform: translateX(0) translateY(0) scale(1); }
}
@keyframes sw-gun-aim {
  0% { transform: rotate(-18deg); }
  50% { transform: rotate(-22deg); }
  100% { transform: rotate(-18deg); }
}
@keyframes sw-shadow-sway {
  0% { transform: translateX(0) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(5px) scaleX(1.1); opacity: 0.8; }
  100% { transform: translateX(-3px) scaleX(0.9); opacity: 0.5; }
}

/* ---- finish-wound (dark, moonlit) ---- */
.scn-finish-wound {
  background: linear-gradient(180deg, #080b12 0%, #111422 40%, #1a2036 100%), radial-gradient(ellipse at 50% 0%, #243b5e 0%, transparent 70%);
}
.scn-finish-wound .moon {
  position: absolute; top: 10%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #c8d0e0 0%, #a8b4cc 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 30px 15px rgba(170,190,220,0.2);
  animation: fw-moon-wane 8s ease-in-out infinite alternate;
}
.scn-finish-wound .sky-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #060912 0%, #0c1120 40%, transparent 100%);
  animation: fw-sky-fade 14s ease-in-out infinite;
}
.scn-finish-wound .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #05070d 0%, #0c111c 60%, #141b2a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-finish-wound .st-lucia-kneel {
  position: absolute; bottom: 30%; left: 40%; width: 34px; height: 55px;
  background: linear-gradient(180deg, #1a1c2a 0%, #0c0e1a 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: fw-kneel 5s ease-in-out infinite;
}
.scn-finish-wound .wounded-man {
  position: absolute; bottom: 22%; left: 48%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #1a1c28 0%, #0a0c14 100%);
  border-radius: 20% 20% 60% 60% / 30% 30% 40% 40%;
  transform: rotate(30deg);
  animation: fw-writhe 4s ease-in-out infinite;
}
.scn-finish-wound .gun-reload {
  position: absolute; bottom: 42%; left: 34%; width: 50px; height: 5px;
  background: linear-gradient(90deg, #2a2e3a 0%, #1a1e28 100%);
  border-radius: 20% 10% 10% 20% / 50% 50%;
  transform: rotate(-40deg);
  animation: fw-reload 6s ease-in-out infinite;
}
.scn-finish-wound .wound-spot {
  position: absolute; bottom: 24%; left: 52%; width: 12px; height: 8px;
  background: radial-gradient(circle, #803028 0%, #4a1818 100%);
  border-radius: 50%; box-shadow: 0 0 10px 4px rgba(128,48,40,0.3);
  animation: fw-bleed 3s ease-in-out infinite alternate;
}
.scn-finish-wound .shadow-long {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 14px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%);
  border-radius: 50%; filter: blur(5px);
  animation: fw-shadow-stretch 7s ease-in-out infinite alternate;
}
@keyframes fw-moon-wane {
  0% { box-shadow: 0 0 20px 10px rgba(170,190,220,0.15); transform: scale(1); }
  50% { box-shadow: 0 0 40px 20px rgba(170,190,220,0.3); transform: scale(1.03); }
  100% { box-shadow: 0 0 25px 12px rgba(170,190,220,0.2); transform: scale(0.97); }
}
@keyframes fw-sky-fade {
  0% { opacity: 0.8; }
  33% { opacity: 0.95; }
  66% { opacity: 0.85; }
  100% { opacity: 0.9; }
}
@keyframes fw-kneel {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes fw-writhe {
  0% { transform: rotate(28deg) translateX(0); }
  25% { transform: rotate(32deg) translateX(2px); }
  50% { transform: rotate(26deg) translateX(-1px); }
  75% { transform: rotate(30deg) translateX(1px); }
  100% { transform: rotate(28deg) translateX(0); }
}
@keyframes fw-reload {
  0% { transform: rotate(-38deg) translateX(0); }
  30% { transform: rotate(-42deg) translateX(3px); }
  60% { transform: rotate(-36deg) translateX(-2px); }
  100% { transform: rotate(-40deg) translateX(0); }
}
@keyframes fw-bleed {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes fw-shadow-stretch {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.6; }
  50% { transform: scaleX(1.15) scaleY(0.9); opacity: 0.8; }
  100% { transform: scaleX(0.9) scaleY(1.1); opacity: 0.5; }
}

/* ---- bandit-family-arrested (tense, sunlit) ---- */
.scn-bandit-family-arrested {
  background: linear-gradient(180deg, #c8d8e8 0%, #e0ecf8 40%, #a0b8d0 100%), radial-gradient(ellipse at 50% 0%, #f8f0d8 0%, transparent 60%);
}
.scn-bandit-family-arrested .sky-sun {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b8cce0 0%, #d8e6f8 50%, transparent 100%);
  animation: bfa-sky-bright 10s ease-in-out infinite alternate;
}
.scn-bandit-family-arrested .ground-sun {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #8a7a5a 0%, #b8a880 60%, #d0c8a0 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.15);
}
.scn-bandit-family-arrested .wall {
  position: absolute; bottom: 22%; left: 10%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #b09878 0%, #8a7858 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
}
.scn-bandit-family-arrested .gendarme-left {
  position: absolute; bottom: 18%; left: 25%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #283848 0%, #182430 100%);
  border-radius: 20% 20% 15% 15% / 50% 50% 30% 30%;
  transform: skewX(-5deg);
  animation: bfa-gendarme 4s ease-in-out infinite;
}
.scn-bandit-family-arrested .gendarme-right {
  position: absolute; bottom: 18%; left: 48%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #283848 0%, #182430 100%);
  border-radius: 20% 20% 15% 15% / 50% 50% 30% 30%;
  transform: skewX(5deg);
  animation: bfa-gendarme 4s ease-in-out infinite reverse;
}
.scn-bandit-family-arrested .family-group {
  position: absolute; bottom: 14%; left: 30%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  filter: blur(1px);
  animation: bfa-huddle 5s ease-in-out infinite;
}
.scn-bandit-family-arrested .priest-run {
  position: absolute; bottom: 28%; left: 70%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a10 100%);
  border-radius: 25% 25% 20% 20% / 55% 55% 30% 30%;
  transform: rotate(15deg);
  animation: bfa-run 3s ease-in-out infinite;
}
.scn-bandit-family-arrested .door {
  position: absolute; bottom: 22%; left: 12%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #8a6848 0%, #6a4a30 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -2px 0 8px rgba(0,0,0,0.4);
  transform: scaleX(0.9);
}
@keyframes bfa-sky-bright {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes bfa-gendarme {
  0% { transform: skewX(-3deg) translateY(0); }
  25% { transform: skewX(-7deg) translateY(-2px); }
  50% { transform: skewX(-5deg) translateY(0); }
  75% { transform: skewX(-1deg) translateY(1px); }
  100% { transform: skewX(-3deg) translateY(0); }
}
@keyframes bfa-huddle {
  0% { transform: scale(1) translateX(0); }
  25% { transform: scale(0.95) translateX(2px); }
  50% { transform: scale(1.02) translateX(-1px); }
  75% { transform: scale(0.98) translateX(1px); }
  100% { transform: scale(1) translateX(0); }
}
@keyframes bfa-run {
  0% { transform: rotate(12deg) translateX(0); }
  20% { transform: rotate(18deg) translateX(6px); }
  40% { transform: rotate(10deg) translateX(12px); }
  60% { transform: rotate(16deg) translateX(18px); }
  80% { transform: rotate(14deg) translateX(24px); }
  100% { transform: rotate(12deg) translateX(30px); }
}

/* ---- st-lucia-kills-accusers (dark, sunlit) ---- */
.scn-st-lucia-kills-accusers {
  background: linear-gradient(180deg, #b8b8a8 0%, #d0c8b8 30%, #e8dcc8 60%, #a89a88 100%), radial-gradient(ellipse at 50% 0%, #f8e8d0 0%, transparent 60%);
}
.scn-st-lucia-kills-accusers .sky-harsh {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8c0b0 0%, #e8dcc8 50%, transparent 100%);
  animation: sck-sky-glare 8s ease-in-out infinite alternate;
}
.scn-st-lucia-kills-accusers .ground-blood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #6a4a38 0%, #8a6a50 40%, #b09878 100%);
  border-radius: 10% 90% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-st-lucia-kills-accusers .st-lucia-knife {
  position: absolute; bottom: 25%; left: 38%; width: 36px; height: 68px;
  background: linear-gradient(180deg, #2a2a38 0%, #14141e 100%);
  border-radius: 35% 35% 25% 25% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: sck-fig-lunge 4s ease-in-out infinite;
}
.scn-st-lucia-kills-accusers .knife-blade {
  position: absolute; bottom: 60%; left: 44%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c0c0d0 0%, #808890 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(15deg);
  animation: sck-knife-stab 2s ease-in-out infinite;
}
.scn-st-lucia-kills-accusers .accuser-fallen {
  position: absolute; bottom: 15%; left: 20%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 40% 40%;
  transform: rotate(-60deg);
  animation: sck-fallen 6s ease-in-out infinite;
}
.scn-st-lucia-kills-accusers .accuser-kneeling {
  position: absolute; bottom: 20%; left: 55%; width: 28px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 20% 20% 15% 15% / 45% 45% 25% 25%;
  transform: skewX(-10deg);
  animation: sck-kneel 5s ease-in-out infinite;
}
.scn-st-lucia-kills-accusers .shadow-sharp {
  position: absolute; bottom: 25%; left: 30%; width: 60px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(3px);
  animation: sck-shadow-dart 7s ease-in-out infinite alternate;
}
.scn-st-lucia-kills-accusers .blood-splash {
  position: absolute; bottom: 18%; left: 32%; width: 20px; height: 12px;
  background: radial-gradient(circle, #803028 0%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: sck-blood-spread 3s ease-in-out infinite alternate;
}
@keyframes sck-sky-glare {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sck-fig-lunge {
  0% { transform: translateY(0) rotate(-3deg); }
  20% { transform: translateY(-8px) rotate(-6deg); }
  40% { transform: translateY(0) rotate(0deg); }
  60% { transform: translateY(-4px) rotate(3deg); }
  80% { transform: translateY(2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes sck-knife-stab {
  0% { transform: rotate(10deg) translateY(0); }
  25% { transform: rotate(20deg) translateY(-10px); }
  50% { transform: rotate(5deg) translateY(5px); }
  75% { transform: rotate(15deg) translateY(-5px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes sck-fallen {
  0% { transform: rotate(-55deg) translateX(0); }
  25% { transform: rotate(-65deg) translateX(4px); }
  50% { transform: rotate(-50deg) translateX(-2px); }
  75% { transform: rotate(-60deg) translateX(2px); }
  100% { transform: rotate(-55deg) translateX(0); }
}
@keyframes sck-kneel {
  0% { transform: skewX(-8deg) translateY(0); }
  25% { transform: skewX(-14deg) translateY(-3px); }
  50% { transform: skewX(-6deg) translateY(0); }
  75% { transform: skewX(-12deg) translateY(2px); }
  100% { transform: skewX(-8deg) translateY(0); }
}
@keyframes sck-shadow-dart {
  0% { transform: translateX(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(8px) scaleX(1.2); opacity: 0.7; }
  100% { transform: translateX(-5px) scaleX(0.8); opacity: 0.4; }
}
@keyframes sck-blood-spread {
  0% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.3); opacity: 0.9; }
  100% { transform: scale(1); opacity: 0.7; }
}

.scn-arm-strength { background: linear-gradient(180deg, #ffd700 0%, #ffb347 30%, #87ceeb 70%, #fff 100%), radial-gradient(ellipse at 50% 0%, #fff 0%, transparent 70%); }
.scn-arm-strength .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #87ceeb 0%, transparent 100%); }
.scn-arm-strength .sun { position: absolute; top: 5%; left: 50%; width: 60px; height: 60px; background: radial-gradient(circle, #fff 0%, #ffd700 50%, transparent 100%); transform: translateX(-50%); border-radius: 50%; animation: as1-sun 6s ease-in-out infinite alternate; }
.scn-arm-strength .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #556b2f 0%, #2f4f2f 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; }
.scn-arm-strength .fig-left { position: absolute; bottom: 25%; left: 25%; width: 50px; height: 90px; background: linear-gradient(90deg, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as1-breathe 4s ease-in-out infinite; }
.scn-arm-strength .fig-right { position: absolute; bottom: 25%; right: 25%; width: 50px; height: 90px; background: linear-gradient(90deg, #a0461a 0%, #c8553d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as1-breathe 4s ease-in-out infinite alternate; }
.scn-arm-strength .arm-left { position: absolute; bottom: 50%; left: 20%; width: 16px; height: 50px; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%); border-radius: 50% 50% 20% 20%; transform-origin: top center; animation: as1-strike 1.5s ease-in-out infinite; }
.scn-arm-strength .arm-right { position: absolute; bottom: 50%; right: 20%; width: 16px; height: 50px; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%); border-radius: 50% 50% 20% 20%; transform-origin: top center; animation: as1-strike 1.5s ease-in-out infinite alternate; }
@keyframes as1-sun { 0% { transform: translateX(-50%) scale(1); opacity: 0.9; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 0.9; } }
@keyframes as1-breathe { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes as1-strike { 0% { transform: rotate(10deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(10deg); } }

.scn-wine-and-heat { background: linear-gradient(180deg, #ff8c00 0%, #ffd700 50%, #ffa500 100%), radial-gradient(circle at 50% 10%, #fff 0%, transparent 60%); }
.scn-wine-and-heat .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #ff8c00 0%, #ffd700 100%); animation: wh2-haze 10s ease-in-out infinite alternate; }
.scn-wine-and-heat .sun { position: absolute; top: 5%; left: 50%; width: 80px; height: 80px; background: radial-gradient(circle, #fff 0%, #ffd700 40%, #ff8c00 80%, transparent 100%); transform: translateX(-50%); border-radius: 50%; animation: wh2-pulse 4s ease-in-out infinite; }
.scn-wine-and-heat .river { position: absolute; bottom: 10%; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #ffa500 0%, #ff4500 100%); border-radius: 0 0 50% 50% / 0 0 20% 20%; animation: wh2-flow 8s linear infinite; }
.scn-wine-and-heat .sparkle-1 { position: absolute; bottom: 30%; left: 20%; width: 8px; height: 8px; background: #fff; border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,255,255,.8); animation: wh2-sparkle 2s ease-in-out infinite; }
.scn-wine-and-heat .sparkle-2 { position: absolute; bottom: 40%; right: 30%; width: 6px; height: 6px; background: #fff; border-radius: 50%; box-shadow: 0 0 10px 3px rgba(255,255,255,.8); animation: wh2-sparkle 2s ease-in-out infinite alternate; }
.scn-wine-and-heat .figure { position: absolute; bottom: 20%; left: 50%; width: 60px; height: 100px; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); transform-origin: bottom center; animation: wh2-sway 6s ease-in-out infinite; }
.scn-wine-and-heat .table { position: absolute; bottom: 15%; left: 40%; width: 80px; height: 30px; background: linear-gradient(180deg, #deb887 0%, #8b4513 100%); border-radius: 10% 10% 5% 5%; transform: translateX(-50%); animation: wh2-table 8s ease-in-out infinite; }
@keyframes wh2-haze { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wh2-pulse { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes wh2-sparkle { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.5); } }
@keyframes wh2-sway { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes wh2-table { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }

.scn-drunken-antics { background: linear-gradient(180deg, #faf0e6 0%, #deb887 50%, #8b4513 100%), radial-gradient(ellipse at 50% 100%, #8b4513 0%, transparent 70%); }
.scn-drunken-antics .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #faf0e6 0%, #f5deb3 100%); }
.scn-drunken-antics .table { position: absolute; bottom: 20%; left: 50%; width: 120px; height: 40px; background: linear-gradient(180deg, #deb887 0%, #a0522d 100%); border-radius: 10% 10% 5% 5%; transform: translateX(-50%); }
.scn-drunken-antics .cup-1 { position: absolute; bottom: 30%; left: 40%; width: 16px; height: 20px; background: linear-gradient(180deg, #fff 0%, #ccc 100%); border-radius: 10% 10% 5% 5%; animation: da3-sway 3s ease-in-out infinite; }
.scn-drunken-antics .cup-2 { position: absolute; bottom: 30%; right: 40%; width: 16px; height: 20px; background: linear-gradient(180deg, #fff 0%, #ccc 100%); border-radius: 10% 10% 5% 5%; animation: da3-sway 3s ease-in-out infinite alternate; }
.scn-drunken-antics .woman-1 { position: absolute; bottom: 15%; left: 20%; width: 40px; height: 80px; background: linear-gradient(180deg, #b87878 0%, #702243 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da3-sway 5s ease-in-out infinite; }
.scn-drunken-antics .woman-2 { position: absolute; bottom: 15%; left: 35%; width: 40px; height: 80px; background: linear-gradient(180deg, #b87878 0%, #702243 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da3-sway 5s ease-in-out infinite alternate; }
.scn-drunken-antics .man-1 { position: absolute; bottom: 15%; right: 35%; width: 50px; height: 90px; background: linear-gradient(180deg, #c8553d 0%, #5e1a1d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da3-sway 4s ease-in-out infinite; }
.scn-drunken-antics .man-2 { position: absolute; bottom: 15%; right: 20%; width: 50px; height: 90px; background: linear-gradient(180deg, #c8553d 0%, #5e1a1d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da3-sway 4s ease-in-out infinite alternate; }
@keyframes da3-sway { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-5px); } 100% { transform: rotate(-5deg) translateY(0); } }

.scn-boating-invitation { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #6b8e23 100%), radial-gradient(ellipse at 50% 0%, #fff 0%, transparent 60%); }
.scn-boating-invitation .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%); animation: bi4-sky 15s ease-in-out infinite alternate; }
.scn-boating-invitation .sun { position: absolute; top: 5%; left: 50%; width: 50px; height: 50px; background: radial-gradient(circle, #fff 0%, #ffd700 50%, transparent 100%); transform: translateX(-50%); border-radius: 50%; animation: bi4-sun 8s ease-in-out infinite; }
.scn-boating-invitation .bank { position: absolute; bottom: 15%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #6b8e23 0%, #2f4f2f 100%); border-radius: 60% 40% 0 0 / 80% 50% 0 0; }
.scn-boating-invitation .river { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #87ceeb 0%, #4682b4 100%); animation: bi4-flow 10s linear infinite; }
.scn-boating-invitation .boat-1 { position: absolute; bottom: 20%; left: 25%; width: 70px; height: 30px; background: linear-gradient(180deg, #8b4513 0%, #5e1a1d 100%); border-radius: 20% 20% 50% 50%; transform-origin: center bottom; animation: bi4-bob 4s ease-in-out infinite; }
.scn-boating-invitation .boat-2 { position: absolute; bottom: 20%; right: 25%; width: 70px; height: 30px; background: linear-gradient(180deg, #8b4513 0%, #5e1a1d 100%); border-radius: 20% 20% 50% 50%; transform-origin: center bottom; animation: bi4-bob 4s ease-in-out infinite alternate; }
.scn-boating-invitation .man-1 { position: absolute; bottom: 28%; left: 28%; width: 20px; height: 40px; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bi4-wave 3s ease-in-out infinite; }
.scn-boating-invitation .man-2 { position: absolute; bottom: 28%; right: 28%; width: 20px; height: 40px; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bi4-wave 3s ease-in-out infinite alternate; }
.scn-boating-invitation .ladies { position: absolute; bottom: 10%; left: 10%; width: 30px; height: 60px; background: linear-gradient(180deg, #b87878 0%, #702243 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bi4-ladies 6s ease-in-out infinite; }
@keyframes bi4-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bi4-sun { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes bi4-flow { 0% { background-position-x: 0; } 100% { background-position-x: 100px; } }
@keyframes bi4-bob { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bi4-wave { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes bi4-ladies { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-courbataille-declaration-love {
  background:
    linear-gradient(180deg, #d4c9b0 0%, #b8a987 50%, #8a7b64 100%),
    radial-gradient(ellipse at 50% 10%, #f0e6d2 0%, transparent 70%);
}

.scn-courbataille-declaration-love .bg-wall {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #6b5d4a 0px, #6b5d4a 4px, #8a7b64 4px, #8a7b64 8px); opacity: 0.3; animation: cbd-wall 12s ease-in-out infinite alternate;
}

.scn-courbataille-declaration-love .podium {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 12%; background: linear-gradient(180deg, #3a2a1a, #1a0f0a); border-radius: 8% 8% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.6); animation: cbd-podium 4s ease-in-out infinite;
}

.scn-courbataille-declaration-love .figure-speaker {
  position: absolute; bottom: 22%; left: 42%; width: 10%; height: 20%; background: linear-gradient(180deg, #1e1816, #0c0a08); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; transform-origin: bottom center; animation: cbd-speaker 3s ease-in-out infinite alternate;
}

.scn-courbataille-declaration-love .figure-jury1 {
  position: absolute; bottom: 16%; left: 12%; width: 8%; height: 18%; background: linear-gradient(180deg, #2a2420, #14100e); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; animation: cbd-jury 5s ease-in-out infinite alternate;
}

.scn-courbataille-declaration-love .figure-jury2 {
  position: absolute; bottom: 18%; right: 12%; width: 8%; height: 16%; background: linear-gradient(180deg, #2a2420, #14100e); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; animation: cbd-jury 5s ease-in-out infinite alternate-reverse;
}

.scn-courbataille-declaration-love .lamp {
  position: absolute; top: 5%; left: 45%; width: 8%; height: 6%; background: radial-gradient(circle, #fce8c0, #cba86a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(252,232,192,0.5); animation: cbd-lamp 2s ease-in-out infinite alternate;
}

.scn-courbataille-declaration-love .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 4%; background: rgba(0,0,0,0.5); filter: blur(4px); border-radius: 50%; transform-origin: bottom center; animation: cbd-shadow 3s ease-in-out infinite alternate;
}

@keyframes cbd-wall {
  0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; }
}
@keyframes cbd-podium {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); }
}
@keyframes cbd-speaker {
  0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes cbd-jury {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cbd-lamp {
  0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); }
}
@keyframes cbd-shadow {
  0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(1); }
}

/* ---------- scene 2 ---------- */
.scn-first-meeting-sensation {
  background:
    linear-gradient(135deg, #fff5e6 0%, #fae0c6 40%, #d9b896 100%),
    radial-gradient(circle at 30% 40%, rgba(255,220,180,0.6) 0%, transparent 60%);
}

.scn-first-meeting-sensation .bg-room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #fcf3e8 0%, #e8d4b8 100%); opacity: 0.6;
}

.scn-first-meeting-sensation .window {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 50%; border: 6px solid #5a4a3a; border-radius: 4px; background: linear-gradient(180deg, #cce0ff 0%, #b0cce0 100%); box-shadow: inset 0 0 20px rgba(0,0,0,0.3); overflow: hidden; animation: fms-window 8s ease-in-out infinite alternate;
}

.scn-first-meeting-sensation .light-beam {
  position: absolute; top: 0; left: 30%; width: 20%; height: 60%; clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%); background: linear-gradient(180deg, rgba(255,235,200,0.8) 0%, rgba(255,235,200,0) 100%); animation: fms-beam 6s ease-in-out infinite alternate;
}

.scn-first-meeting-sensation .figure-him {
  position: absolute; bottom: 20%; left: 32%; width: 12%; height: 28%; background: linear-gradient(180deg, #3a2e24, #1e1610); border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fms-him 4s ease-in-out infinite;
}

.scn-first-meeting-sensation .figure-her {
  position: absolute; bottom: 20%; left: 50%; width: 10%; height: 26%; background: linear-gradient(180deg, #4a3a30, #2a1e16); border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fms-her 4s ease-in-out infinite;
}

.scn-first-meeting-sensation .glow {
  position: absolute; bottom: 30%; left: 40%; width: 20%; height: 20%; background: radial-gradient(circle, rgba(255,200,150,0.5) 0%, transparent 70%); border-radius: 50%; animation: fms-glow 3s ease-in-out infinite alternate;
}

@keyframes fms-window {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes fms-beam {
  0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); }
}
@keyframes fms-him {
  0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(1deg); }
}
@keyframes fms-her {
  0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-1deg); }
}
@keyframes fms-glow {
  0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); }
}

/* ---------- scene 3 ---------- */
.scn-love-deepens {
  background:
    linear-gradient(135deg, #ffe8d6 0%, #f5d4b0 50%, #e0b890 100%),
    radial-gradient(circle at 50% 50%, rgba(255,210,160,0.4) 0%, transparent 70%);
}

.scn-love-deepens .bg-close {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #fce4cd, transparent 80%); opacity: 0.6;
}

.scn-love-deepens .head-him {
  position: absolute; bottom: 30%; left: 28%; width: 20%; height: 30%; background: linear-gradient(135deg, #5a4a3a, #2a1e16); border-radius: 50% 10% 50% 20% / 40% 20% 50% 30%; transform: rotate(-10deg); animation: lvd-him 5s ease-in-out infinite alternate;
}

.scn-love-deepens .head-her {
  position: absolute; bottom: 30%; right: 28%; width: 18%; height: 28%; background: linear-gradient(135deg, #6a5a4a, #3a2a1e); border-radius: 10% 50% 20% 50% / 20% 40% 30% 50%; transform: rotate(10deg); animation: lvd-her 5s ease-in-out infinite alternate;
}

.scn-love-deepens .hands {
  position: absolute; bottom: 14%; left: 36%; width: 28%; height: 10%; background: linear-gradient(180deg, #4a3a2e, #2a1e18); border-radius: 30% 30% 50% 50% / 40% 40% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: lvd-hands 3s ease-in-out infinite;
}

.scn-love-deepens .halo {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%; background: radial-gradient(circle, rgba(255,230,200,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: lvd-halo 6s ease-in-out infinite alternate;
}

.scn-love-deepens .sparkle {
  position: absolute; top: 20%; left: 45%; width: 4%; height: 4%; background: #ffdab9; border-radius: 50%; box-shadow: 0 0 12px #ffdab9; animation: lvd-sparkle 2s ease-in-out infinite alternate;
}

@keyframes lvd-him {
  0% { transform: rotate(-12deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-5px); } 100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes lvd-her {
  0% { transform: rotate(12deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-4px); } 100% { transform: rotate(10deg) translateY(0); }
}
@keyframes lvd-hands {
  0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(2deg); }
}
@keyframes lvd-halo {
  0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.3; }
}
@keyframes lvd-sparkle {
  0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.5); }
}

/* ---------- scene 4 ---------- */
.scn-union-and-rain {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #16213e 40%, #0f3460 100%),
    radial-gradient(circle at 50% 60%, rgba(20,40,80,0.5) 0%, transparent 70%);
}

.scn-union-and-rain .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0d1b2a, #1b2838); opacity: 0.7;
}

.scn-union-and-rain .window-frame {
  position: absolute; top: 8%; left: 10%; width: 50%; height: 60%; border: 8px solid #2a1e18; border-radius: 6px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.8); overflow: hidden;
}

.scn-union-and-rain .rain-streaks {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: repeating-linear-gradient(0deg, rgba(200,220,255,0.15) 0px, rgba(200,220,255,0.15) 2px, transparent 2px, transparent 8px); background-size: 100% 8px; animation: unr-rain 1s linear infinite;
}

.scn-union-and-rain .figure-man {
  position: absolute; bottom: 18%; left: 20%; width: 14%; height: 30%; background: linear-gradient(180deg, #2a2020, #0a0808); border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: unr-man 6s ease-in-out infinite;
}

.scn-union-and-rain .figure-woman {
  position: absolute; bottom: 18%; left: 32%; width: 12%; height: 28%; background: linear-gradient(180deg, #3a2a2a, #1a1010); border-radius: 50% 50% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: unr-woman 6s ease-in-out infinite;
}

.scn-union-and-rain .candle {
  position: absolute; bottom: 16%; right: 18%; width: 4%; height: 8%; background: linear-gradient(180deg, #ffd680, #b08040); border-radius: 20% 20% 4% 4%; box-shadow: 0 0 30px 10px rgba(255,214,128,0.4), 0 0 60px 20px rgba(255,214,128,0.2); animation: unr-candle 3s ease-in-out infinite alternate;
}

.scn-union-and-rain .rug {
  position: absolute; bottom: 6%; left: 15%; width: 50%; height: 10%; background: linear-gradient(135deg, #4a3020, #2a1a0e); border-radius: 30% 30% 50% 50% / 20% 20% 40% 40%; opacity: 0.8; animation: unr-rug 10s ease-in-out infinite alternate;
}

@keyframes unr-rain {
  0% { background-position: 0 0; } 100% { background-position: 0 -16px; }
}
@keyframes unr-man {
  0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-1deg); }
}
@keyframes unr-woman {
  0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes unr-candle {
  0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(1); }
}
@keyframes unr-rug {
  0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; }
}

/* drowning-cocotte */
.scn-drowning-cocotte {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4a 40%, #5a4a3a 100%), radial-gradient(ellipse at 50% 0%, #8a6a4a 0%, transparent 70%);
}
.scn-drowning-cocotte .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #4a3a5a 50%, transparent 100%);
  animation: dc-sky 14s ease-in-out infinite alternate;
}
.scn-drowning-cocotte .wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-drowning-cocotte .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,.5);
}
.scn-drowning-cocotte .door {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: -4px 0 8px rgba(0,0,0,.4);
  transform-origin: left center;
  animation: dc-door 6s ease-in-out infinite alternate;
}
.scn-drowning-cocotte .clock {
  position: absolute; bottom: 45%; right: 30%; width: 30px; height: 30px;
  background: radial-gradient(circle, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 8px #1a1a1a;
  animation: dc-clock 10s ease-in-out infinite;
}
.scn-drowning-cocotte .figure {
  position: absolute; bottom: 26%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-figure 4s ease-in-out infinite alternate;
}
.scn-drowning-cocotte .beast {
  position: absolute; bottom: 24%; left: 52%; width: 24px; height: 20px;
  background: #1a1a1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: dc-beast 3s ease-in-out infinite alternate;
}
.scn-drowning-cocotte .window {
  position: absolute; bottom: 40%; left: 20%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 50%, #ffd080 0%, #b08040 70%);
  border-radius: 10%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.3);
  animation: dc-window 8s ease-in-out infinite alternate;
}
@keyframes dc-sky { 0% { opacity:0.6; background-position:0 0; } 50% { opacity:0.9; background-position:0 10%; } 100% { opacity:0.7; } }
@keyframes dc-door { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-80deg); } 100% { transform: rotateY(0deg); } }
@keyframes dc-clock { 0% { transform: rotate(0deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes dc-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes dc-beast { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(0.9); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes dc-window { 0% { opacity:0.7; box-shadow: 0 0 20px 5px #b06830, 0 0 40px 10px rgba(176,104,48,.2); } 50% { opacity:1; box-shadow: 0 0 40px 15px #ffd070, 0 0 80px 25px rgba(255,208,112,.4); } 100% { opacity:0.8; box-shadow: 0 0 25px 8px #b06830, 0 0 50px 15px rgba(176,104,48,.25); } }

/* francois-illness */
.scn-francois-illness {
  background: linear-gradient(180deg, #1e1e1e 0%, #2a2a2a 40%, #1a1a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 70%);
}
.scn-francois-illness .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2222 0%, #1a1212 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
}
.scn-francois-illness .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1212 0%, #0a0808 100%);
}
.scn-francois-illness .bed {
  position: absolute; bottom: 18%; left: 25%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 20px;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
}
.scn-francois-illness .figure-bed {
  position: absolute; bottom: 20%; left: 32%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fi-breath 5s ease-in-out infinite;
}
.scn-francois-illness .physician {
  position: absolute; bottom: 20%; right: 28%; width: 16px; height: 36px;
  background: #1a1a1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: fi-physician 12s ease-in-out infinite alternate;
}
.scn-francois-illness .window {
  position: absolute; bottom: 40%; right: 10%; width: 45px; height: 55px;
  background: radial-gradient(ellipse, #4a5a6a 0%, #1a2a3a 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px #2a3a4a;
  animation: fi-window 15s ease-in-out infinite alternate;
}
.scn-francois-illness .candle {
  position: absolute; bottom: 35%; left: 15%; width: 6px; height: 10px;
  background: #ffd080;
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 8px #ffb050, 0 0 40px 16px rgba(255,176,80,.2);
  animation: fi-candle 3s ease-in-out infinite alternate;
}
.scn-francois-illness .table {
  position: absolute; bottom: 28%; left: 10%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 2px;
}
@keyframes fi-breath { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fi-physician { 0% { transform: translateX(0); } 50% { transform: translateX(-15px); } 100% { transform: translateX(0); } }
@keyframes fi-window { 0% { opacity:0.3; background: radial-gradient(ellipse, #3a4a5a 0%, #1a2a3a 100%); } 50% { opacity:0.6; background: radial-gradient(ellipse, #5a6a7a 0%, #1a2a3a 100%); } 100% { opacity:0.4; background: radial-gradient(ellipse, #3a4a5a 0%, #1a2a3a 100%); } }
@keyframes fi-candle { 0% { opacity:0.7; box-shadow: 0 0 15px 5px #ffa040, 0 0 30px 10px rgba(255,160,64,.15); } 50% { opacity:1; box-shadow: 0 0 30px 12px #ffc060, 0 0 60px 24px rgba(255,192,96,.3); } 100% { opacity:0.8; box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 16px rgba(255,160,64,.2); } }

/* river-encounter */
.scn-river-encounter {
  background: linear-gradient(180deg, #7ab8e0 0%, #4a8ab0 60%, #2a5a7a 100%), radial-gradient(ellipse at 50% 0%, #ffdb7f 0%, transparent 60%);
}
.scn-river-encounter .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d8ff 0%, #7ab8e0 80%);
  animation: re-sky 20s ease-in-out infinite alternate;
}
.scn-river-encounter .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a7a9a 0%, #1a4a6a 100%);
  animation: re-water 12s ease-in-out infinite alternate;
}
.scn-river-encounter .riverbank {
  position: absolute; bottom: 25%; left: 0; width: 30%; height: 20%;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 0 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-river-encounter .sun {
  position: absolute; top: 8%; left: 60%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe680 0%, #ffcc40 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #ffe680, 0 0 120px 50px rgba(255,230,128,.2);
  animation: re-sun 25s ease-in-out infinite alternate;
}
.scn-river-encounter .dead-animal {
  position: absolute; bottom: 45%; left: 50%; width: 28px; height: 16px;
  background: #2a2a1a;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: re-dead 8s ease-in-out infinite;
}
.scn-river-encounter .swimmer {
  position: absolute; bottom: 35%; left: 20%; width: 16px; height: 20px;
  background: #3a2a1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: re-swim 4s ease-in-out infinite alternate;
}
.scn-river-encounter .ripple-1 {
  position: absolute; bottom: 40%; left: 35%; width: 30px; height: 6px;
  background: rgba(255,255,255,.2);
  border-radius: 50%;
  filter: blur(2px);
  animation: re-ripple 5s ease-in-out infinite;
}
.scn-river-encounter .ripple-2 {
  position: absolute; bottom: 30%; left: 60%; width: 40px; height: 8px;
  background: rgba(255,255,255,.15);
  border-radius: 50%;
  filter: blur(3px);
  animation: re-ripple 6s ease-in-out infinite 2s;
}
@keyframes re-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes re-water { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes re-sun { 0% { transform: translateY(0); } 50% { transform: translateY(5px); } 100% { transform: translateY(-5px); } }
@keyframes re-dead { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes re-swim { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 50% { transform: translateX(10px) translateY(-2px) rotate(5deg); } 100% { transform: translateX(20px) translateY(0) rotate(-5deg); } }
@keyframes re-ripple { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.5); opacity:0.1; } 100% { transform: scaleX(1); opacity:0.3; } }

/* recognition-insanity */
.scn-recognition-insanity {
  background: linear-gradient(180deg, #ffdbb5 0%, #f0c090 40%, #c08050 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-recognition-insanity .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe0b0 0%, #ffd090 80%);
  animation: ri-sky 18s ease-in-out infinite alternate;
}
.scn-recognition-insanity .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a7a9a 0%, #1a4a6a 100%);
  animation: ri-water 12s ease-in-out infinite alternate;
}
.scn-recognition-insanity .shore {
  position: absolute; bottom: 15%; left: 0; right: 40%; height: 30%;
  background: linear-gradient(180deg, #c09050 0%, #a07030 100%);
  border-radius: 0 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-recognition-insanity .figure-running {
  position: absolute; bottom: 20%; left: 15%; width: 18px; height: 34px;
  background: #1a0a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ri-run 3s ease-in-out infinite alternate;
}
.scn-recognition-insanity .dead-dog {
  position: absolute; bottom: 45%; left: 55%; width: 22px; height: 14px;
  background: #3a2a1a;
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  animation: ri-dog 10s ease-in-out infinite;
}
.scn-recognition-insanity .splash-1 {
  position: absolute; bottom: 35%; left: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,255,255,.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ri-splash 2s ease-in-out infinite;
}
.scn-recognition-insanity .splash-2 {
  position: absolute; bottom: 30%; left: 18%; width: 14px; height: 14px;
  background: radial-gradient(circle, rgba(255,255,255,.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: ri-splash 2.5s ease-in-out infinite 0.8s;
}
.scn-recognition-insanity .sun-glare {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5e0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ri-glare 15s ease-in-out infinite alternate;
}
@keyframes ri-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ri-water { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(-2px); } }
@keyframes ri-run { 0% { transform: translateX(0) rotate(-10deg); } 50% { transform: translateX(15px) rotate(10deg) scaleY(1.1); } 100% { transform: translateX(30px) rotate(-10deg); } }
@keyframes ri-dog { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ri-splash { 0% { transform: scale(0.5); opacity:0.8; } 50% { transform: scale(1.5); opacity:0.3; } 100% { transform: scale(0.5); opacity:0.8; } }
@keyframes ri-glare { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-farewell-view { background: linear-gradient(180deg, #2a1a3e 0%, #5a3a2e 50%, #a0704a 100%), radial-gradient(ellipse at 50% 100%, #c08050 0%, transparent 70%); }
.scn-farewell-view .fv-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a4a5e 0%, #a0704a 100%); animation: fv-sky 15s ease-in-out infinite alternate; }
.scn-farewell-view .fv-mountains { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(135deg, #3a2a2a 0%, #4a3a3a 50%, #2a1a1a 100%); border-radius: 40% 60% 0 0 / 100% 80% 0 0; animation: fv-mnt 20s ease-in-out infinite alternate; }
.scn-farewell-view .fv-lake { position:absolute; bottom:12%; left:5%; right:5%; height:10%; background: linear-gradient(180deg, #7a6a7a 0%, #4a4a6a 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 4px 12px #2a2a4a; animation: fv-lake 10s ease-in-out infinite alternate; }
.scn-farewell-view .fv-valley { position:absolute; bottom:22%; left:10%; right:30%; height:8%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 20% 40% 0 0; animation: fv-val 12s ease-in-out infinite alternate; }
.scn-farewell-view .fv-wall { position:absolute; bottom:18%; left:20%; width:30px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 2px 2px 6px rgba(0,0,0,0.5); animation: fv-wall 9s ease-in-out infinite; }
.scn-farewell-view .fv-woman { position:absolute; bottom:20%; left:21%; width:14px; height:28px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fv-walk 6s ease-in-out infinite; }
.scn-farewell-view .fv-cloud1 { position:absolute; top:12%; left:10%; width:70px; height:16px; background: linear-gradient(180deg, rgba(180,160,140,0.4) 0%, rgba(100,80,60,0.1) 100%); border-radius: 50%; filter: blur(5px); animation: fv-drift1 40s linear infinite; }
.scn-farewell-view .fv-cloud2 { position:absolute; top:18%; right:8%; width:50px; height:12px; background: linear-gradient(180deg, rgba(180,160,140,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: fv-drift2 55s linear infinite reverse; }
@keyframes fv-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes fv-mnt { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes fv-lake { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: 0% 0%; } }
@keyframes fv-val { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes fv-wall { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes fv-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fv-drift1 { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes fv-drift2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-asylum-court { background: linear-gradient(180deg, #d4c0a0 0%, #a08060 30%, #605040 70%, #201810 100%), radial-gradient(ellipse at 30% 20%, #f0d090 0%, transparent 60%); }
.scn-asylum-court .ac-sun { position:absolute; top:10%; left:70%; width:80px; height:80px; background: radial-gradient(circle, #ffd060 0%, #f0a030 40%, transparent 70%); border-radius: 50%; animation: ac-sun 12s ease-in-out infinite alternate; }
.scn-asylum-court .ac-ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #807060 0%, #504030 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: ac-ground 20s ease-in-out infinite alternate; }
.scn-asylum-court .ac-wall-left { position:absolute; left:0; top:0; width:20%; height:100%; background: linear-gradient(180deg, #a09080 0%, #605040 100%); box-shadow: 4px 0 12px rgba(0,0,0,0.4); animation: ac-wall-shade 8s ease-in-out infinite alternate; }
.scn-asylum-court .ac-wall-right { position:absolute; right:0; top:0; width:15%; height:100%; background: linear-gradient(180deg, #908070 0%, #504030 100%); box-shadow: -4px 0 12px rgba(0,0,0,0.4); animation: ac-wall-shade 8s ease-in-out infinite alternate-reverse; }
.scn-asylum-court .ac-man { position:absolute; bottom:30%; left:35%; width:22px; height:60px; background: linear-gradient(180deg, #2a2018 0%, #1a1010 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ac-man 5s ease-in-out infinite; }
.scn-asylum-court .ac-shadow { position:absolute; bottom:30%; left:35%; width:30px; height:8px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(2px); transform: translateX(-4px); animation: ac-shadow 5s ease-in-out infinite; }
.scn-asylum-court .ac-dog { position:absolute; bottom:30%; left:50%; width:16px; height:12px; background: #201810; border-radius: 50% 50% 30% 30%; animation: ac-dog 5s ease-in-out infinite; }
.scn-asylum-court .ac-gate { position:absolute; bottom:42%; left:30%; width:40%; height:4px; background: #301808; border-radius: 2px; box-shadow: 0 -2px 4px rgba(0,0,0,0.3); animation: ac-gate 15s ease-in-out infinite alternate; }
@keyframes ac-sun { 0% { transform: scale(0.9); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }
@keyframes ac-ground { 0% { background-position: 0% 0%; } 50% { background-position: 5% 0%; } 100% { background-position: 0% 0%; } }
@keyframes ac-wall-shade { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ac-man { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes ac-shadow { 0% { transform: translateX(-4px) scaleX(1); } 50% { transform: translateX(-2px) scaleX(1.2); } 100% { transform: translateX(-4px) scaleX(1); } }
@keyframes ac-dog { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(5px) scaleY(0.9); } 70% { transform: translateX(-3px) scaleY(1); } 100% { transform: translateX(0) scaleY(0.95); } }
@keyframes ac-gate { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(0.97); } }

.scn-coachman-francois { background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 40%, #809060 70%, #406050 100%), radial-gradient(ellipse at 50% 0%, #f0e8d0 0%, transparent 60%); }
.scn-coachman-francois .cf-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c0d0e0 0%, #e0e8d0 100%); animation: cf-sky 20s ease-in-out infinite alternate; }
.scn-coachman-francois .cf-trees { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(135deg, #406030 0%, #305020 50%, #203010 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; animation: cf-trees 25s ease-in-out infinite alternate; }
.scn-coachman-francois .cf-villa { position:absolute; bottom:30%; left:55%; width:100px; height:70px; background: linear-gradient(180deg, #c0b0a0 0%, #908070 100%); border-radius: 6% 6% 3% 3%; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: cf-villa 12s ease-in-out infinite; }
.scn-coachman-francois .cf-river { position:absolute; bottom:10%; left:0; right:0; height:8%; background: linear-gradient(180deg, #6090a0 0%, #407070 100%); border-radius: 0 0 20% 20%; animation: cf-river 15s ease-in-out infinite alternate; }
.scn-coachman-francois .cf-carriage { position:absolute; bottom:12%; left:20%; width:50px; height:30px; background: linear-gradient(180deg, #604020 0%, #301808 100%); border-radius: 10% 10% 5% 5%; transform: rotate(-2deg); animation: cf-carriage 8s ease-in-out infinite; }
.scn-coachman-francois .cf-coachman { position:absolute; bottom:14%; left:22%; width:12px; height:28px; background: linear-gradient(180deg, #2a2018 0%, #1a1010 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cf-coach 4s ease-in-out infinite; }
.scn-coachman-francois .cf-horse { position:absolute; bottom:12%; left:30%; width:30px; height:24px; background: #705040; border-radius: 40% 60% 30% 30% / 60% 40% 40% 40%; animation: cf-horse 7s ease-in-out infinite; }
.scn-coachman-francois .cf-bridge { position:absolute; bottom:13%; left:15%; width:10%; height:6px; background: #806040; border-radius: 4px 4px 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: cf-bridge 18s ease-in-out infinite alternate; }
@keyframes cf-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes cf-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cf-villa { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes cf-river { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: 0% 0%; } }
@keyframes cf-carriage { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(2px) rotate(-1deg); } 70% { transform: translateX(-1px) rotate(-3deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cf-coach { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cf-horse { 0% { transform: translateY(0) scaleX(1); } 30% { transform: translateY(-2px) scaleX(1.05); } 70% { transform: translateY(0) scaleX(0.95); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cf-bridge { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(0.9); } }

.scn-dog-cocotte { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a4e 70%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #2a2a5e 0%, transparent 60%); }
.scn-dog-cocotte .dc-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1a 100%); animation: dc-sky 15s ease-in-out infinite alternate; }
.scn-dog-cocotte .dc-moon { position:absolute; top:8%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #d0d0e0 0%, #8080a0 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,200,240,0.3); animation: dc-moon 20s ease-in-out infinite alternate; }
.scn-dog-cocotte .dc-stars { position:absolute; inset:0; background: radial-gradient(circle at 20% 15%, rgba(255,255,255,0.6) 1px, transparent 1px), radial-gradient(circle at 60% 30%, rgba(255,255,255,0.4) 1px, transparent 1px), radial-gradient(circle at 80% 10%, rgba(255,255,255,0.5) 1px, transparent 1px), radial-gradient(circle at 40% 20%, rgba(255,255,255,0.3) 1px, transparent 1px); background-size: 80px 80px; animation: dc-stars 30s linear infinite; }
.scn-dog-cocotte .dc-street { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); animation: dc-street 12s ease-in-out infinite alternate; }
.scn-dog-cocotte .dc-lamp { position:absolute; bottom:38%; left:20%; width:6px; height:60px; background: linear-gradient(180deg, #404040 0%, #202020 100%); border-radius: 2px 2px 0 0; animation: dc-lamp 8s ease-in-out infinite; }
.scn-dog-cocotte .dc-lampglow { position:absolute; bottom:45%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #d0c080 0%, #a08040 30%, transparent 60%); border-radius: 50%; transform: translateX(-12px); box-shadow: 0 0 30px 8px rgba(200,180,120,0.4); animation: dc-glow 4s ease-in-out infinite alternate; }
.scn-dog-cocotte .dc-man { position:absolute; bottom:20%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dc-man 7s ease-in-out infinite; }
.scn-dog-cocotte .dc-dog { position:absolute; bottom:20%; left:45%; width:14px; height:10px; background: #1a1a1a; border-radius: 50% 50% 30% 30%; animation: dc-dog 7s ease-in-out infinite; }
@keyframes dc-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes dc-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes dc-stars { 0% { background-position: 0 0; } 100% { background-position: 0 80px; } }
@keyframes dc-street { 0% { background-position: 0% 0%; } 50% { background-position: 5% 0%; } 100% { background-position: 0% 0%; } }
@keyframes dc-lamp { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dc-glow { 0% { opacity:0.6; transform: translateX(-12px) scale(0.9); } 50% { opacity:1; transform: translateX(-12px) scale(1.1); } 100% { opacity:0.8; transform: translateX(-12px) scale(1); } }
@keyframes dc-man { 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 dc-dog { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(6px) scaleY(0.9); } 70% { transform: translateX(-2px) scaleY(1); } 100% { transform: translateX(0) scaleY(0.95); } }

.scn-rosalie-despair-poverty {
  background:
    linear-gradient(180deg, #1a1410 0%, #0d0a08 30%, #2a1e14 60%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 70%, #2a1e14 0%, transparent 50%);
}
.scn-rosalie-despair-poverty .room-wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(90deg, #2a1e14 0%, #1a1410 50%, #0d0a08 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: rdp-wall 15s ease-in-out infinite alternate;
}
.scn-rosalie-despair-poverty .window {
  position:absolute; top:12%; left:15%; width:50px; height:70px;
  background: radial-gradient(ellipse at center, rgba(100,140,180,.2) 0%, transparent 70%);
  border: 2px solid #3a2a1a; border-radius:4px;
  box-shadow: inset 0 0 20px rgba(100,140,180,.1);
  animation: rdp-window 8s ease-in-out infinite alternate;
}
.scn-rosalie-despair-poverty .candle {
  position:absolute; bottom:46%; left:62%; width:10px; height:35px;
  background: linear-gradient(180deg, #d4a060 0%, #8a5a30 60%, #4a2a10 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: rdp-candle 3s ease-in-out infinite;
}
.scn-rosalie-despair-poverty .table {
  position:absolute; bottom:42%; left:50%; width:120px; height:18px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-rosalie-despair-poverty .figure {
  position:absolute; bottom:46%; left:38%; width:30px; height:60px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rdp-figure 6s ease-in-out infinite;
}
.scn-rosalie-despair-poverty .shadow {
  position:absolute; bottom:42%; left:50%; width:140px; height:40px;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: rdp-shadow 10s ease-in-out infinite alternate;
}
.scn-rosalie-despair-poverty .floor {
  position:absolute; bottom:0; left:0; right:0; height:42%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1410 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.4);
}

@keyframes rdp-wall {
  0% { opacity:.9; transform:scaleX(1); }
  50% { opacity:1; transform:scaleX(1.01); }
  100% { opacity:.85; transform:scaleX(1); }
}
@keyframes rdp-window {
  0% { opacity:.3; box-shadow: inset 0 0 10px rgba(100,140,180,.05); }
  50% { opacity:.6; box-shadow: inset 0 0 30px rgba(100,140,180,.15); }
  100% { opacity:.2; box-shadow: inset 0 0 10px rgba(100,140,180,.05); }
}
@keyframes rdp-candle {
  0% { transform: scaleY(1) scaleX(1); opacity:.8; }
  25% { transform: scaleY(1.03) scaleX(.98); opacity:1; }
  50% { transform: scaleY(.97) scaleX(1.02); opacity:.9; }
  75% { transform: scaleY(1.04) scaleX(.99); opacity:1; }
  100% { transform: scaleY(1) scaleX(1); opacity:.8; }
}
@keyframes rdp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(1deg); }
  60% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rdp-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity:.5; }
  50% { transform: translateX(-50%) scaleX(1.1); opacity:.7; }
  100% { transform: translateX(-50%) scaleX(.9); opacity:.4; }
}

/* rosalie-burial */
.scn-rosalie-burial {
  background:
    linear-gradient(180deg, #0b1a2e 0%, #1f3a5c 30%, #c4a06a 60%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 50%, #c4a06a 0%, transparent 70%);
}
.scn-rosalie-burial .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #0b1a2e 0%, #1f3a5c 40%, transparent 100%);
  animation: rb-sky 20s ease-in-out infinite alternate;
}
.scn-rosalie-burial .ground {
  position:absolute; bottom:0; left:0; right:0; height:52%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
}
.scn-rosalie-burial .mound-a {
  position:absolute; bottom:42%; left:30%; width:60px; height:20px;
  background: radial-gradient(ellipse at 50% 30%, #5a3a22 0%, #3a2212 100%);
  border-radius: 50%;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: rb-mound 12s ease-in-out infinite;
}
.scn-rosalie-burial .mound-b {
  position:absolute; bottom:40%; left:55%; width:50px; height:18px;
  background: radial-gradient(ellipse at 50% 30%, #5a3a22 0%, #3a2212 100%);
  border-radius: 50%;
  transform: rotate(3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: rb-mound 12s ease-in-out infinite reverse;
}
.scn-rosalie-burial .spade {
  position:absolute; bottom:48%; left:42%; width:8px; height:40px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: 50% 100%;
  animation: rb-spade 2.5s ease-in-out infinite;
}
.scn-rosalie-burial .figure {
  position:absolute; bottom:44%; left:42%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a120a 0%, #0d0a05 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: rb-figure 4s ease-in-out infinite;
}
.scn-rosalie-burial .tree {
  position:absolute; bottom:48%; left:70%; width:12px; height:80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(0,0,0,.3);
  animation: rb-tree 25s linear infinite;
}
.scn-rosalie-burial .cloud {
  position:absolute; top:8%; left:20%; width:100px; height:20px;
  background: radial-gradient(ellipse at 30% 50%, rgba(220,200,180,.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: rb-cloud 40s linear infinite;
}

@keyframes rb-sky {
  0% { opacity:.7; }
  50% { opacity:1; }
  100% { opacity:.6; }
}
@keyframes rb-mound {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes rb-spade {
  0% { transform: rotate(30deg) translateY(0); }
  25% { transform: rotate(20deg) translateY(-2px); }
  50% { transform: rotate(35deg) translateY(0); }
  75% { transform: rotate(25deg) translateY(-2px); }
  100% { transform: rotate(30deg) translateY(0); }
}
@keyframes rb-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-4px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rb-tree {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
  100% { transform: scaleY(1); }
}
@keyframes rb-cloud {
  0% { transform: translateX(-60px); }
  100% { transform: translateX(200vw); }
}

/* trial-verdict */
.scn-trial-verdict {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 30%, #4a3a2a 60%, #1a120a 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 50%);
}
.scn-trial-verdict .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: tv-wall 12s ease-in-out infinite alternate;
}
.scn-trial-verdict .bench {
  position:absolute; bottom:30%; left:50%; width:160px; height:50px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #6a4a32 0%, #3a2a1a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,200,150,.1);
  animation: tv-bench 8s ease-in-out infinite;
}
.scn-trial-verdict .woman {
  position:absolute; bottom:28%; left:42%; width:28px; height:55px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0a08 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tv-woman 3s ease-in-out infinite;
}
.scn-trial-verdict .judge {
  position:absolute; bottom:30%; left:60%; width:34px; height:65px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: tv-judge 5s ease-in-out infinite;
}
.scn-trial-verdict .window {
  position:absolute; top:12%; right:10%; width:45px; height:60px;
  background: radial-gradient(ellipse at center, rgba(200,160,120,.2) 0%, transparent 70%);
  border: 2px solid #3a2a1a; border-radius:4px;
  box-shadow: inset 0 0 20px rgba(200,160,120,.1);
  animation: tv-window 9s ease-in-out infinite alternate;
}
.scn-trial-verdict .light-shaft {
  position:absolute; top:0; right:10%; width:45px; height:70%;
  background: linear-gradient(180deg, rgba(200,160,120,.08) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%);
  animation: tv-light 7s ease-in-out infinite alternate;
}
.scn-trial-verdict .candle {
  position:absolute; bottom:40%; left:48%; width:10px; height:30px;
  background: linear-gradient(180deg, #d4a060 0%, #8a5a30 60%, #4a2a10 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: tv-candle 2.5s ease-in-out infinite;
}

@keyframes tv-wall {
  0% { opacity:.9; }
  50% { opacity:1; }
  100% { opacity:.8; }
}
@keyframes tv-bench {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes tv-woman {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-2px) rotate(2deg); }
  40% { transform: translateY(0) rotate(0deg); }
  60% { transform: translateY(-2px) rotate(-2deg); }
  80% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tv-judge {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tv-window {
  0% { opacity:.2; }
  50% { opacity:.5; }
  100% { opacity:.1; }
}
@keyframes tv-light {
  0% { opacity:.3; transform: skewX(0deg); }
  50% { opacity:.6; transform: skewX(-2deg); }
  100% { opacity:.2; transform: skewX(1deg); }
}
@keyframes tv-candle {
  0% { transform: scaleY(1) scaleX(1); opacity:.8; }
  30% { transform: scaleY(1.05) scaleX(.97); opacity:1; }
  60% { transform: scaleY(.95) scaleX(1.03); opacity:.9; }
  100% { transform: scaleY(1) scaleX(1); opacity:.8; }
}

/* saval-morning-gloom */
.scn-saval-morning-gloom {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 30%, #1a1a2a 60%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 60%, #2a2a3a 0%, transparent 60%);
}
.scn-saval-morning-gloom .room {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: smg-room 18s ease-in-out infinite alternate;
}
.scn-saval-morning-gloom .window {
  position:absolute; top:10%; left:20%; width:80px; height:100px;
  background: radial-gradient(ellipse at center, rgba(180,180,200,.15) 0%, transparent 80%);
  border: 3px solid #3a3a4a; border-radius:6px;
  box-shadow: inset 0 0 30px rgba(180,180,200,.1);
  animation: smg-window 8s ease-in-out infinite alternate;
}
.scn-saval-morning-gloom .figure {
  position:absolute; bottom:42%; left:20%; width:30px; height:55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: smg-figure 5s ease-in-out infinite;
}
.scn-saval-morning-gloom .leaf-a {
  position:absolute; top:30%; left:70%; width:12px; height:8px;
  background: #5a4a3a;
  border-radius: 50% 10% 50% 10%;
  transform: rotate(30deg);
  animation: smg-leaf-a 7s ease-in-out infinite;
}
.scn-saval-morning-gloom .leaf-b {
  position:absolute; top:20%; left:80%; width:10px; height:6px;
  background: #6a5a4a;
  border-radius: 50% 10% 50% 10%;
  transform: rotate(-20deg);
  animation: smg-leaf-b 9s ease-in-out infinite;
}
.scn-saval-morning-gloom .leaf-c {
  position:absolute; top:45%; left:65%; width:14px; height:10px;
  background: #4a3a2a;
  border-radius: 50% 10% 50% 10%;
  transform: rotate(10deg);
  animation: smg-leaf-c 6s ease-in-out infinite;
}
.scn-saval-morning-gloom .rain {
  position:absolute; inset:0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 18px, rgba(180,180,200,.15) 18px, rgba(180,180,200,.15) 20px);
  animation: smg-rain 2s linear infinite;
}

@keyframes smg-room {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.7; }
}
@keyframes smg-window {
  0% { opacity:.2; box-shadow: inset 0 0 10px rgba(180,180,200,.05); }
  50% { opacity:.5; box-shadow: inset 0 0 30px rgba(180,180,200,.15); }
  100% { opacity:.15; box-shadow: inset 0 0 10px rgba(180,180,200,.05); }
}
@keyframes smg-figure {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  60% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes smg-leaf-a {
  0% { transform: rotate(30deg) translateX(0) translateY(0); opacity:1; }
  25% { transform: rotate(25deg) translateX(-20px) translateY(20px); opacity:.8; }
  50% { transform: rotate(35deg) translateX(-40px) translateY(40px); opacity:.6; }
  75% { transform: rotate(20deg) translateX(-60px) translateY(60px); opacity:.4; }
  100% { transform: rotate(30deg) translateX(-80px) translateY(80px); opacity:0; }
}
@keyframes smg-leaf-b {
  0% { transform: rotate(-20deg) translateX(0) translateY(0); opacity:1; }
  25% { transform: rotate(-15deg) translateX(-15px) translateY(15px); opacity:.8; }
  50% { transform: rotate(-25deg) translateX(-30px) translateY(30px); opacity:.6; }
  75% { transform: rotate(-10deg) translateX(-45px) translateY(45px); opacity:.4; }
  100% { transform: rotate(-20deg) translateX(-60px) translateY(60px); opacity:0; }
}
@keyframes smg-leaf-c {
  0% { transform: rotate(10deg) translateX(0) translateY(0); opacity:1; }
  25% { transform: rotate(15deg) translateX(-25px) translateY(25px); opacity:.8; }
  50% { transform: rotate(5deg) translateX(-50px) translateY(50px); opacity:.6; }
  75% { transform: rotate(20deg) translateX(-75px) translateY(75px); opacity:.4; }
  100% { transform: rotate(10deg) translateX(-100px) translateY(100px); opacity:0; }
}
@keyframes smg-rain {
  0% { background-position: 0 0; }
  100% { background-position: 0 40px; }
}

/* sandres-encounter: warm overcast, large woman, fruit juice */
.scn-sandres-encounter { background: linear-gradient(180deg, #b0a090 0%, #8c7a6a 50%, #5a4a3a 100%), radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 80%); overflow: hidden; }
.scn-sandres-encounter .bg-sky-overcast { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #c8b8a8 0%, #a09080 100%); filter: blur(4px); animation: sand1-sky 12s ease-in-out infinite alternate; }
.scn-sandres-encounter .bg-ground-warm { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; }
.scn-sandres-encounter .woman-shadow { position: absolute; bottom: 8%; left: 50%; width: 120px; height: 40px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%); animation: sand1-shadow 6s ease-in-out infinite; }
.scn-sandres-encounter .woman-body { position: absolute; bottom: 10%; left: 50%; width: 90px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: sand1-body 8s ease-in-out infinite; }
.scn-sandres-encounter .woman-face { position: absolute; bottom: 55%; left: 50%; width: 36px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #b09070 0%, #8a6a4a 100%); border-radius: 50% 50% 40% 40%; clip-path: polygon(20% 0%, 80% 0%, 100% 50%, 80% 100%, 20% 100%, 0% 50%); animation: sand1-face 4s ease-in-out infinite alternate; }
.scn-sandres-encounter .arm-left { position: absolute; bottom: 25%; left: 30%; width: 16px; height: 70px; transform-origin: top center; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 40% 40% 50% 50% / 30% 30% 40% 40%; transform: rotate(15deg); animation: sand1-arm-left 5s ease-in-out infinite alternate; }
.scn-sandres-encounter .arm-right { position: absolute; bottom: 25%; right: 30%; width: 16px; height: 70px; transform-origin: top center; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 40% 40% 50% 50% / 30% 30% 40% 40%; transform: rotate(-15deg); animation: sand1-arm-right 5s ease-in-out infinite alternate; }
.scn-sandres-encounter .juice-drip { position: absolute; bottom: 20%; left: 50%; width: 4px; height: 60px; transform: translateX(20px); background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 6px 2px rgba(200,85,61,0.4); animation: sand1-drip 3s ease-in-out infinite; }
@keyframes sand1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sand1-shadow { 0%, 100% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.1); } }
@keyframes sand1-body { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } }
@keyframes sand1-face { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(5deg); } }
@keyframes sand1-arm-left { 0% { transform: rotate(10deg); } 100% { transform: rotate(25deg); } }
@keyframes sand1-arm-right { 0% { transform: rotate(-10deg); } 100% { transform: rotate(-25deg); } }
@keyframes sand1-drip { 0%, 100% { transform: translateX(20px) translateY(0) scaleY(1); opacity: 0.8; } 50% { transform: translateX(20px) translateY(20px) scaleY(1.2); opacity: 1; } }

/* sandres-confession: warm overcast interior, laughter, stain */
.scn-sandres-confession { background: linear-gradient(135deg, #c0a080 0%, #806050 50%, #5a4030 100%), radial-gradient(circle at 50% 50%, #8a6a4a 0%, transparent 70%); overflow: hidden; }
.scn-sandres-confession .bg-room-warm { position: absolute; inset: 0; background: linear-gradient(180deg, #d0b8a0 0%, #a08870 100%); opacity: 0.6; animation: sand2-room 15s ease-in-out infinite alternate; }
.scn-sandres-confession .carpet-stain { position: absolute; bottom: 5%; left: 40%; width: 80px; height: 40px; background: radial-gradient(ellipse at 30% 50%, #702243 0%, #5a1a1d 40%, transparent 70%); border-radius: 50%; transform: rotate(-10deg); animation: sand2-stain 8s ease-in-out infinite; }
.scn-sandres-confession .figure-lean { position: absolute; bottom: 15%; left: 50%; width: 80px; height: 140px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; animation: sand2-lean 6s ease-in-out infinite alternate; }
.scn-sandres-confession .torso-warm { position: absolute; bottom: 30%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40%; }
.scn-sandres-confession .face-profile { position: absolute; bottom: 60%; left: 45%; width: 30px; height: 35px; background: linear-gradient(180deg, #b09070 0%, #8a6a4a 100%); border-radius: 50% 10% 40% 50% / 60% 20% 40% 50%; transform: rotate(-10deg); animation: sand2-laugh 3s ease-in-out infinite; }
.scn-sandres-confession .hand-extend { position: absolute; bottom: 40%; left: 65%; width: 14px; height: 50px; transform-origin: top center; background: linear-gradient(180deg, #b09070 0%, #8a6a4a 100%); border-radius: 40% 40% 50% 50%; transform: rotate(-30deg) scaleX(0.8); animation: sand2-reach 4s ease-in-out infinite alternate; }
.scn-sandres-confession .juice-falling { position: absolute; bottom: 30%; left: 60%; width: 3px; height: 30px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,85,61,0.4); animation: sand2-drip 2.5s ease-in-out infinite; }
@keyframes sand2-room { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes sand2-stain { 0%, 100% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.2); } }
@keyframes sand2-lean { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-40%) rotate(-5deg); } }
@keyframes sand2-laugh { 0%, 100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(5px); } }
@keyframes sand2-reach { 0% { transform: rotate(-30deg) scaleX(0.8); } 100% { transform: rotate(-20deg) scaleX(1.1); } }
@keyframes sand2-drip { 0%, 100% { transform: translateY(0); opacity: 0.6; } 50% { transform: translateY(15px); opacity: 1; } }

/* saval-aftermath: dark overcast rain, river, driven walk */
.scn-saval-aftermath { background: linear-gradient(180deg, #2a303a 0%, #1a1e24 50%, #0d1114 100%), radial-gradient(ellipse at 50% 100%, #1a1e24 0%, transparent 70%); overflow: hidden; }
.scn-saval-aftermath .bg-storm-dark { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #3a404a 0%, #1a1e24 100%); filter: blur(8px); animation: sav3-sky 20s ease-in-out infinite alternate; }
.scn-saval-aftermath .river-bank { position: absolute; bottom: 15%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 70% 30% 0 0 / 60% 40% 0 0; }
.scn-saval-aftermath .river-water { position: absolute; bottom: 5%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a2a3a 0%, #0d151a 100%); border-radius: 40% 60% 0 0 / 80% 40% 0 0; animation: sav3-flow 8s ease-in-out infinite alternate; }
.scn-saval-aftermath .figure-walk { position: absolute; bottom: 20%; left: 20%; width: 16px; height: 40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%; animation: sav3-walk 3s linear infinite; }
.scn-saval-aftermath .instinct-shadow { position: absolute; bottom: 18%; left: 20%; width: 40px; height: 10px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); transform: translateX(10px); animation: sav3-shadow 3s linear infinite; }
.scn-saval-aftermath .rain-layer { position: absolute; inset: 0; background: linear-gradient(135deg, transparent 40%, rgba(90,100,120,0.2) 50%, transparent 60%); background-size: 200% 200%; filter: blur(2px); animation: sav3-rain 0.8s linear infinite; }
@keyframes sav3-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes sav3-flow { 0% { transform: translateX(0) scaleY(1); } 100% { transform: translateX(-20px) scaleY(1.1); } }
@keyframes sav3-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(30px) rotate(-3deg); } 50% { transform: translateX(60px) rotate(0deg); } 75% { transform: translateX(90px) rotate(3deg); } 100% { transform: translateX(120px) rotate(0deg); } }
@keyframes sav3-shadow { 0% { transform: translateX(10px) scaleX(1); opacity: 0.6; } 50% { transform: translateX(40px) scaleX(1.5); opacity: 0.3; } 100% { transform: translateX(70px) scaleX(1); opacity: 0.6; } }
@keyframes sav3-rain { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

/* marguerite-deathbed: dark dim interior, dying woman, candle */
.scn-marguerite-deathbed { background: linear-gradient(180deg, #1a1110 0%, #0d0808 50%, #050202 100%), radial-gradient(circle at 20% 80%, #2a1a15 0%, transparent 60%); overflow: hidden; }
.scn-marguerite-deathbed .bg-dim-room { position: absolute; inset: 0; background: linear-gradient(135deg, #1a1515 0%, #0d0a0a 100%); animation: mar4-dark 20s ease-in-out infinite alternate; }
.scn-marguerite-deathbed .bed-frame { position: absolute; bottom: 5%; left: 10%; right: 10%; height: 50%; background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%); border-radius: 10% 10% 4% 4% / 40% 40% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
.scn-marguerite-deathbed .body-sheet { position: absolute; bottom: 15%; left: 20%; right: 20%; height: 35%; background: linear-gradient(180deg, #d8d0c8 0%, #b8b0a8 100%); border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: mar4-breathe 6s ease-in-out infinite; }
.scn-marguerite-deathbed .face-haggard { position: absolute; bottom: 40%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #b8a090 0%, #8a7060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: mar4-decay 15s ease-in-out infinite alternate; }
.scn-marguerite-deathbed .eyes-hollow { position: absolute; bottom: 48%; left: 50%; width: 30px; height: 8px; transform: translateX(-50%); background: #0a0505; border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.8); animation: mar4-gaze 8s ease-in-out infinite; }
.scn-marguerite-deathbed .hand-claw { position: absolute; bottom: 20%; left: 25%; width: 12px; height: 30px; background: linear-gradient(180deg, #b8a090 0%, #7a6050 100%); border-radius: 40% 40% 50% 50%; transform: rotate(10deg) scaleX(0.6); animation: mar4-claw 12s ease-in-out infinite alternate; }
.scn-marguerite-deathbed .candle-glow { position: absolute; bottom: 30%; right: 15%; width: 20px; height: 40px; background: radial-gradient(circle at 50% 100%, #806040 0%, #4a2a1a 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(128,96,64,0.3); animation: mar4-flicker 2s ease-in-out infinite alternate; }
@keyframes mar4-dark { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes mar4-breathe { 0%, 100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } }
@keyframes mar4-decay { 0% { filter: blur(1px); opacity: 0.8; } 100% { filter: blur(3px); opacity: 0.4; } }
@keyframes mar4-gaze { 0%, 100% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-40%) scaleX(0.8); } }
@keyframes mar4-claw { 0% { transform: rotate(10deg) scaleX(0.6); } 100% { transform: rotate(20deg) scaleX(0.8); } }
@keyframes mar4-flicker { 0% { box-shadow: 0 0 40px 10px rgba(128,96,64,0.2); opacity: 0.8; } 100% { box-shadow: 0 0 80px 30px rgba(128,96,64,0.5); opacity: 1; } }

/* Scene: celeste-disapproval (bright-interior, tense) */
.scn-celeste-disapproval {
  background: linear-gradient(180deg, #f5f0e8 0%, #e8dcc8 50%, #d4c4a8 100%),
              radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 60%);
}
.scn-celeste-disapproval .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #e8e0d8 0%, #d4c8b8 100%); }
.scn-celeste-disapproval .window { position:absolute; top:8%; left:55%; width:130px; height:160px; background: linear-gradient(180deg, #fff8e0 0%, #f0e8d0 100%); border:4px solid #8a7a6a; border-radius:4px; box-shadow:0 0 40px 20px rgba(255,248,224,0.5); animation: cd-window 8s ease-in-out infinite alternate; }
.scn-celeste-disapproval .mother { position:absolute; bottom:18%; left:25%; width:42px; height:145px; background: linear-gradient(180deg, #4a3c34 0%, #2a1e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-mother 3s ease-in-out infinite; }
.scn-celeste-disapproval .child { position:absolute; bottom:18%; left:48%; width:30px; height:100px; background: linear-gradient(180deg, #5a4c44 0%, #3a2c24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cd-child 2.2s ease-in-out infinite; }
.scn-celeste-disapproval .toy { position:absolute; bottom:12%; left:52%; width:22px; height:22px; background: #c8553d; border-radius:50%; animation: cd-toy 1.8s ease-in-out infinite; }
.scn-celeste-disapproval .book { position:absolute; bottom:8%; left:44%; width:32px; height:20px; background: #8a7a6a; border-radius:2px; transform: rotate(-10deg); animation: cd-book 6s ease-in-out infinite; }
@keyframes cd-window { 0% { opacity:0.7; box-shadow:0 0 30px 15px rgba(255,248,224,0.4); } 50% { opacity:1; box-shadow:0 0 50px 25px rgba(255,248,224,0.6); } 100% { opacity:0.8; box-shadow:0 0 35px 18px rgba(255,248,224,0.5); } }
@keyframes cd-mother { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(-2px) rotate(-2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(2px) rotate(2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes cd-child { 0% { transform:translateX(0) scale(1); } 50% { transform:translateX(5px) scale(0.96); } 100% { transform:translateX(-2px) scale(1.02); } }
@keyframes cd-toy { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-5px) rotate(12deg); } 50% { transform:translateY(0) rotate(0deg); } 75% { transform:translateY(-3px) rotate(-12deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes cd-book { 0% { transform:rotate(-10deg) translateX(0); } 50% { transform:rotate(-8deg) translateX(3px); } 100% { transform:rotate(-12deg) translateX(-2px); } }

/* Scene: jean-spoiled (bright-interior, tense) */
.scn-jean-spoiled {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #b8a088 100%),
              radial-gradient(ellipse at 50% 30%, #fff0d8 0%, transparent 70%);
}
.scn-jean-spoiled .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 100%); }
.scn-jean-spoiled .table { position:absolute; bottom:18%; left:15%; right:15%; height:10px; background: #6a5a4a; border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,0.3); }
.scn-jean-spoiled .cake { position:absolute; bottom:20%; left:48%; width:40px; height:40px; background: #f0c8a0; border-radius:50%; box-shadow:0 0 10px rgba(0,0,0,0.2); animation: js-cake 4s ease-in-out infinite; }
.scn-jean-spoiled .father { position:absolute; bottom:18%; left:25%; width:45px; height:150px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2c24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: js-father 3.2s ease-in-out infinite; }
.scn-jean-spoiled .child { position:absolute; bottom:18%; right:28%; width:35px; height:110px; background: linear-gradient(180deg, #5a4c44 0%, #2a1e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: js-child 2.5s ease-in-out infinite; }
.scn-jean-spoiled .toy { position:absolute; bottom:15%; right:18%; width:25px; height:15px; background: #c8553d; border-radius:5px; animation: js-toy 1.8s ease-in-out infinite; }
@keyframes js-cake { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.1) rotate(5deg); } 100% { transform:scale(1) rotate(-5deg); } }
@keyframes js-father { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(5px) rotate(2deg); } 60% { transform:translateX(-5px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes js-child { 0% { transform:translateX(0) scaleY(1); } 50% { transform:translateX(-3px) scaleY(1.02); } 100% { transform:translateX(3px) scaleY(0.98); } }
@keyframes js-toy { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-4px) rotate(15deg); } 50% { transform:translateY(0) rotate(0deg); } 75% { transform:translateY(-2px) rotate(-15deg); } 100% { transform:translateY(0) rotate(0deg); } }

/* Scene: lemonnier-indulgence (bright-interior, warm) */
.scn-lemonnier-indulgence {
  background: linear-gradient(180deg, #f5ead0 0%, #e8d4a0 50%, #d4b880 100%),
              radial-gradient(ellipse at 40% 30%, #fff0d0 0%, transparent 70%);
}
.scn-lemonnier-indulgence .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #f5ead0 0%, #e8d4a0 100%); }
.scn-lemonnier-indulgence .table { position:absolute; bottom:18%; left:12%; right:12%; height:10px; background: #6a5a4a; border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,0.2); }
.scn-lemonnier-indulgence .broth { position:absolute; bottom:20%; left:32%; width:50px; height:40px; background: #b87878; border-radius: 50% 50% 40% 40%; box-shadow:0 0 10px rgba(0,0,0,0.1); animation: li-broth 5s ease-in-out infinite; }
.scn-lemonnier-indulgence .cake-plate { position:absolute; bottom:20%; left:55%; width:45px; height:45px; background: #f0c8a0; border-radius: 50% 50% 45% 45%; box-shadow:0 0 10px rgba(0,0,0,0.2); animation: li-cake 6s ease-in-out infinite; }
.scn-lemonnier-indulgence .father { position:absolute; bottom:18%; left:22%; width:50px; height:160px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3c34 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: li-father 4s ease-in-out infinite; }
.scn-lemonnier-indulgence .child { position:absolute; bottom:18%; right:28%; width:30px; height:100px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2c24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: li-child 3.5s ease-in-out infinite; }
.scn-lemonnier-indulgence .spoon { position:absolute; bottom:25%; left:36%; width:8px; height:30px; background: #c0b0a0; border-radius:2px; transform:rotate(30deg); animation: li-spoon 3s ease-in-out infinite; }
@keyframes li-broth { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.9; transform:scale(0.98); } }
@keyframes li-cake { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-2px) rotate(3deg); } 60% { transform:translateY(1px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes li-father { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(3px) rotate(1deg); } 100% { transform:translateX(-3px) rotate(-1deg); } }
@keyframes li-child { 0% { transform:translateX(0) scaleY(1); } 50% { transform:translateX(-4px) scaleY(1.03); } 100% { transform:translateX(4px) scaleY(0.97); } }
@keyframes li-spoon { 0% { transform:rotate(30deg) translateX(0); } 50% { transform:rotate(35deg) translateX(2px); } 100% { transform:rotate(25deg) translateX(-2px); } }

/* Scene: celeste-soup-confrontation (gaslit, tense) */
.scn-celeste-soup-confrontation {
  background: linear-gradient(180deg, #2a1e18 0%, #1a120e 50%, #0f0a08 100%),
              radial-gradient(ellipse at 50% 30%, #f0d080 0%, #d4a060 30%, transparent 70%);
}
.scn-celeste-soup-confrontation .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%); }
.scn-celeste-soup-confrontation .table { position:absolute; bottom:12%; left:10%; right:10%; height:12px; background: #6a5a4a; border-radius:3px; box-shadow:0 4px 8px rgba(0,0,0,0.5); }
.scn-celeste-soup-confrontation .tureen { position:absolute; bottom:15%; left:40%; width:80px; height:60px; background: #8a7a6a; border-radius: 50% 50% 40% 40%; box-shadow:0 0 20px 10px rgba(240,208,128,0.3); animation: cc-tureen 4s ease-in-out infinite; }
.scn-celeste-soup-confrontation .steam-1 { position:absolute; bottom:28%; left:44%; width:20px; height:30px; background: rgba(255,255,255,0.15); border-radius:50%; filter:blur(4px); animation: cc-steam1 3s ease-in-out infinite; }
.scn-celeste-soup-confrontation .steam-2 { position:absolute; bottom:28%; left:52%; width:15px; height:25px; background: rgba(255,255,255,0.1); border-radius:50%; filter:blur(3px); animation: cc-steam2 3.5s ease-in-out infinite 0.5s; }
.scn-celeste-soup-confrontation .celeste { position:absolute; bottom:12%; left:18%; width:45px; height:160px; background: linear-gradient(180deg, #4a3c34 0%, #2a1e18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cc-celeste 2s ease-in-out infinite; }
.scn-celeste-soup-confrontation .chair-left { position:absolute; bottom:12%; left:26%; width:30px; height:60px; background: #3a2c24; border-radius: 10% 10% 0 0; animation: cc-chair 6s ease-in-out infinite; }
.scn-celeste-soup-confrontation .chair-right { position:absolute; bottom:12%; right:24%; width:30px; height:60px; background: #3a2c24; border-radius: 10% 10% 0 0; animation: cc-chair 6.5s ease-in-out infinite -0.5s; }
@keyframes cc-tureen { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.02) rotate(2deg); } 100% { transform:scale(0.98) rotate(-2deg); } }
@keyframes cc-steam1 { 0% { transform:translateY(0) scale(1); opacity:0.3; } 50% { transform:translateY(-10px) scale(1.2); opacity:0.6; } 100% { transform:translateY(0) scale(0.8); opacity:0.2; } }
@keyframes cc-steam2 { 0% { transform:translateY(0) scale(1); opacity:0.2; } 50% { transform:translateY(-8px) scale(1.1); opacity:0.5; } 100% { transform:translateY(0) scale(0.9); opacity:0.15; } }
@keyframes cc-celeste { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(6px) rotate(3deg); } 60% { transform:translateX(-6px) rotate(-3deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes cc-chair { 0% { transform:rotate(0deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-1px); } 100% { transform:rotate(-2deg) translateY(1px); } }

.scn-red-dressed-women{background:linear-gradient(180deg,#ffe6b3 0%,#ffd580 40%,#ffaa55 100%),radial-gradient(circle at 30% 20%,#ffdd88 0%,transparent 60%);}
.scn-red-dressed-women .sky{position:absolute;inset:0 0 35% 0;background:linear-gradient(180deg,#ffdd99 0%,transparent 100%);animation:rdw-sky 10s ease-in-out infinite alternate;}
.scn-red-dressed-women .sun{position:absolute;top:15%;left:65%;width:45px;height:45px;border-radius:50%;background:radial-gradient(#ffeecc,#ffa64d);box-shadow:0 0 40px 10px #ffb366;animation:rdw-sun 6s ease-in-out infinite;}
.scn-red-dressed-women .carriage{position:absolute;bottom:30%;left:25%;width:130px;height:80px;border-radius:10%;background:linear-gradient(180deg,#8b5e3c,#5c3a21);box-shadow:0 8px 16px rgba(0,0,0,.5);animation:rdw-carriage 4s ease-in-out infinite;}
.scn-red-dressed-women .woman1{position:absolute;bottom:35%;left:38%;width:22px;height:45px;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;background:linear-gradient(180deg,#c8553d,#a0461a);transform-origin:bottom center;animation:rdw-women 5s ease-in-out infinite;}
.scn-red-dressed-women .woman2{position:absolute;bottom:35%;left:50%;width:22px;height:45px;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;background:linear-gradient(180deg,#c8553d,#a0461a);transform-origin:bottom center;animation:rdw-women 5s ease-in-out infinite reverse;}
.scn-red-dressed-women .gentleman{position:absolute;bottom:30%;left:55%;width:18px;height:55px;background:linear-gradient(180deg,#2a2a3a,#0a0a1a);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:rdw-gent 8s ease-in-out infinite;}
.scn-red-dressed-women .bouquet{position:absolute;bottom:35%;left:60%;width:10px;height:10px;border-radius:50%;background:#ffaa88;box-shadow:0 0 10px 2px #ffaa88;animation:rdw-bouquet 6s linear infinite;}
@keyframes rdw-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.85}}
@keyframes rdw-sun{0%{transform:scale(1);opacity:.9}50%{transform:scale(1.15);opacity:1}100%{transform:scale(1);opacity:.9}}
@keyframes rdw-carriage{0%{transform:translateY(0)}50%{transform:translateY(-4px)}100%{transform:translateY(0)}}
@keyframes rdw-women{0%{transform:rotate(0deg)}50%{transform:rotate(6deg)}100%{transform:rotate(0deg)}}
@keyframes rdw-gent{0%{transform:rotate(0deg)}30%{transform:rotate(12deg) translateX(8px)}70%{transform:rotate(-8deg) translateX(-5px)}100%{transform:rotate(0deg)}}
@keyframes rdw-bouquet{0%{transform:translate(0,0) scale(1)}50%{transform:translate(35px,-25px) scale(.8)}100%{transform:translate(70px,0) scale(1)}}

.scn-end-of-battle{background:linear-gradient(180deg,#ffb366 0%,#ff7733 50%,#3a4a6a 100%),radial-gradient(circle at 70% 15%,#ffeebb 0%,transparent 50%);}
.scn-end-of-battle .sky{position:absolute;inset:0 0 40% 0;background:linear-gradient(180deg,#ffcc99 0%,transparent 100%);animation:eob-sky 12s ease-in-out infinite alternate;}
.scn-end-of-battle .sun{position:absolute;top:12%;right:10%;width:40px;height:40px;border-radius:50%;background:radial-gradient(#fff4cc,#ffa64d);box-shadow:0 0 30px 8px #ffa64d;animation:eob-sun 15s linear infinite;}
.scn-end-of-battle .sea{position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(180deg,#2a5a7a,#1a3a5a);animation:eob-sea 8s ease-in-out infinite;}
.scn-end-of-battle .carriage{position:absolute;bottom:30%;left:10%;width:120px;height:70px;border-radius:10%;background:linear-gradient(180deg,#6a4a3a,#3a2a1a);box-shadow:0 6px 12px rgba(0,0,0,.4);animation:eob-carriage 5s ease-in-out infinite;}
.scn-end-of-battle .womanA{position:absolute;bottom:35%;left:15%;width:18px;height:40px;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;background:linear-gradient(180deg,#c8553d,#a0461a);transform-origin:bottom center;animation:eob-woman 5s ease-in-out infinite;}
.scn-end-of-battle .womanB{position:absolute;bottom:35%;left:22%;width:18px;height:40px;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;background:linear-gradient(180deg,#c8553d,#a0461a);transform-origin:bottom center;animation:eob-woman 5s ease-in-out infinite .5s;}
.scn-end-of-battle .flowers{position:absolute;bottom:40%;left:25%;width:8px;height:8px;border-radius:50%;background:#ffaa88;box-shadow:15px 10px 0 #ffaa88,-10px 20px 0 #ffaa88,30px 5px 0 #ffaa88;animation:eob-flowers 7s linear infinite;}
@keyframes eob-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.85}}
@keyframes eob-sun{0%{transform:translate(0,0) scale(1)}50%{transform:translate(0,15px) scale(.9)}100%{transform:translate(0,35px) scale(.4);opacity:.3}}
@keyframes eob-sea{0%{background-position:0 0}50%{background-position:-20px 0}100%{background-position:0 0}}
@keyframes eob-carriage{0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)}}
@keyframes eob-woman{0%{transform:rotate(0deg)}50%{transform:rotate(5deg)}100%{transform:rotate(0deg)}}
@keyframes eob-flowers{0%{transform:translate(0,0);opacity:1}100%{transform:translate(-30px,60px);opacity:0}}

.scn-sunset-conversation{background:linear-gradient(180deg,#2a2a5a 0%,#4a3a6a 40%,#1a1a3a 100%),radial-gradient(circle at 30% 80%,#5a5a8a 0%,transparent 70%);}
.scn-sunset-conversation .sky{position:absolute;inset:0 0 50% 0;background:linear-gradient(180deg,#4a4a7a 0%,transparent 100%);animation:suc-sky 15s ease-in-out infinite alternate;}
.scn-sunset-conversation .water{position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#1a3a5a,#0a1a2a);animation:suc-water 10s ease-in-out infinite;}
.scn-sunset-conversation .rail{position:absolute;bottom:48%;left:5%;right:5%;height:3px;background:#3a3a5a;border-radius:3px;animation:suc-rail 8s ease-in-out infinite;}
.scn-sunset-conversation .figure1{position:absolute;bottom:50%;left:25%;width:25px;height:45px;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;background:#2a2a3a;transform-origin:bottom center;animation:suc-fig 6s ease-in-out infinite;}
.scn-sunset-conversation .figure2{position:absolute;bottom:50%;left:45%;width:25px;height:45px;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;background:#2a2a3a;transform-origin:bottom center;animation:suc-fig 6s ease-in-out infinite -2s;}
.scn-sunset-conversation .robe1{position:absolute;bottom:50%;left:22%;width:35px;height:35px;border-radius:50% 50% 40% 40%;background:linear-gradient(180deg,#5a3a3a,#3a2a2a);transform-origin:top center;animation:suc-robe 12s ease-in-out infinite;}
.scn-sunset-conversation .robe2{position:absolute;bottom:50%;left:42%;width:35px;height:35px;border-radius:50% 50% 40% 40%;background:linear-gradient(180deg,#5a3a3a,#3a2a2a);transform-origin:top center;animation:suc-robe 12s ease-in-out infinite -4s;}
@keyframes suc-sky{0%{opacity:.7}50%{opacity:.9}100%{opacity:.75}}
@keyframes suc-water{0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)}}
@keyframes suc-rail{0%{transform:scaleX(1)}50%{transform:scaleX(1.02)}100%{transform:scaleX(1)}}
@keyframes suc-fig{0%{transform:rotate(-5deg)}50%{transform:rotate(8deg)}100%{transform:rotate(-5deg)}}
@keyframes suc-robe{0%{transform:rotate(0deg)}50%{transform:rotate(6deg)}100%{transform:rotate(0deg)}}

.scn-trial-mystery-setup{background:linear-gradient(180deg,#1a1a2a 0%,#3a2a3a 50%,#1a1a1a 100%),radial-gradient(circle at 50% 30%,#4a3a4a 0%,transparent 80%);}
.scn-trial-mystery-setup .wall{position:absolute;inset:0 0 50% 0;background:linear-gradient(180deg,#2a2a3a,#1a1a2a);animation:trm-wall 8s ease-in-out infinite alternate;}
.scn-trial-mystery-setup .floor{position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#2a1a1a,#1a0a0a);animation:trm-floor 12s ease-in-out infinite;}
.scn-trial-mystery-setup .lamp{position:absolute;top:25%;left:50%;width:18px;height:30px;border-radius:20% 20% 10% 10%;background:linear-gradient(180deg,#ffcc66,#e69933);box-shadow:0 0 40px 15px #ffcc66,0 0 80px 30px rgba(255,204,102,.4);animation:trm-lamp 3s ease-in-out infinite;}
.scn-trial-mystery-setup .bench{position:absolute;bottom:35%;left:25%;right:25%;height:35px;border-radius:5px;background:linear-gradient(180deg,#4a3a2a,#2a1a0a);box-shadow:0 4px 8px rgba(0,0,0,.6);animation:trm-bench 10s ease-in-out infinite;}
.scn-trial-mystery-setup .girl{position:absolute;bottom:28%;left:45%;width:16px;height:48px;border-radius:50% 50% 40% 40%/60% 60% 40% 40%;background:linear-gradient(180deg,#2a2a2a,#0a0a0a);transform-origin:bottom center;animation:trm-girl 4s ease-in-out infinite;}
.scn-trial-mystery-setup .jury{position:absolute;bottom:45%;left:10%;right:10%;height:20px;background:repeating-linear-gradient(90deg,#3a3a4a 0px,#3a3a4a 8px,transparent 8px,transparent 16px);animation:trm-jury 15s ease-in-out infinite;}
.scn-trial-mystery-setup .chair{position:absolute;bottom:25%;left:25%;width:20px;height:60px;border-radius:10% 10% 5% 5%;background:linear-gradient(180deg,#2a2a3a,#1a1a2a);transform-origin:bottom center;animation:trm-chair 6s ease-in-out infinite;}
@keyframes trm-wall{0%{opacity:.9}50%{opacity:1}100%{opacity:.85}}
@keyframes trm-floor{0%{transform:translateY(0)}50%{transform:translateY(2px)}100%{transform:translateY(0)}}
@keyframes trm-lamp{0%{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}100%{opacity:.85;transform:scale(.95)}}
@keyframes trm-bench{0%{transform:translateX(0)}50%{transform:translateX(-2px)}100%{transform:translateX(0)}}
@keyframes trm-girl{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 trm-jury{0%{transform:translateX(0)}50%{transform:translateX(5px)}100%{transform:translateX(0)}}
@keyframes trm-chair{0%{transform:rotate(0deg)}50%{transform:rotate(3deg)}100%{transform:rotate(0deg)}}

.scn-priest-visit { background: linear-gradient(145deg, #1a1410 0%, #2c1e18 60%, #3a2822 100%), radial-gradient(ellipse at 30% 50%, #4a3228 0%, transparent 80%); }
.scn-priest-visit .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1e1814 0%, #2a201c 100%); }
.scn-priest-visit .door-arch { position:absolute; bottom:0; left:25%; width:50%; height:85%; background: #0a0808; border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-priest-visit .priest { position:absolute; bottom:0; left:35%; width:30%; height:75%; background: linear-gradient(135deg, #2a1e1a 0%, #0f0a08 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: sway-prv 4s ease-in-out infinite; }
.scn-priest-visit .child-left { position:absolute; bottom:15%; left:20%; width:12%; height:20%; background: #1a1412; border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: sob-prv 1.2s ease-in-out infinite; }
.scn-priest-visit .child-right { position:absolute; bottom:18%; right:22%; width:10%; height:18%; background: #1a1412; border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: sob-prv 1.5s ease-in-out infinite 0.3s; }
.scn-priest-visit .table { position:absolute; bottom:10%; left:45%; width:15%; height:8%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-priest-visit .lantern { position:absolute; bottom:35%; left:48%; width:6%; height:10%; background: radial-gradient(circle, #c8a060 0%, #8a6030 100%); border-radius: 20%; box-shadow: 0 0 30px 10px rgba(200,160,96,.5), 0 0 60px 20px rgba(200,160,96,.2); animation: flicker-prv 0.8s ease-in-out infinite alternate; }
.scn-priest-visit .light-halo { position:absolute; inset:0; background: radial-gradient(ellipse at 48% 40%, rgba(200,160,96,.15) 0%, transparent 50%); animation: pulse-prv 3s ease-in-out infinite alternate; }
@keyframes sway-prv { 0%,100% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(1deg) translateX(2px); } 70% { transform: rotate(-1deg) translateX(-2px); } }
@keyframes sob-prv { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(3deg); } 60% { transform: translateY(2px) rotate(-2deg); } }
@keyframes flicker-prv { 0% { opacity: .8; box-shadow: 0 0 20px 5px rgba(200,160,96,.4); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(200,160,96,.7); } 100% { opacity: .85; box-shadow: 0 0 25px 8px rgba(200,160,96,.5); } }
@keyframes pulse-prv { 0% { opacity: .5; } 50% { opacity: 1; } 100% { opacity: .7; } }

.scn-children-grief { background: linear-gradient(180deg, #0a0810 0%, #141018 40%, #1c1420 100%), radial-gradient(ellipse at 50% 70%, #22182a 0%, transparent 80%); }
.scn-children-grief .bg-panel { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #141018 0px, #1c1420 4px, #141018 8px); }
.scn-children-grief .bed-drape { position:absolute; top:10%; left:10%; width:45%; height:90%; background: linear-gradient(135deg, #b8b0b0 0%, #8a8282 50%, #5a5252 100%); border-radius: 0 60% 0 0 / 0 80% 0 0; opacity: .9; animation: drape-shift-cgr 8s ease-in-out infinite alternate; }
.scn-children-grief .judge-figure { position:absolute; bottom:5%; left:20%; width:25%; height:45%; background: linear-gradient(180deg, #2a2228 0%, #0f0a12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: heave-cgr 2s ease-in-out infinite; }
.scn-children-grief .sister-figure { position:absolute; bottom:10%; right:15%; width:20%; height:50%; background: linear-gradient(180deg, #221a20 0%, #0a060a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: right bottom; animation: convulse-cgr 0.6s ease-in-out infinite alternate; }
.scn-children-grief .shadow-veil { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 70%); animation: shadow-move-cgr 5s ease-in-out infinite alternate; }
@keyframes drape-shift-cgr { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(0.95) translateX(-5px); } }
@keyframes heave-cgr { 0%,100% { transform: translateY(0) scaleY(1); } 30% { transform: translateY(-8px) scaleY(1.02); } 60% { transform: translateY(4px) scaleY(0.98); } }
@keyframes convulse-cgr { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(5deg) translateX(-3px); } 100% { transform: rotate(-2deg) translateX(2px); } }
@keyframes shadow-move-cgr { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }

.scn-letters-discovery { background: linear-gradient(160deg, #2a1f14 0%, #1a1410 40%, #0f0a06 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%); }
.scn-letters-discovery .bg-wood { position:absolute; inset:0; background: repeating-linear-gradient(90deg, rgba(0,0,0,.2) 0px, transparent 2px, rgba(0,0,0,.2) 4px); }
.scn-letters-discovery .desk-surface { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-letters-discovery .wood-drawer { position:absolute; bottom:15%; left:25%; width:50%; height:30%; background: linear-gradient(180deg, #3a281a 0%, #1a0e08 100%); border: 2px solid #0a0604; border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,.8); }
.scn-letters-discovery .letters-stack { position:absolute; bottom:30%; left:30%; width:35%; height:20%; background: linear-gradient(135deg, #d4c8b8 0%, #b8a898 50%, #a09080 100%); border-radius: 2px; transform: perspective(600px) rotateX(5deg) rotateY(-5deg); box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-letters-discovery .hand-left { position:absolute; bottom:35%; left:22%; width:15%; height:25%; background: radial-gradient(ellipse at 50% 80%, #d4c0b0 0%, #a08878 50%, #705850 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hand-tremble-ldi 3s ease-in-out infinite; }
.scn-letters-discovery .hand-right { position:absolute; bottom:35%; right:25%; width:15%; height:25%; background: radial-gradient(ellipse at 50% 80%, #d4c0b0 0%, #a08878 50%, #705850 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hand-tremble-ldi 3s ease-in-out infinite 0.5s; }
.scn-letters-discovery .candle-base { position:absolute; bottom:45%; left:55%; width:6%; height:15%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-letters-discovery .candle-flame { position:absolute; bottom:58%; left:56.5%; width:3%; height:6%; background: radial-gradient(circle, #fff0c0 0%, #f0c060 40%, #c08030 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(240,192,96,.6), 0 0 40px 16px rgba(240,192,96,.3); animation: flame-breathe-ldi 2s ease-in-out infinite alternate; }
@keyframes hand-tremble-ldi { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } }
@keyframes flame-breathe-ldi { 0% { transform: scaleY(0.9) scaleX(1); opacity: .8; } 50% { transform: scaleY(1.3) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(1) scaleX(1.1); opacity: .9; } }

.scn-reading-letters { background: linear-gradient(180deg, #1c1814 0%, #28201c 40%, #1a1410 100%), radial-gradient(ellipse at 50% 40%, #2a2220 0%, #0a0808 80%); }
.scn-reading-letters .table-top { position:absolute; inset: 10% 5% 5% 5%; background: linear-gradient(160deg, #2c201a 0%, #1a120e 100%); border-radius: 20% 20% 10% 10% / 10% 10% 5% 5%; box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-reading-letters .open-letter { position:absolute; bottom:25%; left:20%; width:60%; height:50%; background: linear-gradient(135deg, #e8dcc8 0%, #d0c4b0 50%, #b8a898 100%); transform: perspective(800px) rotateX(5deg) rotateY(-2deg); border-radius: 2px; box-shadow: 0 8px 24px rgba(0,0,0,.5); }
.scn-reading-letters .letter-shade { position:absolute; bottom:25%; left:20%; width:60%; height:50%; background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.15) 100%); transform: perspective(800px) rotateX(5deg) rotateY(-2deg); border-radius: 2px; }
.scn-reading-letters .hand-left { position:absolute; bottom:30%; left:15%; width:18%; height:30%; background: radial-gradient(ellipse at 50% 80%, #e0d0c0 0%, #b0a090 50%, #807060 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hand-read-rle 4s ease-in-out infinite; }
.scn-reading-letters .hand-right { position:absolute; bottom:30%; right:15%; width:18%; height:30%; background: radial-gradient(ellipse at 50% 80%, #e0d0c0 0%, #b0a090 50%, #807060 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hand-read-rle 4s ease-in-out infinite 2s; }
.scn-reading-letters .rosary { position:absolute; bottom:15%; left:45%; width:10%; height:15%; background: transparent; border: 3px solid #6a5a4a; border-radius: 50%; box-shadow: inset 0 0 0 3px #8a7a6a; animation: rosary-sway-rle 6s ease-in-out infinite; }
.scn-reading-letters .small-lamp { position:absolute; bottom:40%; right:20%; width:8%; height:20%; background: linear-gradient(180deg, #c8b898 0%, #8a7a5a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 5px rgba(200,184,152,.4); }
.scn-reading-letters .lamp-glow { position:absolute; bottom:35%; right:16%; width:16%; height:30%; background: radial-gradient(ellipse, rgba(200,184,152,.25) 0%, transparent 70%); animation: lamp-throb-rle 3s ease-in-out infinite alternate; }
@keyframes hand-read-rle { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } }
@keyframes rosary-sway-rle { 0%,100% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(5deg) translateX(2px); } 60% { transform: rotate(-3deg) translateX(-1px); } }
@keyframes lamp-throb-rle { 0% { opacity: .6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .8; transform: scale(1); } }

/* ===== rosalie-love-betrayal ===== */
.scn-rosalie-love-betrayal { background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 50%, #0d0505 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%); }
.scn-rosalie-love-betrayal .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 50%, #100808 100%); animation: rlb-wall 12s ease-in-out infinite alternate; }
.scn-rosalie-love-betrayal .window-frame { position:absolute; left:40%; top:20%; width:30%; height:50%; background:transparent; border:8px solid #1a0a0a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); animation: rlb-frame 10s ease-in-out infinite alternate; }
.scn-rosalie-love-betrayal .river-scene { position:absolute; left:40%; top:20%; width:30%; height:50%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 60%, #1a2a3a 100%); border-radius:2px; filter:blur(1px); animation: rlb-river 8s ease-in-out infinite alternate; }
.scn-rosalie-love-betrayal .woman-silhouette { position:absolute; left:48%; bottom:30%; width:24px; height:60px; background: linear-gradient(180deg, #1a0a0a 0%, #0d0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rlb-woman 6s ease-in-out infinite; }
.scn-rosalie-love-betrayal .man-shadow { position:absolute; left:44%; bottom:28%; width:30px; height:70px; background: linear-gradient(180deg, #0d0505 0%, #000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; opacity:.6; transform-origin: bottom center; animation: rlb-man 8s ease-in-out infinite; }
.scn-rosalie-love-betrayal .lamp-glow { position:absolute; left:30%; top:40%; width:20px; height:20px; background: radial-gradient(circle, #c08040 0%, #8a5a2a 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #8a5a2a, 0 0 60px 20px rgba(138,90,42,.3); filter:blur(2px); animation: rlb-lamp 4s ease-in-out infinite alternate; }
.scn-rosalie-love-betrayal .curtain { position:absolute; left:38%; top:15%; width:12%; height:60%; background: linear-gradient(180deg, #3a1a1a 0%, #2a0a0a 100%); border-radius:4px 0 0 4px; transform-origin: left center; animation: rlb-curtain 10s ease-in-out infinite alternate; }
@keyframes rlb-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes rlb-frame { 0% { border-color:#1a0a0a; } 50% { border-color:#2a1a1a; } 100% { border-color:#0a0000; } }
@keyframes rlb-river { 0% { background-position:0 0; } 50% { background-position:10px 5px; } 100% { background-position:-5px -2px; } }
@keyframes rlb-woman { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(3px) rotate(1deg); } 100% { transform:translateX(-1px) rotate(-1deg); } }
@keyframes rlb-man { 0% { transform:translateX(0) scale(1); opacity:.5; } 50% { transform:translateX(-2px) scale(1.02); opacity:.7; } 100% { transform:translateX(2px) scale(.98); opacity:.4; } }
@keyframes rlb-lamp { 0% { box-shadow: 0 0 20px 5px #8a5a2a, 0 0 40px 10px rgba(138,90,42,.2); opacity:.85; } 50% { box-shadow: 0 0 40px 15px #c08040, 0 0 80px 30px rgba(192,128,64,.4); opacity:1; } 100% { box-shadow: 0 0 25px 8px #8a5a2a, 0 0 50px 15px rgba(138,90,42,.25); opacity:.8; } }
@keyframes rlb-curtain { 0% { transform:scaleX(1); } 50% { transform:scaleX(.92); } 100% { transform:scaleX(1.04); } }

/* ===== rosalie-seduction ===== */
.scn-rosalie-seduction { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 30%, #2a2a5a 0%, transparent 70%); }
.scn-rosalie-seduction .night-sky { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 50%, #2a2a4a 100%); animation: rs-sky 15s ease-in-out infinite alternate; }
.scn-rosalie-seduction .moon-glow { position:absolute; left:15%; top:15%; width:60px; height:60px; background: radial-gradient(circle, #c0c8e0 0%, #8a94b0 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px #8a94b0, 0 0 80px 40px rgba(138,148,176,.25); filter:blur(3px); animation: rs-moon 6s ease-in-out infinite alternate; }
.scn-rosalie-seduction .grass-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.5); animation: rs-ground 10s ease-in-out infinite alternate; }
.scn-rosalie-seduction .tree-silhouette { position:absolute; right:20%; bottom:25%; width:40px; height:120px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: rs-tree 20s ease-in-out infinite alternate; }
.scn-rosalie-seduction .woman-figure { position:absolute; left:50%; bottom:25%; width:22px; height:55px; background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rs-woman 6s ease-in-out infinite; }
.scn-rosalie-seduction .man-spectre { position:absolute; left:44%; bottom:22%; width:28px; height:65px; background: linear-gradient(180deg, rgba(40,30,60,.35) 0%, rgba(20,10,40,.1) 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; filter:blur(1px); animation: rs-spectre 8s ease-in-out infinite; }
.scn-rosalie-seduction .moon-beam { position:absolute; left:10%; bottom:30%; width:100%; height:50%; background: linear-gradient(135deg, rgba(192,200,224,.12) 0%, transparent 50%); transform:rotate(-20deg); transform-origin: left bottom; animation: rs-beam 8s ease-in-out infinite alternate; }
@keyframes rs-sky { 0% { opacity:.92; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes rs-moon { 0% { box-shadow: 0 0 30px 15px #8a94b0, 0 0 60px 30px rgba(138,148,176,.2); opacity:.9; } 50% { box-shadow: 0 0 50px 25px #c0c8e0, 0 0 100px 50px rgba(192,200,224,.35); opacity:1; } 100% { box-shadow: 0 0 35px 18px #8a94b0, 0 0 70px 35px rgba(138,148,176,.22); opacity:.85; } }
@keyframes rs-ground { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(1.01); } 100% { transform:translateY(1px) scale(.99); } }
@keyframes rs-tree { 0% { transform:rotate(-1deg); } 50% { transform:rotate(1.5deg); } 100% { transform:rotate(-.5deg); } }
@keyframes rs-woman { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(2px) rotate(1.5deg); } 100% { transform:translateX(-2px) rotate(-1deg); } }
@keyframes rs-spectre { 0% { transform:translateX(0) scale(1); opacity:.3; } 50% { transform:translateX(-3px) scale(1.03); opacity:.5; } 100% { transform:translateX(3px) scale(.97); opacity:.2; } }
@keyframes rs-beam { 0% { transform:rotate(-20deg) translateX(0); opacity:.7; } 50% { transform:rotate(-18deg) translateX(10px); opacity:1; } 100% { transform:rotate(-22deg) translateX(-5px); opacity:.6; } }

/* ===== rosalie-confession ===== */
.scn-rosalie-confession { background: linear-gradient(180deg, #1a1a0e 0%, #0e0e08 30%, #0a0500 100%), radial-gradient(ellipse at 50% 20%, #2a2a1a 0%, transparent 80%); }
.scn-rosalie-confession .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a0e 0%, #0e0e08 40%, #050500 100%); animation: rc-bg 15s ease-in-out infinite alternate; }
.scn-rosalie-confession .stone-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a10 0%, #0a0a05 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: rc-floor 20s ease-in-out infinite alternate; }
.scn-rosalie-confession .chair { position:absolute; left:50%; bottom:22%; width:30px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform-origin: bottom center; animation: rc-chair 10s ease-in-out infinite alternate; }
.scn-rosalie-confession .woman-seated { position:absolute; left:50%; bottom:25%; width:20px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rc-woman 4s ease-in-out infinite; }
.scn-rosalie-confession .president-shadow { position:absolute; right:25%; bottom:20%; width:35px; height:85px; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rc-president 7s ease-in-out infinite; }
.scn-rosalie-confession .light-shaft { position:absolute; left:35%; top:-10%; width:30%; height:80%; background: linear-gradient(135deg, rgba(200,200,180,.12) 0%, rgba(200,200,180,.04) 40%, transparent 70%); transform:rotate(-15deg); transform-origin: left top; filter:blur(2px); animation: rc-light 8s ease-in-out infinite alternate; }
.scn-rosalie-confession .cross-silhouette { position:absolute; left:18%; top:15%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); clip-path: polygon(40% 0, 60% 0, 60% 40%, 100% 40%, 100% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 60%, 0 60%, 0 40%, 40% 40%); animation: rc-cross 12s ease-in-out infinite alternate; }
@keyframes rc-bg { 0% { opacity:.95; } 50% { opacity:1; } 100% { opacity:.88; } }
@keyframes rc-floor { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(1px); } }
@keyframes rc-chair { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(1px) rotate(.5deg); } 100% { transform:translateX(-1px) rotate(-.5deg); } }
@keyframes rc-woman { 0% { transform:translateX(0) rotate(0deg) scale(1); } 50% { transform:translateX(1px) rotate(1.5deg) scale(1.01); } 100% { transform:translateX(-1px) rotate(-1deg) scale(.99); } }
@keyframes rc-president { 0% { transform:translateX(0) scale(1); } 50% { transform:translateX(-2px) scale(1.02); } 100% { transform:translateX(2px) scale(.98); } }
@keyframes rc-light { 0% { transform:rotate(-15deg) translateX(0); opacity:.8; } 50% { transform:rotate(-13deg) translateX(5px); opacity:1; } 100% { transform:rotate(-17deg) translateX(-3px); opacity:.7; } }
@keyframes rc-cross { 0% { opacity:.65; transform:scale(1); } 50% { opacity:.9; transform:scale(1.02); } 100% { opacity:.55; transform:scale(.98); } }

/* ===== rosalie-birth-tragedy ===== */
.scn-rosalie-birth-tragedy { background: linear-gradient(180deg, #0a0505 0%, #140a0a 30%, #1a0e0e 100%), radial-gradient(ellipse at 50% 60%, #1a0a0a 0%, transparent 80%); }
.scn-rosalie-birth-tragedy .kitchen-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e0e 0%, #0a0505 50%, #050200 100%); animation: rbt-wall 20s ease-in-out infinite alternate; }
.scn-rosalie-birth-tragedy .stone-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: rbt-floor 15s ease-in-out infinite alternate; }
.scn-rosalie-birth-tragedy .table-leg { position:absolute; left:60%; bottom:25%; width:8px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:2px; box-shadow: 4px 0 8px rgba(0,0,0,.3); transform-origin: bottom center; animation: rbt-table 8s ease-in-out infinite alternate; }
.scn-rosalie-birth-tragedy .woman-on-floor { position:absolute; left:45%; bottom:12%; width:28px; height:38px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rbt-woman 5s ease-in-out infinite; }
.scn-rosalie-birth-tragedy .fallen-dish { position:absolute; left:52%; bottom:8%; width:14px; height:10px; background: radial-gradient(ellipse, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: rbt-dish 10s ease-in-out infinite alternate; }
.scn-rosalie-birth-tragedy .lamp-dimming { position:absolute; left:30%; top:20%; width:16px; height:24px; background: radial-gradient(circle, #4a3a1a 0%, #2a1a0a 50%, transparent 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px #2a1a0a, 0 0 40px 16px rgba(42,26,10,.3); filter:blur(2px); animation: rbt-lamp 3s ease-in-out infinite alternate; }
.scn-rosalie-birth-tragedy .shadow-pool { position:absolute; left:38%; bottom:5%; width:50px; height:20px; background: radial-gradient(ellipse, #000 0%, transparent 100%); border-radius:50%; opacity:.7; animation: rbt-pool 8s ease-in-out infinite alternate; }
@keyframes rbt-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.82; } }
@keyframes rbt-floor { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(1px); } }
@keyframes rbt-table { 0% { transform:rotate(0deg); } 50% { transform:rotate(.5deg); } 100% { transform:rotate(-.5deg); } }
@keyframes rbt-woman { 0% { transform:translateX(0) rotate(0deg); opacity:.8; } 25% { transform:translateX(2px) rotate(2deg); opacity:.9; } 50% { transform:translateX(0) rotate(-1deg); opacity:1; } 75% { transform:translateX(-2px) rotate(1deg); opacity:.9; } 100% { transform:translateX(0) rotate(0deg); opacity:.8; } }
@keyframes rbt-dish { 0% { transform:rotate(-15deg) translateX(0); } 50% { transform:rotate(-12deg) translateX(2px); } 100% { transform:rotate(-18deg) translateX(-1px); } }
@keyframes rbt-lamp { 0% { box-shadow: 0 0 15px 6px #2a1a0a, 0 0 30px 12px rgba(42,26,10,.2); opacity:.75; } 50% { box-shadow: 0 0 25px 10px #4a3a1a, 0 0 50px 20px rgba(74,58,26,.3); opacity:1; } 100% { box-shadow: 0 0 10px 4px #1a0a00, 0 0 20px 8px rgba(26,10,0,.15); opacity:.55; } }
@keyframes rbt-pool { 0% { transform:scale(1); opacity:.5; } 50% { transform:scale(1.12); opacity:.75; } 100% { transform:scale(.95); opacity:.4; } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.firefly { position: absolute; pointer-events: none; }
.pillar { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.star { position: absolute; pointer-events: none; }
.vine { position: absolute; pointer-events: none; }
.walker { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-lemonnier-soup-conflict { background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 30%, #b8a888 100%), radial-gradient(ellipse at 30% 60%, #f0e4d0 0%, transparent 70%); }
.scn-lemonnier-soup-conflict .wall-bg { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 100%); animation: ls2-wall 7s ease-in-out infinite alternate; }
.scn-lemonnier-soup-conflict .table { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-lemonnier-soup-conflict .bowl-a { position:absolute; bottom:38%; left:30%; width:50px; height:20px; background: radial-gradient(ellipse at 50% 40%, #c8b08a 0%, #a89070 70%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: ls2-bowl1 5s ease-in-out infinite; }
.scn-lemonnier-soup-conflict .bowl-b { position:absolute; bottom:36%; left:55%; width:55px; height:22px; background: radial-gradient(ellipse at 50% 40%, #d0b89a 0%, #b09878 70%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: ls2-bowl2 6s ease-in-out infinite 1s; }
.scn-lemonnier-soup-conflict .figure-l { position:absolute; bottom:22%; left:18%; width:44px; height:90px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ls2-fig-l 4s ease-in-out infinite; }
.scn-lemonnier-soup-conflict .figure-r { position:absolute; bottom:22%; right:18%; width:48px; height:95px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ls2-fig-r 5s ease-in-out infinite; }
.scn-lemonnier-soup-conflict .steam-1 { position:absolute; bottom:47%; left:34%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,240,.4) 0%, transparent 70%); filter: blur(4px); animation: ls2-steam1 3s ease-in-out infinite; }
.scn-lemonnier-soup-conflict .steam-2 { position:absolute; bottom:46%; left:58%; width:22px; height:28px; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,240,.35) 0%, transparent 70%); filter: blur(4px); animation: ls2-steam2 3.5s ease-in-out infinite 0.5s; }
.scn-lemonnier-soup-conflict .shadow-angst { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%); animation: ls2-shad 8s ease-in-out infinite; }
@keyframes ls2-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ls2-bowl1 { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(1px) } }
@keyframes ls2-bowl2 { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-3px) rotate(-1deg) } 60% { transform: translateY(1px) rotate(2deg) } }
@keyframes ls2-fig-l { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-3px) rotate(-2deg) } 60% { transform: translateX(2px) rotate(1deg) } }
@keyframes ls2-fig-r { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(1deg) } }
@keyframes ls2-steam1 { 0% { transform: translateY(0) scale(1); opacity:.5 } 50% { transform: translateY(-12px) scale(1.3); opacity:.2 } 100% { transform: translateY(-4px) scale(.9); opacity:.4 } }
@keyframes ls2-steam2 { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-14px) scale(1.4); opacity:.15 } 100% { transform: translateY(-5px) scale(.85); opacity:.35 } }
@keyframes ls2-shad { 0%,100% { opacity:.3 } 50% { opacity:.5 } }

.scn-lemonnier-revelation { background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0a0a1e 100%), radial-gradient(ellipse at 50% 40%, #3a3a5e 0%, transparent 80%); }
.scn-lemonnier-revelation .wall-dark { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-lemonnier-revelation .lamp-glow { position:absolute; top:20%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,180,140,.5) 0%, rgba(200,180,140,.1) 50%, transparent 70%); border-radius:50%; animation: lr2-lamp 4s ease-in-out infinite alternate; }
.scn-lemonnier-revelation .figure-close-a { position:absolute; bottom:20%; left:28%; width:50px; height:100px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lr2-fig-a 5s ease-in-out infinite; }
.scn-lemonnier-revelation .figure-close-b { position:absolute; bottom:20%; right:28%; width:46px; height:96px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: lr2-fig-b 4s ease-in-out infinite; }
.scn-lemonnier-revelation .hand-clench { position:absolute; bottom:45%; left:48%; width:14px; height:20px; background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40%; transform-origin: center; animation: lr2-hand 3s ease-in-out infinite; }
.scn-lemonnier-revelation .shadow-stark { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); animation: lr2-shad 6s ease-in-out infinite alternate; }
.scn-lemonnier-revelation .dust-mote { position:absolute; width:4px; height:4px; background: rgba(220,200,160,.3); border-radius:50%; filter: blur(1px); }
.scn-lemonnier-revelation .mote-1 { top:35%; left:20%; animation: lr2-mote1 12s linear infinite; }
.scn-lemonnier-revelation .mote-2 { top:55%; right:25%; animation: lr2-mote2 15s linear infinite 3s; }
@keyframes lr2-lamp { 0% { transform:translateX(-50%) scale(1); opacity:.6 } 50% { transform:translateX(-50%) scale(1.15); opacity:.9 } 100% { transform:translateX(-50%) scale(.95); opacity:.7 } }
@keyframes lr2-fig-a { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-5px) rotate(-3deg) } 60% { transform: translateX(3px) rotate(2deg) } }
@keyframes lr2-fig-b { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(2deg) } }
@keyframes lr2-hand { 0%,100% { transform: scale(1) rotate(0) } 30% { transform: scale(1.1) rotate(-10deg) } 60% { transform: scale(.95) rotate(5deg) } }
@keyframes lr2-shad { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes lr2-mote1 { 0% { transform: translateY(0) translateX(0); opacity:0 } 25% { transform: translateY(20px) translateX(10px); opacity:.5 } 50% { transform: translateY(40px) translateX(5px); opacity:.3 } 75% { transform: translateY(60px) translateX(15px); opacity:.5 } 100% { transform: translateY(80px) translateX(0); opacity:0 } }
@keyframes lr2-mote2 { 0% { transform: translateY(0) translateX(0); opacity:0 } 20% { transform: translateY(-15px) translateX(-8px); opacity:.4 } 40% { transform: translateY(-30px) translateX(5px); opacity:.6 } 60% { transform: translateY(-45px) translateX(-3px); opacity:.3 } 80% { transform: translateY(-60px) translateX(10px); opacity:.5 } 100% { transform: translateY(-80px) translateX(0); opacity:0 } }

.scn-lemonnier-accusation { background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 60%, #4a3a3a 0%, transparent 80%); }
.scn-lemonnier-accusation .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); }
.scn-lemonnier-accusation .wall-panel { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 50%, #2a1a1a 100%); }
.scn-lemonnier-accusation .table-soup { position:absolute; bottom:30%; left:35%; right:35%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; }
.scn-lemonnier-accusation .figure-seated { position:absolute; bottom:18%; left:38%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: la2-seat 6s ease-in-out infinite; }
.scn-lemonnier-accusation .figure-pointing { position:absolute; bottom:20%; right:30%; width:45px; height:95px; background: linear-gradient(180deg, #4a2a2a 0%, #2a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: la2-point 4s ease-in-out infinite; }
.scn-lemonnier-accusation .arm-extend { position:absolute; bottom:65%; right:32%; width:40px; height:8px; background: linear-gradient(180deg, #4a2a2a 0%, #2a0a0a 100%); border-radius: 40% 10% 10% 40%; transform-origin: right center; animation: la2-arm 4s ease-in-out infinite; }
.scn-lemonnier-accusation .doorway { position:absolute; bottom:35%; left:8%; width:50px; height:100px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border: 2px solid #3a2a2a; border-radius: 4px; }
.scn-lemonnier-accusation .shadow-accuse { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); animation: la2-shad 7s ease-in-out infinite alternate; }
@keyframes la2-seat { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-2px) rotate(-1deg) } 60% { transform: translateX(2px) rotate(1deg) } }
@keyframes la2-point { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-5px) rotate(-5deg) } 50% { transform: translateX(3px) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-3deg) } }
@keyframes la2-arm { 0%,100% { transform: rotate(0) scaleX(1) } 25% { transform: rotate(-20deg) scaleX(1.2) } 50% { transform: rotate(10deg) scaleX(.9) } 75% { transform: rotate(-15deg) scaleX(1.1) } }
@keyframes la2-shad { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-lemonnier-aftermath { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 80%); }
.scn-lemonnier-aftermath .wall-dim { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); animation: la2-wall 10s ease-in-out infinite alternate; }
.scn-lemonnier-aftermath .floor-dark { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-lemonnier-aftermath .bed-frame { position:absolute; bottom:25%; left:15%; right:50%; height:30%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 6px; box-shadow: inset 0 4px 12px rgba(0,0,0,.4); }
.scn-lemonnier-aftermath .figure-sleeping { position:absolute; bottom:28%; left:20%; width:35px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: la2-sleep 9s ease-in-out infinite; }
.scn-lemonnier-aftermath .table-chair { position:absolute; bottom:20%; right:20%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 8px 8px; }
.scn-lemonnier-aftermath .candle-stub { position:absolute; bottom:55%; right:24%; width:6px; height:18px; background: linear-gradient(180deg, #d0b88a 0%, #a09070 100%); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 12px 3px rgba(200,180,140,.1); animation: la2-candle 6s ease-in-out infinite; }
.scn-lemonnier-aftermath .dawn-light { position:absolute; top:5%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, rgba(180,160,130,.15) 0%, transparent 100%); animation: la2-dawn 15s ease-in-out infinite alternate; }
.scn-lemonnier-aftermath .shadow-still { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); }
@keyframes la2-wall { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.75 } }
@keyframes la2-sleep { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(1px) rotate(-1deg) } }
@keyframes la2-candle { 0%,100% { transform: scaleY(1) scaleX(1); opacity:.4 } 30% { transform: scaleY(1.05) scaleX(.95); opacity:.6 } 60% { transform: scaleY(.95) scaleX(1.05); opacity:.3 } }
@keyframes la2-dawn { 0% { opacity:.1 } 50% { opacity:.3 } 100% { opacity:.2 } }

.scn-lemonnier-early-marriage {
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%), radial-gradient(ellipse at 40% 20%, #ffe4b5 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-lemonnier-early-marriage .wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #d2a679 0%, #b8860b 100%);
  opacity: 0.3;
}
.scn-lemonnier-early-marriage .window-frame {
  position: absolute; top: 10%; left: 15%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #f0e68c 0%, #d2b48c 70%);
  border: 4px solid #8b4513;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,215,0,0.3);
  animation: lem1-frame-pulse 8s ease-in-out infinite alternate;
}
.scn-lemonnier-early-marriage .sunlight {
  position: absolute; top: 10%; left: 15%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 60% 30%, rgba(255,215,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: lem1-sunlight 12s ease-in-out infinite alternate;
}
.scn-lemonnier-early-marriage .man-left {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: lem1-man 6s ease-in-out infinite;
}
.scn-lemonnier-early-marriage .woman-right {
  position: absolute; bottom: 20%; right: 25%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(-5deg);
  animation: lem1-woman 6s ease-in-out infinite;
}
.scn-lemonnier-early-marriage .table {
  position: absolute; bottom: 10%; left: 30%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #8b4513 0%, #5a2a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
@keyframes lem1-frame-pulse {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes lem1-sunlight {
  0%, 100% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.05); opacity: 0.9; }
}
@keyframes lem1-man {
  0%, 100% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
}
@keyframes lem1-woman {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}

.scn-lemonnier-happiness {
  background: linear-gradient(180deg, #fff8dc 0%, #f5deb3 100%);
  background-image: radial-gradient(circle at 70% 40%, #fffacd 0%, transparent 60%);
}
.scn-lemonnier-happiness .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d8b5 0%, #d2b48c 100%);
  opacity: 0.4;
}
.scn-lemonnier-happiness .window-glow {
  position: absolute; top: 5%; left: 10%; width: 50%; height: 60%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,250,205,0.7) 0%, transparent 70%);
  filter: blur(12px);
  animation: lemh-window 10s ease-in-out infinite alternate;
}
.scn-lemonnier-happiness .nurse-back {
  position: absolute; bottom: 15%; right: 10%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #6b5b4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(8deg);
}
.scn-lemonnier-happiness .father-joy {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg) scale(1.1);
  animation: lemh-father 4s ease-in-out infinite;
}
.scn-lemonnier-happiness .cradle {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 15%;
  background: linear-gradient(180deg, #a0522d 0%, #6b3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: lemh-cradle 3s ease-in-out infinite alternate;
}
.scn-lemonnier-happiness .friend-duretour {
  position: absolute; bottom: 18%; right: 30%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: lemh-friend 8s ease-in-out infinite;
}
@keyframes lemh-window {
  0%, 100% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
}
@keyframes lemh-father {
  0%, 100% { transform: rotate(-10deg) scale(1.1) translateY(0); }
  50% { transform: rotate(-8deg) scale(1.15) translateY(-3px); }
}
@keyframes lemh-cradle {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}
@keyframes lemh-friend {
  0%, 100% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
}

.scn-lemonnier-wife-death {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2244 100%);
  background-image: radial-gradient(ellipse at 30% 50%, #2a2a4e 0%, transparent 60%);
}
.scn-lemonnier-wife-death .dark-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #0a0a1a 100%);
  opacity: 0.8;
}
.scn-lemonnier-wife-death .moonlight-shaft {
  position: absolute; top: 0; left: 40%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(200,200,255,0.1) 0%, transparent 60%);
  filter: blur(6px);
  animation: lemw-moon 15s ease-in-out infinite alternate;
}
.scn-lemonnier-wife-death .cradle-sad {
  position: absolute; bottom: 30%; left: 35%; width: 25%; height: 18%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px rgba(100,100,150,0.1);
  animation: lemw-cradle 5s ease-in-out infinite;
}
.scn-lemonnier-wife-death .father-grief {
  position: absolute; bottom: 12%; left: 30%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg) translateY(10px);
  animation: lemw-father 7s ease-in-out infinite;
}
.scn-lemonnier-wife-death .shadow-corner {
  position: absolute; bottom: 0; right: 0; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 100% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
}
.scn-lemonnier-wife-death .tear-drop {
  position: absolute; bottom: 25%; left: 38%; width: 4px; height: 8px;
  background: radial-gradient(circle, #aab5ff 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: lemw-tear 4s ease-in-out infinite;
}
@keyframes lemw-moon {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 0.6; }
}
@keyframes lemw-cradle {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(2px); }
}
@keyframes lemw-father {
  0%, 100% { transform: rotate(15deg) translateY(10px); }
  50% { transform: rotate(12deg) translateY(12px); }
}
@keyframes lemw-tear {
  0%, 100% { opacity: 0; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(15px); }
}

.scn-lemonnier-spoiling-child {
  background: linear-gradient(180deg, #f0e68c 0%, #e8d8b5 100%);
  background-image: radial-gradient(circle at 60% 20%, #fffacd 0%, transparent 50%);
}
.scn-lemonnier-spoiling-child .bright-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f5deb3 0%, #e8d8b5 100%);
  opacity: 0.5;
}
.scn-lemonnier-spoiling-child .window-blinds {
  position: absolute; top: 5%; left: 5%; width: 60%; height: 55%;
  background: repeating-linear-gradient(0deg, #d2b48c 0px, #d2b48c 4px, transparent 4px, transparent 6px);
  border: 3px solid #8b4513;
  border-radius: 2px;
  box-shadow: inset 0 0 30px rgba(255,215,0,0.2);
  animation: lems-blinds 12s linear infinite;
}
.scn-lemonnier-spoiling-child .child-tantrum {
  position: absolute; bottom: 18%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #8b7355 0%, #6b4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg) scale(0.9);
  animation: lems-child 0.8s ease-in-out infinite alternate;
}
.scn-lemonnier-spoiling-child .nurse-stern {
  position: absolute; bottom: 15%; right: 20%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: lems-nurse 3s ease-in-out infinite;
}
.scn-lemonnier-spoiling-child .toys-scattered {
  position: absolute; bottom: 8%; left: 10%; width: 20%; height: 8%;
  background: radial-gradient(circle at 30% 50%, #d2691e 0%, transparent 60%);
  filter: blur(2px);
  animation: lems-toys 6s ease-in-out infinite alternate;
}
.scn-lemonnier-spoiling-child .father-offer {
  position: absolute; bottom: 22%; left: 8%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: lems-father 5s ease-in-out infinite;
}
.scn-lemonnier-spoiling-child .sweet-shape {
  position: absolute; bottom: 25%; left: 12%; width: 5%; height: 5%;
  background: radial-gradient(circle, #ffd700 0%, #daa520 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,215,0,0.5);
  animation: lems-sweet 2s ease-in-out infinite alternate;
}
@keyframes lems-blinds {
  0% { background-position: 0 0; }
  100% { background-position: 0 20px; }
}
@keyframes lems-child {
  0% { transform: rotate(-15deg) scale(0.9) translateX(0); }
  100% { transform: rotate(-10deg) scale(1) translateX(5px); }
}
@keyframes lems-nurse {
  0%, 100% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-3px); }
}
@keyframes lems-toys {
  0% { opacity: 0.6; transform: scale(0.9); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes lems-father {
  0%, 100% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-5px); }
}
@keyframes lems-sweet {
  0% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.3); opacity: 1; }
}

/* Scene: grave-exhumation (night cemetery) */
.scn-grave-exhumation {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3a 40%, #0d1a0d 70%, #0a120a 100%),
              radial-gradient(ellipse at 50% 100%, #1a3a1a 0%, transparent 60%);
}
.scn-grave-exhumation .ge-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0f0f3c 0%, #16164a 50%, #0a0a2e 100%);
  animation: ge-skyglow 15s ease-in-out infinite alternate;
}
.scn-grave-exhumation .ge-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #0f1a0f 0%, #060c06 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-grave-exhumation .ge-mound {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 60% 40% 50% 50% / 80% 80% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 -4px 8px rgba(0,0,0,.6);
}
.scn-grave-exhumation .ge-coffin {
  position: absolute; bottom: 28%; left: 30%; width: 60px; height: 25px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px;
  transform: translateX(-50%) rotate(2deg);
  box-shadow: inset 0 2px 4px rgba(0,0,0,.5);
}
.scn-grave-exhumation .ge-lid {
  position: absolute; bottom: 30%; left: 30%; width: 55px; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 3px;
  transform: translateX(-50%) rotate(-6deg) translateY(-2px);
  animation: ge-lid 18s ease-in-out infinite;
}
.scn-grave-exhumation .ge-figure {
  position: absolute; bottom: 26%; left: 38%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ge-dig 6s ease-in-out infinite;
}
.scn-grave-exhumation .ge-lantern {
  position: absolute; bottom: 32%; left: 42%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffa050 0%, #803010 80%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 6px #ff8020, 0 0 40px 12px rgba(255,128,32,.3);
  animation: ge-lantern 3s ease-in-out infinite alternate;
}
.scn-grave-exhumation .ge-cloud {
  position: absolute; top: 12%; left: -20%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(24,24,48,.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ge-cloud 40s linear infinite;
}
@keyframes ge-skyglow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ge-lid { 0%,100% { transform: translateX(-50%) rotate(-6deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-8deg) translateY(-4px); } }
@keyframes ge-dig { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-5deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(-4px); } 75% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ge-lantern { 0% { box-shadow: 0 0 15px 4px #ff8020, 0 0 30px 8px rgba(255,128,32,.2); opacity:0.7; } 50% { box-shadow: 0 0 25px 8px #ffa040, 0 0 50px 16px rgba(255,160,64,.4); opacity:1; } 100% { box-shadow: 0 0 18px 5px #ff8020, 0 0 35px 10px rgba(255,128,32,.25); opacity:0.85; } }
@keyframes ge-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(140vw); } }

/* Scene: grave-verdict (bright interior, tense) */
.scn-grave-verdict {
  background: linear-gradient(180deg, #f5f0e0 0%, #e8dcc8 30%, #d4c4a8 100%),
              radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 50%);
}
.scn-grave-verdict .gv-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d4c0 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.05);
}
.scn-grave-verdict .gv-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
}
.scn-grave-verdict .gv-bench {
  position: absolute; bottom: 38%; left: 20%; width: 140px; height: 80px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3010 100%);
  border-radius: 6px 6px 3px 3px;
  box-shadow: 2px 4px 10px rgba(0,0,0,.3);
  transform: perspective(400px) rotateX(5deg);
}
.scn-grave-verdict .gv-accused {
  position: absolute; bottom: 40%; left: 28%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gv-accused 2s ease-in-out infinite alternate;
}
.scn-grave-verdict .gv-jury {
  position: absolute; bottom: 46%; left: 60%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #4a4040 0%, #2a2020 100%);
  border-radius: 4px;
  display: flex; gap: 4px;
  animation: gv-jury 8s ease-in-out infinite;
}
.scn-grave-verdict .gv-jury::before {
  content: ''; display: block; width: 10px; height: 30px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 30% 30% 20% 20%; margin: 5px auto;
}
.scn-grave-verdict .gv-window {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 40%, #fff8e0 0%, #d0c8a0 60%, #a09870 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 8px rgba(255,248,224,.4);
  animation: gv-light 10s ease-in-out infinite alternate;
}
.scn-grave-verdict .gv-gavel {
  position: absolute; bottom: 44%; left: 25%; width: 6px; height: 10px;
  background: #2a1a0a;
  border-radius: 2px;
  transform: rotate(-70deg);
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: gv-gavel 3s ease-in-out infinite;
}
@keyframes gv-accused { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes gv-jury { 0%,100% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } }
@keyframes gv-light { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes gv-gavel { 0% { transform: rotate(-70deg) translateY(0); } 30% { transform: rotate(-10deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 70% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-70deg) translateY(0); } }

/* Scene: grave-attribution (calm bright interior) */
.scn-grave-attribution {
  background: linear-gradient(180deg, #faf5e8 0%, #ece0cc 40%, #d8c8ae 100%),
              radial-gradient(ellipse at 60% 50%, #fffef8 0%, transparent 50%);
}
.scn-grave-attribution .ga-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #faf5e8 0%, #e8dcc8 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.03);
}
.scn-grave-attribution .ga-desk {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.1);
  transform: perspective(600px) rotateX(2deg);
}
.scn-grave-attribution .ga-papers {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 10px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
  animation: ga-paper 12s ease-in-out infinite;
}
.scn-grave-attribution .ga-inkwell {
  position: absolute; bottom: 28%; left: 50%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  transform: translateX(-50%);
}
.scn-grave-attribution .ga-window {
  position: absolute; top: 8%; right: 20%; width: 50px; height: 70px;
  background: radial-gradient(circle at 50% 30%, #f0f0f0 0%, #d0d0c0 60%, #a0a090 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 6px rgba(200,200,180,.4);
  animation: ga-sun 20s ease-in-out infinite alternate;
}
.scn-grave-attribution .ga-curtain {
  position: absolute; top: 8%; right: 18%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 2px;
  animation: ga-curtain 18s ease-in-out infinite;
}
.scn-grave-attribution .ga-mote {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px;
  background: rgba(255,255,200,.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: ga-mote 35s linear infinite;
}
@keyframes ga-paper { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes ga-sun { 0% { box-shadow: 0 0 20px 4px rgba(200,200,180,.2); opacity:0.8; } 50% { box-shadow: 0 0 40px 10px rgba(255,255,220,.6); opacity:1; } 100% { box-shadow: 0 0 25px 6px rgba(200,200,180,.3); opacity:0.9; } }
@keyframes ga-curtain { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(1deg); } }
@keyframes ga-mote { 0% { transform: translateY(0) translateX(0) scale(0.8); opacity:0.2; } 25% { transform: translateY(-30px) translateX(20px) scale(1); opacity:0.6; } 50% { transform: translateY(-60px) translateX(-10px) scale(0.5); opacity:0.1; } 75% { transform: translateY(-30px) translateX(30px) scale(1.2); opacity:0.4; } 100% { transform: translateY(0) translateX(0) scale(0.8); opacity:0.2; } }

/* Scene 1: maid-incident-introduction – dim interior, calm */
.scn-maid-incident-introduction {
  background: linear-gradient(180deg, #2a1f1a 0%, #3d2c24 40%, #1c1410 100%),
              radial-gradient(ellipse at 60% 30%, #5a3a2a 0%, transparent 70%);
}
.scn-maid-incident-introduction .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3d2c24 0%, #2a1f1a 100%);
}
.scn-maid-incident-introduction .window {
  position: absolute; top: 12%; left: 25%; width: 30%; height: 28%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8px; box-shadow: inset 0 0 30px rgba(255,220,180,0.15);
  animation: mi1-window 12s ease-in-out infinite alternate;
}
.scn-maid-incident-introduction .lamp {
  position: absolute; bottom: 30%; left: 15%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #8a6a3a, #4a3a1a); border-radius: 4px;
  box-shadow: 0 0 40px 12px rgba(200,160,100,0.3);
  animation: mi1-lamp 5s ease-in-out infinite;
}
.scn-maid-incident-introduction .figure-maid {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: mi1-maid 8s ease-in-out infinite;
}
.scn-maid-incident-introduction .figure-margot {
  position: absolute; bottom: 22%; left: 55%; width: 24px; height: 66px;
  background: linear-gradient(180deg, #b09880 0%, #8a7460 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: mi1-margot 8s ease-in-out infinite reverse;
}
.scn-maid-incident-introduction .chair {
  position: absolute; bottom: 18%; left: 52%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a, #1a1008);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: mi1-chair 12s ease-in-out infinite;
}
.scn-maid-incident-introduction .carpet {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 60% 60% 0 0 / 80% 80% 0 0;
  animation: mi1-carpet 20s linear infinite;
}
@keyframes mi1-window   { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.02); } 100% { opacity: 0.7; transform: scaleY(1); } }
@keyframes mi1-lamp     { 0% { box-shadow: 0 0 30px 8px rgba(200,160,100,0.2); } 50% { box-shadow: 0 0 50px 18px rgba(200,160,100,0.4); } 100% { box-shadow: 0 0 30px 8px rgba(200,160,100,0.2); } }
@keyframes mi1-maid     { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mi1-margot   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mi1-chair    { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes mi1-carpet   { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.7; } }

/* Scene 2: maid-excellent-service – warm, bright interior */
.scn-maid-excellent-service {
  background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 40%, #d4b888 100%),
              radial-gradient(ellipse at 70% 20%, #fff4d0 0%, transparent 60%);
}
.scn-maid-excellent-service .sunny-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 100%);
}
.scn-maid-excellent-service .great-window {
  position: absolute; top: 8%; right: 15%; width: 35%; height: 30%;
  background: linear-gradient(180deg, #fefae0 0%, #f0e0b0 100%);
  border-radius: 8px; box-shadow: inset 0 0 40px rgba(255,255,220,0.5);
  animation: mes-window 14s ease-in-out infinite alternate;
}
.scn-maid-excellent-service .vanity-mirror {
  position: absolute; bottom: 22%; left: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  animation: mes-mirror 10s ease-in-out infinite;
}
.scn-maid-excellent-service .dress-form {
  position: absolute; bottom: 18%; left: 38%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #c8b0a0 0%, #a08870 100%);
  border-radius: 40% 40% 30% 30%; transform: rotate(2deg);
  animation: mes-dress 6s ease-in-out infinite;
}
.scn-maid-excellent-service .maid-working {
  position: absolute; bottom: 20%; left: 52%; width: 20px; height: 68px;
  background: linear-gradient(180deg, #d4c0a8 0%, #b09880 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mes-maid 4s ease-in-out infinite;
}
.scn-maid-excellent-service .light-beams {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,200,0.2) 0%, transparent 60%);
  opacity: 0.5; animation: mes-beams 9s ease-in-out infinite alternate;
}
.scn-maid-excellent-service .hat {
  position: absolute; bottom: 35%; left: 45%; width: 16px; height: 12px;
  background: radial-gradient(ellipse, #b09070 0%, #705840 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-5deg);
  animation: mes-hat 7s ease-in-out infinite;
}
@keyframes mes-window { 0% { opacity: 0.8; } 50% { opacity: 1; box-shadow: inset 0 0 60px rgba(255,255,220,0.7); } 100% { opacity: 0.85; } }
@keyframes mes-mirror { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes mes-dress  { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes mes-maid   { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes mes-beams  { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes mes-hat    { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(1); } }

/* Scene 3: maid-police-visit – tense, bright interior */
.scn-maid-police-visit {
  background: linear-gradient(180deg, #d8d8e0 0%, #b8b8c8 40%, #a0a0b0 100%),
              radial-gradient(ellipse at 50% 40%, #e0e0ee 0%, transparent 60%);
}
.scn-maid-police-visit .hall-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c8c8d8 0%, #b0b0c0 100%);
}
.scn-maid-police-visit .front-door {
  position: absolute; bottom: 10%; left: 70%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: mpv-door 6s ease-in-out infinite;
}
.scn-maid-police-visit .inspector-silhouette {
  position: absolute; bottom: 22%; left: 40%; width: 22px; height: 74px;
  background: linear-gradient(180deg, #202030 0%, #101018 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: mpv-inspector 4s ease-in-out infinite;
}
.scn-maid-police-visit .margot-figure {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 68px;
  background: linear-gradient(180deg, #b8a898 0%, #908070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mpv-margot 5s ease-in-out infinite reverse;
}
.scn-maid-police-visit .janitor-figure {
  position: absolute; bottom: 20%; left: 28%; width: 20px; height: 64px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: mpv-janitor 7s ease-in-out infinite;
}
.scn-maid-police-visit .table {
  position: absolute; bottom: 14%; left: 45%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: mpv-table 12s linear infinite;
}
.scn-maid-police-visit .shadow-stripe {
  position: absolute; top: 0; left: 35%; width: 4px; height: 100%;
  background: linear-gradient(180deg, transparent 0%, #303040 30%, transparent 70%);
  opacity: 0.4; animation: mpv-stripe 3s ease-in-out infinite alternate;
}
@keyframes mpv-door     { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes mpv-inspector{ 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mpv-margot   { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes mpv-janitor  { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mpv-table    { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mpv-stripe   { 0% { opacity: 0.2; } 100% { opacity: 0.6; } }

/* Scene 4: maid-inspector-demands – tense, bright interior */
.scn-maid-inspector-demands {
  background: linear-gradient(180deg, #d0d0dc 0%, #b4b4c4 40%, #9898a8 100%),
              radial-gradient(ellipse at 30% 60%, #c8c8d8 0%, transparent 60%);
}
.scn-maid-inspector-demands .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c4c4d4 0%, #a8a8b8 100%);
}
.scn-maid-inspector-demands .chair-left {
  position: absolute; bottom: 18%; left: 20%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: mid-chair 8s ease-in-out infinite;
}
.scn-maid-inspector-demands .inspector-body {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 72px;
  background: linear-gradient(180deg, #282840 0%, #181830 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: mid-inspector 5s ease-in-out infinite;
}
.scn-maid-inspector-demands .margot-standing {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #b8a898 0%, #908070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mid-margot 6s ease-in-out infinite reverse;
}
.scn-maid-inspector-demands .side-table {
  position: absolute; bottom: 16%; left: 48%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.25);
  animation: mid-table 15s linear infinite;
}
.scn-maid-inspector-demands .document {
  position: absolute; bottom: 30%; left: 48%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #f0e0b0 0%, #d0c090 100%);
  border-radius: 2px; transform: rotate(5deg);
  animation: mid-doc 4s ease-in-out infinite;
}
.scn-maid-inspector-demands .striped-shadow {
  position: absolute; top: 0; left: 50%; width: 3px; height: 100%;
  background: linear-gradient(180deg, #2a2a3a 0%, transparent 50%, #2a2a3a 100%);
  opacity: 0.3; animation: mid-stripe 3s ease-in-out infinite alternate;
}
@keyframes mid-chair     { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes mid-inspector { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mid-margot    { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes mid-table     { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes mid-doc       { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes mid-stripe    { 0% { opacity: 0.15; } 100% { opacity: 0.45; } }

/* Scene: country-excursion-aftermath */
.scn-country-excursion-aftermath {
  background: linear-gradient(135deg, #f5e6d3 0%, #e4d1b8 50%, #c9b296 100%), radial-gradient(circle at 30% 70%, #f0e0cc 0%, transparent 60%);
}
.scn-country-excursion-aftermath .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #f0e2d0 0%, #dac4a8 100%); }
.scn-country-excursion-aftermath .doorway { position:absolute; left:30%; top:20%; width:90px; height:180px; background: linear-gradient(180deg, #8b7355 0%, #5c4a33 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); }
.scn-country-excursion-aftermath .window { position:absolute; right:15%; top:30%; width:70px; height:90px; background: linear-gradient(135deg, #c7dbe6 0%, #9bb8cc 100%); border-radius: 6px; box-shadow: inset 0 0 30px rgba(255,255,230,0.6), 0 4px 8px rgba(0,0,0,0.2); }
.scn-country-excursion-aftermath .figure-returning { position:absolute; left:25%; bottom:25%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1e140c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-figure 6s ease-in-out infinite; }
.scn-country-excursion-aftermath .chair { position:absolute; left:55%; bottom:18%; width:40px; height:45px; background: linear-gradient(180deg, #6b4c3a 0%, #3d2b1f 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: ca-chair 10s ease-in-out infinite; }
.scn-country-excursion-aftermath .light-beam { position:absolute; right:12%; top:25%; width:100px; height:200px; background: linear-gradient(180deg, rgba(255,255,220,0.3) 0%, rgba(255,255,220,0) 100%); transform: rotate(15deg); filter: blur(8px); animation: ca-light 8s ease-in-out infinite alternate; }
.scn-country-excursion-aftermath .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 60% 40%, rgba(255,255,200,0.2) 0%, transparent 50%); animation: ca-dust 12s linear infinite; }
@keyframes ca-figure {
  0%, 100% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(15px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(10px) translateY(-3px) rotate(1deg); }
}
@keyframes ca-chair { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes ca-light { 0% { opacity: 0.6; transform: rotate(12deg); } 100% { opacity: 1; transform: rotate(18deg); } }
@keyframes ca-dust { 0% { transform: translateY(0); } 100% { transform: translateY(-30px); } }

/* Scene: country-excursion-final-meeting */
.scn-country-excursion-final-meeting {
  background: linear-gradient(180deg, #9ac0d9 0%, #cde6f0 40%, #b8d0a0 70%, #7d9e6b 100%), radial-gradient(ellipse at 50% 30%, #f0e6a0 0%, transparent 60%);
}
.scn-country-excursion-final-meeting .sky-cfm { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b1d4e8 0%, #dbf0ff 100%); animation: cf-sky 15s ease-in-out infinite alternate; }
.scn-country-excursion-final-meeting .trees-back { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #3c5e2a 0%, #2a421e 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-country-excursion-final-meeting .grass { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #7a9e5a 0%, #5c7a40 100%); border-radius: 20% 30% 0 0; }
.scn-country-excursion-final-meeting .figure-sitting { position:absolute; left:40%; bottom:35%; width:24px; height:48px; background: linear-gradient(180deg, #2e3f4a 0%, #16212b 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cf-sit 6s ease-in-out infinite; }
.scn-country-excursion-final-meeting .figure-lying { position:absolute; left:55%; bottom:32%; width:50px; height:22px; background: linear-gradient(180deg, #3a4a2e 0%, #22331a 100%); border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%; transform: rotate(-10deg); animation: cf-lying 8s ease-in-out infinite alternate; }
.scn-country-excursion-final-meeting .sun-rays { position:absolute; top:8%; left:20%; width:160px; height:200px; background: linear-gradient(135deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0) 100%); transform: rotate(30deg); filter: blur(10px); animation: cf-rays 10s ease-in-out infinite; }
.scn-country-excursion-final-meeting .leaves-falling { position:absolute; top:10%; left:30%; width:20px; height:20px; background: radial-gradient(circle at 40% 40%, #6a8a4a 0%, #3a5a2a 100%); border-radius: 50% 0 50% 0; transform: rotate(45deg); animation: cf-leaves 12s linear infinite; }
@keyframes cf-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes cf-sit { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } }
@keyframes cf-lying { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes cf-rays { 0% { opacity:0.6; transform: rotate(28deg) scale(1); } 50% { opacity:1; transform: rotate(32deg) scale(1.1); } 100% { opacity:0.7; transform: rotate(30deg) scale(1); } }
@keyframes cf-leaves { 0% { transform: translate(0,0) rotate(0deg); } 100% { transform: translate(100px, 120vh) rotate(720deg); } }

/* Scene: flower-carnival-landau */
.scn-flower-carnival-landau {
  background: linear-gradient(180deg, #fce4b8 0%, #f5d6a0 30%, #e8c48c 60%, #d4a86a 100%), radial-gradient(circle at 30% 40%, #fff5e0 0%, transparent 70%);
}
.scn-flower-carnival-landau .landau-body { position:absolute; bottom:25%; left:30%; width:180px; height:70px; background: linear-gradient(180deg, #a3764a 0%, #805e38 100%); border-radius: 20% 20% 8% 8%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: fl-body 8s ease-in-out infinite; }
.scn-flower-carnival-landau .wheel-left { position:absolute; bottom:20%; left:32%; width:40px; height:40px; background: radial-gradient(circle at 50% 50%, #5a3a2a 0%, #3a2212 100%); border-radius: 50%; box-shadow: 0 3px 6px rgba(0,0,0,0.4); animation: fl-wheel 4s linear infinite; }
.scn-flower-carnival-landau .wheel-right { position:absolute; bottom:20%; left:57%; width:40px; height:40px; background: radial-gradient(circle at 50% 50%, #5a3a2a 0%, #3a2212 100%); border-radius: 50%; box-shadow: 0 3px 6px rgba(0,0,0,0.4); animation: fl-wheel 4s linear infinite reverse; }
.scn-flower-carnival-landau .flower-base { position:absolute; bottom:33%; left:28%; width:200px; height:50px; background: radial-gradient(circle at 30% 40%, #f0b0a0 0%, #e08070 30%, #c06050 60%, #904030 100%); border-radius: 50%; filter: blur(2px); animation: fl-flowers 6s ease-in-out infinite alternate; }
.scn-flower-carnival-landau .flower-top { position:absolute; bottom:40%; left:30%; width:160px; height:60px; background: radial-gradient(circle at 50% 30%, #ffd0a0 0%, #f0b080 40%, #d09060 80%, #a06040 100%); border-radius: 40% 60% 30% 50%; filter: blur(3px); animation: fl-flowers 8s ease-in-out infinite alternate-reverse; }
.scn-flower-carnival-landau .coachman { position:absolute; bottom:40%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fl-coachman 3s ease-in-out infinite; }
.scn-flower-carnival-landau .horse-left { position:absolute; bottom:27%; left:18%; width:50px; height:30px; background: linear-gradient(180deg, #b09070 0%, #7a6040 100%); border-radius: 50% 30% 20% 40%; transform: skewX(-10deg); animation: fl-horse 5s ease-in-out infinite; }
.scn-flower-carnival-landau .horse-right { position:absolute; bottom:27%; left:66%; width:50px; height:30px; background: linear-gradient(180deg, #b09070 0%, #7a6040 100%); border-radius: 30% 50% 40% 20%; transform: skewX(10deg); animation: fl-horse 5s ease-in-out infinite 1s; }
.scn-flower-carnival-landau .flower-shower { position:absolute; top:10%; left:0; right:0; bottom:30%; background: radial-gradient(circle at 20% 40%, rgba(255,200,150,0.3) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(255,180,130,0.2) 0%, transparent 50%); animation: fl-shower 12s linear infinite; }
@keyframes fl-body { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes fl-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes fl-flowers { 0% { transform: scaleY(0.95) translateY(0); } 100% { transform: scaleY(1.05) translateY(-5px); } }
@keyframes fl-coachman { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes fl-horse { 0%,100% { transform: translateX(0) translateY(0); } 50% { transform: translateX(5px) translateY(-2px); } }
@keyframes fl-shower { 0% { opacity: 0.5; transform: translateY(0); } 100% { opacity: 1; transform: translateY(-20px); } }

/* Scene: flower-carnival-battle */
.scn-flower-carnival-battle {
  background: linear-gradient(180deg, #fde8c8 0%, #f0d4a8 40%, #d4b48a 70%, #b89a70 100%), radial-gradient(ellipse at 50% 80%, #ffe0b0 0%, transparent 60%);
}
.scn-flower-carnival-battle .street-bg { position:absolute; inset:0; background: linear-gradient(180deg, #ecdcc0 0%, #d4c4a8 50%, #b8a88c 100%); }
.scn-flower-carnival-battle .carriage-fb { position:absolute; bottom:30%; left:25%; width:140px; height:60px; background: linear-gradient(180deg, #b08858 0%, #8a6840 100%); border-radius: 15% 15% 6% 6%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: fb-carriage 8s ease-in-out infinite; }
.scn-flower-carnival-battle .crowd-left { position:absolute; bottom:10%; left:0; width:30%; height:55%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 60% 0 0 / 80% 80% 0 0; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%); animation: fb-crowd 12s ease-in-out infinite; }
.scn-flower-carnival-battle .crowd-right { position:absolute; bottom:10%; right:0; width:30%; height:55%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 80% 80% 0 0; clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%); animation: fb-crowd 12s ease-in-out infinite 4s; }
.scn-flower-carnival-battle .flower-arc-1 { position:absolute; top:15%; left:40%; width:80px; height:80px; background: radial-gradient(circle at 50% 50%, #f0a070 0%, #c06030 40%, #a04020 100%); border-radius: 50%; filter: blur(4px); animation: fb-arc1 3s ease-in-out infinite; }
.scn-flower-carnival-battle .flower-arc-2 { position:absolute; top:25%; left:50%; width:60px; height:60px; background: radial-gradient(circle at 50% 50%, #f0c080 0%, #d09050 30%, #b06030 70%); border-radius: 50%; filter: blur(3px); animation: fb-arc2 3.5s ease-in-out infinite 0.5s; }
.scn-flower-carnival-battle .police-horse { position:absolute; bottom:20%; right:15%; width:60px; height:40px; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius: 30% 30% 20% 50%; transform: scaleX(0.8); animation: fb-horse 7s ease-in-out infinite; }
.scn-flower-carnival-battle .sidewalk { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #b8a88c 0%, #a09078 100%); border-radius: 10% 10% 0 0; }
@keyframes fb-carriage { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(8px) rotate(1deg); } }
@keyframes fb-crowd { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fb-arc1 { 0% { transform: translate(0,0) scale(1); opacity:0.8; } 50% { transform: translate(30px,-40px) scale(1.2); opacity:1; } 100% { transform: translate(60px,0) scale(0.8); opacity:0.5; } }
@keyframes fb-arc2 { 0% { transform: translate(0,0) scale(1); opacity:0.7; } 50% { transform: translate(-25px,-35px) scale(1.3); opacity:1; } 100% { transform: translate(-50px,0) scale(0.9); opacity:0.6; } }
@keyframes fb-horse { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(2deg); } }

/* Scene: two-sisters-cruel-act */
.scn-two-sisters-cruel-act {
  background:
    linear-gradient(180deg, #1a1110 0%, #2a1a18 40%, #1e1412 100%),
    radial-gradient(ellipse at 60% 30%, #3a2a24 0%, transparent 60%);
}
.scn-two-sisters-cruel-act .bg-shadow {
  position:absolute; inset:0;
  background: radial-gradient(circle at 20% 80%, #0a0808 0%, transparent 70%);
  animation: tsc-bg 12s ease-in-out infinite alternate;
}
.scn-two-sisters-cruel-act .wall {
  position:absolute; top:10%; left:5%; right:5%; height:70%;
  background: linear-gradient(180deg, #3a2822 0%, #2a1a16 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-two-sisters-cruel-act .table {
  position:absolute; bottom:18%; left:20%; right:20%; height:8%;
  background: linear-gradient(180deg, #4a3228 0%, #2a1a12 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: tsc-table 18s ease-in-out infinite;
}
.scn-two-sisters-cruel-act .candle {
  position:absolute; bottom:28%; left:45%; width:6px; height:14px;
  background: linear-gradient(180deg, #e8c880 0%, #a07030 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: 0 0 12px 4px #d09040, 0 0 24px 8px rgba(200,120,40,0.3);
  animation: tsc-candle 3s ease-in-out infinite alternate;
}
.scn-two-sisters-cruel-act .sister-jealous {
  position:absolute; bottom:22%; left:25%; width:40px; height:60px;
  background: linear-gradient(180deg, #2a1a16 0%, #1a0e0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsc-figure-left 8s ease-in-out infinite;
}
.scn-two-sisters-cruel-act .sister-suzanne {
  position:absolute; bottom:22%; right:25%; width:36px; height:56px;
  background: linear-gradient(180deg, #3a2822 0%, #2a1a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsc-figure-right 6s ease-in-out infinite alternate;
}
.scn-two-sisters-cruel-act .shadow-figure {
  position:absolute; bottom:18%; left:50%; width:80px; height:90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #0a0606 0%, transparent 70%);
  filter: blur(6px);
  animation: tsc-shadow 14s ease-in-out infinite;
}
@keyframes tsc-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes tsc-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes tsc-candle { 0% { transform: scaleY(1); box-shadow: 0 0 10px 3px #d09040; } 50% { transform: scaleY(1.05); box-shadow: 0 0 16px 6px #e8a050; } 100% { transform: scaleY(0.95); box-shadow: 0 0 8px 2px #b08030; } }
@keyframes tsc-figure-left { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(4px,-2px) rotate(2deg); } 70% { transform: translate(-2px,1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes tsc-figure-right { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(-3px,1px) scale(0.98); } 100% { transform: translate(0,0) scale(1); } }
@keyframes tsc-shadow { 0% { opacity:0.3; transform: translateX(-50%) scale(1); } 50% { opacity:0.5; transform: translateX(-45%) scale(1.05); } 100% { opacity:0.2; transform: translateX(-55%) scale(0.95); } }

/* Scene: two-sisters-murder-plan */
.scn-two-sisters-murder-plan {
  background:
    linear-gradient(180deg, #0e0a0a 0%, #1a1210 50%, #0c0808 100%),
    radial-gradient(ellipse at 30% 70%, #2a1a16 0%, transparent 50%);
}
.scn-two-sisters-murder-plan .bg-dark {
  position:absolute; inset:0;
  background: radial-gradient(circle at 60% 40%, #0a0606 0%, transparent 80%);
  animation: tsm-bg 15s ease-in-out infinite alternate;
}
.scn-two-sisters-murder-plan .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-two-sisters-murder-plan .hand {
  position:absolute; bottom:25%; left:40%; width:28px; height:36px;
  background: linear-gradient(180deg, #3a2822 0%, #2a1a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 40% 60%;
  transform-origin: bottom center;
  animation: tsm-hand 4s ease-in-out infinite;
}
.scn-two-sisters-murder-plan .bottle {
  position:absolute; bottom:30%; left:45%; width:12px; height:20px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1a12 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: tsm-bottle 3s ease-in-out infinite alternate;
}
.scn-two-sisters-murder-plan .glass-shard {
  position:absolute; bottom:22%; left:52%; width:8px; height:14px;
  background: linear-gradient(135deg, #5a4a40 0%, #3a2a22 100%);
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  animation: tsm-shard 6s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-two-sisters-murder-plan .shadow-impending {
  position:absolute; bottom:15%; left:30%; right:30%; height:40%;
  background: radial-gradient(ellipse at 50% 0%, #0a0606 0%, transparent 70%);
  filter: blur(8px);
  animation: tsm-shadow 10s ease-in-out infinite alternate;
}
@keyframes tsm-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes tsm-hand { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(6px,-3px) rotate(5deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-4px,-1px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes tsm-bottle { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-5deg); } }
@keyframes tsm-shard { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 50% { transform: translate(8px,-6px) rotate(45deg) scale(1.1); } 100% { transform: translate(0,0) rotate(0deg) scale(1); } }
@keyframes tsm-shadow { 0% { transform: scaleY(1); opacity:0.4 } 50% { transform: scaleY(1.1); opacity:0.6 } 100% { transform: scaleY(0.9); opacity:0.3 } }

/* Scene: two-sisters-forgiveness */
.scn-two-sisters-forgiveness {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e18 40%, #140e0c 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a24 0%, transparent 60%);
}
.scn-two-sisters-forgiveness .bg-dim {
  position:absolute; inset:0;
  background: radial-gradient(circle at 30% 70%, #0e0a08 0%, transparent 80%);
  animation: tsf-bg 18s ease-in-out infinite alternate;
}
.scn-two-sisters-forgiveness .window {
  position:absolute; top:8%; left:35%; right:35%; height:30%;
  background: linear-gradient(180deg, #4a3a34 0%, #2a1e18 100%);
  border: 2px solid #5a4a42;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: tsf-window 12s ease-in-out infinite;
}
.scn-two-sisters-forgiveness .kneeling-figure {
  position:absolute; bottom:18%; left:40%; width:32px; height:48px;
  background: linear-gradient(180deg, #2a1a16 0%, #1a0e0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleY(0.7);
  transform-origin: bottom center;
  animation: tsf-kneel 8s ease-in-out infinite alternate;
}
.scn-two-sisters-forgiveness .standing-figure {
  position:absolute; bottom:22%; right:30%; width:36px; height:60px;
  background: linear-gradient(180deg, #3a2822 0%, #2a1a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tsf-stand 6s ease-in-out infinite;
}
.scn-two-sisters-forgiveness .tear-drop {
  position:absolute; bottom:38%; left:43%; width:2px; height:6px;
  background: radial-gradient(circle, #c0a8a0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: tsf-tear 4s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-two-sisters-forgiveness .shadow-confession {
  position:absolute; bottom:10%; left:20%; right:20%; height:30%;
  background: radial-gradient(ellipse at 50% 0%, #0a0606 0%, transparent 70%);
  filter: blur(6px);
  animation: tsf-shadow 14s ease-in-out infinite;
}
@keyframes tsf-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes tsf-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes tsf-kneel { 0% { transform: scaleY(0.7) translateY(0); } 50% { transform: scaleY(0.65) translateY(4px); } 100% { transform: scaleY(0.7) translateY(0); } }
@keyframes tsf-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes tsf-tear { 0% { transform: translateY(0) scaleY(1); opacity:0.8; } 50% { transform: translateY(8px) scaleY(1.5); opacity:0.3; } 100% { transform: translateY(0) scaleY(1); opacity:0; } }
@keyframes tsf-shadow { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.5; transform: scaleY(1.1); } 100% { opacity:0.2; transform: scaleY(0.9); } }

/* Scene: two-sisters-absolution */
.scn-two-sisters-absolution {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a1e1a 40%, #140e0c 100%),
    radial-gradient(ellipse at 40% 30%, #3a2a24 0%, transparent 60%);
}
.scn-two-sisters-absolution .bg-glow {
  position:absolute; inset:0;
  background: radial-gradient(circle at 50% 50%, #2a1e1a 0%, transparent 70%);
  animation: tsa-bg 15s ease-in-out infinite alternate;
}
.scn-two-sisters-absolution .priest-figure {
  position:absolute; bottom:20%; left:45%; width:40px; height:72px;
  background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsa-priest 10s ease-in-out infinite;
}
.scn-two-sisters-absolution .embrace-left {
  position:absolute; bottom:18%; left:32%; width:36px; height:54px;
  background: linear-gradient(180deg, #3a2822 0%, #2a1a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: right bottom;
  animation: tsa-embrace-left 8s ease-in-out infinite alternate;
}
.scn-two-sisters-absolution .embrace-right {
  position:absolute; bottom:18%; right:32%; width:36px; height:54px;
  background: linear-gradient(180deg, #3a2822 0%, #2a1a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: left bottom;
  animation: tsa-embrace-right 8s ease-in-out infinite alternate;
}
.scn-two-sisters-absolution .halo-light {
  position:absolute; top:12%; left:40%; right:40%; height:20%;
  background: radial-gradient(circle, rgba(200,180,160,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: tsa-halo 6s ease-in-out infinite;
}
.scn-two-sisters-absolution .shadow-blessing {
  position:absolute; bottom:10%; left:25%; right:25%; height:30%;
  background: radial-gradient(ellipse at 50% 0%, #0a0606 0%, transparent 70%);
  filter: blur(6px);
  animation: tsa-shadow 14s ease-in-out infinite alternate;
}
@keyframes tsa-bg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes tsa-priest { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes tsa-embrace-left { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes tsa-embrace-right { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(8deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes tsa-halo { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.2; transform: scale(0.9); } }
@keyframes tsa-shadow { 0% { opacity:0.4; transform: scaleY(1); } 50% { opacity:0.6; transform: scaleY(1.15); } 100% { opacity:0.3; transform: scaleY(0.85); } }

/* father-saval-awakening */
.scn-father-saval-awakening {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2244 30%, #4a3a6e 60%, #6a5a8e 100%), radial-gradient(ellipse at 30% 20%, #8a7aaa 0%, transparent 60%);
}
.scn-father-saval-awakening .bg-dawn {
  position: absolute; inset:0; background: linear-gradient(180deg, #3a3a5e 0%, #6a5a8e 40%, #8a7aaa 70%, #a090b0 100%); opacity:0.6; animation: fsa-dawn 15s ease-in-out infinite alternate;
}
.scn-father-saval-awakening .silhouette-bed {
  position: absolute; bottom:0; left:10%; width:80%; height:40%; background: linear-gradient(0deg, #1a1a2e 0%, #2c2244 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); animation: fsa-bed 8s ease-in-out infinite;
}
.scn-father-saval-awakening .window-frame {
  position: absolute; top:8%; right:12%; width:25%; height:35%; border: 4px solid #2c2244; border-radius: 4px; background: transparent; box-shadow: inset 0 0 20px rgba(100,80,120,0.3); animation: fsa-frame 12s ease-in-out infinite alternate;
}
.scn-father-saval-awakening .window-light {
  position: absolute; top:10%; right:14%; width:21%; height:31%; background: radial-gradient(circle at 50% 50%, #c0b0d0 0%, #8a7aaa 50%, transparent 80%); opacity:0.5; animation: fsa-light 6s ease-in-out infinite alternate;
}
.scn-father-saval-awakening .figure-lying {
  position: absolute; bottom:12%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 60%, #2c2244 0%, #1a1a2e 100%); border-radius: 60% 60% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fsa-lying 10s ease-in-out infinite;
}
.scn-father-saval-awakening .dust-motes {
  position: absolute; inset:0; background: radial-gradient(circle at 20% 30%, rgba(200,190,220,0.1) 0%, transparent 50%), radial-gradient(circle at 80% 60%, rgba(200,190,220,0.08) 0%, transparent 40%); animation: fsa-dust 20s linear infinite;
}
.scn-father-saval-awakening .shadow-morning {
  position: absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #0a0a1a 0%, transparent 100%); animation: fsa-shadow 10s ease-in-out infinite alternate;
}
@keyframes fsa-dawn { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes fsa-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes fsa-frame { 0% { box-shadow: inset 0 0 10px rgba(100,80,120,0.2); } 100% { box-shadow: inset 0 0 30px rgba(100,80,120,0.5); } }
@keyframes fsa-light { 0% { opacity:0.3; transform: scaleX(0.9); } 50% { opacity:0.6; transform: scaleX(1); } 100% { opacity:0.4; transform: scaleX(0.95); } }
@keyframes fsa-lying { 0%,100% { transform: rotate(-1deg) scaleX(1); } 50% { transform: rotate(1deg) scaleX(0.98); } }
@keyframes fsa-dust { 0% { background-position: 0 0, 0 0; } 100% { background-position: 50px 30px, -40px 20px; } }
@keyframes fsa-shadow { 0% { opacity:0.6; } 100% { opacity:0.8; } }

/* father-saval-unrequited */
.scn-father-saval-unrequited {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2244 50%, #3a2a4a 100%), radial-gradient(ellipse at 70% 50%, #4a3a5e 0%, transparent 70%);
}
.scn-father-saval-unrequited .bg-interior {
  position: absolute; inset:0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); opacity:0.8;
}
.scn-father-saval-unrequited .wall-shadow {
  position: absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a1a2e 0%, transparent 100%); animation: fsu-shadow 12s ease-in-out infinite alternate;
}
.scn-father-saval-unrequited .armchair {
  position: absolute; bottom:0; left:20%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 30%, #3a2a4a 0%, #1a1a2e 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 -10px 20px rgba(0,0,0,0.4); animation: fsu-chair 9s ease-in-out infinite;
}
.scn-father-saval-unrequited .figure-sitting {
  position: absolute; bottom:12%; left:35%; width:20%; height:30%; background: linear-gradient(180deg, #2c2244 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fsu-sit 7s ease-in-out infinite;
}
.scn-father-saval-unrequited .memory-blur {
  position: absolute; top:10%; right:10%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(180,160,200,0.15) 0%, transparent 70%); filter: blur(8px); animation: fsu-memory 15s ease-in-out infinite alternate;
}
.scn-father-saval-unrequited .lamplight {
  position: absolute; bottom:30%; left:45%; width:20%; height:20%; background: radial-gradient(circle, #c0a060 0%, #a08040 40%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(192,160,96,0.3); animation: fsu-lamp 4s ease-in-out infinite alternate;
}
.scn-father-saval-unrequited .falling-petal {
  position: absolute; top:5%; left:10%; width:8px; height:8px; background: radial-gradient(circle, #b87878 0%, #5e1a1d 100%); border-radius: 50% 0% 50% 0%; animation: fsu-petal 8s linear infinite;
}
.scn-father-saval-unrequited .dust-particles {
  position: absolute; inset:0; background: radial-gradient(circle at 30% 70%, rgba(200,190,220,0.05) 0%, transparent 50%), radial-gradient(circle at 70% 30%, rgba(200,190,220,0.03) 0%, transparent 40%); animation: fsu-dust 25s linear infinite;
}
@keyframes fsu-shadow { 0% { opacity:0.3; } 100% { opacity:0.6; } }
@keyframes fsu-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes fsu-sit { 0%,100% { transform: rotate(0) scaleX(1); } 25% { transform: rotate(1deg) scaleX(0.98); } 75% { transform: rotate(-1deg) scaleX(0.98); } }
@keyframes fsu-memory { 0% { opacity:0.2; filter: blur(12px); } 50% { opacity:0.4; filter: blur(6px); } 100% { opacity:0.2; filter: blur(10px); } }
@keyframes fsu-lamp { 0% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(192,160,96,0.2); } 100% { opacity:1; box-shadow: 0 0 60px 15px rgba(192,160,96,0.5); } }
@keyframes fsu-petal { 0% { transform: translate(0, 0) rotate(0deg); opacity:1; } 100% { transform: translate(20px, 80vh) rotate(720deg); opacity:0; } }
@keyframes fsu-dust { 0% { background-position: 0 0, 0 0; } 100% { background-position: 30px 20px, -20px -10px; } }

/* father-saval-memories */
.scn-father-saval-memories {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #7a5a4a 100%), radial-gradient(ellipse at 50% 30%, #8a6a4a 0%, transparent 70%);
}
.scn-father-saval-memories .bg-warm {
  position: absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #6a4a3a 50%, #8a6a4a 100%); opacity:0.7; animation: fsm-warm 14s ease-in-out infinite alternate;
}
.scn-father-saval-memories .fireplace {
  position: absolute; bottom:0; left:20%; width:60%; height:50%; background: radial-gradient(ellipse at 50% 40%, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.7); animation: fsm-fireplace 10s ease-in-out infinite;
}
.scn-father-saval-memories .mantle {
  position: absolute; bottom:45%; left:25%; width:50%; height:5%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-father-saval-memories .table-with-book {
  position: absolute; bottom:10%; left:30%; width:30%; height:15%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.4); animation: fsm-table 8s ease-in-out infinite alternate;
}
.scn-father-saval-memories .chair-memory {
  position: absolute; bottom:8%; right:15%; width:25%; height:35%; background: radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 -5px 15px rgba(0,0,0,0.3); animation: fsm-chair 12s ease-in-out infinite;
}
.scn-father-saval-memories .memory-woman {
  position: absolute; bottom:15%; right:20%; width:15%; height:25%; background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.4; filter: blur(3px); animation: fsm-woman 20s ease-in-out infinite alternate;
}
.scn-father-saval-memories .warm-glow {
  position: absolute; bottom:0; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 0%, #a07040 0%, transparent 70%); opacity:0.5; animation: fsm-glow 5s ease-in-out infinite alternate;
}
.scn-father-saval-memories .ember-drift {
  position: absolute; bottom:40%; left:40%; width:6px; height:6px; background: radial-gradient(circle, #d09050 0%, #a06030 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(208,144,80,0.6); animation: fsm-ember 3s ease-in-out infinite;
}
@keyframes fsm-warm { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes fsm-fireplace { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes fsm-table { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes fsm-chair { 0%,100% { transform: rotate(0); } 50% { transform: rotate(1deg); } }
@keyframes fsm-woman { 0% { opacity:0.2; filter: blur(5px); } 50% { opacity:0.5; filter: blur(2px); } 100% { opacity:0.3; filter: blur(4px); } }
@keyframes fsm-glow { 0% { opacity:0.3; } 100% { opacity:0.6; } }
@keyframes fsm-ember { 0%,100% { transform: translate(0,0) scale(1); opacity:0.8; } 50% { transform: translate(10px,-5px) scale(1.2); opacity:1; } }

/* father-saval-walk */
.scn-father-saval-walk {
  background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 30%, #e0f0ff 60%, #fff5e0 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-father-saval-walk .sky-sunlit {
  position: absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 60%, transparent 100%); animation: fsw-sky 18s ease-in-out infinite alternate;
}
.scn-father-saval-walk .river {
  position: absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%); border-radius: 0 0 50% 50% / 0 0 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: fsw-river 12s ease-in-out infinite;
}
.scn-father-saval-walk .bank-path {
  position: absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: fsw-bank 8s ease-in-out infinite alternate;
}
.scn-father-saval-walk .tree-left {
  position: absolute; bottom:30%; left:5%; width:15%; height:60%; background: radial-gradient(ellipse at 50% 20%, #3a5a2a 0%, #1a3a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 10px 20px rgba(0,0,0,0.3); animation: fsw-tree-left 30s ease-in-out infinite alternate;
}
.scn-father-saval-walk .tree-right {
  position: absolute; bottom:30%; right:5%; width:18%; height:70%; background: radial-gradient(ellipse at 50% 20%, #3a5a2a 0%, #1a3a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 10px 20px rgba(0,0,0,0.3); animation: fsw-tree-right 35s ease-in-out infinite alternate;
}
.scn-father-saval-walk .figure-man {
  position: absolute; bottom:27%; left:40%; width:12%; height:22%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fsw-man 5s ease-in-out infinite;
}
.scn-father-saval-walk .figure-woman {
  position: absolute; bottom:27%; left:46%; width:11%; height:20%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fsw-woman 5s ease-in-out infinite 0.3s;
}
.scn-father-saval-walk .sunbeam {
  position: absolute; top:5%; left:30%; width:40%; height:60%; background: linear-gradient(135deg, rgba(255,255,200,0.15) 0%, transparent 70%); filter: blur(10px); animation: fsw-beam 10s ease-in-out infinite alternate;
}
@keyframes fsw-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes fsw-river { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes fsw-bank { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes fsw-tree-left { 0% { transform: rotate(-1deg); } 100% { transform: rotate(1deg); } }
@keyframes fsw-tree-right { 0% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes fsw-man { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(0); } 75% { transform: translateX(6px) rotate(-1deg); } }
@keyframes fsw-woman { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(4px) rotate(0); } 75% { transform: translateX(6px) rotate(1deg); } }
@keyframes fsw-beam { 0% { opacity:0.2; transform: rotate(0deg); } 100% { opacity:0.4; transform: rotate(5deg); } }

/* === scene: cocotte-asylum-intro (coai) === */
.scn-cocotte-asylum-intro {
  background:
    linear-gradient(180deg, #d4e4f0 0%, #b8cce0 30%, #8aacb8 60%, #5a7a6a 100%),
    radial-gradient(ellipse at 60% 40%, #fdf4d8 0%, transparent 60%);
}
.scn-cocotte-asylum-intro .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a8c4d4 0%, #c0d8e4 40%, transparent 100%);
  animation: coai-sky 20s ease-in-out infinite alternate;
}
.scn-cocotte-asylum-intro .wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #cec4a0 0%, #9a8a6a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.15);
}
.scn-cocotte-asylum-intro .tree {
  position: absolute; bottom: 35%; left: 20%;
  width: 60px; height: 160px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: coai-tree 6s ease-in-out infinite;
}
.scn-cocotte-asylum-intro .figure-calling {
  position: absolute; bottom: 20%; left: 55%;
  width: 24px; height: 90px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: coai-figure 4s ease-in-out infinite;
}
.scn-cocotte-asylum-intro .shadow {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: coai-shadow 6s ease-in-out infinite;
}
.scn-cocotte-asylum-intro .dust {
  position: absolute; top: 20%; left: 30%; width: 8px; height: 8px;
  background: rgba(255,240,200,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: coai-dust 12s linear infinite;
}
.scn-cocotte-asylum-intro .dust.b {
  left: 70%; top: 40%; width: 5px; height: 5px;
  animation-delay: -4s;
  animation-duration: 18s;
}

@keyframes coai-sky {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.85; transform: translateY(1px); }
}
@keyframes coai-tree {
  0%,100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}
@keyframes coai-figure {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(2px) rotate(0deg); }
  50% { transform: translateX(4px) rotate(3deg); }
  75% { transform: translateX(2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes coai-shadow {
  0%,100% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(0.9); }
}
@keyframes coai-dust {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; }
  25% { opacity: 0.6; }
  50% { transform: translateY(-40px) translateX(20px) scale(1.5); opacity: 0.8; }
  100% { transform: translateY(-80px) translateX(40px) scale(0); opacity: 0; }
}

/* === scene: cocotte-following (cofo) === */
.scn-cocotte-following {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a14 30%, #6a3a1a 60%, #8a4a2a 100%),
    radial-gradient(ellipse at 30% 80%, #ab6730 0%, transparent 70%);
}
.scn-cocotte-following .road {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 70% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.4);
}
.scn-cocotte-following .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #1a0a00 0%, #3a1a08 50%, #5a2a12 100%);
  animation: cofo-sky 8s ease-in-out infinite alternate;
}
.scn-cocotte-following .man {
  position: absolute; bottom: 18%; left: 40%;
  width: 22px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cofo-man 5s ease-in-out infinite;
}
.scn-cocotte-following .dog {
  position: absolute; bottom: 15%; left: 60%;
  width: 30px; height: 16px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 60% 30% 30% / 80% 60% 40% 40%;
  animation: cofo-dog 4s ease-in-out infinite;
  transform-origin: center bottom;
}
.scn-cocotte-following .lantern {
  position: absolute; bottom: 30%; left: 35%;
  width: 10px; height: 14px;
  background: radial-gradient(circle, #f0c050 0%, #a06020 70%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px rgba(240,192,80,0.5);
  animation: cofo-lantern 3s ease-in-out infinite alternate;
}
.scn-cocotte-following .house {
  position: absolute; bottom: 25%; left: 5%;
  width: 60px; height: 50px;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-cocotte-following .fence {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 4px;
  background: repeating-linear-gradient(90deg, #2a1a0a 0px, #2a1a0a 4px, transparent 4px, transparent 12px);
  animation: cofo-fence 10s linear infinite;
}
.scn-cocotte-following .stars {
  position: absolute; top: 10%; left: 0; width: 100%; height: 30%;
  background: radial-gradient(2px 2px at 20% 30%, #fdf4d8 0%, transparent 100%),
              radial-gradient(2px 2px at 60% 10%, #fdf4d8 0%, transparent 100%),
              radial-gradient(1px 1px at 80% 50%, #fdf4d8 0%, transparent 100%),
              radial-gradient(1px 1px at 40% 70%, #fdf4d8 0%, transparent 100%);
  animation: cofo-twinkle 4s ease-in-out infinite alternate;
}

@keyframes cofo-sky {
  0% { opacity: 0.6; }
  100% { opacity: 0.9; }
}
@keyframes cofo-man {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(0deg); }
  50% { transform: translateX(6px) rotate(2deg); }
  75% { transform: translateX(3px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes cofo-dog {
  0% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(4px) scaleX(1.02); }
  50% { transform: translateX(8px) scaleX(1); }
  75% { transform: translateX(4px) scaleX(0.98); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes cofo-lantern {
  0% { box-shadow: 0 0 12px 4px rgba(240,192,80,0.3); opacity: 0.7; }
  50% { box-shadow: 0 0 28px 10px rgba(240,192,80,0.7); opacity: 1; }
  100% { box-shadow: 0 0 16px 5px rgba(240,192,80,0.4); opacity: 0.8; }
}
@keyframes cofo-fence {
  0% { background-position: 0 0; }
  100% { background-position: -24px 0; }
}
@keyframes cofo-twinkle {
  0% { opacity: 0.3; }
  100% { opacity: 1; }
}

/* === scene: cocotte-adoption (coad) === */
.scn-cocotte-adoption {
  background:
    linear-gradient(180deg, #1a0e08 0%, #2a1a0e 40%, #3a2212 100%),
    radial-gradient(ellipse at 30% 70%, #5a3a1a 0%, transparent 70%);
}
.scn-cocotte-adoption .stable-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 30px, rgba(60,40,20,0.15) 30px, rgba(60,40,20,0.15) 32px);
  animation: coad-stable 15s linear infinite;
}
.scn-cocotte-adoption .straw {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #7a5a2a 0%, #5a3a1a 100%);
  border-radius: 60% 60% 20% 20%;
  transform: scale(1,0.4);
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
}
.scn-cocotte-adoption .bed {
  position: absolute; bottom: 12%; left: 20%; width: 40%; height: 20%;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2212 100%);
  border-radius: 10% 10% 30% 30% / 30% 30% 40% 40%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.4);
}
.scn-cocotte-adoption .dog-curl {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 60% 60% 40% 40% / 50% 50% 30% 30%;
  animation: coad-dog 8s ease-in-out infinite;
}
.scn-cocotte-adoption .bread {
  position: absolute; bottom: 22%; left: 48%; width: 16px; height: 8px;
  background: #7a5a2a;
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(15deg);
}
.scn-cocotte-adoption .lantern {
  position: absolute; top: 20%; left: 15%;
  width: 14px; height: 20px;
  background: radial-gradient(circle, #f0b040 0%, #a06010 70%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(240,176,64,0.4);
  animation: coad-lantern 5s ease-in-out infinite;
}
.scn-cocotte-adoption .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 20% 30%, rgba(240,176,64,0.08) 0%, transparent 60%);
  animation: coad-glow 7s ease-in-out infinite alternate;
}

@keyframes coad-stable {
  0% { background-position: 0 0; }
  100% { background-position: 0 -32px; }
}
@keyframes coad-dog {
  0%,100% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(0.95) rotate(3deg); }
}
@keyframes coad-lantern {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes coad-glow {
  0% { opacity: 0.3; }
  100% { opacity: 0.7; }
}

/* === scene: cocotte-exile (coex) === */
.scn-cocotte-exile {
  background:
    linear-gradient(135deg, #d8dcdc 0%, #b0b8b8 50%, #889090 100%),
    radial-gradient(ellipse at 80% 40%, #e8ecec 0%, transparent 70%);
}
.scn-cocotte-exile .room-bg {
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.05) 0%, transparent 40%, rgba(0,0,0,0.1) 100%),
    repeating-linear-gradient(90deg, transparent, transparent 60px, rgba(200,200,200,0.2) 60px, rgba(200,200,200,0.2) 62px);
}
.scn-cocotte-exile .doorway {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 60%;
  background: #3a3a3a;
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  transform: scale(1,0.8);
}
.scn-cocotte-exile .master {
  position: absolute; bottom: 25%; left: 35%;
  width: 30px; height: 90px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: coex-master 3s ease-in-out infinite;
}
.scn-cocotte-exile .francois {
  position: absolute; bottom: 25%; left: 55%;
  width: 28px; height: 85px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: coex-francois 3.5s ease-in-out infinite;
}
.scn-cocotte-exile .dog-bound {
  position: absolute; bottom: 18%; left: 48%;
  width: 36px; height: 18px;
  background: radial-gradient(ellipse, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 60% 40% 30% 30% / 80% 60% 40% 40%;
  animation: coex-dog 2s ease-in-out infinite;
}
.scn-cocotte-exile .chain {
  position: absolute; bottom: 28%; left: 52%; width: 40px; height: 2px;
  background: repeating-linear-gradient(90deg, #5a5a5a 0px, #5a5a5a 4px, transparent 4px, transparent 8px);
  transform: rotate(-30deg);
  transform-origin: left center;
  animation: coex-chain 1.5s ease-in-out infinite alternate;
}
.scn-cocotte-exile .sharp-light {
  position: absolute; top: 0; left: 50%; width: 200px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%);
  animation: coex-light 4s ease-in-out infinite alternate;
}

@keyframes coex-master {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes coex-francois {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes coex-dog {
  0%,100% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(0.9) translateY(-2px); }
}
@keyframes coex-chain {
  0% { transform: rotate(-35deg); }
  100% { transform: rotate(-25deg); }
}
@keyframes coex-light {
  0% { opacity: 0.3; transform: translateX(-10px); }
  100% { opacity: 0.8; transform: translateX(10px); }
}

.scn-grave-cemetery-watchman {
  background: linear-gradient(180deg, #0b0e1a 0%, #141b2b 40%, #1e2a3a 100%);
  position: relative; overflow: hidden;
}
.scn-grave-cemetery-watchman .sky { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%, #2a3b5e 0%, transparent 60%); animation: gw-sky 12s ease-in-out infinite alternate; }
.scn-grave-cemetery-watchman .moon { position:absolute; top:8%; left:70%; width:30px; height:30px; background:radial-gradient(circle, #b8c8e0 0%, #7a8aa0 100%); border-radius:50%; box-shadow:0 0 40px 10px rgba(120,140,180,0.3); animation: gw-moon 20s ease-in-out infinite; }
.scn-grave-cemetery-watchman .graves { position:absolute; bottom:30%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.5); }
.scn-grave-cemetery-watchman .gate { position:absolute; bottom:25%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:5% 5% 0 0; box-shadow:0 2px 8px rgba(0,0,0,.6); transform-origin:bottom; animation: gw-gate 3s ease-in-out infinite; }
.scn-grave-cemetery-watchman .watchman { position:absolute; bottom:27%; left:30%; width:16px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: gw-walk 4s ease-in-out infinite; }
.scn-grave-cemetery-watchman .dog { position:absolute; bottom:27%; left:37%; width:20px; height:14px; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 100%); border-radius:50% 50% 40% 40%; animation: gw-sniff 2s ease-in-out infinite; }
.scn-grave-cemetery-watchman .lantern { position:absolute; bottom:32%; left:30%; width:8px; height:8px; background:#e8c868; border-radius:50%; box-shadow: 0 0 20px 5px rgba(232,200,104,0.6), 0 0 40px 10px rgba(232,200,104,0.3); animation: gw-lantern 1.5s ease-in-out infinite alternate; }
.scn-grave-cemetery-watchman .mist { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(180,190,210,0.2) 0%, transparent 100%); filter: blur(8px); animation: gw-mist 30s linear infinite; }

@keyframes gw-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes gw-moon { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-10px) scale(1.02) } 100% { transform: translateX(0) scale(1) } }
@keyframes gw-gate { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } }
@keyframes gw-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 33% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 66% { transform: translateX(10px) translateY(0) rotate(-1deg) } 100% { transform: translateX(15px) translateY(0) rotate(0) } }
@keyframes gw-sniff { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-10deg) } 75% { transform: translateX(2px) rotate(10deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gw-lantern { 0% { box-shadow:0 0 15px 3px rgba(232,200,104,0.5); opacity:.8 } 100% { box-shadow:0 0 25px 8px rgba(232,200,104,0.7); opacity:1 } }
@keyframes gw-mist { 0% { transform: translateX(-20px) } 100% { transform: translateX(100vw) } }

.scn-grave-profanation {
  background: linear-gradient(180deg, #0c1122 0%, #1a2240 40%, #2c3555 100%);
  position: relative; overflow: hidden;
}
.scn-grave-profanation .sky { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%, #3a4a7a 0%, transparent 70%); animation: gp-sky 15s ease-in-out infinite alternate; }
.scn-grave-profanation .moon { position:absolute; top:5%; right:15%; width:35px; height:35px; background:radial-gradient(circle, #c8d8f0 0%, #8090a8 100%); border-radius:50%; box-shadow:0 0 50px 15px rgba(128,144,168,0.4); animation: gp-moon 25s ease-in-out infinite; }
.scn-grave-profanation .mound { position:absolute; bottom:30%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.6); }
.scn-grave-profanation .coffin { position:absolute; bottom:30%; left:35%; width:50px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 10% 10%; box-shadow:0 2px 8px rgba(0,0,0,.7); transform:rotate(-10deg); animation: gp-coffin 6s ease-in-out infinite; }
.scn-grave-profanation .digger { position:absolute; bottom:27%; left:40%; width:18px; height:34px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: gp-dig 2s ease-in-out infinite; }
.scn-grave-profanation .lantern { position:absolute; bottom:35%; left:35%; width:10px; height:10px; background:#c89848; border-radius:50%; box-shadow: 0 0 30px 8px rgba(200,152,72,0.5), 0 0 60px 15px rgba(200,152,72,0.3); animation: gp-lantern 2s ease-in-out infinite alternate; }
.scn-grave-profanation .watchman { position:absolute; bottom:27%; right:25%; width:18px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:scaleX(-1); animation: gp-charge 3s ease-in-out infinite; }
.scn-grave-profanation .spade { position:absolute; bottom:33%; left:45%; width:4px; height:22px; background:#5a4a3a; border-radius:2px; transform:rotate(30deg); animation: gp-spade 2s ease-in-out infinite; }

@keyframes gp-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes gp-moon { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) scale(1.03) } 100% { transform: translateX(0) } }
@keyframes gp-coffin { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes gp-dig { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gp-lantern { 0% { box-shadow:0 0 20px 4px rgba(200,152,72,0.4); opacity:.8 } 100% { box-shadow:0 0 35px 12px rgba(200,152,72,0.6); opacity:1 } }
@keyframes gp-charge { 0% { transform: scaleX(-1) translateX(0) } 33% { transform: scaleX(-1) translateX(-15px) } 66% { transform: scaleX(-1) translateX(-30px) } 100% { transform: scaleX(-1) translateX(0) } }
@keyframes gp-spade { 0% { transform: rotate(30deg) } 50% { transform: rotate(40deg) } 100% { transform: rotate(30deg) } }

.scn-grave-trial {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 50%, #b0a090 100%);
  position: relative; overflow: hidden;
}
.scn-grave-trial .wall { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(90deg, #d4c8b4 0%, #c0b0a0 50%, #b0a090 100%); }
.scn-grave-trial .bench { position:absolute; bottom:50%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4px; box-shadow:0 -2px 6px rgba(0,0,0,.3); }
.scn-grave-trial .judge { position:absolute; bottom:55%; left:45%; width:22px; height:40px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:scaleY(1.1); animation: gt-judge 4s ease-in-out infinite; }
.scn-grave-trial .defendant { position:absolute; bottom:35%; left:30%; width:18px; height:32px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: gt-node 3s ease-in-out infinite; }
.scn-grave-trial .prosecutor { position:absolute; bottom:40%; left:55%; width:18px; height:36px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: gt-point 2s ease-in-out infinite; }
.scn-grave-trial .crowd-l { position:absolute; bottom:30%; left:5%; width:30%; height:20%; background: linear-gradient(180deg, rgba(60,50,40,0.3) 0%, rgba(40,30,20,0.5) 100%); filter:blur(2px); animation: gt-sway 5s ease-in-out infinite; }
.scn-grave-trial .crowd-r { position:absolute; bottom:30%; right:5%; width:30%; height:20%; background: linear-gradient(180deg, rgba(60,50,40,0.3) 0%, rgba(40,30,20,0.5) 100%); filter:blur(2px); animation: gt-sway 5s ease-in-out infinite reverse; }
.scn-grave-trial .railing { position:absolute; bottom:28%; left:10%; right:10%; height:4px; background:#5a4a3a; border-radius:2px; }

@keyframes gt-judge { 0% { transform: scaleY(1.1) } 50% { transform: scaleY(1.15) } 100% { transform: scaleY(1.1) } }
@keyframes gt-node { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gt-point { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(10deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gt-sway { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(0) } }

.scn-grave-love-story {
  background: linear-gradient(180deg, #f8ecd0 0%, #e8d8b8 50%, #d0c0a0 100%);
  position: relative; overflow: hidden;
}
.scn-grave-love-story .wall { position:absolute; inset:0; background: linear-gradient(135deg, #e8dcc0 0%, #dcc8a8 100%); }
.scn-grave-love-story .window { position:absolute; top:10%; left:40%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 50%, #ffe8b0 0%, #d0b890 70%, #b09878 100%); border:6px solid #8a7a6a; border-radius:4px; box-shadow: inset 0 0 30px rgba(255,232,176,0.3); animation: gl-window 8s ease-in-out infinite alternate; }
.scn-grave-love-story .table { position:absolute; bottom:30%; left:35%; right:35%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4px; box-shadow:0 -2px 8px rgba(0,0,0,.2); }
.scn-grave-love-story .figure-a { position:absolute; bottom:32%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: gl-breathe 4s ease-in-out infinite; }
.scn-grave-love-story .figure-b { position:absolute; bottom:32%; right:30%; width:20px; height:40px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: gl-breathe 4s ease-in-out infinite reverse; }
.scn-grave-love-story .flower { position:absolute; bottom:38%; left:48%; width:8px; height:12px; background: radial-gradient(circle, #b87878 0%, #a05a5a 100%); border-radius:50% 50% 30% 30%; animation: gl-flower 6s ease-in-out infinite; }
.scn-grave-love-story .glow-light { position:absolute; top:5%; left:30%; right:30%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(255,232,176,0.15) 0%, transparent 70%); animation: gl-glow 5s ease-in-out infinite alternate; }

@keyframes gl-window { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes gl-breathe { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gl-flower { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.1) rotate(10deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes gl-glow { 0% { opacity:.5 } 100% { opacity:.8 } }

/* rosalie-prudent-accusation – tense bright interior */
.scn-rosalie-prudent-accusation {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #b8a88a 100%),
              radial-gradient(ellipse at 50% 80%, #eeddbb 0%, transparent 70%);
}
.scn-rosalie-prudent-accusation .courtroom-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0e0c0 0%, #e0ceb0 50%, #c8b898 100%);
  animation: rap-bg 20s ease-in-out infinite alternate;
}
.scn-rosalie-prudent-accusation .bench {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 8%; background: #6b4c3a;
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-rosalie-prudent-accusation .judge {
  position: absolute; bottom: 38%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rap-judge 6s ease-in-out infinite;
}
.scn-rosalie-prudent-accusation .witness-box {
  position: absolute; bottom: 22%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c4a88a 0%, #a89070 100%); border: 2px solid #8a705a;
  border-radius: 2px;
}
.scn-rosalie-prudent-accusation .accuser-figure {
  position: absolute; bottom: 22%; left: 62%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: rap-point 3s ease-in-out infinite alternate;
}
.scn-rosalie-prudent-accusation .pointing {
  left: 62%; transform-origin: center bottom;
}
.scn-rosalie-prudent-accusation .accused-couple {
  position: absolute; bottom: 22%; left: 10%; width: 60px; height: 40px;
  background: linear-gradient(90deg, #7a5a4a 0%, #9a7a6a 50%, #7a5a4a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: rap-couple 4s ease-in-out infinite;
}
.scn-rosalie-prudent-accusation .cry-bubble {
  position: absolute; bottom: 35%; left: 15%; width: 16px; height: 16px;
  background: radial-gradient(circle, #d4c4b0 0%, transparent 70%);
  border-radius: 50%; opacity: 0.6; animation: rap-cry 2s ease-in-out infinite;
}
.scn-rosalie-prudent-accusation .shadow-stripe {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.08) 100%);
  animation: rap-shadow 12s ease-in-out infinite alternate;
}
@keyframes rap-bg { 0% { opacity: 1; } 50% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes rap-judge { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rap-point { 0% { transform: translate(0,0) rotate(-5deg); } 100% { transform: translate(8px,-3px) rotate(5deg); } }
@keyframes rap-couple { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(-3px) scaleY(0.98); } 50% { transform: translateX(0) scaleY(1); } 75% { transform: translateX(3px) scaleY(0.98); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes rap-cry { 0% { transform: scale(1) translateY(0); opacity: 0.6; } 50% { transform: scale(1.2) translateY(-4px); opacity: 1; } 100% { transform: scale(1) translateY(0); opacity: 0.6; } }
@keyframes rap-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

/* rosalie-prudent-confession – tense bright interior, confessional */
.scn-rosalie-prudent-confession {
  background: linear-gradient(180deg, #e6d4ba 0%, #d0bea4 40%, #b8a48c 100%),
              radial-gradient(ellipse at 50% 30%, #f5e8d0 0%, transparent 70%);
}
.scn-rosalie-prudent-confession .courtroom-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8d6c0 0%, #d4c0aa 50%, #beaa94 100%);
  animation: rpc-bg 15s ease-in-out infinite alternate;
}
.scn-rosalie-prudent-confession .confessional-frame {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 55%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: rpc-frame 8s ease-in-out infinite;
}
.scn-rosalie-prudent-confession .priest-judge {
  position: absolute; bottom: 40%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: rpc-priest 5s ease-in-out infinite;
}
.scn-rosalie-prudent-confession .weeping-figure {
  position: absolute; bottom: 28%; left: 42%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: rpc-weep 3s ease-in-out infinite;
}
.scn-rosalie-prudent-confession .handkerchief {
  position: absolute; bottom: 32%; left: 46%; width: 14px; height: 10px;
  background: radial-gradient(circle, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 50% 50% 40% 40%; opacity: 0.8;
  animation: rpc-hanky 4s ease-in-out infinite alternate;
}
.scn-rosalie-prudent-confession .tear-drops {
  position: absolute; bottom: 35%; left: 44%; width: 6px; height: 6px;
  background: radial-gradient(circle, #b0c0d0 0%, transparent 70%);
  border-radius: 50%; animation: rpc-tear 2s ease-in-out infinite;
}
.scn-rosalie-prudent-confession .light-ray {
  position: absolute; top: 0; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,235,200,0.3) 0%, transparent 100%);
  animation: rpc-light 10s ease-in-out infinite alternate;
}
@keyframes rpc-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rpc-frame { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes rpc-priest { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rpc-weep { 0% { transform: translateY(0) translateX(0); } 25% { transform: translateY(-2px) translateX(2px); } 50% { transform: translateY(0) translateX(0); } 75% { transform: translateY(2px) translateX(-2px); } 100% { transform: translateY(0) translateX(0); } }
@keyframes rpc-hanky { 0% { transform: scale(1) translateX(0); } 100% { transform: scale(1.15) translateX(3px); } }
@keyframes rpc-tear { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(8px) scale(1.3); opacity: 1; } 100% { transform: translateY(0) scale(1); opacity: 0.8; } }
@keyframes rpc-light { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

/* rosalie-prudent-birth – dark dim interior */
.scn-rosalie-prudent-birth {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #0a0a10 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
}
.scn-rosalie-prudent-birth .dark-floor {
  position: absolute; inset: 0; background: linear-gradient(180deg, #12121a 0%, #0a0a0e 100%);
  animation: rpb-floor 30s ease-in-out infinite alternate;
}
.scn-rosalie-prudent-birth .kitchen-shape {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #1a1a20 0%, #0e0e14 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.8);
}
.scn-rosalie-prudent-birth .window-dim {
  position: absolute; top: 10%; left: 30%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #3a3a5a 0%, #1a1a2a 70%);
  border: 2px solid #2a2a3a; border-radius: 4px;
  animation: rpb-window 8s ease-in-out infinite alternate;
}
.scn-rosalie-prudent-birth .figure-crouched {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rpb-figure 6s ease-in-out infinite;
}
.scn-rosalie-prudent-birth .newborn-shape {
  position: absolute; bottom: 12%; left: 50%; width: 14px; height: 18px;
  background: radial-gradient(circle, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 30% 30%; opacity: 0.6;
  animation: rpb-newborn 4s ease-in-out infinite;
}
.scn-rosalie-prudent-birth .shadow-pool {
  position: absolute; bottom: 5%; left: 30%; right: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: rpb-shadow 12s ease-in-out infinite;
}
.scn-rosalie-prudent-birth .moon-glow {
  position: absolute; top: 5%; right: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, #5a5a7a 0%, transparent 70%);
  border-radius: 50%; opacity: 0.3; animation: rpb-moon 20s ease-in-out infinite alternate;
}
@keyframes rpb-floor { 0% { opacity: 0.8; } 50% { opacity: 0.6; } 100% { opacity: 0.8; } }
@keyframes rpb-window { 0% { opacity: 0.4; background: radial-gradient(ellipse at 50% 50%, #3a3a5a 0%, #1a1a2a 70%); } 50% { opacity: 0.6; background: radial-gradient(ellipse at 50% 50%, #4a4a6a 0%, #2a2a3a 70%); } 100% { opacity: 0.4; background: radial-gradient(ellipse at 50% 50%, #3a3a5a 0%, #1a1a2a 70%); } }
@keyframes rpb-figure { 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(0) rotate(0deg); } }
@keyframes rpb-newborn { 0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.4; } }
@keyframes rpb-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes rpb-moon { 0% { transform: translateX(0) scale(1); opacity: 0.2; } 50% { transform: translateX(-10px) scale(1.1); opacity: 0.4; } 100% { transform: translateX(0) scale(1); opacity: 0.2; } }

/* rosalie-prudent-verdict – calm bright interior */
.scn-rosalie-prudent-verdict {
  background: linear-gradient(180deg, #f5ecd8 0%, #e6dcc8 40%, #d4c8b0 100%),
              radial-gradient(ellipse at 50% 80%, #faf0e0 0%, transparent 70%);
}
.scn-rosalie-prudent-verdict .courtroom-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0e6d4 0%, #e0d4c0 50%, #d0c4ac 100%);
  animation: rpv-bg 18s ease-in-out infinite alternate;
}
.scn-rosalie-prudent-verdict .jury-box {
  position: absolute; bottom: 20%; left: 5%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8px; box-shadow: 0 -2px 4px rgba(0,0,0,0.2);
  animation: rpv-jury 10s ease-in-out infinite;
}
.scn-rosalie-prudent-verdict .judge-bench {
  position: absolute; bottom: 35%; left: 45%; width: 15%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
}
.scn-rosalie-prudent-verdict .sobbing-woman {
  position: absolute; bottom: 18%; left: 10%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: rpv-sob 5s ease-in-out infinite;
}
.scn-rosalie-prudent-verdict .defendant-calm {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: rpv-stand 8s ease-in-out infinite;
}
.scn-rosalie-prudent-verdict .truth-halo {
  position: absolute; top: 30%; left: 52%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f5e6c8 0%, rgba(245,230,200,0.2) 60%, transparent 100%);
  border-radius: 50%; opacity: 0.4; animation: rpv-halo 7s ease-in-out infinite alternate;
}
.scn-rosalie-prudent-verdict .blowing-nose {
  position: absolute; bottom: 22%; left: 8%; width: 12px; height: 8px;
  background: radial-gradient(circle, #d4c4b0 0%, #b8a88a 100%);
  border-radius: 50%; opacity: 0.7; animation: rpv-nose 3s ease-in-out infinite;
}
@keyframes rpv-bg { 0% { opacity: 1; } 50% { opacity: 0.95; } 100% { opacity: 1; } }
@keyframes rpv-jury { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rpv-sob { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-3deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes rpv-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rpv-halo { 0% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.1); opacity: 0.5; } 100% { transform: scale(1); opacity: 0.3; } }
@keyframes rpv-nose { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.2) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }

/* englishwoman-history */
.scn-englishwoman-history {
  background: linear-gradient(180deg, #2a2040 0%, #3c2a50 30%, #503a5e 60%, #3a2a3a 100%),
              radial-gradient(ellipse at 50% 0%, #6a4a7a 0%, transparent 70%);
}
.scn-englishwoman-history .sky-dusk {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a3a5e 0%, #3a2a4a 40%, transparent 100%);
  animation: eh1-sky 12s ease-in-out infinite alternate;
}
.scn-englishwoman-history .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 30% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.5);
  animation: eh1-hills 20s ease-in-out infinite alternate;
}
.scn-englishwoman-history .house {
  position: absolute; bottom: 34%; left: 40%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 0 8px rgba(0,0,0,0.6);
  transform: scale(0.85);
  animation: eh1-house 10s ease-in-out infinite;
}
.scn-englishwoman-history .window-glow {
  position: absolute; bottom: 38%; left: 44%; width: 12px; height: 14px;
  background: radial-gradient(circle, #d09050 0%, #a06a30 70%);
  border-radius: 20%;
  box-shadow: 0 0 20px 4px #b07840, 0 0 40px 10px rgba(176,120,64,0.4);
  animation: eh1-glow 3s ease-in-out infinite alternate;
}
.scn-englishwoman-history .figure {
  position: absolute; bottom: 28%; left: 55%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #151015 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eh1-walk 6s ease-in-out infinite;
}
.scn-englishwoman-history .silhouette-tree {
  position: absolute; bottom: 30%; left: 70%; width: 8px; height: 40px;
  background: #0a0a0a;
  border-radius: 10%;
  box-shadow: 0 0 0 4px #0a0a0a, 0 0 0 8px #0a0a0a;
  transform: scaleY(1.1);
  animation: eh1-tree 15s ease-in-out infinite;
}
.scn-englishwoman-history .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 60px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: eh1-drift-a 40s linear infinite;
}
.scn-englishwoman-history .cloud-b {
  position: absolute; top: 20%; right: 15%; width: 50px; height: 10px;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.03) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: eh1-drift-b 55s linear infinite reverse;
}
@keyframes eh1-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes eh1-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes eh1-house { 0%,100% { transform: scale(0.85) translateY(0) } 50% { transform: scale(0.85) translateY(-2px) } }
@keyframes eh1-glow { 0% { box-shadow: 0 0 15px 3px #b07840, 0 0 30px 6px rgba(176,120,64,0.3); opacity:0.8 } 50% { box-shadow: 0 0 25px 8px #d09050, 0 0 50px 15px rgba(208,144,80,0.5); opacity:1 } 100% { box-shadow: 0 0 18px 4px #b07840, 0 0 36px 8px rgba(176,120,64,0.35); opacity:0.85 } }
@keyframes eh1-walk { 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(0) } }
@keyframes eh1-tree { 0%,100% { transform: scaleY(1.1) rotate(0deg) } 33% { transform: scaleY(1.15) rotate(2deg) } 66% { transform: scaleY(1.05) rotate(-2deg) } }
@keyframes eh1-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes eh1-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* englishwoman-lost-son */
.scn-englishwoman-lost-son {
  background: linear-gradient(180deg, #1e1e3a 0%, #2a2a4a 40%, #1e1e2a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 80%);
}
.scn-englishwoman-lost-son .interior-wall {
  position: absolute; inset: 0 35% 10% 0;
  background: linear-gradient(180deg, #2e2a3a 0%, #1e1a2a 100%);
  border-right: 2px solid #4a3a4a;
  animation: eh2-wall 12s ease-in-out infinite alternate;
}
.scn-englishwoman-lost-son .window-frame {
  position: absolute; bottom: 30%; left: 10%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border: 4px solid #3a3a3a;
  border-radius: 4% 4% 6% 6%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: eh2-frame 8s ease-in-out infinite;
}
.scn-englishwoman-lost-son .window-glass {
  position: absolute; bottom: 32%; left: 12%; width: 46px; height: 66px;
  background: linear-gradient(180deg, rgba(60,60,90,0.6) 0%, rgba(30,30,60,0.8) 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(80,80,140,0.3);
  animation: eh2-glass 15s ease-in-out infinite alternate;
}
.scn-englishwoman-lost-son .woman-silhouette {
  position: absolute; bottom: 28%; left: 18%; width: 12px; height: 28px;
  background: #0a0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eh2-woman 5s ease-in-out infinite;
}
.scn-englishwoman-lost-son .distant-figure {
  position: absolute; bottom: 33%; left: 55%; width: 8px; height: 18px;
  background: #15101a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.6);
  animation: eh2-figure 9s ease-in-out infinite;
}
.scn-englishwoman-lost-son .lamp-light {
  position: absolute; bottom: 36%; left: 25%; width: 10px; height: 14px;
  background: radial-gradient(circle, #c09060 0%, #806040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,144,96,0.3), 0 0 60px 20px rgba(192,144,96,0.15);
  animation: eh2-lamp 4s ease-in-out infinite alternate;
}
.scn-englishwoman-lost-son .shadow {
  position: absolute; bottom: 10%; left: 10%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: eh2-shadow 7s ease-in-out infinite;
}
@keyframes eh2-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes eh2-frame { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes eh2-glass { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes eh2-woman { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(-2px) rotate(-3deg) } 66% { transform: translateX(2px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes eh2-figure { 0% { transform: scale(0.6) translateX(0) } 25% { transform: scale(0.6) translateX(5px) } 50% { transform: scale(0.6) translateX(10px) } 75% { transform: scale(0.6) translateX(5px) } 100% { transform: scale(0.6) translateX(0) } }
@keyframes eh2-lamp { 0% { box-shadow: 0 0 20px 5px rgba(192,144,96,0.2) } 50% { box-shadow: 0 0 40px 15px rgba(192,144,96,0.4) } 100% { box-shadow: 0 0 25px 8px rgba(192,144,96,0.25) } }
@keyframes eh2-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }

/* englishwoman-alone */
.scn-englishwoman-alone {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a28 100%),
              radial-gradient(ellipse at 50% 60%, #2e2e4a 0%, transparent 80%);
}
.scn-englishwoman-alone .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: eh3-floor 10s ease-in-out infinite alternate;
}
.scn-englishwoman-alone .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e2a3a 0%, #1e1a2a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  animation: eh3-wall 15s ease-in-out infinite;
}
.scn-englishwoman-alone .chair-empty {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 10% 10% 8% 8%;
  transform: rotate(-2deg);
  animation: eh3-chair 12s ease-in-out infinite;
}
.scn-englishwoman-alone .woman-seated {
  position: absolute; bottom: 16%; left: 35%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #151015 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eh3-woman 8s ease-in-out infinite;
}
.scn-englishwoman-alone .door {
  position: absolute; bottom: 28%; left: 70%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset -2px 0 4px rgba(0,0,0,0.5);
  animation: eh3-door 20s ease-in-out infinite;
}
.scn-englishwoman-alone .candle-glow {
  position: absolute; bottom: 35%; left: 40%; width: 8px; height: 10px;
  background: radial-gradient(circle, #e0b070 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px rgba(224,176,112,0.4), 0 0 50px 16px rgba(224,176,112,0.2);
  animation: eh3-candle 3s ease-in-out infinite alternate;
}
.scn-englishwoman-alone .rug {
  position: absolute; bottom: 8%; left: 30%; width: 80px; height: 12px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30% / 50% 50% 50% 50%;
  opacity: 0.7;
  animation: eh3-rug 14s ease-in-out infinite;
}
.scn-englishwoman-alone .shadow-pool {
  position: absolute; bottom: 0; left: 20%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: eh3-shadow 9s ease-in-out infinite;
}
@keyframes eh3-floor { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes eh3-wall { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.3) } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.5) } 100% { box-shadow: inset 0 0 25px rgba(0,0,0,0.35) } }
@keyframes eh3-chair { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } }
@keyframes eh3-woman { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-1px) rotate(-2deg) } 66% { transform: translateY(1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes eh3-door { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes eh3-candle { 0% { box-shadow: 0 0 20px 5px rgba(224,176,112,0.3); opacity:0.8 } 50% { box-shadow: 0 0 35px 12px rgba(224,176,112,0.6); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(224,176,112,0.35); opacity:0.85 } }
@keyframes eh3-rug { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } }
@keyframes eh3-shadow { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }

/* englishwoman-wandering */
.scn-englishwoman-wandering {
  background: linear-gradient(180deg, #2a2040 0%, #3a2a4a 30%, #4a3a5a 60%, #3a2a3a 100%),
              radial-gradient(ellipse at 50% 20%, #5a4a6a 0%, transparent 70%);
}
.scn-englishwoman-wandering .road {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: eh4-road 18s ease-in-out infinite alternate;
}
.scn-englishwoman-wandering .fields {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: eh4-fields 14s ease-in-out infinite;
}
.scn-englishwoman-wandering .sky {
  position: absolute; inset: 0 0 48% 0;
  background: linear-gradient(180deg, #4a3a5e 0%, #3a2a4a 50%, transparent 100%);
  animation: eh4-sky 12s ease-in-out infinite alternate;
}
.scn-englishwoman-wandering .horizon-line {
  position: absolute; bottom: 48%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(100,80,120,0.4) 50%, transparent 100%);
  animation: eh4-horizon 20s ease-in-out infinite;
}
.scn-englishwoman-wandering .figure-walking {
  position: absolute; bottom: 22%; left: 45%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #15101a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eh4-figure 6s ease-in-out infinite;
}
.scn-englishwoman-wandering .stick {
  position: absolute; bottom: 22%; left: 47%; width: 2px; height: 18px;
  background: #2a1a1a;
  border-radius: 10%;
  transform: rotate(15deg);
  animation: eh4-stick 6s ease-in-out infinite;
}
.scn-englishwoman-wandering .dust {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.15) 0%, transparent 100%);
  filter: blur(2px);
  animation: eh4-dust 8s ease-in-out infinite;
}
@keyframes eh4-road { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes eh4-fields { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes eh4-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.65 } }
@keyframes eh4-horizon { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes eh4-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(-3deg) } 50% { transform: translateX(10px) rotate(0deg) } 75% { transform: translateX(15px) rotate(3deg) } 100% { transform: translateX(20px) rotate(0deg) } }
@keyframes eh4-stick { 0% { transform: rotate(15deg) translateX(0) } 25% { transform: rotate(10deg) translateX(5px) } 50% { transform: rotate(15deg) translateX(10px) } 75% { transform: rotate(20deg) translateX(15px) } 100% { transform: rotate(15deg) translateX(20px) } }
@keyframes eh4-dust { 0%,100% { opacity:0.2; transform: scale(1) } 50% { opacity:0.5; transform: scale(1.2) } }

/* Scene: maid-reveal */
.scn-maid-reveal {
  background: 
    linear-gradient(180deg, #f5f0e8 0%, #e0d8c8 40%, #c4b8a8 100%),
    radial-gradient(ellipse at 30% 40%, #ffffff 0%, transparent 70%);
}
.scn-maid-reveal .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #efe7db 0%, #d4ccbc 100%); }
.scn-maid-reveal .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8aa96 0%, #8a7a66 100%); }
.scn-maid-reveal .door { position:absolute; bottom:30%; left:10%; width:60px; height:120px; background: linear-gradient(180deg, #8b7355 0%, #6b5b4a 100%); border-radius:4px; box-shadow: inset -3px 0 8px rgba(0,0,0,.3); animation: mr-door 12s ease-in-out infinite alternate; }
.scn-maid-reveal .window { position:absolute; top:12%; right:8%; width:80px; height:60px; background: linear-gradient(135deg, #d4e8f0 0%, #b0c8d8 100%); border-radius:6px; box-shadow: inset 0 0 20px rgba(255,255,255,.5); animation: mr-window-light 8s ease-in-out infinite alternate; }
.scn-maid-reveal .lamp { position:absolute; top:8%; left:50%; width:20px; height:30px; background: radial-gradient(circle, #ffeedd 0%, #d4a060 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(212,160,96,.6), 0 0 80px 30px rgba(212,160,96,.3); animation: mr-lamp-glow 4s ease-in-out infinite alternate; }
.scn-maid-reveal .figure-inspector { position:absolute; bottom:30%; left:40%; width:24px; height:60px; background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-figure-stand 3s ease-in-out infinite; }
.scn-maid-reveal .figure-maid { position:absolute; bottom:30%; left:8%; width:22px; height:56px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-maid-enter 6s ease-in-out infinite; }
.scn-maid-reveal .figure-hidden { position:absolute; bottom:30%; right:15%; width:20px; height:58px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-hidden-shift 10s ease-in-out infinite alternate; }
.scn-maid-reveal .shadow-cast { position:absolute; bottom:30%; left:20%; width:100px; height:20px; background: rgba(0,0,0,.15); border-radius:50%; filter: blur(6px); animation: mr-shadow 5s ease-in-out infinite alternate; }
@keyframes mr-door { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-4px) scaleX(1.04); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes mr-window-light { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes mr-lamp-glow { 0% { box-shadow:0 0 30px 10px rgba(212,160,96,.5); } 50% { box-shadow:0 0 50px 20px rgba(255,200,120,.8); } 100% { box-shadow:0 0 35px 12px rgba(212,160,96,.5); } }
@keyframes mr-figure-stand { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes mr-maid-enter { 0% { transform: translateX(-30px) rotate(-3deg) scale(.95); opacity:0; } 20% { opacity:1; } 100% { transform: translateX(0) rotate(0) scale(1); opacity:1; } }
@keyframes mr-hidden-shift { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-8px) rotate(2deg); } }
@keyframes mr-shadow { 0% { opacity:.1; transform: scaleX(1); } 50% { opacity:.2; transform: scaleX(1.1); } 100% { opacity:.1; transform: scaleX(1); } }

/* Scene: maid-humiliation */
.scn-maid-humiliation {
  background: 
    linear-gradient(180deg, #f0ebe4 0%, #dcd4c8 50%, #b8ac9c 100%),
    radial-gradient(ellipse at 60% 50%, #ffffff 0%, transparent 60%);
}
.scn-maid-humiliation .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #dfd6ca 0%, #c4b8a8 100%); }
.scn-maid-humiliation .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a0907a 0%, #7a6a5a 100%); }
.scn-maid-humiliation .door { position:absolute; bottom:25%; right:5%; width:50px; height:110px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:4px; }
.scn-maid-humiliation .lamp { position:absolute; top:10%; left:40%; width:18px; height:26px; background: radial-gradient(circle, #ffe8c0 0%, #d0a050 70%); border-radius:50%; box-shadow: 0 0 35px 12px rgba(208,160,80,.5); animation: mh-lamp-glow 5s ease-in-out infinite alternate; }
.scn-maid-humiliation .figure-commissioner { position:absolute; bottom:25%; left:30%; width:28px; height:62px; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mh-commish 4s ease-in-out infinite alternate; }
.scn-maid-humiliation .figure-maid { position:absolute; bottom:25%; left:55%; width:22px; height:56px; background: linear-gradient(180deg, #3a2a4a 0%, #1a0a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mh-maid-led 6s ease-in-out infinite; }
.scn-maid-humiliation .figure-guard { position:absolute; bottom:25%; left:65%; width:24px; height:60px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mh-guard 8s ease-in-out infinite; }
.scn-maid-humiliation .tattoo-arm { position:absolute; bottom:38%; left:32%; width:14px; height:22px; background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: top right; animation: mh-arm-extend 3s ease-in-out infinite alternate; box-shadow: 0 0 0 2px #cc8a5a; }
@keyframes mh-lamp-glow { 0% { box-shadow:0 0 25px 8px rgba(208,160,80,.4); } 50% { box-shadow:0 0 45px 18px rgba(255,200,120,.7); } 100% { box-shadow:0 0 30px 10px rgba(208,160,80,.4); } }
@keyframes mh-commish { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes mh-maid-led { 0% { transform: translateX(0) rotate(0deg) scale(1); } 20% { transform: translateX(3px) rotate(-2deg) scale(.98); } 60% { transform: translateX(-2px) rotate(2deg) scale(1); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes mh-guard { 0% { transform: translateX(0); } 25% { transform: translateX(2px); } 75% { transform: translateX(-1px); } 100% { transform: translateX(0); } }
@keyframes mh-arm-extend { 0% { transform: rotate(-10deg) translate(0,0); } 50% { transform: rotate(5deg) translate(4px,-2px); } 100% { transform: rotate(-5deg) translate(0,0); } }

/* Scene: rosalie-prudent-trial */
.scn-rosalie-prudent-trial {
  background: 
    linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 50%, #a89078 100%),
    radial-gradient(ellipse at 50% 30%, #f5f0e0 0%, transparent 70%);
}
.scn-rosalie-prudent-trial .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d4c8b4 0%, #b8a890 100%); }
.scn-rosalie-prudent-trial .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #9a8a74 0%, #7a6a56 100%); }
.scn-rosalie-prudent-trial .bench { position:absolute; bottom:35%; left:5%; right:5%; height:12px; background: linear-gradient(180deg, #6b5b4a 0%, #4a3a2a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-rosalie-prudent-trial .president-desk { position:absolute; bottom:35%; left:35%; right:35%; height:18px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6px; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: rpt-desk 10s ease-in-out infinite alternate; }
.scn-rosalie-prudent-trial .figure-president { position:absolute; bottom:38%; left:42%; width:26px; height:58px; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rpt-president 4s ease-in-out infinite alternate; }
.scn-rosalie-prudent-trial .figure-defendant { position:absolute; bottom:35%; left:50%; width:22px; height:54px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rpt-defendant 6s ease-in-out infinite; }
.scn-rosalie-prudent-trial .figure-jury { position:absolute; bottom:35%; left:5%; width:18px; height:50px; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rpt-jury 12s ease-in-out infinite; }
.scn-rosalie-prudent-trial .light-shaft { position:absolute; top:0; left:20%; right:20%; height:100%; background: linear-gradient(180deg, rgba(255,255,240,.15) 0%, transparent 100%); filter: blur(10px); animation: rpt-light 8s ease-in-out infinite alternate; }
@keyframes rpt-desk { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes rpt-president { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes rpt-defendant { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 20% { transform: translateY(-3px) rotate(2deg) scaleY(.95); } 60% { transform: translateY(2px) rotate(-1deg) scaleY(1); } 100% { transform: translateY(0) rotate(0deg) scaleY(1); } }
@keyframes rpt-jury { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(1px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rpt-light { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }

/* Scene: rosalie-prudent-silence */
.scn-rosalie-prudent-silence {
  background: 
    linear-gradient(180deg, #e0d8c8 0%, #c0b0a0 50%, #a08878 100%),
    radial-gradient(ellipse at 50% 40%, #f0e8d8 0%, transparent 60%);
}
.scn-rosalie-prudent-silence .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8b8a4 0%, #a89884 100%); }
.scn-rosalie-prudent-silence .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a7a66 0%, #6a5a46 100%); }
.scn-rosalie-prudent-silence .bench { position:absolute; bottom:35%; left:5%; right:5%; height:10px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; }
.scn-rosalie-prudent-silence .president-desk { position:absolute; bottom:35%; left:30%; right:40%; height:16px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:6px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-rosalie-prudent-silence .figure-president-leaning { position:absolute; bottom:35%; left:36%; width:26px; height:56px; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rps-president-lean 6s ease-in-out infinite alternate; }
.scn-rosalie-prudent-silence .figure-defendant-weeping { position:absolute; bottom:35%; left:50%; width:22px; height:52px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rps-defendant-weep 4s ease-in-out infinite; }
.scn-rosalie-prudent-silence .light-shaft { position:absolute; top:0; left:25%; right:25%; height:100%; background: linear-gradient(180deg, rgba(255,255,240,.12) 0%, transparent 100%); filter: blur(12px); animation: rps-light 7s ease-in-out infinite alternate; }
.scn-rosalie-prudent-silence .tear-drop { position:absolute; bottom:45%; left:49%; width:4px; height:6px; background: radial-gradient(circle, #80c0e0 0%, #406080 100%); border-radius:50%; box-shadow: 0 0 6px 2px rgba(64,96,128,.5); animation: rps-tear 3s ease-in-out infinite; }
@keyframes rps-president-lean { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 50% { transform: translateY(-4px) rotate(2deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(-1deg) scaleY(1); } }
@keyframes rps-defendant-weep { 0% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(2px) rotate(-3deg) scale(.95); } 50% { transform: translateY(-1px) rotate(1deg) scale(1); } 75% { transform: translateY(3px) rotate(-2deg) scale(.97); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes rps-light { 0% { opacity:.2; } 50% { opacity:.6; } 100% { opacity:.3; } }
@keyframes rps-tear { 0% { transform: translateY(0) scaleY(1); opacity:.8; } 50% { transform: translateY(8px) scaleY(1.2); opacity:1; } 100% { transform: translateY(0) scaleY(1); opacity:.5; } }

/* Scene: two-sisters-marguerite-terror (tag: ts1) */
.scn-two-sisters-marguerite-terror {
  background:
    radial-gradient(ellipse at 50% 20%, #3a2a2a 0%, #1a1a2a 60%, #0e0e1a 100%),
    linear-gradient(180deg, #2a1e1e 0%, #14101a 50%, #0a0a10 100%);
}
.scn-two-sisters-marguerite-terror .bg-deep {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #2a2020 0%, transparent 70%);
}
.scn-two-sisters-marguerite-terror .wall-left {
  position:absolute; left:0; top:0; bottom:0; width:30%; background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.6);
}
.scn-two-sisters-marguerite-terror .bed {
  position:absolute; bottom:10%; left:50%; width:60%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.7);
}
.scn-two-sisters-marguerite-terror .figure-dying {
  position:absolute; bottom:16%; left:45%; width:24px; height:40px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts1-convulse 3s ease-in-out infinite;
}
.scn-two-sisters-marguerite-terror .figure-priest {
  position:absolute; bottom:14%; right:20%; width:22px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform-origin: bottom center; animation: ts1-priest 6s ease-in-out infinite alternate;
}
.scn-two-sisters-marguerite-terror .figure-suzanne {
  position:absolute; bottom:14%; left:10%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ts1-weep 4s ease-in-out infinite;
}
.scn-two-sisters-marguerite-terror .candle-glow {
  position:absolute; bottom:40%; right:35%; width:8px; height:12px; background: radial-gradient(circle at 50% 30%, #e8a050 0%, #c07030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,120,40,.5), 0 0 80px 40px rgba(200,120,40,.2); animation: ts1-flicker 2s ease-in-out infinite alternate;
}
.scn-two-sisters-marguerite-terror .cross {
  position:absolute; bottom:45%; right:28%; width:16px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; transform: rotate(10deg); animation: ts1-cross 8s ease-in-out infinite alternate;
}
@keyframes ts1-convulse {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(4px) translateY(-3px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ts1-priest {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-2px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ts1-weep {
  0%,100% { transform: translateX(0) translateY(0) rotate(-3deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(3deg); }
}
@keyframes ts1-flicker {
  0% { box-shadow: 0 0 30px 15px rgba(200,120,40,.4), 0 0 60px 30px rgba(200,120,40,.1); opacity: .8; }
  50% { box-shadow: 0 0 50px 25px rgba(200,120,40,.6), 0 0 100px 50px rgba(200,120,40,.2); opacity: 1; }
  100% { box-shadow: 0 0 35px 18px rgba(200,120,40,.45), 0 0 70px 35px rgba(200,120,40,.15); opacity: .85; }
}
@keyframes ts1-cross {
  0% { transform: rotate(8deg) scale(1); }
  50% { transform: rotate(12deg) scale(1.02); }
  100% { transform: rotate(8deg) scale(1); }
}

/* Scene: two-sisters-confession-begin (tag: ts2) */
.scn-two-sisters-confession-begin {
  background:
    radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, #1a1a2a 60%, #0a0a15 100%),
    linear-gradient(180deg, #1a1a2a 0%, #12101a 50%, #0a0a10 100%);
}
.scn-two-sisters-confession-begin .bg-deep {
  position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, #2a2a3a 0%, transparent 70%);
}
.scn-two-sisters-confession-begin .floor {
  position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-two-sisters-confession-begin .wall-panel {
  position:absolute; left:5%; top:10%; bottom:20%; width:20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-right: 2px solid #3a3a5a; box-shadow: 5px 0 15px rgba(0,0,0,.5);
}
.scn-two-sisters-confession-begin .figure-priest {
  position:absolute; bottom:22%; right:25%; width:24px; height:65px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform-origin: bottom center; animation: ts2-priest 5s ease-in-out infinite alternate;
}
.scn-two-sisters-confession-begin .figure-suzanne {
  position:absolute; bottom:22%; left:30%; width:20px; height:55px; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ts2-suzanne 4s ease-in-out infinite;
}
.scn-two-sisters-confession-begin .chair {
  position:absolute; bottom:22%; left:28%; width:30px; height:25px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 5px 10px rgba(0,0,0,.5); animation: ts2-chair 7s ease-in-out infinite alternate;
}
.scn-two-sisters-confession-begin .candle-glow {
  position:absolute; bottom:45%; left:55%; width:6px; height:10px; background: radial-gradient(circle at 50% 30%, #d09050 0%, #b07030 60%, transparent 100%); border-radius: 40%; box-shadow: 0 0 30px 15px rgba(180,100,40,.5), 0 0 60px 30px rgba(180,100,40,.2); animation: ts2-candle 2.5s ease-in-out infinite alternate;
}
.scn-two-sisters-confession-begin .drapery {
  position:absolute; top:0; right:0; width:15%; height:100%; background: linear-gradient(180deg, #2a2230 0%, #1a1220 100%); border-radius: 0 0 0 20%; filter: blur(3px); animation: ts2-drape 12s ease-in-out infinite alternate;
}
@keyframes ts2-priest {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-3px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ts2-suzanne {
  0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(2px) translateY(-3px) rotate(3deg); }
}
@keyframes ts2-chair {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ts2-candle {
  0% { box-shadow: 0 0 25px 12px rgba(180,100,40,.4), 0 0 50px 25px rgba(180,100,40,.1); opacity: .85; }
  50% { box-shadow: 0 0 40px 20px rgba(180,100,40,.6), 0 0 80px 40px rgba(180,100,40,.2); opacity: 1; }
  100% { box-shadow: 0 0 30px 15px rgba(180,100,40,.45), 0 0 60px 30px rgba(180,100,40,.15); opacity: .9; }
}
@keyframes ts2-drape {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-8px) scaleX(1.02); }
  100% { transform: translateX(0) scaleX(1); }
}

/* Scene: two-sisters-childhood-jealousy (tag: ts3) */
.scn-two-sisters-childhood-jealousy {
  background:
    radial-gradient(ellipse at 30% 50%, #2a3a4a 0%, #0e1a2a 60%, #050a10 100%),
    linear-gradient(180deg, #1a2a3a 0%, #0a0a15 100%);
}
.scn-two-sisters-childhood-jealousy .bg-night {
  position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, #2a3a4a 0%, transparent 70%);
}
.scn-two-sisters-childhood-jealousy .window-frame {
  position:absolute; left:10%; top:10%; width:50%; height:70%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border: 4px solid #3a3a4a; border-radius: 5% 5% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.7); overflow: hidden;
}
.scn-two-sisters-childhood-jealousy .figure-girl {
  position:absolute; bottom:15%; left:30%; width:18px; height:45px; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ts3-girl 4s ease-in-out infinite;
}
.scn-two-sisters-childhood-jealousy .horse-silhouette {
  position:absolute; bottom:15%; left:55%; width:50px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 60% 40% 30% 30% / 60% 40% 30% 30%; transform: scaleX(-1); animation: ts3-horse 5s ease-in-out infinite alternate;
}
.scn-two-sisters-childhood-jealousy .moonlight-beam {
  position:absolute; top:15%; left:15%; width:30%; height:60%; background: linear-gradient(135deg, rgba(200,220,255,0.15) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%); animation: ts3-beam 8s ease-in-out infinite alternate;
}
.scn-two-sisters-childhood-jealousy .curtain {
  position:absolute; top:10%; right:5%; width:15%; height:80%; background: linear-gradient(180deg, #2a2230 0%, #1a1220 100%); filter: blur(2px); animation: ts3-curtain 10s ease-in-out infinite alternate;
}
@keyframes ts3-girl {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(2px) translateY(-2px) rotate(3deg); }
}
@keyframes ts3-horse {
  0% { transform: scaleX(-1) translateX(0) translateY(0); }
  50% { transform: scaleX(-1) translateX(6px) translateY(-3px); }
  100% { transform: scaleX(-1) translateX(0) translateY(0); }
}
@keyframes ts3-beam {
  0% { opacity: .3; transform: translateX(0); }
  50% { opacity: .6; transform: translateX(8px); }
  100% { opacity: .3; transform: translateX(0); }
}
@keyframes ts3-curtain {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-5px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}

/* Scene: two-sisters-plot (tag: ts4) */
.scn-two-sisters-plot {
  background:
    radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, #1a1010 60%, #0a0505 100%),
    linear-gradient(180deg, #1a1010 0%, #0a0505 100%);
}
.scn-two-sisters-plot .bg-deep {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, #2a1a1a 0%, transparent 70%);
}
.scn-two-sisters-plot .table {
  position:absolute; bottom:10%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.6);
}
.scn-two-sisters-plot .figure-left {
  position:absolute; bottom:14%; left:20%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ts4-left 5s ease-in-out infinite alternate;
}
.scn-two-sisters-plot .figure-right {
  position:absolute; bottom:14%; right:20%; width:22px; height:48px; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ts4-right 5s ease-in-out infinite alternate;
}
.scn-two-sisters-plot .candle-glow {
  position:absolute; bottom:30%; left:45%; width:8px; height:10px; background: radial-gradient(circle at 50% 30%, #d09050 0%, #b07030 60%, transparent 100%); border-radius: 40%; box-shadow: 0 0 40px 20px rgba(180,100,40,.5), 0 0 80px 40px rgba(180,100,40,.2); animation: ts4-candle 2s ease-in-out infinite alternate;
}
.scn-two-sisters-plot .map-scroll {
  position:absolute; bottom:12%; left:35%; width:30%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ts4-map 9s ease-in-out infinite alternate;
}
.scn-two-sisters-plot .shadow-blob {
  position:absolute; bottom:0; left:0; right:0; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 100%); pointer-events: none; animation: ts4-shadow 11s ease-in-out infinite alternate;
}
@keyframes ts4-left {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-4px) translateY(-3px) rotate(4deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ts4-right {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(-3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ts4-candle {
  0% { box-shadow: 0 0 30px 15px rgba(180,100,40,.4), 0 0 60px 30px rgba(180,100,40,.1); opacity: .85; }
  50% { box-shadow: 0 0 50px 25px rgba(180,100,40,.6), 0 0 100px 50px rgba(180,100,40,.2); opacity: 1; }
  100% { box-shadow: 0 0 35px 18px rgba(180,100,40,.45), 0 0 70px 35px rgba(180,100,40,.15); opacity: .9; }
}
@keyframes ts4-map {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes ts4-shadow {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}

.scn-country-excursion-thicket {
  background: linear-gradient(180deg, #ffe9c7 0%, #dba87a 40%, #5e3e2a 80%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-country-excursion-thicket .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fff2dc 0%, transparent 100%);
  animation: th-sky 8s ease-in-out infinite alternate;
}
.scn-country-excursion-thicket .tree-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4d3a1e 0%, #2a1f0c 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: th-tree 20s ease-in-out infinite;
}
.scn-country-excursion-thicket .branch-left {
  position: absolute; top: 20%; left: 0; width: 40%; height: 8px;
  background: #3b2a14;
  border-radius: 0 20px 20px 0;
  transform-origin: 0% 50%;
  animation: th-branch 6s ease-in-out infinite alternate;
}
.scn-country-excursion-thicket .branch-right {
  position: absolute; top: 15%; right: 0; width: 35%; height: 6px;
  background: #3b2a14;
  border-radius: 20px 0 0 20px;
  transform-origin: 100% 50%;
  animation: th-branch 7s ease-in-out infinite alternate-reverse;
}
.scn-country-excursion-thicket .boat {
  position: absolute; bottom: 18%; left: 50%; width: 80px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #5e3e2a 0%, #3b2a14 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: th-boat 4s ease-in-out infinite;
}
.scn-country-excursion-thicket .figure-m {
  position: absolute; bottom: 22%; left: 44%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #4a3e2c 0%, #2a2214 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: th-walk 3s ease-in-out infinite;
}
.scn-country-excursion-thicket .figure-f {
  position: absolute; bottom: 22%; left: 52%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: th-walk 3s ease-in-out infinite 1.5s;
}
.scn-country-excursion-thicket .shadow {
  position: absolute; bottom: 16%; left: 40%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, #1a1208 0%, transparent 100%);
  filter: blur(4px);
  animation: th-shadow 1.5s ease-in-out infinite alternate;
}
@keyframes th-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes th-tree { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes th-branch { 0% { transform: rotate(-3deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-2deg) } }
@keyframes th-boat { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes th-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 30% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 60% { transform: translateX(6px) translateY(0) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes th-shadow { 0% { opacity:0.5; transform: scaleX(1) } 100% { opacity:0.8; transform: scaleX(1.1) } }

.scn-country-excursion-kiss {
  background: linear-gradient(180deg, #ffeac0 0%, #f0ca90 50%, #b8885a 100%), radial-gradient(ellipse at 50% 80%, #ffeac0 0%, transparent 70%);
}
.scn-country-excursion-kiss .bg-sun {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fff5dc 0%, transparent 100%);
  animation: ki-sun 12s ease-in-out infinite alternate;
}
.scn-country-excursion-kiss .foliage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5e7a3a 0%, #3a4e1e 100%);
  border-radius: 60% 40% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: ki-foliage 15s ease-in-out infinite;
}
.scn-country-excursion-kiss .figure-him {
  position: absolute; bottom: 20%; left: 46%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #4a3e2c 0%, #2a2214 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ki-embrace 4s ease-in-out infinite;
}
.scn-country-excursion-kiss .figure-her {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ki-embrace 4s ease-in-out infinite 0.3s;
}
.scn-country-excursion-kiss .bird {
  position: absolute; top: 10%; left: 55%; width: 12px; height: 10px;
  background: #a08040;
  border-radius: 50%;
  clip-path: polygon(0% 50%, 100% 0%, 100% 100%);
  animation: ki-bird 0.8s ease-in-out infinite alternate;
}
.scn-country-excursion-kiss .glow {
  position: absolute; bottom: 24%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,215,160,0.8) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ki-glow 3s ease-in-out infinite alternate;
}
@keyframes ki-sun { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ki-foliage { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ki-embrace { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-2px) rotate(2deg) } 60% { transform: translateX(1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ki-bird { 0% { transform: rotate(-10deg) translateY(0) } 100% { transform: rotate(10deg) translateY(-5px) } }
@keyframes ki-glow { 0% { transform: scale(0.9); opacity:0.6 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.95); opacity:0.7 } }

.scn-country-excursion-return {
  background: linear-gradient(180deg, #e8cfa8 0%, #b8906a 40%, #5a3e2a 80%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-country-excursion-return .sky-dark {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #d4c0a0 0%, transparent 100%);
  animation: re-sky 10s ease-in-out infinite alternate;
}
.scn-country-excursion-return .trail {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 5px;
  background: #6a503a;
  border-radius: 50%;
  filter: blur(2px);
  animation: re-trail 4s ease-in-out infinite alternate;
}
.scn-country-excursion-return .bush {
  position: absolute; bottom: 22%; left: 60%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #4e6a2a 0%, #2a3e18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: re-bush 5s ease-in-out infinite;
}
.scn-country-excursion-return .figure-pale-m {
  position: absolute; bottom: 20%; left: 30%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4e3e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: re-walk 3s ease-in-out infinite;
}
.scn-country-excursion-return .figure-pale-f {
  position: absolute; bottom: 20%; left: 50%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: re-walk 3s ease-in-out infinite 1s;
}
.scn-country-excursion-return .stout-lady {
  position: absolute; bottom: 18%; left: 65%; width: 28px; height: 32px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: re-stout 6s ease-in-out infinite;
}
@keyframes re-sky { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes re-trail { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.2) } 100% { opacity:0.4; transform: scaleX(0.9) } }
@keyframes re-bush { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(3deg) } }
@keyframes re-walk { 0% { transform: translateX(0) rotate(-1deg) } 30% { transform: translateX(4px) rotate(1deg) } 60% { transform: translateX(8px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes re-stout { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.05) } }

.scn-country-excursion-farewell {
  background: linear-gradient(180deg, #7a689a 0%, #c0806a 30%, #e8b080 60%, #f0d0a0 100%), radial-gradient(ellipse at 50% 0%, #f0d0a0 0%, transparent 70%);
}
.scn-country-excursion-farewell .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0a0c0 0%, #9078a0 50%, transparent 100%);
  animation: fa-sky 20s ease-in-out infinite alternate;
}
.scn-country-excursion-farewell .sunset {
  position: absolute; bottom: 40%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #f0c080 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: fa-sunset 30s ease-in-out infinite alternate;
}
.scn-country-excursion-farewell .landscape {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: fa-land 12s ease-in-out infinite;
}
.scn-country-excursion-farewell .figure-she {
  position: absolute; bottom: 18%; left: 44%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2e1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fa-figure 4s ease-in-out infinite;
}
.scn-country-excursion-farewell .figure-he {
  position: absolute; bottom: 18%; left: 52%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fa-figure 4s ease-in-out infinite 2s;
}
.scn-country-excursion-farewell .parting-arch {
  position: absolute; bottom: 28%; left: 40%; width: 80px; height: 40px;
  border: 4px solid #7a6a5a;
  border-bottom: none;
  border-radius: 50% 50% 0 0;
  opacity: 0.6;
  animation: fa-arch 8s ease-in-out infinite;
}
@keyframes fa-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes fa-sunset { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(0.8) } }
@keyframes fa-land { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes fa-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2px) rotate(-1deg) } 60% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fa-arch { 0%,100% { transform: scale(1); opacity:0.6 } 50% { transform: scale(1.05); opacity:0.8 } }

.scn-father-saval-missed-opportunity { background: linear-gradient(180deg, #f7e8c4 0%, #d6c18a 40%, #b8a06e 100%), radial-gradient(ellipse at 60% 20%, #fff7e0 0%, transparent 60%); }
.scn-father-saval-missed-opportunity .sun { position:absolute; top:8%; right:20%; width:70px; height:70px; background: radial-gradient(circle, #fff5d0 0%, #f0d080 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 80px 20px rgba(240,208,128,.5); animation: fso-sun 6s ease-in-out infinite alternate; }
.scn-father-saval-missed-opportunity .sky-bar { position:absolute; top:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c4d8f0 0%, #e8e4d0 100%); opacity:.5; animation: fso-sky 10s ease-in-out infinite; }
.scn-father-saval-missed-opportunity .field { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #b8a86e 0%, #7a8a4a 30%, #4a5a2a 100%), radial-gradient(ellipse at 40% 60%, #d0c080 0%, transparent 70%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; animation: fso-field 8s ease-in-out infinite alternate; }
.scn-father-saval-missed-opportunity .figure-man { position:absolute; bottom:30%; left:30%; width:30px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%; transform-origin: bottom center; animation: fso-man 5s ease-in-out infinite; }
.scn-father-saval-missed-opportunity .figure-woman { position:absolute; bottom:30%; left:38%; width:26px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 50% 50% 45% 45% / 45% 45% 35% 35%; transform-origin: bottom center; animation: fso-woman 5s ease-in-out infinite; }
.scn-father-saval-missed-opportunity .figure-arm { position:absolute; bottom:52%; left:36%; width:14px; height:18px; background: #2a1a10; border-radius: 70% 40% 50% 50% / 80% 60% 40% 40%; transform-origin: 20% 100%; animation: fso-arm 5s ease-in-out infinite; }
.scn-father-saval-missed-opportunity .shadow-long { position:absolute; bottom:25%; left:25%; width:120px; height:8px; background: rgba(60,40,20,.5); border-radius:80%; filter: blur(4px); transform: rotate(-15deg); animation: fso-shadow 8s ease-in-out infinite alternate; }
.scn-father-saval-missed-opportunity .dust-particles { position:absolute; top:15%; left:10%; width:4px; height:4px; background: rgba(255,240,200,.6); border-radius:50%; box-shadow: 30px 20px 0 rgba(255,240,200,.4), 60px 40px 0 rgba(255,240,200,.3), 90px 10px 0 rgba(255,240,200,.2), 120px 35px 0 rgba(255,240,200,.5); filter: blur(2px); animation: fso-dust 12s ease-in-out infinite; }
.scn-father-saval-missed-opportunity .bird { position:absolute; top:12%; left:70%; width:18px; height:6px; background: #2a2a1a; border-radius: 50% 50% 50% 50% / 80% 80% 80% 80%; transform: rotate(-20deg); animation: fso-bird 7s ease-in-out infinite; }
@keyframes fso-sun { 0% { transform: scale(1); opacity:.85 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(.95); opacity:.8 } }
@keyframes fso-sky { 0% { opacity:.4 } 50% { opacity:.5 } 100% { opacity:.35 } }
@keyframes fso-field { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes fso-man { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(1px) translateY(-1px) rotate(-2deg) } 60% { transform: translateX(-1px) translateY(0) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes fso-woman { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(3deg) } 50% { transform: translateX(1px) rotate(1deg) } 75% { transform: translateX(-1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fso-arm { 0% { transform: rotate(15deg) } 30% { transform: rotate(25deg) } 60% { transform: rotate(10deg) } 100% { transform: rotate(15deg) } }
@keyframes fso-shadow { 0% { transform: rotate(-15deg) scaleX(1); opacity:.5 } 50% { transform: rotate(-14deg) scaleX(1.05); opacity:.6 } 100% { transform: rotate(-16deg) scaleX(.95); opacity:.45 } }
@keyframes fso-dust { 0% { transform: translateY(0) translateX(0); opacity:.4 } 50% { transform: translateY(-10px) translateX(5px); opacity:.2 } 100% { transform: translateY(0) translateX(0); opacity:.4 } }
@keyframes fso-bird { 0% { transform: translateX(0) translateY(0) rotate(-20deg) } 25% { transform: translateX(-8px) translateY(-4px) rotate(-22deg) } 50% { transform: translateX(-15px) translateY(-2px) rotate(-18deg) } 75% { transform: translateX(-8px) translateY(0) rotate(-20deg) } 100% { transform: translateX(0) translateY(0) rotate(-20deg) } }

.scn-father-saval-realization { background: linear-gradient(180deg, #1a1a2e 0%, #2a2040 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 30%, #3a2a4a 0%, transparent 70%); }
.scn-father-saval-realization .wall-left { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(180deg, #2a203a 0%, #1a122a 60%, #0a0a1a 100%); border-right: 1px solid rgba(80,60,100,.2); animation: fsr-wall 9s ease-in-out infinite alternate; }
.scn-father-saval-realization .wall-right { position:absolute; top:0; right:0; width:55%; height:100%; background: linear-gradient(180deg, #1e1a2e 0%, #14102a 50%, #0a0818 100%); box-shadow: inset 15px 0 20px rgba(0,0,0,.4); animation: fsr-wall 9s ease-in-out infinite alternate-reverse; }
.scn-father-saval-realization .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1628 0%, #0e0c1a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.5); }
.scn-father-saval-realization .lamp-glow { position:absolute; top:20%; left:45%; width:80px; height:80px; background: radial-gradient(circle, #d09050 0%, #b07030 30%, rgba(160,100,40,.3) 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(180,100,40,.2); animation: fsr-lamp 4s ease-in-out infinite alternate; }
.scn-father-saval-realization .figure-back { position:absolute; bottom:15%; left:35%; width:34px; height:75px; background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%); border-radius: 45% 45% 35% 35% / 40% 40% 30% 30%; transform-origin: bottom center; animation: fsr-figure 3s ease-in-out infinite; }
.scn-father-saval-realization .shadow-figure { position:absolute; bottom:12%; left:30%; width:100px; height:8px; background: rgba(0,0,0,.5); border-radius:80%; filter: blur(5px); animation: fsr-shad 3s ease-in-out infinite; }
.scn-father-saval-realization .carpet-edge { position:absolute; bottom:18%; left:20%; width:60%; height:12px; background: linear-gradient(90deg, transparent 0%, #3a2a3a 30%, #4a3a4a 50%, #3a2a3a 70%, transparent 100%); border-radius: 0 0 50% 50%; opacity:.6; animation: fsr-carpet 7s ease-in-out infinite alternate; }
.scn-father-saval-realization .dust-motes { position:absolute; top:15%; left:15%; width:3px; height:3px; background: rgba(200,180,150,.4); border-radius:50%; box-shadow: 40px 30px 0 rgba(200,180,150,.3), 80px 50px 0 rgba(200,180,150,.2), 110px 20px 0 rgba(200,180,150,.35), 140px 60px 0 rgba(200,180,150,.25); filter: blur(1px); animation: fsr-dust 15s linear infinite; }
@keyframes fsr-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fsr-lamp { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.08); opacity:1 } 100% { transform: scale(.95); opacity:.75 } }
@keyframes fsr-figure { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(2deg) } 60% { transform: translateY(2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fsr-shad { 0% { transform: scaleX(1) translateX(0); opacity:.5 } 50% { transform: scaleX(1.1) translateX(-3px); opacity:.4 } 100% { transform: scaleX(1) translateX(0); opacity:.5 } }
@keyframes fsr-carpet { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(3px) scaleY(1.2) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes fsr-dust { 0% { transform: translateY(0) } 50% { transform: translateY(-15px) } 100% { transform: translateY(0) } }

.scn-father-saval-visit { background: linear-gradient(180deg, #e8dcc8 0%, #c8bca8 30%, #a89880 100%), radial-gradient(ellipse at 50% 50%, #f0e8d8 0%, transparent 80%); }
.scn-father-saval-visit .door-frame { position:absolute; top:0; left:25%; width:50%; height:85%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius:2% 2% 0 0; box-shadow: inset -2px 0 8px rgba(0,0,0,.3), inset 2px 0 8px rgba(0,0,0,.3), 0 4px 12px rgba(0,0,0,.4); }
.scn-father-saval-visit .door-open { position:absolute; top:2%; left:26%; width:48%; height:82%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:1% 1% 0 0; transform: perspective(600px) rotateY(-15deg); transform-origin: left center; animation: fsv-door 6s ease-in-out infinite alternate; }
.scn-father-saval-visit .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(90deg, #8a7a6a 0%, #a09080 20%, #8a7a6a 40%, #a09080 60%, #8a7a6a 80%, #a09080 100%); background-size: 20% 100%; box-shadow: inset 0 6px 10px rgba(0,0,0,.2); }
.scn-father-saval-visit .figure-visitor { position:absolute; bottom:12%; left:15%; width:28px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%; transform-origin: bottom center; animation: fsv-visitor 4s ease-in-out infinite; }
.scn-father-saval-visit .figure-servant { position:absolute; bottom:14%; right:20%; width:22px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 50% 50% 45% 45% / 50% 50% 35% 35%; transform-origin: bottom center; animation: fsv-servant 4s ease-in-out infinite; }
.scn-father-saval-visit .stair-shadow { position:absolute; top:15%; right:5%; width:30%; height:60%; background: linear-gradient(135deg, transparent 0%, rgba(0,0,0,.1) 50%, rgba(0,0,0,.2) 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%); animation: fsv-stair 7s ease-in-out infinite alternate; }
.scn-father-saval-visit .candle-sconce { position:absolute; top:18%; left:10%; width:12px; height:20px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-father-saval-visit .candle-flame { position:absolute; top:15%; left:10%; width:6px; height:10px; background: radial-gradient(circle at 50% 30%, #ffe8a0 0%, #e0b060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 14px 4px rgba(224,176,96,.5); animation: fsv-flame 2s ease-in-out infinite alternate; }
@keyframes fsv-door { 0% { transform: perspective(600px) rotateY(-15deg) } 50% { transform: perspective(600px) rotateY(-18deg) } 100% { transform: perspective(600px) rotateY(-12deg) } }
@keyframes fsv-visitor { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 60% { transform: translateX(2px) translateY(0) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes fsv-servant { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-3deg) } 50% { transform: translateX(-1px) rotate(1deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fsv-stair { 0% { opacity:.15 } 50% { opacity:.25 } 100% { opacity:.1 } }
@keyframes fsv-flame { 0% { transform: scaleY(1) scaleX(1); opacity:.8 } 50% { transform: scaleY(1.2) scaleX(.8) translateY(-2px); opacity:1 } 100% { transform: scaleY(.9) scaleX(1.1); opacity:.75 } }

.scn-father-saval-revelation { background: linear-gradient(180deg, #f0dcc0 0%, #d8c4a0 40%, #b89870 100%), radial-gradient(ellipse at 50% 30%, #f8e8c8 0%, transparent 70%); }
.scn-father-saval-revelation .wall-warm { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #e8d4b8 0%, #d0b898 100%); opacity:.7; animation: fsr-wall-w 10s ease-in-out infinite alternate; }
.scn-father-saval-revelation .window-light { position:absolute; top:10%; left:60%; width:60px; height:70px; background: linear-gradient(180deg, #f8ecdc 0%, #e8d8c0 100%); border-radius:10% 10% 5% 5%; box-shadow: inset 0 0 12px rgba(255,240,220,.6), 0 0 30px 10px rgba(255,240,220,.2); animation: fsr-window 8s ease-in-out infinite alternate; }
.scn-father-saval-revelation .table-wood { position:absolute; bottom:22%; left:15%; width:70%; height:14px; background: linear-gradient(180deg, #8a7050 0%, #705838 50%, #5a4828 100%); border-radius:40% 40% 20% 20% / 80% 80% 40% 40%; box-shadow: 0 6px 10px rgba(0,0,0,.3); }
.scn-father-saval-revelation .bowl-fruit { position:absolute; bottom:24%; left:35%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 30%, #b87850 0%, #8a6040 60%, #6a4828 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.3), inset 0 2px 4px rgba(200,160,120,.4); animation: fsr-fruit 5s ease-in-out infinite alternate; }
.scn-father-saval-revelation .figure-woman-large { position:absolute; bottom:16%; left:30%; width:50px; height:70px; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 40%, #3a2018 100%); border-radius: 50% 50% 45% 45% / 40% 40% 35% 35%; transform-origin: bottom center; animation: fsr-woman-l 4s ease-in-out infinite; }
.scn-father-saval-revelation .figure-arms { position:absolute; bottom:42%; left:28%; width:50px; height:16px; background: linear-gradient(90deg, #4a3020 0%, #5a3a28 40%, #4a3020 100%); border-radius: 50% 50% 40% 40% / 80% 80% 60% 60%; transform-origin: center; animation: fsr-arms 4s ease-in-out infinite; }
.scn-father-saval-revelation .figure-saval { position:absolute; bottom:16%; left:55%; width:28px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%; transform-origin: bottom center; animation: fsr-saval 4s ease-in-out infinite; }
.scn-father-saval-revelation .shadow-hearth { position:absolute; bottom:10%; left:10%; width:80%; height:20px; background: linear-gradient(90deg, transparent 0%, rgba(80,50,30,.15) 30%, rgba(80,50,30,.2) 50%, rgba(80,50,30,.15) 70%, transparent 100%); border-radius: 50%; filter: blur(5px); animation: fsr-hearth 9s ease-in-out infinite alternate; }
.scn-father-saval-revelation .warm-haze { position:absolute; top:0; left:0; right:0; height:100%; background: radial-gradient(ellipse at 50% 50%, rgba(240,220,180,.15) 0%, transparent 70%); animation: fsr-haze 7s ease-in-out infinite alternate; }
@keyframes fsr-wall-w { 0% { opacity:.65 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes fsr-window { 0% { transform: scaleX(1); opacity:.8 } 50% { transform: scaleX(1.05); opacity:1 } 100% { transform: scaleX(.95); opacity:.85 } }
@keyframes fsr-fruit { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes fsr-woman-l { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2px) rotate(2deg) } 60% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fsr-arms { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 25% { transform: translateX(3px) rotate(5deg) scaleY(1.05) } 50% { transform: translateX(1px) rotate(2deg) scaleY(1) } 75% { transform: translateX(-2px) rotate(-4deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0deg) scaleY(1) } }
@keyframes fsr-saval { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 30% { transform: translateX(-2px) translateY(-1px) rotate(-2deg) } 60% { transform: translateX(1px) translateY(0) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes fsr-hearth { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.35 } }
@keyframes fsr-haze { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.45 } }

/* father-saval-confession */
.scn-father-saval-confession {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b886 40%, #c4a070 100%),
              radial-gradient(ellipse at 30% 20%, #fff7e0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-father-saval-confession .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8d4a8 0%, #c8b090 100%);
}
.scn-father-saval-confession .window {
  position: absolute; top: 10%; left: 65%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #fff8e0 0%, #ffe8b0 100%);
  border-radius: 8px; box-shadow: 0 0 40px 20px rgba(255,232,176,0.5), inset 0 0 20px #fff;
  animation: fsc-window-pulse 4s ease-in-out infinite alternate;
}
.scn-father-saval-confession .table {
  position: absolute; bottom: 25%; left: 20%; right: 40%; height: 20px;
  background: linear-gradient(180deg, #8a6b4a 0%, #6b5030 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-father-saval-confession .figure-woman {
  position: absolute; bottom: 30%; left: 25%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #c8a88a 0%, #a88a6a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsc-woman-laugh 6s ease-in-out infinite;
}
.scn-father-saval-confession .figure-woman::before {
  content: ''; position: absolute; top: -10px; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d4b090 0%, #b09070 100%);
  border-radius: 50%; transform: translateX(-50%);
}
.scn-father-saval-confession .figure-man {
  position: absolute; bottom: 30%; right: 20%; width: 55px; height: 100px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsc-man-step 8s ease-in-out infinite;
}
.scn-father-saval-confession .juice-drop {
  position: absolute; bottom: 40%; left: 32%; width: 6px; height: 8px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 50%; animation: fsc-drop 2s ease-in-out infinite;
}
.scn-father-saval-confession .light-beam {
  position: absolute; top: 10%; left: 65%; width: 200px; height: 300px;
  background: linear-gradient(135deg, rgba(255,248,224,0.3) 0%, transparent 100%);
  transform: skewX(-15deg); transform-origin: top left;
  animation: fsc-beam 6s ease-in-out infinite alternate;
}
@keyframes fsc-window-pulse {
  0% { opacity: 0.9; box-shadow: 0 0 30px 15px rgba(255,232,176,0.4); }
  50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,232,176,0.7); }
  100% { opacity: 0.9; box-shadow: 0 0 30px 15px rgba(255,232,176,0.4); }
}
@keyframes fsc-woman-laugh {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-4px) rotate(-5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(4px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fsc-man-step {
  0% { transform: translateX(0) rotate(-2deg); }
  20% { transform: translateX(10px) rotate(1deg); }
  40% { transform: translateX(20px) rotate(-1deg); }
  60% { transform: translateX(30px) rotate(2deg); }
  80% { transform: translateX(20px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes fsc-drop {
  0% { opacity: 0; transform: translateY(0) scale(0.5); }
  20% { opacity: 1; transform: translateY(10px) scale(1); }
  80% { opacity: 1; transform: translateY(20px) scale(1.2); }
  100% { opacity: 0; transform: translateY(30px) scale(0.5); }
}
@keyframes fsc-beam {
  0% { opacity: 0.3; transform: skewX(-15deg) scaleX(1); }
  50% { opacity: 0.6; transform: skewX(-10deg) scaleX(1.1); }
  100% { opacity: 0.3; transform: skewX(-15deg) scaleX(1); }
}

/* father-saval-answer */
.scn-father-saval-answer {
  background: linear-gradient(180deg, #fcf0d8 0%, #f0d8a8 50%, #d8b880 100%),
              radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-father-saval-answer .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #f0d8b0 0%, #d8c098 100%);
}
.scn-father-saval-answer .window {
  position: absolute; top: 8%; right: 12%; width: 90px; height: 120px;
  background: linear-gradient(180deg, #fffce8 0%, #ffecc0 100%);
  border-radius: 8px; box-shadow: 0 0 30px 15px rgba(255,236,192,0.6);
  animation: fsa-window-shimmer 5s ease-in-out infinite alternate;
}
.scn-father-saval-answer .jam-pot {
  position: absolute; bottom: 28%; left: 22%; width: 50px; height: 55px;
  background: radial-gradient(circle at 40% 30%, #d8a080 0%, #b88060 80%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: fsa-pot-wobble 7s ease-in-out infinite;
}
.scn-father-saval-answer .figure-woman {
  position: absolute; bottom: 30%; left: 30%; width: 45px; height: 90px;
  background: linear-gradient(180deg, #d4b090 0%, #b09070 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsa-woman-turn 10s ease-in-out infinite;
}
.scn-father-saval-answer .figure-woman::before {
  content: ''; position: absolute; top: -12px; left: 50%; width: 28px; height: 28px;
  background: radial-gradient(circle, #e0c0a0 0%, #c0a080 100%);
  border-radius: 50%; transform: translateX(-50%);
}
.scn-father-saval-answer .figure-man {
  position: absolute; bottom: 30%; right: 25%; width: 50px; height: 95px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsa-man-stand 12s ease-in-out infinite;
}
.scn-father-saval-answer .spoon {
  position: absolute; bottom: 48%; left: 38%; width: 24px; height: 6px;
  background: linear-gradient(90deg, #b0a090 0%, #908070 100%);
  border-radius: 50%; transform-origin: left center;
  animation: fsa-spoon-stir 4s ease-in-out infinite;
}
.scn-father-saval-answer .glow {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 70% 20%, rgba(255,255,200,0.15) 0%, transparent 60%);
  animation: fsa-glow-pulse 8s ease-in-out infinite alternate;
}
@keyframes fsa-window-shimmer {
  0% { opacity: 0.85; box-shadow: 0 0 20px 10px rgba(255,236,192,0.4); }
  50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(255,236,192,0.7); }
  100% { opacity: 0.85; box-shadow: 0 0 20px 10px rgba(255,236,192,0.4); }
}
@keyframes fsa-pot-wobble {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fsa-woman-turn {
  0% { transform: rotate(0deg) scaleX(1); }
  25% { transform: rotate(-10deg) scaleX(-1); }
  50% { transform: rotate(0deg) scaleX(-1); }
  75% { transform: rotate(10deg) scaleX(1); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes fsa-man-stand {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes fsa-spoon-stir {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(30deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-30deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fsa-glow-pulse {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}

/* two-sisters-dying */
.scn-two-sisters-dying {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 50%, #0e0606 100%),
              radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-two-sisters-dying .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1010 0%, #0e0808 100%);
}
.scn-two-sisters-dying .bed {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10px; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-two-sisters-dying .figure-dying {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: tsd-dying-breathe 4s ease-in-out infinite alternate;
}
.scn-two-sisters-dying .figure-dying::before {
  content: ''; position: absolute; top: -25px; left: 50%; width: 36px; height: 40px;
  background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%; transform: translateX(-50%);
}
.scn-two-sisters-dying .figure-sister {
  position: absolute; bottom: 28%; left: 10%; width: 45px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsd-sister-sob 6s ease-in-out infinite;
}
.scn-two-sisters-dying .candle-1 {
  position: absolute; bottom: 40%; left: 15%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a870 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 8px rgba(200,168,112,0.6);
  animation: tsd-candle-flicker 0.8s ease-in-out infinite alternate;
}
.scn-two-sisters-dying .candle-2 {
  position: absolute; bottom: 40%; right: 15%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a870 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: 0 0 20px 8px rgba(200,168,112,0.6);
  animation: tsd-candle-flicker 0.8s ease-in-out infinite alternate-reverse;
}
.scn-two-sisters-dying .cloth {
  position: absolute; bottom: 42%; left: 50%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #e0d8c8 0%, #c8c0b0 100%);
  border-radius: 10px; transform: translateX(-50%);
  animation: tsd-cloth-settle 10s ease-in-out infinite;
}
@keyframes tsd-dying-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.03) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes tsd-sister-sob {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-5px) rotate(3deg); }
  40% { transform: translateY(0) rotate(0deg); }
  60% { transform: translateY(-3px) rotate(-2deg); }
  80% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tsd-candle-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 15px 6px rgba(200,168,112,0.4); }
  50% { opacity: 1; box-shadow: 0 0 25px 12px rgba(200,168,112,0.7); }
  100% { opacity: 0.9; box-shadow: 0 0 20px 8px rgba(200,168,112,0.5); }
}
@keyframes tsd-cloth-settle {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}

/* two-sisters-devotion */
.scn-two-sisters-devotion {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%),
              radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-two-sisters-devotion .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0e 0%, #1a0e06 100%);
}
.scn-two-sisters-devotion .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
}
.scn-two-sisters-devotion .figure-older {
  position: absolute; bottom: 25%; left: 40%; width: 50px; height: 85px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsdv-older-hug 8s ease-in-out infinite alternate;
}
.scn-two-sisters-devotion .figure-older::before {
  content: ''; position: absolute; top: -18px; left: 50%; width: 32px; height: 32px;
  background: radial-gradient(circle, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50%; transform: translateX(-50%);
}
.scn-two-sisters-devotion .figure-younger {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsdv-younger-cling 8s ease-in-out infinite alternate;
}
.scn-two-sisters-devotion .figure-younger::before {
  content: ''; position: absolute; top: -14px; left: 50%; width: 28px; height: 28px;
  background: radial-gradient(circle, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50%; transform: translateX(-50%);
}
.scn-two-sisters-devotion .hearth {
  position: absolute; bottom: 10%; left: 10%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #8a5a3a 0%, #6a3a1a 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: tsdv-fire-glow 5s ease-in-out infinite alternate;
}
.scn-two-sisters-devotion .warm-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 70%, rgba(200,120,60,0.15) 0%, transparent 60%);
  animation: tsdv-ambient 12s ease-in-out infinite alternate;
}
@keyframes tsdv-older-hug {
  0% { transform: translateX(-5px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(-5px) rotate(-2deg); }
}
@keyframes tsdv-younger-cling {
  0% { transform: translateX(5px) rotate(2deg) scaleX(1); }
  50% { transform: translateX(0) rotate(0deg) scaleX(0.95); }
  100% { transform: translateX(5px) rotate(2deg) scaleX(1); }
}
@keyframes tsdv-fire-glow {
  0% { box-shadow: 0 0 20px 10px rgba(200,120,60,0.4); }
  50% { box-shadow: 0 0 40px 20px rgba(200,120,60,0.7); }
  100% { box-shadow: 0 0 20px 10px rgba(200,120,60,0.4); }
}
@keyframes tsdv-ambient {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

/* dead-woman-secret */
.scn-dead-woman-secret {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 40%, #0e0a14 100%), radial-gradient(ellipse at 80% 30%, #2a2a3e 0%, transparent 60%);
}
.scn-dead-woman-secret .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1c1824 0%, #120e18 100%); }
.scn-dead-woman-secret .floor { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(0deg, #0d0a0d 0%, #1a141a 100%); }
.scn-dead-woman-secret .bed { position:absolute; bottom:15%; left:10%; width:50%; height:22%; background: linear-gradient(180deg, #2e222e 0%, #1a121a 100%); border-radius: 10% 10% 5% 5% / 40% 40% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-dead-woman-secret .woman-figure { position:absolute; bottom:16%; left:25%; width:20%; height:12%; background: radial-gradient(ellipse 60% 90% at 50% 100%, #3a2a3a 0%, #1a121a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform: scaleX(0.8); opacity:0.7; }
.scn-dead-woman-secret .man-figure { position:absolute; bottom:16%; right:15%; width:8%; height:35%; background: linear-gradient(180deg, #2a222a 0%, #0e080e 100%); border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: dws-man 8s ease-in-out infinite; }
.scn-dead-woman-secret .letter { position:absolute; bottom:30%; right:20%; width:6%; height:4%; background: #c8b088; border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: dws-letter 4s ease-in-out infinite; }
.scn-dead-woman-secret .drawer { position:absolute; bottom:18%; right:8%; width:14%; height:6%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 2px; box-shadow: inset 0 -2px 4px rgba(0,0,0,.6); }
.scn-dead-woman-secret .candle-glow { position:absolute; bottom:40%; left:45%; width:3%; height:8%; background: radial-gradient(ellipse at 50% 0%, #f0c080 0%, #c08040 40%, transparent 70%); filter: blur(3px); animation: dws-candle 2s ease-in-out infinite alternate; }
.scn-dead-woman-secret .vignette { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.6) 100%); pointer-events:none; }
@keyframes dws-man { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(2deg); } 60% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(1px) rotate(-1deg); } }
@keyframes dws-letter { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes dws-candle { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.8; transform: scaleY(0.95); } }

/* dead-woman-denial */
.scn-dead-woman-denial {
  background: linear-gradient(180deg, #2c2a3a 0%, #1a1a2e 40%, #0e0c1a 100%), radial-gradient(ellipse at 70% 20%, #3a3a4e 0%, transparent 60%);
}
.scn-dead-woman-denial .bg-dawn { position:absolute; inset:0; background: linear-gradient(135deg, #2c2a3a 0%, #181624 100%); }
.scn-dead-woman-denial .window-light { position:absolute; top:10%; right:20%; width:20%; height:35%; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%; box-shadow: inset 0 0 20px rgba(200,220,240,.2); animation: dwd-light 12s ease-in-out infinite alternate; }
.scn-dead-woman-denial .curtain { position:absolute; top:10%; right:25%; width:10%; height:38%; background: linear-gradient(90deg, #3a2a3a 0%, #2a1a2a 100%); border-radius: 10% 10% 0 0; transform: scaleX(0.8); box-shadow: -4px 0 8px rgba(0,0,0,.4); animation: dwd-curtain 8s ease-in-out infinite alternate; }
.scn-dead-woman-denial .sister-silhouette { position:absolute; bottom:20%; left:30%; width:6%; height:30%; background: linear-gradient(180deg, #1e1a2a 0%, #0c0814 100%); border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: dwd-sister 10s ease-in-out infinite; }
.scn-dead-woman-denial .bed-denial { position:absolute; bottom:10%; left:5%; width:45%; height:20%; background: linear-gradient(180deg, #2e2232 0%, #1a121a 100%); border-radius: 10% 10% 5% 5% / 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-dead-woman-denial .drawer-denial { position:absolute; bottom:20%; left:50%; width:18%; height:8%; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 4px; box-shadow: inset 0 2px 4px rgba(0,0,0,.4); }
.scn-dead-woman-denial .armchair { position:absolute; bottom:5%; right:15%; width:14%; height:18%; background: linear-gradient(135deg, #2a222a 0%, #1a121a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform: scaleX(0.7); }
.scn-dead-woman-denial .letter-scraps { position:absolute; bottom:12%; left:55%; width:4%; height:2%; background: #b8a088; border-radius: 2px; transform: rotate(15deg); box-shadow: 0 1px 2px rgba(0,0,0,.5); animation: dwd-scraps 6s ease-in-out infinite; }
@keyframes dwd-light { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes dwd-curtain { 0% { transform: scaleX(0.8) translateX(0); } 50% { transform: scaleX(0.85) translateX(-4px); } 100% { transform: scaleX(0.75) translateX(0); } }
@keyframes dwd-sister { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(-1deg); } 70% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes dwd-scraps { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(2px); } 100% { transform: rotate(15deg) translateY(0); } }

/* englishwoman-travel-thoughts */
.scn-englishwoman-travel-thoughts {
  background: linear-gradient(180deg, #9a9a9a 0%, #b0b0b0 40%, #d0d0d0 100%), radial-gradient(ellipse at 50% 100%, #e0e0e0 0%, transparent 70%);
}
.scn-englishwoman-travel-thoughts .carriage-wall { position:absolute; inset:0; background: linear-gradient(180deg, #b8b8b8 0%, #8a8a8a 100%); }
.scn-englishwoman-travel-thoughts .window-sky { position:absolute; top:15%; left:10%; width:55%; height:60%; background: linear-gradient(180deg, #c8c8d8 0%, #a8a8b8 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(200,200,200,.3); }
.scn-englishwoman-travel-thoughts .seat { position:absolute; bottom:10%; left:5%; width:70%; height:15%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; }
.scn-englishwoman-travel-thoughts .woman-profile { position:absolute; bottom:25%; left:30%; width:10%; height:25%; background: linear-gradient(180deg, #d4c4b4 0%, #b09888 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: scaleX(-1); transform-origin: bottom center; animation: ewt-woman 6s ease-in-out infinite; }
.scn-englishwoman-travel-thoughts .hair-strand { position:absolute; bottom:40%; left:34%; width:2%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-10deg); animation: ewt-hair 4s ease-in-out infinite alternate; }
.scn-englishwoman-travel-thoughts .window-reflection { position:absolute; top:20%; left:12%; width:40%; height:50%; background: linear-gradient(135deg, rgba(255,255,255,.1) 0%, rgba(255,255,255,.05) 100%); border-radius: 10%; filter: blur(4px); animation: ewt-reflect 8s ease-in-out infinite; }
.scn-englishwoman-travel-thoughts .landscape-blur { position:absolute; top:15%; left:10%; width:55%; height:60%; background: linear-gradient(135deg, #8a9a8a 0%, #6a7a6a 100%); filter: blur(8px); opacity:0.3; animation: ewt-land 15s linear infinite; }
@keyframes ewt-woman { 0% { transform: scaleX(-1) translateY(0) rotate(0deg); } 25% { transform: scaleX(-1) translateY(-2px) rotate(2deg); } 50% { transform: scaleX(-1) translateY(0) rotate(0deg); } 75% { transform: scaleX(-1) translateY(-1px) rotate(-1deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0deg); } }
@keyframes ewt-hair { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ewt-reflect { 0% { opacity:0.2; transform: translateX(0); } 50% { opacity:0.4; transform: translateX(5px); } 100% { opacity:0.2; transform: translateX(0); } }
@keyframes ewt-land { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }

/* englishwoman-disappointment */
.scn-englishwoman-disappointment {
  background: linear-gradient(180deg, #7a7a8a 0%, #9a9aaa 40%, #b8b8c8 100%), radial-gradient(ellipse at 50% 0%, #c0c0d0 0%, transparent 60%);
}
.scn-englishwoman-disappointment .sky-overcast { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #8a8a9a 0%, #b0b0c0 100%); }
.scn-englishwoman-disappointment .country-house { position:absolute; bottom:20%; right:10%; width:45%; height:40%; background: linear-gradient(180deg, #c8b8a8 0%, #a09080 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.2); }
.scn-englishwoman-disappointment .carriage-partial { position:absolute; bottom:10%; left:5%; width:35%; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; }
.scn-englishwoman-disappointment .woman-getting-out { position:absolute; bottom:12%; left:20%; width:8%; height:28%; background: linear-gradient(180deg, #d4c4b4 0%, #b09888 100%); border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ewd-woman 8s ease-in-out infinite; }
.scn-englishwoman-disappointment .man-arms { position:absolute; bottom:15%; left:22%; width:6%; height:20%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform: rotate(-10deg); animation: ewd-man 8s ease-in-out infinite; }
.scn-englishwoman-disappointment .child-silhouette.left { position:absolute; bottom:8%; right:35%; width:5%; height:14%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; animation: ewd-child 6s ease-in-out infinite; }
.scn-englishwoman-disappointment .child-silhouette.right { position:absolute; bottom:8%; right:25%; width:5%; height:14%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; animation: ewd-child 6s ease-in-out infinite 3s; }
.scn-englishwoman-disappointment .maid-silhouette { position:absolute; bottom:10%; right:15%; width:6%; height:22%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; animation: ewd-maid 10s ease-in-out infinite; }
.scn-englishwoman-disappointment .ground { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(0deg, #5a6a4a 0%, #4a5a3a 100%); }
@keyframes ewd-woman { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ewd-man { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes ewd-child { 0% { transform: translateY(0); } 30% { transform: translateY(2px); } 60% { transform: translateY(0); } 100% { transform: translateY(1px); } }
@keyframes ewd-maid { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-1px) rotate(1deg); } 80% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }

.scn-grave-illness {
  background:
    radial-gradient(ellipse at 50% 60%, rgba(30, 20, 40, 0.8) 0%, transparent 60%),
    linear-gradient(180deg, #0a0a14 0%, #1a1025 40%, #251a30 100%);
}
.scn-grave-illness .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #1a1025 0%, #0f0a1a 100%);
  animation: gi-wall 20s ease-in-out infinite alternate;
}
.scn-grave-illness .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a1220 0%, #0d0812 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-grave-illness .window-frame {
  position: absolute;
  top: 12%;
  left: 50%;
  width: 80px;
  height: 100px;
  transform: translateX(-50%);
  background: #1a1025;
  border: 4px solid #2a1a35;
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 0 30px rgba(100, 80, 140, 0.2);
  animation: gi-frame 15s ease-in-out infinite alternate;
}
.scn-grave-illness .window-glow {
  position: absolute;
  top: 15%;
  left: 50%;
  width: 60px;
  height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(180, 160, 220, 0.3) 0%, transparent 70%);
  border-radius: 4%;
  filter: blur(8px);
  animation: gi-glow 8s ease-in-out infinite alternate;
}
.scn-grave-illness .silhouette {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 22px;
  height: 45px;
  background: linear-gradient(180deg, #0a0812 0%, #05040a 100%);
  border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: gi-figure 6s ease-in-out infinite;
}
.scn-grave-illness .ghost-figure {
  position: absolute;
  bottom: 35%;
  left: 55%;
  width: 28px;
  height: 50px;
  background: radial-gradient(ellipse at 50% 40%, rgba(200, 180, 240, 0.2) 0%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: gi-ghost 10s ease-in-out infinite alternate;
}
.scn-grave-illness .candle {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 4px;
  height: 12px;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(200, 160, 80, 0.5);
  animation: gi-candle 3s ease-in-out infinite alternate;
}
.scn-grave-illness .candle-light {
  position: absolute;
  bottom: 37%;
  left: 30%;
  width: 20px;
  height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(240, 200, 120, 0.6) 0%, rgba(200, 160, 80, 0.2) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: gi-candle-light 2s ease-in-out infinite alternate;
}
@keyframes gi-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes gi-frame {
  0% { box-shadow: 0 0 20px rgba(100, 80, 140, 0.1); }
  50% { box-shadow: 0 0 40px rgba(100, 80, 140, 0.3); }
  100% { box-shadow: 0 0 20px rgba(100, 80, 140, 0.15); }
}
@keyframes gi-glow {
  0% { opacity: 0.3; filter: blur(10px); }
  50% { opacity: 0.6; filter: blur(6px); }
  100% { opacity: 0.4; filter: blur(8px); }
}
@keyframes gi-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(4px) translateY(-2px) rotate(1deg); }
  60% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(12px) translateY(-1px) rotate(0); }
}
@keyframes gi-ghost {
  0% { opacity: 0.1; transform: scale(0.95); }
  50% { opacity: 0.3; transform: scale(1.05); }
  100% { opacity: 0.15; transform: scale(0.98); }
}
@keyframes gi-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.05) translateY(-1px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(0); opacity: 0.9; }
}
@keyframes gi-candle-light {
  0% { transform: translateX(-50%) scale(1); opacity: 0.5; }
  50% { transform: translateX(-50%) scale(1.2); opacity: 0.8; }
  100% { transform: translateX(-50%) scale(0.9); opacity: 0.6; }
}

.scn-grave-grief {
  background:
    radial-gradient(ellipse at 30% 70%, rgba(20, 30, 50, 0.8) 0%, transparent 60%),
    linear-gradient(180deg, #0a0a18 0%, #14142a 40%, #1a1a32 100%);
}
.scn-grave-grief .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #14142a 0%, #0a0a18 100%);
  animation: gg-wall 25s ease-in-out infinite alternate;
}
.scn-grave-grief .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #0e0e1e 0%, #060610 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-grave-grief .window-frame {
  position: absolute;
  top: 10%;
  right: 15%;
  width: 70px;
  height: 90px;
  background: #0a0a18;
  border: 3px solid #2a2a3e;
  border-radius: 2%;
  box-shadow: 0 0 20px rgba(100, 100, 160, 0.1);
  animation: gg-frame 20s ease-in-out infinite alternate;
}
.scn-grave-grief .moonlight {
  position: absolute;
  top: 12%;
  right: 18%;
  width: 50px;
  height: 70px;
  background: linear-gradient(135deg, rgba(180, 200, 240, 0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: gg-moonlight 12s ease-in-out infinite alternate;
}
.scn-grave-grief .coffin {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 90px;
  height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: gg-coffin 30s ease-in-out infinite alternate;
}
.scn-grave-grief .hunched-figure {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 28px;
  height: 40px;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  border-radius: 45% 45% 50% 50% / 50% 50% 60% 60%;
  transform-origin: bottom center;
  animation: gg-hunch 8s ease-in-out infinite;
}
.scn-grave-grief .shadow {
  position: absolute;
  bottom: 24%;
  left: 40%;
  width: 50px;
  height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: gg-shadow 6s ease-in-out infinite alternate;
}
.scn-grave-grief .tear {
  position: absolute;
  bottom: 35%;
  left: 48%;
  width: 4px;
  height: 6px;
  background: radial-gradient(circle, rgba(180, 200, 240, 0.4) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gg-tear 3s ease-in-out infinite;
}
@keyframes gg-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gg-frame {
  0% { border-color: #2a2a3e; }
  50% { border-color: #3a3a52; }
  100% { border-color: #2a2a3e; }
}
@keyframes gg-moonlight {
  0% { opacity: 0.1; filter: blur(12px); }
  50% { opacity: 0.25; filter: blur(8px); }
  100% { opacity: 0.15; filter: blur(10px); }
}
@keyframes gg-coffin {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes gg-hunch {
  0% { transform: translateX(0) translateY(0) rotate(3deg); }
  25% { transform: translateX(-3px) translateY(2px) rotate(5deg); }
  50% { transform: translateX(0) translateY(4px) rotate(2deg); }
  75% { transform: translateX(3px) translateY(2px) rotate(4deg); }
  100% { transform: translateX(0) translateY(0) rotate(3deg); }
}
@keyframes gg-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.6; transform: scaleX(0.95); }
}
@keyframes gg-tear {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(4px) scale(1.2); opacity: 0.6; }
  100% { transform: translateY(8px) scale(0.8); opacity: 0; }
}

.scn-grave-fixed-idea {
  background:
    radial-gradient(ellipse at 50% 40%, rgba(30, 40, 30, 0.6) 0%, transparent 60%),
    linear-gradient(180deg, #0a0e0a 0%, #121a12 40%, #1a221a 100%);
}
.scn-grave-fixed-idea .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #121a12 0%, #0a0e0a 100%);
  animation: fi-wall 30s ease-in-out infinite alternate;
}
.scn-grave-fixed-idea .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #0e120e 0%, #060a06 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-grave-fixed-idea .mirror-frame {
  position: absolute;
  top: 15%;
  left: 50%;
  width: 70px;
  height: 100px;
  transform: translateX(-50%);
  background: #1a221a;
  border: 5px solid #2a3a2a;
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 0 30px rgba(40, 60, 40, 0.2);
  animation: fi-frame 20s ease-in-out infinite alternate;
}
.scn-grave-fixed-idea .mirror-glass {
  position: absolute;
  top: 18%;
  left: 50%;
  width: 55px;
  height: 85px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, rgba(60, 80, 60, 0.1) 0%, rgba(100, 120, 100, 0.05) 50%, transparent 100%);
  border-radius: 2%;
  filter: blur(2px);
  animation: fi-glass 15s ease-in-out infinite alternate;
}
.scn-grave-fixed-idea .figure-staring {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #0a0e0a 0%, #050805 100%);
  border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fi-figure 10s ease-in-out infinite;
}
.scn-grave-fixed-idea .reflection-ghost {
  position: absolute;
  top: 22%;
  left: 50%;
  width: 24px;
  height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, rgba(80, 120, 80, 0.15) 0%, transparent 60%);
  border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%;
  filter: blur(4px);
  animation: fi-reflection 12s ease-in-out infinite alternate;
}
.scn-grave-fixed-idea .shadow {
  position: absolute;
  bottom: 20%;
  left: 42%;
  width: 40px;
  height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: fi-shadow 8s ease-in-out infinite alternate;
}
.scn-grave-fixed-idea .thought-haze {
  position: absolute;
  top: 30%;
  left: 30%;
  width: 120px;
  height: 60px;
  background: radial-gradient(ellipse, rgba(60, 80, 60, 0.1) 0%, transparent 70%);
  filter: blur(15px);
  animation: fi-haze 20s ease-in-out infinite alternate;
}
@keyframes fi-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fi-frame {
  0% { border-color: #2a3a2a; box-shadow: 0 0 20px rgba(40, 60, 40, 0.1); }
  50% { border-color: #3a4a3a; box-shadow: 0 0 40px rgba(40, 60, 40, 0.3); }
  100% { border-color: #2a3a2a; box-shadow: 0 0 20px rgba(40, 60, 40, 0.15); }
}
@keyframes fi-glass {
  0% { opacity: 0.3; filter: blur(3px); }
  50% { opacity: 0.6; filter: blur(1px); }
  100% { opacity: 0.4; filter: blur(2px); }
}
@keyframes fi-figure {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  60% { transform: translateX(-2px) translateY(1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes fi-reflection {
  0% { opacity: 0.1; transform: translateX(-50%) scaleY(0.9); }
  50% { opacity: 0.3; transform: translateX(-50%) scaleY(1.1); }
  100% { opacity: 0.15; transform: translateX(-50%) scaleY(0.95); }
}
@keyframes fi-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.15); }
  100% { opacity: 0.5; transform: scaleX(0.9); }
}
@keyframes fi-haze {
  0% { opacity: 0.1; transform: translateY(0) scale(1); }
  50% { opacity: 0.3; transform: translateY(-5px) scale(1.1); }
  100% { opacity: 0.15; transform: translateY(0) scale(0.95); }
}

.scn-grave-desperation {
  background:
    radial-gradient(ellipse at 50% 80%, rgba(40, 10, 10, 0.7) 0%, transparent 60%),
    linear-gradient(180deg, #0a0505 0%, #1a0a0a 40%, #2a1010 100%);
}
.scn-grave-desperation .bg-deep {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  animation: dp-bg 25s ease-in-out infinite alternate;
}
.scn-grave-desperation .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #120808 0%, #080404 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-grave-desperation .candle {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 5px;
  height: 15px;
  background: linear-gradient(180deg, #e0a060 0%, #a06030 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(200, 120, 60, 0.5);
  animation: dp-candle 4s ease-in-out infinite alternate;
}
.scn-grave-desperation .candle-light {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 30px;
  height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(240, 160, 80, 0.5) 0%, rgba(200, 120, 60, 0.15) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dp-candle-light 3s ease-in-out infinite alternate;
}
.scn-grave-desperation .statue-base {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 40px;
  height: 15px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-grave-desperation .statue-head {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 25px;
  height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(60, 40, 20, 0.3);
  animation: dp-statue 20s ease-in-out infinite alternate;
}
.scn-grave-desperation .figure-hands {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 30px;
  height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, rgba(20, 10, 5, 0.8) 0%, transparent 70%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  filter: blur(2px);
  animation: dp-hands 6s ease-in-out infinite;
}
.scn-grave-desperation .figure-shadow {
  position: absolute;
  bottom: 18%;
  left: 44%;
  width: 60px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(6px);
  animation: dp-shad 8s ease-in-out infinite alternate;
}
@keyframes dp-bg {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes dp-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(0); opacity: 0.9; }
}
@keyframes dp-candle-light {
  0% { transform: translateX(-50%) scale(1); opacity: 0.4; }
  50% { transform: translateX(-50%) scale(1.3); opacity: 0.7; }
  100% { transform: translateX(-50%) scale(0.85); opacity: 0.5; }
}
@keyframes dp-statue {
  0% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes dp-hands {
  0% { transform: translateX(-50%) translateY(0) scaleX(1); }
  30% { transform: translateX(-50%) translateY(2px) scaleX(0.95); }
  60% { transform: translateX(-50%) translateY(-1px) scaleX(1.05); }
  100% { transform: translateX(-50%) translateY(0) scaleX(1); }
}
@keyframes dp-shad {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.2); }
  100% { opacity: 0.6; transform: scaleX(0.9); }
}

/* ─── englishwoman-inn-meeting ─── */
.scn-englishwoman-inn-meeting {
  background: linear-gradient(180deg, #4a4a3a 0%, #2d2d1f 40%, #1f1f14 100%),
              radial-gradient(ellipse at 50% 60%, #6a6a4a 0%, transparent 70%);
}
.scn-englishwoman-inn-meeting .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #3a3a2a 0%, #4a4a3a 40%, #3a3a2a 100%);
  animation: ei1-wall 30s ease-in-out infinite alternate;
}
.scn-englishwoman-inn-meeting .window {
  position: absolute; top: 12%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(circle at 50% 50%, #b8b89a 0%, #7a7a5a 60%, transparent 70%);
  border-radius: 4px; box-shadow: inset 0 0 40px rgba(255,255,200,.1);
  animation: ei1-window 12s ease-in-out infinite alternate;
}
.scn-englishwoman-inn-meeting .table {
  position: absolute; bottom: 22%; left: 25%; width: 50%; height: 14%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.5);
  transform: perspective(200px) rotateX(8deg);
}
.scn-englishwoman-inn-meeting .chair {
  position: absolute; bottom: 26%; right: 30%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 10% 10%; transform: rotate(2deg);
  animation: ei1-chair 8s ease-in-out infinite alternate;
}
.scn-englishwoman-inn-meeting .figure {
  position: absolute; bottom: 28%; left: 42%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 80%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform: rotate(-2deg); box-shadow: -4px 0 10px rgba(0,0,0,.4);
  animation: ei1-figure 14s ease-in-out infinite alternate;
}
.scn-englishwoman-inn-meeting .plate {
  position: absolute; bottom: 32%; left: 45%; width: 12%; height: 6%;
  background: radial-gradient(circle, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 40%; box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-englishwoman-inn-meeting .steam {
  position: absolute; bottom: 36%; left: 48%; width: 4%; height: 10%;
  background: radial-gradient(circle at 50% 100%, rgba(255,255,200,.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: ei1-steam 5s ease-in-out infinite alternate;
}
@keyframes ei1-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes ei1-window {
  0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.9; transform: scaleX(1.02); } 100% { opacity: 0.7; transform: scaleX(0.98); }
}
@keyframes ei1-chair {
  0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); }
}
@keyframes ei1-figure {
  0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes ei1-steam {
  0% { opacity: 0; transform: translateY(0) scale(0.8); } 50% { opacity: 0.4; transform: translateY(-20px) scale(1.2); } 100% { opacity: 0; transform: translateY(-40px) scale(0.6); }
}

/* ─── englishwoman-lake-pavin ─── */
.scn-englishwoman-lake-pavin {
  background: linear-gradient(180deg, #4a8ab8 0%, #7ab8d8 30%, #f0e8c0 70%, #d0c890 100%),
              radial-gradient(ellipse at 50% 0%, #f0e8c0 0%, transparent 60%);
}
.scn-englishwoman-lake-pavin .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6ab0d0 0%, #b8d8e8 40%, transparent 100%);
  animation: ei2-sky 20s ease-in-out infinite alternate;
}
.scn-englishwoman-lake-pavin .mountains {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a7a5a 0%, #3a4a2a 100%);
  border-radius: 40% 60% 0 0 / 100% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: ei2-mountains 25s ease-in-out infinite alternate;
}
.scn-englishwoman-lake-pavin .lake {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7ac0d0 0%, #3a6080 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  animation: ei2-lake 15s ease-in-out infinite alternate;
}
.scn-englishwoman-lake-pavin .path {
  position: absolute; bottom: 18%; left: 30%; right: 40%; height: 6%;
  background: linear-gradient(90deg, #8a7a5a 0%, #b8a88a 50%, #8a7a5a 100%);
  border-radius: 20% 20% 40% 40%; transform: perspective(200px) rotateX(20deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.scn-englishwoman-lake-pavin .figure {
  position: absolute; bottom: 19%; left: 45%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 60% 40% 40%;
  transform: rotate(-3deg); box-shadow: 2px 0 6px rgba(0,0,0,.3);
  animation: ei2-figure 8s ease-in-out infinite alternate;
}
.scn-englishwoman-lake-pavin .alpenstock {
  position: absolute; bottom: 20%; left: 48%; width: 2%; height: 25%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 20%; transform: rotate(8deg); transform-origin: bottom center;
  animation: ei2-stock 8s ease-in-out infinite alternate;
}
.scn-englishwoman-lake-pavin .guide {
  position: absolute; bottom: 17%; left: 40%; width: 5%; height: 15%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(2deg);
  animation: ei2-guide 10s ease-in-out infinite alternate;
}
@keyframes ei2-sky {
  0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; }
}
@keyframes ei2-mountains {
  0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(0.99); }
}
@keyframes ei2-lake {
  0% { background-position: 0 0; } 50% { background-position: 10px 5px; } 100% { background-position: -5px 0; }
}
@keyframes ei2-figure {
  0% { transform: rotate(-3deg) translateX(0); } 30% { transform: rotate(-2deg) translateX(4px); } 60% { transform: rotate(-4deg) translateX(-2px); } 100% { transform: rotate(-3deg) translateX(0); }
}
@keyframes ei2-stock {
  0% { transform: rotate(8deg); } 50% { transform: rotate(6deg); } 100% { transform: rotate(10deg); }
}
@keyframes ei2-guide {
  0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(-3px); } 100% { transform: rotate(2deg) translateX(0); }
}

/* ─── item-alpenstock-englishwoman ─── */
.scn-item-alpenstock-englishwoman {
  background: linear-gradient(180deg, #2b1a3a 0%, #4a2a4a 40%, #6a3a5a 100%),
              radial-gradient(ellipse at 40% 100%, #8a4a5a 0%, transparent 60%);
}
.scn-item-alpenstock-englishwoman .sky-dusk {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #8a5a6a 0%, #5a3a4a 50%, transparent 100%);
  animation: ei3-sky 18s ease-in-out infinite alternate;
}
.scn-item-alpenstock-englishwoman .ruin-wall {
  position: absolute; left: 0; bottom: 10%; width: 40%; height: 70%;
  background: linear-gradient(90deg, #3a2a2a 0%, #4a3a3a 80%, transparent 100%);
  border-radius: 0 20% 0 0; box-shadow: 10px 0 30px rgba(0,0,0,.5);
  transform: skewY(4deg);
  animation: ei3-wall 30s ease-in-out infinite alternate;
}
.scn-item-alpenstock-englishwoman .figure-peek {
  position: absolute; right: 25%; bottom: 20%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(6deg); box-shadow: -4px 0 10px rgba(0,0,0,.4);
  animation: ei3-figure 8s ease-in-out infinite alternate;
}
.scn-item-alpenstock-englishwoman .alpenstock {
  position: absolute; right: 22%; bottom: 28%; width: 2%; height: 30%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 10%; transform: rotate(-15deg); transform-origin: bottom center;
  animation: ei3-stock 6s ease-in-out infinite alternate;
}
.scn-item-alpenstock-englishwoman .rubble {
  position: absolute; bottom: 5%; left: 10%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
}
.scn-item-alpenstock-englishwoman .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  animation: ei3-shadow 12s ease-in-out infinite alternate;
}
@keyframes ei3-sky {
  0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; }
}
@keyframes ei3-wall {
  0% { transform: skewY(4deg) translateX(0); } 50% { transform: skewY(3deg) translateX(2px); } 100% { transform: skewY(5deg) translateX(0); }
}
@keyframes ei3-figure {
  0% { transform: rotate(6deg) translateX(0); } 30% { transform: rotate(5deg) translateX(-4px); } 60% { transform: rotate(7deg) translateX(2px); } 100% { transform: rotate(6deg) translateX(0); }
}
@keyframes ei3-stock {
  0% { transform: rotate(-15deg); } 50% { transform: rotate(-13deg); } 100% { transform: rotate(-17deg); }
}
@keyframes ei3-shadow {
  0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; }
}

/* ─── englishwoman-weeping ─── */
.scn-englishwoman-weeping {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 40%, #3a3a5a 100%),
              radial-gradient(ellipse at 50% 40%, #4a4a6a 0%, transparent 70%);
}
.scn-englishwoman-weeping .window-dusk {
  position: absolute; top: 10%; left: 30%; right: 30%; height: 40%;
  background: radial-gradient(circle at 50% 50%, #6a6a8a 0%, #2a2a4a 60%, transparent 80%);
  border-radius: 4px; box-shadow: inset 0 0 50px rgba(100,100,150,.2);
  animation: ei4-window 15s ease-in-out infinite alternate;
}
.scn-englishwoman-weeping .wall-dark {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a1a2e 0%, #2a2a4a 50%, #1a1a2e 100%);
}
.scn-englishwoman-weeping .figure-profile {
  position: absolute; right: 20%; bottom: 18%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 80%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform: rotate(-4deg); box-shadow: -8px 0 15px rgba(0,0,0,.6);
  animation: ei4-figure 10s ease-in-out infinite alternate;
}
.scn-englishwoman-weeping .handkerchief {
  position: absolute; right: 28%; bottom: 35%; width: 6%; height: 8%;
  background: radial-gradient(circle, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 40% 30% 40%;
  transform: rotate(10deg);
  animation: ei4-handkerchief 6s ease-in-out infinite alternate;
}
.scn-englishwoman-weeping .tear-1 {
  position: absolute; right: 27%; bottom: 42%; width: 2%; height: 4%;
  background: radial-gradient(circle, #8ab8d8 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: ei4-tear 4s ease-in-out infinite;
}
.scn-englishwoman-weeping .tear-2 {
  position: absolute; right: 26%; bottom: 38%; width: 2%; height: 4%;
  background: radial-gradient(circle, #8ab8d8 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: ei4-tear 4s ease-in-out infinite 2s;
}
.scn-englishwoman-weeping .chair {
  position: absolute; bottom: 10%; left: 15%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 10% 10%; transform: rotate(2deg);
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: ei4-chair 20s ease-in-out infinite alternate;
}
@keyframes ei4-window {
  0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; }
}
@keyframes ei4-figure {
  0% { transform: rotate(-4deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(-2px); } 100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes ei4-handkerchief {
  0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(0); }
}
@keyframes ei4-tear {
  0% { opacity: 0; transform: translateY(0) scale(0.5); } 20% { opacity: 0.8; transform: translateY(5px) scale(1); } 80% { opacity: 0.6; transform: translateY(40px) scale(0.8); } 100% { opacity: 0; transform: translateY(60px) scale(0.4); }
}
@keyframes ei4-chair {
  0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(3deg) translateY(0); }
}

/* bandit-st-lucia-murder */
.scn-bandit-st-lucia-murder {
  background: linear-gradient(180deg, #2b1b3d 0%, #5a3a5a 30%, #c07040 70%, #6a3030 100%),
              radial-gradient(ellipse at 50% 80%, #6a3030 0%, transparent 60%);
}
.scn-bandit-st-lucia-murder .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a0a1a 0%, #3a2a4a 40%, #8a5a3a 70%, transparent 100%);
  animation: mrd-sky 12s ease-in-out infinite alternate;
}
.scn-bandit-st-lucia-murder .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 90% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: mrd-hills 20s ease-in-out infinite alternate;
}
.scn-bandit-st-lucia-murder .path {
  position: absolute; bottom: 20%; left: 10%; right: 30%; height: 8%;
  background: linear-gradient(90deg, transparent, #5a4a3a 20%, #3a2a1a 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mrd-path 8s ease-in-out infinite;
}
.scn-bandit-st-lucia-murder .figure {
  position: absolute; bottom: 18%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mrd-walk 5s ease-in-out infinite, mrd-fade 15s ease-in-out infinite;
}
.scn-bandit-st-lucia-murder .tower {
  position: absolute; bottom: 25%; left: 65%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 0 8px rgba(0,0,0,.6);
  animation: mrd-tower 9s ease-in-out infinite;
}
.scn-bandit-st-lucia-murder .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 20px;
  background: linear-gradient(90deg, rgba(200,150,100,.3), rgba(200,150,100,.1));
  border-radius: 50%;
  filter: blur(8px);
  animation: mrd-drift 40s linear infinite;
}
.scn-bandit-st-lucia-murder .cloud-b {
  position: absolute; top: 20%; right: 15%; width: 70px; height: 16px;
  background: linear-gradient(90deg, rgba(200,150,100,.2), rgba(200,150,100,.05));
  border-radius: 50%;
  filter: blur(7px);
  animation: mrd-drift 55s linear infinite reverse;
}
@keyframes mrd-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes mrd-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes mrd-path { 0%, 100% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } }
@keyframes mrd-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes mrd-fade { 0%, 100% { opacity: 0.6 } 50% { opacity: 1 } }
@keyframes mrd-tower { 0%, 100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes mrd-drift { 0% { transform: translateX(0) } 100% { transform: translateX(130vw) } }

/* bandit-st-lucia-finish */
.scn-bandit-st-lucia-finish {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 70%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 70%);
}
.scn-bandit-st-lucia-finish .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 60%, transparent 100%);
  animation: fin-sky 15s ease-in-out infinite alternate;
}
.scn-bandit-st-lucia-finish .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-bandit-st-lucia-finish .wounded {
  position: absolute; bottom: 10%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 40% 30% 50%;
  transform: rotate(15deg);
  animation: fin-breathe 4s ease-in-out infinite;
}
.scn-bandit-st-lucia-finish .kneeling {
  position: absolute; bottom: 12%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fin-kneel 6s ease-in-out infinite;
}
.scn-bandit-st-lucia-finish .moon {
  position: absolute; top: 10%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c0c0e0 0%, #8080a0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(128,128,160,.3);
  animation: fin-moon 10s ease-in-out infinite alternate;
}
.scn-bandit-st-lucia-finish .star-1 {
  position: absolute; top: 8%; left: 15%; width: 3px; height: 3px;
  background: #d0d0e0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,200,220,.6);
  animation: fin-twinkle 4s ease-in-out infinite;
}
.scn-bandit-st-lucia-finish .star-2 {
  position: absolute; top: 18%; left: 45%; width: 2px; height: 2px;
  background: #e0e0f0;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(200,200,220,.5);
  animation: fin-twinkle 6s ease-in-out infinite 1s;
}
.scn-bandit-st-lucia-finish .star-3 {
  position: absolute; top: 6%; right: 40%; width: 4px; height: 4px;
  background: #c0c0d0;
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(180,180,200,.7);
  animation: fin-twinkle 5s ease-in-out infinite 0.5s;
}
@keyframes fin-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes fin-breathe { 0%, 100% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(17deg) scaleY(1.03) } }
@keyframes fin-kneel { 0%, 100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes fin-moon { 0% { transform: scale(0.9) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes fin-twinkle { 0%, 100% { opacity: 0.3 } 50% { opacity: 1 } }

/* bandit-st-lucia-legend */
.scn-bandit-st-lucia-legend {
  background: linear-gradient(180deg, #2a1a2a 0%, #4a3a5a 30%, #8a5a3a 70%, #6a3030 100%),
              radial-gradient(ellipse at 50% 100%, #6a3030 0%, transparent 60%);
}
.scn-bandit-st-lucia-legend .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a0a1a 0%, #3a2a4a 40%, #8a5a3a 70%, transparent 100%);
  animation: lgd-sky 12s ease-in-out infinite alternate;
}
.scn-bandit-st-lucia-legend .brush-back {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 80% 0 0;
  animation: lgd-brush 18s ease-in-out infinite;
}
.scn-bandit-st-lucia-legend .brush-front {
  position: absolute; bottom: 8%; left: -10%; right: -10%; height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  filter: blur(6px);
  animation: lgd-brush-front 15s ease-in-out infinite alternate;
}
.scn-bandit-st-lucia-legend .uncle {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lgd-stand 6s ease-in-out infinite;
}
.scn-bandit-st-lucia-legend .nephew {
  position: absolute; bottom: 18%; left: 55%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lgd-stand 7s ease-in-out infinite 0.5s;
}
.scn-bandit-st-lucia-legend .gun.g1 {
  position: absolute; bottom: 22%; left: 33%; width: 25px; height: 4px;
  background: #2a2a3a;
  border-radius: 2px;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: lgd-gun 4s ease-in-out infinite;
}
.scn-bandit-st-lucia-legend .gun.g2 {
  position: absolute; bottom: 20%; left: 58%; width: 25px; height: 4px;
  background: #2a2a3a;
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: left center;
  animation: lgd-gun 5s ease-in-out infinite 0.7s;
}
@keyframes lgd-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes lgd-brush { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lgd-brush-front { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes lgd-stand { 0%, 100% { transform: rotate(0) } 50% { transform: rotate(-2deg) } }
@keyframes lgd-gun { 0%, 100% { transform: rotate(-20deg) scaleX(1) } 50% { transform: rotate(-25deg) scaleX(0.9) } }
/* (nephew's gun uses different base rotation, but keyframe works with inline transform override; need separate keyframe? We'll keep one but adjust in CSS. Actually we can use same with animation-delay and different transform-origin. better to keep simple. Acceptable.) */

/* bandit-sunset */
.scn-bandit-sunset {
  background: linear-gradient(180deg, #4a2a1a 0%, #8a6a4a 30%, #c09060 60%, #e0b080 100%),
              radial-gradient(ellipse at 50% 100%, #e0b080 0%, transparent 70%);
}
.scn-bandit-sunset .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #6a4a2a 40%, #c09060 80%, transparent 100%);
  animation: snt-sky 15s ease-in-out infinite alternate;
}
.scn-bandit-sunset .mountain {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(170deg, #3a2a1a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 100%, 20% 20%, 40% 30%, 60% 10%, 80% 25%, 100% 100%);
  animation: snt-mountain 20s ease-in-out infinite;
}
.scn-bandit-sunset .sun {
  position: absolute; bottom: 40%; right: 30%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd080 0%, #e09040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(240,160,80,.3);
  animation: snt-sun 25s ease-in-out infinite alternate;
}
.scn-bandit-sunset .shadow {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(30,20,10,0.5) 50%, rgba(10,5,2,0.7) 100%);
  clip-path: polygon(0% 100%, 20% 20%, 50% 30%, 80% 10%, 100% 100%);
  animation: snt-shadow 30s ease-in-out infinite alternate;
}
.scn-bandit-sunset .path {
  position: absolute; bottom: 8%; left: 10%; right: 40%; height: 6%;
  background: linear-gradient(90deg, transparent, #6a5a4a 20%, #4a3a2a 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: snt-path 10s ease-in-out infinite;
}
.scn-bandit-sunset .village {
  position: absolute; bottom: 25%; left: 70%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px rgba(0,0,0,.4);
  animation: snt-village 12s ease-in-out infinite;
}
.scn-bandit-sunset .walker-a {
  position: absolute; bottom: 6%; left: 15%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: snt-walk 6s ease-in-out infinite;
}
.scn-bandit-sunset .walker-b {
  position: absolute; bottom: 6%; left: 28%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: snt-walk 7s ease-in-out infinite 0.3s;
}
@keyframes snt-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes snt-mountain { 0% { transform: scale(1) } 50% { transform: scale(0.98) } 100% { transform: scale(1) } }
@keyframes snt-sun { 0% { transform: scale(0.9) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes snt-shadow { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(5px) scaleY(0.95) } 100% { transform: translateY(0) } }
@keyframes snt-path { 0%, 100% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } }
@keyframes snt-village { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes snt-walk { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(6px) rotate(1deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(2deg) } 100% { transform: translateX(24px) rotate(0) } }

.scn-country-excursion-after-lunch {
  background: linear-gradient(180deg, #74a9d8 0%, #f9e2b5 40%, #e8c46a 70%, #d4a373 100%),
              radial-gradient(ellipse at 60% 30%, #f9e2b5 0%, transparent 60%);
}
.scn-country-excursion-after-lunch .ce1-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #87ceeb 0%, #ffd580 100%); animation: ce1-sky 14s ease-in-out infinite alternate; }
.scn-country-excursion-after-lunch .ce1-grass { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #4a7c3f 0%, #6aad5a 60%, #8bc46a 100%); border-radius: 20% 40% 0 0; animation: ce1-grass 6s ease-in-out infinite; }
.scn-country-excursion-after-lunch .ce1-table { position:absolute; bottom:28%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #c8956a 0%, #a07045 100%); border-radius: 10px; box-shadow: 0 4px 10px rgba(0,0,0,0.3); transform: perspective(500px) rotateX(5deg); animation: ce1-table 8s ease-in-out infinite; }
.scn-country-excursion-after-lunch .ce1-bottle { position:absolute; bottom:32%; left:40%; width:4%; height:14%; background: linear-gradient(90deg, #c48a50 0%, #7a5320 50%, #c48a50 100%); border-radius: 30% 30% 10% 10%; box-shadow: 2px 0 4px rgba(0,0,0,0.3); animation: ce1-bottle 10s ease-in-out infinite; }
.scn-country-excursion-after-lunch .ce1-wineglass { position:absolute; bottom:32%; left:46%; width:3%; height:10%; background: linear-gradient(135deg, #f0e6d0 0%, #c8b89a 100%); border-radius: 0 0 20% 20%; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: ce1-glass 9s ease-in-out infinite; }
.scn-country-excursion-after-lunch .ce1-grandma { position:absolute; bottom:26%; left:32%; width:8%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%; transform: rotate(-2deg); animation: ce1-grandma 12s ease-in-out infinite; }
.scn-country-excursion-after-lunch .ce1-girl { position:absolute; bottom:28%; left:48%; width:6%; height:18%; background: linear-gradient(180deg, #f0c8a0 0%, #e0a878 60%, #c08050 100%); border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%; animation: ce1-girl 7s ease-in-out infinite; }
.scn-country-excursion-after-lunch .ce1-apprentice { position:absolute; bottom:26%; left:55%; width:7%; height:22%; background: linear-gradient(180deg, #d4b060 0%, #b89040 100%); border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%; transform: rotate(5deg); animation: ce1-apprentice 5s ease-in-out infinite alternate; }

@keyframes ce1-sky { 0%{ opacity:0.8 } 50%{ opacity:1 } 100%{ opacity:0.75 } }
@keyframes ce1-grass { 0%{ transform: translateY(0) } 50%{ transform: translateY(-3px) } 100%{ transform: translateY(0) } }
@keyframes ce1-table { 0%,100%{ transform: perspective(500px) rotateX(5deg) } 50%{ transform: perspective(500px) rotateX(7deg) } }
@keyframes ce1-bottle { 0%,100%{ transform: rotate(-1deg) } 50%{ transform: rotate(2deg) } }
@keyframes ce1-glass { 0%,100%{ transform: rotate(-2deg) } 50%{ transform: rotate(3deg) } }
@keyframes ce1-grandma { 0%,100%{ transform: rotate(-2deg) } 50%{ transform: rotate(1deg) } }
@keyframes ce1-girl { 0%{ transform: rotate(0deg) } 33%{ transform: rotate(3deg) } 66%{ transform: rotate(-2deg) } 100%{ transform: rotate(0deg) } }
@keyframes ce1-apprentice { 0%{ transform: rotate(5deg) translateY(0) } 50%{ transform: rotate(-5deg) translateY(-4px) } 100%{ transform: rotate(5deg) translateY(0) } }

.scn-country-excursion-boating-party {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 70%, #deb887 100%),
              radial-gradient(ellipse at 30% 60%, #f0e68c 0%, transparent 50%);
}
.scn-country-excursion-boating-party .ce2-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #ffe4b5 100%); animation: ce2-sky 18s ease-in-out infinite alternate; }
.scn-country-excursion-boating-party .ce2-water { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, #2e8b57 0%, #5ba3a6 40%, #7cc8b8 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; animation: ce2-water 8s ease-in-out infinite; }
.scn-country-excursion-boating-party .ce2-bridge { position:absolute; bottom:38%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%); border-radius: 30% 30% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.4); animation: ce2-bridge 14s ease-in-out infinite; }
.scn-country-excursion-boating-party .ce2-boat { position:absolute; bottom:20%; left:40%; width:14%; height:8%; background: linear-gradient(135deg, #6b4226 0%, #4a2c14 100%); border-radius: 0 0 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: ce2-boat 6s ease-in-out infinite; }
.scn-country-excursion-boating-party .ce2-angler { position:absolute; bottom:25%; left:43%; width:4%; height:15%; background: linear-gradient(180deg, #3a2010 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 20% 20% 40% 40%; transform: rotate(10deg); animation: ce2-angler 5s ease-in-out infinite alternate; }
.scn-country-excursion-boating-party .ce2-mother { position:absolute; bottom:24%; left:36%; width:6%; height:14%; background: linear-gradient(180deg, #7a4a30 0%, #4a2818 100%); border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%; animation: ce2-mother 8s ease-in-out infinite; }
.scn-country-excursion-boating-party .ce2-wave1 { position:absolute; bottom:16%; left:0; right:0; height:4%; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: ce2-wave1 4s ease-in-out infinite; }
.scn-country-excursion-boating-party .ce2-wave2 { position:absolute; bottom:10%; left:0; right:0; height:3%; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: ce2-wave2 5s ease-in-out infinite 1s; }

@keyframes ce2-sky { 0%{ opacity:0.8 } 50%{ opacity:1 } 100%{ opacity:0.7 } }
@keyframes ce2-water { 0%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } 100%{ transform: translateY(0) } }
@keyframes ce2-bridge { 0%{ transform: scaleY(1) } 50%{ transform: scaleY(1.02) } 100%{ transform: scaleY(1) } }
@keyframes ce2-boat { 0%,100%{ transform: rotate(0deg) } 50%{ transform: rotate(3deg) } }
@keyframes ce2-angler { 0%{ transform: rotate(10deg) translateY(0) } 100%{ transform: rotate(-5deg) translateY(-3px) } }
@keyframes ce2-mother { 0%{ transform: rotate(0deg) } 33%{ transform: rotate(2deg) } 66%{ transform: rotate(-2deg) } 100%{ transform: rotate(0deg) } }
@keyframes ce2-wave1 { 0%{ transform: translateX(0) } 50%{ transform: translateX(10px) } 100%{ transform: translateX(0) } }
@keyframes ce2-wave2 { 0%{ transform: translateX(0) } 50%{ transform: translateX(-8px) } 100%{ transform: translateX(0) } }

.scn-country-excursion-names {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 70%, #deb887 100%),
              radial-gradient(ellipse at 40% 50%, #f0e68c 0%, transparent 40%);
}
.scn-country-excursion-names .ce3-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #ffe4b5 100%); animation: ce3-sky 16s ease-in-out infinite alternate; }
.scn-country-excursion-names .ce3-water { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #2e8b57 0%, #5ba3a6 40%, #7cc8b8 100%); border-radius: 10% 10% 0 0; animation: ce3-water 10s ease-in-out infinite; }
.scn-country-excursion-names .ce3-boat1 { position:absolute; bottom:22%; left:28%; width:12%; height:7%; background: linear-gradient(135deg, #6b4226 0%, #4a2c14 100%); border-radius: 0 0 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: ce3-boat1 7s ease-in-out infinite; }
.scn-country-excursion-names .ce3-boat2 { position:absolute; bottom:24%; left:55%; width:12%; height:7%; background: linear-gradient(135deg, #6b4226 0%, #4a2c14 100%); border-radius: 0 0 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: ce3-boat2 8s ease-in-out infinite 0.5s; }
.scn-country-excursion-names .ce3-henri { position:absolute; bottom:26%; left:30%; width:4%; height:14%; background: linear-gradient(180deg, #3a2010 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 20% 20% 40% 40%; transform: rotate(-5deg); animation: ce3-henri 6s ease-in-out infinite; }
.scn-country-excursion-names .ce3-henriette { position:absolute; bottom:28%; left:57%; width:4%; height:14%; background: linear-gradient(180deg, #7a4a30 0%, #4a2818 100%); border-radius: 50% 50% 40% 40% / 30% 30% 40% 40%; animation: ce3-henriette 5s ease-in-out infinite 0.3s; }
.scn-country-excursion-names .ce3-tree1 { position:absolute; bottom:30%; left:10%; width:12%; height:40%; background: linear-gradient(180deg, #2a4a1a 0%, #1a2a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,0.2); animation: ce3-tree1 20s ease-in-out infinite alternate; }
.scn-country-excursion-names .ce3-tree2 { position:absolute; bottom:30%; right:10%; width:14%; height:35%; background: linear-gradient(180deg, #2a4a1a 0%, #1a2a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,0.2); animation: ce3-tree2 22s ease-in-out infinite alternate 1s; }

@keyframes ce3-sky { 0%{ opacity:0.8 } 50%{ opacity:1 } 100%{ opacity:0.7 } }
@keyframes ce3-water { 0%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } 100%{ transform: translateY(0) } }
@keyframes ce3-boat1 { 0%,100%{ transform: rotate(0deg) } 50%{ transform: rotate(4deg) } }
@keyframes ce3-boat2 { 0%,100%{ transform: rotate(0deg) } 50%{ transform: rotate(-4deg) } }
@keyframes ce3-henri { 0%{ transform: rotate(-5deg) translateY(0) } 25%{ transform: rotate(-2deg) translateY(-2px) } 50%{ transform: rotate(-5deg) translateY(0) } 75%{ transform: rotate(-8deg) translateY(-2px) } 100%{ transform: rotate(-5deg) translateY(0) } }
@keyframes ce3-henriette { 0%{ transform: rotate(0deg) } 33%{ transform: rotate(4deg) } 66%{ transform: rotate(-2deg) } 100%{ transform: rotate(0deg) } }
@keyframes ce3-tree1 { 0%{ transform: rotate(-2deg) } 50%{ transform: rotate(2deg) } 100%{ transform: rotate(-2deg) } }
@keyframes ce3-tree2 { 0%{ transform: rotate(2deg) } 50%{ transform: rotate(-2deg) } 100%{ transform: rotate(2deg) } }

.scn-item-nightingale-wood {
  background: linear-gradient(180deg, #a4d3ee 0%, #c6e2ff 30%, #90c695 70%, #4a7a4a 100%),
              radial-gradient(ellipse at 50% 30%, #c6e2ff 0%, transparent 60%);
}
.scn-item-nightingale-wood .nw-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b0e0e6 0%, #e0f0ff 100%); animation: nw-sky 20s ease-in-out infinite alternate; }
.scn-item-nightingale-wood .nw-water { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #2e6a4e 0%, #5ba38a 40%, #8cc8b0 100%); border-radius: 10% 10% 0 0; animation: nw-water 12s ease-in-out infinite; }
.scn-item-nightingale-wood .nw-weir { position:absolute; bottom:38%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 0 0 20% 20%; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); animation: nw-weir 15s ease-in-out infinite; }
.scn-item-nightingale-wood .nw-trunk { position:absolute; bottom:10%; left:20%; width:6%; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,0.2); animation: nw-trunk 30s ease-in-out infinite; }
.scn-item-nightingale-wood .nw-branch { position:absolute; bottom:55%; left:22%; width:20%; height:3%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50%; transform-origin: left center; animation: nw-branch 8s ease-in-out infinite alternate; }
.scn-item-nightingale-wood .nw-bird { position:absolute; bottom:58%; left:28%; width:4%; height:4%; background: radial-gradient(circle, #5a3a2a 0%, #3a2212 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: nw-bird 3s ease-in-out infinite; }
.scn-item-nightingale-wood .nw-leaves { position:absolute; bottom:60%; left:20%; width:12%; height:18%; background: radial-gradient(circle at 30% 40%, #6a9a4a 0%, #3a6a2a 60%, transparent 100%); filter: blur(2px); animation: nw-leaves 9s ease-in-out infinite; }

@keyframes nw-sky { 0%{ opacity:0.8 } 50%{ opacity:1 } 100%{ opacity:0.7 } }
@keyframes nw-water { 0%{ transform: translateY(0) } 50%{ transform: translateY(-3px) } 100%{ transform: translateY(0) } }
@keyframes nw-weir { 0%{ transform: scaleY(1) } 50%{ transform: scaleY(1.03) } 100%{ transform: scaleY(1) } }
@keyframes nw-trunk { 0%{ transform: rotate(0deg) } 50%{ transform: rotate(1deg) } 100%{ transform: rotate(0deg) } }
@keyframes nw-branch { 0%{ transform: rotate(-10deg) } 100%{ transform: rotate(15deg) } }
@keyframes nw-bird { 0%{ transform: translateY(0) rotate(0deg) } 25%{ transform: translateY(-5px) rotate(-5deg) } 50%{ transform: translateY(0) rotate(0deg) } 75%{ transform: translateY(-5px) rotate(5deg) } 100%{ transform: translateY(0) rotate(0deg) } }
@keyframes nw-leaves { 0%{ transform: translateX(0) rotate(0deg) } 50%{ transform: translateX(2px) rotate(3deg) } 100%{ transform: translateX(0) rotate(0deg) } }

.scn-coco-farm-intro {
  background:
    linear-gradient(180deg, #e8d5b0 0%, #c9b08a 40%, #a58a6e 100%),
    radial-gradient(ellipse at 50% 100%, #b8987a 0%, transparent 70%);
}
.scn-coco-farm-intro .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #85c1e0 0%, #b0d4e8 50%, transparent 100%);
  animation: cfm-sky 15s ease-in-out infinite alternate;
}
.scn-coco-farm-intro .sun {
  position: absolute; top: 8%; left: 25%; width: 70px; height: 70px;
  background: radial-gradient(circle at 30% 30%, #fff6d4, #f7d68a 60%, #e8b04a 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 25px rgba(247,214,138,0.4);
  animation: cfm-sun 20s ease-in-out infinite alternate;
}
.scn-coco-farm-intro .trees {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 30%;
  background:
    linear-gradient(180deg, #3f5e2a 0%, #2c4520 100%) no-repeat 10% 0/ 40px 80%,
    linear-gradient(0deg, #2c4520, #1e3315) no-repeat 30% 0/ 35px 60%,
    linear-gradient(180deg, #3c5a28, #233a1a) no-repeat 55% 0/ 50px 90%,
    linear-gradient(0deg, #2a421d, #1b2d12) no-repeat 75% 0/ 30px 70%,
    linear-gradient(0deg, #355324, #1f3516) no-repeat 90% 0/ 45px 80%;
  background-size: auto; background-position: 10% 100%, 30% 100%, 55% 100%, 75% 100%, 90% 100%;
  animation: cfm-trees 8s ease-in-out infinite alternate;
}
.scn-coco-farm-intro .manor {
  position: absolute; bottom: 42%; left: 50%; width: 140px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8553d 0%, #a0402e 50%, #803020 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
.scn-coco-farm-intro .stable {
  position: absolute; bottom: 38%; left: 30%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #6b4a2e 0%, #4f3522 100%);
  border-radius: 0 0 6% 6%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.25);
  animation: cfm-stable 12s ease-in-out infinite;
}
.scn-coco-farm-intro .courtyard {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #b8977a 0%, #9a7c62 100%);
  border-radius: 30% 30% 0 0 / 80% 80% 0 0;
}
.scn-coco-farm-intro .path {
  position: absolute; bottom: 12%; left: 40%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #a8886a 0%, #8a6c52 100%);
  border-radius: 40%;
  filter: blur(2px);
  animation: cfm-path 6s ease-in-out infinite alternate;
}
@keyframes cfm-sky {
  0% { opacity: 0.9; background-position: 0 0; }
  50% { opacity: 1; background-position: 10% 5%; }
  100% { opacity: 0.85; background-position: -5% 0; }
}
@keyframes cfm-sun {
  0% { transform: translate(0,0) scale(1); box-shadow: 0 0 60px 20px rgba(247,214,138,0.3); }
  50% { transform: translate(8px,-10px) scale(1.05); box-shadow: 0 0 100px 30px rgba(247,214,138,0.5); }
  100% { transform: translate(-6px,4px) scale(0.97); box-shadow: 0 0 80px 25px rgba(247,214,138,0.4); }
}
@keyframes cfm-trees {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03) translateY(-2px); }
  100% { transform: scaleY(0.98); }
}
@keyframes cfm-stable {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.02) translateY(-1px); }
}
@keyframes cfm-path {
  0% { opacity: 0.7; transform: scaleX(1); }
  100% { opacity: 1; transform: scaleX(1.1); }
}

.scn-coco-old-horse {
  background:
    linear-gradient(180deg, #b0987a 0%, #7a664e 50%, #4c3b2a 100%),
    radial-gradient(ellipse at 50% 100%, #6a5540 0%, transparent 80%);
}
.scn-coco-old-horse .stable-back {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #5a4530 0px, #5a4530 4px, #4a3826 4px, #4a3826 8px);
  animation: coh-stable-bg 25s linear infinite;
}
.scn-coco-old-horse .horse {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0c8b8 0%, #b8a898 60%, #988878 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: inset 0 -8px 10px rgba(0,0,0,0.15);
  animation: coh-horse 10s ease-in-out infinite;
}
.scn-coco-old-horse .hay {
  position: absolute; bottom: 5%; left: 30%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #d4a86a 0%, #b8843e 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 40% 40%;
  filter: blur(3px);
  animation: coh-hay 8s ease-in-out infinite alternate;
}
.scn-coco-old-horse .door-light {
  position: absolute; top: 10%; left: 60%; width: 40px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, #fff0c0 0%, #e8c878 60%, transparent 100%);
  border-radius: 10%;
  box-shadow: 0 0 40px 10px rgba(232,200,120,0.3);
  animation: coh-door 14s ease-in-out infinite alternate;
}
.scn-coco-old-horse .zidore-figure {
  position: absolute; bottom: 20%; left: 18%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: coh-zidore 6s ease-in-out infinite;
}
@keyframes coh-stable-bg {
  0% { background-position: 0 0; }
  100% { background-position: 20px 0; }
}
@keyframes coh-horse {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scaleY(0.98) translateY(0); }
}
@keyframes coh-hay {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05) translateY(1px); }
  100% { opacity: 0.9; transform: scaleX(0.95) translateY(-1px); }
}
@keyframes coh-door {
  0% { opacity: 0.6; transform: scaleX(1); box-shadow: 0 0 30px 5px rgba(232,200,120,0.2); }
  50% { opacity: 0.9; transform: scaleX(1.05); box-shadow: 0 0 60px 15px rgba(232,200,120,0.4); }
  100% { opacity: 0.7; transform: scaleX(0.98); box-shadow: 0 0 40px 10px rgba(232,200,120,0.3); }
}
@keyframes coh-zidore {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(5px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(2px) translateY(1px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}

.scn-coco-zidore-hatred {
  background:
    linear-gradient(180deg, #c8b090 0%, #9a7a5e 40%, #6a5038 100%),
    radial-gradient(ellipse at 50% 0%, #e0ccb0 0%, transparent 70%);
}
.scn-coco-zidore-hatred .sky-tense {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffcc80 0%, #f0b060 50%, transparent 100%);
  animation: czh-sky 8s ease-in-out infinite alternate;
}
.scn-coco-zidore-hatred .barn-wall {
  position: absolute; bottom: 20%; left: 40%; width: 180px; height: 120px;
  background: linear-gradient(180deg, #6a4a2e 0%, #4f3522 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: 8px 0 12px -4px rgba(0,0,0,0.3);
  transform: skewX(-5deg);
  animation: czh-barn 12s ease-in-out infinite;
}
.scn-coco-zidore-hatred .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6a52 0%, #5a4a36 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
}
.scn-coco-zidore-hatred .zidore-thin {
  position: absolute; bottom: 15%; left: 20%; width: 16px; height: 60px;
  background: linear-gradient(180deg, #b85c3f 0%, #6a3a28 70%, #3a2010 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: czh-zidore 4s ease-in-out infinite;
}
.scn-coco-zidore-hatred .horse-shadow {
  position: absolute; bottom: 20%; left: 60%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #3a2a20 0%, #1e140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: czh-horse 10s ease-in-out infinite;
}
.scn-coco-zidore-hatred .switch {
  position: absolute; bottom: 30%; left: 25%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #4a3a20 0%, #2a1e10 100%);
  border-radius: 20%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: czh-switch 3s ease-in-out infinite alternate;
}
.scn-coco-zidore-hatred .shadow-harsh {
  position: absolute; bottom: 10%; left: 15%; width: 70px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4), transparent);
  filter: blur(2px);
  animation: czh-shadow 7s ease-in-out infinite;
}
@keyframes czh-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes czh-barn {
  0% { transform: skewX(-5deg) translateY(0); }
  50% { transform: skewX(-5deg) translateY(-3px); }
  100% { transform: skewX(-5deg) translateY(0); }
}
@keyframes czh-zidore {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(3deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(4px) translateY(1px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes czh-horse {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.03) translateX(-2px); }
  100% { transform: scaleX(0.97) translateX(2px); }
}
@keyframes czh-switch {
  0% { transform: rotate(15deg); }
  50% { transform: rotate(20deg) scaleY(1.05); }
  100% { transform: rotate(10deg); }
}
@keyframes czh-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 0.9; transform: scaleX(1.1); }
  100% { opacity: 0.7; transform: scaleX(0.95); }
}

.scn-coco-torment {
  background:
    linear-gradient(180deg, #4a3e28 0%, #2a2218 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 100%, #3a3020 0%, transparent 70%);
}
.scn-coco-torment .sky-dark {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a30 60%, transparent 100%);
  animation: ctm-sky 25s linear infinite;
}
.scn-coco-torment .sun-harsh {
  position: absolute; top: 5%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle at 30% 30%, #fff6d4, #e8c878 60%, #b89850 100%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px rgba(232,200,120,0.2);
  animation: ctm-sun 5s ease-in-out infinite alternate;
}
.scn-coco-torment .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 30% 30% 0 0 / 80% 80% 0 0;
  animation: ctm-field 12s ease-in-out infinite;
}
.scn-coco-torment .horse-fig {
  position: absolute; bottom: 15%; left: 35%; width: 90px; height: 70px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: ctm-horse 8s ease-in-out infinite;
}
.scn-coco-torment .zidore-fig {
  position: absolute; bottom: 10%; left: 15%; width: 18px; height: 55px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a100e 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ctm-zidore 4s ease-in-out infinite;
}
.scn-coco-torment .switch-rod {
  position: absolute; bottom: 25%; left: 18%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #4a3a20 0%, #2a1e0a 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: ctm-switch 2s ease-in-out infinite;
}
.scn-coco-torment .shadow-long {
  position: absolute; bottom: 5%; left: 10%; width: 120px; height: 15px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6), transparent);
  filter: blur(3px);
  animation: ctm-shadow 6s ease-in-out infinite alternate;
}
@keyframes ctm-sky {
  0% { background-position: 0 0; }
  50% { background-position: 10% 5%; }
  100% { background-position: -10% 0; }
}
@keyframes ctm-sun {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.08); opacity: 0.95; }
  100% { transform: scale(0.95); opacity: 0.7; }
}
@keyframes ctm-field {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(0.98); opacity: 0.85; }
}
@keyframes ctm-horse {
  0% { filter: blur(3px); transform: translateX(0); }
  50% { filter: blur(4px); transform: translateX(-4px); }
  100% { filter: blur(2px); transform: translateX(4px); }
}
@keyframes ctm-zidore {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(4deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(5px) translateY(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ctm-switch {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(25deg) scaleY(1.1); }
  100% { transform: rotate(5deg); }
}
@keyframes ctm-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.15); }
  100% { opacity: 0.5; transform: scaleX(0.9); }
}

.scn-country-excursion-inn-arrival {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0ff 30%, #fff8dc 60%, #f0e68c 100%),
    radial-gradient(ellipse at 70% 40%, #fff8dc 0%, transparent 60%);
}
.scn-country-excursion-inn-arrival .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #87ceeb 0%, #b0dff0 100%); animation:cia-sky 20s ease-in-out infinite alternate; }
.scn-country-excursion-inn-arrival .field { position:absolute; bottom:0; left:0; right:0; height:60%; background:linear-gradient(180deg, #7cfc00 0%, #228b22 100%); border-radius:20% 20% 0 0; box-shadow:inset 0 12px 30px rgba(0,80,0,.4); animation:cia-field 15s ease-in-out infinite alternate; }
.scn-country-excursion-inn-arrival .inn-wall { position:absolute; bottom:28%; left:30%; width:35%; height:40%; background:linear-gradient(180deg, #ffffff 0%, #f5f5dc 100%); border-radius:5% 5% 0 0; box-shadow:0 4px 12px rgba(0,0,0,.15); }
.scn-country-excursion-inn-arrival .inn-roof { position:absolute; bottom:66%; left:28%; width:39%; height:10%; background:linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:40% 40% 0 0; clip-path:polygon(10% 100%, 50% 0%, 90% 100%); animation:cia-roof 8s ease-in-out infinite alternate; }
.scn-country-excursion-inn-arrival .door-glow { position:absolute; bottom:34%; left:44%; width:8%; height:20%; background:radial-gradient(ellipse at 50% 50%, #ffd700 0%, #ffa500 70%, transparent 100%); border-radius:10% 10% 5% 5%; box-shadow:0 0 30px 15px #ffa500; animation:cia-door 4s ease-in-out infinite alternate; }
.scn-country-excursion-inn-arrival .workman-a { position:absolute; bottom:30%; left:38%; width:4%; height:12%; background:linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform:scaleX(0.6); animation:cia-work 6s ease-in-out infinite; }
.scn-country-excursion-inn-arrival .workman-b { position:absolute; bottom:30%; left:48%; width:4%; height:12%; background:linear-gradient(180deg, #3a3a3a 0%, #242424 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform:scaleX(0.6); animation:cia-work 6s ease-in-out infinite 2s; }
.scn-country-excursion-inn-arrival .cart { position:absolute; bottom:20%; left:60%; width:18%; height:14%; background:linear-gradient(180deg, #8b4513 0%, #654321 100%); border-radius:10% 10% 20% 20%; box-shadow:0 4px 8px rgba(0,0,0,.3); animation:cia-cart 12s ease-in-out infinite alternate; }
.scn-country-excursion-inn-arrival .cart-horse { position:absolute; bottom:22%; left:74%; width:10%; height:16%; background:linear-gradient(180deg, #d2691e 0%, #b8860b 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform:scaleX(0.8); animation:cia-horse 4s ease-in-out infinite; }
@keyframes cia-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cia-field { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes cia-roof { 0% { transform:rotate(-1deg) } 50% { transform:rotate(1deg) } 100% { transform:rotate(0) } }
@keyframes cia-door { 0% { opacity:.7; box-shadow:0 0 20px 8px #ffa500 } 50% { opacity:1; box-shadow:0 0 40px 20px #ffd700 } 100% { opacity:.8; box-shadow:0 0 25px 10px #ffa500 } }
@keyframes cia-work { 0% { transform:scaleX(0.6) translateY(0) rotate(-2deg) } 25% { transform:scaleX(0.65) translateY(-1px) rotate(0) } 50% { transform:scaleX(0.6) translateY(0) rotate(2deg) } 75% { transform:scaleX(0.55) translateY(-1px) rotate(0) } 100% { transform:scaleX(0.6) translateY(0) rotate(-2deg) } }
@keyframes cia-cart { 0% { transform:translateX(0) } 50% { transform:translateX(-2px) } 100% { transform:translateX(2px) } }
@keyframes cia-horse { 0% { transform:scaleX(0.8) translateY(0) rotate(-3deg) } 50% { transform:scaleX(0.8) translateY(-2px) rotate(0) } 100% { transform:scaleX(0.8) translateY(0) rotate(3deg) } }

.scn-country-excursion-swings {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0ff 30%, #f0e68c 70%, #90ee90 100%),
    radial-gradient(ellipse at 50% 80%, #90ee90 0%, transparent 60%);
}
.scn-country-excursion-swings .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #87ceeb 0%, #b0dff0 100%); animation:csw-sky 25s ease-in-out infinite alternate; }
.scn-country-excursion-swings .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background:linear-gradient(180deg, #98fb98 0%, #228b22 100%); border-radius:30% 30% 0 0; box-shadow:inset 0 10px 25px rgba(0,80,0,.3); }
.scn-country-excursion-swings .swing-frame { position:absolute; bottom:30%; left:30%; width:40%; height:45%; background:linear-gradient(180deg, #8b4513 0%, #5c3317 100%); clip-path:polygon(10% 100%, 20% 0%, 30% 0%, 40% 100%, 60% 100%, 70% 0%, 80% 0%, 90% 100%); border-radius:5% 5% 0 0; animation:csw-frame 10s ease-in-out infinite alternate; }
.scn-country-excursion-swings .rope-left { position:absolute; bottom:48%; left:38%; width:2%; height:20%; background:linear-gradient(180deg, #d2b48c 0%, #a0885a 100%); border-radius:4px; transform-origin:top center; animation:csw-rope 1.5s ease-in-out infinite; }
.scn-country-excursion-swings .rope-right { position:absolute; bottom:48%; left:47%; width:2%; height:20%; background:linear-gradient(180deg, #d2b48c 0%, #a0885a 100%); border-radius:4px; transform-origin:top center; animation:csw-rope 1.5s ease-in-out infinite 0.1s; }
.scn-country-excursion-swings .seat { position:absolute; bottom:42%; left:36%; width:12%; height:3%; background:#8b4513; border-radius:20%; box-shadow:0 2px 4px rgba(0,0,0,.4); animation:csw-seat 1.5s ease-in-out infinite; }
.scn-country-excursion-swings .figure-swing { position:absolute; bottom:44%; left:39%; width:8%; height:14%; background:linear-gradient(180deg, #ffe4e1 0%, #fbbbb5 100%); border-radius:50% 50% 40% 40% / 60% 60% 35% 35%; transform-origin:bottom center; animation:csw-fig-swing 2s ease-in-out infinite; }
.scn-country-excursion-swings .figure-push { position:absolute; bottom:35%; left:52%; width:7%; height:16%; background:linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius:45% 45% 40% 40% / 65% 65% 35% 35%; transform-origin:bottom center; animation:csw-fig-push 2s ease-in-out infinite; }
.scn-country-excursion-swings .shadow { position:absolute; bottom:22%; left:30%; width:40%; height:6%; background:rgba(0,0,0,.15); border-radius:50%; filter:blur(6px); animation:csw-shadow 2s ease-in-out infinite; }
@keyframes csw-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes csw-frame { 0% { transform:rotate(-3deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(0) } }
@keyframes csw-rope { 0% { transform:rotate(0) } 50% { transform:rotate(15deg) } 100% { transform:rotate(0) } }
@keyframes csw-seat { 0% { transform:translateX(0) } 50% { transform:translateX(8px) } 100% { transform:translateX(0) } }
@keyframes csw-fig-swing { 0% { transform:rotate(-10deg) translateY(0) } 25% { transform:rotate(0) translateY(-3px) } 50% { transform:rotate(10deg) translateY(0) } 75% { transform:rotate(0) translateY(-3px) } 100% { transform:rotate(-10deg) translateY(0) } }
@keyframes csw-fig-push { 0% { transform:translateX(0) rotate(-5deg) } 50% { transform:translateX(-6px) rotate(0) } 100% { transform:translateX(0) rotate(5deg) } }
@keyframes csw-shadow { 0% { width:40%; opacity:.12 } 50% { width:35%; opacity:.2 } 100% { width:40%; opacity:.12 } }

.scn-country-excursion-luncheon-order {
  background:
    linear-gradient(180deg, #f0e68c 0%, #ffd700 30%, #fff8dc 60%, #98fb98 100%),
    radial-gradient(ellipse at 50% 70%, #98fb98 0%, transparent 70%);
}
.scn-country-excursion-luncheon-order .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #87ceeb 0%, #b0e0ff 100%); animation:clo-sky 18s ease-in-out infinite alternate; }
.scn-country-excursion-luncheon-order .tablecloth { position:absolute; bottom:15%; left:20%; width:60%; height:45%; background:linear-gradient(180deg, #ffffff 0%, #f5f5dc 100%); border-radius:5% 5% 30% 30% / 10% 10% 40% 40%; box-shadow:0 8px 20px rgba(0,0,0,.1); transform:perspective(200px) rotateX(5deg); animation:clo-table 12s ease-in-out infinite alternate; }
.scn-country-excursion-luncheon-order .plate-fish { position:absolute; bottom:35%; left:35%; width:10%; height:8%; background:radial-gradient(circle, #c0c0c0 0%, #a0a0a0 100%); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.2); animation:clo-plate-fish 8s ease-in-out infinite; }
.scn-country-excursion-luncheon-order .plate-fish::after { content:''; position:absolute; top:20%; left:20%; width:60%; height:60%; background:radial-gradient(circle, #d2b48c 0%, #a0522d 100%); border-radius:50%; clip-path:ellipse(60% 30% at 50% 50%); animation:clo-fish 4s ease-in-out infinite alternate; }
.scn-country-excursion-luncheon-order .plate-rabbit { position:absolute; bottom:35%; left:50%; width:10%; height:8%; background:radial-gradient(circle, #c0c0c0 0%, #a0a0a0 100%); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.2); animation:clo-plate-rabbit 8s ease-in-out infinite; }
.scn-country-excursion-luncheon-order .plate-rabbit::after { content:''; position:absolute; top:15%; left:25%; width:50%; height:70%; background:radial-gradient(circle at 60% 40%, #f5deb3 0%, #d2b48c 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; clip-path:polygon(20% 40%, 80% 40%, 70% 100%, 30% 100%); animation:clo-rabbit 5s ease-in-out infinite alternate; }
.scn-country-excursion-luncheon-order .glass-beer { position:absolute; bottom:38%; left:60%; width:4%; height:10%; background:linear-gradient(180deg, transparent 0%, #8b4513 30%, transparent 100%); clip-path:polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation:clo-glass 3s ease-in-out infinite; }
.scn-country-excursion-luncheon-order .glass-wine { position:absolute; bottom:38%; left:70%; width:3%; height:12%; background:linear-gradient(180deg, transparent 0%, #722f37 25%, transparent 100%); clip-path:polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation:clo-glass 3s ease-in-out infinite 1s; }
.scn-country-excursion-luncheon-order .servant { position:absolute; bottom:12%; left:18%; width:6%; height:18%; background:linear-gradient(180deg, #ffffff 0%, #f0e68c 100%); border-radius:45% 45% 40% 40% / 65% 65% 35% 35%; animation:clo-servant 10s ease-in-out infinite alternate; }
.scn-country-excursion-luncheon-order .family-group { position:absolute; bottom:12%; left:40%; width:20%; height:15%; background:linear-gradient(180deg, #ffe4e1 0%, #e0c8c0 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow:0 -4px 8px rgba(0,0,0,.1); animation:clo-family 12s ease-in-out infinite alternate; }
.scn-country-excursion-luncheon-order .parasol { position:absolute; bottom:45%; left:55%; width:15%; height:12%; background:radial-gradient(ellipse at 50% 100%, #ffa500 0%, #ff8c00 100%); border-radius:50% 50% 0 0; box-shadow:0 -2px 6px rgba(0,0,0,.1); animation:clo-parasol 6s ease-in-out infinite; }
@keyframes clo-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes clo-table { 0% { transform:perspective(200px) rotateX(5deg) } 50% { transform:perspective(200px) rotateX(3deg) } 100% { transform:perspective(200px) rotateX(5deg) } }
@keyframes clo-plate-fish { 0%,100% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(2deg) } }
@keyframes clo-fish { 0% { transform:rotate(0) scale(1) } 50% { transform:rotate(5deg) scale(1.02) } 100% { transform:rotate(0) scale(1) } }
@keyframes clo-plate-rabbit { 0%,100% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(-2deg) } }
@keyframes clo-rabbit { 0% { transform:rotate(0) scale(1) } 50% { transform:rotate(-3deg) scale(1.02) } 100% { transform:rotate(0) scale(1) } }
@keyframes clo-glass { 0%,100% { transform:rotate(0) translateY(0) } 50% { transform:rotate(2deg) translateY(-1px) } }
@keyframes clo-servant { 0% { transform:translateX(0) } 50% { transform:translateX(8px) } 100% { transform:translateX(0) } }
@keyframes clo-family { 0% { transform:scale(1) } 50% { transform:scale(1.01) } 100% { transform:scale(1) } }
@keyframes clo-parasol { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-5deg) } }

.scn-item-canoes-shed {
  background:
    linear-gradient(180deg, #3a2e1a 0%, #5a4a2a 30%, #7a6a3a 60%, #4a3a1a 100%),
    radial-gradient(ellipse at 50% 30%, #7a6a3a 0%, transparent 70%);
}
.scn-item-canoes-shed .shed-wall { position:absolute; inset:0; background:linear-gradient(90deg, #5a4a2a 0%, #7a6a3a 50%, #5a4a2a 100%); background-size:100% 100%; }
.scn-item-canoes-shed .shed-beam { position:absolute; top:10%; left:0; right:0; height:5%; background:linear-gradient(180deg, #8b4513 0%, #5c3317 100%); box-shadow:0 4px 8px rgba(0,0,0,.5); animation:ics-beam 15s ease-in-out infinite alternate; }
.scn-item-canoes-shed .door-light { position:absolute; bottom:0; left:20%; width:60%; height:60%; background:radial-gradient(ellipse at 50% 50%, #ffd700 0%, #f0e68c 40%, transparent 100%); opacity:.6; animation:ics-doorlight 8s ease-in-out infinite alternate; }
.scn-item-canoes-shed .canoe-left { position:absolute; bottom:25%; left:25%; width:20%; height:40%; background:linear-gradient(180deg, #4a3010 0%, #2a1a08 100%); border-radius:50% 50% 20% 20% / 60% 60% 10% 10%; transform:rotate(-5deg); box-shadow:0 4px 12px rgba(0,0,0,.6); animation:ics-canoe 6s ease-in-out infinite; }
.scn-item-canoes-shed .canoe-right { position:absolute; bottom:25%; right:25%; width:20%; height:40%; background:linear-gradient(180deg, #4a3010 0%, #2a1a08 100%); border-radius:50% 50% 20% 20% / 60% 60% 10% 10%; transform:rotate(5deg); box-shadow:0 4px 12px rgba(0,0,0,.6); animation:ics-canoe 6s ease-in-out infinite -2s; }
.scn-item-canoes-shed .canoe-reflection { position:absolute; bottom:18%; left:22%; width:56%; height:15%; background:linear-gradient(180deg, #6a5a3a 0%, transparent 100%); border-radius:50%; filter:blur(4px); opacity:.4; animation:ics-reflection 10s ease-in-out infinite alternate; }
.scn-item-canoes-shed .straw-bale { position:absolute; bottom:6%; left:10%; width:12%; height:8%; background:linear-gradient(180deg, #daa520 0%, #b8860b 100%); border-radius:10% 10% 30% 30%; box-shadow:0 2px 4px rgba(0,0,0,.4); animation:ics-straw 20s ease-in-out infinite alternate; }
.scn-item-canoes-shed .dust-motes { position:absolute; top:20%; left:0; right:0; height:100%; background:radial-gradient(circle at 30% 40%, rgba(255,255,255,.15) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(255,255,255,.1) 0%, transparent 40%); filter:blur(3px); animation:ics-dust 30s linear infinite; }
@keyframes ics-beam { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes ics-doorlight { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.6 } }
@keyframes ics-canoe { 0% { transform:rotate(-5deg) } 50% { transform:rotate(-3deg) translateY(-2px) } 100% { transform:rotate(-5deg) } }
@keyframes ics-reflection { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }
@keyframes ics-straw { 0% { transform:scale(1) } 50% { transform:scale(1.02) } 100% { transform:scale(1) } }
@keyframes ics-dust { 0% { transform:translateY(0) } 100% { transform:translateY(-5%) } }

/* flower-carnival-evening */
.scn-flower-carnival-evening {
  background: linear-gradient(180deg, #2e1b4e 0%, #4c2f5e 35%, #6a4a5a 60%, #8a6a4a 100%), radial-gradient(ellipse at 30% 20%, #f3c68a 0%, transparent 60%);
}
.scn-flower-carnival-evening .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #2e1b4e 0%, #4c2f5e 40%, transparent 100%);
  animation: fce-sky 12s ease-in-out infinite alternate;
}
.scn-flower-carnival-evening .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a3a5a 50%, #0a2a4a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  animation: fce-sea 20s ease-in-out infinite alternate;
}
.scn-flower-carnival-evening .mountains {
  position: absolute; bottom: 45%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  filter: blur(2px);
  animation: fce-mountains 8s ease-in-out infinite alternate;
}
.scn-flower-carnival-evening .cliff {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-flower-carnival-evening .figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fce-figure-left 6s ease-in-out infinite;
}
.scn-flower-carnival-evening .figure-right {
  position: absolute; bottom: 20%; right: 25%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fce-figure-right 6s ease-in-out infinite reverse;
}
.scn-flower-carnival-evening .petal-left {
  position: absolute; bottom: 50%; left: 20%; width: 6px; height: 6px;
  background: radial-gradient(circle, #e8a040 0%, #c06020 100%);
  border-radius: 50%;
  animation: fce-petal-left 10s ease-in-out infinite;
}
.scn-flower-carnival-evening .petal-right {
  position: absolute; bottom: 50%; right: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0b060 0%, #d07030 100%);
  border-radius: 50%;
  animation: fce-petal-right 12s ease-in-out infinite;
}

@keyframes fce-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes fce-sea { 0% { background-position: 0% 0%; } 50% { background-position: 5% 2%; } 100% { background-position: 0% 0%; } }
@keyframes fce-mountains { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes fce-figure-left { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(-3deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes fce-figure-right { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-4px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes fce-petal-left { 0% { transform: translate(0, 0) scale(1); opacity: 0.6; } 25% { transform: translate(10px, -20px) scale(1.2); opacity: 1; } 50% { transform: translate(20px, -40px) scale(0.8); opacity: 0.8; } 75% { transform: translate(30px, -60px) scale(1.1); opacity: 0.5; } 100% { transform: translate(40px, -80px) scale(0.9); opacity: 0; } }
@keyframes fce-petal-right { 0% { transform: translate(0, 0) scale(1); opacity: 0.7; } 25% { transform: translate(-10px, -15px) scale(0.9); opacity: 1; } 50% { transform: translate(-20px, -30px) scale(1.3); opacity: 0.6; } 75% { transform: translate(-30px, -45px) scale(1); opacity: 0.4; } 100% { transform: translate(-40px, -60px) scale(0.8); opacity: 0; } }

/* flower-carnival-conversation */
.scn-flower-carnival-conversation {
  background: linear-gradient(180deg, #2e1b4e 0%, #4c2f5e 35%, #6a4a5a 60%, #8a6a4a 100%), radial-gradient(ellipse at 50% 100%, #4a2a3a 0%, transparent 60%);
}
.scn-flower-carnival-conversation .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2e1b4e 0%, #4c2f5e 40%, transparent 100%);
  animation: fcc-sky 15s ease-in-out infinite alternate;
}
.scn-flower-carnival-conversation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-flower-carnival-conversation .bench {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-flower-carnival-conversation .figure-left {
  position: absolute; bottom: 25%; left: 38%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcc-figure-left 5s ease-in-out infinite;
}
.scn-flower-carnival-conversation .figure-right {
  position: absolute; bottom: 25%; right: 38%; width: 18px; 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: fcc-figure-right 5s ease-in-out infinite reverse;
}
.scn-flower-carnival-conversation .lantern {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0c060 0%, #d08030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 4px rgba(240,192,96,0.6);
  animation: fcc-lantern 3s ease-in-out infinite alternate;
}
.scn-flower-carnival-conversation .lantern-glow {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 40px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, rgba(240,192,96,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: fcc-glow 4s ease-in-out infinite alternate;
}

@keyframes fcc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes fcc-figure-left { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(-2deg); } 66% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes fcc-figure-right { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2px) rotate(2deg); } 66% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes fcc-lantern { 0% { box-shadow: 0 0 12px 2px rgba(240,192,96,0.5); } 50% { box-shadow: 0 0 24px 6px rgba(240,192,96,0.8); } 100% { box-shadow: 0 0 16px 4px rgba(240,192,96,0.6); } }
@keyframes fcc-glow { 0% { opacity: 0.4; transform: translate(-50%, 50%) scale(1); } 50% { opacity: 0.7; transform: translate(-50%, 50%) scale(1.2); } 100% { opacity: 0.5; transform: translate(-50%, 50%) scale(0.9); } }

/* flower-carnival-discussion-love */
.scn-flower-carnival-discussion-love {
  background: linear-gradient(180deg, #2a1a3a 0%, #4a2a5a 30%, #6a3a4a 60%, #8a5a3a 100%), radial-gradient(ellipse at 40% 30%, #f0b080 0%, transparent 50%);
}
.scn-flower-carnival-discussion-love .carriage-body {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: fcd-rock 6s ease-in-out infinite;
}
.scn-flower-carnival-discussion-love .window-frame {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border: 3px solid #3a2a1a;
  border-radius: 4px;
}
.scn-flower-carnival-discussion-love .figure-left {
  position: absolute; bottom: 28%; left: 38%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fcd-figures 4s ease-in-out infinite;
}
.scn-flower-carnival-discussion-love .figure-right {
  position: absolute; bottom: 28%; right: 38%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fcd-figures 4s ease-in-out infinite reverse;
}
.scn-flower-carnival-discussion-love .coachman {
  position: absolute; bottom: 18%; 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: fcd-coachman 8s ease-in-out infinite;
}
.scn-flower-carnival-discussion-love .lantern {
  position: absolute; bottom: 35%; left: 55%; width: 8px; height: 10px;
  background: radial-gradient(circle, #f0b060 0%, #c08030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(240,176,96,0.6);
  animation: fcd-lantern 2s ease-in-out infinite alternate;
}
.scn-flower-carnival-discussion-love .lantern-glow {
  position: absolute; bottom: 30%; left: 55%; width: 50px; height: 50px;
  transform: translate(-30%, 50%);
  background: radial-gradient(circle, rgba(240,176,96,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: fcd-glow 3s ease-in-out infinite alternate;
}

@keyframes fcd-rock { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes fcd-figures { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(-2deg); } 66% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(1px) rotate(1deg); } }
@keyframes fcd-coachman { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fcd-lantern { 0% { box-shadow: 0 0 16px 4px rgba(240,176,96,0.5); } 50% { box-shadow: 0 0 28px 8px rgba(240,176,96,0.9); } 100% { box-shadow: 0 0 20px 6px rgba(240,176,96,0.6); } }
@keyframes fcd-glow { 0% { opacity: 0.3; transform: translate(-30%, 50%) scale(1); } 50% { opacity: 0.7; transform: translate(-30%, 50%) scale(1.2); } 100% { opacity: 0.5; transform: translate(-30%, 50%) scale(0.8); } }

/* flower-carnival-servant-love */
.scn-flower-carnival-servant-love {
  background: linear-gradient(180deg, #2a1a3a 0%, #4a2a5a 30%, #6a3a4a 60%, #8a5a3a 100%), radial-gradient(ellipse at 60% 80%, #f0b080 0%, transparent 50%);
}
.scn-flower-carnival-servant-love .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1a3a 0%, #4a2a5a 50%, transparent 100%);
  animation: fcs-sky 14s ease-in-out infinite alternate;
}
.scn-flower-carnival-servant-love .carriage-side {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 5% 5% 3% 3%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.6);
  animation: fcs-rock 7s ease-in-out infinite;
}
.scn-flower-carnival-servant-love .wheel {
  position: absolute; bottom: 10%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #3a2a1a 0%, #1a0a0a 70%);
  border-radius: 50%;
  border: 4px solid #2a1a0a;
  animation: fcs-wheel 12s linear infinite;
}
.scn-flower-carnival-servant-love .window {
  position: absolute; bottom: 28%; left: 55%; width: 36px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border: 2px solid #2a1a0a;
  border-radius: 4px;
}
.scn-flower-carnival-servant-love .figure-sitting {
  position: absolute; bottom: 26%; left: 50%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fcs-sitting 5s ease-in-out infinite;
}
.scn-flower-carnival-servant-love .figure-standing {
  position: absolute; bottom: 26%; right: 45%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fcs-standing 5s ease-in-out infinite reverse;
}
.scn-flower-carnival-servant-love .servant-bowing {
  position: absolute; bottom: 15%; left: 15%; width: 12px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcs-bow 6s ease-in-out infinite;
}
.scn-flower-carnival-servant-love .lantern {
  position: absolute; bottom: 35%; left: 35%; width: 8px; height: 10px;
  background: radial-gradient(circle, #f0b060 0%, #c08030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(240,176,96,0.6);
  animation: fcs-lantern 2.5s ease-in-out infinite alternate;
}

@keyframes fcs-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fcs-rock { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes fcs-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes fcs-sitting { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(-2deg); } 66% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(1px) rotate(1deg); } }
@keyframes fcs-standing { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2px) rotate(2deg); } 66% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes fcs-bow { 0% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes fcs-lantern { 0% { box-shadow: 0 0 14px 3px rgba(240,176,96,0.5); } 50% { box-shadow: 0 0 26px 7px rgba(240,176,96,0.9); } 100% { box-shadow: 0 0 18px 5px rgba(240,176,96,0.6); } }

/* dead-woman-priest */
.scn-dead-woman-priest {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #0a0a0a 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 60%);
}
.scn-dead-woman-priest .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  animation: dwp-bg 8s ease-in-out infinite alternate;
}
.scn-dead-woman-priest .door {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-left: 1px solid rgba(255,255,200,.2); border-radius: 2px;
  box-shadow: 0 0 20px rgba(255,220,150,.1); animation: dwp-door 8s ease-in-out infinite;
}
.scn-dead-woman-priest .figure-left,
.scn-dead-woman-priest .figure-right {
  position: absolute; bottom: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: dwp-breathe 4s ease-in-out infinite;
}
.scn-dead-woman-priest .figure-left { left: 30%; }
.scn-dead-woman-priest .figure-right { right: 30%; animation-delay: 0.5s; }
.scn-dead-woman-priest .candle {
  position: absolute; bottom: 20%; left: 20%; width: 6px; height: 18px;
  background: #8a6a3a; border-radius: 2px; transform: translateX(-50%);
}
.scn-dead-woman-priest .candle-glow {
  position: absolute; bottom: calc(20% + 18px); left: 20%; width: 20px; height: 20px;
  margin-left: -10px; background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  animation: dwp-flicker 2s ease-in-out infinite;
}
@keyframes dwp-bg { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes dwp-door { 0%,100% { box-shadow: 0 0 15px rgba(255,220,150,.05) } 50% { box-shadow: 0 0 30px rgba(255,220,150,.2) } }
@keyframes dwp-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes dwp-flicker { 0% { opacity: .7; transform: scale(1) } 25% { opacity: 1; transform: scale(1.1) } 50% { opacity: .8; transform: scale(0.95) } 75% { opacity: .9; transform: scale(1.05) } 100% { opacity: .7; transform: scale(1) } }

/* dead-woman-memories */
.scn-dead-woman-memories {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 40%, #0a0a0a 100%), radial-gradient(ellipse at 20% 80%, #2a2a1a 0%, transparent 50%);
}
.scn-dead-woman-memories .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%);
  animation: dwm-bg 12s ease-in-out infinite alternate;
}
.scn-dead-woman-memories .window {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border: 2px solid #3a2a1a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,220,150,.1), 0 0 10px rgba(200,220,150,.05);
  animation: dwm-window 6s ease-in-out infinite;
}
.scn-dead-woman-memories .clock {
  position: absolute; top: 20%; right: 15%; width: 30px; height: 30px;
  border-radius: 50%; background: #4a3a2a; border: 2px solid #5a4a3a;
  box-shadow: 0 0 8px rgba(0,0,0,.6);
}
.scn-dead-woman-memories .clock::after {
  content: ''; position: absolute; bottom: 50%; left: 50%; width: 2px; height: 12px;
  background: #2a1a0a; transform-origin: bottom center;
  animation: dwm-tick 2s ease-in-out infinite;
}
.scn-dead-woman-memories .figure-left,
.scn-dead-woman-memories .figure-right {
  position: absolute; bottom: 18%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: dwm-sway 5s ease-in-out infinite;
}
.scn-dead-woman-memories .figure-left { left: 25%; }
.scn-dead-woman-memories .figure-right { right: 25%; animation-delay: 1s; }
.scn-dead-woman-memories .bed {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10px 10px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.5);
}
.scn-dead-woman-memories .dust-1,
.scn-dead-woman-memories .dust-2 {
  position: absolute; width: 6px; height: 6px;
  background: rgba(200,200,150,.3); border-radius: 50%;
  filter: blur(2px); animation: dwm-drift 20s linear infinite;
}
.scn-dead-woman-memories .dust-1 { top: 30%; left: 40%; animation-delay: 0s; }
.scn-dead-woman-memories .dust-2 { top: 50%; left: 60%; animation-delay: 10s; }
@keyframes dwm-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes dwm-window { 0%,100% { box-shadow: inset 0 0 20px rgba(200,220,150,.05), 0 0 10px rgba(200,220,150,.02) } 50% { box-shadow: inset 0 0 40px rgba(200,220,150,.2), 0 0 20px rgba(200,220,150,.1) } }
@keyframes dwm-tick { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes dwm-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes dwm-drift { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-20px) translateX(10px) } 100% { transform: translateY(0) translateX(0) } }

/* dead-woman-letters */
.scn-dead-woman-letters {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #0a0a0a 100%), radial-gradient(ellipse at 50% 60%, #2a2a1a 0%, transparent 50%);
}
.scn-dead-woman-letters .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%);
  animation: dwl-bg 10s ease-in-out infinite alternate;
}
.scn-dead-woman-letters .lamp {
  position: absolute; bottom: 25%; left: 20%; width: 8px; height: 30px;
  background: #5a3a2a; border-radius: 2px; transform: translateX(-50%);
  box-shadow: 0 0 15px rgba(255,200,100,.2);
}
.scn-dead-woman-letters .lamp::after {
  content: ''; position: absolute; top: -10px; left: -4px; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, transparent 60%);
  animation: dwl-lamp 3s ease-in-out infinite;
}
.scn-dead-woman-letters .figure-left,
.scn-dead-woman-letters .figure-right {
  position: absolute; bottom: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: dwl-bow 6s ease-in-out infinite;
}
.scn-dead-woman-letters .figure-left { left: 35%; animation-delay: 0.3s; }
.scn-dead-woman-letters .figure-right { right: 35%; animation-delay: 0.8s; }
.scn-dead-woman-letters .memory-1,
.scn-dead-woman-letters .memory-2 {
  position: absolute; width: 12px; height: 16px;
  background: linear-gradient(180deg, rgba(200,180,150,.4) 0%, rgba(150,130,100,.2) 100%);
  border-radius: 2px; animation: dwl-float 15s ease-in-out infinite;
}
.scn-dead-woman-letters .memory-1 { top: 35%; left: 60%; animation-delay: 0s; }
.scn-dead-woman-letters .memory-2 { top: 45%; left: 50%; animation-delay: 7s; }
@keyframes dwl-bg { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes dwl-lamp { 0%,100% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } }
@keyframes dwl-bow { 0% { transform: rotate(0deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(0deg) } }
@keyframes dwl-float { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-30px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }

/* item-letters-mother */
.scn-item-letters-mother {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #0a0a0a 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-item-letters-mother .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  animation: ilm-bg 8s ease-in-out infinite alternate;
}
.scn-item-letters-mother .nun {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  animation: ilm-nod 6s ease-in-out infinite;
}
.scn-item-letters-mother .nun::before {
  content: ''; position: absolute; top: -10px; left: 50%; width: 20px; height: 20px;
  margin-left: -10px; background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50%;
}
.scn-item-letters-mother .letters {
  position: absolute; top: 40%; left: 30%; width: 14px; height: 18px;
  background: rgba(200,180,160,.3); border: 1px solid rgba(200,180,160,.2);
  border-radius: 2px; animation: ilm-float 12s ease-in-out infinite;
}
.scn-item-letters-mother .coffin {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10px 10px 0 0; box-shadow: 0 -4px 15px rgba(0,0,0,.7);
}
.scn-item-letters-mother .candle {
  position: absolute; bottom: 10%; left: 20%; width: 6px; height: 20px;
  background: #8a6a3a; border-radius: 2px;
  box-shadow: 0 0 20px rgba(255,200,100,.3); animation: ilm-flicker 2.5s ease-in-out infinite;
}
@keyframes ilm-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes ilm-nod { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ilm-float { 0% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(-20px) rotate(10deg) } 100% { transform: translateY(0) rotate(-10deg) } }
@keyframes ilm-flicker { 0%,100% { opacity: .7; box-shadow: 0 0 15px rgba(255,200,100,.2) } 50% { opacity: 1; box-shadow: 0 0 30px rgba(255,200,100,.5) } }

.scn-country-excursion-lunch-seating {
  background: linear-gradient(180deg, #b3d4f0 0%, #fdf5e6 60%, #f5deb3 100%), radial-gradient(ellipse at 70% 30%, #fffacd 0%, transparent 60%);
}
.scn-country-excursion-lunch-seating .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #87ceeb, transparent);
  animation: ce1-sky 20s ease-in-out infinite;
}
.scn-country-excursion-lunch-seating .canopy {
  position: absolute; top: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 40%, transparent);
  border-radius: 0 0 50% 50% / 0 0 60% 60%;
  animation: ce1-canopy 12s ease-in-out infinite alternate;
}
.scn-country-excursion-lunch-seating .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 12%;
  background: #8b5e3c; border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ce1-table 8s ease-in-out infinite;
}
.scn-country-excursion-lunch-seating .cloth {
  position: absolute; bottom: 20.5%; left: 28%; width: 44%; height: 10%;
  background: #fff8dc; border-radius: 4px;
  box-shadow: inset 0 0 5px rgba(0,0,0,0.1);
}
.scn-country-excursion-lunch-seating .chair-left {
  position: absolute; bottom: 16%; left: 30%; width: 8%; height: 18%;
  background: #5c3a1e; border-radius: 5px 5px 2px 2px;
  animation: ce1-chair 6s ease-in-out infinite;
}
.scn-country-excursion-lunch-seating .chair-right {
  position: absolute; bottom: 16%; right: 30%; width: 8%; height: 18%;
  background: #5c3a1e; border-radius: 5px 5px 2px 2px;
  animation: ce1-chair 6s ease-in-out infinite;
}
.scn-country-excursion-lunch-seating .figure-left {
  position: absolute; bottom: 12%; left: 32%; width: 6%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ce1-figure 10s ease-in-out infinite;
}
.scn-country-excursion-lunch-seating .figure-right {
  position: absolute; bottom: 12%; right: 32%; width: 6%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ce1-figure 10s ease-in-out infinite 2s;
}
@keyframes ce1-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ce1-canopy { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes ce1-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ce1-chair { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes ce1-figure { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-country-excursion-conversation {
  background: linear-gradient(180deg, #b3d4f0 0%, #fdf5e6 60%, #f5deb3 100%), radial-gradient(ellipse at 50% 40%, #fffacd 0%, transparent 50%);
}
.scn-country-excursion-conversation .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8f5e9 0%, transparent 100%); opacity: 0.5;
}
.scn-country-excursion-conversation .table-main {
  position: absolute; bottom: 25%; left: 20%; width: 30%; height: 15%;
  background: linear-gradient(135deg, #8b5e3c, #6b3e1c); border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ce2-table 10s ease-in-out infinite;
}
.scn-country-excursion-conversation .table-other {
  position: absolute; bottom: 28%; left: 55%; width: 25%; height: 12%;
  background: linear-gradient(135deg, #8b5e3c, #6b3e1c); border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ce2-table 12s ease-in-out infinite 1s;
}
.scn-country-excursion-conversation .figure-mother {
  position: absolute; bottom: 15%; left: 22%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #5c3a1e 0%, #2a1a0a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  animation: ce2-mother 8s ease-in-out infinite;
}
.scn-country-excursion-conversation .figure-daughter {
  position: absolute; bottom: 18%; left: 30%; width: 5%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%;
  animation: ce2-daughter 6s ease-in-out infinite;
}
.scn-country-excursion-conversation .figure-husband {
  position: absolute; bottom: 15%; left: 38%; width: 7%; height: 26%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ce2-husband 9s ease-in-out infinite;
}
.scn-country-excursion-conversation .figure-boater1 {
  position: absolute; bottom: 18%; left: 55%; width: 6%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #0a0a00 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  animation: ce2-boater 7s ease-in-out infinite;
}
.scn-country-excursion-conversation .figure-boater2 {
  position: absolute; bottom: 20%; left: 62%; width: 6%; height: 26%;
  background: linear-gradient(180deg, #3a2a1a 0%, #0a0a00 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  animation: ce2-boater 7s ease-in-out infinite 3.5s;
}
@keyframes ce2-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ce2-mother { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(-2deg) scale(1.05) } 100% { transform: rotate(0) scale(1) } }
@keyframes ce2-daughter { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes ce2-husband { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes ce2-boater { 0% { transform: translateY(0) skew(0) } 50% { transform: skew(1deg) scale(1.05) } 100% { transform: translateY(0) skew(0) } }

.scn-country-excursion-boating-offer {
  background: linear-gradient(180deg, #b3d4f0 0%, #fdf5e6 60%, #f5deb3 100%), radial-gradient(ellipse at 80% 40%, #fffacd 0%, transparent 70%);
}
.scn-country-excursion-boating-offer .table-close {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(135deg, #8b5e3c, #6b3e1c); border-radius: 10px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ce3-table 9s ease-in-out infinite;
}
.scn-country-excursion-boating-offer .plate {
  position: absolute; bottom: 35%; left: 35%; width: 20%; height: 18%;
  background: radial-gradient(circle, #f5f5dc 0%, #e0d5c0 80%); border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ce3-plate 6s ease-in-out infinite;
}
.scn-country-excursion-boating-offer .rabbit {
  position: absolute; bottom: 38%; left: 37%; width: 12%; height: 10%;
  background: linear-gradient(135deg, #a0522d, #6b3e1c);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: center 60%;
  animation: ce3-rabbit 8s ease-in-out infinite;
}
.scn-country-excursion-boating-offer .arm {
  position: absolute; bottom: 40%; right: 15%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #d2a679, #c09060);
  border-radius: 30px;
  transform-origin: right center;
  animation: ce3-arm 6s ease-in-out infinite;
}
.scn-country-excursion-boating-offer .hand {
  position: absolute; bottom: 38%; right: 12%; width: 8%; height: 10%;
  background: #c09060; border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%;
  animation: ce3-hand 6s ease-in-out infinite;
}
.scn-country-excursion-boating-offer .girl-silhouette {
  position: absolute; bottom: 20%; left: 18%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 35% 35%;
  animation: ce3-girl 10s ease-in-out infinite;
}
@keyframes ce3-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ce3-plate { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ce3-rabbit { 0% { transform: rotate(0) scale(1) } 50% { transform: rotate(-4deg) scale(1.05) } 100% { transform: rotate(0) scale(1) } }
@keyframes ce3-arm { 0% { transform: rotate(0) translateX(15px) } 50% { transform: rotate(10deg) translateX(0) } 100% { transform: rotate(0) translateX(15px) } }
@keyframes ce3-hand { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(1) } }
@keyframes ce3-girl { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-country-excursion-boasting {
  background: linear-gradient(180deg, #b3d4f0 0%, #fdf5e6 60%, #f5deb3 100%), radial-gradient(ellipse at 50% 20%, #fffacd 0%, transparent 60%);
}
.scn-country-excursion-boasting .sky {
  position: absolute; inset: 0 0 70% 0;
  background: linear-gradient(180deg, #87ceeb, transparent);
  animation: ce4-sky 15s ease-in-out infinite;
}
.scn-country-excursion-boasting .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7cb342, #558b2f);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-country-excursion-boasting .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ce4-figure 5s ease-in-out infinite;
}
.scn-country-excursion-boasting .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ce4-figure 5s ease-in-out infinite 2.5s;
}
.scn-country-excursion-boasting .chest-left {
  position: absolute; bottom: 40%; left: 30%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ff5722 0%, transparent 70%);
  border-radius: 50%;
  animation: ce4-chest 2s ease-in-out infinite;
}
.scn-country-excursion-boasting .chest-right {
  position: absolute; bottom: 40%; right: 30%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ff5722 0%, transparent 70%);
  border-radius: 50%;
  animation: ce4-chest 2s ease-in-out infinite 1s;
}
.scn-country-excursion-boasting .sparkles {
  position: absolute; top: 30%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(circle at 20% 50%, #ffeb3b 0%, transparent 30%);
  filter: blur(2px);
  animation: ce4-sparkles 3s ease-in-out infinite;
}
@keyframes ce4-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ce4-figure { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-5px) rotate(10deg) scale(1.1) } 50% { transform: translateY(0) rotate(-5deg) } 75% { transform: translateY(-3px) rotate(8deg) scale(1.05) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes ce4-chest { 0% { transform: scale(0) opacity: 0 } 50% { transform: scale(1.5) opacity: 1 } 100% { transform: scale(0) opacity: 0 } }
@keyframes ce4-sparkles { 0% { transform: rotate(0) translateY(0) opacity: 0 } 50% { transform: rotate(180deg) translateY(-10px) opacity: 1 } 100% { transform: rotate(360deg) translateY(-20px) opacity: 0 } }

.scn-lemonnier-suicide {background:linear-gradient(180deg,#0f0f1a,#1a1a2e 30%,#2a1e3c 70%,#1f1f2f),radial-gradient(ellipse 50% 80%,#3a2a4c,transparent 70%);}
.scn-lemonnier-suicide .wall {position:absolute;inset:0;background:linear-gradient(180deg,#2a1e3c,#1a1a2e);}
.scn-lemonnier-suicide .floor {position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#3a2a1e,#1a1a0f);border-radius:10% 10% 0 0/5% 5% 0 0;}
.scn-lemonnier-suicide .rope {position:absolute;top:0;left:50%;width:3px;height:55%;transform:translateX(-50%);background:linear-gradient(180deg,#5a4a3a,#3a2a1a);animation:ls-sway 8s ease-in-out infinite;}
.scn-lemonnier-suicide .figure {position:absolute;top:50%;left:50%;width:22px;height:50px;transform:translateX(-50%);background:linear-gradient(180deg,#1a1a2e,#0f0f1a);border-radius:50% 50% 40% 40%/30% 30% 70% 70%;box-shadow:inset 0 4px 8px rgba(0,0,0,.8);animation:ls-sway 8s ease-in-out infinite alternate;}
.scn-lemonnier-suicide .door {position:absolute;bottom:30%;left:10%;width:40px;height:60px;background:linear-gradient(180deg,#3a2a1e,#2a1a0f);border:2px solid #4a3a2a;border-radius:4px;}
.scn-lemonnier-suicide .tray {position:absolute;bottom:5%;left:35%;width:30px;height:8px;background:radial-gradient(ellipse,#6a5a4a,#3a2a1a);border-radius:50%;animation:ls-flicker 4s ease-in-out infinite;}
.scn-lemonnier-suicide .window {position:absolute;top:15%;right:15%;width:30px;height:40px;background:#2a3a4a;border:2px solid #4a5a6a;border-radius:4px;box-shadow:0 0 10px 2px rgba(100,140,180,.3);animation:ls-glow 6s ease-in-out infinite;}
.scn-lemonnier-suicide .dust {position:absolute;top:40%;left:20%;width:3px;height:3px;background:#fff;border-radius:50%;opacity:.3;animation:ls-drift 20s linear infinite;}
@keyframes ls-sway {0%{transform:translateX(0) rotate(0)}33%{transform:translateX(2px) rotate(1deg)}66%{transform:translateX(-2px) rotate(-1deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes ls-flicker {0%{opacity:.8}50%{opacity:.3}100%{opacity:.7}}
@keyframes ls-glow {0%{box-shadow:0 0 5px 1px rgba(100,140,180,.2)}50%{box-shadow:0 0 15px 4px rgba(100,140,180,.5)}100%{box-shadow:0 0 5px 1px rgba(100,140,180,.2)}}
@keyframes ls-drift {0%{transform:translate(0,0) scale(1);opacity:.3}25%{transform:translate(20px,10px) scale(.8);opacity:.5}50%{transform:translate(10px,30px) scale(1.2);opacity:.2}75%{transform:translate(-10px,20px) scale(.9);opacity:.4}100%{transform:translate(0,0) scale(1);opacity:.3}}

.scn-lemonnier-letter {background:linear-gradient(180deg,#1a1a2e,#2a1e3c 50%,#0f0f1a),radial-gradient(ellipse at 50% 60%,#3a2a4c 0%,transparent 80%);}
.scn-lemonnier-letter .table {position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(180deg,#3a2a1e,#2a1a0f);border-radius:20% 20% 0 0/10% 10% 0 0;box-shadow:inset 0 8px 20px rgba(0,0,0,.6);}
.scn-lemonnier-letter .letter {position:absolute;bottom:20%;left:40%;width:50px;height:35px;background:linear-gradient(135deg,#e8e0d0,#c8b89a);border-radius:2px;box-shadow:0 2px 6px rgba(0,0,0,.5);transform:rotate(-5deg);animation:ll-float 7s ease-in-out infinite;}
.scn-lemonnier-letter .envelope {position:absolute;bottom:22%;left:45%;width:42px;height:28px;background:linear-gradient(135deg,#d0c0a8,#b0a080);border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.4);transform:rotate(3deg);animation:ll-float 7s ease-in-out infinite reverse;}
.scn-lemonnier-letter .inkwell {position:absolute;bottom:32%;left:55%;width:12px;height:14px;background:radial-gradient(circle at 50% 30%,#3a3a4a,#1a1a2a);border-radius:50% 50% 30% 30%/40% 40% 30% 30%;}
.scn-lemonnier-letter .candle {position:absolute;bottom:35%;left:30%;width:6px;height:20px;background:linear-gradient(180deg,#e8d0a0,#c8a060);border-radius:2px;animation:ll-flame 3s ease-in-out infinite;}
.scn-lemonnier-letter .glow {position:absolute;bottom:30%;left:28%;width:40px;height:50px;background:radial-gradient(ellipse,#ffd080 0%,transparent 70%);opacity:.5;animation:ll-glow 5s ease-in-out infinite;}
.scn-lemonnier-letter .shadow {position:absolute;bottom:28%;left:38%;width:60px;height:20px;background:rgba(0,0,0,.6);border-radius:50%;filter:blur(6px);animation:ll-fade 6s ease-in-out infinite;}
@keyframes ll-float {0%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-4deg) translateY(-2px)}100%{transform:rotate(-5deg) translateY(0)}}
@keyframes ll-flame {0%{height:18px;opacity:.8}50%{height:22px;opacity:.95}100%{height:18px;opacity:.8}}
@keyframes ll-glow {0%{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}100%{opacity:.4;transform:scale(1)}}
@keyframes ll-fade {0%{opacity:.5}50%{opacity:.3}100%{opacity:.5}}

.scn-country-excursion-preparations {background:linear-gradient(180deg,#f0d8a0 0%,#d8b880 30%,#b89860 60%,#a08050 100%),radial-gradient(ellipse at 50% 0%,#ffe8c0 0%,transparent 60%);}
.scn-country-excursion-preparations .sky {position:absolute;inset:0 0 50% 0;background:linear-gradient(180deg,#fce4b0,#f0c890);animation:cp-dawn 20s ease-in-out infinite;}
.scn-country-excursion-preparations .sun {position:absolute;top:10%;left:60%;width:40px;height:40px;background:radial-gradient(circle,#ffe080,#ffc040 70%,transparent);border-radius:50%;box-shadow:0 0 60px 20px #ffc040;animation:cp-rise 25s ease-in-out infinite;}
.scn-country-excursion-preparations .fields {position:absolute;bottom:20%;left:0;right:0;height:30%;background:linear-gradient(180deg,#8a7a4a,#6a5a2a);border-radius:40% 60% 0 0/60% 40% 0 0;animation:cp-sway 12s ease-in-out infinite alternate;}
.scn-country-excursion-preparations .wagon {position:absolute;bottom:25%;left:30%;width:80px;height:40px;background:linear-gradient(180deg,#6a4a3a,#4a2a1a);border-radius:8px 8px 4px 4px;box-shadow:0 4px 8px rgba(0,0,0,.4);animation:cp-bounce 5s ease-in-out infinite;}
.scn-country-excursion-preparations .madame {position:absolute;bottom:32%;left:35%;width:16px;height:30px;background:linear-gradient(180deg,#b87878,#8a5050);border-radius:50% 50% 30% 30%/60% 60% 40% 40%;transform-origin:bottom center;animation:cp-bob 3s ease-in-out infinite;}
.scn-country-excursion-preparations .child {position:absolute;bottom:22%;left:45%;width:10px;height:18px;background:linear-gradient(180deg,#e8d0a0,#c0a870);border-radius:50% 50% 40% 40%/50% 50% 50% 50%;animation:cp-bob 4s ease-in-out infinite 1s;}
.scn-country-excursion-preparations .grandmother {position:absolute;bottom:30%;left:50%;width:18px;height:28px;background:linear-gradient(180deg,#6a5a4a,#4a3a2a);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;animation:cp-bob 3.5s ease-in-out infinite 0.5s;}
.scn-country-excursion-preparations .dust {position:absolute;top:20%;left:20%;width:4px;height:4px;background:rgba(200,180,120,.6);border-radius:50%;animation:cp-drift 30s linear infinite;}
@keyframes cp-dawn {0%{opacity:.7}50%{opacity:1}100%{opacity:.7}}
@keyframes cp-rise {0%{transform:translateY(20px) scale(.9);opacity:.8}50%{transform:translateY(-5px) scale(1.05);opacity:1}100%{transform:translateY(20px) scale(.9);opacity:.8}}
@keyframes cp-sway {0%{transform:translateY(0)}50%{transform:translateY(-4px)}100%{transform:translateY(0)}}
@keyframes cp-bounce {0%{transform:translateY(0)}33%{transform:translateY(-3px)}66%{transform:translateY(-1px)}100%{transform:translateY(0)}}
@keyframes cp-bob {0%{transform:rotate(0)}33%{transform:rotate(2deg)}66%{transform:rotate(-2deg)}100%{transform:rotate(0)}}
@keyframes cp-drift {0%{transform:translateX(-20px);opacity:.3}25%{transform:translateX(30px) translateY(-10px);opacity:.6}50%{transform:translateX(10px) translateY(5px);opacity:.2}75%{transform:translateX(40px);opacity:.5}100%{transform:translateX(-20px);opacity:.3}}

.scn-country-excursion-ugly-road {background:linear-gradient(180deg,#f0d090 0%,#e0b070 30%,#c09050 60%,#a07040 100%),radial-gradient(ellipse at 50% 0%,#ffe8a0 0%,transparent 70%);}
.scn-country-excursion-ugly-road .sky {position:absolute;inset:0 0 50% 0;background:linear-gradient(180deg,#fce0a0,#e8c070);animation:cur-shimmer 15s ease-in-out infinite;}
.scn-country-excursion-ugly-road .sun {position:absolute;top:5%;left:70%;width:45px;height:45px;background:radial-gradient(circle,#ffe080,#ffb030);border-radius:50%;box-shadow:0 0 80px 30px #ffb030;animation:cur-pulse 6s ease-in-out infinite;}
.scn-country-excursion-ugly-road .road {position:absolute;bottom:20%;left:0;right:0;height:30%;background:linear-gradient(180deg,#6a5a3a,#4a3a2a);border-radius:30% 70% 0 0/20% 50% 0 0;animation:cur-heat 10s ease-in-out infinite;}
.scn-country-excursion-ugly-road .house1 {position:absolute;bottom:30%;left:15%;width:50px;height:40px;background:linear-gradient(180deg,#5a4a3a,#3a2a1a);border-radius:4px 4px 0 0;transform:skewX(-5deg);animation:cur-shake 4s ease-in-out infinite;}
.scn-country-excursion-ugly-road .house2 {position:absolute;bottom:25%;right:20%;width:40px;height:35px;background:linear-gradient(180deg,#6a5a4a,#4a3a2a);border-radius:4px 4px 0 0;transform:skewX(3deg);animation:cur-shake 5s ease-in-out infinite reverse;}
.scn-country-excursion-ugly-road .river {position:absolute;bottom:5%;left:0;right:0;height:15%;background:linear-gradient(180deg,#6a8a9a,#4a6a7a);border-radius:50% 50% 0 0/30% 30% 0 0;box-shadow:inset 0 4px 8px rgba(0,0,0,.5);animation:cur-flow 20s ease-in-out infinite;}
.scn-country-excursion-ugly-road .dust {position:absolute;top:30%;left:0;width:100%;height:100%;background:radial-gradient(ellipse at 50% 50%,rgba(180,150,100,.4) 0%,transparent 70%);animation:cur-drift 12s linear infinite;}
.scn-country-excursion-ugly-road .heat {position:absolute;top:20%;left:30%;width:60px;height:40px;background:radial-gradient(ellipse,rgba(255,220,150,.3),transparent);filter:blur(10px);animation:cur-heat-wave 8s ease-in-out infinite;}
@keyframes cur-shimmer {0%{opacity:.7}50%{opacity:1}100%{opacity:.7}}
@keyframes cur-pulse {0%{transform:scale(1)}33%{transform:scale(1.1)}66%{transform:scale(.95)}100%{transform:scale(1)}}
@keyframes cur-heat {0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes cur-shake {0%{transform:skewX(-5deg) translateX(0)}25%{transform:skewX(-4deg) translateX(2px)}50%{transform:skewX(-5deg) translateX(-1px)}75%{transform:skewX(-4deg) translateX(2px)}100%{transform:skewX(-5deg) translateX(0)}}
@keyframes cur-flow {0%{background-position:0 0}50%{background-position:20px 0}100%{background-position:0 0}}
@keyframes cur-drift {0%{transform:translateY(0)}50%{transform:translateY(-10px)}100%{transform:translateY(0)}}
@keyframes cur-heat-wave {0%{opacity:.3;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}100%{opacity:.3;transform:scale(1)}}

/* Scene: cocotte-drowning */
.scn-cocotte-drowning {
  background: linear-gradient(180deg, #1a1428 0%, #3a2a3e 35%, #7a4e4a 65%, #c88e6a 85%, #e8b080 100%), radial-gradient(ellipse at 50% 20%, #f0c890 0%, transparent 60%);
}

.scn-cocotte-drowning .dawn-sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(30,20,40,0.8) 0%, transparent 100%);
  animation: cdr-sky 12s ease-in-out infinite alternate;
}
.scn-cocotte-drowning .river {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 60% 0 0;
  animation: cdr-river 6s ease-in-out infinite alternate;
}
.scn-cocotte-drowning .mist {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,180,160,0.2) 0%, transparent 70%);
  filter: blur(15px);
  animation: cdr-mist 20s ease-in-out infinite;
}
.scn-cocotte-drowning .figure-man {
  position: absolute;
  bottom: 45%;
  left: 45%;
  width: 40px;
  height: 90px;
  transform: translate(-50%, 0);
}
.scn-cocotte-drowning .man-head {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 18px;
  height: 18px;
  background: radial-gradient(circle, #0a0a1a 60%, transparent 100%);
  border-radius: 50%;
}
.scn-cocotte-drowning .man-body {
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  width: 26px;
  height: 50px;
  background: linear-gradient(180deg, #0a0a1a, #15152a);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -10px 10px 0 -4px #0a0a1a, 10px 10px 0 -4px #0a0a1a; /* arms */
  animation: cdr-man 4s ease-in-out infinite alternate;
}
.scn-cocotte-drowning .figure-dog {
  position: absolute;
  bottom: 40%;
  left: 55%;
  width: 55px;
  height: 28px;
  background: #0a0a1a;
  border-radius: 40% 20% 20% 40% / 60% 40% 40% 60%;
  box-shadow: 18px -12px 0 -4px #0a0a1a, /* head */ 
  -15px 0 0 -6px #0a0a1a,  /* tail */
  -5px 20px 0 -6px #0a0a1a, 15px 20px 0 -6px #0a0a1a; /* legs */
  animation: cdr-dog 4s ease-in-out infinite;
}
.scn-cocotte-drowning .rope {
  position: absolute;
  bottom: 42%;
  left: 50%;
  width: 50px;
  height: 3px;
  background: linear-gradient(90deg, #3a2a1a, #5a4a3a);
  transform: rotate(30deg);
  transform-origin: left center;
  animation: cdr-rope 3s ease-in-out infinite alternate;
}
.scn-cocotte-drowning .reeds {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 15px;
  height: 80px;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 25px 0 0 -3px #2a3a1a, 50px 0 0 -4px #1a2a0a, 80px 0 0 -2px #2a3a1a;
  filter: blur(1px);
  animation: cdr-reeds 5s ease-in-out infinite;
}

@keyframes cdr-sky { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes cdr-river { 0% { background-position: 0 0; } 100% { background-position: 0 5px; } }
@keyframes cdr-mist { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes cdr-man { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } }
@keyframes cdr-dog { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-4px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes cdr-rope { 0% { transform: rotate(25deg); } 100% { transform: rotate(35deg); } }
@keyframes cdr-reeds { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }

/* Scene: cocotte-death */
.scn-cocotte-death {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #3a4a5a 70%, #4a5a6a 100%), radial-gradient(ellipse at 50% 80%, #3a4a5a 0%, transparent 60%);
}

.scn-cocotte-death .water {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, #1a2a3a 100%);
  animation: cde-water 8s ease-in-out infinite alternate;
}
.scn-cocotte-death .bubble {
  position: absolute;
  width: 10px;
  height: 10px;
  background: radial-gradient(circle, rgba(200,220,240,0.4), transparent);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-cocotte-death .bubble-1 {
  bottom: 30%;
  left: 40%;
  animation: cde-bubble 4s ease-out infinite;
}
.scn-cocotte-death .bubble-2 {
  bottom: 35%;
  left: 45%;
  width: 14px;
  height: 14px;
  animation: cde-bubble 5s ease-out infinite 1.5s;
}
.scn-cocotte-death .bubble-3 {
  bottom: 28%;
  left: 42%;
  width: 8px;
  height: 8px;
  animation: cde-bubble 3.5s ease-out infinite 0.8s;
}
.scn-cocotte-death .sinking-dog {
  position: absolute;
  bottom: 20%;
  left: 42%;
  width: 40px;
  height: 20px;
  background: #1a1a2a;
  border-radius: 30% 40% 40% 30% / 50% 50% 50% 50%;
  box-shadow: 15px -8px 0 -4px #1a1a2a, -12px 0 0 -4px #1a1a2a;
  animation: cde-sink 6s ease-in-out infinite;
}
.scn-cocotte-death .ripple {
  position: absolute;
  bottom: 22%;
  left: 40%;
  width: 80px;
  height: 8px;
  border: 2px solid rgba(180,200,220,0.3);
  border-radius: 50%;
  background: transparent;
  animation: cde-ripple 4s ease-out infinite;
}
.scn-cocotte-death .bank-silhouette {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(180deg, #0a0a1a 0%, transparent 100%);
  clip-path: polygon(0% 100%, 10% 60%, 20% 80%, 30% 50%, 50% 70%, 70% 40%, 85% 65%, 100% 30%, 100% 100%);
  animation: cde-bank 10s ease-in-out infinite alternate;
}

@keyframes cde-water { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes cde-bubble { 0% { bottom: 20%; opacity: 0.8; } 50% { opacity: 0.5; } 100% { bottom: 50%; opacity: 0; } }
@keyframes cde-sink { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(10px) rotate(5deg); } 100% { transform: translateY(20px) rotate(0deg); } }
@keyframes cde-ripple { 0% { transform: scale(0.5); opacity: 1; } 100% { transform: scale(2); opacity: 0; } }
@keyframes cde-bank { 0% { transform: translateY(0); } 100% { transform: translateY(-5px); } }

/* Scene: item-cocotte-corpse */
.scn-item-cocotte-corpse {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 80%, #fff8dc 100%), radial-gradient(ellipse at 70% 10%, #fff4b0 0%, transparent 60%);
}

.scn-item-cocotte-corpse .sky-bright {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, rgba(135,206,235,0.8) 0%, transparent 100%);
  animation: ccp-sky 15s ease-in-out infinite alternate;
}
.scn-item-cocotte-corpse .sun-glare {
  position: absolute;
  top: 10%;
  right: 20%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #fff4b0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ccp-glare 5s ease-in-out infinite;
}
.scn-item-cocotte-corpse .river-surface {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #5a8aaa 0%, #3a6a8a 100%);
  border-radius: 50% 50% 0 0;
  animation: ccp-river 8s ease-in-out infinite alternate;
}
.scn-item-cocotte-corpse .swimmer {
  position: absolute;
  bottom: 30%;
  left: 60%;
  width: 30px;
  height: 15px;
  background: #2a3a3a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 8px 0 -3px #1a2a2a;
  animation: ccp-swim 3s ease-in-out infinite alternate;
}
.scn-item-cocotte-corpse .corpse {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 50px;
  height: 30px;
  background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform: rotate(-15deg);
  box-shadow: 0 -15px 0 -5px #3a5a2a; /* feet up */
  animation: ccp-corpse 6s ease-in-out infinite;
}
.scn-item-cocotte-corpse .ripples {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 100px;
  height: 6px;
  border: 1px solid rgba(200,220,240,0.4);
  border-radius: 50%;
  background: transparent;
  animation: ccp-ripples 4s ease-out infinite;
}
.scn-item-cocotte-corpse .float-weed {
  position: absolute;
  bottom: 15%;
  left: 10%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #2a5a2a, #1a3a1a);
  border-radius: 40% 40% 20% 20%;
  filter: blur(2px);
  animation: ccp-weed 7s ease-in-out infinite;
}

@keyframes ccp-sky { 0% { opacity: 0.7; } 100% { opacity: 1; } }
@keyframes ccp-glare { 0%,100% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } }
@keyframes ccp-river { 0% { background-position: 0 0; } 100% { background-position: 0 8px; } }
@keyframes ccp-swim { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-3px) rotate(5deg); } }
@keyframes ccp-corpse { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(4px); } }
@keyframes ccp-ripples { 0% { transform: scaleX(0.5); opacity: 1; } 100% { transform: scaleX(2); opacity: 0; } }
@keyframes ccp-weed { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }

/* Scene: cocotte-madness */
.scn-cocotte-madness {
  background: linear-gradient(180deg, #f0e68c 0%, #fff8dc 30%, #b0e0e6 70%, #87ceeb 100%), radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 50%);
}

.scn-cocotte-madness .field-sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(135,206,235,0.6) 0%, transparent 100%);
  animation: cmad-sky 20s ease-in-out infinite alternate;
}
.scn-cocotte-madness .field-ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #c8b88a 0%, #a8986a 100%);
  border-radius: 40% 60% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
  animation: cmad-ground 10s ease-in-out infinite alternate;
}
.scn-cocotte-madness .running-figure {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 20px;
  height: 50px;
  background: #1a1a2a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -4px 10px 0 -3px #1a1a2a, 4px 10px 0 -3px #1a1a2a; /* legs */
  transform-origin: bottom center;
  animation: cmad-run 0.8s steps(4) infinite;
}
.scn-cocotte-madness .crop-stalks {
  position: absolute;
  bottom: 30%;
  width: 12px;
  height: 70px;
  background: linear-gradient(180deg, #6a5a2a, #4a3a1a);
  border-radius: 20% 20% 10% 10%;
  filter: blur(1px);
}
.scn-cocotte-madness .crop-1 {
  left: 10%;
  box-shadow: 20px 0 0 -2px #5a4a2a, 40px 0 0 -3px #6a5a2a, 60px 0 0 -1px #4a3a1a;
  animation: cmad-crop 3s ease-in-out infinite;
}
.scn-cocotte-madness .crop-2 {
  right: 15%;
  box-shadow: -15px 0 0 -2px #5a4a2a, -35px 0 0 -3px #6a5a2a, -55px 0 0 -1px #4a3a1a;
  animation: cmad-crop 3.5s ease-in-out infinite 0.5s;
}
.scn-cocotte-madness .dust {
  position: absolute;
  bottom: 28%;
  left: 25%;
  width: 40px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: cmad-dust 2s ease-out infinite;
}
.scn-cocotte-madness .sun-rays {
  position: absolute;
  top: 0;
  left: 40%;
  width: 150px;
  height: 150px;
  background: radial-gradient(circle, rgba(255,248,220,0.3) 0%, transparent 60%);
  filter: blur(20px);
  animation: cmad-rays 8s ease-in-out infinite alternate;
}

@keyframes cmad-sky { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes cmad-ground { 0% { background-position: 0 0; } 100% { background-position: 0 8px; } }
@keyframes cmad-run { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(10deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-5px) rotate(-10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cmad-crop { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes cmad-dust { 0% { transform: scale(0.5) translateY(0); opacity: 1; } 100% { transform: scale(1.5) translateY(-10px); opacity: 0; } }
@keyframes cmad-rays { 0% { transform: scale(1); opacity: 0.3; } 100% { transform: scale(1.1); opacity: 0.5; } }

.scn-coco-starvation-plan {
  background: linear-gradient(180deg,#87CEEB,#FFF8DC), radial-gradient(ellipse at 30% 20%,rgba(255,255,200,0.3),transparent 70%);
}
.scn-coco-starvation-plan .sky{position:absolute;inset:0;background:linear-gradient(180deg,#87CEEB 0%,#FFF8DC 50%,#FFE4B5 100%);animation:stv-sky 10s ease-in-out infinite alternate}
.scn-coco-starvation-plan .sun{position:absolute;top:10%;left:30%;width:60px;height:60px;background:radial-gradient(circle,#FFD700,#FFA500);border-radius:50%;box-shadow:0 0 40px #FFD700;animation:stv-sun 12s ease-in-out infinite alternate}
.scn-coco-starvation-plan .ground{position:absolute;bottom:0;left:0;right:0;height:35%;background:linear-gradient(180deg,#8B7355,#6B4226);border-radius:30% 70% 0 0/50% 80% 0 0}
.scn-coco-starvation-plan .horse-body{position:absolute;bottom:20%;left:45%;width:80px;height:50px;background:linear-gradient(180deg,#4a3a2a,#3a2a1a);border-radius:50% 50% 30% 30%;transform-origin:bottom center;animation:stv-horse-body 4s ease-in-out infinite}
.scn-coco-starvation-plan .horse-head{position:absolute;bottom:20%;left:58%;width:30px;height:40px;background:linear-gradient(180deg,#4a3a2a,#3a2a1a);border-radius:40% 40% 20% 20%;transform-origin:bottom left;animation:stv-horse-head 3s ease-in-out infinite alternate}
.scn-coco-starvation-plan .rope{position:absolute;bottom:20%;left:46%;width:2px;height:30px;background:#8B4513;transform-origin:top;animation:stv-rope 5s ease-in-out infinite alternate}
.scn-coco-starvation-plan .boy{position:absolute;bottom:0%;right:10%;width:15px;height:40px;background:linear-gradient(180deg,#2c1a0a,#1a0a00);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:stv-boy 6s ease-in-out infinite}
.scn-coco-starvation-plan .grass{position:absolute;bottom:15%;left:30%;width:40px;height:20px;background:linear-gradient(180deg,#556B2F,#3a4a1a);border-radius:50% 50% 0 0;filter:blur(1px);animation:stv-grass 3s ease-in-out infinite alternate}
@keyframes stv-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}
@keyframes stv-sun{0%{transform:translate(0,0)}50%{transform:translate(-5px,-5px)}100%{transform:translate(0,0)}}
@keyframes stv-horse-body{0%{transform:scaleY(1)}50%{transform:scaleY(1.05)}100%{transform:scaleY(1)}}
@keyframes stv-horse-head{0%{transform:rotate(0deg)}50%{transform:rotate(-20deg)}100%{transform:rotate(0deg)}}
@keyframes stv-rope{0%{transform:scaleY(1)}50%{transform:scaleY(1.5)}100%{transform:scaleY(1)}}
@keyframes stv-boy{0%{transform:translateX(0) rotate(0)}25%{transform:translateX(10px) rotate(5deg)}50%{transform:translateX(20px) rotate(0)}75%{transform:translateX(10px) rotate(-5deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes stv-grass{0%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}100%{transform:rotate(-5deg)}}

.scn-coco-death {
  background: linear-gradient(180deg,#87CEEB,#FFF8DC), radial-gradient(ellipse at 30% 20%,rgba(255,255,200,0.3),transparent 70%);
}
.scn-coco-death .sky{position:absolute;inset:0;background:linear-gradient(180deg,#87CEEB 0%,#FFF8DC 50%,#FFE4B5 100%);animation:dth-sky 12s ease-in-out infinite alternate}
.scn-coco-death .sun{position:absolute;top:12%;left:28%;width:55px;height:55px;background:radial-gradient(circle,#FFD700,#FFA500);border-radius:50%;box-shadow:0 0 35px #FFD700;animation:dth-sun 15s ease-in-out infinite alternate}
.scn-coco-death .ground{position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#8B7355,#5a3d22);border-radius:40% 60% 0 0/60% 70% 0 0}
.scn-coco-death .horse-body{position:absolute;bottom:22%;left:40%;width:85px;height:55px;background:linear-gradient(180deg,#4a3a2a,#3a2a1a);border-radius:50% 50% 30% 30%;transform-origin:bottom center;animation:dth-horse-body 4s ease-in-out infinite}
.scn-coco-death .horse-head-stretch{position:absolute;bottom:22%;left:55%;width:25px;height:45px;background:linear-gradient(180deg,#4a3a2a,#3a2a1a);border-radius:40% 40% 20% 20%;transform-origin:bottom left;animation:dth-horse-head 3s ease-in-out infinite alternate}
.scn-coco-death .rope-taut{position:absolute;bottom:22%;left:42%;width:2px;height:35px;background:#7a3b10;transform-origin:top;animation:dth-rope 5s ease-in-out infinite alternate}
.scn-coco-death .grass-patch{position:absolute;bottom:10%;left:60%;width:30px;height:15px;background:linear-gradient(180deg,#556B2F,#3a4a1a);border-radius:50% 50% 0 0;filter:blur(1px);animation:dth-grass 3s ease-in-out infinite alternate}
.scn-coco-death .rock{position:absolute;bottom:10%;left:30%;width:20px;height:10px;background:linear-gradient(180deg,#6a5a4a,#4a3a2a);border-radius:40% 40% 20% 20%}
@keyframes dth-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}
@keyframes dth-sun{0%{transform:translate(0,0)}50%{transform:translate(4px,4px)}100%{transform:translate(0,0)}}
@keyframes dth-horse-body{0%{transform:scaleY(1)}50%{transform:scaleY(1.08)}100%{transform:scaleY(1)}}
@keyframes dth-horse-head{0%{transform:rotate(0deg)}50%{transform:rotate(-30deg)}100%{transform:rotate(0deg)}}
@keyframes dth-rope{0%{transform:scaleY(1)}50%{transform:scaleY(1.6)}100%{transform:scaleY(1)}}
@keyframes dth-grass{0%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}100%{transform:rotate(-8deg)}}

.scn-coco-neglect {
  background: linear-gradient(180deg,#87CEEB,#FFF8DC), radial-gradient(ellipse at 40% 20%,rgba(255,255,200,0.35),transparent 70%);
}
.scn-coco-neglect .sky{position:absolute;inset:0;background:linear-gradient(180deg,#B0C4DE 0%,#FFF8DC 50%,#FFE4B5 100%);animation:ngl-sky 15s ease-in-out infinite alternate}
.scn-coco-neglect .sun{position:absolute;top:8%;left:40%;width:50px;height:50px;background:radial-gradient(circle,#FFD700,#FFA500);border-radius:50%;box-shadow:0 0 30px #FFD700;animation:ngl-sun 18s ease-in-out infinite alternate}
.scn-coco-neglect .ground{position:absolute;bottom:0;left:0;right:0;height:35%;background:linear-gradient(180deg,#7a6a5a,#5a4a3a);border-radius:50% 50% 0 0/70% 70% 0 0}
.scn-coco-neglect .horse-body-down{position:absolute;bottom:5%;left:35%;width:100px;height:30px;background:linear-gradient(180deg,#4a3a2a,#3a2a1a);border-radius:50% 50% 20% 20%;transform-origin:bottom center;animation:ngl-horse-body 6s ease-in-out infinite}
.scn-coco-neglect .horse-head-down{position:absolute;bottom:5%;left:50%;width:35px;height:25px;background:linear-gradient(180deg,#4a3a2a,#3a2a1a);border-radius:40% 40% 10% 10%;transform-origin:bottom left;animation:ngl-horse-head 4s ease-in-out infinite alternate}
.scn-coco-neglect .boy-walk{position:absolute;bottom:0%;right:5%;width:18px;height:45px;background:linear-gradient(180deg,#2c1a0a,#1a0a00);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:ngl-boy 8s ease-in-out infinite}
.scn-coco-neglect .clod{position:absolute;bottom:20%;left:55%;width:10px;height:10px;background:radial-gradient(circle,#6B4226,#4a2a10);border-radius:50%;animation:ngl-clod 3s ease-in-out infinite}
.scn-coco-neglect .fence{position:absolute;bottom:15%;left:70%;width:4px;height:40px;background:#5a4a3a;box-shadow:8px 0 0 #5a4a3a,16px 0 0 #5a4a3a;border-radius:2px;animation:ngl-fence 20s linear infinite}
@keyframes ngl-sky{0%{opacity:.7}50%{opacity:1}100%{opacity:.6}}
@keyframes ngl-sun{0%{transform:translate(0,0)}50%{transform:translate(3px,-3px)}100%{transform:translate(0,0)}}
@keyframes ngl-horse-body{0%{transform:scaleY(1)}50%{transform:scaleY(1.02)}100%{transform:scaleY(1)}}
@keyframes ngl-horse-head{0%{transform:rotate(0deg)}50%{transform:rotate(-10deg)}100%{transform:rotate(0deg)}}
@keyframes ngl-boy{0%{transform:translateX(0) rotate(0)}25%{transform:translateX(15px) rotate(3deg)}50%{transform:translateX(30px) rotate(0)}75%{transform:translateX(15px) rotate(-3deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes ngl-clod{0%{transform:scale(1)}50%{transform:scale(0.9)}100%{transform:scale(1)}}
@keyframes ngl-fence{0%{transform:rotate(0deg)}50%{transform:rotate(2deg)}100%{transform:rotate(0deg)}}

.scn-dead-woman-peace {
  background: linear-gradient(180deg,#2a1a1a,#1a0f0f), radial-gradient(ellipse at 50% 70%,rgba(255,200,150,0.25),transparent 70%);
}
.scn-dead-woman-peace .wall{position:absolute;inset:0;background:linear-gradient(180deg,#3a2a2a 0%,#2a1a1a 50%,#1a0f0f 100%);animation:dwp-wall 30s ease-in-out infinite alternate}
.scn-dead-woman-peace .bed{position:absolute;bottom:10%;left:10%;right:10%;height:30%;background:linear-gradient(180deg,#4a3a3a,#2a1a1a);border-radius:10px;box-shadow:inset 0 4px 8px rgba(0,0,0,.5)}
.scn-dead-woman-peace .woman-body{position:absolute;bottom:15%;left:30%;width:40%;height:25%;background:linear-gradient(180deg,#c8b8a8,#a89888);border-radius:50% 50% 30% 30%;filter:blur(2px)}
.scn-dead-woman-peace .woman-hair{position:absolute;bottom:25%;left:32%;width:36%;height:15%;background:linear-gradient(180deg,#ffffff,#e0d0c0);border-radius:50% 50% 0 0;filter:blur(1px);animation:dwp-hair 8s ease-in-out infinite alternate}
.scn-dead-woman-peace .son-figure{position:absolute;bottom:5%;left:20%;width:18px;height:40px;background:linear-gradient(180deg,#2a1a1a,#1a0f0f);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:dwp-son 5s ease-in-out infinite}
.scn-dead-woman-peace .daughter-figure{position:absolute;bottom:5%;right:20%;width:18px;height:40px;background:linear-gradient(180deg,#3a2a2a,#2a1a1a);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;transform-origin:bottom center;animation:dwp-daughter 5s ease-in-out infinite;animation-delay:2s}
.scn-dead-woman-peace .candle{position:absolute;bottom:35%;left:48%;width:6px;height:15px;background:linear-gradient(180deg,#ffe0a0,#d0a070);border-radius:2px;animation:dwp-candle 2s ease-in-out infinite alternate}
.scn-dead-woman-peace .candle-glow{position:absolute;bottom:30%;left:46%;width:16px;height:16px;background:radial-gradient(circle,rgba(255,200,100,0.4),transparent 70%);border-radius:50%;box-shadow:0 0 40px 20px rgba(255,200,100,0.2);animation:dwp-glow 3s ease-in-out infinite alternate}
@keyframes dwp-wall{0%{opacity:.9}50%{opacity:1}100%{opacity:.8}}
@keyframes dwp-hair{0%{transform:scaleX(1)}50%{transform:scaleX(1.05)}100%{transform:scaleX(1)}}
@keyframes dwp-son{0%{transform:rotate(0deg)}50%{transform:rotate(-15deg)}100%{transform:rotate(0deg)}}
@keyframes dwp-daughter{0%{transform:rotate(0deg)}50%{transform:rotate(-12deg)}100%{transform:rotate(0deg)}}
@keyframes dwp-candle{0%{transform:scaleY(1) opacity:.8}50%{transform:scaleY(1.2) opacity:1}100%{transform:scaleY(1) opacity:.8}}
@keyframes dwp-glow{0%{opacity:.3}50%{opacity:.6}100%{opacity:.3}}

.scn-bandit-aitone-forest { background: linear-gradient(180deg, #6a9ec4 0%, #aad0e0 40%, #f2d97a 70%, #cba152 100%), radial-gradient(ellipse at 50% 100%, #d9b85a 0%, transparent 60%); }
.scn-bandit-aitone-forest .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7ab0d4 0%, #b8d8e8 100%); animation: sky-pulse-ba 12s ease-in-out infinite alternate; }
.scn-bandit-aitone-forest .valley { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8aaa82 0%, #5a7a52 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: valley-shift-ba 18s ease-in-out infinite alternate; }
.scn-bandit-aitone-forest .clearing { position:absolute; bottom:5%; left:25%; right:25%; height:25%; background: radial-gradient(ellipse at 50% 100%, #c8d84a 0%, #8aaa3a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 -10px 40px rgba(200,216,74,.4); animation: clearing-glow-ba 8s ease-in-out infinite alternate; }
.scn-bandit-aitone-forest .pine-left { position:absolute; bottom:0; left:0; width:18%; height:90%; background: linear-gradient(90deg, #1a2a1a 0%, #2a3a2a 50%, #1a2a1a 100%); border-radius: 20% 80% 10% 90% / 30% 20% 80% 70%; box-shadow: 10px 0 30px rgba(0,0,0,.4); animation: pine-sway-ba 9s ease-in-out infinite; }
.scn-bandit-aitone-forest .pine-right { position:absolute; bottom:0; right:0; width:20%; height:85%; background: linear-gradient(90deg, #1a2a1a 0%, #3a4a2a 50%, #1a2a1a 100%); border-radius: 80% 20% 90% 10% / 20% 30% 70% 80%; box-shadow: -10px 0 30px rgba(0,0,0,.4); animation: pine-sway-ba 11s ease-in-out infinite -2s; }
.scn-bandit-aitone-forest .sun-rays { position:absolute; top:15%; left:30%; right:30%; bottom:40%; background: linear-gradient(180deg, rgba(255,255,230,.4) 0%, transparent 100%); clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); filter: blur(8px); animation: rays-ba 14s ease-in-out infinite alternate; }
.scn-bandit-aitone-forest .branch-top { position:absolute; top:0; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #1a2a1a 0%, #2a3a2a 40%, transparent 100%); border-radius: 50% 50% 40% 40% / 100% 100% 0 0; transform-origin: top center; animation: branch-sway-ba 12s ease-in-out infinite alternate; }
@keyframes sky-pulse-ba { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes valley-shift-ba { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.01) } 100% { transform: translateY(2px) scale(0.99) } }
@keyframes clearing-glow-ba { 0% { box-shadow: 0 -10px 30px rgba(200,216,74,.3); opacity:.9 } 50% { box-shadow: 0 -20px 60px rgba(200,216,74,.6); opacity:1 } 100% { box-shadow: 0 -5px 20px rgba(200,216,74,.2); opacity:.85 } }
@keyframes pine-sway-ba { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(-1deg) translateX(-1px) } }
@keyframes rays-ba { 0% { transform: rotate(-4deg) scaleX(1); opacity:.5 } 50% { transform: rotate(0deg) scaleX(1.1); opacity:.8 } 100% { transform: rotate(4deg) scaleX(0.9); opacity:.6 } }
@keyframes branch-sway-ba { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.05) } 100% { transform: rotate(-2deg) scaleY(0.95) } }

.scn-bandit-niolo-valley { background: linear-gradient(180deg, #ffb347 0%, #ffcc80 30%, #e6a86e 60%, #8a6a4a 100%), radial-gradient(ellipse at 50% 0%, #ffddaa 0%, transparent 60%); }
.scn-bandit-niolo-valley .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffc266 0%, #ffd699 100%); animation: sky-glow-nv 10s ease-in-out infinite alternate; }
.scn-bandit-niolo-valley .cliff-left { position:absolute; top:5%; left:0; right:55%; bottom:10%; background: linear-gradient(135deg, #d4a373 0%, #a67c52 40%, #5a4022 100%); border-radius: 0 40% 20% 0 / 0 80% 60% 0; box-shadow: inset -10px 0 40px rgba(0,0,0,.3); animation: cliff-light-nv 16s ease-in-out infinite alternate; }
.scn-bandit-niolo-valley .cliff-right { position:absolute; top:0; left:50%; right:0; bottom:15%; background: linear-gradient(225deg, #6a4a2a 0%, #3a2a1a 60%, #1a100a 100%); border-radius: 60% 0 0 30% / 80% 0 0 40%; box-shadow: inset 10px 0 50px rgba(0,0,0,.5); animation: cliff-shadow-nv 16s ease-in-out infinite alternate -4s; }
.scn-bandit-niolo-valley .gorge-path { position:absolute; bottom:10%; left:40%; right:40%; height:30%; background: linear-gradient(180deg, transparent 0%, #9a8a72 40%, #6a5a42 100%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); filter: blur(2px); animation: path-deepen-nv 20s ease-in-out infinite alternate; }
.scn-bandit-niolo-valley .sun { position:absolute; top:8%; left:45%; width:10%; height:10%; background: radial-gradient(circle, #fff5e6 0%, #ffdd99 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 30px #ffd699, 0 0 200px 80px rgba(255,214,153,.3); animation: sun-core-nv 6s ease-in-out infinite alternate; }
.scn-bandit-niolo-valley .eagle { position:absolute; top:20%; left:20%; width:6%; height:4%; background: #2a1a0a; border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 8px 0 0 #2a1a0a; transform-origin: center center; animation: eagle-nv 25s linear infinite; }
.scn-bandit-niolo-valley .haze { position:absolute; bottom:20%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,150,.3) 0%, transparent 70%); filter: blur(20px); animation: haze-shift-nv 30s ease-in-out infinite alternate; }
@keyframes sky-glow-nv { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cliff-light-nv { 0% { transform: translateX(0) skewY(0) } 50% { transform: translateX(-5px) skewY(1deg) } 100% { transform: translateX(3px) skewY(-1deg) } }
@keyframes cliff-shadow-nv { 0% { transform: translateX(0) skewY(0) } 50% { transform: translateX(5px) skewY(-1deg) } 100% { transform: translateX(-2px) skewY(1deg) } }
@keyframes path-deepen-nv { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes sun-core-nv { 0% { transform: scale(1); box-shadow: 0 0 60px 20px #ffd699 } 50% { transform: scale(1.05); box-shadow: 0 0 100px 40px #ffebc2 } 100% { transform: scale(0.95); box-shadow: 0 0 40px 10px #ffd699 } }
@keyframes eagle-nv { 0% { transform: translate(0, 0) rotate(0deg) scale(1); opacity:.6 } 25% { transform: translate(20px, -10px) rotate(3deg) scale(1.1); opacity:1 } 50% { transform: translate(40px, 5px) rotate(-2deg) scale(0.9); opacity:.8 } 75% { transform: translate(60px, -15px) rotate(4deg) scale(1.05); opacity:.9 } 100% { transform: translate(80vw, 10px) rotate(0deg) scale(0.8); opacity:.4 } }
@keyframes haze-shift-nv { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(3px) scale(0.95) } }

.scn-bandit-st-lucia-history { background: linear-gradient(135deg, #f2e6d0 0%, #d4b896 100%), radial-gradient(ellipse at 80% 20%, #e8d5b7 0%, transparent 50%); }
.scn-bandit-st-lucia-history .wall-shadow { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.15) 100%); animation: shadow-deepen-slh 20s ease-in-out infinite alternate; }
.scn-bandit-st-lucia-history .window-outside { position:absolute; top:8%; right:8%; width:25%; height:35%; background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.3); animation: outside-light-slh 12s ease-in-out infinite alternate; }
.scn-bandit-st-lucia-history .window-frame { position:absolute; top:6%; right:6%; width:27%; height:37%; border: 10px solid #5a4022; border-radius: 8px; box-shadow: 0 0 0 2px #3a2a1a; pointer-events: none; }
.scn-bandit-st-lucia-history .young-lucia { position:absolute; bottom:12%; left:22%; width:40px; height:65px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lucia-hunch-slh 8s ease-in-out infinite; }
.scn-bandit-st-lucia-history .table { position:absolute; bottom:10%; left:18%; width:80px; height:12px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.3); }
.scn-bandit-st-lucia-history .shadow-figure { position:absolute; top:15%; left:55%; width:100px; height:150px; background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, transparent 70%); filter: blur(6px); animation: shadow-gesture-slh 9s ease-in-out infinite alternate; }
.scn-bandit-st-lucia-history .dust-motes { position:absolute; top:20%; left:30%; width:20px; height:20px; background: radial-gradient(circle, rgba(255,255,200,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: dust-float-slh 14s ease-in-out infinite; }
.scn-bandit-st-lucia-history .dust-motes::after { content: ''; position:absolute; top:40px; left:30px; width:15px; height:15px; background: radial-gradient(circle, rgba(255,255,200,.5) 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: dust-float-slh 18s ease-in-out infinite -5s; }
@keyframes shadow-deepen-slh { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes outside-light-slh { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lucia-hunch-slh { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 50% { transform: translateX(2px) rotate(2deg) scaleY(0.98) } 100% { transform: translateX(-1px) rotate(-1deg) scaleY(1.02) } }
@keyframes shadow-gesture-slh { 0% { transform: translate(0, 0) scale(1) rotate(0deg) } 50% { transform: translate(-10px, -5px) scale(1.05) rotate(5deg) } 100% { transform: translate(5px, 10px) scale(0.95) rotate(-3deg) } }
@keyframes dust-float-slh { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0 } 25% { transform: translateY(-20px) translateX(10px) scale(1.2); opacity:0.6 } 50% { transform: translateY(-40px) translateX(-5px) scale(0.8); opacity:0.3 } 75% { transform: translateY(-60px) translateX(15px) scale(1.1); opacity:0.7 } 100% { transform: translateY(-80px) translateX(0) scale(1); opacity:0 } }

.scn-bandit-st-lucia-vengeance { background: linear-gradient(180deg, #fff5e6 0%, #ffd699 40%, #ffaa66 100%), radial-gradient(ellipse at 50% 0%, #fff5e6 0%, transparent 50%); }
.scn-bandit-st-lucia-vengeance .sun-burst { position:absolute; top:0; left:35%; right:35%; bottom:60%; background: radial-gradient(circle, #ffffff 0%, #fff5cc 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 120px 60px rgba(255,255,230,.4); animation: sun-burst-slv 4s ease-in-out infinite alternate; }
.scn-bandit-st-lucia-vengeance .window-frame { position:absolute; inset:5% 10%; border: 16px solid #2a1a0a; border-radius: 12px; box-shadow: inset 0 0 40px rgba(0,0,0,.5), 0 0 0 4px #4a2a1a; pointer-events: none; }
.scn-bandit-st-lucia-vengeance .st-lucia-body { position:absolute; bottom:15%; left:28%; width:60px; height:100px; background: #1a1a1a; border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rise-slv 1.5s ease-out forwards; }
.scn-bandit-st-lucia-vengeance .st-lucia-arm { position:absolute; bottom:30%; left:42%; width:40px; height:14px; background: #1a1a1a; border-radius: 40% 10% 10% 40% / 50% 10% 10% 50%; transform-origin: right center; animation: aim-slv 1.5s ease-out forwards; }
.scn-bandit-st-lucia-vengeance .gun { position:absolute; bottom:30%; left:60%; width:30px; height:8px; background: #4a3020; border-radius: 2px 6px 6px 2px; transform-origin: left center; box-shadow: 0 2px 0 #2a1a0a; animation: aim-slv 1.5s ease-out forwards; }
.scn-bandit-st-lucia-vengeance .sister { position:absolute; bottom:18%; right:20%; width:45px; height:70px; background: #2a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: flinch-slv 1.5s ease-out forwards; }
.scn-bandit-st-lucia-vengeance .shadow-bridegroom { position:absolute; top:10%; width:80px; height:120px; background: rgba(40,25,10,.4); filter: blur(8px); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: shadow-pass-slv 6s linear infinite; }
.scn-bandit-st-lucia-vengeance .tense-lines { position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent, transparent 20px, rgba(255,200,150,.1) 20px, rgba(255,200,150,.1) 22px); animation: tense-shift-slv 3s linear infinite; }
@keyframes sun-burst-slv { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.95); opacity:.8 } }
@keyframes rise-slv { 0% { transform: translateY(30px) rotate(-15deg) scaleY(0.8); opacity:.5 } 30% { transform: translateY(-5px) rotate(5deg) scaleY(1.05); opacity:1 } 50% { transform: translateY(2px) rotate(-2deg) scaleY(1) } 70% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) scaleY(1) } }
@keyframes aim-slv { 0% { transform: translateX(-10px) rotate(-30deg); opacity:.5 } 30% { transform: translateX(0) rotate(10deg); opacity:1 } 50% { transform: translateX(0) rotate(-5deg) } 70% { transform: translateX(0) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes flinch-slv { 0% { transform: translateX(0) rotate(0deg) scale(1); opacity:.8 } 30% { transform: translateX(15px) rotate(10deg) scale(0.95); opacity:1 } 50% { transform: translateX(-5px) rotate(-5deg) scale(1.02) } 70% { transform: translateX(2px) rotate(2deg) scale(0.98) } 100% { transform: translateX(0) rotate(0deg) scale(1) } }
@keyframes shadow-pass-slv { 0% { left: -20%; opacity:0 } 10% { opacity:.8 } 50% { left: 60%; opacity:1 } 90% { opacity:.8 } 100% { left: 120%; opacity:0 } }
@keyframes tense-shift-slv { 0% { background-position: 0 0; opacity:.5 } 50% { background-position: 40px 40px; opacity:1 } 100% { background-position: 80px 80px; opacity:.5 } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.motes { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* mother-letters */
.scn-mother-letters {
  background: 
    linear-gradient(180deg, #1a1220 0%, #2a1a30 40%, #1e1428 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a44 0%, transparent 70%);
}
.scn-mother-letters .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e1e36 0%, #1a1022 100%);
  animation: ml-wall 12s ease-in-out infinite alternate;
}
.scn-mother-letters .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1018 0%, #241a28 100%);
}
.scn-mother-letters .table {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3034 0%, #2c1a1e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-mother-letters .letter-glow {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #f0d080 0%, #c8a44c 50%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(200,164,76,0.5), 0 0 60px 20px rgba(200,164,76,0.2);
  animation: ml-letter 4s ease-in-out infinite alternate;
}
.scn-mother-letters .candle {
  position: absolute; bottom: 20%; left: 42%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a86c 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #f0d080;
  animation: ml-candle 3s ease-in-out infinite alternate;
}
.scn-mother-letters .silhouette-a {
  position: absolute; bottom: 15%; left: 30%; width: 24px; height: 50px;
  background: #0c0810;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ml-sil-a 8s ease-in-out infinite;
}
.scn-mother-letters .silhouette-b {
  position: absolute; bottom: 15%; right: 30%; width: 22px; height: 46px;
  background: #0c0810;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ml-sil-b 10s ease-in-out infinite;
}
@keyframes ml-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ml-letter { 0% { opacity: 0.8; transform: translateX(-50%) scale(1) } 50% { opacity: 1; transform: translateX(-50%) scale(1.02) } 100% { opacity: 0.85; transform: translateX(-50%) scale(0.98) } }
@keyframes ml-candle { 0% { transform: scaleY(1); background-position: 0 0 } 50% { transform: scaleY(1.03); background-position: 0 2px } 100% { transform: scaleY(0.97); background-position: 0 -2px } }
@keyframes ml-sil-a { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ml-sil-b { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(0) } 100% { transform: translateY(-3px) rotate(-1deg) } }

/* englishwoman-meeting */
.scn-englishwoman-meeting {
  background: 
    linear-gradient(180deg, #7fbbd8 0%, #a8d8e8 40%, #e0f0f8 100%),
    radial-gradient(ellipse at 60% 20%, #f0f8ff 0%, transparent 60%);
}
.scn-englishwoman-meeting .sky-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a9fc0 0%, #8fc8e0 50%, transparent 100%);
  animation: em-sky 20s ease-in-out infinite alternate;
}
.scn-englishwoman-meeting .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,40,0,0.3);
  animation: em-hills 18s ease-in-out infinite alternate;
}
.scn-englishwoman-meeting .lake {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 22%;
  background: linear-gradient(180deg, #4a8aaa 0%, #6aabcc 40%, #4a7a9a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 -6px 12px rgba(0,20,40,0.2);
  animation: em-lake 12s ease-in-out infinite alternate;
}
.scn-englishwoman-meeting .ruins {
  position: absolute; bottom: 38%; right: 15%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px;
  clip-path: polygon(0 100%, 0 30%, 20% 10%, 50% 0%, 80% 10%, 100% 30%, 100% 100%);
  animation: em-ruins 25s ease-in-out infinite alternate;
}
.scn-englishwoman-meeting .figure-woman {
  position: absolute; bottom: 30%; left: 40%; width: 18px; height: 52px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: em-walk 6s ease-in-out infinite;
}
.scn-englishwoman-meeting .sunbeams {
  position: absolute; top: 5%; left: 10%; width: 80px; height: 150px;
  background: linear-gradient(135deg, rgba(255,255,240,0.3) 0%, rgba(255,255,240,0) 100%);
  filter: blur(8px);
  animation: em-beams 15s ease-in-out infinite alternate;
}
@keyframes em-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes em-hills { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(0.99) } }
@keyframes em-lake { 0% { background-position: 0 0; opacity: 0.95 } 50% { background-position: 10px 0; opacity: 1 } 100% { background-position: -10px 0; opacity: 0.9 } }
@keyframes em-ruins { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.02) rotate(0.5deg) } 100% { transform: scale(0.98) rotate(-0.5deg) } }
@keyframes em-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(20px) translateY(0) rotate(1deg) } }
@keyframes em-beams { 0% { opacity: 0.3; transform: scale(1) rotate(0) } 50% { opacity: 0.5; transform: scale(1.05) rotate(2deg) } 100% { opacity: 0.2; transform: scale(0.95) rotate(-2deg) } }

/* cocotte-dog */
.scn-cocotte-dog {
  background: 
    linear-gradient(180deg, #d6c4a0 0%, #e8d8b8 40%, #f0e4c8 100%),
    radial-gradient(ellipse at 40% 80%, #f8ecc8 0%, transparent 70%);
}
.scn-cocotte-dog .sky-warm {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8a888 0%, #e0d4b8 50%, transparent 100%);
  animation: cd-sky 15s ease-in-out infinite alternate;
}
.scn-cocotte-dog .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b8a06c 0%, #8a7440 100%);
  border-radius: 60% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(60,40,20,0.3);
}
.scn-cocotte-dog .cart {
  position: absolute; bottom: 25%; left: 20%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #6a5038 0%, #4a3224 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cd-cart 12s ease-in-out infinite alternate;
}
.scn-cocotte-dog .coachman {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 48px;
  background: #2a1a14;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cd-coach 6s ease-in-out infinite;
}
.scn-cocotte-dog .cocotte {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%;
  animation: cd-dog 4s ease-in-out infinite alternate;
}
.scn-cocotte-dog .puppy-a {
  position: absolute; bottom: 12%; left: 48%; width: 14px; height: 10px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  animation: cd-puppy 5s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-cocotte-dog .puppy-b {
  position: absolute; bottom: 10%; left: 54%; width: 12px; height: 8px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  animation: cd-puppy 5s ease-in-out infinite;
  animation-delay: -3s;
}
@keyframes cd-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cd-cart { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes cd-coach { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cd-dog { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(8px) scale(1.03) } 100% { transform: translateX(0) scale(0.97) } }
@keyframes cd-puppy { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(4px) translateY(-2px) } 50% { transform: translateX(8px) translateY(0) } 75% { transform: translateX(12px) translateY(-1px) } 100% { transform: translateX(16px) translateY(0) } }

/* cocotte-drowning */
.scn-cocotte-drowning {
  background: 
    linear-gradient(180deg, #2a3a40 0%, #1a2a30 40%, #0a1a20 100%),
    radial-gradient(ellipse at 50% 60%, #3a4a50 0%, transparent 70%);
}
.scn-cocotte-drowning .sky-gloom {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a4a50 0%, #5a6a70 40%, transparent 100%);
  animation: cw-sky 20s ease-in-out infinite alternate;
}
.scn-cocotte-drowning .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a3a40 0%, #1a2a30 100%);
  border-radius: 0 0 40% 60%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: cw-river 8s ease-in-out infinite alternate;
}
.scn-cocotte-drowning .bank {
  position: absolute; bottom: 30%; left: 0; width: 40%; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 0 40% 0 0;
}
.scn-cocotte-drowning .figure-francois {
  position: absolute; bottom: 30%; left: 15%; width: 22px; height: 50px;
  background: #0a0a14;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cw-francois 8s ease-in-out infinite;
}
.scn-cocotte-drowning .dog-sinking {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 0 2px #6a5a4a;
  animation: cw-sink 10s ease-in-out infinite;
}
.scn-cocotte-drowning .ripple {
  position: absolute; bottom: 18%; left: 48%; width: 40px; height: 6px;
  background: radial-gradient(ellipse, rgba(100,140,160,0.4) 0%, transparent 100%);
  filter: blur(3px);
  animation: cw-ripple 4s ease-in-out infinite;
}
@keyframes cw-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes cw-river { 0% { background-position: 0 0 } 50% { background-position: 10px 0 } 100% { background-position: -10px 0 } }
@keyframes cw-francois { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-4px) rotate(-2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cw-sink { 0% { transform: translateY(0) scale(1); opacity: 1 } 25% { transform: translateY(5px) scale(0.95); opacity: 0.8 } 50% { transform: translateY(15px) scale(0.85); opacity: 0.5 } 75% { transform: translateY(30px) scale(0.7); opacity: 0.2 } 100% { transform: translateY(50px) scale(0.5); opacity: 0 } }
@keyframes cw-ripple { 0% { transform: scale(1); opacity: 0.6 } 50% { transform: scale(1.3); opacity: 0.4 } 100% { transform: scale(1); opacity: 0.2 } }

.scn-margot-humiliation {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #1e1e30 100%),
    radial-gradient(ellipse at 70% 50%, #3a3a5a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-margot-humiliation .wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(90deg, #2a2a3e 0%, #3a3a52 50%, #2a2a3e 100%);
  animation: mh-wall 20s ease-in-out infinite alternate;
}
.scn-margot-humiliation .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #1a1a28 0%, #12121c 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-margot-humiliation .window {
  position: absolute;
  top: 12%; right: 15%;
  width: 80px; height: 100px;
  background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 100%);
  border: 4px solid #1a1a2e;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: mh-window 12s ease-in-out infinite alternate;
}
.scn-margot-humiliation .figure-margot {
  position: absolute;
  bottom: 35%; left: 25%;
  width: 50px; height: 120px;
  background: linear-gradient(180deg, #0a0a14 0%, #000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh-figure 8s ease-in-out infinite;
}
.scn-margot-humiliation .figure-simone {
  position: absolute;
  bottom: 32%; left: 45%;
  width: 35px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh-figure-simone 6s ease-in-out infinite alternate;
}
.scn-margot-humiliation .button-glow {
  position: absolute;
  top: 30%; left: 22%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #f0d080 0%, #c0a050 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #c0a050, 0 0 40px 16px rgba(192,160,80,.4);
  animation: mh-button 3s ease-in-out infinite alternate;
}
.scn-margot-humiliation .shadow {
  position: absolute;
  bottom: 15%; left: 15%; right: 15%;
  height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: mh-shadow 10s ease-in-out infinite alternate;
}

@keyframes mh-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes mh-window { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .7; transform: scale(0.95) } 100% { opacity: .6; transform: scale(1.02) } }
@keyframes mh-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes mh-figure-simone { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes mh-button { 0% { box-shadow: 0 0 15px 5px #c0a050, 0 0 30px 10px rgba(192,160,80,.3); opacity: .7 } 50% { box-shadow: 0 0 25px 10px #f0d080, 0 0 50px 20px rgba(240,208,128,.5); opacity: 1 } 100% { box-shadow: 0 0 18px 6px #c0a050, 0 0 35px 12px rgba(192,160,80,.35); opacity: .8 } }
@keyframes mh-shadow { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.2) } 100% { opacity: .5; transform: scaleX(0.9) } }

.scn-rosalie-trial {
  background:
    linear-gradient(180deg, #2e2e3a 0%, #1e1e28 50%, #14141a 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-rosalie-trial .kitchen-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2a2a36 0%, #1a1a22 100%);
  animation: rt-bg 15s ease-in-out infinite alternate;
}
.scn-rosalie-trial .table {
  position: absolute;
  bottom: 30%; left: 20%; right: 20%;
  height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: rt-table 10s ease-in-out infinite alternate;
}
.scn-rosalie-trial .stove {
  position: absolute;
  bottom: 25%; right: 10%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,.4);
  animation: rt-stove 12s ease-in-out infinite;
}
.scn-rosalie-trial .candle {
  position: absolute;
  bottom: 40%; left: 15%;
  width: 6px; height: 50px;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 2px;
}
.scn-rosalie-trial .figure-rosalie {
  position: absolute;
  bottom: 25%; left: 35%;
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1a24 0%, #0a0a12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rt-figure 9s ease-in-out infinite;
}
.scn-rosalie-trial .bundle {
  position: absolute;
  bottom: 28%; left: 28%;
  width: 30px; height: 25px;
  background: radial-gradient(ellipse at 50% 50%, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: rt-bundle 7s ease-in-out infinite alternate;
}
.scn-rosalie-trial .pillow {
  position: absolute;
  bottom: 25%; left: 20%;
  width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: rt-pillow 11s ease-in-out infinite;
}

@keyframes rt-bg { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes rt-table { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(0.95) } 100% { transform: translateY(0) scaleX(1.02) } }
@keyframes rt-stove { 0% { opacity: .6; transform: scale(1) } 50% { opacity: .8; transform: scale(0.98) } 100% { opacity: .7; transform: scale(1.01) } }
@keyframes rt-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes rt-bundle { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.98) } }
@keyframes rt-pillow { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }

.scn-saval-sadness {
  background:
    linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 40%, #2a2a1a 100%),
    radial-gradient(ellipse at 50% 0%, #8a8a7a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-saval-sadness .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 100%);
  animation: sv-sky 20s ease-in-out infinite alternate;
}
.scn-saval-sadness .river {
  position: absolute;
  bottom: 20%; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: sv-river 15s ease-in-out infinite alternate;
}
.scn-saval-sadness .bank {
  position: absolute;
  bottom: 30%; left: 0; right: 30%;
  height: 20%;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%);
  border-radius: 0 60% 0 0 / 0 80% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.3);
}
.scn-saval-sadness .tree {
  position: absolute;
  bottom: 30%; left: 10%;
  width: 40px; height: 120px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: sv-tree 25s ease-in-out infinite alternate;
}
.scn-saval-sadness .figure-saval {
  position: absolute;
  bottom: 25%; left: 35%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a14 0%, #0a0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sv-figure 8s ease-in-out infinite;
}
.scn-saval-sadness .fallen-leaves {
  position: absolute;
  bottom: 28%; left: 20%; right: 10%;
  height: 10px;
  background: radial-gradient(ellipse at 20% 50%, #6a4a2a 0%, transparent 70%),
              radial-gradient(ellipse at 60% 50%, #5a3a1a 0%, transparent 70%),
              radial-gradient(ellipse at 80% 50%, #7a5a3a 0%, transparent 70%);
  filter: blur(2px);
  animation: sv-leaves 12s ease-in-out infinite alternate;
}

@keyframes sv-sky { 0% { opacity: .6; transform: scaleY(1) } 50% { opacity: .8; transform: scaleY(0.95) } 100% { opacity: .7; transform: scaleY(1.02) } }
@keyframes sv-river { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(3px) } }
@keyframes sv-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes sv-figure { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes sv-leaves { 0% { opacity: .3; transform: scaleY(1) } 50% { opacity: .5; transform: scaleY(0.8) } 100% { opacity: .4; transform: scaleY(1.1) } }

.scn-saval-confession {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 50%, #c8a060 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-saval-confession .room-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  animation: sc-room 20s ease-in-out infinite alternate;
}
.scn-saval-confession .fireplace {
  position: absolute;
  bottom: 20%; left: 10%;
  width: 80px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
}
.scn-saval-confession .table {
  position: absolute;
  bottom: 35%; left: 30%; right: 30%;
  height: 15px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 3px 8px rgba(0,0,0,.3);
  animation: sc-table 14s ease-in-out infinite alternate;
}
.scn-saval-confession .pears {
  position: absolute;
  bottom: 38%; left: 40%;
  width: 20px; height: 25px;
  background: radial-gradient(ellipse at 50% 50%, #c8a040 0%, #a08030 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: sc-pears 6s ease-in-out infinite alternate;
}
.scn-saval-confession .figure-saval {
  position: absolute;
  bottom: 25%; left: 25%;
  width: 35px; height: 90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-figure-saval 9s ease-in-out infinite;
}
.scn-saval-confession .figure-madame {
  position: absolute;
  bottom: 28%; left: 50%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-figure-madame 11s ease-in-out infinite alternate;
}
.scn-saval-confession .candlelight {
  position: absolute;
  top: 30%; left: 35%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #f0d080 0%, #d0a050 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(208,160,80,.6), 0 0 80px 40px rgba(208,160,80,.3);
  animation: sc-candle 4s ease-in-out infinite alternate;
}

@keyframes sc-room { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes sc-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc-pears { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.95) } }
@keyframes sc-figure-saval { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes sc-figure-madame { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes sc-candle { 0% { box-shadow: 0 0 30px 15px rgba(208,160,80,.5), 0 0 60px 30px rgba(208,160,80,.2); opacity: .8 } 50% { box-shadow: 0 0 50px 25px rgba(208,160,80,.8), 0 0 100px 50px rgba(208,160,80,.4); opacity: 1 } 100% { box-shadow: 0 0 35px 18px rgba(208,160,80,.6), 0 0 70px 35px rgba(208,160,80,.3); opacity: .9 } }

.scn-marguerite-deathbed {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #3a2a24 100%), radial-gradient(ellipse at 40% 60%, #2a1e1a 0%, transparent 70%);
}
.scn-marguerite-deathbed .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1f1814 0%, #2f241e 50%, #1f1814 100%);
  animation: md-wall 20s ease-in-out infinite alternate;
}
.scn-marguerite-deathbed .bed {
  position: absolute; bottom: 15%; left: 25%; width: 55%; height: 30%;
  background: linear-gradient(180deg, #4a352a 0%, #2a1e1a 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 12px 20px rgba(0,0,0,.6);
  animation: md-bed 6s ease-in-out infinite;
}
.scn-marguerite-deathbed .marguerite {
  position: absolute; bottom: 28%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a24 0%, #1f1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: md-fig 4s ease-in-out infinite;
}
.scn-marguerite-deathbed .suzanne {
  position: absolute; bottom: 18%; left: 32%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: md-fig 3s ease-in-out infinite 1s;
}
.scn-marguerite-deathbed .priest {
  position: absolute; bottom: 20%; right: 22%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: md-priest 8s ease-in-out infinite;
}
.scn-marguerite-deathbed .candle {
  position: absolute; bottom: 50%; left: 15%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #f0a060 0%, #b07030 100%);
  border-radius: 2px; box-shadow: 0 0 24px 8px #f0a060, 0 0 48px 16px rgba(240,160,96,.4);
  animation: md-candle 1s ease-in-out infinite alternate;
}
.scn-marguerite-deathbed .shadow {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: md-shadow 6s ease-in-out infinite;
}
@keyframes md-wall {
  0% { opacity: .85 }
  50% { opacity: .95 }
  100% { opacity: .85 }
}
@keyframes md-bed {
  0%,100% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
}
@keyframes md-fig {
  0% { transform: translateX(0) translateY(0) rotate(-1deg) }
  50% { transform: translateX(2px) translateY(-1px) rotate(1deg) }
  100% { transform: translateX(-1px) translateY(0) rotate(0) }
}
@keyframes md-priest {
  0%,100% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-3px) scaleY(1.02) }
}
@keyframes md-candle {
  0% { box-shadow: 0 0 20px 6px #f0a060, 0 0 40px 12px rgba(240,160,96,.3); opacity: .85 }
  100% { box-shadow: 0 0 30px 10px #f0a060, 0 0 60px 20px rgba(240,160,96,.5); opacity: 1 }
}
@keyframes md-shadow {
  0%,100% { opacity: .6 }
  50% { opacity: .8 }
}

.scn-marguerite-confession {
  background: linear-gradient(180deg, #1f1a1e 0%, #2f242a 40%, #1f1a1e 100%), radial-gradient(ellipse at 50% 30%, #3f3038 0%, transparent 70%);
}
.scn-marguerite-confession .room-shadow {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1418 0%, transparent 50%);
  animation: mc-shadow 12s ease-in-out infinite alternate;
}
.scn-marguerite-confession .marguerite-sit {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #3a2a30 0%, #1f181c 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: mc-sit 4s ease-in-out infinite;
}
.scn-marguerite-confession .suzanne-kneel {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #2a2024 0%, #181014 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center; animation: mc-kneel 3s ease-in-out infinite 0.5s;
}
.scn-marguerite-confession .priest-stand {
  position: absolute; bottom: 15%; right: 25%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a2228 0%, #1a1418 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: mc-stand 8s ease-in-out infinite;
}
.scn-marguerite-confession .cross {
  position: absolute; bottom: 40%; left: 18%; width: 4px; height: 28px;
  background: #4a3a40; border-radius: 1px; box-shadow: 0 0 8px 2px rgba(200,160,120,.2);
  animation: mc-cross 6s ease-in-out infinite alternate;
}
.scn-marguerite-confession .light-beam {
  position: absolute; top: 0; left: 45%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(200,180,160,.15) 0%, transparent 100%);
  animation: mc-light 5s ease-in-out infinite;
}
@keyframes mc-shadow { 0% { opacity: .7 } 100% { opacity: .9 } }
@keyframes mc-sit { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes mc-kneel { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes mc-stand { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } }
@keyframes mc-cross { 0% { opacity: .7; box-shadow: 0 0 4px 1px rgba(200,160,120,.1) } 100% { opacity: 1; box-shadow: 0 0 12px 4px rgba(200,160,120,.3) } }
@keyframes mc-light { 0%,100% { opacity: .3 } 50% { opacity: .6 } }

.scn-coco-horse {
  background: linear-gradient(180deg, #f4e4c0 0%, #d4c4a0 40%, #a49470 100%), radial-gradient(ellipse at 30% 80%, #d4c4a0 0%, transparent 60%);
}
.scn-coco-horse .sky-bright {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #f8e8d0 0%, #e8d8b8 100%);
  animation: ch-sky 20s ease-in-out infinite alternate;
}
.scn-coco-horse .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%);
  border-radius: 10% 20% 0 0 / 20% 30% 0 0;
  animation: ch-ground 10s ease-in-out infinite;
}
.scn-coco-horse .horse {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 40% 20% 30% 30% / 50% 30% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,.3);
  animation: ch-horse 6s ease-in-out infinite;
}
.scn-coco-horse .zidore {
  position: absolute; bottom: 28%; left: 50%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ch-boy 2s ease-in-out infinite;
}
.scn-coco-horse .rope {
  position: absolute; bottom: 35%; left: 28%; width: 30%; height: 2px;
  background: #5a4a3a; border-radius: 1px;
  animation: ch-rope 4s ease-in-out infinite alternate;
}
.scn-coco-horse .fence {
  position: absolute; bottom: 20%; left: 0; width: 100%; height: 4px;
  background: #8a7a5a; box-shadow: 0 8px 0 #8a7a5a, 0 16px 0 #8a7a5a;
  animation: ch-fence 15s linear infinite;
}
@keyframes ch-sky { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ch-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ch-horse { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ch-boy { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(4px) rotate(5deg) } 50% { transform: translateX(8px) rotate(-5deg) } 75% { transform: translateX(12px) rotate(5deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes ch-rope { 0% { transform: scaleX(1) } 100% { transform: scaleX(0.8) } }
@keyframes ch-fence { 0% { background-position: 0 0 } 100% { background-position: -100px 0 } }

.scn-coco-death {
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 40%, #988878 100%), radial-gradient(ellipse at 50% 100%, #b8a890 0%, transparent 60%);
}
.scn-coco-death .sky-dull {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #c8b8a0 0%, #b8a890 100%);
  animation: cd-sky 25s ease-in-out infinite alternate;
}
.scn-coco-death .ground-dead {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 10% 20% 0 0 / 20% 30% 0 0;
  animation: cd-ground 12s ease-in-out infinite;
}
.scn-coco-death .horse-dead {
  position: absolute; bottom: 20%; left: 25%; width: 80px; height: 45px;
  background: linear-gradient(180deg, #a89880 0%, #888878 100%);
  border-radius: 40% 20% 30% 30% / 50% 30% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: cd-horse 8s ease-in-out infinite;
}
.scn-coco-death .boy-sit {
  position: absolute; bottom: 22%; left: 45%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cd-boy 6s ease-in-out infinite;
}
.scn-coco-death .mound {
  position: absolute; bottom: 15%; left: 22%; width: 35%; height: 8%;
  background: radial-gradient(ellipse at 50% 100%, #5a6a4a 0%, #4a5a3a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  animation: cd-mound 20s ease-in-out infinite alternate;
}
.scn-coco-death .fly-swarm {
  position: absolute; top: 35%; left: 35%; width: 60px; height: 40px;
  background: radial-gradient(circle, rgba(80,60,40,.2) 0%, transparent 100%);
  filter: blur(6px); animation: cd-flies 3s ease-in-out infinite;
}
@keyframes cd-sky { 0% { opacity: .85 } 50% { opacity: .95 } 100% { opacity: .8 } }
@keyframes cd-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes cd-horse { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(1px) scaleY(0.98) } }
@keyframes cd-boy { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(3deg) } }
@keyframes cd-mound { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.05) } }
@keyframes cd-flies { 0%,100% { transform: scale(1) } 50% { transform: scale(1.3) } }

/* Scene: dufour-kiss-aftermath (tense, sunlit) */
.scn-dufour-kiss-aftermath {
  background: linear-gradient(180deg, #87ceeb 0%, #f9e79f 60%, #b8860b 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,255,200,0.3) 0%, transparent 60%);
}
.scn-dufour-kiss-aftermath .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5dade2 0%, #f9e79f 100%); animation: dka-sky 6s ease-in-out infinite alternate; }
.scn-dufour-kiss-aftermath .sun { position:absolute; top:8%; left:25%; width:60px; height:60px; background: radial-gradient(circle, #f7dc6f 0%, #e67e22 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(247,220,111,0.5); animation: dka-sun 4s ease-in-out infinite alternate; }
.scn-dufour-kiss-aftermath .field { position:absolute; bottom:10%; left:0; right:0; height:55%; background: linear-gradient(180deg, #d4ac0d 0%, #7d6608 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: dka-field 8s ease-in-out infinite; }
.scn-dufour-kiss-aftermath .tree-left { position:absolute; bottom:35%; left:10%; width:40px; height:90px; background: linear-gradient(180deg, #6c3483 0%, #4a235a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform: rotate(-5deg); animation: dka-tree 10s ease-in-out infinite; }
.scn-dufour-kiss-aftermath .tree-right { position:absolute; bottom:38%; right:15%; width:50px; height:100px; background: linear-gradient(180deg, #6c3483 0%, #4a235a 100%); border-radius: 60% 40% 20% 20% / 70% 70% 20% 20%; transform: rotate(8deg); animation: dka-tree 12s ease-in-out infinite reverse; }
.scn-dufour-kiss-aftermath .figure-walker { position:absolute; bottom:20%; left:20%; width:20px; height:45px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dka-walk 3s ease-in-out infinite; }
.scn-dufour-kiss-aftermath .figure-walked { position:absolute; bottom:20%; right:25%; width:20px; height:45px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: dka-walk 3.5s ease-in-out infinite 0.5s; }
@keyframes dka-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dka-sun { 0% { transform:scale(1); box-shadow:0 0 30px 15px rgba(247,220,111,0.4) } 50% { transform:scale(1.1); box-shadow:0 0 50px 25px rgba(247,220,111,0.6) } 100% { transform:scale(0.95); box-shadow:0 0 35px 18px rgba(247,220,111,0.45) } }
@keyframes dka-field { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-4px) scaleY(1.02) } 100% { transform:translateY(2px) scaleY(0.98) } }
@keyframes dka-tree { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-2deg) translateY(-6px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes dka-walk { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(10px) translateY(-3px) rotate(1deg) } 50% { transform:translateX(20px) translateY(0) rotate(-1deg) } 75% { transform:translateX(10px) translateY(-2px) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(-2deg) } }

/* Scene: dufour-second-encounter (warm, sunlit) */
.scn-dufour-second-encounter {
  background: linear-gradient(180deg, #fdf5e6 0%, #ffe5b4 40%, #c29b57 100%),
              radial-gradient(ellipse at 50% 0%, #fffacd 0%, transparent 70%);
}
.scn-dufour-second-encounter .grass { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8fbc8f 0%, #2e8b57 100%); border-radius: 60% 40% 0 0 / 50% 50% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,0.2); animation: dse-grass 12s ease-in-out infinite; }
.scn-dufour-second-encounter .tree-canopy { position:absolute; top:5%; left:30%; width:120px; height:80px; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; filter: blur(2px); animation: dse-canopy 20s linear infinite; }
.scn-dufour-second-encounter .figure-seated { position:absolute; bottom:30%; left:30%; width:22px; height:35px; background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: dse-fig1 6s ease-in-out infinite; }
.scn-dufour-second-encounter .figure-lying { position:absolute; bottom:25%; left:55%; width:25px; height:50px; background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%); border-radius: 50% 50% 10% 10% / 30% 30% 10% 10%; transform: rotate(80deg); transform-origin: bottom center; animation: dse-fig2 8s ease-in-out infinite; }
.scn-dufour-second-encounter .figure-standing { position:absolute; bottom:30%; left:65%; width:20px; height:48px; background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dse-fig3 5s ease-in-out infinite; }
.scn-dufour-second-encounter .butterfly { position:absolute; top:35%; left:20%; width:12px; height:8px; background: #deb887; border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 0 6px 2px rgba(222,184,135,0.5); animation: dse-butterfly 7s ease-in-out infinite alternate; }
@keyframes dse-grass { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.01) } 100% { transform:translateY(1px) scaleY(0.99) } }
@keyframes dse-canopy { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(10px) rotate(2deg) } 100% { transform:translateX(-10px) rotate(-2deg) } }
@keyframes dse-fig1 { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-4px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes dse-fig2 { 0% { transform:rotate(80deg) translateY(0) } 50% { transform:rotate(75deg) translateY(2px) } 100% { transform:rotate(80deg) translateY(0) } }
@keyframes dse-fig3 { 0% { transform:translateX(0) translateY(0) } 25% { transform:translateX(8px) translateY(-2px) } 50% { transform:translateX(16px) translateY(0) } 75% { transform:translateX(8px) translateY(-2px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes dse-butterfly { 0% { transform:translate(0,0) rotate(0deg) scale(1) } 50% { transform:translate(30px,-20px) rotate(15deg) scale(1.2) } 100% { transform:translate(60px,10px) rotate(-10deg) scale(0.8) } }

/* Scene: cannes-carnival (warm, sunlit, sunset) */
.scn-cannes-carnival {
  background: linear-gradient(180deg, #ffb347 0%, #ff8c00 40%, #ffd700 100%),
              radial-gradient(ellipse at 70% 80%, #ff6347 0%, transparent 60%);
}
.scn-cannes-carnival .sea-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0e68c 0%, #87ceeb 60%, #4682b4 100%); animation: cc-sea-sky 15s ease-in-out infinite; }
.scn-cannes-carnival .sunset { position:absolute; bottom:35%; left:60%; width:80px; height:80px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,140,0,0.4); animation: cc-sunset 5s ease-in-out infinite alternate; }
.scn-cannes-carnival .carriage { position:absolute; bottom:35%; left:20%; width:100px; height:60px; background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); animation: cc-carriage 4s ease-in-out infinite; }
.scn-cannes-carnival .wheel-front { position:absolute; bottom:28%; left:25%; width:30px; height:30px; background: #2c3e50; border-radius:50%; border: 4px solid #7f8c8d; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: cc-wheel 0.5s linear infinite; }
.scn-cannes-carnival .wheel-back { position:absolute; bottom:28%; left:50%; width:30px; height:30px; background: #2c3e50; border-radius:50%; border: 4px solid #7f8c8d; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: cc-wheel 0.5s linear infinite reverse; }
.scn-cannes-carnival .flowers-left { position:absolute; bottom:50%; left:10%; width:60px; height:40px; background: radial-gradient(circle, #ff69b4 0%, #ff1493 30%, #ffa07a 70%, transparent 90%); border-radius:50%; filter: blur(3px); animation: cc-flowers 6s ease-in-out infinite alternate; }
.scn-cannes-carnival .flowers-right { position:absolute; bottom:50%; left:45%; width:50px; height:30px; background: radial-gradient(circle, #ff6347 0%, #ff4500 30%, #ffd700 70%, transparent 90%); border-radius:50%; filter: blur(3px); animation: cc-flowers 7s ease-in-out infinite alternate 1s; }
.scn-cannes-carnival .woman-silhouette-a { position:absolute; bottom:38%; left:30%; width:18px; height:40px; background: #2c3e50; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cc-woman 3s ease-in-out infinite; }
.scn-cannes-carnival .woman-silhouette-b { position:absolute; bottom:38%; left:40%; width:18px; height:40px; background: #2c3e50; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: cc-woman 3.5s ease-in-out infinite 0.5s; }
@keyframes cc-sea-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cc-sunset { 0% { transform:scale(1) translateY(0); box-shadow:0 0 40px 20px rgba(255,140,0,0.3) } 50% { transform:scale(1.15) translateY(-5px); box-shadow:0 0 80px 40px rgba(255,140,0,0.5) } 100% { transform:scale(0.95) translateY(2px); box-shadow:0 0 50px 25px rgba(255,140,0,0.35) } }
@keyframes cc-carriage { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-5px) rotate(1deg) } 100% { transform:translateY(2px) rotate(-1deg) } }
@keyframes cc-wheel { 0% { transform:rotate(0deg) } 100% { transform:rotate(360deg) } }
@keyframes cc-flowers { 0% { opacity:0.7; transform:scale(1) rotate(0deg) } 50% { opacity:1; transform:scale(1.2) rotate(5deg) } 100% { opacity:0.8; transform:scale(0.9) rotate(-3deg) } }
@keyframes cc-woman { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(5px) translateY(-3px) rotate(1deg) } 50% { transform:translateX(10px) translateY(0) rotate(-1deg) } 75% { transform:translateX(5px) translateY(-2px) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(-2deg) } }

/* Scene: rose-maid-identity (tense, dim-interior) */
.scn-rose-maid-identity {
  background: linear-gradient(180deg, #1a1a2e 0%, #2d2d44 40%, #16162a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 70%);
}
.scn-rose-maid-identity .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3b3b5e 0%, #2a2a44 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.7); animation: rmi-wall 8s ease-in-out infinite alternate; }
.scn-rose-maid-identity .room-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a44 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.8); animation: rmi-floor 10s ease-in-out infinite; }
.scn-rose-maid-identity .table { position:absolute; bottom:20%; left:40%; width:80px; height:20px; background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1a 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: rmi-table 6s ease-in-out infinite; }
.scn-rose-maid-identity .lamp { position:absolute; bottom:40%; left:45%; width:8px; height:15px; background: radial-gradient(circle, #ffd700 0%, #b8860b 80%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,215,0,0.4), 0 0 60px 20px rgba(255,215,0,0.2); animation: rmi-lamp 4s ease-in-out infinite alternate; }
.scn-rose-maid-identity .policeman { position:absolute; bottom:20%; left:20%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: rmi-police 5s ease-in-out infinite; }
.scn-rose-maid-identity .maid { position:absolute; bottom:20%; right:25%; width:20px; height:48px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: rmi-maid 7s ease-in-out infinite; }
@keyframes rmi-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes rmi-floor { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(1px) } }
@keyframes rmi-table { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(2deg) } 100% { transform:translateY(1px) rotate(-1deg) } }
@keyframes rmi-lamp { 0% { opacity:0.7; transform:scale(1) rotate(-5deg); box-shadow:0 0 20px 8px rgba(255,215,0,0.3), 0 0 40px 15px rgba(255,215,0,0.1) } 50% { opacity:1; transform:scale(1.1) rotate(5deg); box-shadow:0 0 40px 15px rgba(255,215,0,0.5), 0 0 80px 30px rgba(255,215,0,0.3) } 100% { opacity:0.8; transform:scale(0.95) rotate(0deg); box-shadow:0 0 25px 10px rgba(255,215,0,0.35), 0 0 50px 20px rgba(255,215,0,0.15) } }
@keyframes rmi-police { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(4px) translateY(-3px) rotate(1deg) } 50% { transform:translateX(8px) translateY(0) rotate(-1deg) } 75% { transform:translateX(4px) translateY(-2px) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(-1deg) } }
@keyframes rmi-maid { 0% { transform:scaleX(-1) translateX(0) translateY(0) } 50% { transform:scaleX(-1) translateX(-6px) translateY(-4px) } 100% { transform:scaleX(-1) translateX(0) translateY(0) } }

/* bandit-st-lucia – sunlit tense */
.scn-bandit-st-lucia {
  background: linear-gradient(180deg, #5b8cbf 0%, #9bb8d9 40%, #f2d58c 70%, #f2c84b 100%);
  box-shadow: inset 0 0 60px rgba(242,200,75,.3);
}
.scn-bandit-st-lucia .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a6991 0%, #7ba6c9 50%, transparent 100%);
  animation: bsl-sky 30s ease-in-out infinite alternate;
}
.scn-bandit-st-lucia .mountains {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: bsl-mountains 12s ease-in-out infinite;
}
.scn-bandit-st-lucia .sun {
  position: absolute; top: 15%; right: 20%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff5cc 0%, #ffd966 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,217,102,.5);
  animation: bsl-sun 6s ease-in-out infinite alternate;
}
.scn-bandit-st-lucia .figure-bandit {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bsl-walk 4s ease-in-out infinite;
}
.scn-bandit-st-lucia .figure-sister {
  position: absolute; bottom: 20%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bsl-stand 4s ease-in-out infinite alternate;
}
.scn-bandit-st-lucia .path {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #b8885a 0%, #7a5c3a 100%);
  border-radius: 30% 20% 20% 30% / 100% 100% 100% 100%;
  transform: scale(1.2);
  animation: bsl-path 8s ease-in-out infinite;
}
.scn-bandit-st-lucia .shadow {
  position: absolute; bottom: 18%; left: 44%; width: 30px; height: 8px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(3px);
  animation: bsl-shadow 4s ease-in-out infinite;
}
@keyframes bsl-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bsl-mountains { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes bsl-sun { 0% { box-shadow: 0 0 60px 20px rgba(255,217,102,.4); opacity:.9 } 50% { box-shadow: 0 0 100px 40px rgba(255,217,102,.7); opacity:1 } 100% { box-shadow: 0 0 80px 30px rgba(255,217,102,.5); opacity:.95 } }
@keyframes bsl-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-2deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes bsl-stand { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bsl-path { 0% { transform: scale(1.2) skewX(0) } 50% { transform: scale(1.25) skewX(2deg) } 100% { transform: scale(1.2) skewX(0) } }
@keyframes bsl-shadow { 0% { opacity: .5; transform: scale(1) } 50% { opacity: .3; transform: scale(0.8) } 100% { opacity: .5; transform: scale(1) } }

/* vendetta-duty – moonlit dark */
.scn-vendetta-duty {
  background: linear-gradient(180deg, #0d111a 0%, #1a2030 40%, #2a3a4a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
}
.scn-vendetta-duty .night-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a2233 0%, #2a3a55 70%, transparent 100%);
  animation: vd-sky 20s ease-in-out infinite alternate;
}
.scn-vendetta-duty .moon {
  position: absolute; top: 10%; left: 65%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e6e6ff 0%, #b3cce6 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(179,204,230,.4);
  animation: vd-moon 8s ease-in-out infinite alternate;
}
.scn-vendetta-duty .mountains-dark {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.8);
  animation: vd-mountains 15s ease-in-out infinite;
}
.scn-vendetta-duty .bandit-left {
  position: absolute; bottom: 18%; left: 35%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1c1c1c 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vd-figure-l 6s ease-in-out infinite;
}
.scn-vendetta-duty .bandit-right {
  position: absolute; bottom: 19%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #111111 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vd-figure-r 6s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-vendetta-duty .fire-glow {
  position: absolute; bottom: 12%; left: 60%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #ff6633 0%, #cc3300 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: vd-fire 3s ease-in-out infinite alternate;
}
.scn-vendetta-duty .smoke {
  position: absolute; bottom: 25%; left: 55%; width: 50px; height: 80px;
  background: radial-gradient(ellipse, rgba(200,200,200,.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: vd-smoke 12s ease-in-out infinite;
}
@keyframes vd-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes vd-moon { 0% { box-shadow: 0 0 40px 15px rgba(179,204,230,.3); opacity:.85 } 50% { box-shadow: 0 0 80px 30px rgba(179,204,230,.5); opacity:1 } 100% { box-shadow: 0 0 50px 20px rgba(179,204,230,.35); opacity:.9 } }
@keyframes vd-mountains { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes vd-figure-l { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes vd-figure-r { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes vd-fire { 0% { opacity:.3; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.5; transform: scale(0.9) } }
@keyframes vd-smoke { 0% { opacity:0; transform: translateY(0) scale(1) } 50% { opacity:.4; transform: translateY(-20px) scale(1.3) } 100% { opacity:0; transform: translateY(-50px) scale(1.6) } }

/* courbataille-grave – moonlit dark */
.scn-courbataille-grave {
  background: linear-gradient(180deg, #0a0f1a 0%, #172233 40%, #2a3a4a 100%);
  box-shadow: inset 0 0 100px rgba(0,0,20,.7);
}
.scn-courbataille-grave .grave-sky {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a2b3a 0%, #2a3d55 70%, transparent 100%);
  animation: cg-sky 25s ease-in-out infinite alternate;
}
.scn-courbataille-grave .grave-moon {
  position: absolute; top: 5%; right: 15%; width: 55px; height: 55px;
  background: radial-gradient(circle, #d9e6f2 0%, #a3c2d9 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 25px rgba(163,194,217,.4);
  animation: cg-moon 10s ease-in-out infinite alternate;
}
.scn-courbataille-grave .gravestones {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #2a3344 0%, #1a1a2e 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,.8);
  animation: cg-stones 20s ease-in-out infinite;
}
.scn-courbataille-grave .coffin {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.7);
  transform: rotate(-5deg);
  animation: cg-coffin 5s ease-in-out infinite;
}
.scn-courbataille-grave .digger {
  position: absolute; bottom: 22%; left: 35%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cg-digger 3s ease-in-out infinite;
}
.scn-courbataille-grave .watchman {
  position: absolute; bottom: 20%; left: 60%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #111111 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cg-watchman 4s ease-in-out infinite alternate;
}
.scn-courbataille-grave .dirt {
  position: absolute; bottom: 15%; left: 32%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 0 0;
  animation: cg-dirt 3s ease-in-out infinite;
}
@keyframes cg-sky { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes cg-moon { 0% { box-shadow: 0 0 60px 20px rgba(163,194,217,.3); opacity:.8 } 50% { box-shadow: 0 0 100px 40px rgba(163,194,217,.5); opacity:1 } 100% { box-shadow: 0 0 70px 25px rgba(163,194,217,.35); opacity:.9 } }
@keyframes cg-stones { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes cg-coffin { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes cg-digger { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(-3deg) } 75% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cg-watchman { 0% { transform: translateY(0) rotate(0); opacity:.7 } 50% { transform: translateY(-2px) rotate(2deg); opacity:1 } 100% { transform: translateY(0) rotate(0); opacity:.8 } }
@keyframes cg-dirt { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1) translateY(-3px) } 100% { transform: scale(1) translateY(0) } }

/* courbataille-defense – dim interior */
.scn-courbataille-defense {
  background: linear-gradient(180deg, #1a1008 0%, #2a1a10 30%, #3a2a18 60%, #4a3828 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.8);
}
.scn-courbataille-defense .court-wall {
  position: absolute; inset: 0 10% 0 10%;
  background: linear-gradient(90deg, #2a1a10 0%, #3a2818 50%, #2a1a10 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
  animation: cd-wall 30s ease-in-out infinite alternate;
}
.scn-courbataille-defense .bench {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 5%;
  box-shadow: 0 -4px 10px rgba(0,0,0,.6);
  animation: cd-bench 8s ease-in-out infinite;
}
.scn-courbataille-defense .judge {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%); width: 35px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(0,0,0,.8);
  animation: cd-judge 6s ease-in-out infinite alternate;
}
.scn-courbataille-defense .defendant {
  position: absolute; bottom: 18%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-defendant 4s ease-in-out infinite;
}
.scn-courbataille-defense .candle-glow {
  position: absolute; bottom: 25%; right: 15%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 20%, #ffcc66 0%, #cc9900 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cd-candle 2s ease-in-out infinite alternate;
}
.scn-courbataille-defense .candle-body {
  position: absolute; bottom: 25%; right: 18%; width: 8px; height: 35px;
  background: linear-gradient(180deg, #f2d58c 0%, #b88c4a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px rgba(255,204,102,.3);
  animation: cd-candlebody 2s ease-in-out infinite alternate;
}
@keyframes cd-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cd-bench { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes cd-judge { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes cd-defendant { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cd-candle { 0% { opacity:.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(0.95) } }
@keyframes cd-candlebody { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }

.scn-courbataille-acquittal {
  background: linear-gradient(180deg, #1c1a24 0%, #2a252e 40%, #3a3030 100%), radial-gradient(ellipse at 50% 70%, #4a3a3a 0%, transparent 60%);
}

.scn-courbataille-acquittal .wall {
  position: absolute;
  inset: 0 0 0 0;
  background: repeating-linear-gradient(90deg, #2e2a34 0px, #2e2a34 2px, #1c1a24 2px, #1c1a24 4px);
  background-size: 8px 100%;
  animation: ca-wall-drift 30s linear infinite;
}

.scn-courbataille-acquittal .bench {
  position: absolute;
  bottom: 40%;
  left: 30%;
  width: 40%;
  height: 20%;
  background: linear-gradient(180deg, #4a3e3e 0%, #2a1e1e 100%);
  border-radius: 6px;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
  animation: ca-bench-sway 10s ease-in-out infinite alternate;
}

.scn-courbataille-acquittal .judge {
  position: absolute;
  bottom: 45%;
  left: 45%;
  width: 24px;
  height: 60px;
  background: linear-gradient(180deg, #0f0c0f 0%, #0f0c0f 30%, #1a1517 30%, #1a1517 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: ca-judge-breathe 6s ease-in-out infinite;
}

.scn-courbataille-acquittal .defendant {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 22px;
  height: 50px;
  background: #0d090a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ca-defendant-shift 8s ease-in-out infinite;
}

.scn-courbataille-acquittal .juror-1,
.scn-courbataille-acquittal .juror-2,
.scn-courbataille-acquittal .juror-3 {
  position: absolute;
  width: 14px;
  height: 18px;
  background: #1e191c;
  border-radius: 50%;
  box-shadow: inset 0 1px 2px rgba(255,255,255,.05);
  animation: ca-juror-sway 6s ease-in-out infinite alternate;
}

.scn-courbataille-acquittal .juror-1 { bottom: 35%; left: 55%; }
.scn-courbataille-acquittal .juror-2 { bottom: 35%; left: 62%; animation-delay: 1.5s; }
.scn-courbataille-acquittal .juror-3 { bottom: 35%; left: 69%; animation-delay: 3s; }

.scn-courbataille-acquittal .lantern {
  position: absolute;
  top: 20%;
  left: 50%;
  width: 12px;
  height: 18px;
  background: radial-gradient(circle at 50% 50%, #f0c068 0%, #b08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.3);
  animation: ca-lantern-swing 4s ease-in-out infinite alternate;
}

.scn-courbataille-acquittal .shadow {
  position: absolute;
  bottom: 35%;
  left: 18%;
  width: 30px;
  height: 8px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  transform: scaleX(0.6);
  animation: ca-shadow-pulse 8s ease-in-out infinite;
}

@keyframes ca-wall-drift {
  0% { background-position: 0 0; }
  50% { background-position: -4px 0; }
  100% { background-position: 0 0; }
}

@keyframes ca-bench-sway {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}

@keyframes ca-judge-breathe {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}

@keyframes ca-defendant-shift {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(3px); }
  100% { transform: rotate(0deg) translateX(0); }
}

@keyframes ca-juror-sway {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

@keyframes ca-lantern-swing {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(2px); }
  100% { transform: rotate(-5deg) translateX(0); }
}

@keyframes ca-shadow-pulse {
  0% { transform: scaleX(0.6) scaleY(1); opacity: .4; }
  50% { transform: scaleX(0.8) scaleY(1.2); opacity: .6; }
  100% { transform: scaleX(0.6) scaleY(1); opacity: .4; }
}

/* dufour-fun-at-bezons */
.scn-dufour-fun-at-bezons {
  background: linear-gradient(180deg, #f0e6c0 0%, #d4c88a 40%, #b8a85a 100%), radial-gradient(ellipse at 50% 100%, #e8d098 0%, transparent 70%);
}
.scn-dufour-fun-at-bezons .bg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8fc8f0 0%, #b0d8f0 60%, #e0f0f8 100%);
  animation: dfb-sky 16s ease-in-out infinite alternate;
}
.scn-dufour-fun-at-bezons .bg-grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7ab858 0%, #5a9038 50%, #3d6020 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: dfb-grass 12s ease-in-out infinite alternate;
}
.scn-dufour-fun-at-bezons .tree-trunk {
  position: absolute; bottom: 40%; left: 30%; width: 24px; height: 50%;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a4a2a 30%, #5a3a1a 100%);
  border-radius: 8px;
  animation: dfb-trunk 6s ease-in-out infinite;
}
.scn-dufour-fun-at-bezons .swing-rope {
  position: absolute; width: 3px; height: 90px; background: #8a7a5a;
  transform-origin: top center;
  animation: dfb-rope 2s ease-in-out infinite;
}
.scn-dufour-fun-at-bezons .swing-rope.left {
  left: 33%; top: 35%;
}
.scn-dufour-fun-at-bezons .swing-rope.right {
  left: 38%; top: 35%;
  animation-delay: 0.3s;
}
.scn-dufour-fun-at-bezons .swing-seat {
  position: absolute; bottom: 36%; left: 33.5%; width: 60px; height: 8px;
  background: #6a4a2a; border-radius: 6px;
  animation: dfb-seat 2s ease-in-out infinite;
}
.scn-dufour-fun-at-bezons .figure-swinging {
  position: absolute; bottom: 34%; left: 36%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #e8c8a8 0%, #c8a878 40%, #a88858 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dfb-figure-swing 2s ease-in-out infinite;
}
.scn-dufour-fun-at-bezons .figure-pushing {
  position: absolute; bottom: 30%; left: 45%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #b09878 0%, #907858 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dfb-push 2.4s ease-in-out infinite;
}
.scn-dufour-fun-at-bezons .picnic-blanket {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 12px;
  background: linear-gradient(90deg, #c8a060 0%, #e0b878 50%, #c8a060 100%);
  border-radius: 20px; opacity: 0.7;
  animation: dfb-blanket 10s ease-in-out infinite alternate;
}
.scn-dufour-fun-at-bezons .servant-far {
  position: absolute; bottom: 38%; right: 18%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #c0a888 0%, #a08868 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: dfb-servant 8s ease-in-out infinite;
}
@keyframes dfb-sky {
  0% { background-position: 0% 0%; opacity: 0.85; }
  50% { background-position: 50% 0%; opacity: 1; }
  100% { background-position: 100% 0%; opacity: 0.9; }
}
@keyframes dfb-grass {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.98); }
}
@keyframes dfb-trunk {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
}
@keyframes dfb-rope {
  0%,100% { transform: rotate(-8deg); }
  50% { transform: rotate(8deg); }
}
@keyframes dfb-seat {
  0%,100% { transform: translateX(-2px) rotate(-5deg); }
  50% { transform: translateX(2px) rotate(5deg); }
}
@keyframes dfb-figure-swing {
  0%,100% { transform: translateX(-2px) rotate(-10deg); }
  50% { transform: translateX(2px) rotate(10deg); }
}
@keyframes dfb-push {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(-5deg); }
}
@keyframes dfb-blanket {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.7; }
}
@keyframes dfb-servant {
  0%,100% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-3px) translateX(4px); }
}

/* dufour-boating-men */
.scn-dufour-boating-men {
  background: linear-gradient(180deg, #b8d8f0 0%, #8ab8e0 40%, #6088b8 100%), radial-gradient(ellipse at 50% 100%, #88c8f0 0%, transparent 70%);
}
.scn-dufour-boating-men .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #78a0c8 0%, #4a7098 50%, #2a4860 100%);
  animation: dbo-water 20s ease-in-out infinite alternate;
}
.scn-dufour-boating-men .bank {
  position: absolute; bottom: 40%; left: 0; right: 70%; height: 20%;
  background: linear-gradient(180deg, #7a9a58 0%, #4a6a38 100%);
  border-radius: 0 40% 0 0 / 0 60% 0 0;
  animation: dbo-bank 15s ease-in-out infinite alternate;
}
.scn-dufour-boating-men .tree-canopy {
  position: absolute; bottom: 55%; left: 5%; width: 50%; height: 35%;
  background: linear-gradient(180deg, #3a7a30 0%, #2a5a20 60%, #1a3a10 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: dbo-canopy 18s ease-in-out infinite alternate;
}
.scn-dufour-boating-men .figure-lady-left {
  position: absolute; bottom: 38%; left: 18%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #f0d8c0 0%, #d0b090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbo-lady 8s ease-in-out infinite;
}
.scn-dufour-boating-men .figure-lady-right {
  position: absolute; bottom: 38%; left: 26%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #f0d8c0 0%, #d0b090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbo-lady 8s ease-in-out infinite reverse;
}
.scn-dufour-boating-men .figure-man-left {
  position: absolute; bottom: 34%; left: 40%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #b09878 0%, #907858 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: dbo-man 10s ease-in-out infinite;
}
.scn-dufour-boating-men .figure-man-right {
  position: absolute; bottom: 34%; left: 48%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #b09878 0%, #907858 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: dbo-man 10s ease-in-out infinite reverse;
}
.scn-dufour-boating-men .picnic-basket {
  position: absolute; bottom: 39%; left: 22%; width: 18px; height: 14px;
  background: linear-gradient(180deg, #b08848 0%, #886030 100%);
  border-radius: 20% 20% 10% 10%;
  animation: dbo-basket 6s ease-in-out infinite;
}
.scn-dufour-boating-men .boat-distant {
  position: absolute; bottom: 45%; right: 15%; width: 40px; height: 15px;
  background: linear-gradient(180deg, #5a3020 0%, #3a1a10 100%);
  border-radius: 40% 40% 30% 30%;
  animation: dbo-boat 30s linear infinite;
}
@keyframes dbo-water {
  0% { background-position: 0% 50%; }
  50% { background-position: 50% 50%; }
  100% { background-position: 100% 50%; }
}
@keyframes dbo-bank {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes dbo-canopy {
  0% { transform: scale(1) translateX(0); }
  50% { transform: scale(1.02) translateX(-3px); }
  100% { transform: scale(0.98) translateX(2px); }
}
@keyframes dbo-lady {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes dbo-man {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes dbo-basket {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
@keyframes dbo-boat {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-10px) translateY(-2px); }
  100% { transform: translateX(0) translateY(0); }
}

/* dufour-boat-ride */
.scn-dufour-boat-ride {
  background: linear-gradient(180deg, #c0e0f8 0%, #90c0e8 40%, #6090c0 100%), radial-gradient(ellipse at 50% 100%, #98d0f0 0%, transparent 60%);
}
.scn-dufour-boat-ride .lake-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #7098c0 0%, #406888 50%, #203848 100%);
  animation: dbr-water 25s ease-in-out infinite alternate;
}
.scn-dufour-boat-ride .boat-hull {
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 25px;
  background: linear-gradient(180deg, #6a3820 0%, #4a2210 100%);
  border-radius: 20% 20% 40% 40% / 60% 60% 40% 40%;
  animation: dbr-hull 4s ease-in-out infinite alternate;
}
.scn-dufour-boat-ride .figure-henri {
  position: absolute; bottom: 38%; left: 35%; width: 28px; height: 46px;
  background: linear-gradient(180deg, #b89878 0%, #987858 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbr-henri 4s ease-in-out infinite;
}
.scn-dufour-boat-ride .figure-henriette {
  position: absolute; bottom: 38%; left: 42%; width: 26px; height: 44px;
  background: linear-gradient(180deg, #f0d8c0 0%, #d0b090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbr-henriette 4s ease-in-out infinite reverse;
}
.scn-dufour-boat-ride .oar {
  position: absolute; bottom: 34%; left: 32%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #a07850 0%, #705030 100%);
  transform-origin: bottom center;
  animation: dbr-oar 2s ease-in-out infinite;
}
.scn-dufour-boat-ride .ripple-1 {
  position: absolute; bottom: 28%; left: 28%; width: 40px; height: 6px;
  background: rgba(255,255,255,0.25);
  border-radius: 50%; filter: blur(4px);
  animation: dbr-ripple 3s ease-in-out infinite;
}
.scn-dufour-boat-ride .ripple-2 {
  position: absolute; bottom: 25%; left: 38%; width: 50px; height: 8px;
  background: rgba(255,255,255,0.2);
  border-radius: 50%; filter: blur(5px);
  animation: dbr-ripple 3.5s ease-in-out infinite reverse;
}
.scn-dufour-boat-ride .boat-mother-distant {
  position: absolute; bottom: 32%; right: 10%; width: 50px; height: 18px;
  background: linear-gradient(180deg, #5a3020 0%, #3a1a10 100%);
  border-radius: 30% 30% 40% 40%;
  animation: dbr-distant 20s linear infinite;
}
.scn-dufour-boat-ride .sky-clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.3) 30%, transparent 70%);
  filter: blur(8px);
  animation: dbr-clouds 40s linear infinite;
}
@keyframes dbr-water {
  0% { background-position: 0% 50%; }
  50% { background-position: 50% 50%; }
  100% { background-position: 100% 50%; }
}
@keyframes dbr-hull {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes dbr-henri {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes dbr-henriette {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
}
@keyframes dbr-oar {
  0%,100% { transform: rotate(-20deg); }
  50% { transform: rotate(20deg); }
}
@keyframes dbr-ripple {
  0% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.2); opacity: 0.8; }
  100% { transform: scale(0.8); opacity: 0.3; }
}
@keyframes dbr-distant {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-5px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes dbr-clouds {
  0% { transform: translateX(0); }
  100% { transform: translateX(100%); }
}

/* dufour-nightingale-thicket */
.scn-dufour-nightingale-thicket {
  background: linear-gradient(180deg, #2a3858 0%, #1a2840 40%, #0a1420 100%), radial-gradient(ellipse at 50% 70%, #4a6a8a 0%, transparent 60%);
}
.scn-dufour-nightingale-thicket .sky-evening {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a4a6a 0%, #7a8aaa 60%, #b8c8e0 100%);
  animation: dnt-sky 20s ease-in-out infinite alternate;
}
.scn-dufour-nightingale-thicket .foliage-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #1a3a1a 0%, #0a1a0a 100%);
  border-radius: 80% 80% 0 0 / 60% 60% 0 0;
  animation: dnt-foliage-back 25s ease-in-out infinite alternate;
}
.scn-dufour-nightingale-thicket .foliage-front {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 80%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: dnt-foliage-front 20s ease-in-out infinite alternate;
}
.scn-dufour-nightingale-thicket .figure-henri-profile {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dnt-henri 6s ease-in-out infinite;
}
.scn-dufour-nightingale-thicket .figure-henriette-profile {
  position: absolute; bottom: 22%; left: 44%; width: 26px; height: 46px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dnt-henriette 6s ease-in-out infinite reverse;
}
.scn-dufour-nightingale-thicket .nightingale {
  position: absolute; top: 18%; left: 48%; width: 14px; height: 10px;
  background: radial-gradient(circle, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40%;
  animation: dnt-bird 4s ease-in-out infinite;
}
.scn-dufour-nightingale-thicket .branch {
  position: absolute; top: 24%; left: 42%; width: 40px; height: 4px;
  background: linear-gradient(90deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: dnt-branch 8s ease-in-out infinite;
}
.scn-dufour-nightingale-thicket .flowers {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c8a060 0%, #a88040 70%);
  border-radius: 50%;
  animation: dnt-flowers 7s ease-in-out infinite;
}
.scn-dufour-nightingale-thicket .glow-light {
  position: absolute; top: 30%; left: 40%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,240,180,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: dnt-glow 5s ease-in-out infinite alternate;
}
@keyframes dnt-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes dnt-foliage-back {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(0.99); }
}
@keyframes dnt-foliage-front {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes dnt-henri {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes dnt-henriette {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
}
@keyframes dnt-bird {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.1); }
}
@keyframes dnt-branch {
  0%,100% { transform: rotate(10deg); }
  50% { transform: rotate(12deg); }
}
@keyframes dnt-flowers {
  0%,100% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 1; }
}
@keyframes dnt-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.2; transform: scale(0.8); }
}

.scn-lemonnier-life {
  background: linear-gradient(180deg, #4a2e1a 0%, #2e1a0a 50%, #1a0e05 100%), radial-gradient(ellipse at 50% 0%, #6b3a1a 0%, transparent 60%);
}
.scn-lemonnier-life .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); animation: ll-wall 20s ease-in-out infinite alternate;
}
.scn-lemonnier-life .window {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 25%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 40px #1a0a00; animation: ll-window 8s ease-in-out infinite alternate;
}
.scn-lemonnier-life .crib {
  position: absolute; bottom: 20%; left: 20%; width: 30%; height: 15%; background: linear-gradient(180deg, #6b4a3a 0%, #4a2a1a 100%); border-radius: 8% 8% 6% 6%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: ll-crib 12s ease-in-out infinite;
}
.scn-lemonnier-life .father {
  position: absolute; bottom: 18%; left: 40%; width: 12%; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ll-father 9s ease-in-out infinite;
}
.scn-lemonnier-life .candle {
  position: absolute; bottom: 35%; left: 55%; width: 2%; height: 6%; background: linear-gradient(180deg, #d4a060 0%, #b08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #d4a060, 0 0 40px 12px rgba(212,160,96,0.3); animation: ll-candle 4s ease-in-out infinite alternate;
}
.scn-lemonnier-life .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, transparent, rgba(0,0,0,0.6)); animation: ll-shadow 15s ease-in-out infinite alternate;
}
@keyframes ll-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ll-window { 0% { transform: scale(1); box-shadow: inset 0 0 30px #1a0a00; } 50% { transform: scale(1.02); box-shadow: inset 0 0 50px #2a1a0a; } 100% { transform: scale(1); box-shadow: inset 0 0 30px #1a0a00; } }
@keyframes ll-crib { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes ll-father { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(2deg); } 50% { transform: translateX(4%) rotate(0deg); } 75% { transform: translateX(2%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ll-candle { 0% { opacity: 0.7; box-shadow: 0 0 15px 4px #d4a060; } 50% { opacity: 1; box-shadow: 0 0 25px 8px #e0b070; } 100% { opacity: 0.8; box-shadow: 0 0 18px 5px #d4a060; } }
@keyframes ll-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-lemonnier-pampering {
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 60% 20%, #4a3a3a 0%, transparent 70%);
}
.scn-lemonnier-pampering .bg-room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); animation: lp-room 18s ease-in-out infinite alternate;
}
.scn-lemonnier-pampering .table {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 12%; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 -4px 8px rgba(0,0,0,0.6); animation: lp-table 14s ease-in-out infinite;
}
.scn-lemonnier-pampering .bowl {
  position: absolute; bottom: 32%; left: 40%; width: 15%; height: 10%; background: radial-gradient(circle, #6b5a4a 0%, #4a3a2a 70%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: lp-bowl 6s ease-in-out infinite;
}
.scn-lemonnier-pampering .spoon {
  position: absolute; bottom: 35%; left: 45%; width: 8%; height: 4%; background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-20deg); animation: lp-spoon 3s ease-in-out infinite alternate;
}
.scn-lemonnier-pampering .child-figure {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lp-child 4s ease-in-out infinite;
}
.scn-lemonnier-pampering .celeste-figure {
  position: absolute; bottom: 20%; right: 30%; width: 12%; height: 30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lp-celeste 5s ease-in-out infinite reverse;
}
.scn-lemonnier-pampering .door {
  position: absolute; right: 5%; top: 10%; width: 20%; height: 60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: lp-door 20s ease-in-out infinite alternate;
}
@keyframes lp-room { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.7; } }
@keyframes lp-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes lp-bowl { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes lp-spoon { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(5px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes lp-child { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(3deg) translateX(2px); } 50% { transform: rotate(0deg) translateX(4px); } 75% { transform: rotate(-3deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes lp-celeste { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-2deg) scale(1.02); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes lp-door { 0% { width: 20%; } 50% { width: 21%; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); } 100% { width: 20%; } }

.scn-lemonnier-celeste-confrontation {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, transparent 80%);
}
.scn-lemonnier-celeste-confrontation .bg-corridor {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); animation: lc-corridor 25s ease-in-out infinite alternate;
}
.scn-lemonnier-celeste-confrontation .doorway {
  position: absolute; left: 40%; top: 10%; width: 20%; height: 70%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: lc-doorway 15s ease-in-out infinite;
}
.scn-lemonnier-celeste-confrontation .celeste-silhouette {
  position: absolute; bottom: 20%; left: 42%; width: 10%; height: 35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: lc-celeste 7s ease-in-out infinite;
}
.scn-lemonnier-celeste-confrontation .door-crack {
  position: absolute; left: 47%; top: 15%; width: 2%; height: 50%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); box-shadow: 0 0 10px 2px #5a5a6a; animation: lc-crack 4s ease-in-out infinite alternate;
}
.scn-lemonnier-celeste-confrontation .wall-lantern {
  position: absolute; top: 25%; left: 15%; width: 4%; height: 6%; background: radial-gradient(circle, #b08040 0%, #6a4a2a 100%); border-radius: 50%; box-shadow: 0 0 20px 4px #b08040, 0 0 40px 8px rgba(176,128,64,0.3); animation: lc-lantern 5s ease-in-out infinite alternate;
}
.scn-lemonnier-celeste-confrontation .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, transparent, rgba(0,0,0,0.7)); animation: lc-shadow 20s ease-in-out infinite alternate;
}
@keyframes lc-corridor { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes lc-doorway { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes lc-celeste { 0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(2deg) scale(1.02) translateY(-2px); } 50% { transform: rotate(-1deg) scale(1) translateY(0); } 75% { transform: rotate(3deg) scale(1.01) translateY(-1px); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes lc-crack { 0% { width: 1.5%; opacity: 0.4; } 50% { width: 2.5%; opacity: 0.8; } 100% { width: 1.5%; opacity: 0.5; } }
@keyframes lc-lantern { 0% { box-shadow: 0 0 15px 3px #b08040; } 50% { box-shadow: 0 0 30px 6px #d0a060; } 100% { box-shadow: 0 0 18px 4px #b08040; } }
@keyframes lc-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }

.scn-lemonnier-death {
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 50%, #020208 100%), radial-gradient(ellipse at 30% 50%, #1a1a3a 0%, transparent 70%);
}
.scn-lemonnier-death .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); animation: ld-bg 30s ease-in-out infinite alternate;
}
.scn-lemonnier-death .ceiling-ring {
  position: absolute; top: 5%; left: 50%; width: 6%; height: 4%; background: radial-gradient(circle, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(0,0,0,0.8); animation: ld-ring 10s ease-in-out infinite;
}
.scn-lemonnier-death .body-hanging {
  position: absolute; top: 8%; left: 48%; width: 4%; height: 40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 10% 10%; transform-origin: top; animation: ld-body 8s ease-in-out infinite;
}
.scn-lemonnier-death .table {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 10%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 -2px 6px rgba(0,0,0,0.8); animation: ld-table 12s ease-in-out infinite;
}
.scn-lemonnier-death .letter-box {
  position: absolute; bottom: 20%; left: 45%; width: 8%; height: 4%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 10%; box-shadow: 0 0 4px rgba(0,0,0,0.6); animation: ld-letter 6s ease-in-out infinite alternate;
}
.scn-lemonnier-death .moonlight-beam {
  position: absolute; top: 0; left: 25%; width: 25%; height: 60%; background: linear-gradient(180deg, rgba(200,220,255,0.08) 0%, rgba(200,220,255,0.02) 100%); clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%); animation: ld-beam 20s ease-in-out infinite alternate;
}
@keyframes ld-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ld-ring { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes ld-body { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes ld-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ld-letter { 0% { opacity: 0.3; transform: scale(0.95); } 50% { opacity: 0.6; transform: scale(1); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes ld-beam { 0% { opacity: 0.1; } 50% { opacity: 0.2; } 100% { opacity: 0.05; } }
/* end per-scene blocks */
