/* 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-beggar-woman-hut {
  background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 30%, #3a2a1a 70%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 80%);
}
.scn-beggar-woman-hut .bwh-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: bwh-wall 20s ease-in-out infinite alternate;
}
.scn-beggar-woman-hut .bwh-hearth {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #1a1a0a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 50% 50%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: bwh-hearth 15s ease-in-out infinite alternate;
}
.scn-beggar-woman-hut .bwh-fire {
  position: absolute; bottom: 22%; left: 33%; width: 20px; height: 40px;
  background: radial-gradient(circle at 50% 100%, #d87a3a 0%, #b85a2a 40%, #4a1a0a 80%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(2px);
  animation: bwh-fire 1.5s ease-in-out infinite alternate;
}
.scn-beggar-woman-hut .bwh-woman {
  position: absolute; bottom: 20%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bwh-woman 8s ease-in-out infinite;
}
.scn-beggar-woman-hut .bwh-priest {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bwh-priest 8s ease-in-out infinite 1s;
}
.scn-beggar-woman-hut .bwh-chair {
  position: absolute; bottom: 16%; left: 52%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: bwh-chair 12s ease-in-out infinite alternate;
}
.scn-beggar-woman-hut .bwh-window {
  position: absolute; top: 15%; right: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border: 3px solid #2a1a0a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.7);
  animation: bwh-window 25s ease-in-out infinite alternate;
}
@keyframes bwh-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes bwh-hearth { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes bwh-fire { 0% { transform: scaleY(1) translateY(0); opacity: 0.7 } 50% { transform: scaleY(1.3) translateY(-4px); opacity: 1 } 100% { transform: scaleY(0.8) translateY(2px); opacity: 0.8 } }
@keyframes bwh-woman { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bwh-priest { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bwh-chair { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes bwh-window { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }

.scn-child-illness { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 30%, #0a0a0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%); }
.scn-child-illness .bed-frame { position:absolute; bottom:15%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8px; box-shadow: inset 0 4px 10px rgba(0,0,0,.7); }
.scn-child-illness .child-figure { position:absolute; bottom:22%; left:35%; width:20%; height:20%; background: radial-gradient(ellipse at 40% 30%, #5a4a3a 0%, #2a1a1a 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ci-breath 4s ease-in-out infinite; }
.scn-child-illness .candle-glow { position:absolute; bottom:40%; left:45%; width:8px; height:14px; background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #c07030 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px #c07030, 0 0 40px 16px rgba(192,112,48,.5); animation: ci-candle 2.5s ease-in-out infinite alternate; }
.scn-child-illness .window-moon { position:absolute; top:10%; right:10%; width:30%; height:35%; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%); border: 4px solid #3a3a4e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-child-illness .window-moon::after { content:''; position:absolute; top:15%; left:20%; width:50%; height:60%; background: radial-gradient(circle, #e0e0c0 0%, #a0a080 60%, transparent 80%); border-radius: 50%; animation: ci-moon 12s linear infinite; }
.scn-child-illness .curtain { position:absolute; top:10%; right:8%; width:34%; height:40%; background: linear-gradient(180deg, rgba(60,40,30,.6) 0%, rgba(40,20,10,.4) 100%); filter: blur(8px); border-radius: 20% 0 0 20%; animation: ci-curtain 8s ease-in-out infinite alternate; }
.scn-child-illness .medicine-bottle { position:absolute; bottom:18%; left:30%; width:6%; height:10%; background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
@keyframes ci-breath { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } }
@keyframes ci-candle { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:.7; } }
@keyframes ci-moon { 0% { transform: translateX(0); } 50% { transform: translateX(10%); } 100% { transform: translateX(0); } }
@keyframes ci-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5%); } 100% { transform: translateX(0); } }

.scn-meeting-milial { background: linear-gradient(180deg, #f8e0b0 0%, #e8c070 40%, #a0b8d0 70%, #607090 100%), radial-gradient(ellipse at 50% 0%, #f8e0b0 0%, transparent 60%); }
.scn-meeting-milial .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f8e0b0 0%, #e8c070 50%, transparent 100%); }
.scn-meeting-milial .sun { position:absolute; top:20%; left:40%; width:12%; height:12%; background: radial-gradient(circle, #fff0c0 0%, #ffd060 40%, transparent 70%); border-radius:50%; animation: mm-sun 30s ease-in-out infinite alternate; }
.scn-meeting-milial .hill { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8aa07a 0%, #607060 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-meeting-milial .tree-l { position:absolute; bottom:30%; left:10%; width:8%; height:60%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform-origin: bottom center; animation: mm-tree 20s ease-in-out infinite alternate; }
.scn-meeting-milial .tree-r { position:absolute; bottom:30%; right:10%; width:10%; height:70%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform-origin: bottom center; animation: mm-tree 25s ease-in-out infinite alternate-reverse; }
.scn-meeting-milial .path { position:absolute; bottom:25%; left:25%; right:25%; height:2%; background: linear-gradient(90deg, #d0b080 0%, #c0a070 50%, #d0b080 100%); border-radius:2px; filter: blur(1px); }
.scn-meeting-milial .figure { position:absolute; bottom:30%; left:48%; width:8%; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm-figure 8s ease-in-out infinite; box-shadow: 0 0 20px rgba(255,200,100,.3); }
@keyframes mm-sun { 0% { transform: scale(1) translateX(0); opacity:0.9; } 50% { transform: scale(1.1) translateX(10px); opacity:1; } 100% { transform: scale(0.95) translateX(-5px); opacity:0.85; } }
@keyframes mm-tree { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes mm-figure { 0% { transform: translateX(0) rotate(0deg) scale(1); } 30% { transform: translateX(2px) rotate(1deg) scale(1.01); } 60% { transform: translateX(-1px) rotate(-1deg) scale(0.99); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }

.scn-back-to-reality {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #f0f8ff 100%),
              radial-gradient(ellipse at 30% 20%, #fff5e6 0%, transparent 50%);
}
.scn-back-to-reality .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #e0f0ff 0%, #c0dff0 100%);
  animation: br-sky 20s ease-in-out infinite alternate;
}
.scn-back-to-reality .sun {
  position: absolute; top: 10%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7e0 0%, #ffe080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(255, 224, 128, 0.6);
  animation: br-sun 8s ease-in-out infinite;
}
.scn-back-to-reality .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4a90b0 0%, #5ba0c0 40%, #6ab0d0 70%, #7ac0e0 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  transform-origin: bottom center;
  animation: br-river 12s ease-in-out infinite alternate;
}
.scn-back-to-reality .shore {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, #c8b090 0%, #d8c0a0 30%, #e0d0b0 70%, #c8b090 100%);
  border-radius: 20% 0 0 0;
  transform: skewY(-2deg);
}
.scn-back-to-reality .garde {
  position: absolute; bottom: 40%; left: 55%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-walk 6s ease-in-out infinite;
}
.scn-back-to-reality .kepi {
  position: absolute; bottom: 73%; left: 56%; width: 14px; height: 8px;
  background: radial-gradient(circle, #c0c0c0 0%, #808080 80%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: br-kepi 6s ease-in-out infinite;
}
.scn-back-to-reality .ripple {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: br-shimmer 4s ease-in-out infinite;
}
@keyframes br-sky {
  0% { opacity: 0.9; background-position: 0% 50%; }
  50% { opacity: 1; background-position: 50% 50%; }
  100% { opacity: 0.95; background-position: 100% 50%; }
}
@keyframes br-sun {
  0% { transform: scale(0.95) translate(0, 0); box-shadow: 0 0 60px 15px rgba(255,224,128,0.5); }
  50% { transform: scale(1.05) translate(2px, -2px); box-shadow: 0 0 100px 30px rgba(255,224,128,0.7); }
  100% { transform: scale(0.98) translate(-1px, 1px); box-shadow: 0 0 70px 18px rgba(255,224,128,0.55); }
}
@keyframes br-river {
  0% { transform: scaleX(1) scaleY(1) translateY(0); background-position: 0% 0%; }
  50% { transform: scaleX(1.02) scaleY(1.01) translateY(-1px); background-position: 50% 100%; }
  100% { transform: scaleX(1) scaleY(1) translateY(0); background-position: 100% 0%; }
}
@keyframes br-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(8px) translateY(0) rotate(2deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(16px) translateY(0) rotate(-2deg); }
}
@keyframes br-kepi {
  0% { transform: translate(0, 0) rotate(-3deg); }
  50% { transform: translate(2px, -1px) rotate(3deg); }
  100% { transform: translate(0, 0) rotate(-1deg); }
}
@keyframes br-shimmer {
  0% { transform: scaleX(0.8) translateX(0); opacity: 0.3; }
  33% { transform: scaleX(1.2) translateX(10px); opacity: 0.7; }
  66% { transform: scaleX(1) translateX(20px); opacity: 0.5; }
  100% { transform: scaleX(0.9) translateX(30px); opacity: 0.2; }
}

.scn-judgment-dialogue { background: linear-gradient(180deg, #2b153a 0%, #4a2a3c 30%, #7a4a3a 60%, #2a1a2a 100%), radial-gradient(ellipse at 60% 30%, #7a4a3a 0%, transparent 60%); }
.scn-judgment-dialogue .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a2a4a 0%, #5a3a3a 60%, transparent 100%); animation: jd-sky 12s ease-in-out infinite alternate; }
.scn-judgment-dialogue .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-judgment-dialogue .cross { position:absolute; bottom:38%; left:38%; width:4px; height:60px; background: #4a2a1a; box-shadow: 0 -8px 0 0 #3a1a0a; border-radius: 2px; transform-origin: bottom center; animation: jd-cross 6s ease-in-out infinite; }
.scn-judgment-dialogue .figure { position:absolute; bottom:20%; left:32%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: jd-figure 4s ease-in-out infinite; }
.scn-judgment-dialogue .arm { position:absolute; bottom:38%; left:31%; width:18px; height:4px; background: #1a1a2a; border-radius: 50% / 100%; transform-origin: right center; animation: jd-arm 5s ease-in-out infinite alternate; }
.scn-judgment-dialogue .dust { position:absolute; bottom:32%; left:36%; width:30px; height:30px; background: radial-gradient(circle, rgba(180,140,100,.3) 0%, transparent 80%); filter: blur(3px); animation: jd-dust 7s ease-in-out infinite; }
@keyframes jd-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes jd-cross { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes jd-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes jd-arm { 0% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }
@keyframes jd-dust { 0% { opacity:.2; transform: scale(.8) } 50% { opacity:.5; transform: scale(1.2) } 100% { opacity:.2; transform: scale(.8) } }

.scn-beggar-woman-hut { background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #1a1410 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%); }
.scn-beggar-woman-hut .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 10% 10%; }
.scn-beggar-woman-hut .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 0; }
.scn-beggar-woman-hut .window { position:absolute; top:20%; right:20%; width:30px; height:40px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: 0 0 20px 4px rgba(138,122,90,.3); animation: bwh-window 8s ease-in-out infinite alternate; }
.scn-beggar-woman-hut .woman { position:absolute; bottom:22%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); animation: bwh-woman 5s ease-in-out infinite; }
.scn-beggar-woman-hut .bed { position:absolute; bottom:18%; left:15%; width:30px; height:15px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-beggar-woman-hut .stool { position:absolute; bottom:20%; right:25%; width:14px; height:20px; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,.3); animation: bwh-stool 6s ease-in-out infinite alternate; }
@keyframes bwh-window { 0% { opacity:.7; box-shadow: 0 0 10px 2px rgba(138,122,90,.2) } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(138,122,90,.4) } 100% { opacity:.8; box-shadow: 0 0 15px 4px rgba(138,122,90,.25) } }
@keyframes bwh-woman { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes bwh-stool { 0% { transform: rotate(0) } 100% { transform: rotate(2deg) } }

.scn-judas-offered-shelter { background: linear-gradient(180deg, #1a0a00 0%, #3a1a0a 50%, #5a2a0a 100%), radial-gradient(ellipse at 50% 60%, #5a2a0a 0%, transparent 70%); }
.scn-judas-offered-shelter .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); opacity:.6; }
.scn-judas-offered-shelter .fireplace { position:absolute; bottom:30%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-judas-offered-shelter .fire { position:absolute; bottom:34%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #ff8c40 0%, #ff5a20 40%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 10px #ff5a20, 0 0 80px 20px rgba(255,90,32,.3); animation: jos-fire 2s ease-in-out infinite alternate; }
.scn-judas-offered-shelter .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(255,90,32,.15) 0%, transparent 60%); animation: jos-glow 4s ease-in-out infinite alternate; }
.scn-judas-offered-shelter .old-man { position:absolute; bottom:22%; left:35%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: jos-figure 5s ease-in-out infinite; }
.scn-judas-offered-shelter .woman { position:absolute; bottom:22%; right:35%; width:28px; height:55px; background: linear-gradient(180deg, #3a1a0a 0%, #2a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: jos-woman 6s ease-in-out infinite; }
.scn-judas-offered-shelter .table { position:absolute; bottom:18%; left:50%; width:40px; height:8px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a0a 0%, #2a1a00 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
@keyframes jos-fire { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.1) scaleX(.95) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes jos-glow { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes jos-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes jos-woman { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-judas-legend-told { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 70%, #3a3a4a 0%, transparent 70%); }
.scn-judas-legend-told .room { position:absolute; inset:0 10% 0 10%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20px; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-judas-legend-told .door { position:absolute; bottom:20%; right:15%; width:30px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: jlt-door 12s ease-in-out infinite; }
.scn-judas-legend-told .lamp { position:absolute; top:30%; left:20%; width:12px; height:16px; background: radial-gradient(circle, #c0a060 0%, #8a6a30 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px rgba(192,160,96,.3), 0 0 40px 12px rgba(192,160,96,.15); animation: jlt-lamp 6s ease-in-out infinite alternate; }
.scn-judas-legend-told .joseph { position:absolute; bottom:18%; left:40%; width:18px; height:45px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: jlt-figure 8s ease-in-out infinite; }
.scn-judas-legend-told .icon { position:absolute; top:25%; right:30%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 40%, #a08060 0%, #6a4a2a 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: jlt-icon 10s ease-in-out infinite alternate; }
.scn-judas-legend-told .bench { position:absolute; bottom:12%; left:25%; width:50px; height:8px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
@keyframes jlt-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes jlt-lamp { 0% { opacity:.6; box-shadow: 0 0 10px 2px rgba(192,160,96,.2) } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(192,160,96,.4) } 100% { opacity:.7; box-shadow: 0 0 15px 4px rgba(192,160,96,.25) } }
@keyframes jlt-figure { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-1px) rotate(1deg) } 66% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes jlt-icon { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }

.scn-son-fever {
  background: linear-gradient(180deg, #2a1f1c 0%, #1e1412 50%, #150f0d 100%), radial-gradient(ellipse at 50% 60%, #3a2a22 0%, transparent 70%);
}
.scn-son-fever .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a22 0%, #2a1f1c 100%); animation: sf-wall 20s ease-in-out infinite; }
.scn-son-fever .bed { position:absolute; bottom:30%; left:20%; width:60%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -6px 12px rgba(0,0,0,.5); }
.scn-son-fever .child { position:absolute; bottom:40%; left:35%; width:25%; height:35%; background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 80%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-child 6s ease-in-out infinite; }
.scn-son-fever .mother { position:absolute; bottom:38%; left:55%; width:20%; height:45%; background: linear-gradient(180deg, #3a2a22 0%, #1a1410 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sf-mother 8s ease-in-out infinite; }
.scn-son-fever .candle { position:absolute; bottom:60%; left:48%; width:2%; height:8%; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius: 20% 20% 10% 10%; animation: sf-candle 4s ease-in-out infinite; }
.scn-son-fever .glow { position:absolute; bottom:55%; left:45%; width:10%; height:20%; background: radial-gradient(circle, rgba(224,192,128,.6) 0%, transparent 100%); border-radius: 50%; animation: sf-glow 5s ease-in-out infinite; box-shadow: 0 0 30px 15px rgba(224,192,128,.3); }
.scn-son-fever .shadow-top { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, transparent 100%); animation: sf-shadow 12s ease-in-out infinite; }
@keyframes sf-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sf-child { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sf-mother { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sf-candle { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.8; transform: scaleY(1) } }
@keyframes sf-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1) } }
@keyframes sf-shadow { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }

.scn-smallpox-announcement {
  background: linear-gradient(180deg, #1a1412 0%, #2a1f1c 40%, #1e1412 100%), radial-gradient(ellipse at 50% 70%, #3a2a22 0%, transparent 70%);
}
.scn-smallpox-announcement .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1f1c 0%, #1a1412 100%); }
.scn-smallpox-announcement .wall-left { position:absolute; top:0; left:0; width:40%; height:100%; background: linear-gradient(90deg, #3a2a22 0%, #2a1f1c 100%); }
.scn-smallpox-announcement .wall-right { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(270deg, #3a2a22 0%, #2a1f1c 100%); }
.scn-smallpox-announcement .mother-silhouette { position:absolute; bottom:30%; left:25%; width:18%; height:50%; background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sa-mother 8s ease-in-out infinite; }
.scn-smallpox-announcement .priest-silhouette { position:absolute; bottom:30%; right:25%; width:16%; height:55%; background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sa-priest 6s ease-in-out infinite; }
.scn-smallpox-announcement .door { position:absolute; bottom:30%; left:45%; width:10%; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border: 2px solid #2a1f1c; border-radius: 4%; }
.scn-smallpox-announcement .candle { position:absolute; bottom:65%; right:38%; width:2%; height:10%; background: linear-gradient(180deg, #e0c080 0%, #a08040 100%); border-radius: 20% 20% 10% 10%; animation: sa-candle 3s ease-in-out infinite; }
.scn-smallpox-announcement .glow { position:absolute; bottom:60%; right:36%; width:8%; height:18%; background: radial-gradient(circle, rgba(224,192,128,.5) 0%, transparent 100%); border-radius: 50%; animation: sa-glow 5s ease-in-out infinite; box-shadow: 0 0 25px 10px rgba(224,192,128,.3); }
@keyframes sa-mother { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sa-priest { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 75% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sa-candle { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.7; transform: scaleY(1) } }
@keyframes sa-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.15) } 100% { opacity:.5; transform: scale(1) } }

.scn-fear-of-contagion {
  background: linear-gradient(180deg, #1e1a14 0%, #2a221a 40%, #1a1610 100%), radial-gradient(ellipse at 50% 50%, #3a3222 0%, transparent 70%);
}
.scn-fear-of-contagion .counter { position:absolute; bottom:20%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); }
.scn-fear-of-contagion .shelves { position:absolute; bottom:40%; left:15%; width:70%; height:40%; background: repeating-linear-gradient(0deg, #3a2a1a 0px, #3a2a1a 4px, transparent 4px, transparent 20px); border-radius: 4%; }
.scn-fear-of-contagion .druggist { position:absolute; bottom:20%; left:55%; width:15%; height:40%; background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%); border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: fc-druggist 10s ease-in-out infinite; }
.scn-fear-of-contagion .customer { position:absolute; bottom:20%; right:20%; width:14%; height:38%; background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fc-customer 7s ease-in-out infinite; }
.scn-fear-of-contagion .bottles { position:absolute; bottom:38%; left:62%; width:6%; height:12%; background: linear-gradient(180deg, #6a8a6a 0%, #4a5a4a 100%); border-radius: 20% 20% 10% 10%; animation: fc-bottles 4s ease-in-out infinite; }
.scn-fear-of-contagion .lamp { position:absolute; top:15%; left:40%; width:8%; height:12%; background: radial-gradient(circle, #e0c080 0%, #a08040 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(224,192,128,.4); animation: fc-lamp 6s ease-in-out infinite; }
.scn-fear-of-contagion .glow { position:absolute; top:10%; left:38%; width:24%; height:30%; background: radial-gradient(circle, rgba(224,192,128,.2) 0%, transparent 100%); border-radius: 50%; animation: fc-glow 8s ease-in-out infinite; }
.scn-fear-of-contagion .shadow { position:absolute; top:0; left:0; right:0; height:100%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 50%); animation: fc-shadow 15s ease-in-out infinite; }
@keyframes fc-druggist { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fc-customer { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-3px) rotate(-1deg) } 66% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fc-bottles { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fc-lamp { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(1); opacity:.8 } }
@keyframes fc-glow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.1) } 100% { opacity:.4; transform: scale(1) } }
@keyframes fc-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-no-improvement {
  background: linear-gradient(180deg, #1a1412 0%, #2a1f1c 40%, #1e1412 100%), radial-gradient(ellipse at 50% 80%, #3a2a22 0%, transparent 70%);
}
.scn-no-improvement .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1f1c 0%, #1a1412 100%); }
.scn-no-improvement .wall { position:absolute; top:0; left:0; right:0; height:75%; background: linear-gradient(180deg, #3a2a22 0%, #2a1f1c 100%); animation: ni-wall 30s ease-in-out infinite; }
.scn-no-improvement .brazier-left { position:absolute; bottom:30%; left:20%; width:12%; height:18%; background: radial-gradient(circle at 50% 80%, #c08040 0%, #8a5a2a 40%, #3a2a1a 100%); border-radius: 50% 50% 20% 20%; animation: ni-brazier 5s ease-in-out infinite; }
.scn-no-improvement .brazier-right { position:absolute; bottom:30%; right:20%; width:12%; height:18%; background: radial-gradient(circle at 50% 80%, #c08040 0%, #8a5a2a 40%, #3a2a1a 100%); border-radius: 50% 50% 20% 20%; animation: ni-brazier 5s ease-in-out infinite; animation-delay: -2.5s; }
.scn-no-improvement .fire-glow { position:absolute; bottom:25%; left:15%; width:70%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(192,128,64,.3) 0%, transparent 100%); animation: ni-glow 7s ease-in-out infinite; }
.scn-no-improvement .mother { position:absolute; bottom:20%; left:45%; width:15%; height:45%; background: linear-gradient(180deg, #1a1410 0%, #0f0a08 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ni-mother 12s ease-in-out infinite; }
.scn-no-improvement .chair { position:absolute; bottom:20%; left:40%; width:20%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; animation: ni-chair 10s ease-in-out infinite; }
.scn-no-improvement .shadows { position:absolute; top:0; left:0; right:0; height:100%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 40%, rgba(0,0,0,.2) 100%); animation: ni-shadows 20s ease-in-out infinite; }
@keyframes ni-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes ni-brazier { 0% { transform: scaleY(1); opacity:.7 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(1); opacity:.8 } }
@keyframes ni-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.05) } 100% { opacity:.5; transform: scale(1) } }
@keyframes ni-mother { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-1deg) } 75% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ni-chair { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes ni-shadows { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

/* temptation-crime */
.scn-temptation-crime { background: linear-gradient(135deg, #0a0a1a 0%, #1a0a2e 60%, #2a0a3e 100%), radial-gradient(ellipse at 60% 70%, #2a0a3e 0%, transparent 60%); }
.scn-temptation-crime .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #0e0a22 50%, #140a2e 100%); }
.scn-temptation-crime .table { position:absolute; bottom:0; left:5%; right:5%; height:20%; background: linear-gradient(0deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-temptation-crime .knife { position:absolute; bottom:15%; left:50%; width:40px; height:6px; background: linear-gradient(90deg, #555 0%, #888 40%, #aaa 60%, #888 100%); border-radius: 0 50% 50% 0 / 0 60% 60% 0; transform: rotate(-20deg); box-shadow: 0 0 6px rgba(200,200,200,.3); animation: tc-knife 6s ease-in-out infinite; }
.scn-temptation-crime .arm { position:absolute; bottom:20%; left:35%; width:50px; height:80px; background: linear-gradient(180deg, #1a0e0e 0%, #2a1010 60%, #1a0e0e 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; transform-origin: bottom center; animation: tc-arm 4s ease-in-out infinite alternate; }
.scn-temptation-crime .glow { position:absolute; bottom:22%; left:48%; width:20px; height:20px; background: radial-gradient(circle, #c08830 0%, #804020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(192,136,48,.4); animation: tc-glow 2s ease-in-out infinite alternate; }
.scn-temptation-crime .shadow { position:absolute; bottom:5%; left:30%; width:100px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: tc-shadow 8s ease-in-out infinite; }
@keyframes tc-knife { 0% { transform: rotate(-20deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-20deg) } }
@keyframes tc-arm { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-10px) rotate(-5deg) } 50% { transform: translateY(-5px) rotate(2deg) } 75% { transform: translateY(-15px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tc-glow { 0% { opacity:.6; transform: scale(.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.7; transform: scale(.9) } }
@keyframes tc-shadow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.5; transform: scale(1) } }

/* icy-wind */
.scn-icy-wind { background: linear-gradient(180deg, #0a1222 0%, #1a2a3e 50%, #2e3a4a 100%), radial-gradient(ellipse at 50% 20%, #3a4a5a 0%, transparent 70%); }
.scn-icy-wind .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a1222 0%, #142234 60%, #1e2e40 100%); }
.scn-icy-wind .window { position:absolute; top:10%; left:15%; right:15%; bottom:40%; background: linear-gradient(180deg, #2a3a4a 0%, #3a4a5a 50%, #2a3a4a 100%); border-radius: 4% 4% 0 0; border: 6px solid #1a2a3a; box-shadow: inset 0 0 20px rgba(100,150,200,.2); }
.scn-icy-wind .curtain-l { position:absolute; top:10%; left:15%; width:20%; bottom:40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 0 20% 20% 0; transform-origin: left center; animation: iw-curtain 8s ease-in-out infinite alternate; }
.scn-icy-wind .curtain-r { position:absolute; top:10%; right:15%; width:20%; bottom:40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 20% 0 0 20%; transform-origin: right center; animation: iw-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-icy-wind .candle-a { position:absolute; bottom:35%; left:22%; width:6px; height:20px; background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 100%); border-radius: 50% 50% 20% 20%; filter: blur(1px); }
.scn-icy-wind .candle-b { position:absolute; bottom:35%; right:22%; width:6px; height:20px; background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 100%); border-radius: 50% 50% 20% 20%; filter: blur(1px); }
.scn-icy-wind .figure { position:absolute; bottom:30%; left:40%; width:30px; height:80px; background: linear-gradient(180deg, #0a1a1a 0%, #1a2a2a 60%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iw-figure 12s ease-in-out infinite; }
.scn-icy-wind .breath { position:absolute; bottom:55%; left:42%; width:20px; height:10px; background: radial-gradient(ellipse, rgba(200,220,255,.3) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: iw-breath 3s ease-in-out infinite; }
@keyframes iw-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(.85) } 100% { transform: scaleX(1) } }
@keyframes iw-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(3px) rotate(0) } 100% { transform: translateY(0) rotate(0) } }
@keyframes iw-breath { 0% { opacity:.3; transform: translateY(0) scale(.8) } 50% { opacity:.6; transform: translateY(-5px) scale(1.2) } 100% { opacity:.3; transform: translateY(0) scale(.8) } }

/* remorse-tenderness */
.scn-remorse-tenderness { background: linear-gradient(180deg, #1a0e0a 0%, #2a1a10 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 60%); }
.scn-remorse-tenderness .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e0a 0%, #2a1a10 50%, #3a2a1a 100%); }
.scn-remorse-tenderness .fireplace { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(0deg, #2a1a0e 0%, #4a3a2a 30%, #3a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.5); }
.scn-remorse-tenderness .fire { position:absolute; bottom:20%; left:35%; width:30%; height:25%; background: radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, #8a5a2a 30%, #3a2a1a 70%, transparent 100%); border-radius: 50% 50% 10% 10%; filter: blur(10px); animation: rt-fire 4s ease-in-out infinite alternate; }
.scn-remorse-tenderness .figure { position:absolute; bottom:10%; left:30%; width:40px; height:90px; background: linear-gradient(180deg, #1a0e0a 0%, #2a1a10 60%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: rt-figure 7s ease-in-out infinite; }
.scn-remorse-tenderness .child { position:absolute; bottom:8%; left:35%; width:25px; height:40px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: rt-child 5s ease-in-out infinite alternate; }
.scn-remorse-tenderness .tear { position:absolute; bottom:30%; left:28%; width:4px; height:8px; background: radial-gradient(ellipse, #6a8aaa 0%, #3a5a7a 100%); border-radius: 50%; box-shadow: 0 0 4px rgba(100,140,170,.5); animation: rt-tear 9s ease-in-out infinite; }
@keyframes rt-fire { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.2) translateY(-5px) } 100% { transform: scaleY(.9) translateY(0) } }
@keyframes rt-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rt-child { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes rt-tear { 0% { opacity:0; transform: translateY(0) } 20% { opacity:1; transform: translateY(0) } 80% { opacity:1; transform: translateY(15px) } 100% { opacity:0; transform: translateY(20px) } }

/* candle-fall */
.scn-candle-fall { background: linear-gradient(180deg, #0a0a0a 0%, #1a0e0e 40%, #2a1010 100%), radial-gradient(ellipse at 50% 30%, #2a1010 0%, transparent 60%); }
.scn-candle-fall .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a0a 0%, #120a0a 50%, #1a0e0e 100%); }
.scn-candle-fall .desk { position:absolute; bottom:0; left:5%; right:5%; height:25%; background: linear-gradient(0deg, #1a0e0e 0%, #2a1a1a 60%, #3a2a2a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7); }
.scn-candle-fall .candle { position:absolute; bottom:20%; left:50%; width:8px; height:40px; background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%); border-radius: 50% 50% 10% 10%; transform-origin: bottom center; animation: cf-candle 4s ease-in-out infinite; }
.scn-candle-fall .wax { position:absolute; bottom:15%; left:49%; width:12px; height:8px; background: radial-gradient(ellipse, #6a5a4a 0%, #4a3a2a 80%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: cf-wax 4s ease-in-out infinite; }
.scn-candle-fall .hand { position:absolute; bottom:22%; left:35%; width:60px; height:50px; background: linear-gradient(180deg, #1a0e0e 0%, #2a1616 60%, #1a0e0e 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; transform-origin: bottom center; animation: cf-hand 3s ease-in-out infinite alternate; }
.scn-candle-fall .sweat { position:absolute; bottom:30%; left:32%; width:3px; height:3px; background: radial-gradient(circle, #5a7a8a 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 2px rgba(90,122,138,.5); animation: cf-sweat 2s ease-in-out infinite; }
.scn-candle-fall .shadow { position:absolute; bottom:5%; left:30%; width:120px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: cf-shadow 6s ease-in-out infinite; }
@keyframes cf-candle { 0% { transform: rotate(0) } 30% { transform: rotate(15deg) } 40% { transform: rotate(20deg) translateY(-2px) } 60% { transform: rotate(-10deg) translateY(2px) } 100% { transform: rotate(0) } }
@keyframes cf-wax { 0% { opacity:0; transform: translateY(0) scale(0) } 25% { opacity:.8; transform: translateY(0) scale(1) } 50% { opacity:.6; transform: translateY(5px) scale(.8) } 100% { opacity:0; transform: translateY(10px) scale(0) } }
@keyframes cf-hand { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-5px) rotate(-10deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cf-shadow { 0% { transform: scaleX(1) opacity:.5 } 50% { transform: scaleX(1.2) opacity:.8 } 100% { transform: scaleX(1) opacity:.5 } }

.scn-smile-exchanged {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b88c 50%, #a67c52 100%),
    radial-gradient(ellipse at 80% 20%, #fff2d6 0%, transparent 60%);
}
.scn-smile-exchanged .door-frame {
  position: absolute; left: 20%; bottom: 10%; width: 60%; height: 80%;
  background: linear-gradient(180deg, #8b6e4e 0%, #6b5238 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  border: 4px solid #5a3f2a;
}
.scn-smile-exchanged .wall-light {
  position: absolute; right: 5%; top: 15%; width: 30%; height: 60%;
  background: radial-gradient(ellipse at center, #ffebc4 0%, #f5d89b 40%, transparent 70%);
  box-shadow: 0 0 40px #ffdd99; animation: se-light-pulse 4s ease-in-out infinite alternate;
}
.scn-smile-exchanged .woman-sweep {
  position: absolute; left: 28%; bottom: 12%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: se-sweep 2.5s ease-in-out infinite;
}
.scn-smile-exchanged .bird-perch {
  position: absolute; left: 55%; bottom: 65%; width: 14px; height: 12px;
  background: #6b5238; border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 8px #8b6e4e; animation: se-bird 3s ease-in-out infinite;
}
.scn-smile-exchanged .dust-motes {
  position: absolute; width: 6px; height: 6px; background: #fff2d6;
  border-radius: 50%; filter: blur(2px); opacity: 0.6;
}
.scn-smile-exchanged .motes-a {
  top: 30%; left: 50%; animation: se-drift-a 12s linear infinite;
}
.scn-smile-exchanged .motes-b {
  top: 50%; left: 40%; width: 4px; height: 4px; animation: se-drift-b 15s linear infinite;
}
@keyframes se-light-pulse {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.08); }
  100% { opacity: 0.85; transform: scale(0.95); }
}
@keyframes se-sweep {
  0% { transform: translate(0,0) rotate(-5deg); }
  50% { transform: translate(8px,-2px) rotate(5deg); }
  100% { transform: translate(0,0) rotate(-5deg); }
}
@keyframes se-bird {
  0% { transform: translate(0,0) scaleY(1); }
  30% { transform: translate(2px,-1px) scaleY(0.9); }
  70% { transform: translate(-1px,-2px) scaleY(0.95); }
  100% { transform: translate(0,0) scaleY(1); }
}
@keyframes se-drift-a {
  0% { transform: translate(-20px,0); opacity: 0.3; }
  50% { transform: translate(40px,-10px); opacity: 0.7; }
  100% { transform: translate(80px,5px); opacity: 0.2; }
}
@keyframes se-drift-b {
  0% { transform: translate(0,0); opacity: 0.5; }
  50% { transform: translate(-30px,8px); opacity: 0.2; }
  100% { transform: translate(-60px,0); opacity: 0.4; }
}

.scn-cafe-visits {
  background: 
    linear-gradient(90deg, #c9a87c 0%, #e2c9a3 30%, #f5e6c8 70%, #d4b88c 100%),
    radial-gradient(circle at 60% 50%, #fff2d6 0%, transparent 60%);
}
.scn-cafe-visits .cafe-window {
  position: absolute; left: 58%; top: 5%; width: 35%; height: 55%;
  background: linear-gradient(180deg, #ffebc4 0%, #f5d89b 40%, #b8926a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  border: 3px solid #6b5238; overflow: hidden;
}
.scn-cafe-visits .table-top {
  position: absolute; bottom: 8%; left: 10%; width: 75%; height: 20%;
  background: linear-gradient(180deg, #8b6e4e 0%, #5a3f2a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-cafe-visits .maid-figure {
  position: absolute; left: 30%; bottom: 20%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cv-maid 5s ease-in-out infinite;
}
.scn-cafe-visits .bock-glass {
  position: absolute; bottom: 15%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #e6d4b3 0%, #c9a87c 100%);
  border-radius: 0 0 20% 20%; box-shadow: inset 1px 1px 4px rgba(0,0,0,0.3);
}
.scn-cafe-visits .glass-a { left: 48%; animation: cv-glass 3s ease-in-out infinite; }
.scn-cafe-visits .glass-b { left: 58%; animation: cv-glass 3.5s ease-in-out infinite reverse; }
.scn-cafe-visits .brandy-bottle {
  position: absolute; left: 68%; bottom: 18%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #b08040 0%, #8b6e4e 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 8px rgba(0,0,0,0.4);
  animation: cv-bottle 6s ease-in-out infinite;
}
@keyframes cv-maid {
  0% { transform: translate(0,0) rotate(-2deg); }
  40% { transform: translate(5px,-1px) rotate(2deg); }
  70% { transform: translate(-3px,1px) rotate(-1deg); }
  100% { transform: translate(0,0) rotate(-2deg); }
}
@keyframes cv-glass {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(2px,-3px) rotate(5deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes cv-bottle {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}

.scn-growing-affection {
  background: 
    linear-gradient(180deg, #e6d4b3 0%, #f5e6c8 40%, #d4b88c 80%, #a67c52 100%),
    radial-gradient(ellipse at 70% 70%, #ffebc4 0%, transparent 50%);
}
.scn-growing-affection .tavern-table {
  position: absolute; left: 5%; bottom: 5%; width: 90%; height: 35%;
  background: linear-gradient(180deg, #7a5c3a 0%, #4a3220 100%);
  border-radius: 50% / 20% 20% 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-growing-affection .lemonade-bottle {
  position: absolute; left: 40%; bottom: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #e6d4b3 0%, #f5e6c8 30%, #c9a87c 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 12px rgba(0,0,0,0.2);
  animation: ga-bottle 4s ease-in-out infinite alternate;
}
.scn-growing-affection .two-glasses {
  position: absolute; bottom: 25%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #fff2d6 0%, #e6d4b3 100%);
  border-radius: 0 0 20% 20%; box-shadow: inset 0 2px 6px rgba(0,0,0,0.2);
}
.scn-growing-affection .glass-left { left: 28%; animation: ga-glass 3s ease-in-out infinite; }
.scn-growing-affection .glass-right { left: 56%; animation: ga-glass 3.8s ease-in-out infinite reverse; }
.scn-growing-affection .warm-lamp {
  position: absolute; right: 10%; top: 10%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffdd99 0%, #e6b86e 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px #f5c680; animation: ga-lamp 6s ease-in-out infinite alternate;
}
.scn-growing-affection .coin-shine {
  position: absolute; left: 70%; bottom: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd700 0%, #b89840 80%);
  border-radius: 50%; box-shadow: 0 0 12px #ffd700; animation: ga-coin 5s ease-in-out infinite;
}
@keyframes ga-bottle {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg) scaleY(0.98); }
  100% { transform: rotate(-1deg); }
}
@keyframes ga-glass {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(1px,-2px) rotate(4deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes ga-lamp {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes ga-coin {
  0% { opacity: 0.6; transform: scale(0.8); }
  30% { opacity: 1; transform: scale(1.2); }
  70% { opacity: 0.5; transform: scale(0.9); }
  100% { opacity: 0.7; transform: scale(1); }
}

.scn-marriage-intention {
  background: 
    linear-gradient(180deg, #1a120a 0%, #2a1e12 40%, #3a2a1a 70%, #1a120a 100%),
    radial-gradient(ellipse at 50% 20%, #4a3220 0%, transparent 70%);
}
.scn-marriage-intention .candle-glow {
  position: absolute; left: 50%; bottom: 55%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at center, #ffaa44 0%, #cc6622 40%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 60px #cc6622, 0 0 100px #884422;
  animation: mi-candle 3s ease-in-out infinite alternate;
}
.scn-marriage-intention .dancing-figures {
  position: absolute; left: 25%; bottom: 20%; width: 50%; height: 45%;
}
.scn-marriage-intention .dancing-figures::before,
.scn-marriage-intention .dancing-figures::after {
  content: ''; position: absolute; bottom: 0; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-marriage-intention .dancing-figures::before {
  left: 10%; animation: mi-dance-a 2s ease-in-out infinite;
}
.scn-marriage-intention .dancing-figures::after {
  right: 10%; animation: mi-dance-b 2.8s ease-in-out infinite;
}
.scn-marriage-intention .shadow-pool {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 25%;
  background: radial-gradient(ellipse at 50% 0%, transparent 0%, rgba(0,0,0,0.6) 80%);
  animation: mi-shadow 5s ease-in-out infinite alternate;
}
.scn-marriage-intention .oyster-coin {
  position: absolute; left: 45%; bottom: 10%; width: 12px; height: 10px;
  background: radial-gradient(circle at 30% 30%, #e6c88c 0%, #b89840 100%);
  border-radius: 50%; box-shadow: 0 0 8px #c0a050; animation: mi-coin 6s ease-in-out infinite;
}
.scn-marriage-intention .dusty-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #2a1e12 0%, #4a3220 50%, transparent 100%);
  opacity: 0.5;
}
@keyframes mi-candle {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes mi-dance-a {
  0% { transform: translate(0,0) rotate(-8deg); }
  50% { transform: translate(6px,-3px) rotate(6deg); }
  100% { transform: translate(0,0) rotate(-8deg); }
}
@keyframes mi-dance-b {
  0% { transform: translate(0,0) rotate(8deg); }
  50% { transform: translate(-5px,-2px) rotate(-5deg); }
  100% { transform: translate(0,0) rotate(8deg); }
}
@keyframes mi-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes mi-coin {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(180deg); }
  100% { transform: scale(1) rotate(360deg); }
}

.scn-vision-gunshot { background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 60%, #050510 100%), radial-gradient(ellipse at 30% 60%, #2a2030 0%, transparent 70%); }
.scn-vision-gunshot .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-vision-gunshot .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); }
.scn-vision-gunshot .body { position:absolute; bottom:20%; left:30%; width:40%; height:35%; background: linear-gradient(160deg, #2a2a3e 0%, #0d0d1a 100%); border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%; transform: rotate(-10deg); box-shadow: inset 0 4px 10px rgba(0,0,0,.5); animation: vg-body 8s ease-in-out infinite alternate; }
.scn-vision-gunshot .arm { position:absolute; bottom:30%; left:55%; width:15%; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform: rotate(30deg); transform-origin: top left; box-shadow: inset 0 2px 6px rgba(0,0,0,.4); animation: vg-arm 6s ease-in-out infinite; }
.scn-vision-gunshot .gun { position:absolute; bottom:28%; left:68%; width:12%; height:6%; background: linear-gradient(90deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 10% 30% 30% 10% / 50% 50% 50% 50%; transform: rotate(50deg); box-shadow: 0 2px 6px rgba(0,0,0,.6); animation: vg-gun 4s ease-in-out infinite alternate; }
.scn-vision-gunshot .puddle { position:absolute; bottom:12%; left:40%; width:20%; height:8%; background: radial-gradient(ellipse at 50% 100%, #2a1520 0%, transparent 80%); border-radius: 50%; filter: blur(4px); animation: vg-puddle 12s ease-in-out infinite alternate; }
.scn-vision-gunshot .shadow { position:absolute; bottom:0; left:25%; width:50%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 80%); border-radius: 50%; filter: blur(8px); animation: vg-shadow 10s ease-in-out infinite alternate; }
@keyframes vg-body { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-4px); } 100% { transform: rotate(-8deg) translateY(2px); } }
@keyframes vg-arm { 0% { transform: rotate(30deg); } 50% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(35deg) translateY(1px); } }
@keyframes vg-gun { 0% { transform: rotate(50deg) scale(1); } 50% { transform: rotate(45deg) scale(1.05); } 100% { transform: rotate(55deg) scale(0.95); } }
@keyframes vg-puddle { 0% { opacity: .6; transform: scaleX(1); } 50% { opacity: .8; transform: scaleX(1.1); } 100% { opacity: .5; transform: scaleX(0.9); } }
@keyframes vg-shadow { 0% { opacity: .4; } 50% { opacity: .6; } 100% { opacity: .3; } }

.scn-vision-poison { background: linear-gradient(180deg, #1e1e2a 0%, #0f0f1a 50%, #050510 100%), radial-gradient(ellipse at 50% 40%, #2a2040 0%, transparent 70%); }
.scn-vision-poison .wall-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-vision-poison .table { position:absolute; bottom:30%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.7); }
.scn-vision-poison .tumbler { position:absolute; bottom:38%; left:48%; width:8%; height:14%; background: linear-gradient(180deg, rgba(150,130,110,.4) 0%, rgba(80,70,60,.2) 60%, transparent 100%); border: 1px solid rgba(200,180,160,.2); border-radius: 6% 6% 20% 20%; transform: rotate(-2deg); box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: vp-tumbler 5s ease-in-out infinite alternate; }
.scn-vision-poison .bottle { position:absolute; bottom:36%; left:40%; width:6%; height:20%; background: linear-gradient(180deg, #5a3020 0%, #3a1810 100%); border-radius: 20% 20% 10% 10% / 30% 30% 50% 50%; transform: rotate(4deg); box-shadow: inset 0 2px 4px rgba(100,60,40,.3), 0 2px 6px rgba(0,0,0,.6); animation: vp-bottle 7s ease-in-out infinite; }
.scn-vision-poison .figure { position:absolute; bottom:20%; left:35%; width:30%; height:55%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: inset 0 4px 10px rgba(0,0,0,.5); animation: vp-figure 12s ease-in-out infinite alternate; }
.scn-vision-poison .hand { position:absolute; bottom:42%; left:52%; width:8%; height:12%; background: linear-gradient(180deg, #2a2a3e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%; transform: rotate(-20deg); transform-origin: bottom center; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: vp-hand 4s ease-in-out infinite; }
.scn-vision-poison .matches { position:absolute; bottom:34%; left:38%; width:3%; height:10%; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; transform: rotate(-15deg); box-shadow: 0 1px 3px rgba(0,0,0,.5); animation: vp-matches 6s ease-in-out infinite alternate; }
@keyframes vp-tumbler { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes vp-bottle { 0% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(6deg) translateY(1px); } }
@keyframes vp-figure { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes vp-hand { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg) translateX(2px); } 100% { transform: rotate(-25deg) translateX(-1px); } }
@keyframes vp-matches { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .6; } }

.scn-vision-hanging { background: linear-gradient(180deg, #0a0a14 0%, #05050a 60%, #020208 100%), radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, transparent 80%); }
.scn-vision-hanging .wall-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0d0d1a 0%, #06060e 100%); }
.scn-vision-hanging .nail { position:absolute; top:15%; left:50%; width:4%; height:6%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: translateX(-50%); box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: vh-nail 10s ease-in-out infinite alternate; }
.scn-vision-hanging .rope { position:absolute; top:18%; left:50%; width:2%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); transform: translateX(-50%); border-radius: 10% 10% 0 0; box-shadow: inset 0 2px 4px rgba(0,0,0,.4); animation: vh-rope 8s ease-in-out infinite alternate; }
.scn-vision-hanging .figure-hanging { position:absolute; bottom:30%; left:50%; width:20%; height:35%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: translateX(-50%) rotate(2deg); box-shadow: inset 0 4px 10px rgba(0,0,0,.5); animation: vh-figure 6s ease-in-out infinite; }
.scn-vision-hanging .feet { position:absolute; bottom:28%; left:45%; width:10%; height:8%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; transform: rotate(10deg); box-shadow: inset 0 2px 4px rgba(0,0,0,.3); animation: vh-feet 4s ease-in-out infinite alternate; }
.scn-vision-hanging .shadow-drop { position:absolute; bottom:0; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.7) 0%, transparent 80%); filter: blur(8px); animation: vh-shadow 12s ease-in-out infinite; }
@keyframes vh-nail { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes vh-rope { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.03); } 100% { transform: translateX(-50%) scaleX(0.97); } }
@keyframes vh-figure { 0% { transform: translateX(-50%) rotate(2deg) translateY(0); } 50% { transform: translateX(-50%) rotate(0deg) translateY(-4px); } 100% { transform: translateX(-50%) rotate(-2deg) translateY(2px); } }
@keyframes vh-feet { 0% { transform: rotate(10deg); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(-2px); } }
@keyframes vh-shadow { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .4; } }

.scn-vision-rope-noose { background: linear-gradient(180deg, #08080e 0%, #030306 80%, #010103 100%), radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, transparent 70%); }
.scn-vision-rope-noose .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a14 0%, #020208 100%); }
.scn-vision-rope-noose .beam { position:absolute; top:0; left:25%; right:25%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.7); }
.scn-vision-rope-noose .rope-tail { position:absolute; top:4%; left:50%; width:2%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); transform: translateX(-50%); border-radius: 4px; box-shadow: inset 0 2px 4px rgba(0,0,0,.4); animation: vr-rope 7s ease-in-out infinite alternate; }
.scn-vision-rope-noose .noose-loop { position:absolute; top:38%; left:50%; width:12%; height:10%; background: transparent; border: 3px solid #3a2a1a; border-radius: 50%; transform: translateX(-50%); box-shadow: 0 2px 6px rgba(0,0,0,.5), inset 0 2px 4px rgba(0,0,0,.3); animation: vr-noose 5s ease-in-out infinite; }
.scn-vision-rope-noose .hand-grip { position:absolute; top:42%; left:46%; width:8%; height:14%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(20deg); transform-origin: top center; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: vr-hand 6s ease-in-out infinite alternate; }
.scn-vision-rope-noose .fingers { position:absolute; top:44%; left:49%; width:10%; height:6%; background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(30deg); box-shadow: 0 1px 3px rgba(0,0,0,.4); animation: vr-fingers 4s ease-in-out infinite; }
@keyframes vr-rope { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.04); } 100% { transform: translateX(-50%) scaleY(0.96); } }
@keyframes vr-noose { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes vr-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(3px); } 100% { transform: rotate(25deg) translateY(-2px); } }
@keyframes vr-fingers { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(20deg) scale(1.05); } 100% { transform: rotate(40deg) scale(0.95); } }

.scn-small-talk {
  background:
    linear-gradient(180deg, #fef9e7 0%, #f2e3c6 40%, #d9b88e 100%),
    radial-gradient(ellipse at 30% 20%, #ffedb0 0%, transparent 70%);
}
.scn-small-talk .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #f5e6cc 0%, #e8d4b0 100%);
  border-radius: 0 0 12% 12%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.08);
}
.scn-small-talk .window {
  position: absolute; top: 12%; left: 15%; width: 30%; height: 50%;
  background: linear-gradient(135deg, #fff8e7 0%, #fef4d6 60%, #e8d4b0 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 30px rgba(255, 230, 150, 0.3), 0 4px 12px rgba(0,0,0,0.1);
  animation: st-window 10s ease-in-out infinite alternate;
}
.scn-small-talk .table {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(135deg, #c4956a 0%, #a6784e 100%);
  border-radius: 20% 20% 0 0 / 80% 80% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.15);
}
.scn-small-talk .figure-a {
  position: absolute; bottom: 20%; left: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-sit 5s ease-in-out infinite;
}
.scn-small-talk .figure-b {
  position: absolute; bottom: 20%; right: 30%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-sit 5s ease-in-out infinite reverse;
}
.scn-small-talk .tea-cup {
  position: absolute; bottom: 18%; left: 45%; width: 10px; height: 8px;
  background: radial-gradient(circle, #f5e6cc 0%, #d9b88e 80%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: st-cup 7s ease-in-out infinite;
}
@keyframes st-window {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.92; transform: scale(0.98); }
}
@keyframes st-sit {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes st-cup {
  0%,100% { transform: translate(0, 0); }
  50% { transform: translate(1px, -1px); }
}

.scn-proposal-offer {
  background:
    linear-gradient(180deg, #e8d4b0 0%, #d9b88e 40%, #c4956a 100%),
    radial-gradient(ellipse at 70% 30%, #f2e3c6 0%, transparent 70%);
}
.scn-proposal-offer .bg-sharp {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d9b88e 0%, #c4956a 50%, #a6784e 100%);
  clip-path: polygon(0 30%, 100% 10%, 100% 85%, 0 100%);
  animation: po-sharp 4s ease-in-out infinite alternate;
}
.scn-proposal-offer .table-narrow {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.3);
}
.scn-proposal-offer .hand-proffer {
  position: absolute; bottom: 20%; left: 38%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: po-hand 2s ease-in-out infinite;
}
.scn-proposal-offer .figure-lean {
  position: absolute; bottom: 18%; right: 20%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: po-lean 3s ease-in-out infinite;
}
.scn-proposal-offer .shadow-stretch {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(5px);
  animation: po-shadow 5s ease-in-out infinite alternate;
}
.scn-proposal-offer .coin {
  position: absolute; bottom: 18%; left: 35%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d4a840 0%, #b08020 80%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(180, 120, 20, 0.4);
  animation: po-coin 1.5s ease-in-out infinite;
}
@keyframes po-sharp {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes po-hand {
  0%,100% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(2px); }
}
@keyframes po-lean {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-4px) rotate(3deg); }
}
@keyframes po-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}
@keyframes po-coin {
  0%,100% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.2); opacity: 1; }
}

.scn-annuity-explanation {
  background:
    linear-gradient(180deg, #fef4d6 0%, #f2e3c6 40%, #d9b88e 100%),
    radial-gradient(ellipse at 50% 80%, #ffe8b0 0%, transparent 60%);
}
.scn-annuity-explanation .hearth {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #e8d4b0 0%, #c4956a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-annuity-explanation .table-round {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #d9b88e 0%, #a6784e 100%);
  border-radius: 50%;
  box-shadow: 0 -8px 16px rgba(0,0,0,0.1);
}
.scn-annuity-explanation .potato-bowl {
  position: absolute; bottom: 12%; left: 35%; width: 20px; height: 16px;
  background: radial-gradient(circle, #e8c88a 0%, #c4956a 80%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 3px 6px rgba(0,0,0,0.15);
  animation: ae-bowl 6s ease-in-out infinite;
}
.scn-annuity-explanation .woman-peel {
  position: absolute; bottom: 10%; left: 30%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ae-peel 4s ease-in-out infinite;
}
.scn-annuity-explanation .man-point {
  position: absolute; bottom: 10%; right: 25%; width: 15px; height: 38px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: ae-point 3s ease-in-out infinite;
}
.scn-annuity-explanation .steam {
  position: absolute; bottom: 16%; left: 42%; width: 6px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,240,0.5) 0%, rgba(255,255,240,0) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ae-steam 5s ease-in-out infinite;
}
@keyframes ae-bowl {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.03); }
}
@keyframes ae-peel {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes ae-point {
  0%,100% { transform: rotate(0) scaleX(1); }
  50% { transform: rotate(-8deg) scaleX(0.95); }
}
@keyframes ae-steam {
  0% { opacity: 0; transform: translateY(0) scale(0.5); }
  50% { opacity: 0.6; transform: translateY(-8px) scale(1); }
  100% { opacity: 0; transform: translateY(-16px) scale(0.8); }
}

.scn-magloire-considers {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a3a5e 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 70%);
}
.scn-magloire-considers .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #0a0a1a 100%);
  animation: mc-dark 12s ease-in-out infinite alternate;
}
.scn-magloire-considers .candle {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #d4a840 0%, #4a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
}
.scn-magloire-considers .candle-flicker {
  position: absolute; bottom: 34%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffe060 0%, #d4a840 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: mc-flicker 0.8s ease-in-out infinite alternate;
}
.scn-magloire-considers .figure-distrust {
  position: absolute; bottom: 18%; left: 20%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-recoil 4s ease-in-out infinite;
}
.scn-magloire-considers .figure-hood {
  position: absolute; bottom: 18%; right: 20%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mc-lean-in 3s ease-in-out infinite;
}
.scn-magloire-considers .shadow-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: mc-shadow 6s ease-in-out infinite alternate;
}
@keyframes mc-dark {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes mc-flicker {
  0% { opacity: 0.8; transform: translateX(-50%) scale(1) rotate(-3deg); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1) rotate(2deg); }
  100% { opacity: 0.9; transform: translateX(-50%) scale(0.95) rotate(-1deg); }
}
@keyframes mc-recoil {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(8px) rotate(5deg); }
}
@keyframes mc-lean-in {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-6px) rotate(-4deg); }
}
@keyframes mc-shadow {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.3; }
}

/* married-flirt-intro */
.scn-married-flirt-intro {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2a1e 100%),
              radial-gradient(ellipse at 60% 80%, #c08040 0%, transparent 60%);
}
.scn-married-flirt-intro .bg-wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(135deg, #2a2218 0%, #1e1812 100%); animation: mfi-wall 12s ease infinite alternate; }
.scn-married-flirt-intro .bg-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-married-flirt-intro .chair { position: absolute; bottom: 12%; left: 20%; width: 80px; height: 90px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.7), inset 0 2px 4px rgba(255,255,255,.05); transform: rotate(3deg); }
.scn-married-flirt-intro .figure-woman { position: absolute; bottom: 14%; left: 20%; width: 36px; height: 60px; transform: translateX(22px); background: linear-gradient(180deg, #1a1a22 0%, #0e0e16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mfi-figure 5s ease-in-out infinite; }
.scn-married-flirt-intro .lamp-glow { position: absolute; bottom: 22%; left: 30%; width: 60px; height: 60px; background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%); border-radius: 50%; animation: mfi-glow 3s ease-in-out infinite alternate; }
.scn-married-flirt-intro .lamp-base { position: absolute; bottom: 20%; left: 28%; width: 20px; height: 30px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 30% 30%; }
.scn-married-flirt-intro .table-small { position: absolute; bottom: 10%; left: 42%; width: 30px; height: 20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 4px; }
.scn-married-flirt-intro .glass { position: absolute; bottom: 14%; left: 46%; width: 8px; height: 18px; background: rgba(180,160,120,.3); border: 1px solid rgba(200,180,140,.4); border-radius: 2px; animation: mfi-glass 4s ease-in-out infinite; }
@keyframes mfi-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes mfi-figure { 0%,100% { transform: translateX(22px) translateY(0) rotate(-1deg) } 50% { transform: translateX(22px) translateY(-2px) rotate(1deg) } }
@keyframes mfi-glow { 0% { opacity: .7; transform: scale(.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .8; transform: scale(1) } }
@keyframes mfi-glass { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }

/* advantages-of-married */
.scn-advantages-of-married {
  background: linear-gradient(180deg, #1c1410 0%, #2c2018 40%, #3c2c20 100%),
              radial-gradient(ellipse at 40% 70%, #c08040 0%, transparent 60%);
}
.scn-advantages-of-married .bg-hearth { position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-advantages-of-married .hearth-fire { position: absolute; bottom: 10%; left: 15%; width: 60px; height: 40px; background: radial-gradient(ellipse at 50% 80%, #ff8040 0%, #c04020 50%, transparent 80%); border-radius: 50%; animation: aom-fire 2s ease-in-out infinite alternate; }
.scn-advantages-of-married .mantel { position: absolute; bottom: 40%; left: 10%; right: 10%; height: 10px; background: linear-gradient(180deg, #6a4a2e 0%, #4a2a14 100%); border-radius: 2px; }
.scn-advantages-of-married .table-dining { position: absolute; bottom: 28%; left: 40%; width: 80px; height: 8px; background: linear-gradient(180deg, #5a3a22 0%, #3a1e0e 100%); border-radius: 2px; transform: rotate(-2deg); }
.scn-advantages-of-married .plate { position: absolute; bottom: 32%; left: 42%; width: 16px; height: 4px; background: radial-gradient(ellipse, #d0c0a0 0%, #b0a080 100%); border-radius: 50%; }
.scn-advantages-of-married .glass-wine { position: absolute; bottom: 34%; left: 48%; width: 6px; height: 14px; background: rgba(140,60,40,.4); border: 1px solid rgba(200,100,60,.5); border-radius: 1px; transform: rotate(5deg); }
.scn-advantages-of-married .chair-left { position: absolute; bottom: 20%; left: 30%; width: 30px; height: 40px; background: linear-gradient(180deg, #4a3424 0%, #2a1e12 100%); border-radius: 10% 10% 20% 20%; transform: rotate(8deg); }
.scn-advantages-of-married .chair-right { position: absolute; bottom: 20%; right: 30%; width: 30px; height: 40px; background: linear-gradient(180deg, #4a3424 0%, #2a1e12 100%); border-radius: 10% 10% 20% 20%; transform: rotate(-8deg); }
.scn-advantages-of-married .candle { position: absolute; bottom: 36%; left: 55%; width: 4px; height: 16px; background: linear-gradient(180deg, #e8c8a0 0%, #c8a880 100%); border-radius: 2px; animation: aom-candle 4s ease-in-out infinite; }
@keyframes aom-fire { 0% { transform: scale(1) translateY(0); opacity: .8 } 50% { transform: scale(1.1) translateY(-3px); opacity: 1 } 100% { transform: scale(.95) translateY(2px); opacity: .7 } }
@keyframes aom-candle { 0%,100% { transform: translateY(0) scaleY(1); opacity: .9 } 50% { transform: translateY(-1px) scaleY(1.05); opacity: 1 } }

/* affection-for-husband */
.scn-affection-for-husband {
  background: linear-gradient(180deg, #1e1612 0%, #2e221a 40%, #3e2e22 100%),
              radial-gradient(ellipse at 50% 60%, #b08040 0%, transparent 60%);
}
.scn-affection-for-husband .bg-curtain { position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%); animation: afh-curtain 20s ease infinite; }
.scn-affection-for-husband .sofa-back { position: absolute; bottom: 25%; left: 25%; right: 25%; height: 30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 10px 10px 0 0; }
.scn-affection-for-husband .sofa-seat { position: absolute; bottom: 18%; left: 25%; right: 25%; height: 20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 0 0 10px 10px; }
.scn-affection-for-husband .figure-husband { position: absolute; bottom: 22%; left: 32%; width: 30px; height: 40px; background: linear-gradient(180deg, #1a1614 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: afh-husband 6s ease-in-out infinite; }
.scn-affection-for-husband .figure-wife { position: absolute; bottom: 22%; right: 32%; width: 26px; height: 36px; background: linear-gradient(180deg, #1c1816 0%, #100c0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: afh-wife 6s ease-in-out infinite reverse; }
.scn-affection-for-husband .lamp-table { position: absolute; bottom: 18%; left: 55%; width: 14px; height: 12px; background: linear-gradient(180deg, #6a4a2e 0%, #4a2a14 100%); border-radius: 4px; }
.scn-affection-for-husband .lamp-light { position: absolute; bottom: 22%; left: 54%; width: 20px; height: 20px; background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 80%); border-radius: 50%; animation: afh-lamp 4s ease-in-out infinite alternate; }
.scn-affection-for-husband .rug { position: absolute; bottom: 10%; left: 20%; right: 20%; height: 15px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; }
@keyframes afh-curtain { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes afh-husband { 0%,100% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(2px) translateY(-2px) } }
@keyframes afh-wife { 0%,100% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(-2px) translateY(-2px) } }
@keyframes afh-lamp { 0% { opacity: .6; transform: scale(.9) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .7; transform: scale(.95) } }

/* emma-portrait */
.scn-emma-portrait {
  background: linear-gradient(180deg, #1e1612 0%, #2e221a 40%, #3e2e22 100%),
              radial-gradient(ellipse at 50% 40%, #d0a060 0%, transparent 70%);
}
.scn-emma-portrait .bg-wallpaper { position: absolute; inset: 0; background: repeating-linear-gradient(45deg, #2a2218 0px, #2a2218 4px, #1e1812 4px, #1e1812 8px); opacity: .3; animation: ep-wall 30s linear infinite; }
.scn-emma-portrait .mirror-frame { position: absolute; top: 10%; left: 30%; right: 30%; bottom: 20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border-radius: 10% 10% 5% 5%; border: 4px solid #7a5a3a; box-shadow: 0 4px 12px rgba(0,0,0,.7); }
.scn-emma-portrait .mirror-glass { position: absolute; top: 12%; left: 32%; right: 32%; bottom: 22%; background: linear-gradient(135deg, rgba(180,160,140,.15) 0%, rgba(100,80,60,.05) 100%); border-radius: 8% 8% 4% 4%; backdrop-filter: blur(2px); }
.scn-emma-portrait .figure-emma { position: absolute; top: 20%; left: 35%; width: 30%; height: 45%; background: linear-gradient(180deg, #1c1816 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(3deg); animation: ep-emma 8s ease-in-out infinite; }
.scn-emma-portrait .hair-emma { position: absolute; top: 18%; left: 33%; width: 34%; height: 20%; background: radial-gradient(ellipse at 50% 30%, #1a1210 0%, #0e0806 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; animation: ep-hair 8s ease-in-out infinite alternate; }
.scn-emma-portrait .shelf { position: absolute; bottom: 18%; left: 30%; right: 30%; height: 6px; background: linear-gradient(180deg, #6a4a2e 0%, #4a2a14 100%); border-radius: 2px; }
.scn-emma-portrait .vase { position: absolute; bottom: 20%; left: 42%; width: 8px; height: 16px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1e12 100%); border-radius: 20% 20% 30% 30%; }
.scn-emma-portrait .flower { position: absolute; bottom: 32%; left: 42%; width: 4px; height: 10px; background: radial-gradient(circle, #b87878 0%, #602020 100%); border-radius: 50%; animation: ep-flower 4s ease-in-out infinite; }
@keyframes ep-wall { 0% { background-position: 0 0 } 100% { background-position: 16px 16px } }
@keyframes ep-emma { 0%,100% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-3px) } }
@keyframes ep-hair { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes ep-flower { 0%,100% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(10deg) scale(1.1) } }

/* fortune-teller-attic */
.scn-fortune-teller-attic { background: linear-gradient(180deg, #1a1128 0%, #2a1a38 40%, #12091a 100%), radial-gradient(ellipse at 30% 80%, #4a2a4a 0%, transparent 60%); }
.scn-fortune-teller-attic .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1a30 0%, #1a0a20 100%); }
.scn-fortune-teller-attic .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1210 0%, #2a1a18 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-fortune-teller-attic .window { position:absolute; top:15%; left:20%; width:70px; height:90px; background: radial-gradient(ellipse at 50% 60%, #3a2a4a 0%, #1a0a2a 70%); border: 4px solid #2a1a28; border-radius: 4px; box-shadow: inset 0 0 30px rgba(100,80,60,.2); animation: fta-window 12s ease-in-out infinite alternate; }
.scn-fortune-teller-attic .herbs { position:absolute; top:10%; left:55%; width:120px; height:60px; background: radial-gradient(ellipse, #3a4a2a 0%, transparent 70%); filter: blur(3px); transform: rotate(-10deg); animation: fta-herbs 8s ease-in-out infinite; }
.scn-fortune-teller-attic .figure { position:absolute; bottom:30%; left:35%; width:30px; 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: fta-figure 5s ease-in-out infinite; }
.scn-fortune-teller-attic .candle { position:absolute; bottom:38%; left:42%; width:8px; height:20px; background: linear-gradient(180deg, #ffd080 0%, #b08040 100%); border-radius: 50% 50% 4px 4px; box-shadow: 0 0 20px 6px rgba(255,208,128,.5), 0 0 40px 12px rgba(255,208,128,.2); animation: fta-candle 2s ease-in-out infinite alternate; }
.scn-fortune-teller-attic .table { position:absolute; bottom:30%; left:30%; width:80px; height:15px; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: perspective(100px) rotateX(5deg); }
@keyframes fta-window { 0% { opacity:.6; box-shadow: inset 0 0 20px rgba(100,80,60,.1) } 50% { opacity:.8; box-shadow: inset 0 0 40px rgba(100,80,60,.3) } 100% { opacity:.7; box-shadow: inset 0 0 30px rgba(100,80,60,.2) } }
@keyframes fta-herbs { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes fta-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fta-candle { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.85; transform: scaleY(.95) } }

/* item-stuffed-cat */
.scn-item-stuffed-cat { background: linear-gradient(180deg, #1a1420 0%, #2a1e30 40%, #0e0814 100%), radial-gradient(ellipse at 70% 90%, #2a1a28 0%, transparent 70%); }
.scn-item-stuffed-cat .bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1420 0%, #120a18 100%); }
.scn-item-stuffed-cat .table { position:absolute; bottom:30%; left:20%; right:20%; height:12px; background: linear-gradient(90deg, #2a1a12 0%, #1a0a08 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.7); }
.scn-item-stuffed-cat .cat { position:absolute; bottom:35%; left:42%; width:50px; height:35px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: isc-cat 6s ease-in-out infinite; }
.scn-item-stuffed-cat .hand { position:absolute; bottom:33%; left:54%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; transform-origin: bottom center; animation: isc-hand 4s ease-in-out infinite; }
.scn-item-stuffed-cat .chair { position:absolute; bottom:25%; left:60%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a12 0%, #1a0a08 100%); border-radius: 4px 4px 10% 10%; box-shadow: 2px 0 6px rgba(0,0,0,.5); }
.scn-item-stuffed-cat .candle { position:absolute; bottom:38%; left:25%; width:6px; height:18px; background: linear-gradient(180deg, #ffc060 0%, #a06020 100%); border-radius: 50% 50% 2px 2px; box-shadow: 0 0 16px 4px rgba(255,192,96,.4); animation: isc-candle 3s ease-in-out infinite alternate; }
@keyframes isc-cat { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes isc-hand { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-6px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes isc-candle { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:.8; transform: scaleY(.95) } }

/* cat-mouton-story */
.scn-cat-mouton-story { background: linear-gradient(180deg, #1a1420 0%, #2a1e30 40%, #0e0814 100%), radial-gradient(ellipse at 40% 70%, #3a2a3a 0%, transparent 80%); }
.scn-cat-mouton-story .bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1a1020 0%, #12081a 100%); }
.scn-cat-mouton-story .window { position:absolute; top:15%; right:15%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 50%, #4a3a5a 0%, #2a1a3a 70%); border: 4px solid #2a1a28; border-radius: 4px; box-shadow: inset 0 0 20px rgba(80,60,100,.2); animation: cms-window 10s ease-in-out infinite alternate; }
.scn-cat-mouton-story .figure { position:absolute; bottom:30%; left:30%; width:35px; height:90px; background: linear-gradient(180deg, #2a1a28 0%, #1a0a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cms-figure 7s ease-in-out infinite; }
.scn-cat-mouton-story .cat { position:absolute; bottom:35%; left:40%; width:40px; height:25px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 70% 70% 30% 30% / 80% 80% 20% 20%; transform-origin: bottom center; animation: cms-cat 5s ease-in-out infinite alternate; }
.scn-cat-mouton-story .chair { position:absolute; bottom:25%; left:25%; width:45px; height:55px; background: linear-gradient(180deg, #2a1a12 0%, #1a0a08 100%); border-radius: 4px 4px 10% 10%; box-shadow: 2px 0 8px rgba(0,0,0,.5); }
.scn-cat-mouton-story .basket { position:absolute; bottom:30%; left:55%; width:30px; height:20px; background: radial-gradient(ellipse, #3a2a1a 0%, #1a1208 100%); border-radius: 40% 40% 20% 20%; filter: blur(2px); animation: cms-basket 9s ease-in-out infinite; }
@keyframes cms-window { 0% { opacity:.5; box-shadow: inset 0 0 10px rgba(80,60,100,.1) } 50% { opacity:.8; box-shadow: inset 0 0 30px rgba(80,60,100,.3) } 100% { opacity:.6; box-shadow: inset 0 0 20px rgba(80,60,100,.2) } }
@keyframes cms-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateY(-2px) rotate(2deg) } 75% { transform: translateY(-4px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cms-cat { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) scale(.95) } }
@keyframes cms-basket { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }

/* lover-arrives */
.scn-lover-arrives { background: linear-gradient(180deg, #12101a 0%, #1a1828 50%, #0a0812 100%), radial-gradient(ellipse at 50% 100%, #1a1828 0%, transparent 70%); }
.scn-lover-arrives .bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #12101a 0%, #0a0812 100%); }
.scn-lover-arrives .door { position:absolute; bottom:20%; left:10%; width:80px; height:120px; background: linear-gradient(180deg, #2a1a18 0%, #1a0a08 100%); border: 3px solid #1a1210; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); transform: perspective(200px) rotateY(10deg); animation: lar-door 8s ease-in-out infinite; }
.scn-lover-arrives .woman { position:absolute; bottom:30%; left:35%; width:30px; height:85px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lar-woman 6s ease-in-out infinite; }
.scn-lover-arrives .man { position:absolute; bottom:30%; left:55%; width:35px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lar-man 4s ease-in-out infinite alternate; }
.scn-lover-arrives .lamp { position:absolute; bottom:35%; left:20%; width:10px; height:25px; background: linear-gradient(180deg, #ffc060 0%, #a07030 100%); border-radius: 50% 50% 4px 4px; box-shadow: 0 0 30px 8px rgba(255,192,96,.4), 0 0 60px 16px rgba(255,192,96,.15); animation: lar-lamp 3s ease-in-out infinite alternate; }
.scn-lover-arrives .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #12100e 0%, #1a1814 100%); border-radius: 40% 60% 0 0 / 10% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
@keyframes lar-door { 0% { transform: perspective(200px) rotateY(10deg) } 50% { transform: perspective(200px) rotateY(0deg) } 100% { transform: perspective(200px) rotateY(10deg) } }
@keyframes lar-woman { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(-1px) rotate(2deg) } 75% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes lar-man { 0% { transform: translateY(0) translateX(0) rotate(0) } 50% { transform: translateY(-2px) translateX(3px) rotate(2deg) } 100% { transform: translateY(0) translateX(0) rotate(0) } }
@keyframes lar-lamp { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.08) } 100% { opacity:.8; transform: scaleY(.95) } }

/* scene: item-brandy-keg */
.scn-item-brandy-keg {
  background:
    radial-gradient(ellipse at 30% 20%, #fdf4c5 0%, transparent 50%),
    linear-gradient(180deg, #fbe9b0 0%, #f0c878 40%, #d9a84b 100%);
}
.scn-item-brandy-keg .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b1864a 0%, #7a5d2e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: bk-table 8s ease-in-out infinite alternate;
}
.scn-item-brandy-keg .keg {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #a06a44 0%, #6e4422 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  transform: rotate(-5deg);
  animation: bk-keg 3s ease-in-out infinite;
}
.scn-item-brandy-keg .glass {
  position: absolute; bottom: 22%; left: 55%; width: 28px; height: 40px;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,230,.8) 0%, rgba(200,170,120,.3) 70%);
  border-radius: 0 0 10% 10% / 0 0 30% 30%;
  box-shadow: 0 0 12px 6px rgba(255,230,150,.5);
  animation: bk-glow 4s ease-in-out infinite alternate;
}
.scn-item-brandy-keg .hand {
  position: absolute; bottom: 20%; left: 48%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #d9b68a 0%, #b88a5e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: bk-hand 3s ease-in-out infinite;
}
.scn-item-brandy-keg .sunray {
  position: absolute; top: 0; left: 20%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(10px);
  animation: bk-sunray 12s ease-in-out infinite alternate;
}
.scn-item-brandy-keg .sunray-b {
  left: 50%; width: 50%;
  background: linear-gradient(180deg, rgba(255,255,180,.1) 0%, transparent 100%);
  animation: bk-sunray 15s ease-in-out infinite alternate-reverse;
}
@keyframes bk-table {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.95; transform: scaleY(0.98); }
}
@keyframes bk-keg {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes bk-glow {
  0% { box-shadow: 0 0 8px 3px rgba(255,230,150,.4); opacity: 0.8; }
  50% { box-shadow: 0 0 20px 8px rgba(255,230,150,.7); opacity: 1; }
  100% { box-shadow: 0 0 10px 4px rgba(255,230,150,.5); opacity: 0.9; }
}
@keyframes bk-hand {
  0% { transform: translateX(0) rotate(10deg); }
  50% { transform: translateX(5px) rotate(5deg); }
  100% { transform: translateX(0) rotate(10deg); }
}
@keyframes bk-sunray {
  0% { opacity: 0.4; transform: translateX(0) scaleX(1); }
  50% { opacity: 0.8; transform: translateX(-10px) scaleX(1.05); }
  100% { opacity: 0.5; transform: translateX(10px) scaleX(0.95); }
}

/* scene: magloire-becomes-drunkard */
.scn-magloire-becomes-drunkard {
  background:
    radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, #1a1a0e 70%),
    linear-gradient(180deg, #2b251a 0%, #0e0c08 100%);
}
.scn-magloire-becomes-drunkard .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3f3526 0%, #241c12 100%); opacity: 0.6;
}
.scn-magloire-becomes-drunkard .table {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4d3a24 0%, #2e1e0e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,.5);
}
.scn-magloire-becomes-drunkard .woman {
  position: absolute; bottom: 15%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1d1a12 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: md-woman 5s ease-in-out infinite;
}
.scn-magloire-becomes-drunkard .bread {
  position: absolute; bottom: 18%; left: 28%; width: 18px; height: 8px;
  background: #7a5a2a; border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 4px rgba(0,0,0,.3);
  animation: md-bread 3s ease-in-out infinite alternate;
}
.scn-magloire-becomes-drunkard .knife {
  position: absolute; bottom: 15%; left: 26%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #888 0%, #555 100%);
  border-radius: 10% 10% 30% 30%;
  transform: rotate(30deg);
  animation: md-knife 4s ease-in-out infinite;
}
.scn-magloire-becomes-drunkard .bottle {
  position: absolute; bottom: 25%; left: 55%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-magloire-becomes-drunkard .haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, rgba(120,80,30,0.15) 0%, transparent 70%);
  animation: md-haze 8s ease-in-out infinite alternate;
}
@keyframes md-woman {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes md-bread {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(0.95); }
}
@keyframes md-knife {
  0% { transform: rotate(30deg) translateX(0); }
  50% { transform: rotate(25deg) translateX(2px); }
  100% { transform: rotate(30deg) translateX(0); }
}
@keyframes md-haze {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

/* scene: chicot-acts-concerned */
.scn-chicot-acts-concerned {
  background:
    radial-gradient(ellipse at 40% 50%, #4a4a4a 0%, #2a2a2a 70%),
    linear-gradient(180deg, #6b6b6b 0%, #3a3a3a 100%);
}
.scn-chicot-acts-concerned .door {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 95%;
  border: 6px solid #4a3a2a; border-radius: 4% 4% 0 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.3);
}
.scn-chicot-acts-concerned .window {
  position: absolute; top: 15%; left: 25%; width: 50%; height: 40%;
  background: radial-gradient(circle at 30% 30%, #aaa 0%, #555 100%);
  border: 4px solid #4a3a2a;
  border-radius: 2%;
  animation: cc-window 10s ease-in-out infinite alternate;
}
.scn-chicot-acts-concerned .figure {
  position: absolute; bottom: 10%; left: 40%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1e1e1e 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(2deg);
  animation: cc-figure 4s ease-in-out infinite;
}
.scn-chicot-acts-concerned .hand {
  position: absolute; bottom: 18%; left: 35%; width: 16px; height: 12px;
  background: #3a2a1a; border-radius: 50%; transform: rotate(20deg);
  animation: cc-hand 3s ease-in-out infinite;
}
.scn-chicot-acts-concerned .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%);
  animation: cc-shadow 6s ease-in-out infinite alternate;
}
.scn-chicot-acts-concerned .glass {
  position: absolute; bottom: 12%; left: 48%; width: 12px; height: 18px;
  background: rgba(180,160,140,.3);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 0 6px rgba(180,160,140,.2);
  animation: cc-glass 4s ease-in-out infinite alternate;
}
.scn-chicot-acts-concerned .cloud {
  position: absolute; top: 8%; left: 20%; width: 70%; height: 30%;
  background: linear-gradient(180deg, rgba(150,150,150,.3) 0%, transparent 100%);
  filter: blur(12px);
  animation: cc-cloud 30s linear infinite;
}
@keyframes cc-window {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes cc-figure {
  0% { transform: translateY(0) rotate(2deg); }
  25% { transform: translateY(-4px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(4deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes cc-hand {
  0% { transform: translateX(0) rotate(20deg); }
  50% { transform: translateX(5px) rotate(10deg); }
  100% { transform: translateX(0) rotate(20deg); }
}
@keyframes cc-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes cc-glass {
  0% { box-shadow: 0 0 4px rgba(180,160,140,.2); }
  50% { box-shadow: 0 0 10px rgba(180,160,140,.4); }
  100% { box-shadow: 0 0 6px rgba(180,160,140,.25); }
}
@keyframes cc-cloud {
  0% { transform: translateX(-80px); }
  100% { transform: translateX(100vw); }
}

/* scene: boitelle-introduction */
.scn-boitelle-introduction {
  background:
    radial-gradient(ellipse at 50% 30%, #3d3328 0%, #1f1810 80%),
    linear-gradient(180deg, #4a3d30 0%, #2a1f14 100%);
}
.scn-boitelle-introduction .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-boitelle-introduction .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3d30 0%, #2a1f14 100%); opacity: 0.5;
}
.scn-boitelle-introduction .figure {
  position: absolute; bottom: 12%; left: 30%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #2a1f14 0%, #0a0704 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: bi-figure 6s ease-in-out infinite;
}
.scn-boitelle-introduction .shovel {
  position: absolute; bottom: 8%; left: 20%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(15deg);
  animation: bi-shovel 4s ease-in-out infinite;
}
.scn-boitelle-introduction .bucket {
  position: absolute; bottom: 16%; left: 50%; width: 24px; height: 24px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: bi-bucket 5s ease-in-out infinite alternate;
}
.scn-boitelle-introduction .shelf {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(180deg, #4a3d30 0%, #2a1f14 100%);
  border-radius: 2px;
  animation: bi-shelf 12s ease-in-out infinite alternate;
}
.scn-boitelle-introduction .dust {
  position: absolute; top: 20%; left: 0; right: 0; height: 60%;
  background: radial-gradient(ellipse at 50% 30%, rgba(100,80,60,0.2) 0%, transparent 70%);
  filter: blur(8px);
  animation: bi-dust 8s ease-in-out infinite alternate;
}
@keyframes bi-figure {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes bi-shovel {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-4px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes bi-bucket {
  0% { transform: scale(1) translateX(0); }
  50% { transform: scale(1.05) translateX(2px); }
  100% { transform: scale(0.95) translateX(-2px); }
}
@keyframes bi-shelf {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes bi-dust {
  0% { opacity: 0.2; transform: translateY(0); }
  50% { opacity: 0.5; transform: translateY(-5px); }
  100% { opacity: 0.3; transform: translateY(5px); }
}

.scn-chair-assault { background: linear-gradient(180deg, #1a1a1e 0%, #2a2222 40%, #1e1414 70%, #0a0808 100%), radial-gradient(ellipse at 50% 40%, #3a2222 0%, transparent 80%); }
.scn-chair-assault .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1e1c1c 0%, #14100e 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-chair-assault .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #0c0a08 0%, #1a1412 100%); box-shadow: inset 0 12px 30px rgba(0,0,0,.7); }
.scn-chair-assault .bed { position:absolute; bottom:25%; left:15%; width:55%; height:30%; background: linear-gradient(180deg, #3a2e2a 0%, #1e1816 100%); border-radius: 8px; box-shadow: inset 0 -8px 20px rgba(0,0,0,.5), 0 6px 12px rgba(0,0,0,.6); }
.scn-chair-assault .bed-curtain { position:absolute; bottom:25%; left:10%; width:65%; height:38%; background: linear-gradient(180deg, rgba(40,25,20,.6) 0%, rgba(20,12,10,.9) 100%); border-radius: 12px 12px 6px 6px; filter: blur(2px); animation: ca-curtain 7s ease-in-out infinite alternate; }
.scn-chair-assault .figure-assailant { position:absolute; bottom:20%; right:20%; width:34px; height:60px; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin: bottom center; animation: ca-assailant 0.9s cubic-bezier(.4,0,.2,1) infinite; }
.scn-chair-assault .chair-weapon { position:absolute; bottom:38%; right:26%; width:36px; height:44px; background: linear-gradient(135deg, #2a1e14 0%, #120e0a 100%); border-radius: 4px 12px 4px 8px; transform: rotate(-40deg); box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: ca-chair 0.9s cubic-bezier(.4,0,.2,1) infinite; }
.scn-chair-assault .shadow-splash { position:absolute; bottom:18%; right:15%; width:80px; height:40px; background: radial-gradient(ellipse, rgba(10,4,4,.8) 0%, transparent 80%); filter: blur(6px); animation: ca-shadow 0.9s ease-in-out infinite alternate; }
@keyframes ca-curtain { 0% { opacity:.7; transform: translateY(0) } 50% { opacity:.9; transform: translateY(-4px) } 100% { opacity:.6; transform: translateY(0) } }
@keyframes ca-assailant { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-6px) rotate(4deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-4px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ca-chair { 0% { transform: rotate(-40deg) translateY(0) } 25% { transform: rotate(-30deg) translateY(-4px) } 50% { transform: rotate(-40deg) translateY(0) } 75% { transform: rotate(-48deg) translateY(-2px) } 100% { transform: rotate(-40deg) translateY(0) } }
@keyframes ca-shadow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.4; transform: scale(.95) } }

.scn-dinner-conversation { background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 30%, #4a3828 60%, #2a1e12 100%), radial-gradient(ellipse at 50% 30%, #4a3a28 0%, #1a120a 80%); }
.scn-dinner-conversation .wall-panel { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #3a2e1e 0%, #2a1e12 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; box-shadow: inset 0 8px 30px rgba(0,0,0,.5); }
.scn-dinner-conversation .table-round { position:absolute; bottom:22%; left:50%; width:55%; height:20%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #4a3822 0%, #2a1e0e 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 -4px 20px rgba(0,0,0,.4); }
.scn-dinner-conversation .candle-glow { position:absolute; bottom:40%; left:50%; width:8px; height:20px; transform: translateX(-50%); background: radial-gradient(circle at 50% 0%, #ffd080 0%, #d09040 40%, transparent 80%); border-radius: 40%; box-shadow: 0 0 30px 8px rgba(255,180,60,.5), 0 0 60px 20px rgba(255,160,40,.2); animation: dc-candle 4s ease-in-out infinite alternate; }
.scn-dinner-conversation .figure-left { position:absolute; bottom:15%; left:22%; width:28px; height:52px; background: linear-gradient(180deg, #1a1410 0%, #0c0a06 100%); border-radius: 50% 40% 40% 40% / 50% 40% 35% 35%; transform: rotate(8deg); transform-origin: bottom center; animation: dc-figure-l 6s ease-in-out infinite; }
.scn-dinner-conversation .figure-right { position:absolute; bottom:12%; right:20%; width:30px; height:54px; background: linear-gradient(180deg, #1a1612 0%, #0e0a06 100%); border-radius: 40% 50% 40% 40% / 40% 50% 35% 35%; transform: rotate(-6deg); transform-origin: bottom center; animation: dc-figure-r 7s ease-in-out infinite; }
.scn-dinner-conversation .wine-glass { position:absolute; bottom:34%; left:38%; width:6px; height:14px; background: radial-gradient(ellipse at 50% 30%, #c06040 0%, #702820 70%); border-radius: 0 0 4px 4px; box-shadow: 0 0 6px 2px rgba(180,80,50,.3); animation: dc-glass 8s ease-in-out infinite; }
.scn-dinner-conversation .drape { position:absolute; top:0; right:0; width:25%; height:70%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%); border-radius: 0 0 0 40%; box-shadow: inset -8px 0 20px rgba(0,0,0,.5); animation: dc-drape 12s ease-in-out infinite alternate; }
@keyframes dc-candle { 0% { opacity:.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.05) } 100% { opacity:.8; transform: translateX(-50%) scale(.95) } }
@keyframes dc-figure-l { 0% { transform: rotate(8deg) translateY(0) } 30% { transform: rotate(12deg) translateY(-2px) } 60% { transform: rotate(6deg) translateY(0) } 100% { transform: rotate(8deg) translateY(-1px) } }
@keyframes dc-figure-r { 0% { transform: rotate(-6deg) translateY(0) } 40% { transform: rotate(-10deg) translateY(-2px) } 80% { transform: rotate(-4deg) translateY(0) } 100% { transform: rotate(-6deg) translateY(-1px) } }
@keyframes dc-glass { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes dc-drape { 0% { transform: scaleX(1); opacity:.8 } 50% { transform: scaleX(1.05); opacity:.9 } 100% { transform: scaleX(1); opacity:.75 } }

.scn-melancholia-walk { background: linear-gradient(180deg, #5a5a5e 0%, #4a4a4e 30%, #3a3a3e 60%, #2a2a2e 100%), radial-gradient(ellipse at 50% 0%, #6a6a6e 0%, #3a3a3e 80%); }
.scn-melancholia-walk .sky-overcast { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6e6e72 0%, #4e4e52 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.2); animation: mw-sky 15s ease-in-out infinite alternate; }
.scn-melancholia-walk .building-row { position:absolute; bottom:40%; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 60%, #1a1a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.3), 0 -4px 12px rgba(0,0,0,.4); }
.scn-melancholia-walk .lamp-post { position:absolute; bottom:30%; left:20%; width:4px; height:40px; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 2px; }
.scn-melancholia-walk .lamp-glow { position:absolute; bottom:38%; left:20%; width:12px; height:12px; transform: translateX(-4px); background: radial-gradient(circle, #d0d0b0 0%, #908060 40%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 12px rgba(160,140,100,.4), 0 0 80px 30px rgba(140,120,80,.15); animation: mw-lamp 6s ease-in-out infinite alternate; }
.scn-melancholia-walk .puddles { position:absolute; bottom:20%; left:5%; right:5%; height:8%; background: linear-gradient(180deg, rgba(80,80,90,.3) 0%, rgba(60,60,70,.5) 100%); border-radius: 40% 60% 50% 50% / 20% 30% 30% 20%; filter: blur(3px); animation: mw-puddle 10s ease-in-out infinite alternate; }
.scn-melancholia-walk .figure-walker { position:absolute; bottom:22%; left:30%; width:20px; height:44px; background: linear-gradient(180deg, #1a1a1e 0%, #0c0c0e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin: bottom center; animation: mw-walk 3s ease-in-out infinite; }
.scn-melancholia-walk .mist { position:absolute; bottom:15%; left:0; right:0; height:45%; background: linear-gradient(0deg, rgba(100,100,110,.2) 0%, transparent 100%); filter: blur(10px); animation: mw-mist 20s ease-in-out infinite alternate; }
@keyframes mw-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes mw-lamp { 0% { opacity:.6; box-shadow: 0 0 30px 8px rgba(160,140,100,.3), 0 0 60px 20px rgba(140,120,80,.1) } 50% { opacity:.9; box-shadow: 0 0 50px 16px rgba(180,160,120,.5), 0 0 100px 40px rgba(160,140,100,.2) } 100% { opacity:.7; box-shadow: 0 0 35px 10px rgba(160,140,100,.35), 0 0 70px 25px rgba(140,120,80,.12) } }
@keyframes mw-puddle { 0% { opacity:.3; transform: scaleY(1) } 50% { opacity:.5; transform: scaleY(1.1) } 100% { opacity:.2; transform: scaleY(.9) } }
@keyframes mw-walk { 0% { transform: translateX(-8px) translateY(0) rotate(-2deg) } 25% { transform: translateX(-2px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(4px) translateY(0) rotate(-1deg) } 75% { transform: translateX(10px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0deg) } }
@keyframes mw-mist { 0% { opacity:.4; transform: translateX(-10px) } 50% { opacity:.6; transform: translateX(0) } 100% { opacity:.3; transform: translateX(10px) } }

.scn-folies-bergere { background: linear-gradient(180deg, #1a1418 0%, #2a1e22 30%, #3a2828 60%, #1a1012 100%), radial-gradient(ellipse at 50% 20%, #4a3430 0%, #1a0e10 90%); }
.scn-folies-bergere .stage-arch { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%); border-radius: 40% 40% 20% 20% / 30% 30% 10% 10%; box-shadow: inset 0 20px 60px rgba(0,0,0,.5); }
.scn-folies-bergere .balcony-rail { position:absolute; bottom:40%; left:5%; right:5%; height:4%; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-folies-bergere .gaslight-band { position:absolute; top:8%; left:20%; right:20%; height:6%; background: radial-gradient(ellipse at 30% 50%, #d0b080 0%, transparent 50%), radial-gradient(ellipse at 70% 50%, #d0b080 0%, transparent 50%); opacity:.15; filter: blur(8px); animation: fb-gaslight 8s ease-in-out infinite alternate; }
.scn-folies-bergere .figure-spectator-a { position:absolute; bottom:25%; left:18%; width:22px; height:48px; background: linear-gradient(180deg, #1a1414 0%, #0c0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform: rotate(-4deg); animation: fb-fig-a 12s ease-in-out infinite; }
.scn-folies-bergere .figure-spectator-b { position:absolute; bottom:22%; left:42%; width:24px; height:50px; background: linear-gradient(180deg, #1e1618 0%, #0e0a0c 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform: rotate(2deg); animation: fb-fig-b 14s ease-in-out infinite; }
.scn-folies-bergere .figure-spectator-c { position:absolute; bottom:24%; right:22%; width:20px; height:46px; background: linear-gradient(180deg, #161212 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform: rotate(-1deg); animation: fb-fig-c 10s ease-in-out infinite; }
.scn-folies-bergere .glow-haze { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(180,140,100,.08) 0%, transparent 70%); mix-blend-mode: screen; pointer-events: none; animation: fb-haze 6s ease-in-out infinite alternate; }
@keyframes fb-gaslight { 0% { opacity:.1 } 50% { opacity:.2 } 100% { opacity:.12 } }
@keyframes fb-fig-a { 0% { transform: rotate(-4deg) translateY(0) } 30% { transform: rotate(-2deg) translateY(-3px) } 60% { transform: rotate(-6deg) translateY(0) } 100% { transform: rotate(-4deg) translateY(-2px) } }
@keyframes fb-fig-b { 0% { transform: rotate(2deg) translateY(0) } 40% { transform: rotate(4deg) translateY(-2px) } 70% { transform: rotate(0deg) translateY(0) } 100% { transform: rotate(2deg) translateY(-1px) } }
@keyframes fb-fig-c { 0% { transform: rotate(-1deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-4px) } 75% { transform: rotate(1deg) translateY(0) } 100% { transform: rotate(-1deg) translateY(-2px) } }
@keyframes fb-haze { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.4 } }

.scn-priest-request {
  background: 
    linear-gradient(135deg, #1a1a2e 0%, #2a1e2e 40%, #1e1e2e 80%),
    radial-gradient(ellipse at 30% 70%, #2a2a3e 0%, transparent 70%);
}
.scn-priest-request .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 50%, #0e0e1a 100%); }
.scn-priest-request .door   { position:absolute; left:10%; bottom:10%; width:20%; height:70%; background:linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4% 0 0 4%; box-shadow:inset -4px 0 8px rgba(0,0,0,.6); animation: pr-sway 12s ease-in-out infinite; }
.scn-priest-request .priest { position:absolute; left:15%; bottom:15%; width:10%; height:50%; background:linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow:inset 0 0 6px #0a0a0f; animation: pr-enter 8s ease-in-out infinite alternate; }
.scn-priest-request .mother { position:absolute; right:20%; bottom:20%; width:12%; height:40%; background:linear-gradient(180deg, #3e2e2e 0%, #2e1e1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:inset 0 0 6px #0a0a0f; animation: pr-sob 6s ease-in-out infinite; }
.scn-priest-request .candle { position:absolute; left:40%; bottom:30%; width:2%; height:6%; background:linear-gradient(180deg, #c08040 0%, #8a6020 100%); border-radius:40% 40% 20% 20%; box-shadow:0 0 16px 6px #c07030, 0 0 32px 12px rgba(192,112,48,.4); animation: pr-flicker 1.2s ease-in-out infinite alternate; }
.scn-priest-request .window { position:absolute; right:8%; top:15%; width:25%; height:30%; background:radial-gradient(ellipse at 50% 50%, #1a2a3e 0%, #0e1a2e 100%); border:2px solid #2a2a3e; border-radius:6% 6% 10% 10%; box-shadow:inset 0 0 12px #0e0e1a; }
.scn-priest-request .shadow { position:absolute; left:0; bottom:0; width:100%; height:40%; background:linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%); animation: pr-shadow 9s ease-in-out infinite; }
@keyframes pr-sway    { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pr-enter   { 0% { transform: translateX(-10%) scale(0.95); opacity:0.7; } 50% { transform: translateX(0) scale(1); opacity:1; } 100% { transform: translateX(-5%) scale(0.98); opacity:0.85; } }
@keyframes pr-sob     { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-2deg); } 70% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(1px) rotate(0deg); } }
@keyframes pr-flicker { 0% { box-shadow: 0 0 12px 4px #c07030, 0 0 24px 8px rgba(192,112,48,.3); opacity:0.8; } 50% { box-shadow: 0 0 24px 8px #c08040, 0 0 48px 16px rgba(192,128,64,.5); opacity:1; } 100% { box-shadow: 0 0 14px 5px #c07030, 0 0 28px 10px rgba(192,112,48,.35); opacity:0.85; } }
@keyframes pr-shadow  { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

.scn-doctor-forces-entry {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #0e0e1a 80%),
    radial-gradient(ellipse at 50% 80%, #2a1e2e 0%, transparent 70%);
}
.scn-doctor-forces-entry .room-bg { position:absolute; inset:0; background:linear-gradient(180deg, #0a0a14 0%, #14142a 100%); }
.scn-doctor-forces-entry .door-closed { position:absolute; left:5%; bottom:10%; width:18%; height:75%; background:linear-gradient(90deg, #2a1a0a 0%, #1a0e00 100%); border-radius:4% 0 0 4%; box-shadow:inset -6px 0 12px rgba(0,0,0,.8); animation: dfe-shake 0.3s ease-in-out infinite; }
.scn-doctor-forces-entry .doctor { position:absolute; left:12%; bottom:15%; width:12%; height:45%; background:linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow:inset 0 0 6px #0a0a0f; transform-origin:bottom; animation: dfe-pull 2s ease-in-out infinite alternate; }
.scn-doctor-forces-entry .woman-cling { position:absolute; right:15%; bottom:18%; width:10%; height:38%; background:linear-gradient(180deg, #3e2e2e 0%, #2e1e1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:inset 0 0 6px #0a0a0f; transform-origin:left bottom; animation: dfe-cling 2s ease-in-out infinite alternate; }
.scn-doctor-forces-entry .handle { position:absolute; left:19%; bottom:40%; width:2%; height:4%; background:#8a6020; border-radius:30%; box-shadow:0 0 6px #6a4a10; }
.scn-doctor-forces-entry .shadow-struggle { position:absolute; left:0; bottom:0; width:100%; height:60%; background:linear-gradient(0deg, rgba(0,0,0,.7) 0%, transparent 100%); animation: dfe-darken 4s ease-in-out infinite; }
@keyframes dfe-shake   { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-1px) rotate(-1deg); } 50% { transform: translateX(1px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dfe-pull    { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(2px) rotate(3deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg) scaleY(0.98); } }
@keyframes dfe-cling   { 0% { transform: translateX(0) rotate(0deg) scaleX(1); } 50% { transform: translateX(-3px) rotate(-5deg) scaleX(1.05); } 100% { transform: translateX(0) rotate(0deg) scaleX(0.95); } }
@keyframes dfe-darken  { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

.scn-dying-lad-plea {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 20% 30%, #2a2a3e 0%, transparent 70%);
}
.scn-dying-lad-plea .room-dark { position:absolute; inset:0; background:linear-gradient(0deg, #0a0a14 0%, #14142a 100%); }
.scn-dying-lad-plea .bed      { position:absolute; bottom:10%; left:10%; width:60%; height:25%; background:linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius:8% 8% 4% 4%; box-shadow:inset 0 4px 8px rgba(0,0,0,.6); animation: dlp-breathe 6s ease-in-out infinite; }
.scn-dying-lad-plea .dying-lad { position:absolute; bottom:14%; left:20%; width:12%; height:16%; background:linear-gradient(180deg, #3e2e2e 0%, #2e1e1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:inset 0 0 6px #0a0a0f; transform-origin:bottom center; animation: dlp-turn 8s ease-in-out infinite; }
.scn-dying-lad-plea .doctor-fig { position:absolute; left:5%; bottom:11%; width:10%; height:40%; background:linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow:inset 0 0 6px #0a0a0f; animation: dlp-approach 10s ease-in-out infinite alternate; }
.scn-dying-lad-plea .abbe-fig  { position:absolute; left:0%; bottom:10%; width:10%; height:42%; background:linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow:inset 0 0 6px #0a0a0f; animation: dlp-approach 10s ease-in-out infinite alternate; animation-delay:-5s; }
.scn-dying-lad-plea .doorway   { position:absolute; left:0; bottom:10%; width:8%; height:70%; background:linear-gradient(90deg, #1a0e00 0%, #2a1a0a 100%); border-radius:0 20% 20% 0; box-shadow:inset 4px 0 8px rgba(0,0,0,.6); }
@keyframes dlp-breathe  { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes dlp-turn     { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes dlp-approach { 0% { transform: translateX(-10%) scale(0.9); opacity:0.5; } 50% { transform: translateX(0) scale(1); opacity:1; } 100% { transform: translateX(-5%) scale(0.95); opacity:0.8; } }

.scn-dying-lad-speech {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a3e 0%, transparent 70%);
}
.scn-dying-lad-speech .room-dark     { position:absolute; inset:0; background:linear-gradient(0deg, #0a0a14 0%, #14142a 100%); }
.scn-dying-lad-speech .window-frame  { position:absolute; right:5%; top:10%; width:40%; height:60%; background:radial-gradient(ellipse at 50% 50%, #1a2a3e 0%, #0e1a2e 100%); border:3px solid #2a2a3e; border-radius:8% 8% 12% 12%; box-shadow:inset 0 0 16px #0e0e1a; animation: dls-window 8s ease-in-out infinite; }
.scn-dying-lad-speech .lad-profile   { position:absolute; right:15%; bottom:22%; width:8%; height:20%; background:linear-gradient(180deg, #3e2e2e 0%, #2e1e1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:inset 0 0 6px #0a0a0f; transform:rotate(-5deg); animation: dls-look 7s ease-in-out infinite; }
.scn-dying-lad-speech .balcony       { position:absolute; right:5%; bottom:15%; width:42%; height:5%; background:linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:4px 4px 0 0; box-shadow:0 -2px 4px rgba(0,0,0,.6); }
.scn-dying-lad-speech .curtain       { position:absolute; right:9%; top:12%; width:30%; height:55%; background:linear-gradient(135deg, #2e1e2e 0%, #1a0e1a 100%); border-radius:10% 10% 30% 0; filter:blur(1px); animation: dls-drape 12s ease-in-out infinite alternate; }
@keyframes dls-window { 0% { box-shadow: inset 0 0 12px #0e0e1a, 0 0 6px rgba(255,255,255,.1); } 50% { box-shadow: inset 0 0 24px #0e0e1a, 0 0 12px rgba(255,255,255,.2); } 100% { box-shadow: inset 0 0 12px #0e0e1a, 0 0 6px rgba(255,255,255,.1); } }
@keyframes dls-look   { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes dls-drape  { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(2px) scaleX(0.98); } 100% { transform: translateX(0) scaleX(1); } }

.scn-ring-treasured { background: linear-gradient(180deg, #1a1424 0%, #2a1e2e 40%, #0e0a12 100%), radial-gradient(ellipse at 30% 20%, #3a2a3e 0%, transparent 70%); }
.scn-ring-treasured .wall-back { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #2e1e2e 0%, #1a1220 100%); }
.scn-ring-treasured .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a141a 0%, #0e0a0e 100%); }
.scn-ring-treasured .window-glow { position:absolute; top:15%; right:15%; width:60px; height:80px; background: radial-gradient(circle, rgba(200,180,160,.6) 0%, rgba(200,180,160,.1) 70%); border-radius:4px; box-shadow: 0 0 40px 20px rgba(200,180,160,.3); animation: rt-glow 6s ease-in-out infinite alternate; }
.scn-ring-treasured .figure-silhouette { position:absolute; bottom:28%; left:25%; width:55px; height:90px; background: linear-gradient(180deg, #0a080e 0%, #16121c 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom center; animation: rt-figure 5s ease-in-out infinite; }
.scn-ring-treasured .hand-reaching { position:absolute; bottom:35%; left:38%; width:25px; height:40px; background: linear-gradient(180deg, #1a1220 0%, #0e0a12 100%); border-radius:40% 40% 35% 35% / 60% 60% 30% 30%; transform: rotate(-15deg); animation: rt-hand 4s ease-in-out infinite; }
.scn-ring-treasured .locket-object { position:absolute; bottom:38%; left:43%; width:12px; height:16px; background: radial-gradient(circle, #8a6a4a 0%, #4a3a2a 70%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(138,106,74,.5); animation: rt-locket 3s ease-in-out infinite alternate; }
.scn-ring-treasured .dust-mote { position:absolute; top:30%; left:50%; width:4px; height:4px; background:#b0a090; border-radius:50%; filter: blur(1px); animation: rt-dust 12s linear infinite; }
.scn-ring-treasured .curtain-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(90deg, #1e1a22 0%, #2a2230 50%, transparent 100%); }
.scn-ring-treasured .curtain-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(270deg, #1e1a22 0%, #2a2230 50%, transparent 100%); }
@keyframes rt-glow { 0%,100% { opacity:.5; transform: scale(1); } 50% { opacity:.8; transform: scale(1.05); } }
@keyframes rt-figure { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes rt-hand { 0%,100% { transform: rotate(-15deg) translate(0,0); } 50% { transform: rotate(-10deg) translate(4px,-2px); } }
@keyframes rt-locket { 0% { transform: scale(.9); opacity:.6; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:.8; } }
@keyframes rt-dust { 0% { opacity:0; transform: translate(0,0); } 20% { opacity:1; } 80% { opacity:1; } 100% { opacity:0; transform: translate(30px,-40px); } }

.scn-poet-arrival { background: linear-gradient(180deg, #8a9aaa 0%, #b0c0d0 30%, #6a7a8a 100%), radial-gradient(ellipse at 50% 0%, #c0d0e0 0%, transparent 60%); }
.scn-poet-arrival .sky-overcast { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #9aaabb 0%, #bcc8d4 50%, #8a9aaa 100%); animation: pa-sky 20s ease-in-out infinite alternate; }
.scn-poet-arrival .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%); animation: pa-sea 12s ease-in-out infinite; }
.scn-poet-arrival .ship-hull { position:absolute; bottom:38%; left:30%; width:120px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:0 0 40% 40% / 0 0 60% 60%; box-shadow:0 4px 12px rgba(0,0,0,.4); }
.scn-poet-arrival .sail-main { position:absolute; bottom:45%; left:33%; width:50px; height:80px; background: linear-gradient(135deg, #e8e0d0 0%, #c0b8a8 100%); clip-path: polygon(30% 0%, 100% 0%, 100% 100%, 0% 100%); animation: pa-sail 8s ease-in-out infinite alternate; }
.scn-poet-arrival .sail-jib { position:absolute; bottom:45%; left:26%; width:35px; height:60px; background: linear-gradient(135deg, #e0d8c8 0%, #b8b0a0 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 20% 100%); animation: pa-sail 8s ease-in-out infinite alternate-reverse; }
.scn-poet-arrival .figure-captain { position:absolute; bottom:35%; left:35%; width:16px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom; animation: pa-figure 4s ease-in-out infinite; }
.scn-poet-arrival .gull-1 { position:absolute; top:20%; left:20%; width:20px; height:10px; background: transparent; border-bottom: 2px solid #6a7a8a; border-radius:50%; filter: blur(.5px); box-shadow:0 0 0 0; animation: pa-gull 12s linear infinite; }
.scn-poet-arrival .gull-2 { position:absolute; top:15%; left:40%; width:18px; height:8px; background: transparent; border-bottom: 2px solid #5a6a7a; border-radius:50%; filter: blur(.5px); animation: pa-gull 15s linear infinite 3s; }
@keyframes pa-sky { 0%,100% { background-position:0% 0%; } 50% { background-position:10% 5%; } }
@keyframes pa-sea { 0% { transform: translateY(0); } 25% { transform: translateY(2px); } 50% { transform: translateY(-1px); } 75% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes pa-sail { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(.9) translateX(-3px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes pa-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes pa-gull { 0% { transform: translateX(0) translateY(0); opacity:1; } 50% { transform: translateX(30px) translateY(-15px); opacity:.8; } 100% { transform: translateX(60px) translateY(0); opacity:0; } }

.scn-strange-rumors { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #0e0e1a 100%), radial-gradient(ellipse at 60% 50%, #3a3a4e 0%, transparent 60%); }
.scn-strange-rumors .wall-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e2e 0%, #12121e 100%); }
.scn-strange-rumors .table-rough { position:absolute; bottom:20%; left:30%; width:120px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,.5); animation: sr-table 7s ease-in-out infinite; }
.scn-strange-rumors .figure-hunched { position:absolute; bottom:28%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 100%); border-radius:40% 40% 35% 35% / 50% 50% 40% 40%; transform-origin: bottom; animation: sr-figure 3s ease-in-out infinite; }
.scn-strange-rumors .steam-pot { position:absolute; bottom:40%; left:42%; width:24px; height:28px; background: radial-gradient(circle at 50% 60%, #4a3a2a 0%, #1a120a 70%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow:0 0 12px 4px rgba(0,0,0,.6); }
.scn-strange-rumors .window-barred { position:absolute; top:10%; left:60%; width:50px; height:70px; background: radial-gradient(circle, rgba(150,140,130,.3) 0%, transparent 70%); border:2px solid #2a2a3e; border-radius:4px; }
.scn-strange-rumors .light-slice { position:absolute; top:12%; left:62%; width:15px; height:40px; background: linear-gradient(180deg, rgba(180,160,140,.2) 0%, rgba(180,160,140,.05) 100%); transform: rotate(-15deg); animation: sr-light 4s ease-in-out infinite alternate; }
.scn-strange-rumors .shadow-creep { position:absolute; top:60%; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); animation: sr-shadow 6s ease-in-out infinite; }
@keyframes sr-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes sr-figure { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sr-light { 0% { opacity:.3; transform: rotate(-15deg) scale(1); } 50% { opacity:.6; transform: rotate(-10deg) scale(1.2); } 100% { opacity:.2; transform: rotate(-20deg) scale(.8); } }
@keyframes sr-shadow { 0%,100% { opacity:.5; } 50% { opacity:.8; } }

.scn-meeting-swinburne { background: linear-gradient(180deg, #f0e8d0 0%, #e0d8c0 30%, #c8b898 100%), radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%); }
.scn-meeting-swinburne .wall-warm { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #e8dcc0 0%, #d8ccb0 100%); }
.scn-meeting-swinburne .window-sun { position:absolute; top:10%; left:20%; width:80px; height:100px; background: radial-gradient(circle, rgba(255,240,200,.6) 0%, rgba(255,240,200,.1) 70%); border-radius:8px; box-shadow:0 0 60px 30px rgba(255,240,200,.4); animation: ms-sun 7s ease-in-out infinite alternate; }
.scn-meeting-swinburne .bookshelf { position:absolute; top:25%; right:10%; width:40px; height:120px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4px; box-shadow:3px 3px 8px rgba(0,0,0,.3); }
.scn-meeting-swinburne .table-round { position:absolute; bottom:30%; left:40%; width:100px; height:30px; background: linear-gradient(180deg, #b8a88a 0%, #9a8a6a 100%); border-radius:50%; box-shadow:0 4px 12px rgba(0,0,0,.2); }
.scn-meeting-swinburne .figure-guest { position:absolute; bottom:36%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom; animation: ms-guest 5s ease-in-out infinite; }
.scn-meeting-swinburne .figure-host { position:absolute; bottom:36%; left:55%; width:22px; height:42px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:45% 45% 35% 35% / 55% 55% 40% 40%; transform-origin: bottom; animation: ms-host 6s ease-in-out infinite; }
.scn-meeting-swinburne .candle-glow { position:absolute; bottom:45%; left:50%; width:10px; height:15px; background: radial-gradient(circle, #ffd080 0%, #e0a050 60%); border-radius:50%; box-shadow:0 0 30px 10px rgba(255,208,128,.6); animation: ms-candle 3s ease-in-out infinite alternate; }
@keyframes ms-sun { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.9; transform: scale(1.05); } 100% { opacity:.7; transform: scale(1); } }
@keyframes ms-guest { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes ms-host { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes ms-candle { 0% { transform: scaleY(.9); opacity:.7; } 50% { transform: scaleY(1.1); opacity:1; } 100% { transform: scaleY(.95); opacity:.8; } }

.scn-chef-advantage {
  background: linear-gradient(180deg, #1a1410 0%, #2c2218 40%, #1e1612 100%),
              radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-chef-advantage .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1e18 0%, #1a100c 100%);
  animation: ca-wall 20s ease-in-out infinite alternate;
}
.scn-chef-advantage .window-frame {
  position: absolute; top: 15%; left: 60%; width: 30%; height: 40%;
  background: #1a1410; border: 3px solid #4a3020; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-chef-advantage .river-glow {
  position: absolute; top: 20%; left: 62%; width: 26%; height: 32%;
  background: radial-gradient(ellipse at 50% 60%, #2a4a3a 0%, #0a1a12 70%, transparent 100%);
  animation: ca-river 5s ease-in-out infinite alternate;
}
.scn-chef-advantage .figure-woman {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-woman 4s ease-in-out infinite;
}
.scn-chef-advantage .shadow-man {
  position: absolute; bottom: 25%; left: 55%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #0a0806 0%, #000 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ca-shadow 3s ease-in-out infinite alternate;
  filter: blur(2px);
}
.scn-chef-advantage .lamp-light {
  position: absolute; top: 10%; left: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d4a050 0%, #703820 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(180,100,40,0.5), 0 0 80px 40px rgba(180,100,40,0.2);
  animation: ca-lamp 2s ease-in-out infinite alternate;
}
@keyframes ca-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ca-river { 0% { opacity: 0.4; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.02) } 100% { opacity: 0.5; transform: scale(0.98) } }
@keyframes ca-woman { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ca-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(5px) scaleX(1.1) } 100% { transform: translateX(-2px) scaleX(0.9) } }
@keyframes ca-lamp { 0% { box-shadow: 0 0 30px 10px rgba(180,100,40,0.4) } 50% { box-shadow: 0 0 60px 30px rgba(220,160,80,0.7) } 100% { box-shadow: 0 0 40px 15px rgba(180,100,40,0.5) } }

.scn-chef-departs {
  background: linear-gradient(180deg, #1a1c22 0%, #2a2e38 40%, #14161a 100%),
              radial-gradient(ellipse at 30% 70%, #2c3440 0%, transparent 60%);
}
.scn-chef-departs .bg-station {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c1e26 0%, #0e1014 100%);
  animation: cd-bg 30s ease-in-out infinite alternate;
}
.scn-chef-departs .train-window {
  position: absolute; top: 20%; left: 10%; width: 40%; height: 35%;
  background: #0a0c10; border: 4px solid #4a4e5a; border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: cd-train 6s ease-in-out infinite;
}
.scn-chef-departs .figure-woman {
  position: absolute; bottom: 25%; left: 45%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2c2e3a 0%, #1a1c26 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-woman 4s ease-in-out infinite alternate;
}
.scn-chef-departs .child-florentin {
  position: absolute; bottom: 25%; left: 55%; width: 16px; height: 35px;
  background: linear-gradient(180deg, #1c1e2a 0%, #0e1018 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: cd-child 5s ease-in-out infinite;
}
.scn-chef-departs .station-bench {
  position: absolute; bottom: 18%; left: 30%; width: 30%; height: 10px;
  background: linear-gradient(180deg, #3a3e4a 0%, #2a2e38 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: cd-bench 10s ease-in-out infinite alternate;
}
.scn-chef-departs .clock-hands {
  position: absolute; top: 15%; right: 15%; width: 12px; height: 20px;
  background: #7090a8; border-radius: 2px;
  transform-origin: top center;
  animation: cd-clock 60s linear infinite;
}
@keyframes cd-bg { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes cd-train { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes cd-woman { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cd-child { 0% { transform: translateX(0) scale(1) } 33% { transform: translateX(-5px) scale(0.9) } 66% { transform: translateX(3px) scale(1.1) } 100% { transform: translateX(0) scale(1) } }
@keyframes cd-bench { 0% { opacity: 0.5; transform: scaleY(1) } 50% { opacity: 0.8; transform: scaleY(1.05) } 100% { opacity: 0.6; transform: scaleY(0.95) } }
@keyframes cd-clock { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }

.scn-child-florentin {
  background: linear-gradient(180deg, #1a1420 0%, #2c2038 40%, #1a1420 100%),
              radial-gradient(ellipse at 50% 20%, #3a2850 0%, transparent 70%);
}
.scn-child-florentin .bg-church {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c1628 0%, #0e0a18 100%);
  animation: cf-bg 15s ease-in-out infinite alternate;
}
.scn-child-florentin .altar {
  position: absolute; bottom: 15%; left: 50%; width: 60%; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  animation: cf-altar 8s ease-in-out infinite alternate;
}
.scn-child-florentin .candle-glow {
  position: absolute; bottom: 30%; left: 40%; width: 10px; height: 10px;
  background: radial-gradient(circle, #e8c060 0%, #a07020 60%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(200,160,60,0.6), 0 0 100px 40px rgba(200,160,60,0.3);
  animation: cf-candle 3s ease-in-out infinite alternate;
}
.scn-child-florentin .child-in-white {
  position: absolute; bottom: 22%; left: 42%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #e0e0e8 0%, #b0b0c0 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cf-child 4s ease-in-out infinite;
}
.scn-child-florentin .pew-row {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 8px;
  background: linear-gradient(180deg, #3a3048 0%, #2a2038 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cf-pew 12s ease-in-out infinite alternate;
}
.scn-child-florentin .stained-glass {
  position: absolute; top: 15%; left: 30%; width: 30%; height: 35%;
  background: linear-gradient(135deg, #2a3a6a 0%, #4a2a5a 50%, #6a3a3a 100%);
  border-radius: 10% 10% 6% 6%;
  opacity: 0.5;
  animation: cf-glass 7s ease-in-out infinite alternate;
}
@keyframes cf-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cf-altar { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes cf-candle { 0% { box-shadow: 0 0 40px 15px rgba(200,160,60,0.5) } 50% { box-shadow: 0 0 80px 30px rgba(255,200,100,0.8) } 100% { box-shadow: 0 0 50px 20px rgba(200,160,60,0.6) } }
@keyframes cf-child { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cf-pew { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(0.97) } }
@keyframes cf-glass { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }

.scn-child-noise {
  background: linear-gradient(180deg, #1a1412 0%, #2a1e1a 40%, #14100e 100%),
              radial-gradient(ellipse at 40% 50%, #3a2820 0%, transparent 60%);
}
.scn-child-noise .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1c1614 0%, #0e0a08 100%);
  animation: cn-bg 25s ease-in-out infinite alternate;
}
.scn-child-noise .wall-shadow {
  position: absolute; top: 0; left: 50%; width: 50%; height: 100%;
  background: linear-gradient(180deg, #14100e 0%, #080604 100%);
  opacity: 0.6;
  animation: cn-shadow 5s ease-in-out infinite alternate;
}
.scn-child-noise .candle-flame {
  position: absolute; top: 30%; left: 45%; width: 8px; height: 12px;
  background: radial-gradient(ellipse at 50% 30%, #e8a040 0%, #803010 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,100,40,0.6), 0 0 60px 30px rgba(200,100,40,0.3);
  animation: cn-flame 1.5s ease-in-out infinite alternate;
}
.scn-child-noise .figure-startled {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a100c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cn-startle 3s ease-in-out infinite;
}
.scn-child-noise .fallen-table {
  position: absolute; bottom: 15%; left: 50%; width: 40%; height: 6px;
  transform: translateX(-50%) rotate(-15deg);
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: cn-table 4s ease-in-out infinite alternate;
}
.scn-child-noise .door-ajar {
  position: absolute; top: 10%; left: 10%; width: 20%; height: 60%;
  background: #2a1e18; border: 2px solid #1a100c;
  border-radius: 4px;
  transform-origin: left center;
  animation: cn-door 6s ease-in-out infinite alternate;
}
@keyframes cn-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes cn-shadow { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) } 100% { transform: translateX(4px) } }
@keyframes cn-flame { 0% { box-shadow: 0 0 20px 8px rgba(200,100,40,0.5); transform: scale(0.95) } 50% { box-shadow: 0 0 40px 20px rgba(255,160,80,0.8); transform: scale(1.1) } 100% { box-shadow: 0 0 25px 12px rgba(200,100,40,0.6); transform: scale(1) } }
@keyframes cn-startle { 0% { transform: translateY(0) rotate(0) scale(1) } 25% { transform: translateY(-4px) rotate(-5deg) scale(1.05) } 50% { transform: translateY(0) rotate(0) scale(1) } 75% { transform: translateY(2px) rotate(3deg) scale(0.95) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes cn-table { 0% { transform: translateX(-50%) rotate(-15deg) } 50% { transform: translateX(-50%) rotate(-10deg) } 100% { transform: translateX(-50%) rotate(-20deg) } }
@keyframes cn-door { 0% { transform: rotate(0) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-2deg) } }

/* ——— hunting-season-picardy ——— */
.scn-hunting-season-picardy {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e04 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-hunting-season-picardy .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-bottom: 4px solid #2a1a0a;
}
.scn-hunting-season-picardy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #251a10 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-hunting-season-picardy .chandelier {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 16px;
  background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 50%, #8a7a6a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-hunting-season-picardy .candle-1,
.scn-hunting-season-picardy .candle-2 {
  position: absolute; top: 12%;
  width: 10px; height: 30px;
  background: linear-gradient(180deg, #f0d8a8 0%, #c8a868 100%);
  border-radius: 3px 3px 0 0;
  animation: hs1-flame 2s ease-in-out infinite alternate;
}
.scn-hunting-season-picardy .candle-1 { left: 42%; }
.scn-hunting-season-picardy .candle-2 { left: 54%; animation-delay: 0.3s; }
@keyframes hs1-flame {
  0% { transform: scaleY(1) translateY(0); opacity: .85; }
  50% { transform: scaleY(1.15) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(1px); opacity: .9; }
}
.scn-hunting-season-picardy .hunter {
  position: absolute; bottom: 30%; right: 18%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs1-walk 4s ease-in-out infinite;
}
@keyframes hs1-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(10px) rotate(1deg); }
  50% { transform: translateX(20px) rotate(-1deg); }
  75% { transform: translateX(30px) rotate(2deg); }
  100% { transform: translateX(40px) rotate(0deg); }
}
.scn-hunting-season-picardy .dog {
  position: absolute; bottom: 30%; left: 20%;
  width: 28px; height: 34px;
  background: radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hs1-dog 3s ease-in-out infinite alternate;
}
@keyframes hs1-dog {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
.scn-hunting-season-picardy .curtain-l,
.scn-hunting-season-picardy .curtain-r {
  position: absolute; top: 0; bottom: 30%; width: 24%;
  background: linear-gradient(180deg, #7a4a3a 0%, #4a2010 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: inset -8px 0 12px rgba(0,0,0,.4);
  animation: hs1-curtain 8s ease-in-out infinite alternate;
}
.scn-hunting-season-picardy .curtain-l { left: 0; }
.scn-hunting-season-picardy .curtain-r { right: 0; animation-delay: 2s; }
@keyframes hs1-curtain {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.97); }
}

/* ——— suspicious-preparations ——— */
.scn-suspicious-preparations {
  background: linear-gradient(135deg, #1a1a2a 0%, #0e0e1a 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 70% 20%, #3a3a5a 0%, transparent 60%);
}
.scn-suspicious-preparations .bg-dark {
  position: absolute; inset: 0;
  background: rgba(0,0,0,0.4);
}
.scn-suspicious-preparations .chair {
  position: absolute; bottom: 20%; left: 25%;
  width: 50px; height: 70px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0604 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 0 20px rgba(0,0,0,.8);
  transform: rotate(-5deg);
  animation: sp2-creak 5s ease-in-out infinite alternate;
}
@keyframes sp2-creak {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-6deg) translateY(0); }
}
.scn-suspicious-preparations .clock {
  position: absolute; top: 18%; left: 60%;
  width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 40%, #4a3a2a 0%, #1a1008 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px #8a7a5a;
  animation: sp2-tick 2s step-end infinite;
}
@keyframes sp2-tick {
  0%, 100% { box-shadow: 0 0 8px #8a7a5a; }
  50% { box-shadow: 0 0 12px #c0a060; }
}
.scn-suspicious-preparations .figure {
  position: absolute; bottom: 18%; left: 36%;
  width: 32px; height: 60px;
  background: linear-gradient(180deg, #0e0a14 0%, #020004 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sp2-lurk 6s ease-in-out infinite;
}
@keyframes sp2-lurk {
  0% { transform: translateX(0) scale(1); }
  30% { transform: translateX(-6px) scale(1.05); }
  60% { transform: translateX(4px) scale(0.95); }
  100% { transform: translateX(0) scale(1); }
}
.scn-suspicious-preparations .eye {
  position: absolute; bottom: 50%; left: 38%;
  width: 6px; height: 4px;
  background: #aa6622;
  border-radius: 50%;
  box-shadow: 0 0 6px #c08040;
  animation: sp2-blink 3s step-end infinite;
}
@keyframes sp2-blink {
  0%, 95%, 100% { transform: scaleY(1); }
  97% { transform: scaleY(0.1); }
}
.scn-suspicious-preparations .door {
  position: absolute; right: 5%; top: 10%; bottom: 30%;
  width: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #140a04 100%);
  border-left: 2px solid #3a2a1a;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: sp2-door 10s ease-in-out infinite alternate;
}
@keyframes sp2-door {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.02); opacity: 0.8; }
  100% { transform: scaleX(0.98); opacity: 0.5; }
}
.scn-suspicious-preparations .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: sp2-shadow 4s ease-in-out infinite alternate;
}
@keyframes sp2-shadow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}

/* ——— candle-precaution ——— */
.scn-candle-precaution {
  background: linear-gradient(180deg, #1a1210 0%, #0e0806 50%, #2a1a12 100%),
              radial-gradient(ellipse at 50% 60%, #3a2518 0%, transparent 70%);
}
.scn-candle-precaution .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0806 100%);
  opacity: 0.5;
}
.scn-candle-precaution .mantel {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.6);
}
.scn-candle-precaution .candle-a,
.scn-candle-precaution .candle-b,
.scn-candle-precaution .candle-c {
  position: absolute; top: 58%;
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8a868 80%, #8a6030 100%);
  border-radius: 4px 4px 0 0;
  transform-origin: bottom center;
  box-shadow: 0 0 12px rgba(255,200,100,0.3);
}
.scn-candle-precaution .candle-a { left: 25%; }
.scn-candle-precaution .candle-b { left: 50%; }
.scn-candle-precaution .candle-c { left: 75%; }
.scn-candle-precaution .candle-a,
.scn-candle-precaution .candle-b,
.scn-candle-precaution .candle-c {
  animation: cp3-candle 3s ease-in-out infinite alternate;
}
@keyframes cp3-candle {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.05) translateY(-1px); }
  100% { transform: scaleX(0.95) translateY(1px); }
}
.scn-candle-precaution .hand {
  position: absolute; bottom: 40%; left: 35%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #8a6050 0%, #5a3828 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: cp3-hand 5s ease-in-out infinite alternate;
}
@keyframes cp3-hand {
  0% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(-4px); }
  100% { transform: rotate(25deg) translateX(4px); }
}
.scn-candle-precaution .light-halo {
  position: absolute; top: 40%; left: 35%; width: 100px; height: 100px;
  background: radial-gradient(circle at 50% 50%, rgba(255,200,100,0.2) 0%, transparent 70%);
  animation: cp3-halo 2s ease-in-out infinite alternate;
}
@keyframes cp3-halo {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 0.9; }
  100% { transform: scale(0.9); opacity: 0.5; }
}

/* ——— bed-rearrangement ——— */
.scn-bed-rearrangement {
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 40%, #2a1a12 100%),
              radial-gradient(ellipse at 50% 80%, #3a2518 0%, transparent 60%);
}
.scn-bed-rearrangement .wall-dark {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a10 0%, #14100a 100%);
}
.scn-bed-rearrangement .bed-frame {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 35%;
  background: linear-gradient(180deg, #5a4028 0%, #2a1a0a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
  animation: br4-frame 6s ease-in-out infinite alternate;
}
@keyframes br4-frame {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
.scn-bed-rearrangement .mattress {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 40%, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 8px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  animation: br4-mattress 4s ease-in-out infinite alternate;
}
@keyframes br4-mattress {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(1px) scale(0.98); }
}
.scn-bed-rearrangement .pillow {
  position: absolute; bottom: 32%; left: 22%;
  width: 50px; height: 20px;
  background: linear-gradient(180deg, #c0a878 0%, #8a6a4a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: br4-pillow 5s ease-in-out infinite alternate;
}
@keyframes br4-pillow {
  0% { transform: translate(0,0); }
  50% { transform: translate(2px,-2px); }
  100% { transform: translate(-2px,1px); }
}
.scn-bed-rearrangement .blanket {
  position: absolute; bottom: 20%; left: 18%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10px 10px 30% 30% / 20% 20% 40% 40%;
  animation: br4-blanket 7s ease-in-out infinite alternate;
}
@keyframes br4-blanket {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(-1deg) translateX(-2px); }
}
.scn-bed-rearrangement .figure {
  position: absolute; bottom: 30%; left: 45%;
  width: 28px; height: 40px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br4-figure 3s ease-in-out infinite alternate;
}
@keyframes br4-figure {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(4px); }
  100% { transform: rotate(-5deg) translateX(-4px); }
}
.scn-bed-rearrangement .nightstand {
  position: absolute; bottom: 30%; right: 12%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #20140a 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(0,0,0,.4);
}
.scn-bed-rearrangement .lamp-glow {
  position: absolute; bottom: 58%; right: 15%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #d0a060 0%, #8a6030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px #c08040;
  animation: br4-lamp 2s ease-in-out infinite alternate;
}
@keyframes br4-lamp {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.9; }
}

.scn-child-revealed { background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 40%, #16162a 100%), radial-gradient(ellipse at 50% 100%, #2a2a40 0%, transparent 70%); }
.scn-child-revealed .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1f1f33 0%, #12121e 100%); animation: cr-wall 20s ease-in-out infinite alternate; }
.scn-child-revealed .door-frame { position:absolute; left:20%; right:40%; top:10%; bottom:5%; border:4px solid #3a2a1a; border-radius:2px 2px 0 0; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-child-revealed .door-open { position:absolute; left:18%; top:10%; width:25%; height:85%; background: linear-gradient(90deg, #2e2e42 0%, #1e1e2e 100%); transform-origin: left center; transform: rotateY(-25deg); border-radius:0 4px 4px 0; box-shadow: 4px 0 12px rgba(0,0,0,0.6); animation: cr-door 6s ease-in-out infinite; }
.scn-child-revealed .child-silhouette { position:absolute; left:45%; bottom:10%; width:40px; height:60px; background: linear-gradient(180deg, #0f0f1a 0%, #08080f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-child 4s ease-in-out infinite; }
.scn-child-revealed .child-eyes { position:absolute; left:47%; bottom:40%; width:8px; height:6px; background: radial-gradient(circle, #c8e0ff 0%, #4a6a9a 100%); border-radius:50%; box-shadow: 0 0 12px 4px #6a8aba, 0 0 24px 8px rgba(106,138,186,0.4); animation: cr-eyes 3s ease-in-out infinite alternate; }
.scn-child-revealed .floor-shadow { position:absolute; bottom:0; left:30%; right:10%; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 80%); }
.scn-child-revealed .dust-mote { position:absolute; width:4px; height:4px; background: rgba(200,210,240,0.3); border-radius:50%; filter: blur(1px); }
.scn-child-revealed .dust-1 { top:25%; left:55%; animation: cr-dust1 12s linear infinite; }
.scn-child-revealed .dust-2 { top:60%; left:35%; animation: cr-dust2 18s linear infinite reverse; }
@keyframes cr-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cr-door { 0% { transform: rotateY(-25deg) } 50% { transform: rotateY(-20deg) } 100% { transform: rotateY(-30deg) } }
@keyframes cr-child { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0.5px) rotate(0deg) } 75% { transform: translateY(-0.5px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cr-eyes { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }
@keyframes cr-dust1 { 0% { transform: translate(0,0) scale(1); opacity:0 } 20% { opacity:0.6 } 80% { opacity:0.4 } 100% { transform: translate(80px,-40px) scale(0.5); opacity:0 } }
@keyframes cr-dust2 { 0% { transform: translate(0,0) scale(1); opacity:0 } 30% { opacity:0.5 } 70% { opacity:0.3 } 100% { transform: translate(-60px,-30px) scale(0.7); opacity:0 } }

.scn-mother-explanation { background: linear-gradient(180deg, #2c2c3e 0%, #1a1a2a 40%, #0e0e1a 100%), radial-gradient(ellipse at 30% 70%, #3a3a4e 0%, transparent 60%); }
.scn-mother-explanation .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a3a 0%, #1e1e2e 100%); }
.scn-mother-explanation .window-glow { position:absolute; right:8%; top:15%; width:25%; height:30%; background: radial-gradient(ellipse at center, #7a6a4a 0%, #3a2a1a 80%); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 30px 8px rgba(122,106,74,0.3); animation: me-glow 8s ease-in-out infinite alternate; }
.scn-mother-explanation .mother-figure { position:absolute; left:10%; bottom:20%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: me-figure 6s ease-in-out infinite; }
.scn-mother-explanation .child-figure { position:absolute; left:35%; bottom:10%; width:30px; height:50px; background: linear-gradient(180deg, #12122a 0%, #060610 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: me-child 4s ease-in-out infinite; }
.scn-mother-explanation .table { position:absolute; left:20%; bottom:8%; width:40%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-mother-explanation .candle { position:absolute; left:28%; bottom:14%; width:6px; height:20px; background: linear-gradient(180deg, #e8d0a0 0%, #d0b080 100%); border-radius:2px 2px 0 0; box-shadow: 0 -4px 12px 2px #e8c060; animation: me-candle 5s ease-in-out infinite; }
.scn-mother-explanation .chair { position:absolute; left:5%; bottom:8%; width:30px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:4px; transform: rotate(5deg); }
@keyframes me-glow { 0% { opacity:0.5; box-shadow: 0 0 20px 4px rgba(122,106,74,0.2) } 50% { opacity:0.8; box-shadow: 0 0 40px 12px rgba(122,106,74,0.4) } 100% { opacity:0.6; box-shadow: 0 0 30px 6px rgba(122,106,74,0.3) } }
@keyframes me-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(-2px) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes me-child { 0% { transform: translateY(0) rotate(0deg) scale(1) } 25% { transform: translateY(-1px) rotate(2deg) scale(1.02) } 50% { transform: translateY(1px) rotate(-1deg) scale(0.98) } 75% { transform: translateY(-0.5px) rotate(0deg) scale(1.01) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes me-candle { 0% { transform: scaleY(1) rotate(-1deg) } 50% { transform: scaleY(1.05) rotate(1deg) } 100% { transform: scaleY(0.95) rotate(0deg) } }

.scn-child-of-wardrobe { background: linear-gradient(180deg, #0a0a14 0%, #12121e 40%, #080810 100%), radial-gradient(ellipse at 30% 50%, #1a1a2e 0%, transparent 60%); }
.scn-child-of-wardrobe .wardrobe-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0f0f1a 0%, #07070e 100%); }
.scn-child-of-wardrobe .wardrobe-frame { position:absolute; left:20%; right:40%; top:5%; bottom:5%; border:3px solid #2a1a0a; border-radius:2px 2px 0 0; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,0.9); }
.scn-child-of-wardrobe .huddled-child { position:absolute; left:30%; bottom:10%; width:35px; height:45px; background: linear-gradient(180deg, #0a0a1a 0%, #02020a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cw-huddle 5s ease-in-out infinite; }
.scn-child-of-wardrobe .child-shiver { position:absolute; left:32%; bottom:12%; width:20px; height:10px; background: radial-gradient(ellipse, rgba(200,200,220,0.1) 0%, transparent 70%); filter: blur(3px); animation: cw-shiver 1s ease-in-out infinite; }
.scn-child-of-wardrobe .crack-light { position:absolute; left:15%; top:20%; width:2px; height:40%; background: linear-gradient(180deg, rgba(180,160,120,0.4) 0%, transparent 100%); box-shadow: 0 0 10px 2px rgba(180,160,120,0.2); animation: cw-light 12s ease-in-out infinite alternate; }
.scn-child-of-wardrobe .floor-board { position:absolute; bottom:0; left:0; right:0; height:8%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-top:1px solid #2a2a3a; }
.scn-child-of-wardrobe .coat-hanging { position:absolute; left:20%; top:10%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:4px; transform: rotate(-5deg); animation: cw-coat 8s ease-in-out infinite; }
@keyframes cw-huddle { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(1px) rotate(2deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(0.5px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cw-shiver { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.3; transform: scale(0.9) } }
@keyframes cw-light { 0% { opacity:0.2; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.5) } 100% { opacity:0.3; transform: scaleX(0.8) } }
@keyframes cw-coat { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-6deg) translateY(0) } }

.scn-letter-to-friend { background: linear-gradient(180deg, #8aa8c0 0%, #d0c8a0 30%, #e8d8b0 60%, #f0e8c0 100%), radial-gradient(ellipse at 50% 0%, #f0e0b0 0%, transparent 80%); }
.scn-letter-to-friend .sky-dawn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a9ab0 0%, #c0b090 60%, #e0c8a0 100%); animation: lf-sky 20s ease-in-out infinite alternate; }
.scn-letter-to-friend .sun-horizon { position:absolute; left:50%; bottom:40%; width:60px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at center, #f0d080 0%, #e0b060 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px #e0b060, 0 0 120px 40px rgba(224,176,96,0.3); animation: lf-sun 10s ease-in-out infinite alternate; }
.scn-letter-to-friend .distant-hills { position:absolute; bottom:35%; left:0; right:0; height:10%; background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; filter: blur(2px); }
.scn-letter-to-friend .field-grass { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a9a6a 0%, #6a7a4a 100%); border-radius: 20% 30% 0 0 / 40% 60% 0 0; animation: lf-grass 15s ease-in-out infinite alternate; }
.scn-letter-to-friend .paper-sheet { position:absolute; left:30%; bottom:20%; width:30%; height:20%; background: linear-gradient(135deg, #f5f0e0 0%, #e8e0c8 100%); border-radius:2px; box-shadow: 2px 2px 8px rgba(0,0,0,0.2); transform: rotate(2deg); animation: lf-paper 6s ease-in-out infinite; }
.scn-letter-to-friend .ink-bottle { position:absolute; left:28%; bottom:18%; width:10px; height:16px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:2px 2px 4px 4px; transform: rotate(-5deg); }
.scn-letter-to-friend .quill { position:absolute; left:32%; bottom:20%; width:2px; height:30px; background: linear-gradient(180deg, #d0c8a0 0%, #a09870 100%); transform: rotate(-30deg); transform-origin: bottom center; border-radius:0 0 50% 50%; animation: lf-quill 4s ease-in-out infinite; }
.scn-letter-to-friend .shadow-tree { position:absolute; right:5%; bottom:0; width:80px; height:60%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; filter: blur(3px); animation: lf-tree 25s ease-in-out infinite alternate; }
@keyframes lf-sky { 0% { opacity:0.8; background-position: 0 0 } 50% { opacity:1; background-position: 0 -5px } 100% { opacity:0.9; background-position: 0 3px } }
@keyframes lf-sun { 0% { transform: translateX(-50%) scale(0.95); opacity:0.7 } 50% { transform: translateX(-50%) scale(1.05); opacity:1 } 100% { transform: translateX(-50%) scale(1); opacity:0.8 } }
@keyframes lf-grass { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes lf-paper { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(1deg) translateY(0) } }
@keyframes lf-quill { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-2px) } 100% { transform: rotate(-32deg) translateY(0) } }
@keyframes lf-tree { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.02) scaleY(0.98) } 100% { transform: scaleX(0.98) scaleY(1.01) } }

/* ---------- morning-commotion ---------- */
.scn-morning-commotion {
  background: linear-gradient(180deg, #1a2a4a 0%, #4a5a6a 30%, #c8945a 60%, #e8c878 100%),
              radial-gradient(ellipse at 70% 20%, #f0c060 0%, transparent 60%);
}
.scn-morning-commotion .dawn-sky {
  position: absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #2a3a5a 0%, #b08040 100%);
  animation: mc-sky 8s ease-in-out infinite alternate;
}
.scn-morning-commotion .cliff-left {
  position: absolute; bottom:35%; left:0; width:40%; height:60%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 0 40% 0 0 / 0 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
  transform: scaleX(0.95);
}
.scn-morning-commotion .cliff-right {
  position: absolute; bottom:30%; right:0; width:35%; height:70%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 40% 0 0 0 / 80% 0 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
  transform: scaleX(0.95);
}
.scn-morning-commotion .sea {
  position: absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #406a80 0%, #2a4a5a 100%);
  animation: mc-sea 12s ease-in-out infinite alternate;
}
.scn-morning-commotion .figures {
  position: absolute; bottom:30%; left:30%; width:20px; height:40px;
  background: #1a1a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 4px 0 2px rgba(0,0,0,.3), -4px -2px 10px rgba(200,150,80,.2);
  animation: mc-figures 3s ease-in-out infinite;
}
.scn-morning-commotion .fire-glow {
  position: absolute; bottom:30%; left:50%; width:60px; height:80px;
  background: radial-gradient(circle at 50% 60%, #f0a040 0%, #d07020 30%, transparent 60%);
  border-radius: 50%;
  filter: blur(8px);
  animation: mc-fire 4s ease-in-out infinite alternate;
}
.scn-morning-commotion .smoke {
  position: absolute; bottom:40%; left:48%; width:40px; height:60px;
  background: radial-gradient(circle at 50% 50%, rgba(180,140,100,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: mc-smoke 6s ease-in-out infinite alternate;
}
.scn-morning-commotion .house {
  position: absolute; bottom:28%; left:55%; width:60px; height:50px;
  background: linear-gradient(180deg, #8a6a4a, #5a3a2a);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.5);
}
.scn-morning-commotion .lamp {
  position: absolute; bottom:40%; left:58%; width:8px; height:12px;
  background: radial-gradient(circle, #f0c060 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px #f0c060, 0 0 40px 10px rgba(240,192,96,0.4);
  animation: mc-lamp 2s ease-in-out infinite alternate;
}
@keyframes mc-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes mc-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes mc-figures { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(10px) translateY(-2px) rotate(3deg); } }
@keyframes mc-fire { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.9); } }
@keyframes mc-smoke { 0% { transform: translate(0,0) scale(1); opacity:0.3; } 50% { transform: translate(-5px,-15px) scale(1.2); opacity:0.6; } 100% { transform: translate(2px,-20px) scale(0.8); opacity:0.2; } }
@keyframes mc-lamp { 0% { opacity:0.8; box-shadow: 0 0 15px 3px #f0c060; } 100% { opacity:1; box-shadow: 0 0 30px 8px #f0c060; } }

/* ---------- false-relics ---------- */
.scn-false-relics {
  background: linear-gradient(180deg, #2a2a3a 0%, #4a4a5a 40%, #6a6a7a 70%, #8a8a9a 100%),
              radial-gradient(ellipse at 50% 0%, #6a6a7a 0%, transparent 70%);
}
.scn-false-relics .overcast-sky {
  position: absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #5a5a6a 50%, transparent 100%);
  animation: fr-sky 15s ease-in-out infinite alternate;
}
.scn-false-relics .sea-dark {
  position: absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #2a3a4a, #1a2a3a);
  animation: fr-sea 20s ease-in-out infinite alternate;
}
.scn-false-relics .shore {
  position: absolute; bottom:40%; left:10%; right:10%; height:12%;
  background: linear-gradient(180deg, #5a5a4a, #3a3a2a);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0;
}
.scn-false-relics .bones {
  position: absolute; bottom:42%; left:35%; width:30px; height:20px;
  background: #8a8a7a;
  border-radius: 0 50% 50% 0 / 0 80% 80% 0;
  transform: rotate(-20deg);
  box-shadow: 8px 4px 0 #6a6a5a, 16px 8px 0 #5a5a4a;
  animation: fr-bones 8s ease-in-out infinite alternate;
}
.scn-false-relics .figure-fr {
  position: absolute; bottom:40%; left:45%; width:16px; height:38px;
  background: #2a2a3a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 0 4px rgba(0,0,0,.5);
  animation: fr-figure 4s ease-in-out infinite;
}
.scn-false-relics .pocketbook {
  position: absolute; bottom:42%; left:42%; width:10px; height:14px;
  background: #4a3a2a;
  border-radius: 2px 4px 4px 2px;
  transform: rotate(10deg);
  animation: fr-pocket 6s ease-in-out infinite;
}
.scn-false-relics .mist {
  position: absolute; bottom:45%; left:20%; width:100px; height:30px;
  background: radial-gradient(ellipse, rgba(100,100,120,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: fr-mist 25s ease-in-out infinite alternate;
}
@keyframes fr-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes fr-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fr-bones { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(0.9); } 100% { transform: rotate(-25deg) scaleX(1.1); } }
@keyframes fr-figure { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(6px) rotate(-3deg); } }
@keyframes fr-pocket { 0% { transform: translate(0,0) rotate(10deg); } 50% { transform: translate(2px,-2px) rotate(15deg); } 100% { transform: translate(0,0) rotate(5deg); } }
@keyframes fr-mist { 0% { transform: translateX(-20px) scale(1); opacity:0.3; } 50% { transform: translateX(20px) scale(1.2); opacity:0.5; } 100% { transform: translateX(-10px) scale(0.9); opacity:0.2; } }

/* ---------- free-country ---------- */
.scn-free-country {
  background: linear-gradient(180deg, #7a8a7a 0%, #9a9a8a 30%, #8a9a7a 60%, #6a7a5a 100%),
              radial-gradient(ellipse at 50% 100%, #6a7a5a 0%, transparent 70%);
}
.scn-free-country .muted-sky {
  position: absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #8a9a8a 0%, #b0b0a0 50%, transparent 100%);
  animation: fc-sky 12s ease-in-out infinite alternate;
}
.scn-free-country .horizon-hills {
  position: absolute; bottom:40%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #6a7a5a, #5a6a4a);
  border-radius: 60% 40% 0 0 / 80% 100% 0 0;
  animation: fc-hills 20s ease-in-out infinite alternate;
}
.scn-free-country .ground-fc {
  position: absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #7a8a6a, #5a6a4a);
  border-radius: 0 0 0 0;
}
.scn-free-country .figure-fc {
  position: absolute; bottom:30%; left:50%; width:20px; height:40px;
  background: #3a4a3a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: fc-figure 5s ease-in-out infinite;
}
.scn-free-country .spade {
  position: absolute; bottom:34%; left:48%; width:6px; height:16px;
  background: #2a2a1a;
  border-radius: 0 0 30% 30%;
  transform: rotate(-15deg);
  animation: fc-spade 5s ease-in-out infinite;
}
.scn-free-country .mound {
  position: absolute; bottom:28%; left:52%; width:30px; height:12px;
  background: #5a6a4a;
  border-radius: 50%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.3);
  animation: fc-mound 10s ease-in-out infinite alternate;
}
.scn-free-country .grass {
  position: absolute; bottom:32%; left:40%; width:50px; height:8px;
  background: linear-gradient(90deg, #6a8a5a 0%, transparent 100%);
  filter: blur(2px);
  animation: fc-grass 8s ease-in-out infinite alternate;
}
@keyframes fc-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes fc-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fc-figure { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } }
@keyframes fc-spade { 0% { transform: rotate(-15deg) translate(0,0); } 50% { transform: rotate(-10deg) translate(2px,-2px); } 100% { transform: rotate(-20deg) translate(0,0); } }
@keyframes fc-mound { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes fc-grass { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.1); } 100% { opacity:0.5; transform: scaleX(0.9); } }

/* ---------- fire-vs-putrefaction ---------- */
.scn-fire-vs-putrefaction {
  background: linear-gradient(180deg, #4a4a5a 0%, #6a6a7a 40%, #5a6a5a 70%, #3a4a3a 100%),
              radial-gradient(ellipse at 30% 60%, #d08040 0%, transparent 60%);
}
.scn-fire-vs-putrefaction .gray-sky {
  position: absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #7a7a8a 50%, transparent 100%);
  animation: fp-sky 14s ease-in-out infinite alternate;
}
.scn-fire-vs-putrefaction .ground-fp {
  position: absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #4a5a4a, #2a3a2a);
}
.scn-fire-vs-putrefaction .fire {
  position: absolute; bottom:35%; left:20%; width:40px; height:60px;
  background: radial-gradient(circle at 50% 40%, #f0a040 0%, #d07020 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fp-fire 3s ease-in-out infinite alternate;
}
.scn-fire-vs-putrefaction .coffin {
  position: absolute; bottom:28%; right:20%; width:50px; height:20px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(-5deg);
  animation: fp-coffin 10s ease-in-out infinite alternate;
}
.scn-fire-vs-putrefaction .smoke-fp {
  position: absolute; bottom:48%; left:18%; width:50px; height:50px;
  background: radial-gradient(circle, rgba(80,80,80,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: fp-smoke 7s ease-in-out infinite alternate;
}
.scn-fire-vs-putrefaction .ashes {
  position: absolute; bottom:30%; left:25%; width:20px; height:20px;
  background: radial-gradient(circle, #4a3a2a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fp-ashes 6s ease-in-out infinite alternate;
}
.scn-fire-vs-putrefaction .earth-crack {
  position: absolute; bottom:25%; right:15%; width:30px; height:8px;
  background: #1a1a1a;
  border-radius: 30% 30% 0 0;
  transform: rotate(10deg);
  box-shadow: 10px -4px 0 #1a1a1a, 20px -8px 0 #1a1a1a;
  animation: fp-crack 12s ease-in-out infinite alternate;
}
@keyframes fp-sky { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes fp-fire { 0% { transform: scale(1) rotate(0); opacity:0.6; } 50% { transform: scale(1.2) rotate(5deg); opacity:1; } 100% { transform: scale(0.8) rotate(-3deg); opacity:0.7; } }
@keyframes fp-coffin { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(0); } }
@keyframes fp-smoke { 0% { transform: translate(0,0) scale(1); opacity:0.2; } 50% { transform: translate(-6px,-12px) scale(1.3); opacity:0.5; } 100% { transform: translate(4px,-18px) scale(0.8); opacity:0.1; } }
@keyframes fp-ashes { 0% { transform: translate(0,0) scale(1); opacity:0.4; } 50% { transform: translate(3px,-3px) scale(1.2); opacity:0.7; } 100% { transform: translate(-2px,-1px) scale(0.9); opacity:0.3; } }
@keyframes fp-crack { 0% { transform: rotate(10deg) scaleX(1); } 50% { transform: rotate(15deg) scaleX(1.1); } 100% { transform: rotate(5deg) scaleX(0.9); } }

.scn-face-without-marks { background: linear-gradient(180deg, #f2e9d0 0%, #d9c4a0 100%), radial-gradient(ellipse at 70% 40%, #fff8e7 0%, transparent 80%); }
.scn-face-without-marks .bg { position:absolute; inset:0; background: linear-gradient(135deg, #ebdcc5 0%, #d6bfa5 100%); }
.scn-face-without-marks .mirror { position:absolute; top:18%; left:55%; width:120px; height:160px; border-radius:50% 50% 45% 45%; background: linear-gradient(180deg, #c0b09a 0%, #a8937c 100%); box-shadow: inset 0 0 30px #b09c84, 0 0 40px rgba(0,0,0,0.2); transform: rotate(8deg); animation: fwm-mirror 6s ease-in-out infinite alternate; }
.scn-face-without-marks .figure { position:absolute; bottom:12%; left:38%; width:80px; height:180px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: fwm-figure 4s ease-in-out infinite; }
.scn-face-without-marks .hand { position:absolute; bottom:30%; left:45%; width:40px; height:60px; background: radial-gradient(ellipse at 70% 30%, #cdb097 0%, #a3856a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(25deg) translate(0,0); animation: fwm-hand 3s ease-in-out infinite alternate; }
.scn-face-without-marks .shadow { position:absolute; bottom:5%; left:30%; width:140px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 70%); animation: fwm-shadow 4s ease-in-out infinite; }
.scn-face-without-marks .light-spot { position:absolute; top:25%; left:40%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,245,220,0.6) 0%, transparent 70%); animation: fwm-light 2s ease-in-out infinite alternate; }
@keyframes fwm-mirror { 0% { transform: rotate(6deg) scale(1); opacity:0.9; } 50% { transform: rotate(12deg) scale(1.02); opacity:1; } 100% { transform: rotate(6deg) scale(1); opacity:0.95; } }
@keyframes fwm-figure { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes fwm-hand { 0% { transform: rotate(20deg) translate(0,0) scale(1); } 50% { transform: rotate(30deg) translate(8px,-6px) scale(0.95); } 100% { transform: rotate(20deg) translate(0,0) scale(1); } }
@keyframes fwm-shadow { 0% { transform: scaleX(1); opacity:0.25; } 50% { transform: scaleX(1.2); opacity:0.15; } 100% { transform: scaleX(1); opacity:0.25; } }
@keyframes fwm-light { 0% { transform: scale(0.8); opacity:0.5; } 50% { transform: scale(1.1); opacity:0.8; } 100% { transform: scale(0.8); opacity:0.5; } }

.scn-sacrifice-for-son { background: linear-gradient(180deg, #f5e6cd 0%, #e1c9ab 100%), radial-gradient(ellipse at 60% 30%, #fff3d6 0%, transparent 80%); }
.scn-sacrifice-for-son .bg { position:absolute; inset:0; background: linear-gradient(135deg, #eadbc2 0%, #d4bba0 100%); }
.scn-sacrifice-for-son .woman { position:absolute; bottom:10%; right:35%; width:90px; height:160px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform: rotate(3deg); animation: sfs-woman 5s ease-in-out infinite; }
.scn-sacrifice-for-son .hand { position:absolute; bottom:30%; left:45%; width:50px; height:70px; background: radial-gradient(ellipse at 60% 20%, #d4b69b 0%, #b09377 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(35deg); animation: sfs-hand 4s ease-in-out infinite alternate; }
.scn-sacrifice-for-son .brush { position:absolute; bottom:40%; left:52%; width:8px; height:30px; background: linear-gradient(180deg, #8b6f50 0%, #5c4530 100%); border-radius: 40% 40% 20% 20%; transform: rotate(15deg); animation: sfs-brush 4s ease-in-out infinite alternate; }
.scn-sacrifice-for-son .paint { position:absolute; bottom:43%; left:47%; width:12px; height:12px; background: radial-gradient(circle, #d4a373 0%, #b8855a 100%); border-radius: 50%; box-shadow: 0 0 12px #d4a373; animation: sfs-paint 2s ease-in-out infinite; }
.scn-sacrifice-for-son .shadow { position:absolute; bottom:4%; left:30%; width:160px; height:25px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); animation: sfs-shadow 4s ease-in-out infinite; }
@keyframes sfs-woman { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes sfs-hand { 0% { transform: rotate(30deg) translate(0,0) scale(1); } 50% { transform: rotate(40deg) translate(10px,-8px) scale(1.02); } 100% { transform: rotate(30deg) translate(0,0) scale(1); } }
@keyframes sfs-brush { 0% { transform: rotate(10deg) translate(0,0); } 50% { transform: rotate(20deg) translate(8px,-6px); } 100% { transform: rotate(10deg) translate(0,0); } }
@keyframes sfs-paint { 0% { transform: scale(0.6); opacity:0.3; } 50% { transform: scale(1.2); opacity:0.9; } 100% { transform: scale(0.6); opacity:0.3; } }
@keyframes sfs-shadow { 0% { opacity:0.2; transform: scaleX(1); } 50% { opacity:0.15; transform: scaleX(1.1); } 100% { opacity:0.2; transform: scaleX(1); } }

.scn-invisible-treatment { background: linear-gradient(180deg, #f0e2cc 0%, #dbc1a5 100%), radial-gradient(ellipse at 50% 45%, #fff5d6 0%, transparent 80%); }
.scn-invisible-treatment .bg { position:absolute; inset:0; background: linear-gradient(135deg, #e8d7bc 0%, #d1b598 100%); }
.scn-invisible-treatment .mirror { position:absolute; top:15%; left:52%; width:130px; height:170px; border-radius: 50% 50% 45% 45%; background: linear-gradient(180deg, #b8a58c 0%, #a08b74 100%); box-shadow: inset 0 0 40px #a08b74, 0 0 50px rgba(0,0,0,0.15); transform: rotate(5deg); animation: it-mirror 8s ease-in-out infinite alternate; }
.scn-invisible-treatment .woman { position:absolute; bottom:10%; left:30%; width:80px; height:170px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform: rotate(-2deg); animation: it-woman 6s ease-in-out infinite; }
.scn-invisible-treatment .reflection { position:absolute; top:22%; left:56%; width:60px; height:100px; background: radial-gradient(ellipse, rgba(255,240,200,0.4) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: it-reflection 3s ease-in-out infinite alternate; }
.scn-invisible-treatment .light-source { position:absolute; top:20%; left:40%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,245,200,0.5) 0%, transparent 70%); animation: it-light 4s ease-in-out infinite alternate; }
.scn-invisible-treatment .shadow { position:absolute; bottom:5%; left:25%; width:150px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); animation: it-shadow 5s ease-in-out infinite; }
@keyframes it-mirror { 0% { transform: rotate(4deg) scale(1); opacity:0.95; } 50% { transform: rotate(8deg) scale(1.02); opacity:1; } 100% { transform: rotate(4deg) scale(1); opacity:0.95; } }
@keyframes it-woman { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes it-reflection { 0% { transform: scale(0.8) translateX(0); opacity:0.3; } 50% { transform: scale(1.1) translateX(5px); opacity:0.7; } 100% { transform: scale(0.8) translateX(0); opacity:0.3; } }
@keyframes it-light { 0% { transform: scale(0.9); opacity:0.4; } 50% { transform: scale(1.1); opacity:0.7; } 100% { transform: scale(0.9); opacity:0.4; } }
@keyframes it-shadow { 0% { opacity:0.2; transform: scaleX(1); } 50% { opacity:0.1; transform: scaleX(1.2); } 100% { opacity:0.2; transform: scaleX(1); } }

.scn-doctor-narrates-history { background: linear-gradient(180deg, #f4ebd8 0%, #e0d0b8 100%), radial-gradient(ellipse at 60% 30%, #fff9e6 0%, transparent 80%); }
.scn-doctor-narrates-history .bg { position:absolute; inset:0; background: linear-gradient(135deg, #ece1cc 0%, #d5c2a8 100%); }
.scn-doctor-narrates-history .doctor { position:absolute; bottom:5%; left:35%; width:100px; height:200px; background: linear-gradient(180deg, #2c2218 0%, #0f0a05 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform: rotate(2deg); animation: dnh-doctor 8s ease-in-out infinite; }
.scn-doctor-narrates-history .book { position:absolute; bottom:12%; left:38%; width:50px; height:40px; background: linear-gradient(180deg, #8b6f4e 0%, #5c452b 100%); border-radius: 5% 5% 10% 10%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: dnh-book 6s ease-in-out infinite alternate; }
.scn-doctor-narrates-history .window { position:absolute; top:8%; right:10%; width:120px; height:180px; border: 12px solid #a0886a; background: linear-gradient(180deg, #b8d8f0 0%, #7aa8c8 100%); border-radius: 4% 4% 6% 6%; box-shadow: inset 0 0 30px rgba(0,0,0,0.1); animation: dnh-window 10s ease-in-out infinite alternate; }
.scn-doctor-narrates-history .light-beam { position:absolute; top:10%; right:15%; width:100px; height:400px; background: linear-gradient(180deg, rgba(255,245,220,0.4) 0%, transparent 90%); transform: rotate(15deg); transform-origin: top right; filter: blur(10px); animation: dnh-beam 12s ease-in-out infinite alternate; }
.scn-doctor-narrates-history .shadow { position:absolute; bottom:0; left:20%; width:200px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 80%); animation: dnh-shadow 8s ease-in-out infinite; }
@keyframes dnh-doctor { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes dnh-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(2px) scale(0.98); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes dnh-window { 0% { opacity:0.85; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:0.85; transform: scale(1); } }
@keyframes dnh-beam { 0% { transform: rotate(12deg) translateX(0); opacity:0.3; } 50% { transform: rotate(18deg) translateX(20px); opacity:0.6; } 100% { transform: rotate(12deg) translateX(0); opacity:0.3; } }
@keyframes dnh-shadow { 0% { opacity:0.15; transform: scaleX(1); } 50% { opacity:0.1; transform: scaleX(1.1); } 100% { opacity:0.15; transform: scaleX(1); } }

/* wood-cart-to-beach */
.scn-wood-cart-to-beach {
  background: linear-gradient(180deg, #0b0e1a 0%, #14182d 40%, #1c1f35 100%),
              radial-gradient(ellipse at 50% 100%, #202540 0%, transparent 70%);
}
.scn-wood-cart-to-beach .sky-night { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 20%, #1a2040 0%, transparent 80%); animation: wc-sky 20s ease-in-out infinite alternate; }
.scn-wood-cart-to-beach .cliff { position:absolute; bottom:40%; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1f2a 0%, #0b0e14 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-wood-cart-to-beach .shingle { position:absolute; bottom:5%; left:0; right:0; height:10%; background: repeating-linear-gradient(90deg, #2a2e3a 0px, #1d212c 2px, #2a2e3a 4px); border-radius: 20% 80% 0 0 / 60% 40% 0 0; }
.scn-wood-cart-to-beach .cart { position:absolute; bottom:10%; left:-20%; width:30%; height:15%; background: linear-gradient(180deg, #3a2e20 0%, #2a1e10 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 10px #000; animation: wc-cart-move 12s linear infinite; }
.scn-wood-cart-to-beach .woodpile { position:absolute; bottom:12%; left:-18%; width:28%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e10 100%); border-radius: 40% 40% 10% 10%; clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%); animation: wc-wood 6s ease-in-out infinite alternate; }
.scn-wood-cart-to-beach .wave { position:absolute; bottom:2%; width:120%; height:6%; background: linear-gradient(90deg, transparent 0%, #1a2a3a 20%, #0d1a2a 50%, #1a2a3a 80%, transparent 100%); border-radius: 50%; animation: wc-wave 8s ease-in-out infinite; }
.scn-wood-cart-to-beach .wave-a { left:-10%; animation-duration: 8s; }
.scn-wood-cart-to-beach .wave-b { left:-5%; bottom:4%; width:120%; animation-duration: 11s; animation-delay: -3s; }
.scn-wood-cart-to-beach .moon { position:absolute; top:10%; right:15%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #c8d0e0 0%, #8090a0 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(128,144,160,.3); }
.scn-wood-cart-to-beach .star-1,
.scn-wood-cart-to-beach .star-2 { position:absolute; width:3px; height:3px; background:#fff; border-radius:50%; animation: wc-twinkle 3s ease-in-out infinite; }
.scn-wood-cart-to-beach .star-1 { top:8%; left:20%; }
.scn-wood-cart-to-beach .star-2 { top:18%; left:45%; animation-delay: -1.5s; }
@keyframes wc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes wc-cart-move { 0% { transform: translateX(-20vw) } 100% { transform: translateX(120vw) } }
@keyframes wc-wood { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(1px) rotate(-0.3deg) } }
@keyframes wc-wave { 0% { transform: translateX(-10%) scaleY(1) } 50% { transform: translateX(5%) scaleY(1.1) } 100% { transform: translateX(-10%) scaleY(1) } }
@keyframes wc-twinkle { 0% { opacity:.3 } 50% { opacity:1 } 100% { opacity:.3 } }

/* corpse-lighting */
.scn-corpse-lighting {
  background: linear-gradient(180deg, #1a1614 0%, #2a221c 40%, #1e1814 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-corpse-lighting .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); }
.scn-corpse-lighting .doorway { position:absolute; bottom:20%; left:20%; width:60%; height:70%; background: #0a0806; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 40px #000; }
.scn-corpse-lighting .stretcher { position:absolute; bottom:25%; left:30%; width:45%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e10 100%); border-radius: 10px; box-shadow: 0 4px 12px #000; }
.scn-corpse-lighting .corpse-silk { position:absolute; bottom:26%; left:32%; width:40%; height:12%; background: linear-gradient(180deg, rgba(220,210,200,.8) 0%, rgba(180,170,160,.6) 100%); border-radius: 20% 20% 10% 10%; filter: blur(2px); box-shadow: 0 2px 10px rgba(0,0,0,.5); animation: cl-silk 6s ease-in-out infinite alternate; }
.scn-corpse-lighting .corpse-shape { position:absolute; bottom:27%; left:33%; width:38%; height:10%; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; opacity:0.6; }
.scn-corpse-lighting .candle-light { position:absolute; bottom:40%; left:45%; width:20px; height:30px; background: radial-gradient(circle at 50% 100%, #ffd080 0%, #b08040 40%, transparent 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 20px #b08040, 0 0 80px 40px rgba(176,128,64,.3); animation: cl-flicker 2s ease-in-out infinite; }
.scn-corpse-lighting .candle-base { position:absolute; bottom:38%; left:48%; width:8px; height:12px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; }
.scn-corpse-lighting .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 60%); animation: cl-shadow 8s ease-in-out infinite alternate; }
@keyframes cl-silk { 0% { opacity:.7; filter: blur(2px) } 50% { opacity:1; filter: blur(1px) } 100% { opacity:.8; filter: blur(3px) } }
@keyframes cl-flicker { 0% { opacity:.6; transform: scaleY(1) } 25% { opacity:1; transform: scaleY(1.1) } 50% { opacity:.8; transform: scaleY(.95) } 75% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.6; transform: scaleY(1) } }
@keyframes cl-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }

/* sacred-water-rite */
.scn-sacred-water-rite {
  background: linear-gradient(180deg, #1a1614 0%, #2a221c 40%, #1e1814 100%),
              radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 60%);
}
.scn-sacred-water-rite .chamber-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); }
.scn-sacred-water-rite .stretcher-bed { position:absolute; bottom:20%; left:25%; width:50%; height:8%; background: #2a1e10; border-radius: 10px; box-shadow: inset 0 2px 10px #000; }
.scn-sacred-water-rite .corpse-form { position:absolute; bottom:21%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 20% 20% 10% 10%; }
.scn-sacred-water-rite .priest-figure { position:absolute; bottom:22%; left:10%; width:15%; height:35%; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: sw-walk 8s ease-in-out infinite; }
.scn-sacred-water-rite .urn-chains { position:absolute; bottom:45%; left:15%; width:12%; height:20%; background: radial-gradient(circle, #5a4a3a 0%, transparent 60%); border-radius: 50%; box-shadow: 0 0 10px #8a7a6a; animation: sw-swing 4s ease-in-out infinite; }
.scn-sacred-water-rite .water-splash { position:absolute; bottom:38%; left:22%; width:8%; height:5%; background: radial-gradient(circle, rgba(180,200,220,.8) 0%, transparent 100%); border-radius: 50%; animation: sw-splash 2s ease-in-out infinite; }
.scn-sacred-water-rite .water-drops { position:absolute; bottom:40%; left:20%; width:4%; height:10%; background: repeating-linear-gradient(180deg, #8090a0 0px, transparent 2px, #8090a0 4px); animation: sw-drops 3s linear infinite; }
.scn-sacred-water-rite .altar-glow { position:absolute; bottom:10%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,.2) 0%, transparent 70%); animation: sw-glow 6s ease-in-out infinite alternate; }
@keyframes sw-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(15px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(30px) translateY(0) rotate(0deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes sw-swing { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(5deg) translateX(2px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes sw-splash { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.8; transform: scale(1.5) } 100% { opacity:.3; transform: scale(1) } }
@keyframes sw-drops { 0% { transform: translateY(0); opacity:1 } 100% { transform: translateY(20px); opacity:0 } }
@keyframes sw-glow { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.3 } }

/* funeral-procession */
.scn-funeral-procession {
  background: linear-gradient(180deg, #0b0e1a 0%, #14182d 40%, #1c1f35 100%),
              radial-gradient(ellipse at 50% 100%, #202540 0%, transparent 80%);
}
.scn-funeral-procession .night-sky { position:absolute; inset:0; background: radial-gradient(ellipse at 20% 10%, #1a2040 0%, transparent 70%); animation: fp-sky 15s ease-in-out infinite alternate; }
.scn-funeral-procession .road { position:absolute; bottom:10%; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #2a2e3a 0px, #1d212c 2px, #2a2e3a 4px); border-radius: 10% 10% 0 0; }
.scn-funeral-procession .corpse-bier { position:absolute; bottom:15%; left:5%; width:20%; height:12%; background: linear-gradient(180deg, #3a2e20 0%, #2a1e10 100%); border-radius: 5px; box-shadow: 0 4px 10px #000; animation: fp-bier 8s linear infinite; }
.scn-funeral-procession .indian-1,
.scn-funeral-procession .indian-2,
.scn-funeral-procession .indian-3 { position:absolute; bottom:13%; width:10%; height:24%; background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: fp-walk 6s ease-in-out infinite; }
.scn-funeral-procession .indian-1 { left:28%; animation-delay: 0s; }
.scn-funeral-procession .indian-2 { left:40%; animation-delay: -1.5s; }
.scn-funeral-procession .indian-3 { left:52%; animation-delay: -3s; }
.scn-funeral-procession .englishman { position:absolute; bottom:12%; left:68%; width:12%; height:35%; background: linear-gradient(180deg, #3a3a42 0%, #2a2a32 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: fp-walk 7s ease-in-out infinite reverse; }
.scn-funeral-procession .lamp-post { position:absolute; bottom:15%; left:58%; width:2%; height:30%; background: #2a2a2a; border-radius: 2px; }
.scn-funeral-procession .lamp-post::before { content:''; position:absolute; top:-8px; left:-4px; width:8px; height:8px; background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(176,128,64,.4); animation: fp-lamp 3s ease-in-out infinite alternate; }
@keyframes fp-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fp-bier { 0% { transform: translateX(0) } 100% { transform: translateX(200%) } }
@keyframes fp-walk { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fp-lamp { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(1) } }

.scn-suicides-per-day {
  background: linear-gradient(180deg, #f5f8fa 0%, #e0e6ed 40%, #c5d0db 100%),
              radial-gradient(ellipse at 50% 100%, #b0c0cc 0%, transparent 70%);
}
.scn-suicides-per-day .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8edf2 0%, #d4dbe3 100%);
  border-bottom: 2px solid #b0bec5;
  animation: sd-wall 8s ease-in-out infinite alternate;
}
.scn-suicides-per-day .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b8c6d0 0%, #9aacb8 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
}
.scn-suicides-per-day .desk {
  position: absolute; bottom: 20%; left: 30%; width: 28%; height: 12%;
  background: linear-gradient(135deg, #d0a070 0%, #a08050 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: sd-desk 6s ease-in-out infinite;
}
.scn-suicides-per-day .chair {
  position: absolute; bottom: 14%; left: 22%; width: 10%; height: 16%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-suicides-per-day .figure {
  position: absolute; bottom: 16%; left: 36%; width: 10%; height: 26%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-figure 4s ease-in-out infinite;
}
.scn-suicides-per-day .clock {
  position: absolute; top: 12%; right: 20%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 50%, #e0e0e0 0%, #c0c0c0 60%, #a0a0a0 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: sd-clock 2s linear infinite;
}
.scn-suicides-per-day .door {
  position: absolute; bottom: 20%; right: 8%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #a09080 0%, #8a7a6a 100%);
  border-radius: 4% 4% 0 0;
  border-left: 2px solid #605040;
  animation: sd-door 10s ease-in-out infinite alternate;
}
@keyframes sd-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sd-desk {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.005); }
}
@keyframes sd-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0); }
}
@keyframes sd-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes sd-door {
  0% { transform: rotateY(0deg); }
  50% { transform: rotateY(5deg); }
  100% { transform: rotateY(0deg); }
}

.scn-method-of-asphyxiation {
  background: linear-gradient(180deg, #f0f2f5 0%, #d8dee6 50%, #b8c4d0 100%),
              radial-gradient(circle at 30% 50%, rgba(200,215,230,0.4) 0%, transparent 60%);
}
.scn-method-of-asphyxiation .bg-tile {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, rgba(200,210,220,0.3) 0px, rgba(200,210,220,0.3) 2px, transparent 2px, transparent 40px),
              repeating-linear-gradient(0deg, rgba(200,210,220,0.3) 0px, rgba(200,210,220,0.3) 2px, transparent 2px, transparent 40px);
  animation: mo-tile 30s linear infinite;
}
.scn-method-of-asphyxiation .chamber-wall {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 50%;
  background: linear-gradient(180deg, #c0c8d2 0%, #a0aebc 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.1);
}
.scn-method-of-asphyxiation .pipe-vertical {
  position: absolute; bottom: 30%; left: 35%; width: 4%; height: 50%;
  background: linear-gradient(90deg, #8a9aaa 0%, #a0b0c0 50%, #8a9aaa 100%);
  border-radius: 8px;
  box-shadow: 0 0 8px rgba(0,0,0,0.2);
  animation: mo-pipe-v 5s ease-in-out infinite;
}
.scn-method-of-asphyxiation .pipe-horizontal {
  position: absolute; bottom: 60%; left: 20%; right: 20%; height: 3%;
  background: linear-gradient(180deg, #8a9aaa 0%, #a0b0c0 50%, #8a9aaa 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: mo-pipe-h 3s ease-in-out infinite alternate;
}
.scn-method-of-asphyxiation .gas-leak {
  position: absolute; bottom: 55%; left: 38%; width: 6%; height: 6%;
  background: radial-gradient(circle at 50% 50%, rgba(200,255,200,0.6) 0%, rgba(100,200,100,0.2) 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mo-gas 2s ease-in-out infinite alternate;
}
.scn-method-of-asphyxiation .door-left {
  position: absolute; bottom: 30%; left: 5%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #b0a088 0%, #90806a 100%);
  border-radius: 6% 6% 0 0;
  border-right: 2px solid #605040;
  transform-origin: left center;
  animation: mo-door-l 8s ease-in-out infinite;
}
.scn-method-of-asphyxiation .door-right {
  position: absolute; bottom: 30%; right: 5%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #b0a088 0%, #90806a 100%);
  border-radius: 6% 6% 0 0;
  border-left: 2px solid #605040;
  transform-origin: right center;
  animation: mo-door-r 8s ease-in-out infinite 4s;
}
@keyframes mo-tile {
  0% { transform: translate(0,0); }
  100% { transform: translate(40px,40px); }
}
@keyframes mo-pipe-v {
  0%,100% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.02); opacity: 1; }
}
@keyframes mo-pipe-h {
  0% { transform: scaleX(1) translateY(0); }
  100% { transform: scaleX(1.02) translateY(-1px); }
}
@keyframes mo-gas {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.5); opacity: 0.7; }
  100% { transform: scale(1); opacity: 0.3; }
}
@keyframes mo-door-l {
  0%,100% { transform: rotateY(0deg); }
  25% { transform: rotateY(-10deg); }
  50% { transform: rotateY(0deg); }
  75% { transform: rotateY(5deg); }
}
@keyframes mo-door-r {
  0%,100% { transform: rotateY(0deg); }
  25% { transform: rotateY(10deg); }
  50% { transform: rotateY(0deg); }
  75% { transform: rotateY(-5deg); }
}

.scn-funding-and-costs {
  background: linear-gradient(180deg, #fcf5e8 0%, #f0e0c8 40%, #dec8a8 100%),
              radial-gradient(ellipse at 50% 80%, #e0c8a0 0%, transparent 70%);
}
.scn-funding-and-costs .boardroom-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 100%);
  border-bottom: 2px solid #b8a88a;
  animation: fc-bg 12s ease-in-out infinite alternate;
}
.scn-funding-and-costs .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(135deg, #c8a878 0%, #a88858 100%);
  border-radius: 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: fc-table 6s ease-in-out infinite;
}
.scn-funding-and-costs .chair-left {
  position: absolute; bottom: 18%; left: 16%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #8a7060 0%, #6a5040 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: fc-chair-l 8s ease-in-out infinite;
}
.scn-funding-and-costs .chair-right {
  position: absolute; bottom: 18%; right: 16%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #8a7060 0%, #6a5040 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: fc-chair-r 8s ease-in-out infinite 4s;
}
.scn-funding-and-costs .ledger {
  position: absolute; bottom: 22%; left: 42%; width: 16%; height: 12%;
  background: linear-gradient(135deg, #f5f0e0 0%, #e0d8c0 100%);
  border: 1px solid #b0a080;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  animation: fc-ledger 10s ease-in-out infinite alternate;
}
.scn-funding-and-costs .coffer {
  position: absolute; bottom: 16%; right: 8%; width: 12%; height: 14%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: fc-coffer 14s ease-in-out infinite;
}
.scn-funding-and-costs .candle {
  position: absolute; bottom: 38%; left: 10%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #f5e8d0 0%, #e0c8a0 100%);
  border-radius: 20% 20% 4% 4%;
  box-shadow: 0 0 12px 4px #f0d8b0, 0 0 24px 8px rgba(240,216,176,0.4);
  animation: fc-candle 3s ease-in-out infinite alternate;
}
@keyframes fc-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.92; }
}
@keyframes fc-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes fc-chair-l {
  0%,100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-1px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(2deg) translateY(-1px); }
}
@keyframes fc-chair-r {
  0%,100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-1px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(-2deg) translateY(-1px); }
}
@keyframes fc-ledger {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes fc-coffer {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}
@keyframes fc-candle {
  0% { box-shadow: 0 0 8px 2px #f0d8b0, 0 0 16px 4px rgba(240,216,176,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 18px 6px #ffecb0, 0 0 36px 12px rgba(255,236,176,0.5); opacity: 1; }
  100% { box-shadow: 0 0 10px 3px #f0d8b0, 0 0 20px 6px rgba(240,216,176,0.35); opacity: 0.92; }
}

.scn-poor-people-arriving {
  background: linear-gradient(180deg, #2a2a38 0%, #1a1a28 40%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 70%);
}
.scn-poor-people-arriving .corridor-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(40,40,55,0.8) 0%, rgba(20,20,30,0.9) 100%);
}
.scn-poor-people-arriving .lamp {
  position: absolute; top: 10%; left: 45%; width: 10%; height: 6%;
  background: radial-gradient(circle at 50% 50%, #d0b070 0%, #b09050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,180,100,0.4), 0 0 60px 20px rgba(200,180,100,0.2);
  animation: pp-lamp 4s ease-in-out infinite alternate;
}
.scn-poor-people-arriving .figure-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pp-figure 6s ease-in-out infinite;
}
.scn-poor-people-arriving .door-sliver {
  position: absolute; bottom: 18%; right: 10%; width: 4%; height: 40%;
  background: linear-gradient(90deg, #403828 0%, #5a4838 50%, #403828 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  transform-origin: right center;
  animation: pp-door 8s ease-in-out infinite;
}
.scn-poor-people-arriving .shadow-pool {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.2) 60%, transparent 100%);
  animation: pp-pool 10s ease-in-out infinite alternate;
}
.scn-poor-people-arriving .mold-spot {
  position: absolute; bottom: 30%; left: 20%; width: 6%; height: 4%;
  background: radial-gradient(circle at 50% 50%, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: pp-mold 20s ease-in-out infinite;
}
@keyframes pp-lamp {
  0% { opacity: 0.6; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.7; transform: translateY(0); }
}
@keyframes pp-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(6px) translateY(0) rotate(0deg); }
  75% { transform: translateX(9px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(12px) translateY(0) rotate(0deg); }
}
@keyframes pp-door {
  0%,100% { transform: rotateY(0deg); }
  50% { transform: rotateY(8deg); }
}
@keyframes pp-pool {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
  100% { transform: scaleX(1); opacity: 0.4; }
}
@keyframes pp-mold {
  0% { transform: translate(0,0) scale(1); opacity: 0.3; }
  50% { transform: translate(2px,-1px) scale(1.1); opacity: 0.5; }
  100% { transform: translate(0,0) scale(1); opacity: 0.3; }
}

.scn-aunt-tells-first-part {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 40%, #0e0e18 100%),
    radial-gradient(ellipse at 60% 50%, #3a2a2a 0%, transparent 70%);
}
.scn-aunt-tells-first-part .bg-deep {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e18 100%);
  animation: atfp-glitch 30s ease-in-out infinite;
}
.scn-aunt-tells-first-part .table {
  position:absolute; bottom:10%; left:20%; right:20%; height:8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 8% 8% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: atfp-breathe 8s ease-in-out infinite;
}
.scn-aunt-tells-first-part .candle {
  position:absolute; bottom:18%; left:45%; width:6px; height:40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px; animation: atfp-flicker 4s ease-in-out infinite;
}
.scn-aunt-tells-first-part .candle-flame {
  position:absolute; bottom:58%; left:45.5%; width:10px; height:16px;
  background: radial-gradient(circle, #ffd060 0%, #c08040 50%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: atfp-flame 2s ease-in-out infinite alternate;
}
.scn-aunt-tells-first-part .hand {
  position:absolute; bottom:14%; left:38%; width:40px; height:30px;
  background: radial-gradient(ellipse at 50% 40%, #6a4a3a 0%, #2a1a0e 100%);
  border-radius: 40% 50% 30% 30%; transform: rotate(10deg);
  animation: atfp-hand 12s ease-in-out infinite;
}
.scn-aunt-tells-first-part .locket {
  position:absolute; bottom:20%; left:48%; width:16px; height:20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%; border: 1px solid #6a5a4a;
  transform: rotate(-5deg);
  animation: atfp-shimmer 6s ease-in-out infinite;
}
.scn-aunt-tells-first-part .hair-strand {
  position:absolute; bottom:24%; left:47.5%; width:2px; height:30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 1px; transform-origin: top center;
  animation: atfp-sway 8s ease-in-out infinite;
}
@keyframes atfp-glitch {
  0%,100% { opacity:0.95 }
  33% { opacity:0.85 }
  66% { opacity:1 }
}
@keyframes atfp-breathe {
  0%,100% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
}
@keyframes atfp-flicker {
  0%,100% { transform: scaleY(1) translateY(0) }
  25% { transform: scaleY(0.95) translateY(-1px) }
  75% { transform: scaleY(1.05) translateY(1px) }
}
@keyframes atfp-flame {
  0% { transform: scale(1) rotate(-2deg); opacity:0.9 }
  50% { transform: scale(1.2) rotate(3deg); opacity:1 }
  100% { transform: scale(0.9) rotate(-1deg); opacity:0.85 }
}
@keyframes atfp-hand {
  0%,100% { transform: rotate(10deg) translateY(0) }
  50% { transform: rotate(8deg) translateY(-2px) }
}
@keyframes atfp-shimmer {
  0%,100% { box-shadow: 0 0 4px rgba(200,160,100,0.2); }
  50% { box-shadow: 0 0 8px rgba(200,160,100,0.5); }
}
@keyframes atfp-sway {
  0%,100% { transform: rotate(-3deg) }
  50% { transform: rotate(3deg) }
}

.scn-description-of-santezes {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a4a 0%, transparent 70%);
}
.scn-description-of-santezes .bg-wall {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #1a1a2a 0%, #0e0e1a 100%);
  animation: dosc-hum 20s ease-in-out infinite;
}
.scn-description-of-santezes .frame {
  position:absolute; top:10%; left:30%; right:30%; bottom:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4%; box-shadow: 0 8px 24px rgba(0,0,0,0.7);
  animation: dosc-frame 12s ease-in-out infinite;
}
.scn-description-of-santezes .portrait-silhouette {
  position:absolute; top:15%; left:36%; right:36%; bottom:25%;
  background: radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dosc-breathe 8s ease-in-out infinite;
}
.scn-description-of-santezes .hair-wavy {
  position:absolute; top:18%; left:34%; right:34%; height:12%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  filter: blur(1px);
  animation: dosc-hair 10s ease-in-out infinite;
}
.scn-description-of-santezes .beard {
  position:absolute; top:30%; left:40%; right:40%; height:10%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 0 0 40% 40%;
  animation: dosc-beard 14s ease-in-out infinite;
}
.scn-description-of-santezes .eye-left {
  position:absolute; top:22%; left:43%; width:4px; height:6px;
  background: radial-gradient(circle, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50%;
  animation: dosc-eye 6s ease-in-out infinite;
}
.scn-description-of-santezes .eye-right {
  position:absolute; top:22%; right:43%; width:4px; height:6px;
  background: radial-gradient(circle, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50%;
  animation: dosc-eye 6s ease-in-out infinite 0.5s;
}
@keyframes dosc-hum { 0%,100% { opacity:0.95 } 50% { opacity:1 } }
@keyframes dosc-frame { 0%,100% { transform: scale(1) } 50% { transform: scale(0.98) } }
@keyframes dosc-breathe { 0%,100% { transform: scale(1) translateY(0) } 50% { transform: scale(1.01) translateY(-2px) } }
@keyframes dosc-hair { 0%,100% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(2deg) translateX(3px) } }
@keyframes dosc-beard { 0%,100% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } }
@keyframes dosc-eye { 0%,100% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } }

.scn-family-tolerance {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a1a1a 40%, #0e0e0e 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a2a 0%, transparent 70%);
}
.scn-family-tolerance .bg-interior {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #1a1a1a 0%, #0e0e0e 100%);
  animation: fato-subtle 25s ease-in-out infinite;
}
.scn-family-tolerance .floor {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e0a 100%);
  border-radius: 20% 20% 0 0;
  animation: fato-flow 30s ease-in-out infinite;
}
.scn-family-tolerance .window-dim {
  position:absolute; top:12%; left:20%; right:50%; bottom:60%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 2%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: fato-window 15s ease-in-out infinite;
}
.scn-family-tolerance .figure-left {
  position:absolute; bottom:15%; left:22%; width:28px; height:50px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fato-figure 10s ease-in-out infinite;
}
.scn-family-tolerance .figure-right {
  position:absolute; bottom:15%; right:18%; width:28px; height:50px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fato-figure 10s ease-in-out infinite 0.5s;
}
.scn-family-tolerance .dress-left {
  position:absolute; bottom:15%; left:20%; width:32px; height:20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40%;
  animation: fato-dress 12s ease-in-out infinite;
}
.scn-family-tolerance .dress-right {
  position:absolute; bottom:15%; right:15%; width:32px; height:20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%);
  border-radius: 0 0 40% 40%;
  animation: fato-dress 12s ease-in-out infinite 0.5s;
}
@keyframes fato-subtle { 0%,100% { opacity:0.95 } 50% { opacity:1 } }
@keyframes fato-flow { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes fato-window { 0%,100% { opacity:0.7 } 50% { opacity:0.9 } }
@keyframes fato-figure { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 75% { transform: rotate(-2deg) translateY(-1px) } }
@keyframes fato-dress { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }

.scn-grandfather-suicide {
  background:
    linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 0%, #5a5a6a 0%, transparent 70%);
}
.scn-grandfather-suicide .bg-overcast {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  animation: grfs-sky 30s ease-in-out infinite;
}
.scn-grandfather-suicide .fence {
  position:absolute; bottom:20%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 2% 2% 0 0;
  animation: grfs-fence 20s ease-in-out infinite;
}
.scn-grandfather-suicide .kennel {
  position:absolute; bottom:20%; left:55%; width:60px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  transform: rotate(-2deg);
  animation: grfs-kennel 15s ease-in-out infinite;
}
.scn-grandfather-suicide .noose {
  position:absolute; bottom:40%; left:35%; width:2px; height:60px;
  background: #3a2a1a;
  border-radius: 1px;
  transform-origin: top center;
  animation: grfs-swing 8s ease-in-out infinite alternate;
}
.scn-grandfather-suicide .figure-hanged {
  position:absolute; bottom:22%; left:33%; width:20px; height:30px;
  background: radial-gradient(ellipse at 50% 30%, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: grfs-dangle 8s ease-in-out infinite alternate;
}
.scn-grandfather-suicide .dog {
  position:absolute; bottom:20%; left:20%; width:24px; height:16px;
  background: radial-gradient(ellipse at 50% 40%, #2a1a0e 0%, #1a0e0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scale(0.9);
  animation: grfs-dog 12s ease-in-out infinite;
}
.scn-grandfather-suicide .fog-layer {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(100,100,120,0.1) 0%, rgba(50,50,60,0.2) 100%);
  filter: blur(20px);
  animation: grfs-fog 40s linear infinite;
}
@keyframes grfs-sky { 0%,100% { opacity:0.8 } 50% { opacity:0.95 } }
@keyframes grfs-fence { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes grfs-kennel { 0%,100% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(-1deg) scale(1.02) } }
@keyframes grfs-swing { 0% { transform: rotate(-10deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(10deg) } }
@keyframes grfs-dangle { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-3px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes grfs-dog { 0%,100% { transform: scale(0.9) translateX(0) } 50% { transform: scale(1) translateX(5px) } }
@keyframes grfs-fog { 0% { opacity:0.6; transform: translateX(0) } 50% { opacity:1; transform: translateX(20px) } 100% { opacity:0.6; transform: translateX(0) } }

/* fear-of-aging */
.scn-fear-of-aging {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 70%);
}
.scn-fear-of-aging .bg { position:absolute; inset:0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); opacity:0.6; }
.scn-fear-of-aging .mirror { position:absolute; top:15%; left:50%; width:140px; height:180px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #8a7a5a 0%, #4a3a2a 80%); border-radius:50%; border:6px solid #6a5a4a; box-shadow: inset 0 0 40px #2a1a0a, 0 4px 20px rgba(0,0,0,0.6); animation: fa-mirror 6s ease-in-out infinite alternate; }
.scn-fear-of-aging .figure { position:absolute; bottom:25%; left:36%; width:80px; height:160px; background: linear-gradient(0deg, #1a1a1a 0%, #2a2a2a 50%, #3a3a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-fig 4s ease-in-out infinite; }
.scn-fear-of-aging .lamp { position:absolute; bottom:10%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #c0a070 0%, #8a6a3a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 -10px 30px #c0a070; animation: fa-lamp 3s ease-in-out infinite alternate; }
.scn-fear-of-aging .table { position:absolute; bottom:0; left:25%; right:25%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; transform: perspective(400px) rotateX(10deg); }
.scn-fear-of-aging .glow { position:absolute; top:10%; left:28%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(192,160,112,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: fa-glow 3s ease-in-out infinite alternate; }
.scn-fear-of-aging .drape-left { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:0 30% 30% 0; transform-origin: left center; animation: fa-drape 8s ease-in-out infinite alternate; }
.scn-fear-of-aging .drape-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:30% 0 0 30%; transform-origin: right center; animation: fa-drape 8s ease-in-out infinite alternate-reverse; }
@keyframes fa-mirror { 0% { box-shadow: inset 0 0 40px #2a1a0a, 0 4px 20px rgba(0,0,0,0.6); } 50% { box-shadow: inset 0 0 60px #1a0a00, 0 2px 10px rgba(0,0,0,0.8); } 100% { box-shadow: inset 0 0 30px #3a2a1a, 0 6px 25px rgba(0,0,0,0.5); } }
@keyframes fa-fig { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(6px) translateY(0) rotate(0); } 75% { transform: translateX(3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes fa-lamp { 0% { opacity:0.7; transform: translateY(0); } 50% { opacity:1; transform: translateY(-2px); } 100% { opacity:0.8; transform: translateY(0); } }
@keyframes fa-glow { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(0.9); } }
@keyframes fa-drape { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(0); } }

/* mirror-torture */
.scn-mirror-torture {
  background:
    linear-gradient(180deg, #0e0a14 0%, #1a142a 50%, #221a36 100%),
    radial-gradient(ellipse at 50% 100%, #2a1a3a 0%, transparent 70%);
}
.scn-mirror-torture .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a142a 0%, #0e0a14 100%); opacity:0.5; }
.scn-mirror-torture .mirror { position:absolute; top:10%; left:50%; width:130px; height:170px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #4a3a5a 0%, #1a1222 80%); border-radius:50%; border:4px solid #3a2a4a; box-shadow: inset 0 0 50px #0e0a14, 0 4px 15px rgba(0,0,0,0.7); animation: mt-mirror 8s ease-in-out infinite alternate; }
.scn-mirror-torture .figure { position:absolute; bottom:20%; left:34%; width:70px; height:150px; background: linear-gradient(0deg, #0a0a0a 0%, #1a1a1a 50%, #2a2a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mt-fig 5s ease-in-out infinite; }
.scn-mirror-torture .candle { position:absolute; bottom:10%; left:30%; width:14px; height:40px; background: linear-gradient(180deg, #e0c090 0%, #b08050 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 -8px 25px #e0c090; animation: mt-candle 3s ease-in-out infinite alternate; }
.scn-mirror-torture .candle-glow { position:absolute; bottom:10%; left:28%; width:40px; height:60px; background: radial-gradient(ellipse, rgba(224,192,144,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(12px); animation: mt-glow 3s ease-in-out infinite alternate; }
.scn-mirror-torture .shadow { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #0a0a0a 0%, transparent 100%); border-radius:50%; transform: translateY(20px); filter: blur(8px); animation: mt-shadow 6s ease-in-out infinite alternate; }
@keyframes mt-mirror { 0% { box-shadow: inset 0 0 50px #0e0a14, 0 4px 15px rgba(0,0,0,0.7); } 50% { box-shadow: inset 0 0 70px #08060a, 0 2px 10px rgba(0,0,0,0.9); } 100% { box-shadow: inset 0 0 40px #120e1a, 0 6px 20px rgba(0,0,0,0.6); } }
@keyframes mt-fig { 0% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(4px) translateY(-3px) rotate(2deg); } 60% { transform: translateX(8px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes mt-candle { 0% { opacity:0.6; transform: rotate(-3deg); } 50% { opacity:1; transform: rotate(3deg); } 100% { opacity:0.7; transform: rotate(-2deg); } }
@keyframes mt-glow { 0% { opacity:0.3; transform: scale(0.9); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes mt-shadow { 0% { opacity:0.4; transform: translateY(20px) scale(1); } 50% { opacity:0.7; transform: translateY(15px) scale(1.1); } 100% { opacity:0.5; transform: translateY(25px) scale(0.95); } }

/* despair-prayer */
.scn-despair-prayer {
  background:
    linear-gradient(180deg, #120a12 0%, #1a0e1a 50%, #221222 100%),
    radial-gradient(ellipse at 50% 100%, #2a152a 0%, transparent 70%);
}
.scn-despair-prayer .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e1a 0%, #120a12 100%); opacity:0.5; }
.scn-despair-prayer .cross { position:absolute; top:10%; left:50%; width:80px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a3a 0%, #1a0e1a 100%); border-radius:4px; box-shadow: 0 0 20px rgba(255,255,255,0.1); animation: dp-cross 12s ease-in-out infinite alternate; }
.scn-despair-prayer .figure { position:absolute; bottom:10%; left:40%; width:60px; height:120px; background: linear-gradient(0deg, #0a0a0a 0%, #1a1a1a 50%, #2a2a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-fig 4s ease-in-out infinite; }
.scn-despair-prayer .hands { position:absolute; bottom:38%; left:44%; width:20px; height:30px; background: #1a1a1a; border-radius:40% 40% 20% 20%; transform: rotate(10deg); animation: dp-hands 2s ease-in-out infinite alternate; }
.scn-despair-prayer .candle { position:absolute; bottom:5%; left:45%; width:10px; height:30px; background: linear-gradient(180deg, #d0a070 0%, #a07040 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 -6px 20px #d0a070; animation: dp-candle 3s ease-in-out infinite alternate; }
.scn-despair-prayer .glow { position:absolute; bottom:5%; left:42%; width:40px; height:50px; background: radial-gradient(ellipse, rgba(208,160,112,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: dp-glow 3s ease-in-out infinite alternate; }
@keyframes dp-cross { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes dp-fig { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(4px) translateY(0) rotate(0); } 75% { transform: translateX(2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes dp-hands { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes dp-candle { 0% { opacity:0.5; transform: rotate(-2deg); } 50% { opacity:1; transform: rotate(2deg); } 100% { opacity:0.6; transform: rotate(-1deg); } }
@keyframes dp-glow { 0% { opacity:0.2; transform: scale(0.8); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(0.9); } }

/* son-falls-ill */
.scn-son-falls-ill {
  background:
    linear-gradient(180deg, #0a0e12 0%, #121a22 50%, #1a2230 100%),
    radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%);
}
.scn-son-falls-ill .bg { position:absolute; inset:0; background: linear-gradient(180deg, #121a22 0%, #0a0e12 100%); opacity:0.5; }
.scn-son-falls-ill .bed { position:absolute; bottom:0; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius:20% 20% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,0.5); animation: sf-bed 9s ease-in-out infinite alternate; }
.scn-son-falls-ill .boy { position:absolute; bottom:10%; left:35%; width:50px; height:70px; background: #1a1a1a; border-radius:40% 40% 30% 30%; transform-origin: bottom center; animation: sf-boy 4s ease-in-out infinite; }
.scn-son-falls-ill .priest { position:absolute; bottom:10%; left:60%; width:60px; height:130px; background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-priest 6s ease-in-out infinite; }
.scn-son-falls-ill .lamp { position:absolute; bottom:30%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #a0a0c0 0%, #606080 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 -8px 20px #a0a0c0; animation: sf-lamp 3s ease-in-out infinite alternate; }
.scn-son-falls-ill .glow { position:absolute; bottom:30%; left:17%; width:40px; height:50px; background: radial-gradient(ellipse, rgba(160,160,192,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: sf-glow 3s ease-in-out infinite alternate; }
.scn-son-falls-ill .window { position:absolute; top:10%; right:10%; width:60px; height:80px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border:4px solid #1a222a; border-radius:4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.1); animation: sf-window 12s ease-in-out infinite alternate; }
@keyframes sf-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sf-boy { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sf-priest { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sf-lamp { 0% { opacity:0.6; transform: rotate(-2deg); } 50% { opacity:1; transform: rotate(2deg); } 100% { opacity:0.7; transform: rotate(-1deg); } }
@keyframes sf-glow { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.9); } }
@keyframes sf-window { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:0.7; transform: scale(0.98); } }

/* Scene: procession-to-pyre */
.scn-procession-to-pyre {
  background: linear-gradient(180deg, #0a0a14 0%, #12101a 40%, #1a1625 70%, #0f0d18 100%),
              radial-gradient(ellipse at 50% 120%, #1a2030 0%, transparent 60%);
}
.scn-procession-to-pyre .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0d0d1a 0%, #101026 50%, #0a0a14 100%);
  animation: ptp-sky 20s ease-in-out infinite alternate;
}
.scn-procession-to-pyre .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0e1422 0%, #0a0e1a 60%, #0b0f1c 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  animation: ptp-sea 12s ease-in-out infinite alternate;
}
.scn-procession-to-pyre .beach {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 32%;
  background: linear-gradient(180deg, #1a1818 0%, #0f0d0d 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-procession-to-pyre .pyre {
  position: absolute; bottom: 28%; left: 50%; width: 70px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4% 4% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.7);
  animation: ptp-pyre 8s ease-in-out infinite;
}
.scn-procession-to-pyre .bearer {
  position: absolute; bottom: 26%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #0c0a0a 0%, #050303 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ptp-bearer 4s ease-in-out infinite;
}
.scn-procession-to-pyre .bearer-a { left: 44%; animation-delay: 0s; }
.scn-procession-to-pyre .bearer-b { left: 47%; animation-delay: 0.1s; }
.scn-procession-to-pyre .bearer-c { left: 53%; animation-delay: 0.2s; }
.scn-procession-to-pyre .bearer-d { left: 56%; animation-delay: 0.3s; }
.scn-procession-to-pyre .burden {
  position: absolute; bottom: 36%; left: 50%; width: 40px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ptp-burden 4s ease-in-out infinite;
}
@keyframes ptp-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes ptp-sea { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes ptp-pyre { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.98) translateY(-2px) } }
@keyframes ptp-bearer { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(9px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(12px) translateY(0) rotate(0deg) } }
@keyframes ptp-burden { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }

/* Scene: orientation-to-homeland */
.scn-orientation-to-homeland {
  background: linear-gradient(180deg, #0b1020 0%, #081018 50%, #050a12 100%),
              radial-gradient(ellipse at 20% 30%, #1a2a40 0%, transparent 60%);
}
.scn-orientation-to-homeland .sky-stars {
  position: absolute; inset: 0 0 60% 0;
  background: radial-gradient(circle at 20% 30%, #ffffff 0%, transparent 30%),
              radial-gradient(circle at 60% 20%, #b0c0ff 0%, transparent 20%),
              radial-gradient(circle at 80% 50%, #d0e0ff 0%, transparent 25%),
              linear-gradient(180deg, #101428 0%, #0a0e1a 100%);
  background-size: 100% 100%, 600px 600px, 400px 400px, 100% 100%;
  animation: oth-stars 60s linear infinite;
}
.scn-orientation-to-homeland .moon {
  position: absolute; top: 12%; left: 72%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e8ff 0%, #a0b0d0 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(160,176,208,0.3);
  animation: oth-moon 20s ease-in-out infinite alternate;
}
.scn-orientation-to-homeland .ocean {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a1420 0%, #060c14 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  animation: oth-ocean 15s ease-in-out infinite alternate;
}
.scn-orientation-to-homeland .boat {
  position: absolute; bottom: 35%; left: 60%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #1a1818 0%, #0e0c0c 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: translateX(-50%);
  animation: oth-boat 12s ease-in-out infinite;
}
.scn-orientation-to-homeland .rajah-body {
  position: absolute; bottom: 32%; left: 60%; width: 50px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a121a 0%, #0a080a 100%);
  border-radius: 10% 10% 30% 30%;
  animation: oth-body 8s ease-in-out infinite;
}
.scn-orientation-to-homeland .attendant {
  position: absolute; bottom: 30%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #100e0e 0%, #060404 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oth-attendant 5s ease-in-out infinite;
}
.scn-orientation-to-homeland .attendant-a { left: 55%; animation-delay: 0s; }
.scn-orientation-to-homeland .attendant-b { left: 58%; animation-delay: 0.2s; }
.scn-orientation-to-homeland .attendant-c { left: 65%; animation-delay: 0.4s; }
.scn-orientation-to-homeland .pine-slabs {
  position: absolute; bottom: 32%; left: 60%; width: 55px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 30%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: oth-slabs 10s ease-in-out infinite;
}
@keyframes oth-stars { 0% { background-position: 0 0, 0 0, 0 0, 0 0 } 100% { background-position: 0 0, 200px 100px, -100px 50px, 0 0 } }
@keyframes oth-moon { 0% { opacity: 0.8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.85; transform: scale(0.98) } }
@keyframes oth-ocean { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } 100% { transform: scaleY(1) } }
@keyframes oth-boat { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg) } }
@keyframes oth-body { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.95) translateY(-2px) } }
@keyframes oth-attendant { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(16px) rotate(0deg) } }
@keyframes oth-slabs { 0%,100% { opacity: 0.6 } 50% { opacity: 0.8 } }

/* Scene: lighting-the-pyre */
.scn-lighting-the-pyre {
  background: linear-gradient(180deg, #0a0800 0%, #1a1000 40%, #2a1a00 70%, #0a0800 100%),
              radial-gradient(ellipse at 50% 80%, #4a2a00 0%, transparent 60%);
}
.scn-lighting-the-pyre .dark-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #050300 0%, #0a0700 100%);
  opacity: 0.9;
  animation: ltp-bg 10s ease-in-out infinite alternate;
}
.scn-lighting-the-pyre .brazier {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
}
.scn-lighting-the-pyre .flame {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ffd060 0%, #c06020 70%, #501000 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px #c06020, 0 0 60px 20px rgba(192,96,32,0.3);
  animation: ltp-flame 2s ease-in-out infinite alternate;
}
.scn-lighting-the-pyre .oil-pool {
  position: absolute; bottom: 12%; left: 50%; width: 30px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #4a2a0a 0%, #2a1a00 100%);
  border-radius: 50%;
  animation: ltp-oil 6s ease-in-out infinite;
}
.scn-lighting-the-pyre .figure {
  position: absolute; bottom: 18%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltp-figure 4s ease-in-out infinite;
}
.scn-lighting-the-pyre .figure-main { left: 45%; }
.scn-lighting-the-pyre .figure-back { left: 55%; animation-delay: 0.3s; }
.scn-lighting-the-pyre .spark {
  position: absolute; width: 4px; height: 4px;
  background: #ffd060;
  border-radius: 50%;
  box-shadow: 0 0 6px #ffd060;
  animation: ltp-spark 2.5s linear infinite;
}
.scn-lighting-the-pyre .spark-a { top: 30%; left: 48%; animation-delay: 0s; }
.scn-lighting-the-pyre .spark-b { top: 35%; left: 52%; animation-delay: 1.2s; }
.scn-lighting-the-pyre .smoke {
  position: absolute; bottom: 45%; left: 50%; width: 50px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(60,40,20,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ltp-smoke 8s ease-in-out infinite alternate;
}
@keyframes ltp-bg { 0% { opacity: 0.85 } 50% { opacity: 0.75 } 100% { opacity: 0.9 } }
@keyframes ltp-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg) } 50% { transform: translateX(-50%) scaleY(1.2) rotate(1deg) } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg) } }
@keyframes ltp-oil { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(0.8) translateY(-2px) } }
@keyframes ltp-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(24px) rotate(1deg) } 100% { transform: translateX(32px) rotate(0deg) } }
@keyframes ltp-spark { 0% { transform: translateY(0) scale(0.5); opacity: 1 } 50% { transform: translateY(-100px) scale(1); opacity: 0.8 } 100% { transform: translateY(-200px) scale(0.2); opacity: 0 } }
@keyframes ltp-smoke { 0% { transform: translateX(-50%) scale(0.8); opacity: 0.3 } 50% { transform: translateX(-50%) scale(1.2) translateY(-10px); opacity: 0.5 } 100% { transform: translateX(-50%) scale(1) translateY(0); opacity: 0.4 } }

/* Scene: buddha-shadow */
.scn-buddha-shadow {
  background: linear-gradient(180deg, #0a0500 0%, #1a0a00 50%, #2a1000 100%),
              radial-gradient(ellipse at 60% 50%, #4a2000 0%, transparent 70%);
}
.scn-buddha-shadow .wall {
  position: absolute; top: 0; left: 10%; right: 10%; bottom: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1000 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 50px rgba(0,0,0,0.6);
}
.scn-buddha-shadow .torch {
  position: absolute; bottom: 25%; left: 70%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(10deg);
}
.scn-buddha-shadow .torchlight {
  position: absolute; bottom: 30%; left: 65%; width: 100px; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, #ff8020 0%, #a04010 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(20px);
  animation: bds-torchlight 3s ease-in-out infinite alternate;
}
.scn-buddha-shadow .man-silhouette {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #0a0500 0%, #030200 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: bds-man 6s ease-in-out infinite;
}
.scn-buddha-shadow .shadow-buddha {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 180px;
  background: radial-gradient(ellipse at 50% 30%, #1a0a00 0%, #0a0500 70%, transparent 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  filter: blur(3px);
  opacity: 0.6;
  animation: bds-shadow 8s ease-in-out infinite alternate;
}
.scn-buddha-shadow .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-buddha-shadow .sparkle {
  position: absolute; width: 3px; height: 3px;
  background: #ffd060;
  border-radius: 50%;
  box-shadow: 0 0 6px #ff8040;
  animation: bds-sparkle 4s ease-in-out infinite;
}
.scn-buddha-shadow .sparkle-a { top: 40%; left: 30%; animation-delay: 0s; }
.scn-buddha-shadow .sparkle-b { top: 50%; left: 60%; animation-delay: 2s; }
@keyframes bds-torchlight { 0% { opacity: 0.7; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(1) } }
@keyframes bds-man { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-4px) } }
@keyframes bds-shadow { 0% { transform: scale(1) rotate(0deg); opacity: 0.5 } 50% { transform: scale(1.05) rotate(2deg); opacity: 0.7 } 100% { transform: scale(0.98) rotate(-1deg); opacity: 0.55 } }
@keyframes bds-sparkle { 0% { transform: scale(0.5); opacity: 0 } 50% { transform: scale(1.5); opacity: 0.8 } 100% { transform: scale(0.5); opacity: 0 } }

/* scene 1: sinister-lake-landscape */
.scn-sinister-lake-landscape {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1e1e2e 60%, #0e0e1a 100%),
              radial-gradient(ellipse at 50% 100%, #0a0a14 0%, transparent 70%);
}
.scn-sinister-lake-landscape .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 60%);
  animation: sll-sky 14s ease-in-out infinite alternate;
}
.scn-sinister-lake-landscape .mountains {
  position: absolute; bottom: 45%; left: -10%; right: -10%; height: 25%;
  background: linear-gradient(180deg, #2c2c3c 0%, #1c1c2c 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 10px rgba(0,0,0,.6);
  animation: sll-mountains 20s ease-in-out infinite alternate;
}
.scn-sinister-lake-landscape .lake {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  animation: sll-lake 8s ease-in-out infinite alternate;
}
.scn-sinister-lake-landscape .reeds {
  position: absolute; bottom: 40%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #3a4a2e 0%, #1a2a14 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 4px rgba(0,20,0,.5);
  animation: sll-reeds 4s ease-in-out infinite;
}
.scn-sinister-lake-landscape .reeds.left { left: 20%; transform: rotate(-5deg); }
.scn-sinister-lake-landscape .reeds.right { right: 25%; transform: rotate(7deg); animation-delay: 1.5s; height: 50px; }
.scn-sinister-lake-landscape .dead-tree {
  position: absolute; bottom: 38%; left: 55%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: sll-tree 6s ease-in-out infinite;
}
.scn-sinister-lake-landscape .mist {
  position: absolute; inset: 30% 10% 20% 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,200,220,.15) 0%, transparent 60%);
  filter: blur(12px);
  animation: sll-mist 12s ease-in-out infinite alternate;
}
@keyframes sll-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes sll-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes sll-lake { 0% { opacity:.8; } 50% { opacity:.95; } 100% { opacity:.8; } }
@keyframes sll-reeds { 0%,100% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } }
@keyframes sll-tree { 0%,100% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(-2deg); } }
@keyframes sll-mist { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.5; transform: scale(1.05); } 100% { opacity:.3; transform: scale(1); } }

/* scene 2: uncle-josephs-hut */
.scn-uncle-josephs-hut {
  background: linear-gradient(180deg, #1e1a14 0%, #2a221a 40%, #1e1a14 100%),
              radial-gradient(ellipse at 30% 60%, #4a3828 0%, transparent 60%);
}
.scn-uncle-josephs-hut .walls {
  position: absolute; inset: 0 5% 15% 5%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7);
  animation: ujh-walls 10s ease-in-out infinite alternate;
}
.scn-uncle-josephs-hut .floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-uncle-josephs-hut .window-view {
  position: absolute; top: 25%; left: 55%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #1a2a3e 0%, #0a1a2a 100%);
  border-radius: 8%;
  border: 6px solid #3a2a1a;
  box-shadow: inset 0 0 8px rgba(0,0,0,.6);
  animation: ujh-window 8s ease-in-out infinite alternate;
}
.scn-uncle-josephs-hut .table {
  position: absolute; bottom: 18%; left: 30%; width: 35%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 5%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
}
.scn-uncle-josephs-hut .lamp-glow {
  position: absolute; top: 30%; left: 12%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.3);
  animation: ujh-lamp 4s ease-in-out infinite alternate;
}
.scn-uncle-josephs-hut .old-man {
  position: absolute; bottom: 16%; left: 16%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ujh-figure 7s ease-in-out infinite;
}
.scn-uncle-josephs-hut .nets {
  position: absolute; bottom: 25%; right: 10%; width: 8%; height: 25%;
  background: repeating-linear-gradient(45deg, rgba(80,60,40,.6) 0px, rgba(80,60,40,.6) 2px, transparent 2px, transparent 6px);
  border-radius: 20%;
  animation: ujh-nets 12s linear infinite;
}
@keyframes ujh-walls { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ujh-window { 0% { background: linear-gradient(180deg, #1a2a3e 0%, #0a1a2a 100%); } 50% { background: linear-gradient(180deg, #2a3a4e 0%, #0a1a2a 100%); } 100% { background: linear-gradient(180deg, #1a2a3e 0%, #0a1a2a 100%); } }
@keyframes ujh-lamp { 0% { opacity:.8; transform: scale(.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.9; transform: scale(1); } }
@keyframes ujh-figure { 0%,100% { transform: translateX(0) translateY(0) scale(1); } 25% { transform: translateX(4px) translateY(-2px) scale(1.01); } 50% { transform: translateX(8px) translateY(0) scale(1); } 75% { transform: translateX(4px) translateY(-1px) scale(1); } }
@keyframes ujh-nets { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }

/* scene 3: boat-ride-lake */
.scn-boat-ride-lake {
  background: linear-gradient(180deg, #8ab4d0 0%, #b8d4e4 30%, #e0ece8 60%, #c8dcd0 100%),
              radial-gradient(ellipse at 50% 0%, #e8f4f0 0%, transparent 70%);
}
.scn-boat-ride-lake .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d4e8 0%, #d0e8ec 60%);
  animation: brl-sky 12s ease-in-out infinite alternate;
}
.scn-boat-ride-lake .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #60a6b0 0%, #3a7a84 100%);
  box-shadow: inset 0 6px 12px rgba(0,40,50,.3);
  animation: brl-water 8s ease-in-out infinite alternate;
}
.scn-boat-ride-lake .hull {
  position: absolute; bottom: 38%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: brl-hull 6s ease-in-out infinite;
}
.scn-boat-ride-lake .oars {
  position: absolute; bottom: 42%; left: 42%; width: 30%; height: 2px;
  background: #4a3a2a;
  transform-origin: 20% 50%;
  animation: brl-oar 2s ease-in-out infinite alternate;
}
.scn-boat-ride-lake .rower {
  position: absolute; bottom: 40%; left: 46%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: brl-rower 3s ease-in-out infinite;
}
.scn-boat-ride-lake .ripple {
  position: absolute; bottom: 37%; left: 30%; width: 40%; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent);
  border-radius: 50%;
  animation: brl-ripple 4s ease-in-out infinite;
}
@keyframes brl-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes brl-water { 0% { opacity:.8; } 50% { opacity:.95; } 100% { opacity:.85; } }
@keyframes brl-hull { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0deg); } }
@keyframes brl-oar { 0% { transform: translate(0,0) rotate(-30deg); } 50% { transform: translate(2px,-1px) rotate(0deg); } 100% { transform: translate(0,0) rotate(30deg); } }
@keyframes brl-rower { 0%,100% { transform: translateX(0) scale(.95); } 50% { transform: translateX(6px) scale(1); } }
@keyframes brl-ripple { 0% { opacity:0; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(1.1); } 100% { opacity:0; transform: scaleX(1); } }

/* scene 4: ruins-red-cross */
.scn-ruins-red-cross {
  background: linear-gradient(180deg, #2a1a2e 0%, #4a2a3e 30%, #3a1a2e 60%, #1a0e1a 100%),
              radial-gradient(ellipse at 50% 100%, #2a0e1a 0%, transparent 70%);
}
.scn-ruins-red-cross .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a3a4e 0%, #3a1a2e 60%);
  animation: rrc-sky 15s ease-in-out infinite alternate;
}
.scn-ruins-red-cross .hills {
  position: absolute; bottom: 40%; left: -5%; right: -5%; height: 20%;
  background: linear-gradient(180deg, #3a2a3e 0%, #2a1a2e 100%);
  border-radius: 50% 30% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,.5);
  animation: rrc-hills 20s ease-in-out infinite alternate;
}
.scn-ruins-red-cross .ruin-wall {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 85% 80%, 70% 100%, 30% 100%, 15% 80%);
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: rrc-ruin 12s ease-in-out infinite alternate;
}
.scn-ruins-red-cross .red-cross {
  position: absolute; bottom: 35%; left: 48%; width: 12%; height: 16%;
  background: radial-gradient(ellipse, #a0461a 0%, #702243 100%);
  clip-path: polygon(30% 0%, 70% 0%, 70% 30%, 100% 30%, 100% 70%, 70% 70%, 70% 100%, 30% 100%, 30% 70%, 0% 70%, 0% 30%, 30% 30%);
  border-radius: 4px;
  box-shadow: 0 0 12px 4px rgba(160,70,26,.4);
  animation: rrc-cross 6s ease-in-out infinite;
}
.scn-ruins-red-cross .shadow-figure {
  position: absolute; bottom: 18%; left: 22%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #1a0e0e 0%, #0a0606 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rrc-figure 5s ease-in-out infinite;
}
.scn-ruins-red-cross .mist-dark {
  position: absolute; inset: 20% 10% 10% 10%;
  background: radial-gradient(ellipse at 30% 60%, rgba(80,40,60,.2) 0%, transparent 50%);
  filter: blur(15px);
  animation: rrc-mist 10s ease-in-out infinite alternate;
}
@keyframes rrc-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.75; } }
@keyframes rrc-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rrc-ruin { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes rrc-cross { 0%,100% { opacity:.7; transform: scale(1); } 25% { opacity:.9; transform: scale(1.05); } 50% { opacity:.8; transform: scale(1.02); } 75% { opacity:.9; transform: scale(1.03); } }
@keyframes rrc-figure { 0%,100% { transform: translateX(0) translateY(0); } 25% { transform: translateX(8px) translateY(-2px); } 50% { transform: translateX(16px) translateY(0); } 75% { transform: translateX(8px) translateY(-1px); } }
@keyframes rrc-mist { 0% { opacity:.2; transform: scale(1); } 50% { opacity:.4; transform: scale(1.08); } 100% { opacity:.2; transform: scale(1); } }

/* no-fear-of-death */
.scn-no-fear-of-death {
  background: 
    linear-gradient(180deg, #f2d8b0 0%, #e0b080 40%, #c89060 70%, #8a5a3a 100%),
    radial-gradient(ellipse at 50% 30%, #f5e0c0 0%, transparent 60%);
}
.scn-no-fear-of-death .room-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #c8885a 0%, #e0b080 50%, #c8885a 100%);
  box-shadow: inset 0 40px 80px rgba(0,0,0,0.2);
}
.scn-no-fear-of-death .warm-glow {
  position: absolute; inset: 20% 30% 45% 30%;
  background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, transparent 70%);
  filter: blur(30px);
  animation: nfd-glow 4s ease-in-out infinite alternate;
}
.scn-no-fear-of-death .fireplace {
  position: absolute; bottom: 30%; left: 15%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2518 100%);
  border-radius: 12px 12px 4px 4px;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5), 0 8px 16px rgba(0,0,0,0.3);
}
.scn-no-fear-of-death .fire-flame {
  position: absolute; bottom: 32%; left: 17%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #cc6030 40%, #6a2010 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(4px);
  animation: nfd-flame 1.5s ease-in-out infinite alternate;
}
.scn-no-fear-of-death .table {
  position: absolute; bottom: 26%; left: 40%; width: 140px; height: 20px;
  background: linear-gradient(180deg, #8a6040 0%, #5a3a20 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: nfd-table 10s ease-in-out infinite;
}
.scn-no-fear-of-death .chair-left {
  position: absolute; bottom: 24%; left: 36%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #7a5030 0%, #4a2a18 100%);
  border-radius: 6px 6px 3px 3px;
  transform-origin: bottom center;
  animation: nfd-chair 8s ease-in-out infinite;
}
.scn-no-fear-of-death .chair-right {
  position: absolute; bottom: 24%; left: 52%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #7a5030 0%, #4a2a18 100%);
  border-radius: 6px 6px 3px 3px;
  transform-origin: bottom center;
  animation: nfd-chair 8s ease-in-out infinite reverse;
}
.scn-no-fear-of-death .figure-seated {
  position: absolute; bottom: 28%; left: 42%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2810 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nfd-figure 5s ease-in-out infinite;
}
@keyframes nfd-glow { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.8; transform:scale(0.95); } }
@keyframes nfd-flame { 0% { transform:scaleY(1) scaleX(1); opacity:0.9; } 50% { transform:scaleY(1.2) scaleX(0.9); opacity:1; } 100% { transform:scaleY(0.8) scaleX(1.1); opacity:0.8; } }
@keyframes nfd-table { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes nfd-chair { 0% { transform:rotate(0deg); } 25% { transform:rotate(2deg); } 75% { transform:rotate(-2deg); } 100% { transform:rotate(0deg); } }
@keyframes nfd-figure { 0% { transform:rotate(-2deg) translateY(0); } 25% { transform:rotate(1deg) translateY(-3px); } 75% { transform:rotate(-1deg) translateY(1px); } 100% { transform:rotate(2deg) translateY(0); } }

/* benevolent-society */
.scn-benevolent-society {
  background:
    linear-gradient(180deg, #e8d0b0 0%, #c8a080 50%, #8a6540 100%),
    radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 70%);
}
.scn-benevolent-society .meeting-hall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #b88868 0%, #d8b898 50%, #b88868 100%);
  box-shadow: inset 0 30px 60px rgba(0,0,0,0.1);
}
.scn-benevolent-society .podium {
  position: absolute; bottom: 35%; left: 35%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2818 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: bns-podium 12s ease-in-out infinite;
}
.scn-benevolent-society .speaker {
  position: absolute; bottom: 38%; left: 36%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bns-speaker 4s ease-in-out infinite alternate;
}
.scn-benevolent-society .audience-silhouette-1 {
  position: absolute; bottom: 28%; left: 15%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: bns-audience 10s ease-in-out infinite;
}
.scn-benevolent-society .audience-silhouette-2 {
  position: absolute; bottom: 28%; left: 22%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(1);
  animation: bns-audience 14s ease-in-out infinite reverse;
}
.scn-benevolent-society .audience-silhouette-3 {
  position: absolute; bottom: 28%; left: 60%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1208 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(1.1);
  animation: bns-audience 18s ease-in-out infinite;
}
.scn-benevolent-society .lamp-glow {
  position: absolute; top: 10%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe8b0 0%, #d8a050 40%, transparent 70%);
  filter: blur(8px);
  animation: bns-lamp 3s ease-in-out infinite alternate;
}
@keyframes bns-podium { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes bns-speaker { 0% { transform:rotate(-3deg) translateY(0); } 25% { transform:rotate(0deg) translateY(-2px); } 75% { transform:rotate(2deg) translateY(1px); } 100% { transform:rotate(0deg) translateY(0); } }
@keyframes bns-audience { 0% { opacity:0.8; transform:scale(1) translateY(0); } 50% { opacity:1; transform:scale(1.05) translateY(-2px); } 100% { opacity:0.7; transform:scale(0.95) translateY(1px); } }
@keyframes bns-lamp { 0% { opacity:0.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.8; transform:scale(0.9); } }

/* boulanger-and-founders */
.scn-boulanger-and-founders {
  background:
    linear-gradient(180deg, #d8c0a0 0%, #a88868 40%, #705a3a 100%),
    radial-gradient(ellipse at 50% 10%, #f0e4c0 0%, transparent 60%);
}
.scn-boulanger-and-founders .temple-interior {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #b09070 0%, #d0b898 50%, #b09070 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.15);
}
.scn-boulanger-and-founders .column-left {
  position: absolute; bottom: 10%; left: 10%; width: 20px; height: 280px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 4px;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: bf-column 15s ease-in-out infinite;
}
.scn-boulanger-and-founders .column-right {
  position: absolute; bottom: 10%; right: 10%; width: 20px; height: 280px;
  background: linear-gradient(180deg, #c8b090 0%, #a08060 100%);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.2);
  animation: bf-column 15s ease-in-out infinite reverse;
}
.scn-boulanger-and-founders .altar {
  position: absolute; bottom: 18%; left: 35%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
  animation: bf-altar 20s ease-in-out infinite;
}
.scn-boulanger-and-founders .statue {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #d0c0a8 0%, #a88868 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform-origin: bottom center;
  animation: bf-statue 8s ease-in-out infinite alternate;
}
.scn-boulanger-and-founders .offering-flame {
  position: absolute; bottom: 20%; left: 44%; width: 12px; height: 20px;
  background: radial-gradient(ellipse at 50% 80%, #ffa060 0%, #cc4020 60%);
  filter: blur(3px);
  animation: bf-flame 2s ease-in-out infinite alternate;
}
.scn-boulanger-and-founders .arch-way {
  position: absolute; top: 0; left: 25%; width: 200px; height: 120px;
  background: transparent;
  border: 6px solid #8a6a48;
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
  animation: bf-arch 25s ease-in-out infinite;
}
@keyframes bf-column { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-5px) scaleY(1.02); } }
@keyframes bf-altar { 0% { transform:scale(1); } 50% { transform:scale(1.02); } 100% { transform:scale(0.98); } }
@keyframes bf-statue { 0% { transform:rotate(-2deg) translateY(0); } 25% { transform:rotate(0deg) translateY(-3px); } 75% { transform:rotate(1deg) translateY(1px); } 100% { transform:rotate(-1deg) translateY(0); } }
@keyframes bf-flame { 0% { transform:scaleY(1); opacity:0.8; } 50% { transform:scaleY(1.3); opacity:1; } 100% { transform:scaleY(0.7); opacity:0.6; } }
@keyframes bf-arch { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* inaugural-festivities */
.scn-inaugural-festivities {
  background:
    linear-gradient(180deg, #e0c8a8 0%, #b89878 40%, #886a4a 100%),
    radial-gradient(ellipse at 50% 50%, #f8e8c8 0%, transparent 70%);
}
.scn-inaugural-festivities .stage-backdrop {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b07050 0%, #885030 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-inaugural-festivities .curtain-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 60%;
  background: linear-gradient(90deg, #a04030 0%, #c86048 50%, #a04030 100%);
  border-radius: 0 0 40% 0;
  box-shadow: 6px 0 12px rgba(0,0,0,0.3);
  transform-origin: left top;
  animation: inf-curtain 8s ease-in-out infinite alternate;
}
.scn-inaugural-festivities .curtain-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 60%;
  background: linear-gradient(90deg, #a04030 0%, #c86048 50%, #a04030 100%);
  border-radius: 0 0 0 40%;
  box-shadow: -6px 0 12px rgba(0,0,0,0.3);
  transform-origin: right top;
  animation: inf-curtain 8s ease-in-out infinite alternate-reverse;
}
.scn-inaugural-festivities .spotlight-beam {
  position: absolute; top: 5%; left: 35%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  filter: blur(10px);
  animation: inf-spotlight 5s ease-in-out infinite alternate;
}
.scn-inaugural-festivities .performer {
  position: absolute; bottom: 40%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1208 0%, #080402 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: inf-performer 3s ease-in-out infinite;
}
.scn-inaugural-festivities .orchestra-pit {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 30px;
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%);
  border-radius: 4px 4px 20px 20px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-inaugural-festivities .audience-row-1 {
  position: absolute; bottom: 20%; left: 5%; width: 90%; height: 30px;
  background: repeating-linear-gradient(90deg, #2a1a10 0px, #2a1a10 15px, #4a3a2a 15px, #4a3a2a 20px);
  border-radius: 4px;
  animation: inf-audience 20s ease-in-out infinite;
}
.scn-inaugural-festivities .audience-row-2 {
  position: absolute; bottom: 12%; left: 5%; width: 90%; height: 30px;
  background: repeating-linear-gradient(90deg, #1a1208 0px, #1a1208 18px, #3a2a1a 18px, #3a2a1a 24px);
  border-radius: 4px;
  animation: inf-audience 22s ease-in-out infinite reverse;
}
.scn-inaugural-festivities .chandelier {
  position: absolute; top: 2%; left: 35%; width: 120px; height: 40px;
  background: radial-gradient(ellipse at 50% 40%, #ffe8b0 0%, #c08050 60%, transparent 100%);
  filter: blur(6px);
  animation: inf-chandelier 6s ease-in-out infinite alternate;
}
@keyframes inf-curtain { 0% { transform:rotate(0deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-2deg); } }
@keyframes inf-spotlight { 0% { transform:skewX(-5deg) translateX(-10px); opacity:0.7; } 50% { transform:skewX(0deg) translateX(0); opacity:1; } 100% { transform:skewX(5deg) translateX(10px); opacity:0.6; } }
@keyframes inf-performer { 0% { transform:rotate(-4deg) translateY(0); } 25% { transform:rotate(0deg) translateY(-5px); } 75% { transform:rotate(3deg) translateY(2px); } 100% { transform:rotate(-2deg) translateY(0); } }
@keyframes inf-audience { 0% { transform:scale(1) translateY(0); } 50% { transform:scale(1.02) translateY(-1px); } 100% { transform:scale(0.98) translateY(1px); } }
@keyframes inf-chandelier { 0% { transform:rotate(-2deg); opacity:0.8; } 50% { transform:rotate(0deg); opacity:1; } 100% { transform:rotate(2deg); opacity:0.7; } }

.scn-dark-stairway {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 20%, #0a0a14 80%, #000 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a3e 0%, transparent 70%);
}
.scn-dark-stairway .wall-bg {
  position:absolute; inset:0; background: linear-gradient(90deg, #0a0a14 0%, #10101e 50%, #0a0a14 100%);
  animation: ds-pulse 8s ease-in-out infinite alternate;
}
.scn-dark-stairway .stair-steps {
  position:absolute; bottom:0; left:10%; right:10%; height:70%;
  background: repeating-linear-gradient(0deg, #2a1a1a 0px, #2a1a1a 4px, #1a0a0a 4px, #1a0a0a 8px);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
  animation: ds-steps 6s ease-in-out infinite;
}
.scn-dark-stairway .railing {
  position:absolute; bottom:20%; left:12%; width:4px; height:60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,0.6);
  animation: ds-railing 4s ease-in-out infinite alternate;
}
.scn-dark-stairway .figure {
  position:absolute; bottom:30%; left:40%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-climb 5s ease-in-out infinite;
}
.scn-dark-stairway .match-glow {
  position:absolute; bottom:45%; left:48%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(255,160,40,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: ds-flicker 0.8s ease-in-out infinite alternate;
}
.scn-dark-stairway .match-flame {
  position:absolute; bottom:47%; left:52%; width:4px; height:10px;
  background: linear-gradient(180deg, #ffd060 0%, #ff8020 50%, #cc4000 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 12px 6px rgba(255,160,40,0.8);
  animation: ds-flame 0.4s ease-in-out infinite alternate;
}
.scn-dark-stairway .door-top {
  position:absolute; top:5%; left:35%; width:30%; height:15%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.8);
  animation: ds-door 12s ease-in-out infinite;
}
@keyframes ds-pulse { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ds-steps { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ds-railing { 0% { transform: translateX(0) } 50% { transform: translateX(-1px) } 100% { transform: translateX(1px) } }
@keyframes ds-climb { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ds-flicker { 0% { opacity:0.7; transform: scale(0.95) } 100% { opacity:1; transform: scale(1.05) } }
@keyframes ds-flame { 0% { transform: scaleY(1) translateX(0) } 50% { transform: scaleY(1.2) translateX(1px) } 100% { transform: scaleY(0.9) translateX(-1px) } }
@keyframes ds-door { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

.scn-candle-lit-reentry {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 70%);
}
.scn-candle-lit-reentry .room-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  animation: clr-breathe 7s ease-in-out infinite alternate;
}
.scn-candle-lit-reentry .doorframe {
  position:absolute; top:10%; left:30%; width:40%; height:80%;
  border: 6px solid #2a1a1a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  background: transparent;
  animation: clr-frame 9s ease-in-out infinite;
}
.scn-candle-lit-reentry .door-open {
  position:absolute; top:12%; left:32%; width:36%; height:76%;
  background: linear-gradient(180deg, #0a0505 0%, #1a0a0a 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: clr-open 6s ease-in-out infinite alternate;
}
.scn-candle-lit-reentry .candle-glow {
  position:absolute; bottom:35%; left:48%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(255,180,80,0.5) 0%, rgba(255,120,20,0.2) 40%, transparent 70%);
  border-radius: 50%;
  animation: clr-glow 3s ease-in-out infinite alternate;
}
.scn-candle-lit-reentry .figure-silhouette {
  position:absolute; bottom:20%; left:45%; width:22px; height:55px;
  background: #0a0505;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,0.8);
  animation: clr-figure 4s ease-in-out infinite alternate;
}
.scn-candle-lit-reentry .floor-shadow {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, transparent 0%, #0a0505 100%);
  animation: clr-shadow 8s ease-in-out infinite;
}
@keyframes clr-breathe { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes clr-frame { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8) } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.9) } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8) } }
@keyframes clr-open { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(-10deg) } 100% { transform: rotateY(0deg) } }
@keyframes clr-glow { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:0.9; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(1) } }
@keyframes clr-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes clr-shadow { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

.scn-prostitute-room-arrival {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 40%, #0a0505 100%),
    radial-gradient(ellipse at 50% 80%, #3a1a1a 0%, transparent 70%);
}
.scn-prostitute-room-arrival .wall-panel {
  position:absolute; inset:0; background: linear-gradient(90deg, #1a0a0a 0%, #2a1a1a 50%, #1a0a0a 100%);
  animation: par-wall 6s ease-in-out infinite alternate;
}
.scn-prostitute-room-arrival .curtain-left {
  position:absolute; top:0; left:0; width:25%; height:100%;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a201a 50%, #3a1a0a 100%);
  border-radius: 0 40% 40% 0 / 0 20% 20% 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.6);
  animation: par-curtain-l 10s ease-in-out infinite alternate;
}
.scn-prostitute-room-arrival .curtain-right {
  position:absolute; top:0; right:0; width:25%; height:100%;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a201a 50%, #3a1a0a 100%);
  border-radius: 40% 0 0 40% / 20% 0 0 20%;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.6);
  animation: par-curtain-r 12s ease-in-out infinite alternate;
}
.scn-prostitute-room-arrival .bed-div {
  position:absolute; bottom:5%; left:15%; width:70%; height:30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: par-bed 8s ease-in-out infinite;
}
.scn-prostitute-room-arrival .eiderdown {
  position:absolute; bottom:10%; left:20%; width:60%; height:20%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 30% 30%;
  filter: blur(1px);
  animation: par-eider 5s ease-in-out infinite alternate;
}
.scn-prostitute-room-arrival .lamp-glow {
  position:absolute; top:15%; left:42%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(200,160,100,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: par-lamp 4s ease-in-out infinite alternate;
}
.scn-prostitute-room-arrival .figure-arrive {
  position:absolute; bottom:15%; left:45%; width:20px; height:50px;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: par-arrive 7s ease-in-out infinite;
}
@keyframes par-wall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes par-curtain-l { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }
@keyframes par-curtain-r { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1.05) } }
@keyframes par-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes par-eider { 0% { opacity:0.6; transform: scale(0.98) } 50% { opacity:0.8; transform: scale(1.02) } 100% { opacity:0.7; transform: scale(1) } }
@keyframes par-lamp { 0% { opacity:0.5; transform: scale(0.9) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.6; transform: scale(1) } }
@keyframes par-arrive { 0% { transform: translateX(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) } }

.scn-prostitute-room-lingering {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 30%, #0a0505 100%),
    radial-gradient(ellipse at 50% 20%, #3a1a1a 0%, transparent 70%);
}
.scn-prostitute-room-lingering .floor-top {
  position:absolute; inset:0; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 50%);
  animation: plr-floor 8s ease-in-out infinite alternate;
}
.scn-prostitute-room-lingering .bed-cover {
  position:absolute; bottom:5%; left:10%; width:80%; height:25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 5% 5% / 50% 50% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
  animation: plr-bed 6s ease-in-out infinite;
}
.scn-prostitute-room-lingering .figure-stand {
  position:absolute; bottom:15%; left:30%; width:18px; height:55px;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: plr-stand 9s ease-in-out infinite;
}
.scn-prostitute-room-lingering .figure-sit {
  position:absolute; bottom:10%; left:55%; width:20px; height:40px;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: plr-sit 5s ease-in-out infinite alternate;
}
.scn-prostitute-room-lingering .lamp-dim {
  position:absolute; top:20%; left:40%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(160,120,80,0.4) 0%, transparent 60%);
  border-radius: 50%;
  animation: plr-lamp 3s ease-in-out infinite alternate;
}
.scn-prostitute-room-lingering .shadow-long {
  position:absolute; bottom:0; left:25%; width:50%; height:15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%);
  animation: plr-shadow 7s ease-in-out infinite;
}
.scn-prostitute-room-lingering .wrap-fabric {
  position:absolute; bottom:25%; left:35%; width:30px; height:8px;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 50%, #4a2a1a 100%);
  border-radius: 20% 20% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-15deg);
  animation: plr-wrap 4s ease-in-out infinite alternate;
}
@keyframes plr-floor { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes plr-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes plr-stand { 0% { transform: rotate(-2deg) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(0) } 75% { transform: rotate(-1deg) translateY(1px) } 100% { transform: rotate(2deg) } }
@keyframes plr-sit { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes plr-lamp { 0% { opacity:0.4; transform: scale(0.9) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(1) } }
@keyframes plr-shadow { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }
@keyframes plr-wrap { 0% { transform: rotate(-15deg) scaleX(1) } 50% { transform: rotate(-10deg) scaleX(1.1) } 100% { transform: rotate(-20deg) scaleX(0.9) } }

.scn-priest-encounter {
  background:
    linear-gradient(180deg, #1e1a15 0%, #2a221c 40%, #3a2e26 100%),
    radial-gradient(ellipse at 50% 60%, #c08040 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-priest-encounter .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a221c 0%, #1e1a15 100%);
}
.scn-priest-encounter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2e26 0%, #1e1a15 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,.6);
}
.scn-priest-encounter .candle-glow {
  position: absolute; bottom: 45%; left: 65%; width: 60px; height: 80px;
  background: radial-gradient(circle, #ffd060 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  animation: pe-glow 2s ease-in-out infinite alternate;
}
.scn-priest-encounter .candle {
  position: absolute; bottom: 40%; left: 66%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #b08040 0%, #5a3a1a 100%);
  border-radius: 4px 4px 2px 2px;
  animation: pe-flicker 1.5s ease-in-out infinite;
}
.scn-priest-encounter .priest-silhouette {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0e0a08 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-bow 4s ease-in-out infinite;
}
.scn-priest-encounter .dying-figure {
  position: absolute; bottom: 28%; left: 50%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,.5);
  animation: pe-breathe 3s ease-in-out infinite;
}
.scn-priest-encounter .crucifix {
  position: absolute; bottom: 40%; left: 50%; width: 4px; height: 30px;
  background: #8a6a3a;
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 -8px 0 #8a6a3a, -10px -16px 0 #8a6a3a, 10px -16px 0 #8a6a3a;
  animation: pe-cross-sway 3s ease-in-out infinite;
}
@keyframes pe-glow {
  0% { opacity: .7; transform: scale(.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .8; transform: scale(1); }
}
@keyframes pe-flicker {
  0% { transform: scaleY(1); }
  25% { transform: scaleY(1.05); }
  50% { transform: scaleY(.95); }
  75% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes pe-bow {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes pe-breathe {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes pe-cross-sway {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}

.scn-priest-retreats {
  background:
    linear-gradient(180deg, #1a1612 0%, #2a221c 50%, #14100e 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-priest-retreats .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a221c 0%, #1a1612 100%);
}
.scn-priest-retreats .doorway {
  position: absolute; top: 10%; left: 30%; right: 30%; bottom: 20%;
  background: linear-gradient(180deg, #0e0a08 0%, #140e0a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
  animation: pr-doorlight 6s ease-in-out infinite alternate;
}
.scn-priest-retreats .priest-back {
  position: absolute; bottom: 22%; left: 40%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #0a0806 0%, #1a1410 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pr-walk-away 5s ease-in-out infinite;
}
.scn-priest-retreats .beggar {
  position: absolute; bottom: 20%; right: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1410 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: pr-throw 2s ease-in-out infinite;
}
.scn-priest-retreats .stone-1 {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 8px;
  background: #3a2e26;
  border-radius: 50%;
  animation: pr-stone1 2.5s ease-in-out infinite;
}
.scn-priest-retreats .stone-2 {
  position: absolute; bottom: 28%; left: 52%; width: 6px; height: 6px;
  background: #4a3a2a;
  border-radius: 50%;
  animation: pr-stone2 2.8s ease-in-out infinite 0.5s;
}
.scn-priest-retreats .shadow-floor {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: pr-shadow 5s ease-in-out infinite alternate;
}
@keyframes pr-doorlight {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes pr-walk-away {
  0% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(-5px) scaleX(.95) rotate(2deg); }
  50% { transform: translateX(0) scaleX(1); }
  75% { transform: translateX(5px) scaleX(.95) rotate(-2deg); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes pr-throw {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(20deg) translateY(-5px); }
  60% { transform: rotate(-10deg) translateY(0); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes pr-stone1 {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  50% { transform: translate(-10px, -20px) scale(.5); opacity: .5; }
  100% { transform: translate(-20px, 10px) scale(0); opacity: 0; }
}
@keyframes pr-stone2 {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  50% { transform: translate(8px, -15px) scale(.6); opacity: .6; }
  100% { transform: translate(16px, 12px) scale(0); opacity: 0; }
}
@keyframes pr-shadow {
  0% { transform: scaleX(1); opacity: .5; }
  50% { transform: scaleX(1.2); opacity: .8; }
  100% { transform: scaleX(1); opacity: .5; }
}

.scn-judas-alone-again {
  background:
    linear-gradient(180deg, #4a4a50 0%, #5a5a62 30%, #6a6a70 60%, #4a4a50 100%),
    radial-gradient(ellipse at 50% 80%, #7a7a80 0%, transparent 70%);
}
.scn-judas-alone-again .overcast-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a5a62 0%, #6a6a70 50%, #5a5a62 100%);
  animation: ja-sky 12s ease-in-out infinite alternate;
}
.scn-judas-alone-again .lake {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a3a42 0%, #2a2a32 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  animation: ja-water 8s ease-in-out infinite alternate;
}
.scn-judas-alone-again .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a5a5a 0%, #4a4a4a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.3);
  animation: ja-hills 15s ease-in-out infinite alternate;
}
.scn-judas-alone-again .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3a30 0%, #2a2a20 100%);
}
.scn-judas-alone-again .man-figure {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ja-walk 6s ease-in-out infinite;
}
.scn-judas-alone-again .pig-1 {
  position: absolute; bottom: 15%; left: 55%; width: 20px; height: 12px;
  background: #4a3a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ja-rooting 4s ease-in-out infinite;
}
.scn-judas-alone-again .pig-2 {
  position: absolute; bottom: 14%; left: 65%; width: 18px; height: 10px;
  background: #3a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ja-rooting 4.5s ease-in-out infinite 0.5s;
}
.scn-judas-alone-again .hut {
  position: absolute; bottom: 30%; right: 15%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 8px rgba(0,0,0,.4);
}
@keyframes ja-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes ja-water {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes ja-hills {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes ja-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(-2deg); }
  75% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ja-rooting {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(-10deg); }
  60% { transform: translateY(1px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-pigs-devour-master {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 30%, #c0a880 60%, #8a7050 100%),
    radial-gradient(ellipse at 70% 20%, #ffe0a0 0%, transparent 50%);
}
.scn-pigs-devour-master .sunlight-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,224,160,.4) 0%, transparent 50%, rgba(0,0,0,.3) 100%);
  animation: pd-sunray 8s ease-in-out infinite alternate;
}
.scn-pigs-devour-master .door-frame {
  position: absolute; top: 5%; left: 30%; right: 30%; bottom: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
  animation: pd-door-swing 3s ease-in-out infinite;
}
.scn-pigs-devour-master .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 20px, #3a2a1a 20px, #3a2a1a 40px);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.4);
}
.scn-pigs-devour-master .pig-run-1 {
  position: absolute; bottom: 18%; left: 20%; width: 30px; height: 15px;
  background: #6a4a3a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: pd-pig-run 1.5s ease-in-out infinite;
}
.scn-pigs-devour-master .pig-run-2 {
  position: absolute; bottom: 15%; left: 45%; width: 25px; height: 12px;
  background: #7a5a4a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: pd-pig-run 1.8s ease-in-out infinite 0.3s;
}
.scn-pigs-devour-master .crowd-silhouettes {
  position: absolute; bottom: 12%; left: 55%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #2a201a 0%, #1a1410 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: scaleX(.6);
  animation: pd-crowd 5s ease-in-out infinite;
}
.scn-pigs-devour-master .rags {
  position: absolute; bottom: 8%; left: 35%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 10% 30% 20% 40%;
  transform: rotate(-20deg);
  animation: pd-rags 6s ease-in-out infinite;
}
.scn-pigs-devour-master .shadow-puddle {
  position: absolute; bottom: 0; left: 20%; right: 40%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: pd-shadow 4s ease-in-out infinite alternate;
}
@keyframes pd-sunray {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .8; transform: scale(1); }
}
@keyframes pd-door-swing {
  0% { transform: perspective(200px) rotateY(0deg); }
  50% { transform: perspective(200px) rotateY(20deg); }
  100% { transform: perspective(200px) rotateY(0deg); }
}
@keyframes pd-pig-run {
  0% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(20px) scaleX(.8) rotate(10deg); }
  50% { transform: translateX(0) scaleX(1); }
  75% { transform: translateX(-20px) scaleX(.8) rotate(-10deg); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes pd-crowd {
  0% { transform: scaleX(.6) translateY(0); }
  50% { transform: scaleX(.6) translateY(-3px); }
  100% { transform: scaleX(.6) translateY(0); }
}
@keyframes pd-rags {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes pd-shadow {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .3; }
}

/* scene: dream-vivid */
.scn-dream-vivid {
  background: 
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #2a1a0e 0%, #4a3222 50%, #6a4a32 100%);
}
.scn-dream-vivid .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #332a1a 0%, transparent 50%, #4a3a2a 100%);
  animation: dv-bg 20s ease-in-out infinite alternate;
}
.scn-dream-vivid .door {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 150px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: dv-door 12s ease-in-out infinite alternate;
}
.scn-dream-vivid .door-glow {
  position: absolute; bottom: 32%; left: 50%; width: 60px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,150,0.8) 0%, transparent 80%);
  border-radius: 10%;
  animation: dv-door-glow 6s ease-in-out infinite alternate;
}
.scn-dream-vivid .arms {
  position: absolute; bottom: 38%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: center bottom;
  animation: dv-arms 4s ease-in-out infinite;
}
.scn-dream-vivid .figure {
  position: absolute; bottom: 25%; left: 38%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #5a4030 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30%;
  animation: dv-figure 8s ease-in-out infinite alternate;
}
.scn-dream-vivid .float-dust {
  position: absolute; top: 20%; left: 20%; width: 6px; height: 6px;
  background: rgba(255,220,180,0.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: dv-float 15s linear infinite;
}
.scn-dream-vivid .float-dust2 {
  position: absolute; top: 30%; right: 30%; width: 4px; height: 4px;
  background: rgba(255,200,150,0.5);
  border-radius: 50%;
  filter: blur(1px);
  animation: dv-float2 20s linear infinite reverse;
}
@keyframes dv-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes dv-door { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes dv-door-glow { 0% { opacity: 0.3; box-shadow: 0 0 30px 10px rgba(255,200,150,0.4); } 50% { opacity: 0.8; box-shadow: 0 0 60px 20px rgba(255,200,150,0.7); } 100% { opacity: 0.4; box-shadow: 0 0 40px 15px rgba(255,200,150,0.5); } }
@keyframes dv-arms { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-3px); } 50% { transform: rotate(15deg) translateY(0); } 75% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes dv-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(-4px) rotate(0deg); } }
@keyframes dv-float { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateY(-200px) translateX(50px) scale(0.5); opacity: 0; } }
@keyframes dv-float2 { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0; } 20% { opacity: 0.6; } 80% { opacity: 0.6; } 100% { transform: translateY(-150px) translateX(-40px) scale(0.3); opacity: 0; } }

/* scene: dream-obsession */
.scn-dream-obsession {
  background: 
    radial-gradient(ellipse at 50% 70%, #4a3020 0%, transparent 60%),
    linear-gradient(180deg, #1a0e08 0%, #3a2018 50%, #5a3830 100%);
}
.scn-dream-obsession .deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(50,20,15,0.5) 100%);
  animation: do-deep 20s ease-in-out infinite alternate;
}
.scn-dream-obsession .silhouette {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #1a0a08 0%, #0a0504 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 40px 10px rgba(30,10,5,0.8);
  animation: do-sil 14s ease-in-out infinite alternate;
}
.scn-dream-obsession .hand {
  position: absolute; bottom: 35%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2018 0%, #1a0a08 100%);
  border-radius: 20% 40% 40% 20%;
  transform-origin: bottom left;
  animation: do-hand 4s ease-in-out infinite alternate;
}
.scn-dream-obsession .lips {
  position: absolute; bottom: 50%; left: 48%; width: 20px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #c08060 0%, #8a5040 100%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 20px 8px rgba(200,100,60,0.6);
  animation: do-lips 6s ease-in-out infinite alternate;
}
.scn-dream-obsession .warm-haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, rgba(255,180,120,0.3) 0%, transparent 70%);
  animation: do-haze 10s ease-in-out infinite alternate;
}
.scn-dream-obsession .pulse {
  position: absolute; bottom: 28%; left: 35%; width: 8px; height: 8px;
  background: rgba(200,100,80,0.7);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,80,60,0.4);
  animation: do-pulse 2s ease-in-out infinite;
}
.scn-dream-obsession .breath {
  position: absolute; top: 40%; right: 25%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,160,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: do-breath 5s ease-in-out infinite alternate;
}
@keyframes do-deep { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes do-sil { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.03); } 100% { transform: translateX(-3px) scaleY(0.98); } }
@keyframes do-hand { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(20deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(-2px); } }
@keyframes do-lips { 0% { transform: scale(1) translateY(0); opacity: 0.7; } 50% { transform: scale(1.1) translateY(-2px); opacity: 1; } 100% { transform: scale(0.95) translateY(1px); opacity: 0.8; } }
@keyframes do-haze { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes do-pulse { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.8); opacity: 1; } 100% { transform: scale(1); opacity: 0.5; } }
@keyframes do-breath { 0% { transform: scaleX(0.5) translateX(0); opacity: 0.2; } 50% { transform: scaleX(1.2) translateX(-10px); opacity: 0.6; } 100% { transform: scaleX(0.6) translateX(5px); opacity: 0.3; } }

/* scene: morning-visit */
.scn-morning-visit {
  background:
    radial-gradient(ellipse at 80% 20%, #6a7a8a 0%, transparent 60%),
    linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%);
}
.scn-morning-visit .sky-dawn {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0c0d0 0%, #8a9ab0 40%, #5a6a80 100%);
  animation: mv-dawn 25s ease-in-out infinite alternate;
}
.scn-morning-visit .window {
  position: absolute; top: 5%; left: 30%; width: 150px; height: 200px;
  background: linear-gradient(180deg, #c0d0e0 0%, #8090a0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px 10px rgba(200,220,240,0.3);
  animation: mv-window 15s ease-in-out infinite alternate;
}
.scn-morning-visit .light-shaft {
  position: absolute; top: 0; left: 35%; width: 80px; height: 100%;
  background: linear-gradient(180deg, rgba(200,220,240,0.15) 0%, transparent 80%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: mv-shaft 20s ease-in-out infinite alternate;
}
.scn-morning-visit .figure-out {
  position: absolute; bottom: 15%; left: 28%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: mv-out 6s ease-in-out infinite alternate;
}
.scn-morning-visit .figure-in {
  position: absolute; bottom: 15%; left: 48%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: -5px 0 10px rgba(0,0,0,0.3);
  animation: mv-in 6s ease-in-out infinite alternate;
}
.scn-morning-visit .gaze-line {
  position: absolute; bottom: 45%; left: 38%; width: 60px; height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,220,240,0.6) 50%, transparent 100%);
  transform: rotate(-5deg);
  animation: mv-gaze 4s ease-in-out infinite alternate;
}
.scn-morning-visit .chair {
  position: absolute; bottom: 10%; left: 40%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: mv-chair 10s ease-in-out infinite alternate;
}
.scn-morning-visit .shadow-edge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: mv-shadow 12s ease-in-out infinite alternate;
}
@keyframes mv-dawn { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.4 } }
@keyframes mv-window { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes mv-shaft { 0% { opacity: 0.1; transform: translateX(-5px); } 50% { opacity: 0.4; transform: translateX(5px); } 100% { opacity: 0.2; transform: translateX(0); } }
@keyframes mv-out { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(5deg); } 100% { transform: translateX(-5px) rotate(-2deg); } }
@keyframes mv-in { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-5deg); } 100% { transform: translateX(4px) rotate(3deg); } }
@keyframes mv-gaze { 0% { opacity: 0; transform: rotate(-5deg) scaleX(0.5); } 50% { opacity: 0.8; transform: rotate(0deg) scaleX(1); } 100% { opacity: 0.3; transform: rotate(3deg) scaleX(0.7); } }
@keyframes mv-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes mv-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }

/* scene: conclusion-discussion */
.scn-conclusion-discussion {
  background:
    radial-gradient(ellipse at 60% 70%, #5a4a3a 0%, transparent 60%),
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 50%, #4a3a2a 100%);
}
.scn-conclusion-discussion .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  animation: cd-wall 20s ease-in-out infinite alternate;
}
.scn-conclusion-discussion .fire {
  position: absolute; bottom: 30%; left: 25%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 80%, #ffa050 0%, #c08030 40%, #4a2a10 80%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 80px 30px rgba(255,160,80,0.5);
  animation: cd-fire 3s ease-in-out infinite alternate;
}
.scn-conclusion-discussion .mantel {
  position: absolute; bottom: 40%; left: 20%; width: 120px; height: 20px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cd-mantel 15s ease-in-out infinite alternate;
}
.scn-conclusion-discussion .sofa {
  position: absolute; bottom: 15%; left: 35%; width: 140px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: cd-sofa 12s ease-in-out infinite alternate;
}
.scn-conclusion-discussion .figure-a {
  position: absolute; bottom: 22%; left: 38%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20%;
  animation: cd-figa 8s ease-in-out infinite alternate;
}
.scn-conclusion-discussion .figure-b {
  position: absolute; bottom: 22%; left: 55%; width: 35px; height: 100px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: cd-figb 9s ease-in-out infinite alternate;
}
.scn-conclusion-discussion .drink {
  position: absolute; bottom: 30%; left: 46%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #8a7040 0%, #5a4020 100%);
  border-radius: 4px 4px 10px 10px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: cd-drink 5s ease-in-out infinite alternate;
}
.scn-conclusion-discussion .candle {
  position: absolute; bottom: 38%; left: 52%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0c080 0%, #8a7040 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px rgba(255,200,120,0.5);
  animation: cd-candle 6s ease-in-out infinite alternate;
}
.scn-conclusion-discussion .candle-glow {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,120,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: cd-candle-glow 4s ease-in-out infinite alternate;
}
@keyframes cd-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cd-fire { 0% { transform: scaleY(0.95) scaleX(1); } 50% { transform: scaleY(1.05) scaleX(1.02); } 100% { transform: scaleY(1) scaleX(0.98); } }
@keyframes cd-mantel { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes cd-sofa { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes cd-figa { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(6px) rotate(3deg); } 100% { transform: translateX(-4px) rotate(0deg); } }
@keyframes cd-figb { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(3px) rotate(1deg); } }
@keyframes cd-drink { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(1px); } }
@keyframes cd-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(0.95) } }
@keyframes cd-candle-glow { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(1); } }

.scn-confession-young-man {
  background: linear-gradient(180deg, #2c1a0e 0%, #1a0f08 40%, #0d0704 100%), radial-gradient(ellipse at 50% 30%, #3a2215 0%, transparent 70%);
}
.scn-confession-young-man .wall { position:absolute; inset:0 0 65% 0; background: linear-gradient(90deg, #3b281a 0%, #4d3422 30%, #3b281a 70%, #2a1a0f 100%); animation: cy-wall 20s ease-in-out infinite alternate; }
.scn-confession-young-man .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a281c 0%, #2a1a10 40%, #1a0f08 100%); border-radius: 0 0 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-confession-young-man .table { position:absolute; bottom:25%; left:50%; width:70px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #5e3d28 0%, #3c2618 100%); border-radius: 4% 4% 6% 6%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: cy-table 8s ease-in-out infinite; }
.scn-confession-young-man .candle { position:absolute; bottom:47%; left:50%; width:12px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #fff5e0 0%, #f0d8b0 30%, #d4a46a 70%, #8a5c38 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 8px 2px rgba(255,220,160,.5); }
.scn-confession-young-man .flame { position:absolute; bottom:63%; left:50%; width:6px; height:14px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, #fff8b0 0%, #ffaa40 50%, #cc5500 70%, transparent 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 0 30px 12px rgba(255,150,50,.6), 0 0 60px 24px rgba(200,80,20,.3); animation: cy-flame 2s ease-in-out infinite alternate; }
.scn-confession-young-man .figure { position:absolute; bottom:20%; left:35%; width:28px; height:60px; background: linear-gradient(180deg, #1a1008 0%, #0d0704 100%); border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%; transform-origin: bottom center; box-shadow: -2px 0 6px rgba(0,0,0,.4); animation: cy-figure 6s ease-in-out infinite; }
.scn-confession-young-man .shadow { position:absolute; bottom:15%; left:32%; width:50px; height:18px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(6px); animation: cy-shadow 6s ease-in-out infinite; }
.scn-confession-young-man .dust { position:absolute; inset:30% 10% 50% 20%; width:70px; height:40px; background: radial-gradient(circle, rgba(255,220,180,.15) 0%, transparent 70%); filter: blur(8px); animation: cy-dust 12s ease-in-out infinite; }
@keyframes cy-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cy-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes cy-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-3deg); box-shadow: 0 0 30px 12px rgba(255,150,50,.6), 0 0 60px 24px rgba(200,80,20,.3); } 50% { transform: translateX(-50%) scaleY(1.15) rotate(0); box-shadow: 0 0 40px 18px rgba(255,180,70,.8), 0 0 80px 30px rgba(200,100,30,.4); } 100% { transform: translateX(-50%) scaleY(.95) rotate(2deg); box-shadow: 0 0 25px 10px rgba(255,140,40,.5), 0 0 50px 20px rgba(180,60,15,.25); } }
@keyframes cy-figure { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(2px,-2px) rotate(1deg) } 50% { transform: translate(4px,0) rotate(-1deg) } 75% { transform: translate(2px,-1px) rotate(0) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes cy-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes cy-dust { 0% { opacity:.2; transform: translate(0,0) } 25% { opacity:.4; transform: translate(5px,-10px) } 50% { opacity:.3; transform: translate(-3px,-5px) } 75% { opacity:.5; transform: translate(2px,-8px) } 100% { opacity:.2; transform: translate(0,0) } }

.scn-loneliness-fear {
  background: linear-gradient(180deg, #1a1210 0%, #0f0a08 60%, #050302 100%), radial-gradient(ellipse at 50% 60%, #2a1a12 0%, transparent 80%);
}
.scn-loneliness-fear .wall-back { position:absolute; inset:0 0 55% 0; background: linear-gradient(90deg, #2a1f1a 0%, #3a2a22 50%, #2a1f1a 100%); box-shadow: inset 0 4px 30px rgba(0,0,0,.7); animation: lf-wall 25s ease-in-out infinite alternate; }
.scn-loneliness-fear .floor-planks { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a1c14 0%, #1a100a 50%, #0d0804 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-loneliness-fear .chair { position:absolute; bottom:25%; left:60%; width:40px; height:50px; background: linear-gradient(180deg, #3d2b1e 0%, #2a1a10 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: lf-chair 12s ease-in-out infinite; }
.scn-loneliness-fear .lamp-dim { position:absolute; bottom:50%; left:20%; width:8px; height:18px; background: linear-gradient(180deg, #ffe8c0 0%, #d4a46a 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 20px 6px rgba(255,200,130,.5); opacity:.8; animation: lf-lamp 4s ease-in-out infinite alternate; }
.scn-loneliness-fear .clock { position:absolute; bottom:57%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #4a3424 0%, #2a1a12 70%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-loneliness-fear .pendulum { position:absolute; bottom:54%; right:20%; width:4px; height:20px; margin-left:-2px; background: #4a3020; border-radius: 2px; transform-origin: top center; animation: lf-pendulum 3s ease-in-out infinite alternate; }
.scn-loneliness-fear .crack { position:absolute; top:30%; left:35%; width:40px; height:2px; background: #0a0503; border-radius: 1px; transform: rotate(-5deg); box-shadow: 0 0 4px rgba(0,0,0,.5); animation: lf-crack 20s ease-in-out infinite; }
.scn-loneliness-fear .fog { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(20,15,10,.15) 0%, transparent 70%); filter: blur(10px); animation: lf-fog 15s ease-in-out infinite alternate; }
@keyframes lf-wall { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lf-chair { 0% { transform: translateY(0) } 25% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) } }
@keyframes lf-lamp { 0% { box-shadow: 0 0 15px 4px rgba(255,200,130,.3); opacity:.7 } 50% { box-shadow: 0 0 25px 8px rgba(255,200,130,.6); opacity:.9 } 100% { box-shadow: 0 0 18px 5px rgba(255,200,130,.4); opacity:.8 } }
@keyframes lf-pendulum { 0% { transform: rotate(-8deg) } 50% { transform: rotate(0) } 100% { transform: rotate(8deg) } }
@keyframes lf-crack { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.3 } }
@keyframes lf-fog { 0% { opacity:.1 } 50% { opacity:.3 } 100% { opacity:.15 } }

.scn-sweetheart-pregnancy {
  background: linear-gradient(180deg, #1a1a2a 0%, #2c2244 40%, #4a3a6e 100%), radial-gradient(ellipse at 50% 70%, #3a2a5e 0%, transparent 80%);
}
.scn-sweetheart-pregnancy .wall-paper { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a3a 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,.5); animation: sp-wall 18s ease-in-out infinite alternate; }
.scn-sweetheart-pregnancy .window-night { position:absolute; bottom:35%; left:10%; width:50px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 100%); border: 3px solid #2a1a3a; border-radius: 2px; box-shadow: 0 0 12px 4px rgba(100,100,200,.2); }
.scn-sweetheart-pregnancy .bed { position:absolute; bottom:20%; left:20%; width:100px; height:50px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 20% 20% 8% 8%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-sweetheart-pregnancy .blanket { position:absolute; bottom:22%; left:25%; width:80px; height:30px; background: linear-gradient(180deg, #5a4040 0%, #3a2828 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 2px 6px rgba(0,0,0,.4); }
.scn-sweetheart-pregnancy .girl-silhouette { position:absolute; bottom:38%; left:32%; width:24px; height:48px; background: linear-gradient(180deg, #0d0d1a 0%, #05050a 100%); border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%; transform-origin: bottom center; animation: sp-girl 8s ease-in-out infinite; }
.scn-sweetheart-pregnancy .hand-on-belly { position:absolute; bottom:30%; left:34%; width:8px; height:12px; background: linear-gradient(180deg, #0d0d1a 0%, #05050a 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-20deg); animation: sp-hand 6s ease-in-out infinite; }
.scn-sweetheart-pregnancy .moon-glow { position:absolute; top:10%; right:20%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,200,255,.3) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: sp-moon 30s ease-in-out infinite alternate; }
@keyframes sp-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sp-girl { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(2px,-1px) rotate(1deg) } 50% { transform: translate(3px,0) rotate(0) } 75% { transform: translate(2px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes sp-hand { 0% { transform: rotate(-20deg) translate(0,0) } 50% { transform: rotate(-15deg) translate(1px,-2px) } 100% { transform: rotate(-20deg) translate(0,0) } }
@keyframes sp-moon { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-criminal-desire {
  background: linear-gradient(180deg, #120e0a 0%, #1a1410 40%, #0d0804 100%), radial-gradient(ellipse at 50% 40%, #2a1a12 0%, transparent 80%);
}
.scn-criminal-desire .wall-dark { position:absolute; inset:0 0 50% 0; background: linear-gradient(90deg, #1a1210 0%, #2a201a 50%, #1a1210 100%); box-shadow: inset 0 4px 30px rgba(0,0,0,.8); animation: cd-wall 30s ease-in-out infinite alternate; }
.scn-criminal-desire .portiere-left { position:absolute; bottom:15%; left:10%; width:40px; height:70px; background: linear-gradient(180deg, #3a281a 0%, #2a1a0f 100%); border-radius: 0 60% 60% 0 / 0 90% 90% 0; box-shadow: 2px 0 8px rgba(0,0,0,.5); animation: cd-portiere 8s ease-in-out infinite alternate; transform-origin: top left; }
.scn-criminal-desire .portiere-right { position:absolute; bottom:15%; right:10%; width:40px; height:70px; background: linear-gradient(180deg, #3a281a 0%, #2a1a0f 100%); border-radius: 60% 0 0 60% / 90% 0 0 90%; box-shadow: -2px 0 8px rgba(0,0,0,.5); animation: cd-portiere 8s ease-in-out infinite alternate-reverse; transform-origin: top right; }
.scn-criminal-desire .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a100a 0%, #0a0502 100%); }
.scn-criminal-desire .hand-emerging { position:absolute; bottom:35%; left:48%; width:12px; height:20px; background: linear-gradient(180deg, #1a100a 0%, #0a0502 100%); border-radius: 40% 40% 30% 30%; transform: rotate(-15deg); animation: cd-hand 4s ease-in-out infinite; }
.scn-criminal-desire .eye-gleam { position:absolute; bottom:53%; left:46%; width:4px; height:4px; background: radial-gradient(circle, rgba(200,180,150,.8) 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,180,150,.4); animation: cd-eye 3s ease-in-out infinite alternate; }
.scn-criminal-desire .dust-motes { position:absolute; inset:20% 10% 40% 20%; width:60px; height:40px; background: radial-gradient(circle, rgba(200,180,150,.15) 0%, transparent 60%); filter: blur(6px); animation: cd-dust 20s linear infinite; }
.scn-criminal-desire .lamp-flicker { position:absolute; bottom:55%; right:15%; width:6px; height:10px; background: linear-gradient(180deg, #ffe8c0 0%, #d4a46a 100%); border-radius: 2px; box-shadow: 0 0 10px 3px rgba(255,200,130,.4); animation: cd-lamp 2s ease-in-out infinite alternate; }
@keyframes cd-wall { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cd-portiere { 0% { transform: rotate(0) } 25% { transform: rotate(2deg) scaleX(1.02) } 50% { transform: rotate(-1deg) scaleX(0.98) } 75% { transform: rotate(0) scaleX(1) } 100% { transform: rotate(1deg) scaleX(1.01) } }
@keyframes cd-hand { 0% { transform: translate(0,0) rotate(-15deg); opacity:.3 } 25% { transform: translate(2px,-3px) rotate(-10deg); opacity:.7 } 50% { transform: translate(4px,-1px) rotate(-12deg); opacity:.9 } 75% { transform: translate(2px,-4px) rotate(-15deg); opacity:.6 } 100% { transform: translate(0,0) rotate(-15deg); opacity:.3 } }
@keyframes cd-eye { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.8; transform: scale(1.3) } 100% { opacity:.3; transform: scale(1) } }
@keyframes cd-dust { 0% { opacity:.1; transform: translate(0,0) } 25% { opacity:.3; transform: translate(-10px,-5px) } 50% { opacity:.2; transform: translate(5px,-10px) } 75% { opacity:.4; transform: translate(-5px,-15px) } 100% { opacity:.1; transform: translate(0,0) } }
@keyframes cd-lamp { 0% { box-shadow: 0 0 8px 2px rgba(255,200,130,.3); transform: scaleY(1) } 50% { box-shadow: 0 0 14px 5px rgba(255,200,130,.6); transform: scaleY(1.1) } 100% { box-shadow: 0 0 10px 3px rgba(255,200,130,.4); transform: scaleY(.95) } }

.scn-prince-party { background: linear-gradient(180deg, #8a9aae 0%, #b8c7d4 50%, #d0dbe5 100%), radial-gradient(ellipse at 50% 0%, #c7d5e2 0%, transparent 70%); }

.scn-prince-party .sky-overcast { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #9bacbf 0%, #c9d7e3 100%); animation: pp-sky 18s ease-in-out infinite alternate; }
.scn-prince-party .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #6a6f5e 0%, #2d3a22 100%); border-radius: 20% 30% 0 0 / 10% 15% 0 0; animation: pp-ground 12s ease-in-out infinite alternate; }
.scn-prince-party .figures-group { position:absolute; bottom:40%; left:30%; width:120px; height:40px; background: radial-gradient(ellipse at 50% 100%, #1f2a1c 0%, transparent 60%); animation: pp-figures 8s ease-in-out infinite; }
.scn-prince-party .figure-leader { position:absolute; bottom:38%; left:35%; width:16px; height:50px; background: linear-gradient(180deg, #2f3a2d 0%, #1a2219 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-walk 6s ease-in-out infinite; }
.scn-prince-party .figure-servant1 { position:absolute; bottom:37%; left:42%; width:14px; height:46px; background: linear-gradient(180deg, #3b4739 0%, #222c21 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-walk 6s ease-in-out infinite 0.3s; }
.scn-prince-party .figure-servant2 { position:absolute; bottom:36%; left:48%; width:13px; height:44px; background: linear-gradient(180deg, #3f4b3d 0%, #263124 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-walk 6s ease-in-out infinite 0.6s; }
.scn-prince-party .cloud-slow1 { position:absolute; top:12%; left:10%; width:110px; height:22px; background: rgba(255,255,255,0.25); border-radius: 50%; filter: blur(8px); animation: pp-drift 45s linear infinite; }
.scn-prince-party .cloud-slow2 { position:absolute; top:20%; right:15%; width:80px; height:18px; background: rgba(255,255,255,0.15); border-radius: 50%; filter: blur(6px); animation: pp-drift 55s linear infinite reverse; }
@keyframes pp-sky { 0%{ opacity:0.7 } 50%{ opacity:1 } 100%{ opacity:0.8 } }
@keyframes pp-ground { 0%{ transform: scaleY(1) } 50%{ transform: scaleY(0.98) } 100%{ transform: scaleY(1) } }
@keyframes pp-figures { 0%,100%{ opacity:0.9 } 50%{ opacity:1 } }
@keyframes pp-walk { 0%{ transform: translateX(0) translateY(0) rotate(-1deg) } 25%{ transform: translateX(4px) translateY(-1px) rotate(1deg) } 50%{ transform: translateX(8px) translateY(0) rotate(-1deg) } 75%{ transform: translateX(12px) translateY(-1px) rotate(1deg) } 100%{ transform: translateX(16px) translateY(0) rotate(0deg) } }
@keyframes pp-drift { 0%{ transform: translateX(-30px) } 100%{ transform: translateX(120vw) } }

.scn-prince-foreboding { background: linear-gradient(180deg, #1a1d28 0%, #2a3140 50%, #3e4860 100%), radial-gradient(ellipse at 50% 100%, #2f384a 0%, transparent 70%); }

.scn-prince-foreboding .sky-heavy { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #242b38 0%, #4a546b 100%); animation: pf-sky 20s ease-in-out infinite alternate; }
.scn-prince-foreboding .ground-dark { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #2a2e2a 0%, #101610 100%); border-radius: 40% 20% 0 0 / 30% 20% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.5); animation: pf-ground 14s ease-in-out infinite alternate; }
.scn-prince-foreboding .figure-departing { position:absolute; bottom:35%; left:20%; width:18px; height:54px; background: linear-gradient(180deg, #1a2020 0%, #0a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pf-walk-away 7s ease-in-out infinite; }
.scn-prince-foreboding .baggage { position:absolute; bottom:32%; left:28%; width:20px; height:14px; background: #1d2320; border-radius: 10% 10% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.8); animation: pf-bob 3s ease-in-out infinite alternate; }
.scn-prince-foreboding .mist { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent, rgba(180,200,220,0.15) 50%, transparent); filter: blur(10px); animation: pf-mist 25s ease-in-out infinite; }
.scn-prince-foreboding .cloud-low { position:absolute; top:25%; left:-10%; width:130px; height:28px; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(12px); animation: pf-cloud-drift 60s linear infinite; }
.scn-prince-foreboding .bird-silhouette { position:absolute; top:15%; right:30%; width:12px; height:8px; background: #0f1317; border-radius: 50% 50% 30% 30%; animation: pf-bird 8s ease-in-out infinite; }
@keyframes pf-sky { 0%{ opacity:0.6 } 50%{ opacity:0.9 } 100%{ opacity:0.5 } }
@keyframes pf-ground { 0%{ transform: scaleY(1) translateY(0) } 50%{ transform: scaleY(0.97) translateY(-1px) } 100%{ transform: scaleY(1) translateY(0) } }
@keyframes pf-walk-away { 0%{ transform: translateX(0) translateY(0) } 30%{ transform: translateX(-8px) translateY(-1px) } 60%{ transform: translateX(-16px) translateY(0) } 100%{ transform: translateX(-24px) translateY(-1px) } }
@keyframes pf-bob { 0%{ transform: translateY(0) } 100%{ transform: translateY(-2px) } }
@keyframes pf-mist { 0%{ opacity:0 } 25%{ opacity:0.6 } 50%{ opacity:0.2 } 75%{ opacity:0.8 } 100%{ opacity:0 } }
@keyframes pf-cloud-drift { 0%{ transform: translateX(0) } 100%{ transform: translateX(150vw) } }
@keyframes pf-bird { 0%{ transform: translate(0,0) scale(1) } 25%{ transform: translate(10px,-5px) scale(0.95) } 50%{ transform: translate(20px,0) scale(1) } 75%{ transform: translate(30px,-3px) scale(0.98) } 100%{ transform: translate(40px,0) scale(1) } }

.scn-prince-illness { background: linear-gradient(180deg, #1e1c1a 0%, #302b26 50%, #4a413a 100%), radial-gradient(circle at 50% 60%, #5c4e40 0%, transparent 60%); }

.scn-prince-illness .room-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2622 0%, #3d3530 100%); box-shadow: inset 0 30px 30px rgba(0,0,0,0.3); }
.scn-prince-illness .bed-frame { position:absolute; bottom:30%; left:50%; width:140px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3c332c 0%, #1d1714 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 8px 12px rgba(0,0,0,0.6); animation: pi-creak 5s ease-in-out infinite; }
.scn-prince-illness .figure-lying { position:absolute; bottom:31%; left:50%; width:28px; height:34px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4d42 0%, #2e2620 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: pi-breathe 4s ease-in-out infinite; }
.scn-prince-illness .lamp-glow { position:absolute; bottom:55%; left:28%; width:12px; height:16px; background: radial-gradient(circle, #c99c5a 0%, #855e30 60%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 28px 8px rgba(201,156,90,0.5), 0 0 50px 15px rgba(133,94,48,0.3); animation: pi-lamp 3s ease-in-out infinite alternate; }
.scn-prince-illness .table-bottle { position:absolute; bottom:24%; left:28%; width:16px; height:28px; background: linear-gradient(180deg, #4a3f36 0%, #2c231e 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.6); animation: pi-table 6s ease-in-out infinite; }
.scn-prince-illness .shadow-angular { position:absolute; bottom:20%; left:10%; width:80%; height:40%; background: rgba(0,0,0,0.35); filter: blur(5px); transform: skewX(-15deg); animation: pi-shadow 8s ease-in-out infinite alternate; }
.scn-prince-illness .curtain { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(90deg, transparent, #28221e 50%, #140e0c 100%); animation: pi-curtain 15s ease-in-out infinite alternate; }
@keyframes pi-creak { 0%{ transform: translateX(-50%) rotate(0deg) } 25%{ transform: translateX(-50%) rotate(0.2deg) } 50%{ transform: translateX(-50%) rotate(0deg) } 75%{ transform: translateX(-50%) rotate(-0.2deg) } 100%{ transform: translateX(-50%) rotate(0deg) } }
@keyframes pi-breathe { 0%{ transform: translateX(-50%) scale(1) } 50%{ transform: translateX(-50%) scale(1.02) translateY(-1px) } 100%{ transform: translateX(-50%) scale(1) } }
@keyframes pi-lamp { 0%{ box-shadow: 0 0 20px 5px rgba(201,156,90,0.4), 0 0 40px 10px rgba(133,94,48,0.2); opacity:0.8 } 50%{ box-shadow: 0 0 35px 12px rgba(201,156,90,0.7), 0 0 60px 20px rgba(133,94,48,0.4); opacity:1 } 100%{ box-shadow: 0 0 25px 8px rgba(201,156,90,0.5), 0 0 45px 12px rgba(133,94,48,0.3); opacity:0.9 } }
@keyframes pi-table { 0%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } 100%{ transform: translateY(0) } }
@keyframes pi-shadow { 0%{ opacity:0.3 } 50%{ opacity:0.5 } 100%{ opacity:0.35 } }
@keyframes pi-curtain { 0%{ transform: scaleX(1) } 50%{ transform: scaleX(0.97) } 100%{ transform: scaleX(1.02) } }

.scn-mayor-permission { background: linear-gradient(180deg, #1b1a1c 0%, #2d282a 50%, #3f383b 100%), radial-gradient(circle at 60% 40%, #4f4548 0%, transparent 60%); }

.scn-mayor-permission .office-wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2c2628 0%, #1e191b 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.5); }
.scn-mayor-permission .desk { position:absolute; bottom:35%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #3a322f 0%, #241f1d 100%); border-radius: 5% 5% 0 0; box-shadow: 0 8px 12px rgba(0,0,0,0.7); animation: mp-desk 10s ease-in-out infinite alternate; }
.scn-mayor-permission .figure-mayor { position:absolute; bottom:38%; left:30%; width:18px; height:52px; background: linear-gradient(180deg, #2a2527 0%, #141112 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp-mayor 5s ease-in-out infinite; }
.scn-mayor-permission .figure-petitioner { position:absolute; bottom:36%; left:55%; width:16px; height:48px; background: linear-gradient(180deg, #332d30 0%, #1b1718 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp-petitioner 5s ease-in-out infinite 0.5s; }
.scn-mayor-permission .lamp-desk { position:absolute; bottom:47%; left:50%; width:12px; height:18px; transform: translateX(-50%); background: radial-gradient(circle, #dbb07a 0%, #9a6d42 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px 8px rgba(219,176,122,0.5), 0 0 60px 16px rgba(154,109,66,0.3); animation: mp-lamp 2s ease-in-out infinite alternate; }
.scn-mayor-permission .paper { position:absolute; bottom:38%; left:48%; width:14px; height:18px; background: #c4b8a3; border-radius: 5%; box-shadow: 0 1px 3px rgba(0,0,0,0.6); animation: mp-shuffle 4s ease-in-out infinite; }
.scn-mayor-permission .shadow-cross { position:absolute; bottom:20%; left:10%; width:80%; height:60%; background: rgba(0,0,0,0.3); filter: blur(8px); transform: rotate(5deg); animation: mp-shadow 7s ease-in-out infinite alternate; }
@keyframes mp-desk { 0%{ transform: scaleY(1) } 50%{ transform: scaleY(0.97) } 100%{ transform: scaleY(1) } }
@keyframes mp-mayor { 0%{ transform: translateY(0) rotate(-1deg) } 25%{ transform: translateY(-2px) rotate(0deg) } 50%{ transform: translateY(0) rotate(1deg) } 75%{ transform: translateY(-1px) rotate(0deg) } 100%{ transform: translateY(0) rotate(-1deg) } }
@keyframes mp-petitioner { 0%{ transform: translateX(0) translateY(0) } 25%{ transform: translateX(4px) translateY(-1px) } 50%{ transform: translateX(8px) translateY(0) } 75%{ transform: translateX(12px) translateY(-1px) } 100%{ transform: translateX(16px) translateY(0) } }
@keyframes mp-lamp { 0%{ box-shadow: 0 0 20px 5px rgba(219,176,122,0.4), 0 0 40px 10px rgba(154,109,66,0.2); opacity:0.8 } 50%{ box-shadow: 0 0 40px 12px rgba(219,176,122,0.7), 0 0 70px 20px rgba(154,109,66,0.4); opacity:1 } 100%{ box-shadow: 0 0 25px 8px rgba(219,176,122,0.5), 0 0 50px 12px rgba(154,109,66,0.3); opacity:0.9 } }
@keyframes mp-shuffle { 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 mp-shadow { 0%{ opacity:0.15 } 50%{ opacity:0.3 } 100%{ opacity:0.2 } }

.scn-magloire-tempted {
  background: 
    radial-gradient(ellipse at 50% 100%, #2c1a10 0%, transparent 60%),
    linear-gradient(180deg, #1a1108 0%, #2c1a10 40%, #3d2418 100%);
}
.scn-magloire-tempted .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2c1a10 0%, #3d2418 30%, #1a1108 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,.6);
  animation: mt-wall 20s ease-in-out infinite alternate;
}
.scn-magloire-tempted .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3d2418 0%, #1a1108 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.7);
}
.scn-magloire-tempted .table {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a18 0%, #2c1a10 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-magloire-tempted .candle {
  position: absolute; bottom: 30%; left: 50%; width: 10px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8c088 0%, #c08040 60%, #8a6020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,.4), 0 0 60px 20px rgba(255,200,100,.2);
  animation: mt-candle 4s ease-in-out infinite alternate;
}
.scn-magloire-tempted .old-woman {
  position: absolute; bottom: 10%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2c1a10 0%, #1a1108 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset 2px 0 6px rgba(255,200,100,.1);
  animation: mt-figure 6s ease-in-out infinite;
}
.scn-magloire-tempted .shadow {
  position: absolute; bottom: 0; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: mt-shadow 6s ease-in-out infinite alternate;
}
@keyframes mt-wall { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes mt-candle {
  0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 20px 8px rgba(255,200,100,.3); }
  50% { transform: translateX(-50%) scaleY(1.1) scaleX(.9); box-shadow: 0 0 40px 15px rgba(255,200,100,.5); }
  100% { transform: translateX(-50%) scaleY(.95); box-shadow: 0 0 25px 10px rgba(255,200,100,.35); }
}
@keyframes mt-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes mt-shadow { 0% { opacity: .5; transform: scaleX(1); } 50% { opacity: .8; transform: scaleX(1.2); } 100% { opacity: .6; transform: scaleX(.9); } }

.scn-notary-advice {
  background: 
    radial-gradient(ellipse at 50% 30%, #f5e6d0 0%, transparent 60%),
    linear-gradient(180deg, #d9c4a0 0%, #f0e0c8 60%, #e8d0b0 100%);
}
.scn-notary-advice .desk {
  position: absolute; bottom: 10%; left: 20%; width: 70%; height: 40px;
  background: linear-gradient(180deg, #b89870 0%, #8a7048 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,.2);
  animation: na-desk 8s ease-in-out infinite alternate;
}
.scn-notary-advice .chair-back {
  position: absolute; bottom: 32%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: inset -2px 0 4px rgba(0,0,0,.3);
}
.scn-notary-advice .notary {
  position: absolute; bottom: 12%; left: 25%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1108 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: na-figure 12s ease-in-out infinite;
}
.scn-notary-advice .woman-client {
  position: absolute; bottom: 12%; left: 55%; width: 30px; height: 58px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: na-figure 12s ease-in-out infinite reverse;
}
.scn-notary-advice .window {
  position: absolute; top: 5%; right: 5%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px rgba(255,255,220,.5);
  opacity: .9;
  animation: na-window 6s ease-in-out infinite alternate;
}
.scn-notary-advice .papers {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #f5f0e0 0%, #e0d8c0 100%);
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  animation: na-papers 10s ease-in-out infinite alternate;
}
@keyframes na-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes na-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes na-window { 0% { opacity: .85; box-shadow: inset 0 0 15px rgba(255,255,220,.4); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,220,.7); } 100% { opacity: .9; box-shadow: inset 0 0 20px rgba(255,255,220,.5); } }
@keyframes na-papers { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(.95); } }

.scn-final-bargain {
  background: 
    radial-gradient(ellipse at 50% 0%, #f0d8a0 0%, transparent 60%),
    linear-gradient(180deg, #b89860 0%, #d4b880 40%, #c0a060 100%);
}
.scn-final-bargain .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c0a060 0%, #8a7038 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-final-bargain .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #f0d8a0 0%, #e0c888 100%);
  animation: fb-sky 15s ease-in-out infinite alternate;
}
.scn-final-bargain .chicot {
  position: absolute; bottom: 15%; left: 30%; width: 36px; height: 64px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  box-shadow: -4px 0 8px rgba(0,0,0,.3);
  animation: fb-figure 5s ease-in-out infinite;
}
.scn-final-bargain .old-woman {
  position: absolute; bottom: 15%; left: 55%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #5a3828 0%, #3a2018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-4deg);
  box-shadow: 4px 0 8px rgba(0,0,0,.3);
  animation: fb-figure 5s ease-in-out infinite reverse;
}
.scn-final-bargain .coin-purse {
  position: absolute; bottom: 25%; left: 45%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #c08040 0%, #a06030 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: fb-purse 3s ease-in-out infinite alternate;
}
.scn-final-bargain .shadow-cast {
  position: absolute; bottom: 0; left: 25%; width: 70px; height: 25px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 100%);
  filter: blur(5px);
  animation: fb-shadow 5s ease-in-out infinite alternate;
}
@keyframes fb-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes fb-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes fb-purse { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.1); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fb-shadow { 0% { opacity: .4; transform: scaleX(1); } 50% { opacity: .7; transform: scaleX(1.3); } 100% { opacity: .5; transform: scaleX(.9); } }

.scn-chicot-resigns {
  background: 
    radial-gradient(ellipse at 50% 30%, #f0d8a0 0%, transparent 50%),
    linear-gradient(180deg, #d4b880 0%, #c0a060 50%, #b89850 100%);
}
.scn-chicot-resigns .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b89850 0%, #7a6030 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 15px 25px rgba(0,0,0,.3);
}
.scn-chicot-resigns .tower {
  position: absolute; bottom: 25%; left: 70%; width: 30px; height: 110px;
  background: linear-gradient(180deg, #8a7040 0%, #5a4828 100%);
  border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%;
  box-shadow: -2px 0 6px rgba(0,0,0,.3);
  transform: skewX(-2deg);
  animation: cr-tower 20s ease-in-out infinite alternate;
}
.scn-chicot-resigns .chicot-figure {
  position: absolute; bottom: 8%; left: 35%; width: 38px; height: 68px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  box-shadow: -3px 0 8px rgba(0,0,0,.3);
  animation: cr-figure 4s ease-in-out infinite;
}
.scn-chicot-resigns .old-woman-figure {
  position: absolute; bottom: 8%; left: 52%; width: 36px; height: 66px;
  background: linear-gradient(180deg, #5a3828 0%, #3a2018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  box-shadow: 3px 0 8px rgba(0,0,0,.3);
  animation: cr-figure 4s ease-in-out infinite reverse;
}
.scn-chicot-resigns .table-money {
  position: absolute; bottom: 15%; left: 42%; width: 50px; height: 6px;
  background: linear-gradient(90deg, #a08050 0%, #c0a060 50%, #a08050 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: cr-table 8s ease-in-out infinite alternate;
}
.scn-chicot-resigns .tree {
  position: absolute; bottom: 20%; left: 12%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #6a4830 0%, #3a2818 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(10deg);
  box-shadow: 2px 0 6px rgba(0,0,0,.2);
  animation: cr-tree 25s ease-in-out infinite alternate;
}
@keyframes cr-tower { 0% { transform: skewX(-2deg) translateY(0); } 50% { transform: skewX(-1deg) translateY(-5px); } 100% { transform: skewX(-2deg) translateY(0); } }
@keyframes cr-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes cr-table { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(.95); } }
@keyframes cr-tree { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } 100% { transform: rotate(10deg) translateY(0); } }

.scn-avoiding-home { background: linear-gradient(135deg, #2a1f1a 0%, #1a1210 50%, #0d0a09 100%), radial-gradient(ellipse at 30% 60%, #3a2a20 0%, transparent 70%); }
.scn-avoiding-home .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a2a20 0%, #2a1a12 100%); box-shadow: inset 0 -20px 30px rgba(0,0,0,.4); animation: ah-wall 12s ease-in-out infinite alternate; }
.scn-avoiding-home .floor { position:absolute; bottom:0; height:50%; left:0; right:0; background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-avoiding-home .table { position:absolute; bottom:40%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #4a3528 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-avoiding-home .chair { position:absolute; bottom:38%; left:55%; width:14%; height:18%; background: linear-gradient(180deg, #3a2518 0%, #1a100a 100%); border-radius: 20% 20% 8% 8% / 40% 40% 10% 10%; transform-origin: bottom center; animation: ah-chair 6s ease-in-out infinite; }
.scn-avoiding-home .lamp { position:absolute; top:20%; left:70%; width:8%; height:6%; background: radial-gradient(circle, #b08040 0%, #704a20 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(176,128,64,.3), 0 0 60px 20px rgba(176,128,64,.15); animation: ah-lamp 3s ease-in-out infinite alternate; }
.scn-avoiding-home .clothes-1 { position:absolute; bottom:15%; left:20%; width:20%; height:10%; background: linear-gradient(90deg, #5a3a2a 0%, #3a2218 100%); border-radius: 30% 10% 20% 40%; transform: rotate(-15deg); animation: ah-cloth 8s ease-in-out infinite; }
.scn-avoiding-home .clothes-2 { position:absolute; bottom:12%; left:45%; width:15%; height:8%; background: linear-gradient(90deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 30% 20% 10%; transform: rotate(10deg); animation: ah-cloth-2 9s ease-in-out infinite; }
.scn-avoiding-home .figure { position:absolute; bottom:38%; left:15%; width:12%; height:25%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ah-figure 5s ease-in-out infinite; }
@keyframes ah-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ah-chair { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes ah-lamp { 0% { opacity:.7; box-shadow: 0 0 20px 5px rgba(176,128,64,.2); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(176,128,64,.4); } 100% { opacity:.8; box-shadow: 0 0 25px 8px rgba(176,128,64,.25); } }
@keyframes ah-cloth { 0% { opacity:.6; transform: translateY(0) rotate(-15deg) } 50% { opacity:.8; transform: translateY(-3px) rotate(-10deg) } 100% { opacity:.6; transform: translateY(0) rotate(-15deg) } }
@keyframes ah-cloth-2 { 0% { opacity:.5; transform: translateY(0) rotate(10deg) } 50% { opacity:.7; transform: translateY(-2px) rotate(5deg) } 100% { opacity:.5; transform: translateY(0) rotate(10deg) } }
@keyframes ah-figure { 0% { opacity:.8; transform: translateX(0) rotate(0) } 25% { opacity:.9; transform: translateX(5px) rotate(2deg) } 50% { opacity:.85; transform: translateX(10px) rotate(-1deg) } 75% { opacity:.9; transform: translateX(15px) rotate(1deg) } 100% { opacity:.8; transform: translateX(20px) rotate(0) } }

.scn-dilemma-marriage { background: linear-gradient(180deg, #1c1814 0%, #2a2018 50%, #1a1210 100%), radial-gradient(ellipse at 70% 40%, #4a3020 0%, transparent 60%); }
.scn-dilemma-marriage .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); animation: dm-wall 10s ease-in-out infinite alternate; }
.scn-dilemma-marriage .door { position:absolute; left:0; bottom:0; width:25%; height:60%; background: linear-gradient(180deg, #3a2820 0%, #1a1210 100%); border-radius: 0 20% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.5); }
.scn-dilemma-marriage .cradle { position:absolute; bottom:30%; left:40%; width:20%; height:20%; background: linear-gradient(180deg, #4a3528 0%, #2a1a12 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: dm-cradle 4s ease-in-out infinite; }
.scn-dilemma-marriage .woman-silhouette { position:absolute; bottom:38%; left:35%; width:14%; height:22%; background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dm-woman 8s ease-in-out infinite; }
.scn-dilemma-marriage .man-silhouette { position:absolute; bottom:35%; left:55%; width:16%; height:28%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dm-man 9s ease-in-out infinite; }
.scn-dilemma-marriage .letter { position:absolute; bottom:20%; left:30%; width:8%; height:6%; background: linear-gradient(135deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 10% 20% 10% 20%; transform: rotate(20deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: dm-letter 6s ease-in-out infinite; }
@keyframes dm-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes dm-cradle { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } }
@keyframes dm-woman { 0% { opacity:.7; transform: translateY(0) rotate(0) } 25% { opacity:.8; transform: translateY(-2px) rotate(1deg) } 50% { opacity:.75; transform: translateY(0) rotate(-1deg) } 75% { opacity:.8; transform: translateY(-1px) rotate(2deg) } 100% { opacity:.7; transform: translateY(0) rotate(0) } }
@keyframes dm-man { 0% { opacity:.8; transform: translateX(0) rotate(0) } 25% { opacity:.85; transform: translateX(-3px) rotate(-1deg) } 50% { opacity:.8; transform: translateX(0) rotate(1deg) } 75% { opacity:.85; transform: translateX(2px) rotate(-1deg) } 100% { opacity:.8; transform: translateX(0) rotate(0) } }
@keyframes dm-letter { 0% { opacity:.5; transform: rotate(20deg) translateY(0) } 50% { opacity:.7; transform: rotate(15deg) translateY(-2px) } 100% { opacity:.5; transform: rotate(20deg) translateY(0) } }

.scn-winter-night { background: linear-gradient(180deg, #0d0a16 0%, #12101e 40%, #1a1626 100%), radial-gradient(ellipse at 50% 60%, #2a2036 0%, transparent 70%); }
.scn-winter-night .room-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1422 0%, #0f0c18 100%); box-shadow: inset 0 -15px 25px rgba(0,0,0,.5); animation: wn-wall 14s ease-in-out infinite alternate; }
.scn-winter-night .floor { position:absolute; bottom:0; height:45%; left:0; right:0; background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-winter-night .fireplace { position:absolute; bottom:30%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #3a2a28 0%, #1a1210 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: 0 0 30px rgba(0,0,0,.5); }
.scn-winter-night .fire { position:absolute; bottom:38%; left:20%; width:10%; height:15%; background: radial-gradient(ellipse at 50% 100%, #e07030 0%, #b04020 40%, #702a1a 70%, transparent 100%); border-radius: 50% 50% 20% 20%; animation: wn-fire 2s ease-in-out infinite alternate; }
.scn-winter-night .armchair { position:absolute; bottom:28%; left:45%; width:25%; height:25%; background: linear-gradient(180deg, #2a1a18 0%, #1a100e 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform-origin: bottom center; animation: wn-chair 6s ease-in-out infinite; }
.scn-winter-night .child { position:absolute; bottom:30%; left:50%; width:8%; height:10%; background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: translateX(-50%); animation: wn-child 8s ease-in-out infinite; }
.scn-winter-night .window { position:absolute; top:15%; right:15%; width:20%; height:30%; background: linear-gradient(180deg, #1a2030 0%, #28304a 100%); border-radius: 8% 8% 5% 5%; border: 3px solid #1a1420; box-shadow: inset 0 0 20px rgba(120,140,180,.1); animation: wn-window 15s ease-in-out infinite; }
.scn-winter-night .snow { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(circle at 20% 10%, rgba(220,240,255,.15) 0%, transparent 30%), radial-gradient(circle at 80% 20%, rgba(220,240,255,.1) 0%, transparent 30%), radial-gradient(circle at 50% 40%, rgba(220,240,255,.05) 0%, transparent 30%); animation: wn-snow 20s linear infinite; }
@keyframes wn-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes wn-fire { 0% { transform: scaleY(0.8) translateY(0); opacity:.85 } 50% { transform: scaleY(1.1) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateY(0); opacity:.9 } }
@keyframes wn-chair { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } }
@keyframes wn-child { 0% { opacity:.6; transform: translateX(-50%) translateY(0) } 50% { opacity:.8; transform: translateX(-50%) translateY(-2px) } 100% { opacity:.6; transform: translateX(-50%) translateY(0) } }
@keyframes wn-window { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes wn-snow { 0% { transform: translateY(-10%) scale(1) } 50% { transform: translateY(10%) scale(1.05) } 100% { transform: translateY(20%) scale(1) } }

.scn-rage-and-madness { background: linear-gradient(135deg, #0a080c 0%, #121016 30%, #1c1820 100%), radial-gradient(ellipse at 50% 40%, #2a1a28 0%, transparent 70%); }
.scn-rage-and-madness .dark-bg { position:absolute; inset:0; background: linear-gradient(180deg, #121016 0%, #0a080c 100%); box-shadow: inset 0 0 50px rgba(0,0,0,.8); animation: rm-bg 10s ease-in-out infinite alternate; }
.scn-rage-and-madness .floor-rage { position:absolute; bottom:0; height:45%; left:0; right:0; background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
.scn-rage-and-madness .figure-rage { position:absolute; bottom:30%; left:40%; width:20%; height:35%; background: linear-gradient(180deg, #1a1218 0%, #0a080c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rm-figure 3s ease-in-out infinite; }
.scn-rage-and-madness .shadow-rage-1 { position:absolute; bottom:28%; left:35%; width:30%; height:20%; background: rgba(10,8,12,.7); border-radius: 50%; filter: blur(15px); animation: rm-shadow1 4s ease-in-out infinite alternate; }
.scn-rage-and-madness .shadow-rage-2 { position:absolute; bottom:32%; right:30%; width:25%; height:15%; background: rgba(10,8,12,.6); border-radius: 50%; filter: blur(10px); animation: rm-shadow2 5s ease-in-out infinite alternate; }
.scn-rage-and-madness .broken-glass { position:absolute; bottom:18%; left:55%; width:12%; height:8%; background: linear-gradient(135deg, #3a2a28 0%, #1a1010 100%); clip-path: polygon(20% 0%, 60% 10%, 80% 0%, 90% 30%, 70% 50%, 100% 60%, 80% 100%, 40% 80%, 10% 100%, 0% 60%, 20% 30%); animation: rm-glass 6s ease-in-out infinite; }
.scn-rage-and-madness .rage-aura { position:absolute; top:20%; left:30%; width:40%; height:50%; background: radial-gradient(circle, rgba(112,34,67,.4) 0%, transparent 70%); border-radius: 50%; filter: blur(20px); animation: rm-aura 2s ease-in-out infinite alternate; }
@keyframes rm-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes rm-figure { 0% { transform: rotate(0) scale(1) } 25% { transform: rotate(-5deg) scale(1.05) } 50% { transform: rotate(3deg) scale(1.1) } 75% { transform: rotate(-2deg) scale(1.05) } 100% { transform: rotate(0) scale(1) } }
@keyframes rm-shadow1 { 0% { opacity:.5; transform: translateX(0) scale(1) } 50% { opacity:.7; transform: translateX(-5px) scale(1.1) } 100% { opacity:.5; transform: translateX(0) scale(1) } }
@keyframes rm-shadow2 { 0% { opacity:.4; transform: translateY(0) scale(1) } 50% { opacity:.6; transform: translateY(-3px) scale(1.15) } 100% { opacity:.4; transform: translateY(0) scale(1) } }
@keyframes rm-glass { 0% { opacity:.5; transform: rotate(0) } 50% { opacity:.8; transform: rotate(20deg) } 100% { opacity:.5; transform: rotate(0) } }
@keyframes rm-aura { 0% { opacity:.3; transform: scale(0.9) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(1) } }

/* scene: plea-to-society (tense, dim-interior) */
.scn-plea-to-society {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 30%, #3a2a2a 70%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 10%, rgba(180,140,80,0.15) 0%, transparent 60%);
}
.scn-plea-to-society .wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(90deg, #2a2020 0%, #3a2a2a 50%, #2a2020 100%); }
.scn-plea-to-society .window { position:absolute; top:15%; left:35%; width:30%; height:40%; background:radial-gradient(ellipse at 50% 50%, #6a5a3a 0%, #3a2a2a 100%); border:2px solid #4a3a2a; box-shadow:inset 0 0 40px rgba(0,0,0,.6); }
.scn-plea-to-society .light-shaft { position:absolute; top:0; left:42%; width:16%; height:100%; background:linear-gradient(180deg, rgba(200,180,120,0.15) 0%, rgba(200,180,120,0.05) 60%, transparent 100%); clip-path:polygon(20% 0,80% 0,60% 100%,40% 100%); animation:ps-light 8s ease-in-out infinite alternate; }
.scn-plea-to-society .victim-1,
.scn-plea-to-society .victim-2,
.scn-plea-to-society .victim-3 { position:absolute; bottom:20%; width:24px; height:60px; background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 30% 30% 70% 70%; opacity:0.5; }
.scn-plea-to-society .victim-1 { left:20%; transform:rotate(-5deg) scale(0.9); animation:ps-sway 4s ease-in-out infinite; }
.scn-plea-to-society .victim-2 { left:28%; top:auto; bottom:18%; height:66px; transform:rotate(3deg) scale(1.05); animation:ps-sway 5s ease-in-out infinite 1s; }
.scn-plea-to-society .victim-3 { left:14%; bottom:22%; height:56px; transform:rotate(-8deg) scale(0.85); animation:ps-sway 6s ease-in-out infinite 2s; }
.scn-plea-to-society .figure { position:absolute; bottom:20%; left:55%; width:30px; height:80px; background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ps-figure 5s ease-in-out infinite; }
.scn-plea-to-society .hand { position:absolute; bottom:40%; left:62%; width:18px; height:8px; background:#1a1a1a; border-radius:50%; transform:rotate(-30deg) scaleX(1.3); transform-origin:left center; animation:ps-hand 3s ease-in-out infinite alternate; }
@keyframes ps-light { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes ps-sway { 0% { transform:rotate(-5deg) translateX(0); } 50% { transform:rotate(3deg) translateX(2px); } 100% { transform:rotate(-5deg) translateX(0); } }
@keyframes ps-figure { 0% { transform:translateX(0) translateY(0); } 25% { transform:translateX(-4px) translateY(-2px) rotate(-1deg); } 50% { transform:translateX(0) translateY(0) rotate(1deg); } 75% { transform:translateX(3px) translateY(-1px) rotate(-1deg); } 100% { transform:translateX(0) translateY(0); } }
@keyframes ps-hand { 0% { transform:rotate(-30deg) scaleX(1.3) translateX(0); } 100% { transform:rotate(-50deg) scaleX(1.5) translateX(8px); } }

/* scene: beginning-dream (calm, dim-interior) */
.scn-beginning-dream {
  background: 
    linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 40%, #3a2a4a 80%, #2a1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a5a 0%, transparent 70%);
}
.scn-beginning-dream .room-bg { position:absolute; inset:0 0 25% 0; background:linear-gradient(135deg, #2a2a4a 0%, #3a2a4a 100%); animation:bd-room 20s ease-in-out infinite alternate; }
.scn-beginning-dream .bed { position:absolute; bottom:20%; left:30%; width:40%; height:30%; background:linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius:20% 20% 8% 8%; box-shadow:0 8px 20px rgba(0,0,0,.4); }
.scn-beginning-dream .dreamer { position:absolute; bottom:28%; left:35%; width:30%; height:25%; background:linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:bd-sleep 6s ease-in-out infinite; }
.scn-beginning-dream .window-night { position:absolute; top:10%; right:12%; width:28%; height:35%; background:radial-gradient(ellipse at 50% 30%, #2a3a5a 0%, #1a1a3a 100%); border:3px solid #4a3a4a; box-shadow:inset 0 0 30px rgba(0,0,0,.5); }
.scn-beginning-dream .dream-particle { position:absolute; width:12px; height:12px; background:radial-gradient(circle, #b0a0c0 0%, transparent 70%); border-radius:50%; filter:blur(2px); }
.scn-beginning-dream .dp-1 { top:35%; left:20%; animation:bd-float 12s linear infinite; }
.scn-beginning-dream .dp-2 { top:45%; left:60%; width:16px; height:16px; animation:bd-float 15s linear infinite 3s; }
.scn-beginning-dream .dp-3 { top:20%; left:45%; width:8px; height:8px; animation:bd-float 18s linear infinite 6s; }
.scn-beginning-dream .moon { position:absolute; top:5%; right:20%; width:30px; height:30px; background:radial-gradient(circle, #c0b0d0 0%, #a090b0 100%); border-radius:50%; box-shadow:0 0 40px 10px rgba(160,144,176,0.3); animation:bd-moon 8s ease-in-out infinite alternate; }
@keyframes bd-room { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes bd-sleep { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes bd-float { 0% { transform:translateY(0) translateX(0) scale(1); opacity:0.3; } 25% { transform:translateY(-30px) translateX(10px) scale(1.2); opacity:0.7; } 50% { transform:translateY(-60px) translateX(-5px) scale(0.9); opacity:0.5; } 75% { transform:translateY(-90px) translateX(15px) scale(1.1); opacity:0.8; } 100% { transform:translateY(-120px) translateX(0) scale(1); opacity:0.2; } }
@keyframes bd-moon { 0% { box-shadow:0 0 30px 8px rgba(160,144,176,0.2); } 50% { box-shadow:0 0 50px 15px rgba(160,144,176,0.5); } 100% { box-shadow:0 0 35px 10px rgba(160,144,176,0.3); } }

/* scene: suicide-bureau-facade (warm, sunlit) */
.scn-suicide-bureau-facade {
  background: 
    linear-gradient(180deg, #7aa0c0 0%, #b0c8d8 40%, #f0e8c0 70%, #e8d8a0 100%),
    radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%);
}
.scn-suicide-bureau-facade .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #7aa0c0 0%, #b0c8d8 100%); }
.scn-suicide-bureau-facade .building { position:absolute; bottom:20%; left:15%; width:70%; height:60%; background:linear-gradient(180deg, #d0b88a 0%, #c0a070 100%); border-radius:4% 4% 2% 2%; box-shadow:0 -4px 20px rgba(0,0,0,.1); }
.scn-suicide-bureau-facade .sign { position:absolute; top:30%; left:50%; width:50%; height:15%; background:linear-gradient(180deg, #e8c860 0%, #c8a030 100%); border-radius:8px; transform:translateX(-50%); box-shadow:0 4px 12px rgba(0,0,0,.2); animation:sbf-sign 4s ease-in-out infinite alternate; }
.scn-suicide-bureau-facade .door { position:absolute; bottom:0; left:50%; width:20%; height:45%; background:linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:8% 8% 0 0; transform:translateX(-50%); box-shadow:inset 0 -10px 20px rgba(0,0,0,.3); }
.scn-suicide-bureau-facade .window-top { position:absolute; top:10%; width:15%; height:20%; background:radial-gradient(ellipse at 50% 50%, #e8d8b0 0%, #c8b890 100%); border:3px solid #a09060; box-shadow:inset 0 0 10px rgba(0,0,0,.2); }
.scn-suicide-bureau-facade .win-t-l { left:20%; }
.scn-suicide-bureau-facade .win-t-r { right:20%; }
.scn-suicide-bureau-facade .footman { position:absolute; bottom:20%; width:16px; height:40px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; }
.scn-suicide-bureau-facade .footman-left { left:20%; transform:scaleX(-1); animation:sbf-footman 6s ease-in-out infinite; }
.scn-suicide-bureau-facade .footman-right { right:20%; animation:sbf-footman 6s ease-in-out infinite 1.5s; }
.scn-suicide-bureau-facade .sun { position:absolute; top:5%; left:5%; width:40px; height:40px; background:radial-gradient(circle, #f0e080 0%, #f0d060 40%, transparent 70%); border-radius:50%; box-shadow:0 0 60px 20px rgba(240,208,96,0.3); animation:sbf-sun 20s linear infinite alternate; }
@keyframes sbf-sign { 0% { transform:translateX(-50%) rotate(-2deg); } 50% { transform:translateX(-50%) rotate(0deg) scale(1.02); } 100% { transform:translateX(-50%) rotate(2deg); } }
@keyframes sbf-footman { 0% { transform:scaleX(-1) translateY(0); } 50% { transform:scaleX(-1) translateY(-2px); } 100% { transform:scaleX(-1) translateY(0); } }
@keyframes sbf-sun { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(20px) translateY(-10px) scale(1.1); } 100% { transform:translateX(0) translateY(0); } }

/* scene: entering-the-building (calm, bright-interior) */
.scn-entering-the-building {
  background: 
    linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 50%, #c0b090 100%),
    radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 70%);
}
.scn-entering-the-building .hall-bg { position:absolute; inset:0 0 30% 0; background:linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%); }
.scn-entering-the-building .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(0deg, #b0a080 0%, #c8b898 100%); clip-path:polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); }
.scn-entering-the-building .cloak-room { position:absolute; right:8%; bottom:30%; width:20%; height:50%; background:linear-gradient(180deg, #a09070 0%, #8a7a5a 100%); border-radius:10% 10% 0 0; box-shadow:-4px 0 12px rgba(0,0,0,.1); }
.scn-entering-the-building .footman-seated { position:absolute; bottom:35%; width:20px; height:35px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin:bottom center; }
.scn-entering-the-building .fm-s-1 { left:25%; animation:etb-seat 5s ease-in-out infinite; }
.scn-entering-the-building .fm-s-2 { left:45%; animation:etb-seat 5s ease-in-out infinite 1.5s; }
.scn-entering-the-building .visitor { position:absolute; bottom:30%; left:15%; width:22px; height:55px; background:linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:50% 50% 30% 30%/ 60% 60% 40% 40%; transform-origin:bottom center; animation:etb-walk 8s ease-in-out infinite; }
.scn-entering-the-building .chandelier { position:absolute; top:5%; left:50%; width:60px; height:40px; background:linear-gradient(180deg, #e8d8a0 0%, #c8b870 100%); border-radius:50% 50% 30% 30%; transform:translateX(-50%); box-shadow:0 0 30px 10px rgba(200,184,112,0.3); }
.scn-entering-the-building .light-aureole { position:absolute; top:2%; left:50%; width:80px; height:80px; background:radial-gradient(circle, rgba(240,224,160,0.4) 0%, transparent 70%); border-radius:50%; transform:translateX(-50%); animation:etb-glow 4s ease-in-out infinite alternate; }
.scn-entering-the-building .door-frame { position:absolute; bottom:20%; left:10%; width:30%; height:60%; border:8px solid #6a5a3a; border-radius:10% 10% 0 0; background:transparent; clip-path:polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); box-shadow:inset 0 0 30px rgba(0,0,0,.1); }
@keyframes etb-seat { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes etb-walk { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 25% { transform:translateX(10px) translateY(-1px) rotate(1deg); } 50% { transform:translateX(20px) translateY(0) rotate(-1deg); } 75% { transform:translateX(30px) translateY(-1px) rotate(0deg); } 100% { transform:translateX(40px) translateY(0) rotate(0deg); } }
@keyframes etb-glow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-crazy-people-attraction {
  background: radial-gradient(ellipse at 50% 40%, #2a2a3e 0%, #12121f 70%, #080810 100%),
              linear-gradient(180deg, #1c1c2a 0%, #0e0e18 100%);
}
.scn-crazy-people-attraction .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1e2e 0%, #141422 100%);
  animation: cpa-wall 20s ease-in-out infinite alternate;
}
.scn-crazy-people-attraction .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-crazy-people-attraction .figure-silhouette {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: cpa-fig 6s ease-in-out infinite;
}
.scn-crazy-people-attraction .glow-spot {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 50px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.15) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, 10%);
  animation: cpa-glow 8s ease-in-out infinite alternate;
}
.scn-crazy-people-attraction .cloud-dementia {
  position: absolute; border-radius: 50%;
  background: radial-gradient(ellipse, rgba(200,190,220,0.12) 0%, transparent 70%);
  filter: blur(8px);
}
.scn-crazy-people-attraction .cloud-d-a {
  width: 120px; height: 40px; top: 20%; left: 10%;
  animation: cpa-drift-a 30s linear infinite;
}
.scn-crazy-people-attraction .cloud-d-b {
  width: 80px; height: 30px; top: 35%; left: 60%;
  animation: cpa-drift-b 25s linear infinite;
  animation-delay: -10s;
}
.scn-crazy-people-attraction .cloud-d-c {
  width: 100px; height: 35px; top: 50%; left: 30%;
  animation: cpa-drift-c 35s linear infinite;
  animation-delay: -20s;
}
.scn-crazy-people-attraction .window-arch {
  position: absolute; top: 12%; left: 65%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: cpa-window 15s ease-in-out infinite alternate;
}
@keyframes cpa-wall {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cpa-fig {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-48%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(0deg); }
  75% { transform: translateX(-52%) translateY(-3px) rotate(-1deg); }
}
@keyframes cpa-glow {
  0% { opacity: 0.3; transform: translate(-50%, 10%) scale(0.95); }
  50% { opacity: 0.6; transform: translate(-50%, 8%) scale(1.05); }
  100% { opacity: 0.4; transform: translate(-50%, 12%) scale(1); }
}
@keyframes cpa-drift-a {
  0% { transform: translateX(-30px) scale(1); }
  50% { transform: translateX(30vw) scale(1.2); }
  100% { transform: translateX(80vw) scale(0.8); }
}
@keyframes cpa-drift-b {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-40vw) scale(1.1); }
  100% { transform: translateX(-80vw) scale(0.9); }
}
@keyframes cpa-drift-c {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(20vw) rotate(5deg); }
  100% { transform: translateX(60vw) rotate(-5deg); }
}
@keyframes cpa-window {
  0% { opacity: 0.5; transform: scaleY(0.95); }
  50% { opacity: 0.8; transform: scaleY(1.05); }
  100% { opacity: 0.6; transform: scaleY(1); }
}

.scn-happiness-of-madness {
  background: radial-gradient(ellipse at 40% 50%, #2c2438 0%, #141021 70%, #0a0812 100%),
              linear-gradient(180deg, #1e182a 0%, #120e1e 100%);
}
.scn-happiness-of-madness .bg-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1428 0%, #0f0b1c 100%);
  animation: hpm-dim 15s ease-in-out infinite alternate;
}
.scn-happiness-of-madness .crown {
  position: absolute; top: 18%; left: 50%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #b8965a 0%, #8a6a3a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: 0 0 20px rgba(180,150,90,0.4);
  transform: translateX(-50%);
  animation: hpm-crown 10s ease-in-out infinite;
}
.scn-happiness-of-madness .figure-enthroned {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #0f0b1c 0%, #080612 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: hpm-figure 8s ease-in-out infinite alternate;
}
.scn-happiness-of-madness .orb {
  position: absolute; bottom: 38%; left: 45%; width: 14px; height: 14px;
  background: radial-gradient(circle, #e0c080 0%, #b09050 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px rgba(200,170,100,0.5);
  animation: hpm-orb 6s ease-in-out infinite;
}
.scn-happiness-of-madness .sparkle {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #f0e0a0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(240,224,160,0.4);
}
.scn-happiness-of-madness .sparkle-a {
  top: 30%; left: 30%;
  animation: hpm-sparkle 4s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-happiness-of-madness .sparkle-b {
  top: 45%; left: 65%;
  animation: hpm-sparkle 5s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-happiness-of-madness .sparkle-c {
  top: 55%; left: 40%;
  animation: hpm-sparkle 3.5s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-happiness-of-madness .curtain-curve {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: radial-gradient(ellipse at 30% 100%, #2a2040 0%, transparent 60%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: hpm-curtain 20s ease-in-out infinite alternate;
}
@keyframes hpm-dim {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes hpm-crown {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-48%) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
  75% { transform: translateX(-52%) translateY(-1px) rotate(1deg); }
}
@keyframes hpm-figure {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.03); }
  100% { transform: translateX(-50%) scaleY(0.97); }
}
@keyframes hpm-orb {
  0%,100% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(-4px, -2px) scale(1.1); }
  50% { transform: translate(2px, -5px) scale(1.05); }
  75% { transform: translate(-1px, -1px) scale(0.95); }
}
@keyframes hpm-sparkle {
  0%,100% { opacity: 0; transform: scale(0.5); }
  30% { opacity: 1; transform: scale(1.5); }
  60% { opacity: 0.8; transform: scale(1); }
}
@keyframes hpm-curtain {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.1); }
  100% { transform: translateY(2px) scaleY(0.9); }
}

.scn-leaning-over-abyss {
  background: radial-gradient(ellipse at 50% 60%, #1e1a2e 0%, #0a0a14 70%, #020206 100%),
              linear-gradient(180deg, #14101e 0%, #0a0812 100%);
}
.scn-leaning-over-abyss .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0c1a 0%, #060612 100%);
  animation: loa-deep 25s ease-in-out infinite alternate;
}
.scn-leaning-over-abyss .abyss-swirl {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, #1a1a3a 0%, #0a0a1a 60%, transparent 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  animation: loa-swirl 12s ease-in-out infinite alternate;
}
.scn-leaning-over-abyss .ledge {
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #2c2a3e 0%, #1e1e2a 100%);
  border-radius: 10% 10% 5% 5% / 40% 40% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: loa-ledge 8s ease-in-out infinite alternate;
}
.scn-leaning-over-abyss .figure-leaning {
  position: absolute; bottom: 40%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #0c0a16 0%, #06040a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  transform: translateX(-50%) rotate(10deg);
  transform-origin: bottom center;
  animation: loa-figure 5s ease-in-out infinite;
}
.scn-leaning-over-abyss .hand-grip {
  position: absolute; bottom: 43%; left: 48%; width: 8px; height: 6px;
  background: #0a0812;
  border-radius: 40%;
  animation: loa-hand 5s ease-in-out infinite;
}
.scn-leaning-over-abyss .mist-fall {
  position: absolute; width: 40px; height: 60px;
  background: linear-gradient(180deg, rgba(160,150,180,0.08) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-leaning-over-abyss .mist-1 {
  top: 60%; left: 30%;
  animation: loa-mist 15s linear infinite;
}
.scn-leaning-over-abyss .mist-2 {
  top: 70%; left: 60%;
  animation: loa-mist 20s linear infinite reverse;
  animation-delay: -7s;
}
@keyframes loa-deep {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes loa-swirl {
  0% { transform: scaleY(0.95) rotate(0deg); }
  50% { transform: scaleY(1.05) rotate(2deg); }
  100% { transform: scaleY(0.98) rotate(-1deg); }
}
@keyframes loa-ledge {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes loa-figure {
  0%,100% { transform: translateX(-50%) rotate(10deg) scaleY(1); }
  25% { transform: translateX(-48%) rotate(12deg) scaleY(1.02); }
  50% { transform: translateX(-50%) rotate(8deg) scaleY(0.98); }
  75% { transform: translateX(-52%) rotate(11deg) scaleY(1.01); }
}
@keyframes loa-hand {
  0%,100% { transform: translate(0,0); }
  25% { transform: translate(1px, -2px); }
  50% { transform: translate(-1px, -1px); }
  75% { transform: translate(0, -3px); }
}
@keyframes loa-mist {
  0% { transform: translateY(0) scale(1); opacity: 0; }
  30% { opacity: 0.6; }
  60% { opacity: 0.2; }
  100% { transform: translateY(-30px) scale(1.5); opacity: 0; }
}

.scn-trivial-mystery {
  background: radial-gradient(ellipse at 50% 40%, #1e1e2e 0%, #12121e 70%, #080810 100%),
              linear-gradient(180deg, #1a1a28 0%, #0e0e18 100%);
}
.scn-trivial-mystery .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #181826 0%, #0e0e1a 100%);
  animation: tm-bg 20s ease-in-out infinite alternate;
}
.scn-trivial-mystery .desk {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #2c2a3a 0%, #1c1a2a 100%);
  border-radius: 5% 5% 10% 10% / 20% 20% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: tm-desk 12s ease-in-out infinite alternate;
}
.scn-trivial-mystery .figure-seated {
  position: absolute; bottom: 30%; left: 50%; width: 26px; height: 44px;
  background: linear-gradient(180deg, #0c0a16 0%, #06040a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: tm-fig 7s ease-in-out infinite;
}
.scn-trivial-mystery .idea {
  position: absolute; border-radius: 50%;
  background: radial-gradient(circle, rgba(200,190,220,0.15) 0%, transparent 70%);
  filter: blur(4px);
}
.scn-trivial-mystery .idea-a {
  width: 30px; height: 30px; top: 15%; left: 20%;
  animation: tm-idea-a 9s ease-in-out infinite;
}
.scn-trivial-mystery .idea-b {
  width: 20px; height: 20px; top: 25%; left: 60%;
  animation: tm-idea-b 11s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-trivial-mystery .idea-c {
  width: 25px; height: 25px; top: 35%; left: 40%;
  animation: tm-idea-c 13s ease-in-out infinite;
  animation-delay: -8s;
}
.scn-trivial-mystery .candle-glow {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 18px 6px rgba(200,160,80,0.3), 0 0 40px 12px rgba(200,160,80,0.1);
  animation: tm-candle 4s ease-in-out infinite alternate;
}
@keyframes tm-bg {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes tm-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(1px); }
}
@keyframes tm-fig {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-49%) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  75% { transform: translateX(-51%) translateY(-3px) rotate(1deg); }
}
@keyframes tm-idea-a {
  0%,100% { transform: translate(0,0) scale(1); opacity: 0.3; }
  25% { transform: translate(-10px, -15px) scale(1.2); opacity: 0.8; }
  50% { transform: translate(5px, -25px) scale(0.9); opacity: 0.5; }
  75% { transform: translate(-5px, -10px) scale(1.1); opacity: 0.7; }
}
@keyframes tm-idea-b {
  0%,100% { transform: translate(0,0) scale(1); opacity: 0.2; }
  30% { transform: translate(15px, -20px) scale(1.3); opacity: 0.7; }
  60% { transform: translate(-10px, -30px) scale(0.8); opacity: 0.4; }
}
@keyframes tm-idea-c {
  0%,100% { transform: translate(0,0) scale(1); opacity: 0.4; }
  20% { transform: translate(-20px, -10px) scale(1.1); opacity: 0.9; }
  40% { transform: translate(10px, -20px) scale(1.2); opacity: 0.6; }
  60% { transform: translate(-5px, -5px) scale(0.95); opacity: 0.5; }
  80% { transform: translate(8px, -15px) scale(1.05); opacity: 0.7; }
}
@keyframes tm-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; box-shadow: 0 0 18px 6px rgba(200,160,80,0.3), 0 0 40px 12px rgba(200,160,80,0.1); }
  50% { transform: scaleY(1.05) scaleX(0.95); opacity: 1; box-shadow: 0 0 24px 8px rgba(200,160,80,0.4), 0 0 50px 16px rgba(200,160,80,0.15); }
  100% { transform: scaleY(0.95) scaleX(1.02); opacity: 0.7; box-shadow: 0 0 16px 5px rgba(200,160,80,0.25), 0 0 35px 10px rgba(200,160,80,0.08); }
}

.scn-corset-monster {
  background: linear-gradient(180deg, #0d0b1a 0%, #1a122e 40%, #2a1a3e 100%),
              radial-gradient(ellipse at 30% 80%, #2a1a3e 0%, transparent 70%);
}
.scn-corset-monster .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a122e 0%, #0d0b1a 100%); opacity: 0.9;
  animation: cm-bg-pulse 8s ease-in-out infinite alternate;
}
.scn-corset-monster .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #0a0812 0%, #161226 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-corset-monster .monster-body {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #2a1a3e 0%, #0d0b1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 40px rgba(0,0,0,0.8); transform-origin: center bottom;
  animation: cm-monster-breathe 4s ease-in-out infinite;
}
.scn-corset-monster .monster-eye-left,
.scn-corset-monster .monster-eye-right {
  position: absolute; width: 12%; height: 8%; background: radial-gradient(circle, #c8553d 0%, #5e1a1d 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,85,61,0.6);
  animation: cm-eye-glow 3s ease-in-out infinite alternate;
}
.scn-corset-monster .monster-eye-left { bottom: 45%; left: 38%; }
.scn-corset-monster .monster-eye-right { bottom: 45%; right: 38%; }
.scn-corset-monster .candle {
  position: absolute; bottom: 48%; left: 15%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: cm-candle-flicker 0.8s infinite alternate;
}
.scn-corset-monster .candle-glow {
  position: absolute; bottom: 50%; left: 12%; width: 15%; height: 20%;
  background: radial-gradient(circle, rgba(255,180,80,0.4) 0%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: cm-glow-pulse 2s ease-in-out infinite alternate;
}
@keyframes cm-bg-pulse { 0% { opacity:0.85 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes cm-monster-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) scaleX(0.96) } 100% { transform: scaleY(1) } }
@keyframes cm-eye-glow { 0% { box-shadow: 0 0 10px 3px rgba(200,85,61,0.4) } 50% { box-shadow: 0 0 30px 10px rgba(200,85,61,0.8) } 100% { box-shadow: 0 0 20px 6px rgba(200,85,61,0.6) } }
@keyframes cm-candle-flicker { 0% { transform: scaleY(1) scaleX(1) } 25% { transform: scaleY(1.05) scaleX(0.95) } 75% { transform: scaleY(0.95) scaleX(1.05) } 100% { transform: scaleY(1) scaleX(1) } }
@keyframes cm-glow-pulse { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(1) } }

.scn-greedy-mother {
  background: linear-gradient(180deg, #1a121a 0%, #2a1a2a 40%, #1a0e1a 100%),
              radial-gradient(ellipse at 50% 70%, #3a203a 0%, transparent 70%);
}
.scn-greedy-mother .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%); opacity: 0.8;
  animation: gm-bg-shift 12s ease-in-out infinite alternate;
}
.scn-greedy-mother .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: gm-table-sway 6s ease-in-out infinite;
}
.scn-greedy-mother .mother {
  position: absolute; bottom: 20%; left: 50%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #5a3a4a 0%, #3a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: gm-mother-sway 5s ease-in-out infinite alternate;
}
.scn-greedy-mother .child-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #1a0e1a 0%, #0a060a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 10px rgba(0,0,0,0.3); animation: gm-child-hide 8s ease-in-out infinite;
}
.scn-greedy-mother .coins-pile {
  position: absolute; bottom: 23%; left: 45%; width: 8%; height: 6%;
  background: radial-gradient(circle at 50% 30%, #a08040 0%, #605020 100%);
  border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: gm-coins-shine 3s ease-in-out infinite alternate;
}
.scn-greedy-mother .candle {
  position: absolute; bottom: 30%; left: 30%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: gm-candle-flicker 0.8s infinite alternate;
}
.scn-greedy-mother .candle-glow {
  position: absolute; bottom: 32%; left: 27%; width: 10%; height: 16%;
  background: radial-gradient(circle, rgba(255,180,80,0.3) 0%, transparent 70%);
  filter: blur(5px); animation: gm-glow-pulse 2s ease-in-out infinite alternate;
}
.scn-greedy-mother .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: gm-shadow-fade 6s ease-in-out infinite;
}
@keyframes gm-bg-shift { 0% { opacity:0.75 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes gm-table-sway { 0% { transform: rotate(0deg) } 50% { transform: rotate(0.5deg) } 100% { transform: rotate(-0.3deg) } }
@keyframes gm-mother-sway { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(0deg) } 100% { transform: translateX(-50%) translateY(0) rotate(1deg) } }
@keyframes gm-child-hide { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes gm-coins-shine { 0% { box-shadow: 0 2px 8px rgba(0,0,0,0.5) } 50% { box-shadow: 0 0 20px rgba(160,128,64,0.7) } 100% { box-shadow: 0 2px 8px rgba(0,0,0,0.5) } }
@keyframes gm-candle-flicker { 0% { transform: scaleY(1) scaleX(1) } 25% { transform: scaleY(1.05) scaleX(0.95) } 75% { transform: scaleY(0.95) scaleX(1.05) } 100% { transform: scaleY(1) scaleX(1) } }
@keyframes gm-glow-pulse { 0% { opacity:0.3; transform: scale(0.8) } 50% { opacity:0.5; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(1) } }
@keyframes gm-shadow-fade { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.6 } }

.scn-disgust-reflection {
  background: linear-gradient(180deg, #4a4a5a 0%, #6a6a7a 40%, #5a5a6a 100%),
              radial-gradient(ellipse at 50% 30%, #7a7a8a 0%, transparent 70%);
}
.scn-disgust-reflection .bg-overcast {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 100%); opacity: 0.8;
  animation: dr-bg-mist 15s ease-in-out infinite alternate;
}
.scn-disgust-reflection .mirror-frame {
  position: absolute; top: 15%; left: 25%; right: 25%; bottom: 15%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10%; box-shadow: 0 0 30px rgba(0,0,0,0.4);
  animation: dr-frame-settle 20s ease-in-out infinite;
}
.scn-disgust-reflection .reflection-surface {
  position: absolute; top: 18%; left: 28%; right: 28%; bottom: 18%;
  background: linear-gradient(180deg, #8a8a9a 0%, #6a6a7a 100%);
  border-radius: 8%; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: dr-surface-ripple 6s ease-in-out infinite alternate;
}
.scn-disgust-reflection .figure {
  position: absolute; top: 25%; left: 45%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: dr-figure-turn 8s ease-in-out infinite;
}
.scn-disgust-reflection .figure-reflection {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 35%;
  background: linear-gradient(0deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 50% 50% / 40% 40% 60% 60%;
  transform: translateX(-50%) scaleY(-0.8); opacity: 0.6;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: dr-reflection-shimmer 5s ease-in-out infinite;
}
.scn-disgust-reflection .ripple {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 8%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.15) 0%, transparent 70%);
  border-radius: 50%; animation: dr-ripple-spread 4s ease-out infinite;
}
@keyframes dr-bg-mist { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes dr-frame-settle { 0% { transform: scale(0.98) } 50% { transform: scale(1.01) } 100% { transform: scale(0.99) } }
@keyframes dr-surface-ripple { 0% { background-position: 0% 0% } 50% { background-position: 10% 5% } 100% { background-position: -5% -2% } }
@keyframes dr-figure-turn { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes dr-reflection-shimmer { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.6 } }
@keyframes dr-ripple-spread { 0% { transform: scale(0.5); opacity:0.6 } 50% { transform: scale(1.2); opacity:0.2 } 100% { transform: scale(1.5); opacity:0 } }

.scn-corset-cruelty {
  background: linear-gradient(180deg, #faf8f0 0%, #e0d8c8 30%, #c8b8a0 100%),
              radial-gradient(ellipse at 50% 0%, #fffcf0 0%, transparent 60%);
}
.scn-corset-cruelty .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #aac8e0 0%, #c0d0e0 60%, #d8e0e8 100%);
  animation: cc-sky-shift 12s ease-in-out infinite alternate;
}
.scn-corset-cruelty .sun-rays {
  position: absolute; top: 0; left: 30%; right: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.3) 0%, transparent 70%);
  filter: blur(8px); animation: cc-sun-pulse 6s ease-in-out infinite;
}
.scn-corset-cruelty .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b8a888 0%, #a08870 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
}
.scn-corset-cruelty .woman {
  position: absolute; bottom: 30%; left: 40%; width: 16%; height: 45%;
  background: linear-gradient(180deg, #d0b8a0 0%, #a08870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%); box-shadow: -8px 0 16px rgba(0,0,0,0.2);
  animation: cc-woman-sway 5s ease-in-out infinite alternate;
}
.scn-corset-cruelty .child-left {
  position: absolute; bottom: 25%; left: 28%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #b09880 0%, #8a7060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.1);
  animation: cc-child-left-move 7s ease-in-out infinite;
}
.scn-corset-cruelty .child-right {
  position: absolute; bottom: 28%; left: 55%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #b09880 0%, #8a7060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.1);
  animation: cc-child-right-move 9s ease-in-out infinite;
}
.scn-corset-cruelty .shadow-sharp {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  filter: blur(2px); animation: cc-shadow-grow 10s ease-in-out infinite alternate;
}
@keyframes cc-sky-shift { 0% { background-position: 0% 0% } 50% { background-position: 5% -2% } 100% { background-position: -3% 1% } }
@keyframes cc-sun-pulse { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes cc-woman-sway { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(-0.5deg) } }
@keyframes cc-child-left-move { 0% { transform: translateY(0) } 30% { transform: translateY(-2px) } 60% { transform: translateY(0) } 100% { transform: translateY(-1px) } }
@keyframes cc-child-right-move { 0% { transform: translateY(0) } 25% { transform: translateY(-3px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes cc-shadow-grow { 0% { opacity:0.3; transform: scaleX(0.9) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.4; transform: scaleX(1) } }

.scn-item-watch { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a6e 60%, #3a2a5e 100%), radial-gradient(ellipse at 50% 100%, #2a1a3e 0%, transparent 60%); }
.scn-item-watch .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: iw-sky 20s ease-in-out infinite alternate; }
.scn-item-watch .stars { position:absolute; inset:0 0 55% 0; background-image: radial-gradient(2px 2px at 10% 20%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 30% 35%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 70% 15%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 85% 45%, #fff 0%, transparent 100%), radial-gradient(1.5px 1.5px at 50% 30%, #fff 0%, transparent 100%); background-size: 100% 100%; animation: iw-stars 4s ease-in-out infinite alternate; }
.scn-item-watch .water { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: iw-water 8s linear infinite; }
.scn-item-watch .rock { position:absolute; bottom:45%; left:20%; width:60%; height:15%; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 0 0 / 80% 80% 0 0; transform: scaleY(0.6); }
.scn-item-watch .figure1 { position:absolute; bottom:50%; left:35%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iw-fig1 3s ease-in-out infinite; }
.scn-item-watch .figure2 { position:absolute; bottom:50%; left:50%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iw-fig2 3s ease-in-out infinite 1.5s; }
.scn-item-watch .glow { position:absolute; bottom:55%; left:42%; width:10px; height:10px; background: radial-gradient(circle, #b08040 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(176,128,64,.6); animation: iw-glow 4s ease-in-out infinite alternate; }
@keyframes iw-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes iw-stars { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.4 } }
@keyframes iw-water { 0% { background-position: 0% 0% } 50% { background-position: 10% 5% } 100% { background-position: 0% 0% } }
@keyframes iw-fig1 { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 50% { transform: translateX(2px) translateY(-2px) rotate(3deg) } 100% { transform: translateX(0) translateY(0) rotate(-3deg) } }
@keyframes iw-fig2 { 0% { transform: translateX(0) translateY(0) rotate(3deg) } 50% { transform: translateX(-2px) translateY(-2px) rotate(-3deg) } 100% { transform: translateX(0) translateY(0) rotate(3deg) } }
@keyframes iw-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.7; transform: scale(1) } }

.scn-final-goodbye { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, transparent 70%); }
.scn-final-goodbye .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); }
.scn-final-goodbye .moon { position:absolute; top:10%; right:15%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,200,220,.4) 0%, transparent 80%); border-radius: 50%; filter: blur(8px); animation: fg-moon 12s ease-in-out infinite alternate; }
.scn-final-goodbye .surface { position:absolute; bottom:40%; left:0; right:0; height:8px; background: linear-gradient(90deg, transparent 0%, rgba(100,120,140,.5) 50%, transparent 100%); animation: fg-surface 6s linear infinite; }
.scn-final-goodbye .sinking-figure { position:absolute; bottom:45%; left:50%; width:14px; height:40px; margin-left:-7px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: top center; animation: fg-sink 8s ease-in-out infinite; }
.scn-final-goodbye .bubbles { position:absolute; bottom:45%; left:45%; width:100%; height:40%; background-image: radial-gradient(3px 3px at 20% 60%, rgba(200,220,255,.4) 0%, transparent 100%), radial-gradient(2px 2px at 70% 40%, rgba(200,220,255,.3) 0%, transparent 100%), radial-gradient(2px 2px at 50% 80%, rgba(200,220,255,.2) 0%, transparent 100%); animation: fg-bubbles 4s linear infinite; }
.scn-final-goodbye .hand { position:absolute; bottom:55%; left:48%; width:10px; height:20px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: top center; animation: fg-hand 3s ease-in-out infinite; }
@keyframes fg-moon { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.6; transform: translateY(-5px) } 100% { opacity:.3; transform: translateY(0) } }
@keyframes fg-surface { 0% { background-position: 0% 0% } 50% { background-position: 100% 0% } 100% { background-position: 0% 0% } }
@keyframes fg-sink { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(30px) scaleY(0.8) } 100% { transform: translateY(60px) scaleY(0.6) opacity:0.3 } }
@keyframes fg-bubbles { 0% { transform: translateY(0); opacity:.5 } 50% { transform: translateY(-20px); opacity:.8 } 100% { transform: translateY(-40px); opacity:0 } }
@keyframes fg-hand { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }

.scn-child-runs-home { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 60%, #2a1a2a 100%), radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 70%); }
.scn-child-runs-home .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); animation: crh-sky 15s ease-in-out infinite alternate; }
.scn-child-runs-home .stars { position:absolute; inset:0 0 40% 0; background-image: radial-gradient(2px 2px at 10% 20%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 30% 60%, #fff 0%, transparent 100%), radial-gradient(1.5px 1.5px at 70% 30%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 80% 70%, #fff 0%, transparent 100%); background-size: 100% 100%; animation: crh-stars 3s ease-in-out infinite alternate; }
.scn-child-runs-home .mountains { position:absolute; bottom:25%; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: crh-mountains 20s ease-in-out infinite alternate; }
.scn-child-runs-home .house { position:absolute; bottom:30%; left:65%; width:70px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: crh-house 6s ease-in-out infinite; }
.scn-child-runs-home .house::before { content:''; position:absolute; bottom:20%; left:50%; width:16px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #c08040 0%, #b07030 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 4px #c08040; animation: crh-window 2s ease-in-out infinite alternate; }
.scn-child-runs-home .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; }
.scn-child-runs-home .child { position:absolute; bottom:30%; left:30%; width:16px; height:34px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: crh-run 2s ease-in-out infinite; }
@keyframes crh-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes crh-stars { 0% { opacity:.3 } 50% { opacity:1 } 100% { opacity:.2 } }
@keyframes crh-mountains { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes crh-house { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } }
@keyframes crh-window { 0% { opacity:.8; transform:translateX(-50%) scale(1) } 50% { opacity:1; transform:translateX(-50%) scale(1.15) } 100% { opacity:.9; transform:translateX(-50%) scale(1) } }
@keyframes crh-run { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(10px) rotate(2deg) } 50% { transform: translateX(20px) rotate(-2deg) } 75% { transform: translateX(30px) rotate(3deg) } 100% { transform: translateX(40px) rotate(0deg) } }

.scn-bodies-found { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 60%, #1a1a2a 0%, transparent 80%); }
.scn-bodies-found .ground { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; }
.scn-bodies-found .hole { position:absolute; top:25%; left:50%; width:60%; height:70%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #0a0a1a 0%, #000 70%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 10px 30px rgba(0,0,0,.8); }
.scn-bodies-found .hands { position:absolute; top:28%; left:46%; width:8%; height:15%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: top center; animation: bf-hands 4s ease-in-out infinite; }
.scn-bodies-found .figures-below { position:absolute; top:35%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 30% 30% 40% 40%; opacity:0.6; transform: scaleY(0.8); animation: bf-figures 6s ease-in-out infinite alternate; }
.scn-bodies-found .shadow { position:absolute; top:30%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%); animation: bf-shadow 8s ease-in-out infinite alternate; }
.scn-bodies-found .glimmer { position:absolute; top:50%; left:50%; width:8px; height:8px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(180,200,220,.4) 0%, transparent 80%); border-radius: 50%; animation: bf-glimmer 3s ease-in-out infinite alternate; }
@keyframes bf-hands { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes bf-figures { 0% { transform: scaleY(0.8) translateY(0) } 50% { transform: scaleY(1) translateY(-5px) } 100% { transform: scaleY(0.8) translateY(0) } }
@keyframes bf-shadow { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.1) } 100% { opacity:.5; transform: scaleX(1) } }
@keyframes bf-glimmer { 0% { opacity:.3; transform:translate(-50%,-50%) scale(1) } 50% { opacity:.7; transform:translate(-50%,-50%) scale(1.5) } 100% { opacity:.3; transform:translate(-50%,-50%) scale(1) } }
/* Ensure no full frontal faces: all figures are silhouettes (ovoid shapes). No text content. */

/* Scene: child-illness (ci-) */
.scn-child-illness {
  background: linear-gradient(180deg, #181828 0%, #2a2a3e 40%, #1e1e2a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 60%);
}
.scn-child-illness .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0e0e1a 0%, transparent 40%, #0a0a12 100%); }
.scn-child-illness .wall { position:absolute; bottom:40%; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-child-illness .bed { position:absolute; bottom:10%; left:10%; width:60%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20px 20px 10px 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.7); }
.scn-child-illness .child { position:absolute; bottom:12%; left:20%; width:30%; height:20%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-body 6s ease-in-out infinite alternate; }
.scn-child-illness .nurse { position:absolute; bottom:15%; right:15%; width:18%; height:40%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: ci-nurse 10s ease-in-out infinite alternate; }
.scn-child-illness .candle { position:absolute; bottom:30%; left:50%; width:4px; height:20px; background: linear-gradient(180deg, #ffe0a0 0%, #c0a070 100%); border-radius:2px; box-shadow: 0 0 8px 2px #ffd070; animation: ci-flicker 0.8s infinite; }
.scn-child-illness .glow-candle { position:absolute; bottom:30%; left:50%; width:30px; height:30px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%); border-radius:50%; animation: ci-glow 3s ease-in-out infinite alternate; }
.scn-child-illness .window-moon { position:absolute; top:5%; right:10%; width:20%; height:25%; background: linear-gradient(135deg, #8a8aba 0%, #4a4a6a 100%); border-radius:50% 50% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5); animation: ci-moon 20s linear infinite alternate; }
@keyframes ci-body   { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-2px); } 100% { transform: scaleX(0.98) translateY(1px); } }
@keyframes ci-nurse  { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(3px) rotate(0); } }
@keyframes ci-flicker { 0% { opacity:1; } 25% { opacity:0.85; } 50% { opacity:1; } 75% { opacity:0.9; } 100% { opacity:1; } }
@keyframes ci-glow   { 0% { opacity:0.6; transform: translate(-50%,-50%) scale(1); } 50% { opacity:0.8; transform: translate(-50%,-50%) scale(1.1); } 100% { opacity:0.5; transform: translate(-50%,-50%) scale(0.95); } }
@keyframes ci-moon   { 0% { background-position:0% 0%; opacity:0.7; } 50% { opacity:1; } 100% { background-position:10% 5%; opacity:0.8; } }

/* Scene: will-destruction (wd-) */
.scn-will-destruction {
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 50%, #0d0805 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-will-destruction .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-will-destruction .table { position:absolute; bottom:10%; left:15%; width:70%; height:15%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.8); }
.scn-will-destruction .will { position:absolute; bottom:20%; left:30%; width:30%; height:8%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius:2px; transform: rotate(-5deg); animation: wd-tear 2s ease-in-out infinite; }
.scn-will-destruction .hands { position:absolute; bottom:22%; left:35%; width:25%; height:10%; background: linear-gradient(180deg, #b0a090 0%, #806050 100%); border-radius: 50% 50% 0 0; clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation: wd-rip 1.5s ease-in-out infinite alternate; }
.scn-will-destruction .heir1 { position:absolute; bottom:10%; left:5%; width:15%; height:40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wd-shake 0.5s ease-in-out infinite alternate; }
.scn-will-destruction .heir2 { position:absolute; bottom:10%; left:42%; width:15%; height:35%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wd-shake 0.6s ease-in-out infinite alternate reverse; }
.scn-will-destruction .heir3 { position:absolute; bottom:10%; right:5%; width:15%; height:38%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wd-shake 0.7s ease-in-out infinite alternate; }
.scn-will-destruction .lamp { position:absolute; top:0%; left:50%; width:10%; height:20%; background: linear-gradient(180deg, #a08060 0%, #604020 100%); border-radius: 0 0 10px 10px; transform: translateX(-50%); box-shadow: 0 0 30px 10px rgba(200,150,80,0.3); animation: wd-swing 4s ease-in-out infinite alternate; }
@keyframes wd-tear  { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(-8deg) scaleX(1.1); } 100% { transform: rotate(-3deg) scaleX(0.9); } }
@keyframes wd-rip   { 0% { clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); } 100% { clip-path: polygon(0% 100%, 10% 20%, 90% 10%, 100% 100%); } }
@keyframes wd-shake { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wd-swing { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(3deg); } }

/* Scene: seaside-resort (sr-) */
.scn-seaside-resort {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 30%, #f0e8d0 60%, #d4c0a0 100%),
              radial-gradient(ellipse at 50% 100%, #f5e6c8 0%, transparent 60%);
}
.scn-seaside-resort .sky-sea { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0c8e8 0%, #e0e8f0 30%, #c8d8a0 60%, #a0b080 100%); animation: sr-sky 30s ease-in-out infinite alternate; }
.scn-seaside-resort .sand { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #eedcc8 0%, #c8b090 100%); border-radius: 30% 70% 0 0; }
.scn-seaside-resort .waves { position:absolute; bottom:30%; left:0; right:0; height:8%; background: linear-gradient(180deg, #80c0e0 0%, #40a0c0 100%); border-radius: 40% 60% 0 0; animation: sr-wave 6s ease-in-out infinite alternate; }
.scn-seaside-resort .umbrella { position:absolute; bottom:45%; left:20%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 20%, #f08040 0%, #d06030 60%, #a04020 100%); border-radius: 50% 50% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.2); animation: sr-umbrella 12s ease-in-out infinite alternate; }
.scn-seaside-resort .chair { position:absolute; bottom:10%; left:18%; width:20%; height:15%; background: linear-gradient(180deg, #c0b0a0 0%, #908070 100%); border-radius: 10% 10% 40% 40%; transform: rotate(-5deg); animation: sr-chair 8s ease-in-out infinite alternate; }
.scn-seaside-resort .parasol { position:absolute; bottom:55%; right:10%; width:12%; height:20%; background: radial-gradient(ellipse at 50% 20%, #f0e0a0 0%, #d0c080 60%, #b0a060 100%); border-radius: 50% 50% 0 0; transform: rotate(10deg); animation: sr-parasol 15s ease-in-out infinite alternate; }
.scn-seaside-resort .couple { position:absolute; bottom:15%; left:45%; width:10%; height:25%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sr-walk 5s ease-in-out infinite; }
.scn-seaside-resort .gulls { position:absolute; top:10%; left:30%; width:8%; height:6%; background: radial-gradient(circle, #c0c0c0 0%, #808080 100%); border-radius: 50%; clip-path: polygon(0% 50%, 100% 50%, 80% 0%, 20% 0%); animation: sr-fly 20s linear infinite; }
@keyframes sr-sky   { 0% { background-position: 0% 0%; } 50% { background-position: 20% 5%; } 100% { background-position: -10% -2%; } }
@keyframes sr-wave  { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(2px) scaleX(0.98); } }
@keyframes sr-umbrella { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes sr-chair { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(1px); } }
@keyframes sr-parasol { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(5px); } 100% { transform: rotate(12deg) translateX(-3px); } }
@keyframes sr-walk  { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0); } }
@keyframes sr-fly   { 0% { transform: translateX(-10px) rotate(0deg); } 50% { transform: translateX(50vw) rotate(5deg); } 100% { transform: translateX(100vw) rotate(-5deg); } }

/* Scene: mother-monsters-intro (mm-) */
.scn-mother-monsters-intro {
  background: linear-gradient(180deg, #f0d8a0 0%, #e0b870 30%, #c09050 60%, #a07040 100%),
              radial-gradient(ellipse at 70% 20%, #ffe8b0 0%, transparent 50%);
}
.scn-mother-monsters-intro .bg-booth { position:absolute; inset:0; background: linear-gradient(180deg, #c8a878 0%, #987858 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 60% 100%, 40% 100%, 0% 80%); }
.scn-mother-monsters-intro .sunlight { position:absolute; top:5%; left:20%; width:60%; height:40%; background: linear-gradient(135deg, rgba(255,240,200,0.5) 0%, transparent 80%); }
.scn-mother-monsters-intro .mother-silhouette { position:absolute; bottom:20%; left:50%; width:20%; height:50%; background: #2a1a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: 0 10px 20px rgba(0,0,0,0.6); animation: mm-mother 4s ease-in-out infinite alternate; }
.scn-mother-monsters-intro .jar-large { position:absolute; bottom:15%; left:10%; width:12%; height:25%; background: linear-gradient(180deg, #b0c8a0 0%, #708060 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); animation: mm-jar 6s ease-in-out infinite alternate; }
.scn-mother-monsters-intro .jar-small { position:absolute; bottom:20%; right:15%; width:8%; height:18%; background: linear-gradient(180deg, #b0c0a8 0%, #708070 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); animation: mm-jar 8s ease-in-out infinite alternate reverse; }
.scn-mother-monsters-intro .crawling-thing { position:absolute; bottom:8%; left:20%; width:10%; height:8%; background: #6a4a3a; border-radius: 60% 40% 40% 60%; clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%); animation: mm-crawl 3s ease-in-out infinite; }
.scn-mother-monsters-intro .banner { position:absolute; top:10%; left:25%; width:50%; height:15%; background: linear-gradient(180deg, #a04030 0%, #703020 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); transform: rotate(-2deg); animation: mm-banner 10s ease-in-out infinite alternate; }
.scn-mother-monsters-intro .onlooker { position:absolute; bottom:12%; right:5%; width:10%; height:30%; background: #3a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mm-look 5s ease-in-out infinite; }
@keyframes mm-mother { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(3deg); } }
@keyframes mm-jar   { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(2px) scale(0.98); } }
@keyframes mm-crawl { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mm-banner { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.05); } 100% { transform: rotate(3deg) scaleX(0.95); } }
@keyframes mm-look { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(-4px) rotate(0); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-judas-death-confirmed { background: linear-gradient(180deg, #2f2f3f 0%, #1f1f2f 40%, #0a0a0f 100%), radial-gradient(ellipse at 50% 0%, #3f3f5f 0%, transparent 60%); }
.scn-judas-death-confirmed .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3f3f5f 0%, #1f1f2f 100%); animation: jud-sky 15s ease-in-out infinite alternate; }
.scn-judas-death-confirmed .hill { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.6); animation: jud-hill 12s ease-in-out infinite; }
.scn-judas-death-confirmed .tree.trunk { position:absolute; bottom:45%; left:50%; width:8px; height:80px; transform:translateX(-50%); background: linear-gradient(90deg, #2a1a1a 0%, #4a3a2a 50%, #1a0a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 2px 0 6px rgba(0,0,0,.4); }
.scn-judas-death-confirmed .tree.branch { position:absolute; bottom:78%; left:49%; width:60px; height:4px; background: linear-gradient(90deg, transparent 0%, #2a1a1a 30%, #3a2a1a 100%); border-radius: 50%; transform: rotate(-15deg); transform-origin: left center; animation: jud-branch 8s ease-in-out infinite; }
.scn-judas-death-confirmed .noose { position:absolute; bottom:68%; left:49%; width:20px; height:20px; border:2px solid #3a2a2a; border-radius:50%; transform: rotate(5deg); animation: jud-sway 4s ease-in-out infinite alternate; }
.scn-judas-death-confirmed .body { position:absolute; bottom:55%; left:49%; width:16px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: top center; animation: jud-sway 4s ease-in-out infinite alternate; }
.scn-judas-death-confirmed .crow { position:absolute; top:12%; left:35%; width:16px; height:10px; background: #1a1a1a; border-radius: 80% 80% 40% 40%; animation: jud-fly 20s linear infinite; }
.scn-judas-death-confirmed .mist { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(100,100,120,0.3) 0%, transparent 100%); animation: jud-mist 10s ease-in-out infinite alternate; }
@keyframes jud-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes jud-hill { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes jud-branch { 0%,100% { transform: rotate(-15deg); } 50% { transform: rotate(-12deg); } }
@keyframes jud-sway { 0% { transform: rotate(4deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(6deg); } }
@keyframes jud-fly { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(60px) translateY(-10px); } 50% { transform: translateX(120px) translateY(0); } 75% { transform: translateX(180px) translateY(-5px); } 100% { transform: translateX(240px) translateY(0); } }
@keyframes jud-mist { 0% { opacity:0.2; } 100% { opacity:0.5; } }

.scn-mysterious-cross { background: linear-gradient(180deg, #fce4d6 0%, #f8d6c4 30%, #e8bea4 60%, #c89878 100%), radial-gradient(ellipse at 50% 100%, #f8d6c4 0%, transparent 70%); }
.scn-mysterious-cross .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fcedc8 0%, #f8d6c4 40%, #e8bea4 100%); animation: mys-sky 20s ease-in-out infinite alternate; }
.scn-mysterious-cross .sun-glow { position:absolute; top:8%; left:30%; width:60px; height:60px; background: radial-gradient(circle, #ffebb0 0%, #ffd8a0 40%, transparent 70%); border-radius:50%; filter:blur(10px); animation: mys-sun 30s ease-in-out infinite alternate; }
.scn-mysterious-cross .cross-vertical { position:absolute; top:20%; left:50%; width:8px; height:100px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); transform:translateX(-50%); border-radius:2px; box-shadow: 0 0 12px #a08060; }
.scn-mysterious-cross .cross-horizontal { position:absolute; top:40%; left:50%; width:60px; height:8px; background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 100%); transform:translateX(-50%); border-radius:2px; box-shadow: 0 0 12px #a08060; }
.scn-mysterious-cross .cross-glow { position:absolute; top:20%; left:40%; width:70px; height:100px; background: radial-gradient(ellipse, rgba(180,140,100,0.3) 0%, transparent 70%); animation: mys-glow 4s ease-in-out infinite alternate; }
.scn-mysterious-cross .ground { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #b09878 0%, #8a7a5a 100%); border-radius:30% 70% 0 0 / 50% 100% 0 0; animation: mys-ground 15s ease-in-out infinite; }
.scn-mysterious-cross .witness { position:absolute; bottom:35%; left:40%; width:14px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mys-kneel 6s ease-in-out infinite; }
@keyframes mys-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes mys-sun { 0% { transform: scale(0.95); opacity:0.6; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.7; } }
@keyframes mys-glow { 0% { opacity:0.3; box-shadow: 0 0 20px #a08060; } 50% { opacity:0.8; box-shadow: 0 0 40px #c09870; } 100% { opacity:0.4; box-shadow: 0 0 25px #a08060; } }
@keyframes mys-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes mys-kneel { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(5deg) scaleY(0.95); } 50% { transform: rotate(-2deg) scaleY(1); } 75% { transform: rotate(8deg) scaleY(0.92); } 100% { transform: rotate(0deg) scaleY(1); } }

.scn-innkeeper-arrives { background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 40%, #80b0d0 100%), radial-gradient(ellipse at 80% 20%, #ffebb0 0%, transparent 50%); }
.scn-innkeeper-arrives .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d0e8f8 0%, #a0c8e0 100%); animation: inn-sky 12s ease-in-out infinite alternate; }
.scn-innkeeper-arrives .sun { position:absolute; top:12%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #fff4d0 0%, #ffd8a0 60%, transparent 80%); border-radius:50%; filter:blur(6px); animation: inn-sun 18s ease-in-out infinite; }
.scn-innkeeper-arrives .farmhouse { position:absolute; bottom:35%; left:15%; width:120px; height:80px; background: linear-gradient(180deg, #e8d0b0 0%, #c8a880 100%); border-radius:6px 6px 4px 4px; box-shadow: 0 6px 12px rgba(0,0,0,.2), inset 0 -4px 6px rgba(0,0,0,.1); }
.scn-innkeeper-arrives .buggy-body { position:absolute; bottom:40%; left:50%; width:90px; height:30px; background: linear-gradient(180deg, #b8a090 0%, #8a7a6a 100%); border-radius:20px 20px 10px 10px; transform:translateX(-50%); box-shadow: 2px 4px 8px rgba(0,0,0,.3); animation: inn-buggy 6s ease-in-out infinite; }
.scn-innkeeper-arrives .buggy-wheel { position:absolute; bottom:35%; left:45%; width:20px; height:20px; border:3px solid #5a4a3a; border-radius:50%; background: #e8d8c8; box-shadow: 0 0 4px rgba(0,0,0,.2); animation: inn-wheel 2s linear infinite; }
.scn-innkeeper-arrives .horse { position:absolute; bottom:38%; left:68%; width:40px; height:40px; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: scaleX(1.2); animation: inn-horse 4s ease-in-out infinite; }
.scn-innkeeper-arrives .driver { position:absolute; bottom:48%; left:53%; width:14px; height:28px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: inn-driver 3s ease-in-out infinite; }
.scn-innkeeper-arrives .path { position:absolute; bottom:30%; left:0; right:0; height:8%; background: linear-gradient(180deg, #d0c8b0 0%, #b8a888 100%); border-radius: 2px; animation: inn-path 10s ease-in-out infinite alternate; }
@keyframes inn-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes inn-sun { 0% { transform: scale(0.95); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes inn-buggy { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes inn-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes inn-horse { 0% { transform: scaleX(1.2) rotate(0deg); } 25% { transform: scaleX(1.2) rotate(2deg); } 50% { transform: scaleX(1.2) rotate(-1deg); } 75% { transform: scaleX(1.2) rotate(1deg); } 100% { transform: scaleX(1.2) rotate(0deg); } }
@keyframes inn-driver { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes inn-path { 0% { opacity:0.7; } 100% { opacity:1; } }

.scn-farm-negotiation { background: linear-gradient(180deg, #fce8c8 0%, #e8c898 40%, #c89868 100%), radial-gradient(ellipse at 30% 50%, #ffebb0 0%, transparent 60%); }
.scn-farm-negotiation .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fce8c8 0%, #f0d8b0 100%); animation: far-sky 15s ease-in-out infinite alternate; }
.scn-farm-negotiation .sun-hard { position:absolute; top:10%; left:20%; width:50px; height:50px; background: radial-gradient(circle, #fff8e0 0%, #ffd8a0 50%, transparent 80%); border-radius:50%; filter:blur(4px); animation: far-sun 8s ease-in-out infinite; }
.scn-farm-negotiation .ground { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #d0b888 0%, #b09868 100%); border-radius:30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.2); }
.scn-farm-negotiation .fence { position:absolute; bottom:38%; left:10%; width:80%; height:4px; background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:2px; box-shadow: 0 8px 0 #5a3a2a, 0 16px 0 #5a3a2a; animation: far-fence 20s linear infinite; }
.scn-farm-negotiation .figure-tall { position:absolute; bottom:35%; left:35%; width:18px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: far-tall 4s ease-in-out infinite; }
.scn-farm-negotiation .figure-short { position:absolute; bottom:35%; left:55%; width:14px; 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: far-short 3s ease-in-out infinite; }
.scn-farm-negotiation .shadow-tall { position:absolute; bottom:30%; left:30%; width:30px; height:12px; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(4px); animation: far-shadow 6s ease-in-out infinite; }
.scn-farm-negotiation .shadow-short { position:absolute; bottom:30%; left:50%; width:20px; height:8px; background: rgba(0,0,0,0.25); border-radius:50%; filter:blur(3px); animation: far-shadow2 5s ease-in-out infinite reverse; }
@keyframes far-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes far-sun { 0% { transform: scale(0.95); opacity:0.7; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes far-fence { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }
@keyframes far-tall { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(2deg) scaleY(0.97); } 50% { transform: rotate(-1deg) scaleY(1); } 75% { transform: rotate(3deg) scaleY(0.95); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes far-short { 0% { transform: rotate(0deg); } 20% { transform: rotate(-3deg); } 40% { transform: rotate(2deg); } 60% { transform: rotate(-1deg); } 80% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes far-shadow { 0% { transform: scaleX(1); opacity:0.4; } 50% { transform: scaleX(1.1); opacity:0.6; } 100% { transform: scaleX(1); opacity:0.4; } }
@keyframes far-shadow2 { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.15); opacity:0.5; } 100% { transform: scaleX(1); opacity:0.3; } }

.scn-table-companion-remark { background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 50%, #0d0704 100%), radial-gradient(ellipse at 30% 60%, #2a1a0e 0%, transparent 70%); }
.scn-table-companion-remark .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0e 0%, #1a0a04 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.6); animation: tcr-pulse 8s ease-in-out infinite; }
.scn-table-companion-remark .table { position:absolute; bottom:15%; left:10%; right:20%; height:25%; background: linear-gradient(180deg, #5a3a20 0%, #3a2a12 100%); border-radius: 4% 4% 0 0 / 20% 20% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.5); animation: tcr-table-bob 11s ease-in-out infinite; }
.scn-table-companion-remark .figure-torso { position:absolute; bottom:30%; left:25%; width:32px; height:48px; background: radial-gradient(ellipse at 50% 20%, #2a1a0a 0%, #1a0e05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tcr-torso-sway 4s ease-in-out infinite; }
.scn-table-companion-remark .figure-arm { position:absolute; bottom:50%; left:30%; width:40px; height:8px; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a12 100%); border-radius: 50% 50% 0 0; transform-origin: left center; animation: tcr-arm-gesture 3s ease-in-out infinite; }
.scn-table-companion-remark .candle { position:absolute; bottom:38%; left:48%; width:8px; height:28px; background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: tcr-candle-flicker 5s ease-in-out infinite; }
.scn-table-companion-remark .flame { position:absolute; bottom:63%; left:48.3%; width:10px; height:14px; background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent 100%); border-radius: 50% 50% 40% 40%; filter: blur(1px); box-shadow: 0 0 18px 4px #ffa040, 0 0 36px 8px rgba(255,160,64,.3); animation: tcr-flame-dance 2s ease-in-out infinite; }
.scn-table-companion-remark .shadow-figure { position:absolute; bottom:15%; left:20%; width:80px; height:40px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: tcr-shadow-creep 6s ease-in-out infinite; }
.scn-table-companion-remark .mug { position:absolute; bottom:18%; left:40%; width:14px; height:16px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: tcr-mug-shift 9s ease-in-out infinite; }
@keyframes tcr-pulse { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes tcr-table-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes tcr-torso-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes tcr-arm-gesture { 0% { transform: rotate(-10deg) } 30% { transform: rotate(20deg) } 60% { transform: rotate(-5deg) } 100% { transform: rotate(10deg) } }
@keyframes tcr-candle-flicker { 0%,100% { opacity:.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } }
@keyframes tcr-flame-dance { 0% { transform: translate(0,0) scale(1) rotate(0deg); } 25% { transform: translate(1px,-1px) scale(1.1) rotate(5deg); } 50% { transform: translate(-1px,0) scale(1.2) rotate(-5deg); } 75% { transform: translate(1px,1px) scale(1.05) rotate(3deg); } 100% { transform: translate(0,0) scale(1) rotate(0deg); } }
@keyframes tcr-shadow-creep { 0%,100% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.1) } }
@keyframes tcr-mug-shift { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }

.scn-funeral-veziers { background: linear-gradient(180deg, #8a9a9a 0%, #6a7a7a 30%, #4a5a5a 70%, #2a3a3a 100%), radial-gradient(ellipse at 50% 0%, #b0c0c0 0%, transparent 60%); }
.scn-funeral-veziers .sky-overcast { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b0c0c0 0%, #6a7a7a 100%); animation: fv-sky-glow 15s ease-in-out infinite alternate; }
.scn-funeral-veziers .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-funeral-veziers .grave { position:absolute; bottom:20%; left:45%; width:60px; height:40px; background: linear-gradient(180deg, #7a7a7a 0%, #4a4a4a 100%); border-radius: 10% 10% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: fv-grave-sink 20s ease-in-out infinite; }
.scn-funeral-veziers .cross { position:absolute; bottom:32%; left:48%; width:4px; height:30px; background: #6a5a4a; border-radius: 2px; transform-origin: bottom center; animation: fv-cross-tilt 13s ease-in-out infinite; }
.scn-funeral-veziers .mourner-left { position:absolute; bottom:25%; left:20%; width:18px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fv-mourner-sway-left 7s ease-in-out infinite; }
.scn-funeral-veziers .mourner-right { position:absolute; bottom:25%; right:20%; width:18px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fv-mourner-sway-right 9s ease-in-out infinite reverse; }
.scn-funeral-veziers .tree { position:absolute; bottom:30%; left:10%; width:30px; height:80px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: fv-tree-bend 22s ease-in-out infinite; }
.scn-funeral-veziers .cloud-funeral { position:absolute; top:6%; left:0; width:120px; height:20px; background: linear-gradient(180deg, rgba(180,190,190,.5) 0%, rgba(120,130,130,.1) 100%); border-radius: 50%; filter: blur(8px); animation: fv-cloud-drift 40s linear infinite; }
@keyframes fv-sky-glow { 0% { opacity:.8; background-position-y: 0 } 100% { opacity:1; background-position-y: 5% } }
@keyframes fv-grave-sink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes fv-cross-tilt { 0% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes fv-mourner-sway-left { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes fv-mourner-sway-right { 0% { transform: rotate(3deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(2deg) } }
@keyframes fv-tree-bend { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(4deg) } }
@keyframes fv-cloud-drift { 0% { transform: translateX(-120px) } 100% { transform: translateX(calc(100vw + 120px)) } }

.scn-funeral-mourning { background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 40%, #3a4a4a 80%, #1a2a2a 100%), radial-gradient(ellipse at 50% 100%, #5a6a6a 0%, transparent 70%); }
.scn-funeral-mourning .sky-dreary { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #9aa5a5 0%, #6a7a7a 100%); animation: fm-sky-fade 18s ease-in-out infinite alternate; }
.scn-funeral-mourning .ground-damp { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-funeral-mourning .figure-left { position:absolute; bottom:30%; left:30%; width:20px; height:55px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fm-figure-left 6s ease-in-out infinite; }
.scn-funeral-mourning .figure-right { position:absolute; bottom:30%; right:30%; width:20px; height:55px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fm-figure-right 7s ease-in-out infinite reverse; }
.scn-funeral-mourning .headstone { position:absolute; bottom:22%; left:46%; width:50px; height:40px; background: linear-gradient(180deg, #8a8a7a 0%, #5a5a4a 100%); border-radius: 8% 8% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: fm-stone-settle 25s ease-in-out infinite; }
.scn-funeral-mourning .flowers { position:absolute; bottom:20%; left:42%; width:30px; height:10px; background: radial-gradient(circle, #b8a878 0%, #8a7a5a 60%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: fm-flowers-wilt 14s ease-in-out infinite; }
.scn-funeral-mourning .veil { position:absolute; bottom:52%; left:46%; width:30px; height:20px; background: linear-gradient(180deg, rgba(100,100,100,.3) 0%, rgba(100,100,100,.05) 100%); border-radius: 50% 50% 30% 30%; filter: blur(3px); animation: fm-veil-drift 9s ease-in-out infinite; }
@keyframes fm-sky-fade { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fm-figure-left { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes fm-figure-right { 0% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes fm-stone-settle { 0%,100% { transform: translateY(0) } 50% { transform: translateY(1px) } }
@keyframes fm-flowers-wilt { 0%,100% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } }
@keyframes fm-veil-drift { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(2px,-1px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }

.scn-will-reading { background: linear-gradient(180deg, #1a0f0a 0%, #2a1a12 40%, #0d0704 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 80%); }
.scn-will-reading .room-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, #2a1a0e 0%, #0d0502 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.7); animation: wr-room 10s ease-in-out infinite; }
.scn-will-reading .desk { position:absolute; bottom:10%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 2% 2% 0 0 / 10% 10% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.5); animation: wr-desk-creak 19s ease-in-out infinite; }
.scn-will-reading .figure-lawyer { position:absolute; bottom:30%; left:35%; width:34px; height:58px; background: linear-gradient(180deg, #1a0f0a 0%, #0d0704 100%); border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wr-lawyer-sway 5s ease-in-out infinite; }
.scn-will-reading .spectacles { position:absolute; bottom:58%; left:38%; width:18px; height:6px; background: transparent; border: 2px solid #5a4a3a; border-radius: 50%; filter: blur(1px); animation: wr-glasses 8s ease-in-out infinite; }
.scn-will-reading .envelope { position:absolute; bottom:22%; left:42%; width:40px; height:28px; background: linear-gradient(180deg, #c8b880 0%, #a89868 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 2px 6px rgba(0,0,0,.4); transform-origin: center right; animation: wr-envelope-open 12s ease-in-out infinite; }
.scn-will-reading .candle-will { position:absolute; bottom:38%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: wr-candle-flicker 4s ease-in-out infinite; }
.scn-will-reading .flame-will { position:absolute; bottom:65%; left:50.3%; width:10px; height:18px; background: radial-gradient(circle, #ffe080 0%, #ffa040 60%, transparent 100%); border-radius: 50% 50% 40% 40%; filter: blur(1px); box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 12px rgba(255,160,64,.3); animation: wr-flame-dance 2.5s ease-in-out infinite; }
.scn-will-reading .shadow-lawyer { position:absolute; bottom:12%; left:30%; width:100px; height:60px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 50%; filter: blur(12px); animation: wr-shadow-stretch 7s ease-in-out infinite; }
@keyframes wr-room { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes wr-desk-creak { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes wr-lawyer-sway { 0% { transform: rotate(-3deg) } 30% { transform: rotate(2deg) } 60% { transform: rotate(-1deg) } 100% { transform: rotate(3deg) } }
@keyframes wr-glasses { 0%,100% { opacity:.7; transform: translate(0,0) } 50% { opacity:1; transform: translate(1px,-1px) } }
@keyframes wr-envelope-open { 0% { transform: rotate(0deg) scaleX(1) } 25% { transform: rotate(-10deg) scaleX(1.1) } 50% { transform: rotate(0deg) scaleX(1) } 75% { transform: rotate(10deg) scaleX(1.05) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes wr-candle-flicker { 0%,100% { opacity:.85; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.08) } }
@keyframes wr-flame-dance { 0% { transform: translate(0,0) scale(1) rotate(0deg); } 25% { transform: translate(1px,-2px) scale(1.15) rotate(8deg); } 50% { transform: translate(-2px,0) scale(1.25) rotate(-8deg); } 75% { transform: translate(1px,2px) scale(1.1) rotate(4deg); } 100% { transform: translate(0,0) scale(1) rotate(0deg); } }
@keyframes wr-shadow-stretch { 0%,100% { opacity:.4; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.2) } }

/* milial-apartment */
.scn-milial-apartment {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #d9c2a6 30%, #a88b73 70%, #6b5a4e 100%),
    radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%);
}
.scn-milial-apartment .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(135deg, #e8dcc8 0%, #c9b79b 100%); border-bottom: 2px solid #b8a48a; }
.scn-milial-apartment .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8b6f4e 0%, #5c4a34 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-milial-apartment .sofa { position:absolute; bottom:12%; left:15%; width:50%; height:28%; background: linear-gradient(135deg, #b0805c 0%, #7a5a3a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,0.4); }
.scn-milial-apartment .lamp { position:absolute; bottom:38%; left:72%; width:6%; height:20%; background: linear-gradient(180deg, #d4a857 0%, #b8923a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 20px 10px #f0c060; animation: map-glow 3s ease-in-out infinite alternate; }
.scn-milial-apartment .window { position:absolute; bottom:48%; left:25%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 30%, #cde4f7 0%, #aac0d4 100%); border: 4px solid #5c4a34; border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 30px rgba(255,255,240,0.6); animation: map-light 8s ease-in-out infinite alternate; }
.scn-milial-apartment .curtain { position:absolute; bottom:50%; left:22%; width:26%; height:40%; background: linear-gradient(135deg, #d9c2a6 0%, #b8a48a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; filter: blur(2px); animation: map-sway 12s ease-in-out infinite; }
.scn-milial-apartment .bookcase { position:absolute; bottom:10%; left:5%; width:12%; height:55%; background: linear-gradient(180deg, #7a5a3a 0%, #5c4a34 100%); border-radius: 4% 4% 6% 6%; box-shadow: 0 6px 10px rgba(0,0,0,0.3); }
.scn-milial-apartment .clock { position:absolute; bottom:50%; left:80%; width:8%; height:8%; background: radial-gradient(circle, #e0c090 0%, #b8923a 100%); border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.2); animation: map-tick 2s steps(2) infinite; }
@keyframes map-glow { 0% { opacity:0.7; box-shadow: 0 0 15px 6px #f0c060; } 50% { opacity:1; box-shadow: 0 0 30px 16px #fce0a0; } 100% { opacity:0.8; box-shadow: 0 0 20px 8px #f0c060; } }
@keyframes map-light { 0% { opacity:0.8; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.02); } 100% { opacity:0.9; transform: scaleX(1); } }
@keyframes map-sway { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes map-tick { 0% { transform: rotate(0); } 100% { transform: rotate(6deg); } }

/* portrait-mystery */
.scn-portrait-mystery {
  background:
    linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 40%, #3a2a3a 100%),
    radial-gradient(ellipse at 50% 45%, #4a3a5a 0%, transparent 70%);
}
.scn-portrait-mystery .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #3a3a4a 0%, #1a1a2a 100%); }
.scn-portrait-mystery .frame-outer { position:absolute; top:10%; left:15%; width:70%; height:80%; background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4% 4% 6% 6%; box-shadow: 0 10px 30px rgba(0,0,0,0.6), inset 0 0 0 6px #7a6a5a; }
.scn-portrait-mystery .canvas { position:absolute; top:13%; left:18%; width:64%; height:74%; background: radial-gradient(ellipse at 50% 40%, #8a7a6a 0%, #5a4a3a 100%); border-radius: 2%; box-shadow: inset 0 0 40px rgba(0,0,0,0.2); }
.scn-portrait-mystery .figure-silhouette { position:absolute; top:20%; left:30%; width:40%; height:45%; background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: ptm-breathe 6s ease-in-out infinite; }
.scn-portrait-mystery .shoulders { position:absolute; bottom:28%; left:26%; width:48%; height:20%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; }
.scn-portrait-mystery .book { position:absolute; bottom:18%; left:35%; width:30%; height:18%; background: linear-gradient(135deg, #c8a878 0%, #a08858 100%); border-radius: 10% 10% 6% 6%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: rotate(-5deg); animation: ptm-book 8s ease-in-out infinite; }
.scn-portrait-mystery .ribbon-left { position:absolute; top:32%; left:28%; width:10%; height:4%; background: linear-gradient(90deg, #c8553d 0%, #a0461a 100%); border-radius: 20% 20% 40% 40%; transform: rotate(-20deg); animation: ptm-ribbon-l 5s ease-in-out infinite alternate; }
.scn-portrait-mystery .ribbon-right { position:absolute; top:30%; right:28%; width:10%; height:4%; background: linear-gradient(90deg, #c8553d 0%, #a0461a 100%); border-radius: 20% 20% 40% 40%; transform: rotate(20deg); animation: ptm-ribbon-r 5s ease-in-out infinite alternate; }
@keyframes ptm-breathe { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes ptm-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ptm-ribbon-l { 0% { transform: rotate(-20deg) translateX(0); } 100% { transform: rotate(-15deg) translateX(3px); } }
@keyframes ptm-ribbon-r { 0% { transform: rotate(20deg) translateX(0); } 100% { transform: rotate(15deg) translateX(-3px); } }

/* portrait-alone */
.scn-portrait-alone {
  background:
    linear-gradient(180deg, #d9c2a6 0%, #b8a48a 40%, #8b7356 100%),
    radial-gradient(ellipse at 60% 30%, #f0e0d0 0%, transparent 60%);
}
.scn-portrait-alone .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #c9b79b 0%, #a88b73 100%); }
.scn-portrait-alone .window-side { position:absolute; top:10%; right:8%; width:20%; height:35%; background: radial-gradient(ellipse at 50% 30%, #cde4f7 0%, #aac0d4 100%); border: 3px solid #7a5a3a; border-radius: 6% 6% 10% 10%; box-shadow: inset 0 0 20px rgba(255,255,240,0.5); animation: pta-light 10s ease-in-out infinite alternate; }
.scn-portrait-alone .chair { position:absolute; bottom:15%; left:20%; width:35%; height:30%; background: linear-gradient(135deg, #b0805c 0%, #7a5a3a 100%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-portrait-alone .figure-profile { position:absolute; bottom:22%; left:28%; width:18%; height:40%; background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 30% 40% 40% / 60% 40% 40% 40%; transform-origin: bottom center; animation: pta-twist 7s ease-in-out infinite; }
.scn-portrait-alone .book-lap { position:absolute; bottom:18%; left:32%; width:20%; height:12%; background: linear-gradient(135deg, #c8a878 0%, #a08858 100%); border-radius: 10% 10% 6% 6%; transform: rotate(10deg); }
.scn-portrait-alone .shadow-floor { position:absolute; bottom:0; left:15%; width:70%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); }
.scn-portrait-alone .dust-mote { position:absolute; top:30%; left:10%; width:4px; height:4px; background: rgba(255,255,240,0.6); border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,255,240,0.3); animation: pta-mote 15s linear infinite; }
@keyframes pta-light { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pta-twist { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(2deg) translateX(5px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes pta-mote { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0; } 10% { opacity:1; } 90% { opacity:0.8; } 100% { transform: translateY(-50vh) translateX(30px) scale(0.5); opacity:0; } }

/* portrait-enchantment */
.scn-portrait-enchantment {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2a1a4e 30%, #3a2a5a 60%, #1a1a3e 100%),
    radial-gradient(ellipse at 50% 50%, #4a3a7a 0%, transparent 70%);
}
.scn-portrait-enchantment .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #2a1a4e 0%, #0a0a2e 100%); }
.scn-portrait-enchantment .portrait-halo { position:absolute; top:5%; left:10%; width:80%; height:90%; background: radial-gradient(ellipse at 50% 45%, rgba(180,140,255,0.3) 0%, transparent 60%); border-radius: 10%; filter: blur(10px); animation: pte-halo 8s ease-in-out infinite alternate; }
.scn-portrait-enchantment .frame-gold { position:absolute; top:8%; left:12%; width:76%; height:84%; background: linear-gradient(135deg, #b8923a 0%, #8a6a2a 100%); border-radius: 4% 4% 6% 6%; box-shadow: 0 0 30px 10px rgba(180,140,100,0.4), inset 0 0 0 8px #c8a040; }
.scn-portrait-enchantment .canvas-glow { position:absolute; top:11%; left:15%; width:70%; height:78%; background: radial-gradient(ellipse at 50% 45%, #4a3a6a 0%, #2a1a4e 100%); border-radius: 2%; box-shadow: inset 0 0 60px rgba(100,60,180,0.3); }
.scn-portrait-enchantment .eye-left { position:absolute; top:40%; left:35%; width:6%; height:8%; background: radial-gradient(circle, #f0c0ff 0%, #a080e0 60%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(200,160,255,0.6); animation: pte-eye 4s ease-in-out infinite alternate; }
.scn-portrait-enchantment .eye-right { position:absolute; top:38%; right:35%; width:6%; height:8%; background: radial-gradient(circle, #f0c0ff 0%, #a080e0 60%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(200,160,255,0.6); animation: pte-eye 4s ease-in-out infinite alternate-reverse; }
.scn-portrait-enchantment .magic-drift-a { position:absolute; top:20%; left:20%; width:8px; height:8px; background: rgba(200,180,255,0.8); border-radius: 50%; filter: blur(2px); box-shadow: 0 0 10px 4px rgba(200,180,255,0.3); animation: pte-drift-a 20s linear infinite; }
.scn-portrait-enchantment .magic-drift-b { position:absolute; top:60%; right:25%; width:6px; height:6px; background: rgba(180,200,255,0.8); border-radius: 50%; filter: blur(1px); box-shadow: 0 0 8px 3px rgba(180,200,255,0.3); animation: pte-drift-b 25s linear infinite; }
.scn-portrait-enchantment .magic-drift-c { position:absolute; bottom:30%; left:10%; width:5px; height:5px; background: rgba(160,220,255,0.8); border-radius: 50%; filter: blur(1px); box-shadow: 0 0 8px 3px rgba(160,220,255,0.3); animation: pte-drift-c 18s linear infinite; }
@keyframes pte-halo { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.6; transform: scale(0.95); } }
@keyframes pte-eye { 0% { transform: scale(0.9); opacity:0.7; } 100% { transform: scale(1.1); opacity:1; } }
@keyframes pte-drift-a { 0% { transform: translateY(0) translateX(0) rotate(0); } 50% { transform: translateY(-30px) translateX(20px) rotate(180deg); } 100% { transform: translateY(0) translateX(0) rotate(360deg); } }
@keyframes pte-drift-b { 0% { transform: translateY(0) translateX(0) scale(1); } 50% { transform: translateY(-40px) translateX(-15px) scale(1.3); } 100% { transform: translateY(0) translateX(0) scale(1); } }
@keyframes pte-drift-c { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-20px) rotate(120deg); } 66% { transform: translateY(-10px) rotate(240deg); } 100% { transform: translateY(0) rotate(360deg); } }

/* scene: children-playing */
.scn-children-playing {
  background: 
    linear-gradient(180deg, #6bb8ff 0%, #c2e0ff 30%, #ffe4b5 60%, #d4a373 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,255,200,0.3) 0%, transparent 60%);
}
.scn-children-playing .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #7ec8e3 0%, #b8d8e8 60%, transparent 100%);
  animation: chp-sky 10s ease-in-out infinite alternate;
}
.scn-children-playing .tree {
  position:absolute; bottom:45%; left:10%; width:120px; height:160px;
  background: radial-gradient(ellipse at 50% 100%, #3b2f1a 30%, transparent 60%), linear-gradient(180deg, #2d5a27 0%, #1a3d1a 100%);
  border-radius: 80% 80% 30% 30% / 100% 100% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.3);
  animation: chp-tree 20s ease-in-out infinite;
}
.scn-children-playing .cistern-rim {
  position:absolute; bottom:25%; left:50%; width:140px; height:20px;
  transform:translateX(-50%);
  background: linear-gradient(90deg, #6b5433 0%, #8b7355 30%, #5a4530 70%, #4a3a25 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: chp-rim 6s ease-in-out infinite;
}
.scn-children-playing .water {
  position:absolute; bottom:20%; left:40%; width:120px; height:40px;
  background: linear-gradient(180deg, #1a2a33 0%, #0b1a24 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6);
  animation: chp-water 4s ease-in-out infinite alternate;
}
.scn-children-playing .boy-a {
  position:absolute; bottom:25%; left:52%; width:16px; height:28px;
  background: linear-gradient(180deg, #8b6f4e 0%, #5c4730 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chp-walk-a 3s ease-in-out infinite;
}
.scn-children-playing .boy-b {
  position:absolute; bottom:25%; left:48%; width:14px; height:24px;
  background: linear-gradient(180deg, #a0856a 0%, #6b543b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chp-walk-b 3.5s ease-in-out infinite;
}
.scn-children-playing .tutor {
  position:absolute; bottom:30%; left:15%; width:30px; height:50px;
  background: linear-gradient(180deg, #8b7355 0%, #5a4530 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: chp-tutor 8s ease-in-out infinite;
}
.scn-children-playing .leaf-drift {
  position:absolute; top:30%; left:20%; width:10px; height:6px;
  background: #6a8a4a;
  border-radius: 50%;
  filter: blur(1px);
  animation: chp-leaf 12s linear infinite;
}
@keyframes chp-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes chp-tree   { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes chp-rim    { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes chp-water  { 0% { background-position:0% 0%; transform:scaleY(1) } 50% { background-position:50% 0%; transform:scaleY(0.95) } 100% { background-position:100% 0%; transform:scaleY(1) } }
@keyframes chp-walk-a { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform:translateX(10px) translateY(0) rotate(-1deg) } 75% { transform:translateX(15px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(20px) translateY(0) rotate(0deg) } }
@keyframes chp-walk-b { 0% { transform:translateX(0) translateY(0) rotate(2deg) } 25% { transform:translateX(4px) translateY(-1px) rotate(-1deg) } 50% { transform:translateX(8px) translateY(0) rotate(1deg) } 75% { transform:translateX(12px) translateY(-1px) rotate(-2deg) } 100% { transform:translateX(16px) translateY(0) rotate(0deg) } }
@keyframes chp-tutor  { 0%,100% { transform:rotate(-12deg) translateY(0) } 50% { transform:rotate(-8deg) translateY(-3px) } }
@keyframes chp-leaf   { 0% { transform:translateX(0) translateY(0) rotate(0deg) opacity:0.6 } 25% { transform:translateX(20px) translateY(10px) rotate(90deg) opacity:0.8 } 50% { transform:translateX(40px) translateY(20px) rotate(180deg) opacity:0.5 } 75% { transform:translateX(60px) translateY(30px) rotate(270deg) opacity:0.7 } 100% { transform:translateX(80px) translateY(40px) rotate(360deg) opacity:0.3 } }

/* scene: tutor-drowning */
.scn-tutor-drowning {
  background: 
    linear-gradient(180deg, #7fb8d4 0%, #b8d8e8 30%, #e8d8b8 60%, #4a6b5a 100%),
    radial-gradient(ellipse at 40% 20%, rgba(255,240,180,0.4) 0%, transparent 70%);
}
.scn-tutor-drowning .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #a0c8e0 0%, #c8e0f0 40%, transparent 100%);
  animation: tud-sky 12s ease-in-out infinite alternate;
}
.scn-tutor-drowning .tree-bg {
  position:absolute; bottom:40%; right:5%; width:80px; height:120px;
  background: radial-gradient(ellipse at 50% 100%, #2a4a2a 30%, transparent 60%);
  border-radius: 70% 70% 20% 20%;
  filter: blur(4px);
  animation: tud-tree 18s ease-in-out infinite;
}
.scn-tutor-drowning .water-surface {
  position:absolute; bottom:30%; left:0; right:0; height:40px;
  background: linear-gradient(180deg, #1a2e3a 0%, #0b1a24 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: tud-surface 5s ease-in-out infinite alternate;
}
.scn-tutor-drowning .tutor-submerge {
  position:absolute; bottom:28%; left:45%; width:30px; height:50px;
  background: linear-gradient(180deg, #5a4530 30%, #2a1e14 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(20deg) scaleY(0.7);
  opacity: 0.8;
  animation: tud-submerge 4s ease-in-out infinite;
}
.scn-tutor-drowning .boy-rise {
  position:absolute; bottom:32%; left:55%; width:14px; height:24px;
  background: linear-gradient(180deg, #8b6f4e 0%, #5c4730 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateY(-10px);
  animation: tud-rise 3s ease-in-out infinite;
}
.scn-tutor-drowning .splash {
  position:absolute; bottom:30%; left:50%; width:20px; height:10px;
  background: radial-gradient(ellipse at center, #a8c8e0 0%, transparent 70%);
  border-radius: 50%;
  animation: tud-splash 1.5s ease-in-out infinite;
}
.scn-tutor-drowning .ripple {
  position:absolute; bottom:28%; left:48%; width:60px; height:6px;
  background: radial-gradient(ellipse, rgba(200,220,240,0.4) 0%, transparent 60%);
  border-radius: 50%;
  animation: tud-ripple 6s linear infinite;
}
@keyframes tud-sky      { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tud-tree     { 0% { transform:rotate(0deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(0deg) } }
@keyframes tud-surface  { 0% { transform:scaleY(1) opacity:0.8 } 50% { transform:scaleY(1.05) opacity:1 } 100% { transform:scaleY(0.95) opacity:0.9 } }
@keyframes tud-submerge { 0% { transform:rotate(15deg) translateY(0) scaleY(0.7); opacity:0.8 } 25% { transform:rotate(25deg) translateY(5px) scaleY(0.6); opacity:0.6 } 50% { transform:rotate(35deg) translateY(10px) scaleY(0.5); opacity:0.4 } 75% { transform:rotate(45deg) translateY(15px) scaleY(0.4); opacity:0.3 } 100% { transform:rotate(50deg) translateY(20px) scaleY(0.3); opacity:0.1 } }
@keyframes tud-rise     { 0% { transform:translateY(-10px) scale(1) } 25% { transform:translateY(-12px) scale(1.05) } 50% { transform:translateY(-15px) scale(1.1) } 75% { transform:translateY(-13px) scale(1.05) } 100% { transform:translateY(-10px) scale(1) } }
@keyframes tud-splash   { 0% { transform:scale(1); opacity:0.6 } 50% { transform:scale(2); opacity:0 } 100% { transform:scale(1); opacity:0 } }
@keyframes tud-ripple   { 0% { transform:scaleX(1) scaleY(1); opacity:0.4 } 25% { transform:scaleX(1.5) scaleY(1.2); opacity:0.3 } 50% { transform:scaleX(2) scaleY(1.5); opacity:0.2 } 75% { transform:scaleX(2.5) scaleY(1.7); opacity:0.1 } 100% { transform:scaleX(3) scaleY(2); opacity:0 } }

/* scene: children-clinging */
.scn-children-clinging {
  background: 
    linear-gradient(180deg, #5a7a8a 0%, #7a9a9a 30%, #8a7a5a 60%, #4a5a3a 100%),
    radial-gradient(ellipse at 60% 40%, rgba(200,180,140,0.3) 0%, transparent 70%);
}
.scn-children-clinging .wall {
  position:absolute; bottom:0; left:30%; right:30%; top:0;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a5a 20%, #5a4a3a 80%, #4a3a2a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.4), inset 4px 0 10px rgba(0,0,0,0.2);
  animation: chcl-wall 8s ease-in-out infinite;
}
.scn-children-clinging .water-dark {
  position:absolute; bottom:20%; left:25%; right:25%; height:30px;
  background: linear-gradient(180deg, #1a2a33 0%, #0b1a24 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: chcl-water 4s ease-in-out infinite alternate;
}
.scn-children-clinging .older-boy {
  position:absolute; bottom:25%; left:40%; width:18px; height:30px;
  background: linear-gradient(180deg, #8b7355 0%, #5a4530 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: chcl-climb-older 4s ease-in-out infinite;
}
.scn-children-clinging .younger-boy {
  position:absolute; bottom:22%; left:55%; width:14px; height:24px;
  background: linear-gradient(180deg, #a0856a 0%, #6b543b 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: chcl-climb-younger 4.5s ease-in-out infinite;
}
.scn-children-clinging .hand-older {
  position:absolute; bottom:28%; left:38%; width:6px; height:8px;
  background: #c0a080;
  border-radius: 50%;
  animation: chcl-hand-old 2s ease-in-out infinite;
}
.scn-children-clinging .hand-younger {
  position:absolute; bottom:24%; left:54%; width:5px; height:6px;
  background: #c0a080;
  border-radius: 50%;
  animation: chcl-hand-yng 2.5s ease-in-out infinite;
}
.scn-children-clinging .foam {
  position:absolute; bottom:20%; left:35%; right:35%; height:4px;
  background: linear-gradient(90deg, transparent, rgba(220,240,255,0.4), transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: chcl-foam 6s linear infinite;
}
@keyframes chcl-wall     { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes chcl-water    { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes chcl-climb-older { 0% { transform:translateY(0) rotate(2deg) } 20% { transform:translateY(-2px) rotate(-1deg) } 40% { transform:translateY(-4px) rotate(1deg) } 60% { transform:translateY(-2px) rotate(-2deg) } 80% { transform:translateY(-1px) rotate(2deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes chcl-climb-younger { 0% { transform:translateY(0) rotate(-2deg) } 25% { transform:translateY(-3px) rotate(1deg) } 50% { transform:translateY(-5px) rotate(-1deg) } 75% { transform:translateY(-2px) rotate(2deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes chcl-hand-old { 0%,100% { transform:scale(1) } 50% { transform:scale(1.2) } }
@keyframes chcl-hand-yng { 0%,100% { transform:scale(1) } 50% { transform:scale(1.3) } }
@keyframes chcl-foam     { 0% { transform:translateX(-10px) opacity:0.4 } 50% { transform:translateX(10px) opacity:0.7 } 100% { transform:translateX(-10px) opacity:0.4 } }

/* scene: children-calling */
.scn-children-calling {
  background: 
    linear-gradient(180deg, #3a5a6a 0%, #5a8a8a 30%, #8a7a5a 60%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 20%, rgba(255,230,170,0.2) 0%, transparent 60%);
}
.scn-children-calling .foliage-dome {
  position:absolute; inset:0 0 50% 0;
  background: radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, #1a3a1a 40%, transparent 70%);
  border-radius: 0 0 60% 60% / 0 0 40% 40%;
  animation: chcl-call-foliage 15s ease-in-out infinite;
}
.scn-children-calling .water-reflect {
  position:absolute; bottom:20%; left:20%; right:20%; height:30px;
  background: linear-gradient(180deg, #1a2a33 0%, #0b1a24 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: chcl-call-water 4s ease-in-out infinite alternate;
}
.scn-children-calling .child-a {
  position:absolute; bottom:22%; left:40%; width:16px; height:28px;
  background: linear-gradient(180deg, #8b7355 0%, #5a4530 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: chcl-call-a 3s ease-in-out infinite;
}
.scn-children-calling .child-b {
  position:absolute; bottom:22%; right:40%; width:14px; height:24px;
  background: linear-gradient(180deg, #a0856a 0%, #6b543b 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: chcl-call-b 3.5s ease-in-out infinite;
}
.scn-children-calling .mouth-call {
  position:absolute; bottom:25%; left:38%; width:6px; height:4px;
  background: radial-gradient(ellipse, #3a2a1a 0%, transparent 80%);
  border-radius: 50%;
  animation: chcl-call-mouth 2s ease-in-out infinite;
}
.scn-children-calling .ripple-call {
  position:absolute; bottom:18%; left:30%; right:30%; height:3px;
  background: radial-gradient(ellipse, rgba(200,220,240,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: chcl-call-ripple 5s linear infinite;
}
.scn-children-calling .light-ray {
  position:absolute; top:10%; left:45%; width:40px; height:80px;
  background: linear-gradient(180deg, rgba(255,240,180,0.2) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(6px);
  animation: chcl-ray 10s ease-in-out infinite alternate;
}
@keyframes chcl-call-foliage { 0% { transform:scale(1) } 50% { transform:scale(1.03) } 100% { transform:scale(0.98) } }
@keyframes chcl-call-water { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes chcl-call-a  { 0%,100% { transform:rotate(5deg) translateY(0) } 50% { transform:rotate(8deg) translateY(-3px) } }
@keyframes chcl-call-b  { 0%,100% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-8deg) translateY(-2px) } }
@keyframes chcl-call-mouth { 0%,100% { opacity:0.3; transform:scale(1) } 50% { opacity:0.8; transform:scale(1.5) } }
@keyframes chcl-call-ripple { 0% { transform:scaleX(1); opacity:0.3 } 25% { transform:scaleX(1.3); opacity:0.2 } 50% { transform:scaleX(1.6); opacity:0.1 } 75% { transform:scaleX(1.9); opacity:0.2 } 100% { transform:scaleX(2.2); opacity:0 } }
@keyframes chcl-ray  { 0% { transform:rotate(12deg) scale(1); opacity:0.3 } 50% { transform:rotate(18deg) scale(1.1); opacity:0.6 } 100% { transform:rotate(12deg) scale(0.95); opacity:0.2 } }

/* ---- meeting-the-secretary ---- */
.scn-meeting-the-secretary {
  background: linear-gradient(180deg, #f5e6d0 0%, #e3d3b8 40%, #cbb69a 100%),
              radial-gradient(ellipse at 30% 20%, #fff7e6 0%, transparent 70%);
}
.scn-meeting-the-secretary .wall-l {
  position: absolute;
  top: 0; left: 0; bottom: 35%; width: 25%;
  background: linear-gradient(135deg, #d6c4aa 0%, #b8a68a 100%);
  border-right: 2px solid #a08a6a;
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.08);
}
.scn-meeting-the-secretary .wall-r {
  position: absolute;
  top: 0; right: 0; bottom: 35%; width: 20%;
  background: linear-gradient(225deg, #d6c4aa 0%, #beae92 100%);
  border-left: 2px solid #a08a6a;
  box-shadow: inset 8px 0 20px rgba(0,0,0,0.08);
}
.scn-meeting-the-secretary .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a5886a 0%, #8b7054 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.15);
}
.scn-meeting-the-secretary .door {
  position: absolute;
  bottom: 35%; left: 38%; width: 24%; height: 52%;
  background: linear-gradient(180deg, #7a5e3e 0%, #60482e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -2px 2px 12px rgba(0,0,0,0.3);
}
.scn-meeting-the-secretary .desk-sec {
  position: absolute;
  bottom: 30%; left: 52%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #8a6e4e 0%, #6a5038 100%);
  border-radius: 2px 2px 8px 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  transform: perspective(400px) rotateX(5deg);
}
.scn-meeting-the-secretary .figure-sec {
  position: absolute;
  bottom: 28%; left: 58%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.3);
  animation: mtk-fig 9s ease-in-out infinite;
}
.scn-meeting-the-secretary .lamp-top {
  position: absolute;
  top: 6%; left: 45%; width: 10%; height: 4%;
  background: radial-gradient(ellipse, #fbe9c0 0%, #e6c88a 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #f5d89a;
  animation: mtk-lamp 4s ease-in-out infinite alternate;
}
.scn-meeting-the-secretary .glow-mid {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 45% 10%, rgba(255,235,200,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: mtk-glow 7s ease-in-out infinite alternate;
}
@keyframes mtk-fig {
  0%   { transform: translateY(0) rotate(0); }
  50%  { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes mtk-lamp {
  0%   { opacity: 0.7; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes mtk-glow {
  0%   { opacity: 0.6; }
  50%  { opacity: 1; }
  100% { opacity: 0.8; }
}

/* ---- office-with-cigar ---- */
.scn-office-with-cigar {
  background: linear-gradient(180deg, #f0e2cc 0%, #dacab0 30%, #c4b096 100%),
              radial-gradient(ellipse at 60% 40%, #fff2dd 0%, transparent 70%);
}
.scn-office-with-cigar .bg-office {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #e8dac4 0%, #cebea4 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.05);
}
.scn-office-with-cigar .desk {
  position: absolute;
  bottom: 10%; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #8a704e 0%, #6a523a 100%);
  border-radius: 8px;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.2);
  transform: perspective(600px) rotateX(10deg);
}
.scn-office-with-cigar .man-silhouette {
  position: absolute;
  bottom: 32%; left: 22%; width: 28%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 40% 30% 30% / 70% 60% 30% 30%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: oc-man 8s ease-in-out infinite;
}
.scn-office-with-cigar .arm-writing {
  position: absolute;
  bottom: 40%; left: 38%; width: 18%; height: 10%;
  background: linear-gradient(180deg, #4a3420 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 50% 50%;
  transform: rotate(-20deg);
  transform-origin: right center;
  animation: oc-arm 6s ease-in-out infinite alternate;
}
.scn-office-with-cigar .cigar {
  position: absolute;
  bottom: 50%; left: 42%; width: 6%; height: 3%;
  background: linear-gradient(90deg, #8b4513 0%, #a0522d 60%, #f4a460 90%, #888 100%);
  border-radius: 20%;
  box-shadow: 0 0 6px 2px #ff6600;
  animation: oc-cigar 4s ease-in-out infinite;
}
.scn-office-with-cigar .smoke-1 {
  position: absolute;
  bottom: 52%; left: 44%; width: 8%; height: 12%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: oc-smoke 12s ease-in-out infinite;
}
.scn-office-with-cigar .smoke-2 {
  position: absolute;
  bottom: 54%; left: 47%; width: 10%; height: 14%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: oc-smoke2 14s ease-in-out infinite;
  animation-delay: -5s;
}
.scn-office-with-cigar .lamp-desk {
  position: absolute;
  bottom: 48%; right: 15%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #b8942a 0%, #8a6e1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px 10px #ffdd88;
  animation: oc-lamp 5s ease-in-out infinite alternate;
}
@keyframes oc-man {
  0%   { transform: translateY(0) rotate(0); }
  50%  { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes oc-arm {
  0%   { transform: rotate(-20deg) translateY(0); }
  50%  { transform: rotate(-15deg) translateY(-2px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes oc-cigar {
  0%   { opacity: 0.9; transform: scale(1); }
  50%  { opacity: 1; transform: scale(1.05) rotate(2deg); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes oc-smoke {
  0%   { transform: translateY(0) scaleX(1); opacity: 0.5; }
  50%  { transform: translateY(-20px) scaleX(1.5); opacity: 0.3; }
  100% { transform: translateY(-40px) scaleX(2); opacity: 0; }
}
@keyframes oc-smoke2 {
  0%   { transform: translateY(0) scaleX(1); opacity: 0.4; }
  50%  { transform: translateY(-18px) scaleX(1.3); opacity: 0.2; }
  100% { transform: translateY(-36px) scaleX(1.8); opacity: 0; }
}
@keyframes oc-lamp {
  0%   { box-shadow: 0 0 20px 5px #ffdd88; }
  100% { box-shadow: 0 0 40px 15px #ffd060; }
}

/* ---- explaining-the-bureau ---- */
.scn-explaining-the-bureau {
  background: linear-gradient(180deg, #eedcc4 0%, #dcc4aa 40%, #c5ae92 100%),
              radial-gradient(ellipse at 50% 40%, #fff3e0 0%, transparent 60%);
}
.scn-explaining-the-bureau .bg-inner {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #e3d0b8 0%, #ceb89e 100%);
}
.scn-explaining-the-bureau .table-center {
  position: absolute;
  bottom: 20%; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, #7a5e3e 0%, #5a4228 100%);
  border-radius: 6px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-explaining-the-bureau .chair-left {
  position: absolute;
  bottom: 10%; left: 10%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #6a4e32 0%, #4a321e 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-explaining-the-bureau .chair-right {
  position: absolute;
  bottom: 10%; right: 10%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #6a4e32 0%, #4a321e 100%);
  border-radius: 10% 10% 5% 5%;
}
.scn-explaining-the-bureau .figure-left {
  position: absolute;
  bottom: 30%; left: 15%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: eb-fig-l 10s ease-in-out infinite;
}
.scn-explaining-the-bureau .figure-right {
  position: absolute;
  bottom: 30%; right: 15%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: eb-fig-r 8s ease-in-out infinite;
}
.scn-explaining-the-bureau .lamp-over {
  position: absolute;
  top: 10%; left: 42%; width: 16%; height: 6%;
  background: radial-gradient(ellipse, #fbe9c0 0%, #e6c88a 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f5d89a;
  animation: eb-lamp 6s ease-in-out infinite alternate;
}
.scn-explaining-the-bureau .shadow-under {
  position: absolute;
  bottom: 10%; left: 20%; right: 20%; height: 5%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: eb-shadow 12s ease-in-out infinite;
}
@keyframes eb-fig-l {
  0%   { transform: translateY(0) rotate(0); }
  50%  { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes eb-fig-r {
  0%   { transform: translateY(0) rotate(0); }
  50%  { transform: translateY(-1px) rotate(0.5deg) scaleX(1.02); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes eb-lamp {
  0%   { opacity: 0.8; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.15); }
}
@keyframes eb-shadow {
  0%   { opacity: 0.5; transform: scaleX(1); }
  50%  { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

/* ---- humanitarian-ideal ---- */
.scn-humanitarian-ideal {
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a26 30%, #050a10 100%),
              radial-gradient(ellipse at 30% 40%, #2a4a6a 0%, transparent 60%);
}
.scn-humanitarian-ideal .bg-tense {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #14202e 0%, #0a141e 100%);
}
.scn-humanitarian-ideal .shadow-bar {
  position: absolute;
  top: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 50%, transparent 100%);
  animation: hi-shadow 5s ease-in-out infinite alternate;
}
.scn-humanitarian-ideal .profile-right {
  position: absolute;
  bottom: 20%; right: 15%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 30% 30% 50% / 70% 50% 50% 30%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
  animation: hi-profile 7s ease-in-out infinite;
}
.scn-humanitarian-ideal .hand-gesture {
  position: absolute;
  bottom: 40%; right: 30%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #2a1a1a 0%, #120a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  animation: hi-hand 4s ease-in-out infinite alternate;
}
.scn-humanitarian-ideal .glow-sharp {
  position: absolute;
  top: 20%; left: 20%; width: 30%; height: 30%;
  background: radial-gradient(ellipse, rgba(200,220,255,0.15) 0%, transparent 70%);
  filter: blur(4px);
  animation: hi-glow 3s ease-in-out infinite alternate;
}
.scn-humanitarian-ideal .edge-light {
  position: absolute;
  top: 10%; left: 0; right: 0; height: 5%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.1) 20%, transparent 80%);
  animation: hi-edge 8s linear infinite;
}
.scn-humanitarian-ideal .particle-a {
  position: absolute;
  top: 40%; left: 10%; width: 4px; height: 4px;
  background: #aaccff;
  border-radius: 50%;
  box-shadow: 0 0 6px #aaccff;
  animation: hi-part 15s infinite;
}
.scn-humanitarian-ideal .particle-b {
  position: absolute;
  top: 30%; left: 70%; width: 3px; height: 3px;
  background: #ffccaa;
  border-radius: 50%;
  box-shadow: 0 0 4px #ffccaa;
  animation: hi-part2 18s infinite;
  animation-delay: -7s;
}
@keyframes hi-shadow {
  0%   { opacity: 0.3; }
  100% { opacity: 0.7; }
}
@keyframes hi-profile {
  0%   { transform: translateX(0) rotate(0); }
  50%  { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hi-hand {
  0%   { transform: rotate(-10deg) translateY(0); }
  100% { transform: rotate(5deg) translateY(-3px); }
}
@keyframes hi-glow {
  0%   { opacity: 0.2; transform: scale(1); }
  100% { opacity: 0.6; transform: scale(1.2); }
}
@keyframes hi-edge {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}
@keyframes hi-part {
  0%   { transform: translateY(0) scaleX(1); opacity: 1; }
  50%  { transform: translateY(-40px) scaleX(0.5); opacity: 0.3; }
  100% { transform: translateY(-80px) scaleX(0.2); opacity: 0; }
}
@keyframes hi-part2 {
  0%   { transform: translateY(0) scaleX(1); opacity: 0.8; }
  50%  { transform: translateY(-30px) scaleX(0.6); opacity: 0.2; }
  100% { transform: translateY(-60px) scaleX(0.3); opacity: 0; }
}

/* Scene 1: deciding-to-tell-parents */
.scn-deciding-to-tell-parents {
  background:
    linear-gradient(180deg, #2b2419 0%, #1f1a13 100%),
    radial-gradient(ellipse at 50% 30%, #3d3224 0%, #0f0b08 70%);
}
.scn-deciding-to-tell-parents .d-wall { position:absolute; inset:0 0 35% 0; background:linear-gradient(90deg, #2b2218, #1f1810); }
.scn-deciding-to-tell-parents .d-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #3a2f20, #241c12); }
.scn-deciding-to-tell-parents .d-table { position:absolute; bottom:22%; left:30%; width:40%; height:8%; background:linear-gradient(180deg, #4a3a2a, #2f2318); border-radius:4%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-deciding-to-tell-parents .d-chair-left { position:absolute; bottom:20%; left:20%; width:16%; height:20%; background:linear-gradient(180deg, #3a3022, #231c12); border-radius:10% 10% 30% 30%; transform-origin: bottom; animation: dtp-chair-l 8s ease-in-out infinite alternate; }
.scn-deciding-to-tell-parents .d-chair-right { position:absolute; bottom:20%; right:20%; width:16%; height:20%; background:linear-gradient(180deg, #3a3022, #231c12); border-radius:10% 10% 30% 30%; transform-origin: bottom; animation: dtp-chair-r 10s ease-in-out infinite alternate; }
.scn-deciding-to-tell-parents .d-figure-antoine { position:absolute; bottom:23%; left:47%; width:10%; height:22%; background:linear-gradient(180deg, #4a3e30, #2f271e); border-radius:40% 40% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dtp-antoine 6s ease-in-out infinite; }
.scn-deciding-to-tell-parents .d-figure-father { position:absolute; bottom:23%; left:22%; width:12%; height:24%; background:linear-gradient(180deg, #3d3228, #261d14); border-radius:40% 40% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dtp-father 12s ease-in-out infinite; }
.scn-deciding-to-tell-parents .d-figure-mother { position:absolute; bottom:23%; right:22%; width:11%; height:22%; background:linear-gradient(180deg, #4a3a30, #2f241b); border-radius:40% 40% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dtp-mother 14s ease-in-out infinite; }
.scn-deciding-to-tell-parents .d-lantern { position:absolute; bottom:30%; left:50%; width:6%; height:10%; background:radial-gradient(ellipse, #d4a85a 0%, #b8873a 40%, #5a3a1a 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 30px 10px rgba(200,160,80,.3); animation: dtp-lantern 4s ease-in-out infinite alternate; }
.scn-deciding-to-tell-parents .d-light-pool { position:absolute; bottom:18%; left:35%; width:30%; height:20%; background:radial-gradient(ellipse, rgba(220,190,120,.15) 0%, transparent 70%); animation: dtp-pool 9s ease-in-out infinite alternate; }
@keyframes dtp-chair-l { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes dtp-chair-r { 0% { transform: rotate(-1deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes dtp-antoine { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(1deg) } 75% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes dtp-father { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes dtp-mother { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(0.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes dtp-lantern { 0% { opacity:.7; box-shadow:0 0 20px 5px rgba(200,160,80,.2) } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(200,160,80,.4) } 100% { opacity:.8; box-shadow:0 0 25px 8px rgba(200,160,80,.25) } }
@keyframes dtp-pool { 0% { opacity:.3; transform:scale(0.9) } 50% { opacity:.5; transform:scale(1.05) } 100% { opacity:.4; transform:scale(0.95) } }

/* Scene 2: parents-cautious */
.scn-parents-cautious {
  background:
    linear-gradient(180deg, #1f1913 0%, #15100b 100%),
    radial-gradient(ellipse at 50% 40%, #2b2218 0%, #0a0705 80%);
}
.scn-parents-cautious .c-wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(90deg, #1a1410, #0f0b08); }
.scn-parents-cautious .c-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #2f241c, #1a130e); }
.scn-parents-cautious .c-table { position:absolute; bottom:18%; left:25%; width:50%; height:6%; background:linear-gradient(180deg, #3a2e22, #251c12); border-radius:3%; box-shadow: 0 6px 15px rgba(0,0,0,.7); }
.scn-parents-cautious .c-chair-left { position:absolute; bottom:16%; left:18%; width:14%; height:18%; background:linear-gradient(180deg, #30261c, #1c150e); border-radius:8% 8% 25% 25%; transform-origin: bottom; animation: pca-chair-l 3s ease-in-out infinite alternate; }
.scn-parents-cautious .c-chair-right { position:absolute; bottom:16%; right:18%; width:14%; height:18%; background:linear-gradient(180deg, #30261c, #1c150e); border-radius:8% 8% 25% 25%; transform-origin: bottom; animation: pca-chair-r 3.5s ease-in-out infinite alternate; }
.scn-parents-cautious .c-figure-antoine-standing { position:absolute; bottom:20%; left:46%; width:8%; height:28%; background:linear-gradient(180deg, #3d3126, #261c14); border-radius:40% 40% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pca-antoine 2.5s ease-in-out infinite; }
.scn-parents-cautious .c-figure-father { position:absolute; bottom:18%; left:20%; width:12%; height:22%; background:linear-gradient(180deg, #352a20, #1f160e); border-radius:45% 45% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: pca-father 3s ease-in-out infinite; }
.scn-parents-cautious .c-figure-mother { position:absolute; bottom:18%; right:20%; width:11%; height:21%; background:linear-gradient(180deg, #3d3026, #261b14); border-radius:45% 45% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: pca-mother 3.2s ease-in-out infinite; }
.scn-parents-cautious .c-lantern-flicker { position:absolute; bottom:30%; left:50%; width:5%; height:8%; background:radial-gradient(ellipse, #c89a4a 0%, #a07a30 50%, #4a2a10 100%); border-radius:25% 25% 15% 15%; box-shadow: 0 0 40px 12px rgba(200,160,80,.5); animation: pca-flicker 0.3s steps(2) infinite; }
.scn-parents-cautious .c-shadow-sharp { position:absolute; bottom:10%; left:30%; width:40%; height:15%; background:linear-gradient(180deg, rgba(0,0,0,.6), transparent); filter: blur(4px); animation: pca-shadow 4s ease-in-out infinite alternate; }
@keyframes pca-chair-l { 0% { transform: rotate(0deg) } 100% { transform: rotate(5deg) } }
@keyframes pca-chair-r { 0% { transform: rotate(0deg) } 100% { transform: rotate(-5deg) } }
@keyframes pca-antoine { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-2deg) } }
@keyframes pca-father { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes pca-mother { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(0.97) } 100% { transform: translateY(0) scale(1) } }
@keyframes pca-flicker { 0% { opacity:.6; box-shadow:0 0 30px 8px rgba(200,160,80,.3) } 100% { opacity:1; box-shadow:0 0 50px 18px rgba(200,160,80,.6) } }
@keyframes pca-shadow { 0% { opacity:.3 } 100% { opacity:.7 } }

/* Scene 3: parents-shocked */
.scn-parents-shocked {
  background:
    linear-gradient(180deg, #18120c 0%, #0e0a07 100%),
    radial-gradient(ellipse at 50% 35%, #241b14 0%, #050302 80%);
}
.scn-parents-shocked .s-wall { position:absolute; inset:0 0 25% 0; background:linear-gradient(90deg, #120e0a, #0a0705); }
.scn-parents-shocked .s-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #1c150e, #0f0a06); }
.scn-parents-shocked .s-table { position:absolute; bottom:14%; left:28%; width:44%; height:4%; background:linear-gradient(180deg, #2a201a, #1a120a); border-radius:2%; box-shadow: 0 8px 20px rgba(0,0,0,.8); }
.scn-parents-shocked .s-chair-tilted { position:absolute; bottom:12%; left:24%; width:15%; height:20%; background:linear-gradient(180deg, #241c14, #140e08); border-radius:8% 8% 25% 25%; transform-origin: bottom left; animation: psh-chair-tilt 0.8s ease-in-out infinite alternate; }
.scn-parents-shocked .s-figure-antoine { position:absolute; bottom:16%; left:45%; width:9%; height:26%; background:linear-gradient(180deg, #2a1f16, #1a110a); border-radius:40% 40% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psh-antoine 1.5s ease-in-out infinite; }
.scn-parents-shocked .s-figure-father-recoil { position:absolute; bottom:14%; left:18%; width:13%; height:20%; background:linear-gradient(180deg, #201810, #120b06); border-radius:45% 45% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: psh-father 0.6s ease-in-out infinite; }
.scn-parents-shocked .s-figure-mother-recoil { position:absolute; bottom:14%; right:18%; width:12%; height:19%; background:linear-gradient(180deg, #241c12, #140d06); border-radius:45% 45% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: psh-mother 0.7s ease-in-out infinite; }
.scn-parents-shocked .s-lantern-swing { position:absolute; bottom:28%; left:50%; width:5%; height:9%; background:radial-gradient(ellipse, #b88a3a 0%, #8a6620 50%, #3a1e08 100%); border-radius:25% 25% 15% 15%; box-shadow: 0 0 45px 15px rgba(180,140,60,.4); animation: psh-swing 1.2s ease-in-out infinite; }
.scn-parents-shocked .s-light-beam { position:absolute; bottom:20%; left:44%; width:12%; height:40%; background:linear-gradient(180deg, rgba(200,170,100,.2), transparent); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: psh-beam 1s ease-in-out infinite alternate; }
@keyframes psh-chair-tilt { 0% { transform: rotate(0deg) } 100% { transform: rotate(15deg) } }
@keyframes psh-antoine { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-5px) translateY(-3px) rotate(-3deg) } 75% { transform: translateX(3px) translateY(-2px) rotate(2deg) } }
@keyframes psh-father { 0% { transform: translateY(0) rotate(0deg) scale(1) } 50% { transform: translateY(-8px) rotate(-8deg) scale(1.05) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes psh-mother { 0% { transform: translateY(0) rotate(0deg) scale(1) } 50% { transform: translateY(-6px) rotate(8deg) scale(1.04) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes psh-swing { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-8deg) } }
@keyframes psh-beam { 0% { opacity:.2; transform:scaleY(0.8) } 100% { opacity:.4; transform:scaleY(1.2) } }

/* Scene 4: questions-about-blackness */
.scn-questions-about-blackness {
  background:
    linear-gradient(180deg, #1a130e 0%, #100a07 100%),
    radial-gradient(ellipse at 50% 40%, #2a1e16 0%, #050302 75%);
}
.scn-questions-about-blackness .q-wall { position:absolute; inset:0 0 20% 0; background:linear-gradient(90deg, #140f0b, #0a0705); }
.scn-questions-about-blackness .q-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #1c140e, #0e0905); }
.scn-questions-about-blackness .q-table-edge { position:absolute; bottom:12%; left:20%; width:60%; height:3%; background:linear-gradient(180deg, #2a2018, #1a120a); border-radius:2%; }
.scn-questions-about-blackness .q-figure-antoine { position:absolute; bottom:14%; left:52%; width:9%; height:24%; background:linear-gradient(180deg, #241a12, #140c06); border-radius:40% 40% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qab-antoine 3s ease-in-out infinite; }
.scn-questions-about-blackness .q-figure-father { position:absolute; bottom:14%; left:28%; width:14%; height:22%; background:linear-gradient(180deg, #1a110a, #0e0804); border-radius:45% 45% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: qab-father 2s ease-in-out infinite; }
.scn-questions-about-blackness .q-father-hand { position:absolute; bottom:18%; left:34%; width:6%; height:10%; background:linear-gradient(180deg, #2a1e14, #160e08); border-radius:40% 40% 30% 30%; transform-origin: bottom left; animation: qab-hand 1.5s ease-in-out infinite; }
.scn-questions-about-blackness .q-lantern { position:absolute; bottom:28%; left:48%; width:6%; height:10%; background:radial-gradient(ellipse, #c09040 0%, #9a6e28 50%, #3a1a08 100%); border-radius:25% 25% 15% 15%; box-shadow: 0 0 35px 10px rgba(200,160,80,.35); animation: qab-lantern 5s ease-in-out infinite alternate; }
.scn-questions-about-blackness .q-shadow { position:absolute; bottom:0; left:25%; width:50%; height:15%; background:linear-gradient(180deg, rgba(0,0,0,.5), transparent); filter: blur(6px); animation: qab-shadow 4s ease-in-out infinite alternate; }
@keyframes qab-antoine { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 75% { transform: translateX(1px) translateY(-2px) rotate(1deg) } }
@keyframes qab-father { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(-2deg) } 60% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes qab-hand { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-15deg) translateX(4px) } 75% { transform: rotate(10deg) translateX(2px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes qab-lantern { 0% { opacity:.7; box-shadow:0 0 25px 5px rgba(200,160,80,.2) } 50% { opacity:.9; box-shadow:0 0 40px 12px rgba(200,160,80,.4) } 100% { opacity:.8; box-shadow:0 0 30px 8px rgba(200,160,80,.3) } }
@keyframes qab-shadow { 0% { opacity:.5; transform:scaleX(1) } 100% { opacity:.8; transform:scaleX(1.1) } }

/* gontran-introduced */
.scn-gontran-introduced {
  background: linear-gradient(180deg, #3e2a1a 0%, #2a1c0e 100%),
              radial-gradient(ellipse at 50% 100%, #2a1c0e 0%, transparent 60%);
}
.scn-gontran-introduced .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3522 0%, #3a2818 50%, #2a1c0e 100%);
  opacity: 0.9;
}
.scn-gontran-introduced .window-frame {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 60%;
  border: 6px solid #5e3d1f;
  border-radius: 8% 8% 4% 4%;
  background: linear-gradient(135deg, #1e1a14 0%, #2a241a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-gontran-introduced .elmAlley {
  position: absolute; top: 12%; left: 37%; width: 26%; height: 56%;
  background: radial-gradient(ellipse at 30% 50%, #2a3a1a 0%, #1a2a0e 70%);
  filter: blur(4px);
  opacity: 0.6;
  animation: si2-treesway 8s ease-in-out infinite alternate;
}
.scn-gontran-introduced .figure-gontran {
  position: absolute; bottom: 22%; left: 50%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1c0e 0%, #0e0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: si2-figuresway 5s ease-in-out infinite alternate;
}
.scn-gontran-introduced .curtain {
  position: absolute; top: 10%; left: 32%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #5e4a32 0%, #4a3820 100%);
  border-radius: 0 20% 20% 0;
  transform-origin: left top;
  animation: si2-curtain 12s ease-in-out infinite alternate;
}
.scn-gontran-introduced .lamp-glow {
  position: absolute; bottom: 40%; left: 15%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0c068 0%, #c08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(192,128,64,0.5), 0 0 80px 30px rgba(192,128,64,0.2);
  animation: si2-lamp 4s ease-in-out infinite alternate;
}
.scn-gontran-introduced .windowsill {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 3%;
  background: linear-gradient(180deg, #4a3522 0%, #3a2818 100%);
  border-radius: 2px;
}
@keyframes si2-treesway {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(3px) scale(1.02); opacity: 0.7; }
  100% { transform: translateX(-2px) scale(0.98); opacity: 0.6; }
}
@keyframes si2-figuresway {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes si2-curtain {
  0% { transform: scaleX(1) skewY(0deg); }
  50% { transform: scaleX(1.05) skewY(2deg); }
  100% { transform: scaleX(0.95) skewY(-2deg); }
}
@keyframes si2-lamp {
  0% { box-shadow: 0 0 30px 15px rgba(192,128,64,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 25px rgba(192,128,64,0.7); opacity: 1; }
  100% { box-shadow: 0 0 40px 20px rgba(192,128,64,0.5); opacity: 0.85; }
}

/* dreaming-together */
.scn-dreaming-together {
  background: linear-gradient(180deg, #1a2244 0%, #2a3050 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 70% 30%, #2a3050 0%, transparent 70%);
}
.scn-dreaming-together .moonlit-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a3050 0%, #1a1a2a 100%);
  animation: si3-sky 20s ease-in-out infinite alternate;
}
.scn-dreaming-together .moon {
  position: absolute; top: 10%; right: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle at 30% 30%, #f0f0e0 0%, #d0d0b0 60%, #b0b0a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(200,200,180,0.3), 0 0 120px 60px rgba(200,200,180,0.15);
  animation: si3-moon 12s ease-in-out infinite alternate;
}
.scn-dreaming-together .trees-forest {
  position: absolute; bottom: 20%; left: -10%; right: -10%; height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 40% 40% 0 0;
  clip-path: polygon(0% 100%, 20% 30%, 30% 50%, 40% 20%, 50% 40%, 60% 10%, 70% 35%, 80% 15%, 90% 45%, 100% 25%, 100% 100%);
  animation: si3-trees 30s ease-in-out infinite alternate;
}
.scn-dreaming-together .clearing {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(135deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-dreaming-together .figure-a {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si3-figurea 6s ease-in-out infinite;
}
.scn-dreaming-together .figure-b {
  position: absolute; bottom: 25%; left: 48%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si3-figureb 6s ease-in-out infinite 2s;
}
.scn-dreaming-together .moon-mist {
  position: absolute; top: 15%; left: 20%; width: 120px; height: 60px;
  background: radial-gradient(ellipse, rgba(180,180,200,0.15) 0%, transparent 70%);
  filter: blur(15px);
  animation: si3-mist 45s linear infinite;
}
@keyframes si3-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes si3-moon {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 50px 25px rgba(200,200,180,0.3); }
  50% { transform: translateY(-5px) scale(1.02); box-shadow: 0 0 70px 35px rgba(200,200,180,0.5); }
  100% { transform: translateY(3px) scale(0.98); box-shadow: 0 0 40px 20px rgba(200,200,180,0.25); }
}
@keyframes si3-trees {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(10px) scale(1.03); }
  100% { transform: translateX(-10px) scale(0.97); }
}
@keyframes si3-figurea {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(1deg); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes si3-figureb {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-5px) rotate(-1deg); }
  50% { transform: translateX(-10px) rotate(1deg); }
  75% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes si3-mist {
  0% { transform: translateX(-30px) scale(1); opacity: 0.3; }
  50% { transform: translateX(30px) scale(1.2); opacity: 0.5; }
  100% { transform: translateX(-30px) scale(1); opacity: 0.3; }
}

/* family-legends-told */
.scn-family-legends-told {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-family-legends-told .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e06 100%);
}
.scn-family-legends-told .hearth {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-family-legends-told .fire {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 80%, #ff8030 0%, #c05020 40%, #802010 70%, #2a0e00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: si4-fire 0.8s ease-in-out infinite alternate;
}
.scn-family-legends-told .mother-silhouette {
  position: absolute; bottom: 15%; left: 20%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #0e0a06 0%, #060402 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si4-mother 5s ease-in-out infinite;
}
.scn-family-legends-told .child-silhouette {
  position: absolute; bottom: 15%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si4-child 4s ease-in-out infinite 1s;
}
.scn-family-legends-told .shadow-dance {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 40%;
  background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: si4-shadow 6s ease-in-out infinite alternate;
}
.scn-family-legends-told .rug {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 30%, #5a3220 70%, #3a1a0e 100%);
  border-radius: 10% 10% 30% 30% / 50% 50% 20% 20%;
}
@keyframes si4-fire {
  0% { transform: scale(1) rotate(-2deg); opacity: 0.9; box-shadow: 0 0 30px 15px rgba(255,128,48,0.5); }
  50% { transform: scale(1.1) rotate(2deg); opacity: 1; box-shadow: 0 0 50px 25px rgba(255,128,48,0.7); }
  100% { transform: scale(0.95) rotate(-1deg); opacity: 0.95; box-shadow: 0 0 25px 10px rgba(255,128,48,0.4); }
}
@keyframes si4-mother {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  75% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes si4-child {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  50% { transform: translateX(8px) rotate(5deg) scale(0.98); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes si4-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.2; transform: scaleX(0.8); }
}

/* childish-courtship */
.scn-childish-courtship {
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0e 100%),
              radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-childish-courtship .chamber-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  opacity: 0.85;
}
.scn-childish-courtship .arched-window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 65%;
  border: 5px solid #6a4a2a;
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  background: linear-gradient(135deg, #1a1a14 0%, #2a2a1e 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-childish-courtship .morning-light {
  position: absolute; top: 20%; left: 38%; width: 24%; height: 55%;
  background: linear-gradient(135deg, rgba(240,220,180,0.1) 0%, rgba(240,220,180,0.05) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: si5-light 8s ease-in-out infinite alternate;
}
.scn-childish-courtship .bouquet {
  position: absolute; bottom: 30%; left: 44%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 60%, #c8553d 0%, #a0461a 40%, #5e1a1d 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: si5-bouquet 6s ease-in-out infinite;
}
.scn-childish-courtship .boy-figure {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si5-boy 5s ease-in-out infinite alternate;
}
.scn-childish-courtship .girl-hand {
  position: absolute; bottom: 25%; left: 45%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom left;
  animation: si5-hand 4s ease-in-out infinite alternate;
}
.scn-childish-courtship .candle {
  position: absolute; bottom: 40%; left: 60%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0b080 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 20px 8px rgba(240,220,180,0.3);
  animation: si5-candle 3s ease-in-out infinite alternate;
}
@keyframes si5-light {
  0% { opacity: 0.1; transform: scaleX(1); }
  50% { opacity: 0.3; transform: scaleX(1.1); }
  100% { opacity: 0.15; transform: scaleX(0.9); }
}
@keyframes si5-bouquet {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.02); }
  100% { transform: rotate(-3deg) scale(0.98); }
}
@keyframes si5-boy {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(6px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes si5-hand {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(5px); }
  100% { transform: rotate(-5deg) translateX(2px); }
}
@keyframes si5-candle {
  0% { transform: scaleY(1) rotate(-2deg); opacity: 0.9; box-shadow: 0 0 15px 5px rgba(240,220,180,0.2); }
  50% { transform: scaleY(1.05) rotate(2deg); opacity: 1; box-shadow: 0 0 25px 10px rgba(240,220,180,0.4); }
  100% { transform: scaleY(0.98) rotate(0deg); opacity: 0.95; box-shadow: 0 0 18px 6px rgba(240,220,180,0.25); }
}

.scn-understanding-the-weary {
  background: linear-gradient(180deg, #1b1a2a 0%, #2c2b3e 40%, #3a3845 100%),
              radial-gradient(ellipse at 30% 60%, #2a2a3a 0%, transparent 70%);
}
.scn-understanding-the-weary .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e2c3c 0%, #1f1e2a 100%);
  animation: uw-wall 12s ease-in-out infinite alternate;
}
.scn-understanding-the-weary .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1d1a1a 0%, #121010 100%);
  border-radius: 20% 30% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-understanding-the-weary .window {
  position: absolute; top: 18%; left: 65%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a5070 0%, #2a3a50 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px #4a6070, 0 0 20px #4a6070;
  animation: uw-window 5s ease-in-out infinite alternate;
}
.scn-understanding-the-weary .window-glow {
  position: absolute; top: 18%; left: 65%; width: 50px; height: 70px;
  background: radial-gradient(circle at 50% 50%, rgba(74,100,120,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: uw-glow 5s ease-in-out infinite alternate;
}
.scn-understanding-the-weary .figure {
  position: absolute; bottom: 30%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a1818 0%, #0e0c0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-understanding-the-weary .figure-1 { left: 20%; animation: uw-fig1 8s ease-in-out infinite; }
.scn-understanding-the-weary .figure-2 { left: 40%; animation: uw-fig2 9s ease-in-out infinite 1s; }
.scn-understanding-the-weary .figure-3 { left: 80%; animation: uw-fig3 10s ease-in-out infinite 2s; transform: scaleX(-1); }
@keyframes uw-wall { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes uw-window { 0% { opacity: 0.6; box-shadow: 0 0 15px #4a6070; } 50% { opacity: 0.8; box-shadow: 0 0 30px #6a8090; } 100% { opacity: 0.5; box-shadow: 0 0 10px #3a5060; } }
@keyframes uw-glow { 0% { transform: scale(0.9); opacity: 0.5; } 50% { transform: scale(1.2); opacity: 0.8; } 100% { transform: scale(0.95); opacity: 0.4; } }
@keyframes uw-fig1 { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes uw-fig2 { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(-2deg); } 66% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes uw-fig3 { 0% { transform: translateY(0) scaleX(-1); } 33% { transform: translateY(-3px) scaleX(-1) rotate(-1deg); } 66% { transform: translateY(1px) scaleX(-1) rotate(2deg); } 100% { transform: translateY(0) scaleX(-1); } }

.scn-suicide-as-door {
  background: linear-gradient(180deg, #1c1b25 0%, #2a2837 40%, #1c1a22 100%),
              radial-gradient(ellipse at 50% 80%, #3a3040 0%, transparent 70%);
}
.scn-suicide-as-door .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #24222e 0%, #1d1c26 30%, #322f3f 70%, #1e1c28 100%);
  animation: sd-wall 6s ease-in-out infinite alternate;
}
.scn-suicide-as-door .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1b1922 0%, #0f0d14 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.7);
}
.scn-suicide-as-door .door {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3e3a40 0%, #2a2733 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 15px #1e1c26, 0 8px 20px rgba(0,0,0,0.6);
  animation: sd-door 4s ease-in-out infinite;
}
.scn-suicide-as-door .door-light {
  position: absolute; bottom: 22%; left: 50%; width: 10px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, rgba(255,220,150,0.9) 0%, rgba(255,200,100,0.3) 50%, transparent 100%);
  border-radius: 2px;
  filter: blur(4px);
  animation: sd-light 3s ease-in-out infinite alternate;
}
.scn-suicide-as-door .figure {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-fig 2.5s ease-in-out infinite;
}
.scn-suicide-as-door .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: sd-shadow 2.5s ease-in-out infinite;
}
@keyframes sd-wall { 0% { opacity: 0.8; background-position: 0 0; } 50% { opacity: 0.9; background-position: 10px 0; } 100% { opacity: 0.75; background-position: -5px 0; } }
@keyframes sd-door { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(1deg); } 75% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sd-light { 0% { opacity: 0.7; transform: scaleY(0.9); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.6; transform: scaleY(0.95); } }
@keyframes sd-fig { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(8px) rotate(3deg); } 60% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sd-shadow { 0% { transform: scaleX(1); opacity: 0.4; } 30% { transform: scaleX(1.3); opacity: 0.6; } 60% { transform: scaleX(0.8); opacity: 0.3; } 100% { transform: scaleX(1); opacity: 0.4; } }

.scn-marching-free {
  background: linear-gradient(180deg, #2d2a35 0%, #3d3a47 40%, #2a2732 100%),
              radial-gradient(ellipse at 30% 50%, #4a4560 0%, transparent 70%);
}
.scn-marching-free .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1e1c24 0%, #131219 100%);
  border-radius: 60% 40% 0 0 / 50% 30% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.5);
  animation: mf-floor 20s linear infinite alternate;
}
.scn-marching-free .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3750 0%, #2c2a3c 100%);
  animation: mf-sky 30s linear infinite alternate;
}
.scn-marching-free .marcher {
  position: absolute; bottom: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-marching-free .marcher-1 { left: 10%; animation: mf-march 8s ease-in-out infinite; }
.scn-marching-free .marcher-2 { left: 30%; animation: mf-march 8s ease-in-out infinite -2s; }
.scn-marching-free .marcher-3 { left: 50%; animation: mf-march 8s ease-in-out infinite -4s; }
.scn-marching-free .marcher-4 { left: 70%; animation: mf-march 8s ease-in-out infinite -6s; }
.scn-marching-free .light-spot {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,190,220,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: mf-light 6s ease-in-out infinite alternate;
}
@keyframes mf-floor { 0% { background-position: 0 0; } 100% { background-position: 60px 0; } }
@keyframes mf-sky { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.02); } 100% { opacity: 0.75; transform: scaleY(0.98); } }
@keyframes mf-march { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(15px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(30px) translateY(0) rotate(-2deg); } 75% { transform: translateX(45px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(60px) translateY(0) rotate(0deg); } }
@keyframes mf-light { 0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.4; } 50% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.7; } 100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.3; } }

.scn-crowd-of-victims {
  background: linear-gradient(180deg, #1f1e28 0%, #2c2a3a 40%, #1a1922 100%),
              radial-gradient(ellipse at 20% 70%, #2a2a3e 0%, transparent 70%);
}
.scn-crowd-of-victims .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #14131a 0%, #0a0910 100%);
  border-radius: 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-crowd-of-victims .sky {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2738 0%, #1d1b2a 100%);
  animation: cv-sky 15s ease-in-out infinite alternate;
}
.scn-crowd-of-victims .crowd {
  position: absolute; bottom: 20%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1822 0%, #0e0c14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-crowd-of-victims .crowd-1 { left: 15%; animation: cv-crowd1 6s ease-in-out infinite; }
.scn-crowd-of-victims .crowd-2 { left: 40%; animation: cv-crowd2 7s ease-in-out infinite 1s; }
.scn-crowd-of-victims .crowd-3 { left: 65%; animation: cv-crowd3 8s ease-in-out infinite 2s; }
.scn-crowd-of-victims .prayer-glow {
  position: absolute; top: 35%; left: 50%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,180,220,0.5) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(15px);
  animation: cv-glow 4s ease-in-out infinite alternate;
}
.scn-crowd-of-victims .prayer-light {
  position: absolute; top: 38%; left: 50%; width: 6px; height: 6px;
  background: #c8b4d6;
  border-radius: 50%;
  box-shadow: 0 0 30px rgba(200,180,220,0.6), 0 0 60px rgba(200,180,220,0.3);
  animation: cv-light 4s ease-in-out infinite alternate;
}
@keyframes cv-sky { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes cv-crowd1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cv-crowd2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes cv-crowd3 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cv-glow { 0% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.5; } 50% { transform: translate(-50%, -50%) scale(1.3); opacity: 0.8; } 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.6; } }
@keyframes cv-light { 0% { opacity: 0.6; box-shadow: 0 0 20px rgba(200,180,220,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px rgba(200,180,220,0.8); } 100% { opacity: 0.7; box-shadow: 0 0 25px rgba(200,180,220,0.5); } }

/* vision-charcoal-brasier */
.scn-vision-charcoal-brasier {
  background: linear-gradient(180deg, #1a1124 0%, #2a1a2a 40%, #0d0812 100%);
}
.scn-vision-charcoal-brasier .walls {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(90deg, rgba(10,6,12,0.9) 0%, rgba(30,18,24,0.7) 50%, rgba(10,6,12,0.9) 100%);
}
.scn-vision-charcoal-brasier .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
}
.scn-vision-charcoal-brasier .brasier {
  position:absolute; bottom:32%; left:50%; width:60px; height:50px; transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #c87030 0%, #a05020 40%, #5a2a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(200,112,48,0.3);
  animation: vcb-flicker 2s ease-in-out infinite alternate;
}
.scn-vision-charcoal-brasier .ember-glow {
  position:absolute; bottom:30%; left:50%; width:120px; height:120px; transform:translate(-50%,30%);
  background: radial-gradient(ellipse, rgba(200,112,48,0.15) 0%, transparent 70%);
  animation: vcb-glow 4s ease-in-out infinite alternate;
}
.scn-vision-charcoal-brasier .figure1,
.scn-vision-charcoal-brasier .figure2,
.scn-vision-charcoal-brasier .figure3 {
  position:absolute; bottom:0; width:20px; height:50px;
  background: linear-gradient(180deg, #1a0e0e 0%, #0d0505 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
}
.scn-vision-charcoal-brasier .figure1 { left:20%; animation: vcb-stir 6s ease-in-out infinite; }
.scn-vision-charcoal-brasier .figure2 { left:45%; animation: vcb-stir 7s ease-in-out infinite 1s; }
.scn-vision-charcoal-brasier .figure3 { right:20%; animation: vcb-stir 8s ease-in-out infinite 2s; }
.scn-vision-charcoal-brasier .fumes {
  position:absolute; top:15%; left:30%; width:100px; height:60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(80,50,30,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: vcb-fume 20s linear infinite;
}
@keyframes vcb-flicker { 0% { box-shadow: 0 0 30px 15px rgba(200,112,48,0.2); transform:translateX(-50%) scale(1); } 50% { box-shadow: 0 0 50px 25px rgba(255,140,60,0.4); transform:translateX(-50%) scale(1.02); } 100% { box-shadow: 0 0 35px 18px rgba(200,112,48,0.25); transform:translateX(-50%) scale(0.98); } }
@keyframes vcb-glow { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes vcb-stir { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes vcb-fume { 0% { transform: translate(0,0) scale(0.8); opacity:0.2; } 50% { transform: translate(20px,-30px) scale(1.2); opacity:0.5; } 100% { transform: translate(40px,-60px) scale(0.6); opacity:0.1; } }

/* night-bridge-suicides */
.scn-night-bridge-suicides {
  background: linear-gradient(180deg, #1a1e30 0%, #2a3048 40%, #101520 100%), radial-gradient(ellipse at 50% 0%, #3a4a6a 0%, transparent 60%);
}
.scn-night-bridge-suicides .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #1a1e30 0%, #2a3850 60%, transparent 100%);
  animation: nbs-sky 12s ease-in-out infinite alternate;
}
.scn-night-bridge-suicides .moon {
  position:absolute; top:8%; left:70%; width:30px; height:30px;
  background: radial-gradient(circle, #d0d8e8 0%, #a0a8c0 60%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px rgba(160,168,192,0.3), 0 0 80px 40px rgba(160,168,192,0.1);
  animation: nbs-moon 8s ease-in-out infinite alternate;
}
.scn-night-bridge-suicides .bridge-arch {
  position:absolute; bottom:30%; left:10%; right:10%; height:40%;
  background: linear-gradient(180deg, #3a4050 0%, #2a3038 100%);
  border-radius: 50% 50% 10% 10% / 100% 100% 20% 20%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5);
  animation: nbs-bridge 20s ease-in-out infinite;
}
.scn-night-bridge-suicides .bridge-rail {
  position:absolute; bottom:43%; left:12%; right:12%; height:4px;
  background: linear-gradient(90deg, transparent 0%, #505868 20%, #505868 80%, transparent 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-night-bridge-suicides .water {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a2230 0%, #0a1020 100%);
  animation: nbs-water 15s linear infinite;
}
.scn-night-bridge-suicides .water-reflection {
  position:absolute; bottom:0; left:65%; width:40px; height:80px;
  background: linear-gradient(180deg, rgba(160,168,192,0.2) 0%, transparent 100%);
  border-radius:50%;
  filter: blur(4px);
  animation: nbs-reflect 8s ease-in-out infinite alternate;
}
.scn-night-bridge-suicides .figure1,
.scn-night-bridge-suicides .figure2 {
  position:absolute; bottom:50%; width:16px; height:40px;
  background: linear-gradient(180deg, #181c28 0%, #0c1018 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
}
.scn-night-bridge-suicides .figure1 { left:30%; animation: nbs-figure-walk 6s ease-in-out infinite; }
.scn-night-bridge-suicides .figure2 { right:35%; animation: nbs-figure-walk 7s ease-in-out infinite 3s; }
.scn-night-bridge-suicides .cloud {
  position:absolute; top:15%; left:0; width:120px; height:20px;
  background: linear-gradient(180deg, rgba(160,168,192,0.2) 0%, rgba(100,110,130,0.05) 100%);
  border-radius:50%;
  filter: blur(6px);
  animation: nbs-cloud 40s linear infinite;
}
@keyframes nbs-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes nbs-moon { 0% { box-shadow: 0 0 30px 15px rgba(160,168,192,0.2); } 50% { box-shadow: 0 0 60px 30px rgba(180,190,210,0.4); } 100% { box-shadow: 0 0 30px 15px rgba(160,168,192,0.2); } }
@keyframes nbs-bridge { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes nbs-water { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }
@keyframes nbs-reflect { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.7; transform: scaleY(1.1); } 100% { opacity:0.4; transform: scaleY(0.9); } }
@keyframes nbs-figure-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 nbs-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }

/* splash-in-river */
.scn-splash-in-river {
  background: linear-gradient(180deg, #101828 0%, #1a2238 40%, #0a1020 100%);
}
.scn-splash-in-river .water {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #1a2840 0%, #0a1420 100%);
  animation: sir-water 20s linear infinite;
}
.scn-splash-in-river .moon-reflection {
  position:absolute; bottom:40%; left:50%; width:20px; height:60px; transform:translateX(-50%);
  background: linear-gradient(180deg, rgba(160,180,210,0.4) 0%, transparent 100%);
  border-radius:50%;
  filter: blur(4px);
  animation: sir-moonref 6s ease-in-out infinite alternate;
}
.scn-splash-in-river .splash {
  position:absolute; bottom:40%; left:50%; width:40px; height:40px; transform:translate(-50%,50%);
  background: radial-gradient(circle, rgba(200,215,235,0.6) 0%, transparent 70%);
  border-radius:50%;
  animation: sir-splash 3s ease-out infinite;
}
.scn-splash-in-river .ripple1,
.scn-splash-in-river .ripple2,
.scn-splash-in-river .ripple3 {
  position:absolute; bottom:40%; left:50%; border-radius:50%;
  border: 2px solid rgba(160,180,210,0.3);
  transform:translate(-50%,50%);
  animation: sir-ripple 4s ease-out infinite;
}
.scn-splash-in-river .ripple1 { width:60px; height:60px; animation-delay:0s; }
.scn-splash-in-river .ripple2 { width:100px; height:100px; animation-delay:1s; }
.scn-splash-in-river .ripple3 { width:140px; height:140px; animation-delay:2s; }
.scn-splash-in-river .body {
  position:absolute; bottom:45%; left:48%; width:14px; height:40px;
  background: linear-gradient(180deg, #181c2a 0%, #0c0e18 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(15deg);
  animation: sir-body-fall 5s ease-in-out infinite;
}
.scn-splash-in-river .clock-tower {
  position:absolute; top:5%; right:15%; width:20px; height:60px;
  background: linear-gradient(180deg, #2a3040 0%, #1a2028 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
@keyframes sir-water { 0% { background-position: 0 0; } 100% { background-position: 0 30px; } }
@keyframes sir-moonref { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes sir-splash { 0% { opacity:0; transform:translate(-50%,50%) scale(0.5); } 30% { opacity:1; transform:translate(-50%,40%) scale(1.2); } 100% { opacity:0; transform:translate(-50%,30%) scale(0); } }
@keyframes sir-ripple { 0% { opacity:0; transform:translate(-50%,50%) scale(0.8); } 50% { opacity:0.5; transform:translate(-50%,50%) scale(1.5); } 100% { opacity:0; transform:translate(-50%,50%) scale(2); } }
@keyframes sir-body-fall { 0% { transform: rotate(15deg) translateY(0); opacity:1; } 50% { transform: rotate(-5deg) translateY(20px); opacity:0.6; } 100% { transform: rotate(10deg) translateY(40px); opacity:0; } }

/* empathizing-with-desperate */
.scn-empathizing-with-desperate {
  background: linear-gradient(180deg, #1a1220 0%, #2a1a30 40%, #0e0812 100%);
}
.scn-empathizing-with-desperate .walls {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, rgba(10,6,14,0.9) 0%, rgba(30,18,28,0.7) 50%, rgba(10,6,14,0.9) 100%);
}
.scn-empathizing-with-desperate .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a121a 0%, #0e0810 100%);
}
.scn-empathizing-with-desperate .central-figure {
  position:absolute; bottom:20%; left:50%; width:24px; height:60px; transform:translateX(-50%);
  background: linear-gradient(180deg, #2a2040 0%, #1a1028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ewd-centre 6s ease-in-out infinite;
}
.scn-empathizing-with-desperate .figure-a,
.scn-empathizing-with-desperate .figure-b,
.scn-empathizing-with-desperate .figure-c {
  position:absolute; bottom:0; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1220 0%, #0c0810 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
}
.scn-empathizing-with-desperate .figure-a { left:20%; animation: ewd-fig-huddle 7s ease-in-out infinite; }
.scn-empathizing-with-desperate .figure-b { left:45%; animation: ewd-fig-huddle 8s ease-in-out infinite 2s; }
.scn-empathizing-with-desperate .figure-c { right:20%; animation: ewd-fig-huddle 9s ease-in-out infinite 4s; }
.scn-empathizing-with-desperate .light-beam {
  position:absolute; top:5%; left:50%; width:4px; height:60%; transform:translateX(-50%);
  background: linear-gradient(180deg, rgba(180,140,200,0.2) 0%, transparent 100%);
  filter: blur(2px);
  animation: ewd-beam 8s ease-in-out infinite alternate;
}
.scn-empathizing-with-desperate .shadow {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 50%, transparent 0%, rgba(0,0,0,0.4) 80%);
  pointer-events:none;
}
@keyframes ewd-centre { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 25% { transform: translateX(-50%) scaleY(1.05) rotate(2deg); } 50% { transform: translateX(-50%) scaleY(0.95) rotate(-3deg); } 75% { transform: translateX(-50%) scaleY(1.02) rotate(1deg); } 100% { transform: translateX(-50%) scaleY(1) rotate(0deg); } }
@keyframes ewd-fig-huddle { 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 ewd-beam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

.scn-asylum-visit {
  background:
    linear-gradient(135deg, #f4edd8 0%, #e6dcc0 40%, #d6c89a 70%, #b8a67a 100%),
    radial-gradient(ellipse at 30% 60%, rgba(255,240,200,0.6) 0%, transparent 60%);
  animation: av-bg 8s ease-in-out infinite alternate;
}
.scn-asylum-visit .wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #e6dcc0 0%, #d6c89a 50%, #c4b28a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.08);
}
.scn-asylum-visit .window {
  position:absolute; top:10%; left:65%; width:90px; height:130px; background: radial-gradient(ellipse at 50% 60%, #fffef0 0%, #e6dfc0 80%);
  border: 8px solid #b8a67a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,230,150,0.4);
  animation: av-window 12s ease-in-out infinite alternate;
}
.scn-asylum-visit .armchair {
  position:absolute; bottom:20%; left:35%; width:140px; height:120px;
  background: linear-gradient(135deg, #7a6050 0%, #5a4030 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 5px 5px 20px rgba(0,0,0,0.2);
}
.scn-asylum-visit .woman-body {
  position:absolute; bottom:30%; left:40%; width:80px; height:90px;
  background: linear-gradient(180deg, #8c7860 0%, #5e4e3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: av-body 6s ease-in-out infinite;
}
.scn-asylum-visit .woman-head {
  position:absolute; bottom:72%; left:43%; width:40px; height:44px;
  background: radial-gradient(circle at 50% 60%, #c4a888 0%, #a08060 80%);
  border-radius: 50%; animation: av-head 6s ease-in-out infinite;
}
.scn-asylum-visit .mirror {
  position:absolute; bottom:40%; left:60%; width:50px; height:60px;
  background: #b8a67a; border-radius: 4px; border: 4px solid #8c7850;
  box-shadow: 0 0 0 2px #a09070, 2px 2px 10px rgba(0,0,0,0.15);
}
.scn-asylum-visit .mirror-reflection {
  position:absolute; bottom:42%; left:61.5%; width:44px; height:52px;
  background: radial-gradient(ellipse at 40% 50%, #d6d0c0 0%, #c4b89a 60%, #b0a080 100%);
  border-radius: 2px; opacity:0.9; animation: av-mirror-glow 4s ease-in-out infinite alternate;
}
.scn-asylum-visit .sunbeam {
  position:absolute; top:8%; left:55%; width:120px; height:200px;
  background: linear-gradient(135deg, rgba(255,245,180,0.4) 0%, rgba(255,240,200,0.05) 100%);
  filter: blur(8px); transform: rotate(-15deg); animation: av-sunbeam 10s ease-in-out infinite alternate;
}
.scn-asylum-visit .shadow {
  position:absolute; bottom:20%; left:30%; width:160px; height:60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.15) 0%, transparent 80%);
  animation: av-shadow 6s ease-in-out infinite;
}
@keyframes av-bg { 0% { opacity:0.85 } 50% { transform: scale(1.02) } 100% { opacity:0.9 } }
@keyframes av-window { 0% { box-shadow: inset 0 0 20px rgba(255,230,150,0.3) } 50% { box-shadow: inset 0 0 40px rgba(255,240,180,0.6) } 100% { box-shadow: inset 0 0 20px rgba(255,230,150,0.3) } }
@keyframes av-body { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes av-head { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(2deg) } }
@keyframes av-mirror-glow { 0% { opacity:0.7; box-shadow: inset 0 0 6px rgba(200,180,130,0.2) } 50% { opacity:0.9; box-shadow: inset 0 0 12px rgba(220,200,160,0.4) } 100% { opacity:0.75; box-shadow: inset 0 0 6px rgba(200,180,130,0.2) } }
@keyframes av-sunbeam { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-12deg) scale(1.05) } 100% { transform: rotate(-15deg) scale(1) } }
@keyframes av-shadow { 0%,100% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(0.95) } }

.scn-item-hand-mirror {
  background:
    linear-gradient(180deg, #f5efe0 0%, #e8dcc8 50%, #d4c6a8 100%),
    radial-gradient(ellipse at 60% 80%, #fff8e8 0%, transparent 70%);
}
.scn-item-hand-mirror .bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #e8dcc8 0%, #dccbaa 100%);
  box-shadow: inset 0 0 120px rgba(0,0,0,0.05);
}
.scn-item-hand-mirror .woman-arm {
  position:absolute; bottom:30%; left:30%; width:100px; height:30px;
  background: linear-gradient(180deg, #b09880 0%, #8a7058 100%);
  border-radius: 60% 20% 20% 60% / 50% 30% 30% 50%;
  transform-origin: right center; animation: hm-arm 3s ease-in-out infinite;
}
.scn-item-hand-mirror .woman-hand {
  position:absolute; bottom:28%; left:55%; width:28px; height:32px;
  background: radial-gradient(circle at 50% 40%, #d4b898 0%, #a08068 80%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: hm-hand 3s ease-in-out infinite;
}
.scn-item-hand-mirror .mirror-frame {
  position:absolute; bottom:40%; left:58%; width:60px; height:70px;
  background: linear-gradient(135deg, #b8a078 0%, #8c7250 100%);
  border-radius: 6px; box-shadow: 2px 2px 12px rgba(0,0,0,0.15);
  animation: hm-frame 3s ease-in-out infinite;
}
.scn-item-hand-mirror .mirror-glass {
  position:absolute; bottom:42%; left:60%; width:52px; height:62px;
  background: radial-gradient(ellipse at 40% 45%, #e8e0d0 0%, #d0c4ab 80%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.05);
}
.scn-item-hand-mirror .face-reflection {
  position:absolute; bottom:44%; left:62%; width:40px; height:50px;
  background: radial-gradient(ellipse at 50% 40%, #b89880 0%, #a08060 70%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  filter: blur(1px); opacity:0.6; animation: hm-reflection 3s ease-in-out infinite alternate;
}
.scn-item-hand-mirror .table-edge {
  position:absolute; bottom:20%; left:20%; right:20%; height:12px;
  background: linear-gradient(180deg, #c4b090 0%, #a88c70 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.scn-item-hand-mirror .curtain {
  position:absolute; top:0; right:0; width:80px; height:100%;
  background: linear-gradient(180deg, #b8a890 0%, #a09078 100%);
  border-left: 2px solid #8a7a62; box-shadow: inset -8px 0 20px rgba(0,0,0,0.1);
  animation: hm-curtain 8s ease-in-out infinite alternate;
}
@keyframes hm-arm { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } }
@keyframes hm-hand { 0%,100% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(-2deg) translateY(0) } 75% { transform: rotate(1deg) translateY(1px) } }
@keyframes hm-frame { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } }
@keyframes hm-reflection { 0% { opacity:0.5; filter: blur(1px) } 33% { opacity:0.7; filter: blur(0.5px) } 66% { opacity:0.55; filter: blur(1px) } 100% { opacity:0.6; filter: blur(1px) } }
@keyframes hm-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }

.scn-doctor-reassurance {
  background:
    linear-gradient(180deg, #f2ead8 0%, #e4d8c0 40%, #d0c0a0 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 70%);
}
.scn-doctor-reassurance .wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #e8dec8 0%, #d4c4a8 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.06);
}
.scn-doctor-reassurance .chair {
  position:absolute; bottom:15%; left:30%; width:140px; height:110px;
  background: linear-gradient(135deg, #7a6850 0%, #5a4830 100%);
  border-radius: 30% 30% 15% 15% / 40% 40% 20% 20%;
  box-shadow: 4px 4px 20px rgba(0,0,0,0.15);
}
.scn-doctor-reassurance .woman-silhouette {
  position:absolute; bottom:28%; left:35%; width:70px; height:80px;
  background: linear-gradient(180deg, #8a7860 0%, #5e4e3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dr-woman 4s ease-in-out infinite;
}
.scn-doctor-reassurance .woman-hand-kerchief {
  position:absolute; bottom:38%; left:42%; width:22px; height:18px;
  background: radial-gradient(circle, #c8b898 0%, #a09078 80%);
  border-radius: 30% 50% 50% 30% / 40% 40% 60% 60%;
  animation: dr-kerchief 2s ease-in-out infinite;
}
.scn-doctor-reassurance .doctor-body {
  position:absolute; bottom:25%; left:55%; width:80px; height:90px;
  background: linear-gradient(180deg, #6a6050 0%, #4a4028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg); animation: dr-doctor 4s ease-in-out infinite;
}
.scn-doctor-reassurance .doctor-hand {
  position:absolute; bottom:45%; left:52%; width:40px; height:20px;
  background: linear-gradient(180deg, #a09078 0%, #7a6850 100%);
  border-radius: 30% 30% 30% 50% / 40% 40% 30% 30%;
  transform-origin: left center; animation: dr-hand 3s ease-in-out infinite;
}
.scn-doctor-reassurance .table {
  position:absolute; bottom:10%; left:20%; right:20%; height:8px;
  background: linear-gradient(180deg, #b8a888 0%, #9a8870 100%);
  border-radius: 4px; box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.scn-doctor-reassurance .lamp {
  position:absolute; top:12%; left:68%; width:30px; height:50px;
  background: radial-gradient(ellipse at 50% 30%, #fffae0 0%, #e8dcc0 80%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 40px 8px rgba(255,240,180,0.3);
  animation: dr-lamp 6s ease-in-out infinite alternate;
}
.scn-doctor-reassurance .shadow {
  position:absolute; bottom:15%; left:30%; width:180px; height:50px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.12) 0%, transparent 80%);
  animation: dr-shadow 4s ease-in-out infinite;
}
@keyframes dr-woman { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes dr-kerchief { 0%,100% { transform: scale(1) translateY(0) } 33% { transform: scale(1.05) translateY(-1px) } 66% { transform: scale(0.95) translateY(1px) } }
@keyframes dr-doctor { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(7deg) } }
@keyframes dr-hand { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(3deg) } }
@keyframes dr-lamp { 0% { box-shadow: 0 0 30px 6px rgba(255,240,180,0.2) } 50% { box-shadow: 0 0 50px 12px rgba(255,240,180,0.4) } 100% { box-shadow: 0 0 30px 6px rgba(255,240,180,0.2) } }
@keyframes dr-shadow { 0%,100% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(0.9) } }

.scn-veil-removal {
  background:
    linear-gradient(180deg, #efe6d0 0%, #dccba8 60%, #c0ac88 100%),
    radial-gradient(ellipse at 40% 30%, #fff8e0 0%, transparent 70%);
}
.scn-veil-removal .bg {
  position:absolute; inset:0; background: linear-gradient(135deg, #e8dbc0 0%, #d4c4a8 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.08);
}
.scn-veil-removal .woman-shoulder {
  position:absolute; bottom:20%; left:35%; width:120px; height:80px;
  background: linear-gradient(180deg, #a08870 0%, #6a5840 100%);
  border-radius: 60% 60% 20% 20% / 70% 70% 30% 30%;
}
.scn-veil-removal .veil {
  position:absolute; top:18%; left:32%; width:140px; height:160px;
  background: linear-gradient(180deg, rgba(220,210,190,0.8) 0%, rgba(200,190,170,0.4) 80%);
  border-radius: 60% 40% 30% 50% / 40% 50% 60% 50%;
  filter: blur(2px); animation: vr-veil 8s ease-in-out infinite alternate;
}
.scn-veil-removal .hand-lifting {
  position:absolute; top:35%; left:48%; width:30px; height:40px;
  background: linear-gradient(180deg, #b8a088 0%, #8a6c52 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center; animation: vr-hand 5s ease-in-out infinite;
}
.scn-veil-removal .face-profile {
  position:absolute; bottom:50%; left:42%; width:50px; height:60px;
  background: radial-gradient(ellipse at 60% 40%, #b89880 0%, #8a7058 100%);
  border-radius: 50% 20% 20% 50% / 60% 30% 30% 60%;
  animation: vr-face 5s ease-in-out infinite;
}
.scn-veil-removal .shadow-fall {
  position:absolute; bottom:10%; left:30%; right:20%; height:80px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.1) 0%, transparent 70%);
  animation: vr-shadow 4s ease-in-out infinite;
}
.scn-veil-removal .doorway {
  position:absolute; top:0; left:10%; width:200px; height:100%;
  background: linear-gradient(180deg, #d8c8aa 0%, #c4b090 100%);
  border-right: 3px solid #b09878; box-shadow: inset -8px 0 20px rgba(0,0,0,0.05);
}
.scn-veil-removal .light-stripe {
  position:absolute; top:0; left:25%; width:40px; height:100%;
  background: linear-gradient(180deg, rgba(255,245,200,0.4) 0%, rgba(255,240,180,0.1) 100%);
  filter: blur(4px); animation: vr-stripe 6s ease-in-out infinite alternate;
}
@keyframes vr-veil { 0% { transform: scaleY(1) translateY(0); opacity:0.7 } 50% { transform: scaleY(1.05) translateY(-4px); opacity:0.85 } 100% { transform: scaleY(0.98) translateY(0); opacity:0.7 } }
@keyframes vr-hand { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(5deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(2deg) } }
@keyframes vr-face { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes vr-shadow { 0%,100% { opacity:0.3 } 50% { opacity:0.5 } }
@keyframes vr-stripe { 0% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.6; transform: translateX(8px) } 100% { opacity:0.3; transform: translateX(0) } }

/* scene: unexpected-fall */
.scn-unexpected-fall {
  background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3e 40%, #2a2a4e 100%), radial-gradient(ellipse at 50% 120%, #2a2a4e 0%, transparent 70%);
}
.scn-unexpected-fall .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 100%); }
.scn-unexpected-fall .shaft { position:absolute; top:0; bottom:0; left:30%; right:30%; background: linear-gradient(180deg, transparent 0%, #1f1f3a 30%, #0a0a1a 70%, transparent 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.7); animation: uf-shaft 3s ease-in-out infinite alternate; }
.scn-unexpected-fall .figure { position:absolute; top:20%; left:50%; width:24px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a4a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: uf-fall 2s ease-in-out infinite; }
.scn-unexpected-fall .lantern { position:absolute; top:25%; left:48%; width:8px; height:8px; background: radial-gradient(circle, #fff5cc 0%, #ccb060 70%); border-radius:50%; box-shadow: 0 0 16px 6px #ccb060, 0 0 32px 12px rgba(204,176,96,.4); animation: uf-lantern 1.5s ease-in-out infinite alternate; }
.scn-unexpected-fall .hat { position:absolute; top:16%; left:45%; width:20px; height:12px; background: #3a2a1a; border-radius: 40% 40% 0 0; transform-origin: bottom center; animation: uf-hat 2.5s ease-in-out infinite; }
.scn-unexpected-fall .debris-a { position:absolute; top:40%; left:20%; width:12px; height:12px; background: #4a3a2a; border-radius: 20%; animation: uf-debris 4s ease-in-out infinite; }
.scn-unexpected-fall .debris-b { position:absolute; top:60%; right:25%; width:10px; height:10px; background: #3a4a3a; border-radius: 30%; animation: uf-debris 4.5s ease-in-out infinite reverse; }
@keyframes uf-shaft { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(5px) scaleY(0.98); } 100% { transform:translateY(0) scaleY(1); } }
@keyframes uf-fall { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 25% { transform:translateX(-50%) translateY(30px) rotate(15deg); } 50% { transform:translateX(-50%) translateY(60px) rotate(-10deg); } 75% { transform:translateX(-50%) translateY(30px) rotate(20deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes uf-lantern { 0% { transform:translate(0,0) rotate(-2deg); } 50% { transform:translate(3px,-2px) rotate(2deg); box-shadow:0 0 24px 8px #ccb060,0 0 40px 16px rgba(204,176,96,.3); } 100% { transform:translate(0,0) rotate(-2deg); } }
@keyframes uf-hat { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(-5px) rotate(-20deg); } 60% { transform:translateX(8px) rotate(15deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes uf-debris { 0% { transform:translateY(0) rotate(0deg) scale(1); } 50% { transform:translateY(40px) rotate(180deg) scale(0.8); } 100% { transform:translateY(0) rotate(360deg) scale(1); } }

/* scene: meeting-milial */
.scn-meeting-milial {
  background: linear-gradient(180deg, #87afcf 0%, #c8d8e8 60%, #a0b080 100%), radial-gradient(ellipse at 50% 100%, #a0b080 0%, transparent 60%);
}
.scn-meeting-milial .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d0e8 0%, #e0f0f8 70%, transparent 100%); animation: mm-sky 12s ease-in-out infinite alternate; }
.scn-meeting-milial .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a9a6a 0%, #5a7a4a 100%); border-radius: 40% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-meeting-milial .tree-left { position:absolute; bottom:30%; left:10%; width:30px; height:80px; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%; transform-origin: bottom center; animation: mm-tree 8s ease-in-out infinite alternate; }
.scn-meeting-milial .tree-right { position:absolute; bottom:30%; right:10%; width:25px; height:70px; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 20% 20% / 30% 30% 20% 20%; transform-origin: bottom center; animation: mm-tree 9s ease-in-out infinite alternate; }
.scn-meeting-milial .figure-milial { position:absolute; bottom:25%; left:45%; width:20px; height:45px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm-figure 4s ease-in-out infinite; }
.scn-meeting-milial .figure-speaker { position:absolute; bottom:25%; right:40%; width:18px; height:42px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm-figure 4.5s ease-in-out infinite; }
.scn-meeting-milial .path { position:absolute; bottom:15%; left:30%; right:30%; height:8px; background: #c8b080; border-radius: 10px; box-shadow: 0 2px 4px rgba(0,0,0,.1); }
@keyframes mm-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes mm-tree { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-2deg) scaleY(1); } }
@keyframes mm-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* scene: milial-charm */
.scn-milial-charm {
  background: linear-gradient(180deg, #e8d8b0 0%, #f0e6c0 50%, #d0b888 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-milial-charm .bg-sun { position:absolute; inset:0; background: linear-gradient(180deg, #f5eed8 0%, #e8d8b0 100%); }
.scn-milial-charm .figure-milial { position:absolute; bottom:20%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-figure 5s ease-in-out infinite; }
.scn-milial-charm .hand { position:absolute; bottom:35%; left:44%; width:14px; height:20px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom left; animation: mc-hand 4s ease-in-out infinite; }
.scn-milial-charm .flower { position:absolute; bottom:40%; left:48%; width:12px; height:14px; background: radial-gradient(circle, #e8c898 0%, #c8a070 70%); border-radius: 50%; transform-origin: bottom center; animation: mc-flower 6s ease-in-out infinite; }
.scn-milial-charm .shadow { position:absolute; bottom:15%; left:35%; right:35%; height:10px; background: rgba(0,0,0,.15); border-radius: 50%; filter: blur(4px); animation: mc-shadow 5s ease-in-out infinite alternate; }
.scn-milial-charm .light-ray { position:absolute; top:10%; left:20%; width:30px; height:200px; background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, transparent 100%); transform: rotate(25deg); transform-origin: top left; filter: blur(6px); animation: mc-ray 10s ease-in-out infinite; }
.scn-milial-charm .petal { position:absolute; top:30%; left:50%; width:5px; height:8px; background: #d4b080; border-radius: 50% 50% 0 0; animation: mc-petal 7s linear infinite; }
@keyframes mc-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mc-hand { 0% { transform: rotate(0deg) translate(0,0); } 50% { transform: rotate(10deg) translate(-2px,-3px); } 100% { transform: rotate(0deg) translate(0,0); } }
@keyframes mc-flower { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.1) rotate(5deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes mc-shadow { 0% { transform: scaleX(1); opacity:0.7; } 50% { transform: scaleX(1.1); opacity:1; } 100% { transform: scaleX(1); opacity:0.7; } }
@keyframes mc-ray { 0% { opacity:0.3; transform: rotate(25deg) scaleX(1); } 50% { opacity:0.6; transform: rotate(30deg) scaleX(1.1); } 100% { opacity:0.3; transform: rotate(25deg) scaleX(1); } }
@keyframes mc-petal { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(40px) rotate(180deg) scale(0.7); } 100% { transform: translateY(80px) rotate(360deg) scale(0.4); } }

/* scene: intimacy-feeling */
.scn-intimacy-feeling {
  background: linear-gradient(180deg, #f0cd8a 0%, #e0b870 50%, #c89850 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 60%);
}
.scn-intimacy-feeling .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #ffd090 0%, #e8b860 100%); animation: in-bg 8s ease-in-out infinite alternate; }
.scn-intimacy-feeling .figure-left { position:absolute; bottom:25%; left:30%; width:22px; height:48px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: in-figure 6s ease-in-out infinite; }
.scn-intimacy-feeling .figure-right { position:absolute; bottom:25%; right:30%; width:20px; height:46px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: in-figure 6.5s ease-in-out infinite; }
.scn-intimacy-feeling .table { position:absolute; bottom:22%; left:42%; right:42%; height:8px; background: #8a5a2a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-intimacy-feeling .tea-cup { position:absolute; bottom:24%; left:48%; width:12px; height:16px; background: #d8c098; border-radius: 0 0 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.15); animation: in-steam 4s ease-in-out infinite; }
.scn-intimacy-feeling .window { position:absolute; top:10%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #fff8e0 0%, #ffe0a0 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 30px rgba(255,200,100,.3); }
.scn-intimacy-feeling .sunbeam { position:absolute; top:0; left:30%; width:10px; height:80%; background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, transparent 100%); transform: rotate(15deg); transform-origin: top; filter: blur(4px); animation: in-beam 12s ease-in-out infinite alternate; }
@keyframes in-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes in-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes in-steam { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-8px) scale(0.8); opacity:0.2; } 100% { transform: translateY(0) scale(1); opacity:0.6; } }
@keyframes in-beam { 0% { transform: rotate(15deg) scaleY(1); opacity:0.4; } 50% { transform: rotate(18deg) scaleY(1.05); opacity:0.7; } 100% { transform: rotate(15deg) scaleY(1); opacity:0.4; } }

/* narrator-reflection-watch */
.scn-narrator-reflection-watch {
  background:
    linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 50%, #2a2a3e 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a4e 0%, transparent 70%);
}
.scn-narrator-reflection-watch .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a14 0%, #0f0f1a 100%); animation: nr1-pulse 8s ease-in-out infinite alternate; }
.scn-narrator-reflection-watch .bg-mid { position:absolute; inset:15% 10% 15% 10%; background: linear-gradient(135deg, #1a1a2e, #2a2a3e 40%, #1e1e30 100%); border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%; opacity:0.6; animation: nr1-drift 12s ease-in-out infinite; }
.scn-narrator-reflection-watch .hand { position:absolute; bottom:10%; left:30%; width:60px; height:80px; background: linear-gradient(180deg, #2e2e3e 0%, #1a1a28 100%); border-radius: 30% 30% 40% 40% / 20% 20% 60% 60%; transform-origin: top center; animation: nr1-hand 6s ease-in-out infinite; }
.scn-narrator-reflection-watch .watch { position:absolute; bottom:18%; left:42%; width:40px; height:40px; background: radial-gradient(circle, #c0a060 0%, #806040 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 0 10px #a08050; animation: nr1-watch 4s ease-in-out infinite; }
.scn-narrator-reflection-watch .watch-face { position:absolute; bottom:22%; left:44%; width:24px; height:24px; background: radial-gradient(circle, #e0d0a0 0%, #c0b080 60%, #a09070 100%); border-radius: 50%; box-shadow: inset 0 0 6px #402010; animation: nr1-face-glow 3s ease-in-out infinite alternate; }
.scn-narrator-reflection-watch .glow { position:absolute; bottom:18%; left:42%; width:50px; height:50px; background: radial-gradient(circle, rgba(200,180,120,0.3) 0%, transparent 70%); border-radius: 50%; animation: nr1-glow 4s ease-in-out infinite alternate; }
.scn-narrator-reflection-watch .fog-1 { position:absolute; top:20%; left:0; width:100px; height:30px; background: linear-gradient(90deg, transparent, rgba(200,200,220,0.08), transparent); filter: blur(8px); animation: nr1-fog 20s linear infinite; }
.scn-narrator-reflection-watch .fog-2 { position:absolute; top:60%; left:30%; width:80px; height:20px; background: linear-gradient(90deg, transparent, rgba(200,200,220,0.05), transparent); filter: blur(6px); animation: nr1-fog 25s linear infinite reverse; }
@keyframes nr1-pulse { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes nr1-drift { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(5px,-3px) scale(1.02) } 100% { transform: translate(-5px,2px) scale(0.98) } }
@keyframes nr1-hand { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes nr1-watch { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes nr1-face-glow { 0% { opacity:0.7; box-shadow: inset 0 0 6px #402010; } 50% { opacity:1; box-shadow: inset 0 0 12px #603020; } 100% { opacity:0.8; box-shadow: inset 0 0 8px #503020; } }
@keyframes nr1-glow { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(0.9); } }
@keyframes nr1-fog { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }

/* sunset-sadness */
.scn-sunset-sadness {
  background:
    linear-gradient(180deg, #4a2a1a 0%, #6a3a1a 30%, #8a5a2a 60%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 0%, #b07030 0%, transparent 60%);
}
.scn-sunset-sadness .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 40%, #8a4a2a 70%, #b07030 100%); animation: ss2-sky 15s ease-in-out infinite alternate; }
.scn-sunset-sadness .sun { position:absolute; top:10%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #d09050 0%, #b07030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(200,140,80,0.4); animation: ss2-sun 10s ease-in-out infinite; }
.scn-sunset-sadness .hills-bg { 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% 60% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.5); animation: ss2-hills 20s ease-in-out infinite; }
.scn-sunset-sadness .hills-fg { position:absolute; bottom:25%; left:-10%; right:0; height:18%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 80% 0 0 / 70% 90% 0 0; box-shadow: inset 0 6px 14px rgba(0,0,0,0.6); animation: ss2-hills-rev 25s ease-in-out infinite alternate; }
.scn-sunset-sadness .path { position:absolute; bottom:15%; left:20%; width:40%; height:8%; background: linear-gradient(90deg, #4a3020, #6a4030 50%, #4a3020); border-radius: 20% 20% 40% 40%; box-shadow: inset 0 2px 6px rgba(0,0,0,0.3); animation: ss2-path 6s ease-in-out infinite; }
.scn-sunset-sadness .ruins { position:absolute; bottom:20%; left:10%; width:80px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: 0 4px 8px rgba(0,0,0,0.5); clip-path: polygon(10% 0, 90% 0, 80% 100%, 20% 100%); animation: ss2-ruins 8s ease-in-out infinite; }
.scn-sunset-sadness .tree { position:absolute; bottom:20%; right:15%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 10% 10% 30% 30%; transform-origin: bottom center; animation: ss2-tree 5s ease-in-out infinite alternate; }
.scn-sunset-sadness .dust-1 { position:absolute; bottom:10%; left:0; width:50px; height:10px; background: rgba(120,100,80,0.1); filter: blur(4px); border-radius: 50%; animation: ss2-dust 12s linear infinite; }
.scn-sunset-sadness .dust-2 { position:absolute; bottom:8%; left:20%; width:40px; height:8px; background: rgba(120,100,80,0.08); filter: blur(3px); border-radius: 50%; animation: ss2-dust 15s linear infinite reverse; }
@keyframes ss2-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ss2-sun { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes ss2-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ss2-hills-rev { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(1px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ss2-path { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@keyframes ss2-ruins { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ss2-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ss2-dust { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(20px) scale(1.2); } 100% { transform: translateX(40px) scale(1); } }

/* haunting-vision */
.scn-haunting-vision {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #6a3a1a 60%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 0%, #8a4a2a 0%, transparent 60%);
}
.scn-haunting-vision .sky { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a0a 0%, #3a1a0a 40%, #5a2a1a 70%, #7a3a1a 100%); animation: hv3-sky 12s ease-in-out infinite alternate; }
.scn-haunting-vision .sunset-glow { position:absolute; top:0; left:30%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 0%, #b06030 0%, #8a4020 40%, transparent 70%); animation: hv3-glow 8s ease-in-out infinite; }
.scn-haunting-vision .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: hv3-sea 20s ease-in-out infinite; }
.scn-haunting-vision .mountain { position:absolute; bottom:35%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); clip-path: polygon(0% 100%, 10% 60%, 25% 40%, 40% 50%, 55% 20%, 70% 30%, 85% 50%, 100% 100%); animation: hv3-mountain 15s ease-in-out infinite; }
.scn-haunting-vision .black-water { position:absolute; bottom:10%; left:35%; width:30%; height:20%; background: #0a0a0a; border-radius: 50%; box-shadow: inset 0 4px 10px #000; animation: hv3-water 5s ease-in-out infinite alternate; }
.scn-haunting-vision .child-prone { position:absolute; bottom:18%; left:38%; width:20px; height:12px; background: #1a1a2a; border-radius: 50% 50% 0 0; transform-origin: bottom center; animation: hv3-prone 4s ease-in-out infinite; }
.scn-haunting-vision .child-submerged { position:absolute; bottom:12%; left:50%; width:18px; height:10px; background: #0a0a1a; border-radius: 50%; opacity:0.7; box-shadow: inset 0 2px 4px #000; animation: hv3-submerged 4s ease-in-out infinite alternate; }
.scn-haunting-vision .ripple { position:absolute; bottom:8%; left:45%; width:60px; height:10px; background: radial-gradient(ellipse, rgba(100,80,60,0.2) 0%, transparent 70%); border-radius: 50%; animation: hv3-ripple 3s ease-out infinite; }
@keyframes hv3-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hv3-glow { 0% { opacity:0.5; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(1.2); } 100% { opacity:0.6; transform: scaleY(1); } }
@keyframes hv3-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hv3-mountain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(1); } }
@keyframes hv3-water { 0% { transform: scale(1); opacity:0.8; } 100% { transform: scale(1.08); opacity:0.9; } }
@keyframes hv3-prone { 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 hv3-submerged { 0% { opacity:0.6; transform: translateY(0); } 100% { opacity:0.8; transform: translateY(2px); } }
@keyframes hv3-ripple { 0% { opacity:0.6; transform: scale(0.5); } 100% { opacity:0; transform: scale(2); } }

/* indian-prince-arrival */
.scn-indian-prince-arrival {
  background:
    linear-gradient(180deg, #a0a0b0 0%, #808090 30%, #606070 60%, #404050 100%),
    radial-gradient(ellipse at 50% 80%, #707080 0%, transparent 70%);
}
.scn-indian-prince-arrival .bg-sky { position:absolute; inset:0; background: linear-gradient(180deg, #9090a0 0%, #707080 50%, #505060 100%); animation: ip4-sky 20s ease-in-out infinite alternate; }
.scn-indian-prince-arrival .bg-mist { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(200,200,220,0.1) 0%, transparent 60%); animation: ip4-mist 30s ease-in-out infinite; }
.scn-indian-prince-arrival .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: ip4-ground 10s ease-in-out infinite; }
.scn-indian-prince-arrival .elephant { position:absolute; bottom:15%; left:35%; width:80px; height:60px; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: ip4-elephant 6s ease-in-out infinite; }
.scn-indian-prince-arrival .howdah { position:absolute; bottom:32%; left:38%; width:40px; height:20px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: ip4-howdah 6s ease-in-out infinite; }
.scn-indian-prince-arrival .prince { position:absolute; bottom:36%; left:42%; width:20px; height:24px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: ip4-prince 4s ease-in-out infinite; }
.scn-indian-prince-arrival .attendant-a { position:absolute; bottom:15%; left:20%; width:16px; height:28px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; animation: ip4-attendant 8s ease-in-out infinite; }
.scn-indian-prince-arrival .attendant-b { position:absolute; bottom:15%; left:55%; width:16px; height:28px; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; animation: ip4-attendant 8s ease-in-out infinite reverse; }
.scn-indian-prince-arrival .cloud-1 { position:absolute; top:10%; left:0; width:120px; height:20px; background: linear-gradient(90deg, transparent, rgba(220,220,230,0.15), transparent); filter: blur(8px); animation: ip4-cloud 40s linear infinite; }
.scn-indian-prince-arrival .cloud-2 { position:absolute; top:25%; right:0; width:90px; height:15px; background: linear-gradient(90deg, transparent, rgba(220,220,230,0.1), transparent); filter: blur(6px); animation: ip4-cloud 50s linear infinite reverse; }
@keyframes ip4-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ip4-mist { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(0.95); } }
@keyframes ip4-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ip4-elephant { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(-1px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ip4-howdah { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ip4-prince { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ip4-attendant { 0% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(0); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ip4-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

.scn-north-wind-storm { background: linear-gradient(180deg, #0d0d1a 0%, #12122e 30%, #1a1a3e 60%, #2a2a4e 100%), radial-gradient(ellipse at 40% 100%, #1a2a4e 0%, transparent 70%); }
.scn-north-wind-storm .storm-sky { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 50%, #0d0d1a 100%); animation: si2-sky 10s ease-in-out infinite alternate; }
.scn-north-wind-storm .storm-clouds { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, transparent 100%); filter: blur(8px); animation: si2-clouds 15s ease-in-out infinite alternate; }
.scn-north-wind-storm .storm-rain { position:absolute; inset:0; background: repeating-linear-gradient(45deg, rgba(150,180,220,.12) 0px, transparent 2px, transparent 6px, rgba(150,180,220,.08) 8px); animation: si2-rain 0.6s linear infinite; }
.scn-north-wind-storm .storm-wave { position:absolute; bottom:10%; left:-10%; right:-10%; height:30%; border-radius: 30% 70% 40% 60% / 60% 40% 60% 40%; }
.scn-north-wind-storm .wave-back { bottom:18%; background: linear-gradient(180deg, #1a2a4a 0%, #0d1a2e 100%); animation: si2-wave-back 6s ease-in-out infinite alternate; }
.scn-north-wind-storm .wave-mid { bottom:12%; background: linear-gradient(180deg, #2a3a5e 0%, #1a2a4a 100%); animation: si2-wave-mid 4s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-north-wind-storm .wave-fore { bottom:6%; background: linear-gradient(180deg, #c0c0d0 0%, #8a8aae 40%, #3a4a6e 100%); animation: si2-wave-fore 3s ease-in-out infinite alternate; transform-origin: center; }
.scn-north-wind-storm .storm-spray { position:absolute; bottom:14%; left:20%; right:30%; height:20%; background: radial-gradient(ellipse at 30% 100%, rgba(200,210,230,.2) 0%, transparent 70%); filter: blur(10px); animation: si2-spray 3s ease-in-out infinite alternate; }
.scn-north-wind-storm .storm-coast { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-north-wind-storm .storm-figure { position:absolute; bottom:8%; left:30%; width:16px; height:30px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si2-figure 4s ease-in-out infinite; box-shadow: 0 0 4px 1px rgba(255,255,255,.1); }
@keyframes si2-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes si2-clouds { 0% { transform: translateX(-20px) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.1) } 100% { transform: translateX(-10px) scaleX(.95) } }
@keyframes si2-rain { 0% { background-position: 0 0 } 100% { background-position: 20px 30px } }
@keyframes si2-wave-back { 0% { transform: translateX(-5px) translateY(0) rotate(-2deg) } 50% { transform: translateX(3px) translateY(-4px) rotate(1deg) } 100% { transform: translateX(-2px) translateY(0) rotate(0) } }
@keyframes si2-wave-mid { 0% { transform: translateX(0) translateY(0) scaleX(1) } 33% { transform: translateX(-6px) translateY(-6px) scaleX(1.05) } 66% { transform: translateX(4px) translateY(-3px) scaleX(.98) } 100% { transform: translateX(0) translateY(0) scaleX(1) } }
@keyframes si2-wave-fore { 0% { transform: translateX(-10px) translateY(0) scaleY(1) } 50% { transform: translateX(8px) translateY(-8px) scaleY(1.1) } 100% { transform: translateX(-5px) translateY(0) scaleY(1) } }
@keyframes si2-spray { 0% { opacity:.3; transform: translateY(0) scale(1) } 50% { opacity:.7; transform: translateY(-4px) scale(1.2) } 100% { opacity:.4; transform: translateY(-1px) scale(.9) } }
@keyframes si2-figure { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(0) } 50% { transform: translateX(12px) translateY(-4px) rotate(2deg) } 75% { transform: translateX(18px) translateY(-2px) rotate(0) } 100% { transform: translateX(24px) translateY(0) rotate(-2deg) } }

.scn-invitation-to-drink { background: linear-gradient(180deg, #0d0d0d 0%, #1a1410 40%, #2a1a10 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 80%); }
.scn-invitation-to-drink .tavern-night { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 50%, #2a1a10 100%); }
.scn-invitation-to-drink .tavern-wall { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); }
.scn-invitation-to-drink .tavern-doorway { position:absolute; bottom:10%; left:50%; width:70px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a20 0%, #2a1a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 20px rgba(200,160,80,.15); }
.scn-invitation-to-drink .tavern-glow { position:absolute; bottom:15%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse, #d0a050 0%, #a07030 40%, transparent 70%); filter: blur(8px); animation: si3-glow 3s ease-in-out infinite alternate; }
.scn-invitation-to-drink .tavern-figure-left { position:absolute; bottom:8%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si3-figure-l 4s ease-in-out infinite; }
.scn-invitation-to-drink .tavern-figure-right { position:absolute; bottom:8%; right:38%; width:20px; height:40px; background: linear-gradient(180deg, #1a1410 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si3-figure-r 4s ease-in-out infinite; }
.scn-invitation-to-drink .tavern-lamp { position:absolute; bottom:45%; left:50%; width:8px; height:8px; transform:translateX(-50%); background: radial-gradient(circle, #e0b060 0%, #c08040 60%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(200,160,80,.6), 0 0 40px 12px rgba(200,160,80,.3); animation: si3-lamp 2s ease-in-out infinite alternate; }
.scn-invitation-to-drink .tavern-puddle { position:absolute; bottom:2%; left:40%; width:40px; height:8px; background: radial-gradient(ellipse, rgba(200,160,80,.15) 0%, transparent 70%); border-radius:50%; animation: si3-puddle 5s ease-in-out infinite alternate; }
@keyframes si3-glow { 0% { opacity:.6; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.15) } 100% { opacity:.8; transform: translateX(-50%) scale(1.05) } }
@keyframes si3-figure-l { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 30% { transform: translateX(4px) translateY(-2px) rotate(0) } 60% { transform: translateX(8px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(12px) translateY(0) rotate(1deg) } }
@keyframes si3-figure-r { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 40% { transform: translateX(-3px) translateY(-3px) rotate(1deg) } 70% { transform: translateX(-7px) translateY(-1px) rotate(0) } 100% { transform: translateX(-10px) translateY(0) rotate(-2deg) } }
@keyframes si3-lamp { 0% { box-shadow: 0 0 15px 4px rgba(200,160,80,.4), 0 0 30px 8px rgba(200,160,80,.2); } 50% { box-shadow: 0 0 25px 8px rgba(200,160,80,.7), 0 0 50px 16px rgba(200,160,80,.4); } 100% { box-shadow: 0 0 18px 5px rgba(200,160,80,.5), 0 0 35px 10px rgba(200,160,80,.25); } }
@keyframes si3-puddle { 0% { transform: scaleX(1) scaleY(1); opacity:.4 } 50% { transform: scaleX(1.2) scaleY(1.1); opacity:.7 } 100% { transform: scaleX(.9) scaleY(.95); opacity:.5 } }

.scn-cafe-dominoes { background: linear-gradient(180deg, #2a1a10 0%, #3a2215 30%, #2a1a10 70%, #1a0d08 100%), radial-gradient(ellipse at 50% 0%, #4a2a18 0%, transparent 60%); }
.scn-cafe-dominoes .cafe-back { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a10 0%, #3a2215 50%, #1a0d08 100%); }
.scn-cafe-dominoes .cafe-table { position:absolute; bottom:20%; width:80px; height:14px; border-radius:4px; background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-cafe-dominoes .table-left { left:16%; animation: si4-table-l 8s ease-in-out infinite; }
.scn-cafe-dominoes .table-right { right:16%; animation: si4-table-r 8s ease-in-out infinite; }
.scn-cafe-dominoes .cafe-sailor { position:absolute; bottom:22%; width:22px; height:42px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); transform-origin: bottom center; }
.scn-cafe-dominoes .sailor-a { left:22%; animation: si4-sailor-a 6s ease-in-out infinite; }
.scn-cafe-dominoes .sailor-b { left:42%; animation: si4-sailor-b 7s ease-in-out infinite 1s; }
.scn-cafe-dominoes .sailor-c { right:22%; animation: si4-sailor-c 5s ease-in-out infinite 0.5s; }
.scn-cafe-dominoes .cafe-smoke { position:absolute; top:10%; left:30%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(200,180,150,.15) 0%, transparent 70%); filter: blur(12px); animation: si4-smoke 12s ease-in-out infinite alternate; }
.scn-cafe-dominoes .cafe-gaslight { position:absolute; bottom:50%; left:40%; width:12px; height:12px; background: radial-gradient(circle, #d0a050 0%, #b08030 60%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(200,160,80,.5), 0 0 60px 20px rgba(200,160,80,.25); animation: si4-gaslight 3s ease-in-out infinite alternate; }
.scn-cafe-dominoes .cafe-domino { position:absolute; bottom:26%; left:32%; width:16px; height:10px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: si4-domino 3s ease-in-out infinite alternate; }
@keyframes si4-table-l { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(0) } }
@keyframes si4-table-r { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(0) } }
@keyframes si4-sailor-a { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(3px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(6px) translateY(-4px) rotate(0) } 75% { transform: translateX(3px) translateY(-2px) rotate(-3deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes si4-sailor-b { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 33% { transform: translateX(-4px) translateY(-3px) rotate(0) } 66% { transform: translateX(-8px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes si4-sailor-c { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 40% { transform: translateX(-3px) translateY(-3px) rotate(0) } 80% { transform: translateX(-6px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes si4-smoke { 0% { transform: translateY(0) scaleX(1); opacity:.3 } 50% { transform: translateY(-12px) scaleX(1.3); opacity:.6 } 100% { transform: translateY(-6px) scaleX(.9); opacity:.4 } }
@keyframes si4-gaslight { 0% { box-shadow: 0 0 20px 6px rgba(200,160,80,.4), 0 0 40px 14px rgba(200,160,80,.2); } 50% { box-shadow: 0 0 35px 10px rgba(200,160,80,.7), 0 0 70px 24px rgba(200,160,80,.35); } 100% { box-shadow: 0 0 25px 8px rgba(200,160,80,.5), 0 0 50px 18px rgba(200,160,80,.25); } }
@keyframes si4-domino { 0% { transform: translateY(0) rotate(-5deg) scaleX(1) } 50% { transform: translateY(-3px) rotate(5deg) scaleX(1.05) } 100% { transform: translateY(0) rotate(-3deg) scaleX(1) } }

.scn-drunkard-carouse { background: linear-gradient(180deg, #1a0d08 0%, #2a1a10 40%, #3a2215 70%, #2a1a10 100%), radial-gradient(ellipse at 40% 100%, #3a2215 0%, transparent 60%); }
.scn-drunkard-carouse .carouse-back { position:absolute; inset:0; background: linear-gradient(180deg, #1a0d08 0%, #2a1a10 50%, #1a0d08 100%); animation: si5-back 12s ease-in-out infinite; }
.scn-drunkard-carouse .carouse-table { position:absolute; bottom:18%; left:20%; right:15%; height:12px; background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); transform-origin: center; animation: si5-table 8s ease-in-out infinite alternate; }
.scn-drunkard-carouse .carouse-figure { position:absolute; bottom:16%; left:30%; width:24px; height:46px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%); transform-origin: bottom center; box-shadow: 0 0 6px rgba(0,0,0,.4); }
.scn-drunkard-carouse .figure-jeremie { left:35%; animation: si5-jeremie 4s ease-in-out infinite; }
.scn-drunkard-carouse .carouse-domino { position:absolute; bottom:20%; width:14px; height:8px; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,.3); }
.scn-drunkard-carouse .domino-a { left:40%; animation: si5-domino-a 3s ease-in-out infinite alternate; }
.scn-drunkard-carouse .domino-b { left:48%; animation: si5-domino-b 3.5s ease-in-out infinite alternate 0.8s; }
.scn-drunkard-carouse .carouse-lamp { position:absolute; bottom:50%; left:35%; width:8px; height:8px; background: radial-gradient(circle, #d0a050 0%, #a07030 60%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(200,160,80,.5), 0 0 40px 14px rgba(200,160,80,.25); animation: si5-lamp 3s ease-in-out infinite alternate; }
.scn-drunkard-carouse .carouse-shadow { position:absolute; bottom:14%; left:20%; right:30%; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(6px); animation: si5-shadow 4s ease-in-out infinite alternate; }
.scn-drunkard-carouse .carouse-bottle { position:absolute; bottom:20%; right:30%; width:8px; height:16px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: si5-bottle 6s ease-in-out infinite; }
.scn-drunkard-carouse .carouse-spill { position:absolute; bottom:14%; left:32%; width:20px; height:6px; background: radial-gradient(ellipse, rgba(180,140,80,.2) 0%, transparent 70%); border-radius:50%; animation: si5-spill 5s ease-in-out infinite alternate; }
@keyframes si5-back { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes si5-table { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(-1px) rotate(0) } }
@keyframes si5-jeremie { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(3px) translateY(-3px) rotate(0) } 50% { transform: translateX(6px) translateY(-1px) rotate(4deg) } 75% { transform: translateX(3px) translateY(-2px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(-3deg) } }
@keyframes si5-domino-a { 0% { transform: translateY(0) rotate(-8deg) scaleX(1) } 50% { transform: translateY(-4px) rotate(6deg) scaleX(1.08) } 100% { transform: translateY(-1px) rotate(-4deg) scaleX(1) } }
@keyframes si5-domino-b { 0% { transform: translateY(0) rotate(5deg) scaleX(1) } 50% { transform: translateY(-2px) rotate(-7deg) scaleX(1.05) } 100% { transform: translateY(-1px) rotate(3deg) scaleX(1) } }
@keyframes si5-lamp { 0% { box-shadow: 0 0 15px 4px rgba(200,160,80,.4), 0 0 30px 10px rgba(200,160,80,.2); } 50% { box-shadow: 0 0 28px 8px rgba(200,160,80,.7), 0 0 55px 18px rgba(200,160,80,.35); } 100% { box-shadow: 0 0 20px 6px rgba(200,160,80,.5), 0 0 40px 12px rgba(200,160,80,.25); } }
@keyframes si5-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:.4 } 50% { transform: scaleX(1.3) scaleY(1.2); opacity:.7 } 100% { transform: scaleX(.9) scaleY(.95); opacity:.5 } }
@keyframes si5-bottle { 0%,100% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(5deg) } }
@keyframes si5-spill { 0% { transform: scaleX(1) scaleY(1); opacity:.3 } 50% { transform: scaleX(1.4) scaleY(1.1); opacity:.6 } 100% { transform: scaleX(.8) scaleY(.9); opacity:.4 } }

.scn-storyteller-explains { background: linear-gradient(180deg, #2d1b0e 0%, #4a2e18 40%, #6b4424 100%), radial-gradient(ellipse at 50% 0%, #6b4424 0%, transparent 70%); }
.scn-storyteller-explains .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2d1b0e 0%, #4a2e18 50%, #3d2413 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-storyteller-explains .window { position:absolute; top:15%; right:20%; width:60px; height:80px; background: radial-gradient(ellipse at center, #d4a373 0%, transparent 80%); border-radius:4px; box-shadow: inset 0 0 20px #d4a373; animation: se-window 12s ease-in-out infinite alternate; }
.scn-storyteller-explains .table { position:absolute; bottom:18%; left:30%; width:120px; height:16px; background: linear-gradient(180deg, #5e3a1e 0%, #3d2413 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-storyteller-explains .lamp { position:absolute; bottom:28%; left:34%; width:20px; height:30px; background: radial-gradient(circle, #f0c080 0%, #b07030 70%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 30px 10px rgba(240,192,128,.5), 0 0 60px 20px rgba(240,192,128,.2); animation: se-lamp 4s ease-in-out infinite alternate; }
.scn-storyteller-explains .storyteller { position:absolute; bottom:20%; left:38%; width:28px; height:50px; background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: se-gesture 5s ease-in-out infinite; }
.scn-storyteller-explains .listener-a { position:absolute; bottom:18%; left:52%; width:24px; height:40px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: se-nod 7s ease-in-out infinite; }
.scn-storyteller-explains .listener-b { position:absolute; bottom:20%; left:60%; width:22px; height:38px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: se-nod 9s ease-in-out infinite reverse; }
.scn-storyteller-explains .smoke-a { position:absolute; bottom:40%; left:40%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,160,120,.3) 0%, transparent 70%); filter: blur(5px); animation: se-smoke 20s linear infinite; }
.scn-storyteller-explains .smoke-b { position:absolute; bottom:45%; left:55%; width:50px; height:15px; background: radial-gradient(ellipse, rgba(200,160,120,.2) 0%, transparent 70%); filter: blur(6px); animation: se-smoke 25s linear infinite reverse; }
@keyframes se-window { 0% { opacity:.4; transform: scaleY(1); } 50% { opacity:.7; transform: scaleY(1.05); } 100% { opacity:.5; transform: scaleY(.95); } }
@keyframes se-lamp { 0% { box-shadow: 0 0 20px 8px rgba(240,192,128,.4); } 50% { box-shadow: 0 0 40px 16px rgba(240,192,128,.7); } 100% { box-shadow: 0 0 25px 10px rgba(240,192,128,.5); } }
@keyframes se-gesture { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(3deg); } 60% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes se-nod { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(1deg); } 70% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes se-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.5; } 50% { transform: translateY(-30px) translateX(10px) scale(1.2); opacity:.2; } 100% { transform: translateY(-60px) translateX(-5px) scale(1.5); opacity:0; } }

.scn-second-story-intro { background: linear-gradient(180deg, #2a1810 0%, #4a2e18 50%, #3d2214 100%), radial-gradient(ellipse at 30% 100%, #4a2e18 0%, transparent 70%); }
.scn-second-story-intro .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1c0e08 0%, #3a2212 100%); }
.scn-second-story-intro .staircase { position:absolute; right:10%; bottom:0; width:50px; height:70%; background: linear-gradient(180deg, #4a2e18 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.5); animation: ssi-rise 18s ease-in-out infinite alternate; }
.scn-second-story-intro .door { position:absolute; right:16%; bottom:12%; width:36px; height:50px; background: linear-gradient(180deg, #6a4424 0%, #3d2214 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ssi-door 20s ease-in-out infinite; }
.scn-second-story-intro .narrator { position:absolute; bottom:20%; left:45%; width:26px; height:46px; background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssi-turn 8s ease-in-out infinite; }
.scn-second-story-intro .chair { position:absolute; bottom:14%; left:48%; width:30px; height:20px; background: linear-gradient(180deg, #5e3a1e 0%, #3d2214 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.6); }
.scn-second-story-intro .candle { position:absolute; bottom:38%; left:50%; width:8px; height:18px; background: linear-gradient(180deg, #f0d090 0%, #c08040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px rgba(240,208,144,.6), 0 0 40px 16px rgba(240,208,144,.3); animation: ssi-candle 3s ease-in-out infinite alternate; }
.scn-second-story-intro .shadow { position:absolute; bottom:0; left:30%; width:100px; height:60px; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: ssi-shade 12s ease-in-out infinite; }
@keyframes ssi-rise { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.03) translateX(-2px); } 100% { transform: scaleY(.97) translateX(2px); } }
@keyframes ssi-door { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(0); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ssi-turn { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(6px) rotate(2deg); } 66% { transform: translateX(-4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ssi-candle { 0% { box-shadow: 0 0 16px 6px rgba(240,208,144,.4); opacity:.8; } 50% { box-shadow: 0 0 30px 12px rgba(240,208,144,.7); opacity:1; } 100% { box-shadow: 0 0 20px 8px rgba(240,208,144,.5); opacity:.85; } }
@keyframes ssi-shade { 0% { opacity:.3; transform: translateX(0); } 50% { opacity:.6; transform: translateX(8px); } 100% { opacity:.4; transform: translateX(-6px); } }

.scn-woman-description { background: linear-gradient(180deg, #1a1412 0%, #2a221e 40%, #3d322c 100%), radial-gradient(ellipse at 50% 20%, #3d322c 0%, transparent 60%); }
.scn-woman-description .backdrop { position:absolute; inset:0; background: linear-gradient(180deg, #0f0c0a 0%, #1e1814 100%); }
.scn-woman-description .window { position:absolute; top:20%; left:15%; width:50px; height:70px; background: radial-gradient(ellipse at center, #8a7a6e 0%, transparent 80%); border-radius:4px; box-shadow: inset 0 0 20px #8a7a6e; animation: wd-window 14s ease-in-out infinite alternate; }
.scn-woman-description .curtain { position:absolute; top:18%; left:12%; width:18px; height:74px; background: linear-gradient(180deg, #4a3a2e 0%, #2a1e18 100%); border-radius: 10% 0 0 10%; animation: wd-curtain 10s ease-in-out infinite; }
.scn-woman-description .woman-silhouette { position:absolute; bottom:30%; left:40%; width:22px; height:40px; background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wd-turn 12s ease-in-out infinite; }
.scn-woman-description .chair { position:absolute; bottom:18%; left:38%; width:28px; height:18px; background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%); border-radius: 30% 30% 10% 10%; }
.scn-woman-description .mirror { position:absolute; top:30%; left:58%; width:40px; height:50px; background: linear-gradient(135deg, #6a5e52 0%, #4a3e34 50%, #3a2e26 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: wd-mirror 20s ease-in-out infinite alternate; }
.scn-woman-description .dust-a { position:absolute; top:40%; left:20%; width:30px; height:10px; background: radial-gradient(ellipse, rgba(180,160,140,.15) 0%, transparent 70%); filter: blur(4px); animation: wd-dust 30s linear infinite; }
.scn-woman-description .dust-b { position:absolute; top:50%; left:60%; width:25px; height:8px; background: radial-gradient(ellipse, rgba(180,160,140,.12) 0%, transparent 70%); filter: blur(3px); animation: wd-dust 35s linear infinite reverse; }
@keyframes wd-window { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(1.03); } 100% { opacity:.4; transform: scaleX(.97); } }
@keyframes wd-curtain { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-3px) scaleY(1.02); } 100% { transform: translateX(2px) scaleY(.98); } }
@keyframes wd-turn { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wd-mirror { 0% { opacity:.6; box-shadow: inset 0 0 10px rgba(0,0,0,.3); } 50% { opacity:.8; box-shadow: inset 0 0 30px rgba(0,0,0,.6); } 100% { opacity:.7; box-shadow: inset 0 0 20px rgba(0,0,0,.4); } }
@keyframes wd-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.3; } 50% { transform: translateY(-20px) translateX(8px) scale(1.1); opacity:.1; } 100% { transform: translateY(-40px) translateX(-4px) scale(1.2); opacity:0; } }

.scn-dream-encounter { background: linear-gradient(180deg, #1a0e0a 0%, #3a1e12 40%, #5a3220 100%), radial-gradient(ellipse at 60% 80%, #5a3220 0%, transparent 70%); }
.scn-dream-encounter .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #0f0806 0%, #241410 100%); }
.scn-dream-encounter .fireplace { position:absolute; bottom:10%; left:20%; width:80px; height:50px; background: linear-gradient(180deg, #3d1e0e 0%, #1a0e06 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); animation: de-fire 5s ease-in-out infinite alternate; }
.scn-dream-encounter .desk { position:absolute; bottom:18%; left:50%; width:100px; height:14px; background: linear-gradient(180deg, #4a2a16 0%, #2a140a 100%); border-radius:6px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-dream-encounter .writer { position:absolute; bottom:20%; left:54%; width:22px; height:42px; background: linear-gradient(180deg, #1a0e08 0%, #080402 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: de-write 6s ease-in-out infinite; }
.scn-dream-encounter .ghost-form { position:absolute; top:25%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, rgba(180,160,140,.3) 0%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(8px); animation: de-ghost 12s ease-in-out infinite; }
.scn-dream-encounter .shadow-pulse { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: de-pulse 8s ease-in-out infinite; }
.scn-dream-encounter .ember-a { position:absolute; bottom:20%; left:18%; width:4px; height:4px; background: #f0a050; border-radius:50%; box-shadow: 0 0 8px 2px #f0a050; animation: de-ember 3s ease-in-out infinite; }
.scn-dream-encounter .ember-b { position:absolute; bottom:22%; left:24%; width:3px; height:3px; background: #f08030; border-radius:50%; box-shadow: 0 0 6px 2px #f08030; animation: de-ember 4s ease-in-out infinite reverse; }
@keyframes de-fire { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 0 30px 10px rgba(240,160,80,.3); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,.7), 0 0 60px 20px rgba(240,160,80,.5); } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 0 40px 15px rgba(240,160,80,.4); } }
@keyframes de-write { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(0); } 50% { transform: translateX(-2px) translateY(0) rotate(2deg); } 75% { transform: translateX(4px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes de-ghost { 0% { opacity:.15; transform: translateX(0) scale(1); } 50% { opacity:.35; transform: translateX(10px) scale(1.05); } 100% { opacity:.2; transform: translateX(-8px) scale(.95); } }
@keyframes de-pulse { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }
@keyframes de-ember { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.6; } 50% { transform: translateY(-8px) translateX(3px) scale(1.2); opacity:1; } 100% { transform: translateY(-16px) translateX(-2px) scale(.8); opacity:0; } }

/* epidemic-of-suicides */
.scn-epidemic-of-suicides { background: linear-gradient(180deg, #f5f0e8 0%, #e8dcc8 40%, #c8b89a 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 70%); }
.scn-epidemic-of-suicides .room-bg { position:absolute; inset:0; background: linear-gradient(160deg, #faf3e0 0%, #d6c8b0 100%); }
.scn-epidemic-of-suicides .chandelier { position:absolute; top:5%; left:43%; width:80px; height:120px; background: radial-gradient(ellipse at 50% 10%, #fff8c0 0%, transparent 40%), linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 20% 20%; box-shadow:0 0 30px 20px rgba(255,240,180,0.4); animation: esu-sway 6s ease-in-out infinite; }
.scn-epidemic-of-suicides .table { position:absolute; bottom:30%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius:4%; box-shadow: 0 -8px 20px rgba(0,0,0,0.5); }
.scn-epidemic-of-suicides .figure-a { position:absolute; bottom:40%; left:25%; width:22px; height:48px; background: linear-gradient(180deg, #2a2218 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: esu-fall1 4s ease-in-out infinite; }
.scn-epidemic-of-suicides .figure-b { position:absolute; bottom:42%; left:45%; width:24px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: esu-fall2 5s ease-in-out infinite 1s; }
.scn-epidemic-of-suicides .figure-c { position:absolute; bottom:40%; left:62%; width:20px; height:50px; background: linear-gradient(180deg, #2a2218 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: esu-fall1 4.5s ease-in-out infinite 0.5s; }
.scn-epidemic-of-suicides .shadow-floor { position:absolute; bottom:28%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); filter: blur(6px); animation: esu-shadow 3s ease-in-out infinite; }

@keyframes esu-sway { 0% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(2deg) scaleX(0.98); } 50% { transform: rotate(-1deg) scaleX(1); } 75% { transform: rotate(3deg) scaleX(1.02); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes esu-fall1 { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 30% { transform: translateY(-2px) rotate(-5deg) scaleY(1.02); } 60% { transform: translateY(2px) rotate(5deg) scaleY(0.98); } 100% { transform: translateY(0) rotate(0deg) scaleY(1); } }
@keyframes esu-fall2 { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 50% { transform: translateY(3px) rotate(8deg) scaleY(0.95); } 100% { transform: translateY(0) rotate(0deg) scaleY(1); } }
@keyframes esu-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(0.95); } 100% { opacity:0.3; transform: scaleX(1); } }

/* disillusioned-world */
.scn-disillusioned-world { background: linear-gradient(180deg, #e8e0d8 0%, #c0b8a8 50%, #908878 100%), radial-gradient(ellipse at 60% 100%, #a09888 0%, transparent 60%); }
.scn-disillusioned-world .room-bg { position:absolute; inset:0; background: linear-gradient(160deg, #f0e8e0 0%, #c8c0b0 100%); }
.scn-disillusioned-world .window-out { position:absolute; top:15%; right:10%; width:30%; height:45%; background: linear-gradient(180deg, #b8b0a0 0%, #807868 100%); border: 6px solid #6a6252; border-radius:4%; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
.scn-disillusioned-world .figure-sit { position:absolute; bottom:22%; left:28%; width:30px; height:48px; background: linear-gradient(180deg, #2a2218 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: diw-shudder 3s ease-in-out infinite; }
.scn-disillusioned-world .globe-crack { position:absolute; bottom:35%; left:50%; width:50px; height:50px; background: radial-gradient(circle at 40% 40%, #a0b8c0 0%, #708090 100%); border-radius: 50%; box-shadow: inset 0 0 12px rgba(0,0,0,0.5); animation: diw-crack 12s ease-in-out infinite; }
.scn-disillusioned-world .clock-face { position:absolute; bottom:45%; left:15%; width:40px; height:40px; background: radial-gradient(circle, #e8e0d0 0%, #b0a898 70%); border-radius: 50%; box-shadow: inset 0 0 8px rgba(0,0,0,0.3); animation: diw-clock 10s linear infinite; }
.scn-disillusioned-world .chair { position:absolute; bottom:20%; left:20%; width:50px; height:35px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; }

@keyframes diw-shudder { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(2px) rotate(1deg); } 40% { transform: translateX(-1px) rotate(-1deg); } 60% { transform: translateX(3px) rotate(2deg); } 80% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes diw-crack { 0% { box-shadow: inset 0 0 12px rgba(0,0,0,0.5); transform: scale(1); } 25% { box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 0 0 8px rgba(180,40,40,0.3); transform: scale(1.02); } 50% { box-shadow: inset 0 0 16px rgba(0,0,0,0.6); transform: scale(0.98); } 75% { box-shadow: inset 0 0 24px rgba(0,0,0,0.8), 0 0 12px rgba(180,40,40,0.3); transform: scale(1.03); } 100% { box-shadow: inset 0 0 12px rgba(0,0,0,0.5); transform: scale(1); } }
@keyframes diw-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }

/* providence-lies */
.scn-providence-lies { background: linear-gradient(180deg, #f5e8d0 0%, #d8c8a8 50%, #b8a888 100%), radial-gradient(ellipse at 30% 50%, #ffe0a0 0%, transparent 60%); }
.scn-providence-lies .stage-bg { position:absolute; inset:0; background: linear-gradient(160deg, #fef0e0 0%, #e8d0b0 100%); }
.scn-providence-lies .pulpit { position:absolute; bottom:30%; left:40%; width:80px; height:60px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-providence-lies .puppet-fig { position:absolute; bottom:35%; left:42%; width:24px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prl-bounce 3s ease-in-out infinite; }
.scn-providence-lies .halo-tilt { position:absolute; bottom:55%; left:44%; width:30px; height:8px; background: radial-gradient(ellipse, #ffd700 0%, #ffaa00 60%, transparent 80%); border-radius: 50%; opacity:0.8; animation: prl-halo 4s ease-in-out infinite; }
.scn-providence-lies .strings { position:absolute; bottom:60%; left:44%; width:2px; height:30px; background: linear-gradient(180deg, transparent 0%, #4a3a2a 50%, transparent 100%); animation: prl-string 2s ease-in-out infinite; }
.scn-providence-lies .comic-shadow { position:absolute; bottom:28%; left:38%; width:70px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); filter: blur(4px); animation: prl-shadow 3s ease-in-out infinite; }

@keyframes prl-bounce { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 25% { transform: translateY(-6px) rotate(-4deg) scaleY(1.05); } 50% { transform: translateY(0) rotate(2deg) scaleY(0.95); } 75% { transform: translateY(-3px) rotate(-2deg) scaleY(1.02); } 100% { transform: translateY(0) rotate(0deg) scaleY(1); } }
@keyframes prl-halo { 0% { transform: translateY(0) rotate(-10deg) scaleX(1); opacity:0.6; } 30% { transform: translateY(-2px) rotate(15deg) scaleX(1.2); opacity:1; } 60% { transform: translateY(1px) rotate(-5deg) scaleX(0.9); opacity:0.7; } 100% { transform: translateY(0) rotate(-10deg) scaleX(1); opacity:0.6; } }
@keyframes prl-string { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.6); } 100% { transform: scaleY(1); } }
@keyframes prl-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:0.5; } 50% { transform: scaleX(1.1) scaleY(0.8); opacity:0.8; } 100% { transform: scaleX(1) scaleY(1); opacity:0.5; } }

/* club-membership */
.scn-club-membership { background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 40%, #a89880 100%), radial-gradient(ellipse at 50% 30%, #f0e0d0 0%, transparent 60%); }
.scn-club-membership .panel-wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #d8c8b0 0px, #d8c8b0 4px, #c8b8a0 4px, #c8b8a0 8px); }
.scn-club-membership .fireplace { position:absolute; bottom:20%; left:15%; width:100px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 4% 4% / 30% 30% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
.scn-club-membership .armchair { position:absolute; bottom:22%; right:20%; width:60px; height:50px; background: linear-gradient(135deg, #8a705a 0%, #5a4a3a 100%); border-radius: 30% 30% 15% 15% / 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
.scn-club-membership .portrait-oval { position:absolute; top:15%; left:10%; width:40px; height:50px; background: linear-gradient(180deg, #2a2218 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; border: 6px solid #6a5a4a; animation: clm-glance 8s ease-in-out infinite; }
.scn-club-membership .lamp-glow { position:absolute; top:20%; right:15%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #c08040 50%, transparent 80%); border-radius: 50% 50% 20% 20%; animation: clm-glow 4s ease-in-out infinite; }
.scn-club-membership .rug-oval { position:absolute; bottom:8%; left:10%; right:10%; height:18%; background: radial-gradient(ellipse at 50% 50%, #6a4a3a 0%, #4a2a1a 60%, transparent 80%); border-radius: 50%; opacity:0.6; }

@keyframes clm-glance { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes clm-glow { 0% { opacity:0.7; transform: scaleY(1); } 30% { opacity:1; transform: scaleY(1.1); } 60% { opacity:0.8; transform: scaleY(0.95); } 100% { opacity:0.7; transform: scaleY(1); } }

/* Scene: walking-in-gorge */
.scn-walking-in-gorge {
  background: linear-gradient(180deg, #f9e5c9 0%, #e3c9a6 40%, #b8a88a 70%, #8a7a6a 100%);
  /* Additional depth */
  background-image: radial-gradient(ellipse at 20% 50%, rgba(255,230,180,0.3) 0%, transparent 60%);
}
.scn-walking-in-gorge .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffd699 0%, #fff5e1 40%, transparent 100%);
  animation: wg-sky 14s ease-in-out infinite alternate;
}
.scn-walking-in-gorge .gorge-left {
  position:absolute; inset:10% 60% 0 0;
  background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 0 30% 0 0 / 0 40% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
  animation: wg-wall 12s ease-in-out infinite alternate;
}
.scn-walking-in-gorge .gorge-right {
  position:absolute; inset:15% 0 0 55%;
  background: linear-gradient(225deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 30% 0 0 0 / 40% 0 0 0;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.3);
  animation: wg-wall 12s ease-in-out infinite alternate-reverse;
}
.scn-walking-in-gorge .foliage-overlay {
  position:absolute; inset:0 0 20% 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(120,160,80,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: wg-foliage 10s ease-in-out infinite;
}
.scn-walking-in-gorge .fruit {
  position:absolute; top:15%; left:35%; width:16px; height:20px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: wg-fruit 6s ease-in-out infinite;
}
.scn-walking-in-gorge .sunbeam {
  position:absolute; top:0; width:12%;
  height:100%; background: linear-gradient(180deg, rgba(255,240,180,0.6) 0%, transparent 100%);
  filter: blur(8px); animation: wg-beam 20s linear infinite;
}
.scn-walking-in-gorge .sunbeam-a { left:25%; animation-delay:0s; }
.scn-walking-in-gorge .sunbeam-b { left:60%; animation-delay:-10s; }

@keyframes wg-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes wg-wall { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes wg-foliage { 0% { filter: blur(4px) brightness(1); } 50% { filter: blur(6px) brightness(1.1); } 100% { filter: blur(4px) brightness(1); } }
@keyframes wg-fruit { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-8px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes wg-beam { 0% { transform: translateX(-30px) scaleY(1); opacity:0.4; } 25% { opacity:0.8; } 50% { transform: translateX(60px) scaleY(1.1); opacity:0.4; } 75% { opacity:0.2; } 100% { transform: translateX(-30px) scaleY(1); opacity:0.4; } }

/* Scene: reservoir-edge */
.scn-reservoir-edge {
  background: linear-gradient(180deg, #d4c7a5 0%, #a89a7a 40%, #5a4e3a 100%);
  background-image: radial-gradient(ellipse at 50% 80%, rgba(255,210,160,0.2) 0%, transparent 70%);
}
.scn-reservoir-edge .water {
  position:absolute; inset:50% 0 0 0;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: re-water 18s ease-in-out infinite;
}
.scn-reservoir-edge .reflection {
  position:absolute; bottom:30%; left:30%; width:40%; height:15%;
  background: linear-gradient(180deg, rgba(200,180,140,0.2) 0%, transparent 100%);
  filter: blur(6px);
  animation: re-reflect 12s ease-in-out infinite alternate;
}
.scn-reservoir-edge .branches-left {
  position:absolute; inset:0 65% 30% 0;
  background: linear-gradient(135deg, #5a4a3a 0%, transparent 80%);
  border-radius: 0 0 60% 0 / 0 0 40% 0;
  animation: re-branch 15s ease-in-out infinite alternate;
}
.scn-reservoir-edge .branches-right {
  position:absolute; inset:5% 0 35% 60%;
  background: linear-gradient(225deg, #5a4a3a 0%, transparent 80%);
  border-radius: 0 0 0 60% / 0 0 0 40%;
  animation: re-branch 15s ease-in-out infinite alternate-reverse;
}
.scn-reservoir-edge .figure-sitting {
  position:absolute; bottom:30%; left:45%; width:28px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: re-figure 4s ease-in-out infinite;
}
.scn-reservoir-edge .ripple {
  position:absolute; bottom:20%; left:40%; width:16px; height:16px;
  border: 2px solid rgba(200,180,140,0.3);
  border-radius: 50%;
  animation: re-ripple 6s ease-out infinite;
}

@keyframes re-water { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes re-reflect { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.05); } 100% { opacity:0.3; transform: scaleX(1); } }
@keyframes re-branch { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-6px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes re-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes re-ripple { 0% { transform: scale(0); opacity:1; } 50% { transform: scale(3); opacity:0.4; } 100% { transform: scale(6); opacity:0; } }

/* Scene: old-man-encounter */
.scn-old-man-encounter {
  background: linear-gradient(180deg, #fff5e1 0%, #ffe8c8 40%, #d4c2a0 100%);
  background-image: radial-gradient(ellipse at 70% 30%, rgba(255,220,160,0.5) 0%, transparent 60%);
}
.scn-old-man-encounter .sky-bright {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffd699 0%, #fff5e1 50%, transparent 100%);
  animation: om-sky 10s ease-in-out infinite alternate;
}
.scn-old-man-encounter .field {
  position:absolute; inset:30% 0 0 0;
  background: linear-gradient(180deg, #b8a88a 0%, #8a7a6a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: om-field 20s ease-in-out infinite;
}
.scn-old-man-encounter .old-man {
  position:absolute; bottom:35%; left:25%; width:30px; height:52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: om-figure 5s ease-in-out infinite;
}
.scn-old-man-encounter .narrator {
  position:absolute; bottom:30%; left:55%; width:22px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: om-figure 5s ease-in-out infinite -2.5s;
}
.scn-old-man-encounter .flowers {
  position:absolute; bottom:20%; left:15%; width:40px; height:20px;
  background: radial-gradient(circle at 30% 50%, #c8553d 4px, transparent 4px),
              radial-gradient(circle at 60% 30%, #d4a060 3px, transparent 3px),
              radial-gradient(circle at 80% 60%, #b8b040 3px, transparent 3px);
  filter: blur(1px);
  animation: om-flowers 8s ease-in-out infinite;
}
.scn-old-man-encounter .shadow-sharp {
  position:absolute; bottom:0; left:20%; width:50px; height:20%;
  background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  transform-origin: bottom left;
  animation: om-shadow 6s ease-in-out infinite alternate;
}

@keyframes om-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes om-field { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes om-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes om-flowers { 0% { transform: translateX(0) rotate(0deg); opacity:0.7; } 50% { transform: translateX(5px) rotate(3deg); opacity:1; } 100% { transform: translateX(0) rotate(0deg); opacity:0.7; } }
@keyframes om-shadow { 0% { transform: skewX(-10deg) scaleX(1); } 50% { transform: skewX(-15deg) scaleX(1.2); } 100% { transform: skewX(-10deg) scaleX(1); } }

/* Scene: tragedy-introduction */
.scn-tragedy-introduction {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%);
  background-image: radial-gradient(ellipse at 50% 60%, rgba(100,80,120,0.2) 0%, transparent 70%);
}
.scn-tragedy-introduction .bg-deep {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #1a1a2e 0%, #0a0a1a 100%);
  animation: ti-bg 30s ease-in-out infinite alternate;
}
.scn-tragedy-introduction .figure-narrator {
  position:absolute; bottom:20%; left:40%; width:30px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ti-figure 6s ease-in-out infinite;
}
.scn-tragedy-introduction .table {
  position:absolute; bottom:18%; left:35%; width:60px; height:10px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ti-table 15s ease-in-out infinite alternate;
}
.scn-tragedy-introduction .paper {
  position:absolute; bottom:28%; left:42%; width:24px; height:20px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: rotate(-5deg);
  border-radius: 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ti-paper 8s ease-in-out infinite;
}
.scn-tragedy-introduction .candle {
  position:absolute; bottom:30%; left:60%; width:6px; height:16px;
  background: linear-gradient(180deg, #e8d4a0 0%, #b89a60 100%);
  border-radius: 40% 40% 10% 10%;
  animation: ti-candle 4s ease-in-out infinite;
}
.scn-tragedy-introduction .candle-glow {
  position:absolute; bottom:30%; left:60%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(232,212,160,0.6) 0%, transparent 70%);
  transform: translate(-50%, -50%);
  animation: ti-glow 3s ease-in-out infinite alternate;
}
.scn-tragedy-introduction .shadow-pool {
  position:absolute; bottom:0; left:30%; width:80px; height:25%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  transform-origin: bottom center;
  animation: ti-shadow 12s ease-in-out infinite alternate;
}

@keyframes ti-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes ti-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ti-table { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(2px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes ti-paper { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ti-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.08); opacity:1; } 100% { transform: scaleY(1); opacity:0.9; } }
@keyframes ti-glow { 0% { transform: translate(-50%, -50%) scale(0.8); opacity:0.5; } 50% { transform: translate(-50%, -50%) scale(1.2); opacity:0.8; } 100% { transform: translate(-50%, -50%) scale(0.8); opacity:0.5; } }
@keyframes ti-shadow { 0% { transform: scaleX(1) skewX(-10deg); } 50% { transform: scaleX(1.1) skewX(-15deg); } 100% { transform: scaleX(1) skewX(-10deg); } }

/* --- boitelle-marriage-story (bms) --- */
.scn-boitelle-marriage-story {
  background: linear-gradient(180deg, #3a2a1c 0%, #2a1a0e 50%, #1a0e06 100%),
              radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-boitelle-marriage-story .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0e 100%);
  animation: bms-room 12s ease-in-out infinite alternate;
}
.scn-boitelle-marriage-story .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 6%;
  background: linear-gradient(180deg, #5e4a36 0%, #3a2a1c 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: bms-table 8s ease-in-out infinite;
}
.scn-boitelle-marriage-story .lantern {
  position: absolute; bottom: 30%; left: 45%; width: 14px; height: 24px;
  background: radial-gradient(circle, #f0c068 0%, #b08040 70%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: bms-lantern 4s ease-in-out infinite alternate;
}
.scn-boitelle-marriage-story .figure {
  position: absolute; bottom: 10%; left: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: bms-figure 5s ease-in-out infinite;
}
.scn-boitelle-marriage-story .chair {
  position: absolute; bottom: 10%; left: 20%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1a1410 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: bms-chair 7s ease-in-out infinite alternate;
}
.scn-boitelle-marriage-story .candle-wax {
  position: absolute; bottom: 26%; left: 52%; width: 4px; height: 10px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1c 100%);
  border-radius: 50%; animation: bms-wax 6s ease-in-out infinite;
}
.scn-boitelle-marriage-story .shadow-on-wall {
  position: absolute; bottom: 10%; left: 30%; width: 30px; height: 50px;
  background: rgba(0,0,0,0.3); filter: blur(4px);
  border-radius: 30% 30% 20% 20%; animation: bms-shadow 5s ease-in-out infinite alternate;
}
@keyframes bms-room { 0% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes bms-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes bms-lantern { 0% { box-shadow: 0 0 16px 4px #c08040; opacity: 0.85 } 50% { box-shadow: 0 0 30px 8px #f0c068; opacity: 1 } 100% { box-shadow: 0 0 20px 5px #c08040; opacity: 0.9 } }
@keyframes bms-figure { 0% { transform: translateX(0) rotate(-1deg) } 33% { transform: translateX(4px) rotate(1deg) } 66% { transform: translateX(-2px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes bms-chair { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes bms-wax { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.1) } }
@keyframes bms-shadow { 0% { transform: translateX(0) scale(1) opacity(0.3) } 100% { transform: translateX(6px) scale(1.05) opacity(0.4) } }

/* --- bird-market-at-havre (bmh) --- */
.scn-bird-market-at-havre {
  background: linear-gradient(180deg, #8ec5e0 0%, #f2d99e 40%, #e8b865 80%, #d4983a 100%),
              radial-gradient(ellipse at 50% 0%, #fceabb 0%, transparent 60%);
}
.scn-bird-market-at-havre .sky-bg {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #6db3d4 0%, #a8d8ea 100%);
  animation: bmh-sky 15s ease-in-out infinite alternate;
}
.scn-bird-market-at-havre .awning-left {
  position: absolute; top: 5%; left: 10%; width: 35%; height: 20%;
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%);
  border-radius: 20% 20% 0 0 / 100% 100% 0 0; transform-origin: bottom center;
  animation: bmh-awning 12s ease-in-out infinite alternate;
}
.scn-bird-market-at-havre .awning-right {
  position: absolute; top: 5%; right: 10%; width: 35%; height: 20%;
  background: linear-gradient(135deg, #e8b865 0%, #d4983a 100%);
  border-radius: 20% 20% 0 0 / 100% 100% 0 0; transform-origin: bottom center;
  animation: bmh-awning 12s ease-in-out infinite alternate-reverse;
}
.scn-bird-market-at-havre .cage-1 {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 0 2px #4a3a2a;
  animation: bmh-cage 8s ease-in-out infinite;
}
.scn-bird-market-at-havre .cage-2 {
  position: absolute; bottom: 25%; right: 25%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #5e4a36 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 0 2px #3a2a1c;
  animation: bmh-cage 10s ease-in-out infinite reverse;
}
.scn-bird-market-at-havre .bird-parrot {
  position: absolute; bottom: 38%; left: 24%; width: 12px; height: 10px;
  background: radial-gradient(circle at 40% 30%, #4caf50 0%, #2e7d32 80%);
  border-radius: 50% 40% 30% 30%; box-shadow: -2px -1px 0 #f4d03f;
  animation: bmh-parrot 3s ease-in-out infinite;
}
.scn-bird-market-at-havre .bird-macaw {
  position: absolute; bottom: 33%; right: 28%; width: 14px; height: 12px;
  background: radial-gradient(circle at 40% 30%, #5e1a1d 0%, #702243 80%);
  border-radius: 50% 40% 30% 30%; box-shadow: -2px -1px 0 #e8b865;
  animation: bmh-macaw 4s ease-in-out infinite alternate;
}
.scn-bird-market-at-havre .figure {
  position: absolute; bottom: 10%; left: 38%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bmh-figure 6s ease-in-out infinite;
}
.scn-bird-market-at-havre .sunburst {
  position: absolute; top: 2%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff9c4 0%, #ffe082 30%, transparent 70%);
  filter: blur(2px); animation: bmh-sun 20s linear infinite;
}
@keyframes bmh-sky { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes bmh-awning { 0% { transform: rotateX(0deg) scaleY(1) } 50% { transform: rotateX(10deg) scaleY(0.95) } 100% { transform: rotateX(0deg) scaleY(1) } }
@keyframes bmh-cage { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes bmh-parrot { 0% { transform: translate(0,0) scale(1) } 33% { transform: translate(2px,-1px) scale(1.1) } 66% { transform: translate(-1px,1px) scale(0.9) } 100% { transform: translate(0,0) scale(1) } }
@keyframes bmh-macaw { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes bmh-figure { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(8px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes bmh-sun { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.1) rotate(5deg) } 100% { transform: scale(1) rotate(0deg) } }

/* --- fascination-with-birds (fb) --- */
.scn-fascination-with-birds {
  background: linear-gradient(180deg, #fceabb 0%, #f8b500 50%, #e8a000 100%),
              radial-gradient(ellipse at 50% 0%, #fff5c4 0%, transparent 60%);
}
.scn-fascination-with-birds .sun-glow {
  position: absolute; top: 0; left: 20%; width: 80%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, #fff5c4 0%, #f8b500 40%, transparent 70%);
  animation: fb-sun 25s ease-in-out infinite alternate;
}
.scn-fascination-with-birds .profile-head {
  position: absolute; bottom: 30%; left: 15%; width: 30px; height: 38px;
  background: linear-gradient(135deg, #3a2a1c 0%, #1a1410 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform: rotate(10deg); animation: fb-head 5s ease-in-out infinite;
}
.scn-fascination-with-birds .hat {
  position: absolute; bottom: 55%; left: 12%; width: 44px; height: 12px;
  background: linear-gradient(180deg, #5e4a36 0%, #3a2a1c 100%);
  border-radius: 60% 60% 10% 10%; box-shadow: 0 -4px 0 #1a1410;
  animation: fb-hat 6s ease-in-out infinite alternate;
}
.scn-fascination-with-birds .cage-bar {
  position: absolute; bottom: 25%; left: 55%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 10px 0 0 #5e4a36, 20px 0 0 #4a3a2a;
  animation: fb-cage 9s ease-in-out infinite;
}
.scn-fascination-with-birds .cockatoo-body {
  position: absolute; bottom: 30%; left: 58%; width: 16px; height: 18px;
  background: radial-gradient(circle at 40% 30%, #f5f5dc 0%, #d4c9a8 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fb-cockatoo 4s ease-in-out infinite;
}
.scn-fascination-with-birds .cockatoo-crest {
  position: absolute; bottom: 47%; left: 58%; width: 12px; height: 6px;
  background: linear-gradient(180deg, #f4d03f 0%, #e8b865 100%);
  border-radius: 50% 50% 0 0; transform-origin: bottom center;
  animation: fb-crest 2s ease-in-out infinite alternate;
}
.scn-fascination-with-birds .hand-reach {
  position: absolute; bottom: 25%; left: 22%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #b87878 0%, #8c6060 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-15deg); animation: fb-hand 5s ease-in-out infinite;
}
.scn-fascination-with-birds .dust-mote {
  position: absolute; width: 4px; height: 4px; background: #fff9c4;
  border-radius: 50%; filter: blur(1px);
}
.scn-fascination-with-birds .mote-a { top: 30%; left: 30%; animation: fb-mote 12s linear infinite; }
.scn-fascination-with-birds .mote-b { top: 50%; left: 40%; animation: fb-mote 15s linear infinite 3s; }
@keyframes fb-sun { 0% { opacity: 0.8 } 100% { opacity: 1 } }
@keyframes fb-head { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(5deg) } }
@keyframes fb-hat { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes fb-cage { 0%,100% { transform: scaley(1) } 50% { transform: scaley(0.95) } }
@keyframes fb-cockatoo { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(2px,-2px) scale(1.05) } 75% { transform: translate(-1px,1px) scale(0.95) } 100% { transform: translate(0,0) scale(1) } }
@keyframes fb-crest { 0% { transform: rotate(0deg) } 100% { transform: rotate(30deg) } }
@keyframes fb-hand { 0% { transform: rotate(-15deg) translate(0,0) } 50% { transform: rotate(-10deg) translate(8px,-4px) } 100% { transform: rotate(-15deg) translate(0,0) } }
@keyframes fb-mote { 0% { transform: translate(0,0) scale(1); opacity: 0 } 20% { opacity: 1 } 80% { opacity: 1 } 100% { transform: translate(60px,-60px) scale(0); opacity: 0 } }

/* --- first-sight-of-negress (fsn) --- */
.scn-first-sight-of-negress {
  background: linear-gradient(180deg, #fff5e6 0%, #f2d9b3 30%, #e6c88a 70%, #d4b080 100%),
              radial-gradient(ellipse at 70% 40%, #fff5e6 0%, transparent 50%);
}
.scn-first-sight-of-negress .bright-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #ffe0b2 0%, #ffcc80 100%);
  animation: fsn-wall 10s ease-in-out infinite alternate;
}
.scn-first-sight-of-negress .doorway {
  position: absolute; bottom: 0; left: 50%; width: 80px; height: 100%;
  transform: translateX(-50%); background: linear-gradient(180deg, #5e4a36 0%, #2a1a0e 100%);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
  animation: fsn-door 14s ease-in-out infinite;
}
.scn-first-sight-of-negress .exotic-plant {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4caf50 0%, #2e7d32 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform: rotate(-10deg);
  animation: fsn-plant 8s ease-in-out infinite alternate;
}
.scn-first-sight-of-negress .figure-profile {
  position: absolute; bottom: 10%; left: 35%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 40% 50% 40% 40% / 50% 60% 40% 40%;
  transform: rotate(5deg); animation: fsn-figure 6s ease-in-out infinite;
}
.scn-first-sight-of-negress .light-ray {
  position: absolute; top: 0; width: 8px; height: 90%;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%);
  filter: blur(2px); transform-origin: top;
}
.scn-first-sight-of-negress .ray-1 { left: 25%; animation: fsn-ray1 5s ease-in-out infinite alternate; }
.scn-first-sight-of-negress .ray-2 { right: 30%; animation: fsn-ray2 7s ease-in-out infinite alternate; }
.scn-first-sight-of-negress .shadow-pool {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: fsn-shadow 12s ease-in-out infinite;
}
@keyframes fsn-wall { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes fsn-door { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes fsn-plant { 0% { transform: rotate(-10deg) } 100% { transform: rotate(5deg) } }
@keyframes fsn-figure { 0% { transform: rotate(5deg) translate(0,0) } 33% { transform: rotate(2deg) translate(4px,-2px) } 66% { transform: rotate(8deg) translate(-2px,1px) } 100% { transform: rotate(5deg) translate(0,0) } }
@keyframes fsn-ray1 { 0% { transform: rotate(-5deg) scaleY(1) } 100% { transform: rotate(5deg) scaleY(1.2) } }
@keyframes fsn-ray2 { 0% { transform: rotate(3deg) scaleY(1) } 100% { transform: rotate(-3deg) scaleY(0.9) } }
@keyframes fsn-shadow { 0%,100% { opacity: 0.3 } 50% { opacity: 0.5 } }

.scn-story-of-poor-woman {
  background: 
    linear-gradient(180deg, #1c1a24 0%, #2a2535 40%, #3a2e3e 100%),
    radial-gradient(ellipse at 50% 30%, #3a2e3e 0%, transparent 70%);
}
.scn-story-of-poor-woman .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2535 0%, #1a1620 100%);
  animation: pow-wall 12s ease-in-out infinite alternate;
}
.scn-story-of-poor-woman .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2030 0%, #0e0c12 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.6);
}
.scn-story-of-poor-woman .doorway {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 120px;
  background: #0a0810;
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 10px 2px rgba(255,220,140,.05);
  animation: pow-door 8s ease-in-out infinite;
}
.scn-story-of-poor-woman .lamp-glow {
  position: absolute; bottom: 45%; left: 50%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0c040 0%, #b08030 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(240,192,64,.3), 0 0 80px 20px rgba(240,192,64,.1);
  animation: pow-lamp 3s ease-in-out infinite alternate;
}
.scn-story-of-poor-woman .figure-silhouette {
  position: absolute; bottom: 18%; left: 45%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #0a0810 0%, #1a1420 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pow-figure 6s ease-in-out infinite;
}
.scn-story-of-poor-woman .rags {
  position: absolute; bottom: 12%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a2a30 0%, #1a1218 100%);
  border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%;
  filter: blur(1px);
}
.scn-story-of-poor-woman .rags-a {
  left: 25%;
  animation: pow-rags-a 5s ease-in-out infinite alternate;
}
.scn-story-of-poor-woman .rags-b {
  left: 55%;
  animation: pow-rags-b 7s ease-in-out infinite alternate;
}
.scn-story-of-poor-woman .rag-shadow {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: pow-shadow 9s ease-in-out infinite;
}
@keyframes pow-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes pow-door { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes pow-lamp { 0% { opacity: .6; box-shadow: 0 0 30px 6px rgba(240,192,64,.2), 0 0 60px 12px rgba(240,192,64,.08) } 50% { opacity: 1; box-shadow: 0 0 50px 15px rgba(240,192,64,.4), 0 0 100px 25px rgba(240,192,64,.15) } 100% { opacity: .7; box-shadow: 0 0 35px 8px rgba(240,192,64,.25), 0 0 70px 15px rgba(240,192,64,.1) } }
@keyframes pow-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(0) } 100% { transform: translateX(12px) translateY(0) rotate(1deg) } }
@keyframes pow-rags-a { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(5deg) } 100% { transform: translateX(2px) rotate(-3deg) } }
@keyframes pow-rags-b { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(-4deg) } 100% { transform: translateX(-2px) rotate(2deg) } }
@keyframes pow-shadow { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .4 } }

.scn-admitting-the-desperate {
  background: 
    linear-gradient(180deg, #1e1a26 0%, #2c2434 50%, #3c3044 100%),
    radial-gradient(ellipse at 40% 60%, #3c3044 0%, transparent 70%);
}
.scn-admitting-the-desperate .room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2c2434 0%, #1a1620 100%);
  animation: dtp-room 10s ease-in-out infinite alternate;
}
.scn-admitting-the-desperate .counter {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 8px;
  background: linear-gradient(90deg, #4a3a4a 0%, #5a4a5a 50%, #4a3a4a 100%);
  border-radius: 2px;
  box-shadow: 0 20px 30px rgba(0,0,0,.5);
  animation: dtp-counter 7s ease-in-out infinite;
}
.scn-admitting-the-desperate .figure-guide {
  position: absolute; bottom: 15%; right: 25%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #0e0c14 0%, #1a1622 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dtp-guide 8s ease-in-out infinite;
}
.scn-admitting-the-desperate .figure-visitor {
  position: absolute; bottom: 15%; left: 30%; width: 22px; height: 64px;
  background: linear-gradient(180deg, #0a0810 0%, #14121a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dtp-visitor 6s ease-in-out infinite;
}
.scn-admitting-the-desperate .hand-pointing {
  position: absolute; bottom: 42%; right: 38%; width: 18px; height: 14px;
  background: linear-gradient(180deg, #1c1828 0%, #0e0c18 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 50% 40%;
  transform: rotate(-15deg);
  animation: dtp-hand 4s ease-in-out infinite alternate;
}
.scn-admitting-the-desperate .lamp {
  position: absolute; bottom: 60%; left: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, #d0b060 0%, #907040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(208,176,96,.3), 0 0 60px 16px rgba(208,176,96,.1);
  animation: dtp-lamp 4s ease-in-out infinite alternate;
}
.scn-admitting-the-desperate .shadow {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: dtp-shadow 9s ease-in-out infinite;
}
@keyframes dtp-room { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes dtp-counter { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes dtp-guide { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(-4px) translateY(0) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(0) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes dtp-visitor { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(3px) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(6px) translateY(0) rotate(1deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(0) } 100% { transform: translateX(12px) translateY(0) rotate(-1deg) } }
@keyframes dtp-hand { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-5px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes dtp-lamp { 0% { opacity: .6; box-shadow: 0 0 20px 4px rgba(208,176,96,.2), 0 0 40px 8px rgba(208,176,96,.08) } 50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(208,176,96,.4), 0 0 80px 20px rgba(208,176,96,.15) } 100% { opacity: .7; box-shadow: 0 0 25px 6px rgba(208,176,96,.25), 0 0 50px 12px rgba(208,176,96,.1) } }
@keyframes dtp-shadow { 0% { opacity: .4 } 50% { opacity: .7 } 100% { opacity: .5 } }

.scn-annihilation-chamber {
  background: 
    linear-gradient(180deg, #0e1024 0%, #181c38 40%, #22284a 100%),
    radial-gradient(ellipse at 50% 40%, #22284a 0%, transparent 60%);
}
.scn-annihilation-chamber .corridor {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #12162a 0%, #1c2240 40%, #2a3060 100%);
  animation: ach-corridor 15s ease-in-out infinite alternate;
}
.scn-annihilation-chamber .panes {
  position: absolute; top: 10%; bottom: 10%; width: 15%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.15) 0%, transparent 70%);
  border-radius: 10%;
  filter: blur(2px);
  mix-blend-mode: screen;
}
.scn-annihilation-chamber .pane-blue {
  left: 15%;
  background: radial-gradient(ellipse, #6a9fcf 0%, transparent 70%);
  animation: ach-pane-blue 6s ease-in-out infinite alternate;
}
.scn-annihilation-chamber .pane-pink {
  left: 40%;
  background: radial-gradient(ellipse, #d47a9a 0%, transparent 70%);
  animation: ach-pane-pink 5s ease-in-out infinite alternate;
}
.scn-annihilation-chamber .pane-green {
  left: 65%;
  background: radial-gradient(ellipse, #7aae7a 0%, transparent 70%);
  animation: ach-pane-green 7s ease-in-out infinite alternate;
}
.scn-annihilation-chamber .pelmet {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #1a1e3a 0%, #0e1020 100%);
  border-radius: 20% 20% 10% 10% / 80% 80% 20% 20%;
}
.scn-annihilation-chamber .figure-shadow {
  position: absolute; bottom: 5%; left: 30%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #0a0c1a 0%, #12162a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ach-figure 8s ease-in-out infinite;
}
.scn-annihilation-chamber .floor-reflect {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1c2240 0%, #0a0c18 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: ach-reflect 20s ease-in-out infinite alternate;
}
.scn-annihilation-chamber .light-flicker {
  position: absolute; top: 20%; left: 20%; right: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.03) 0%, transparent 70%);
  animation: ach-flicker 0.8s steps(2, start) infinite;
}
@keyframes ach-corridor { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes ach-pane-blue { 0% { opacity: .3; transform: scale(0.95) } 50% { opacity: .6; transform: scale(1.1) } 100% { opacity: .4; transform: scale(1) } }
@keyframes ach-pane-pink { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .7; transform: scale(0.9) } 100% { opacity: .5; transform: scale(1.05) } }
@keyframes ach-pane-green { 0% { opacity: .2; transform: scale(1.05) } 50% { opacity: .5; transform: scale(0.95) } 100% { opacity: .3; transform: scale(1) } }
@keyframes ach-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(2px) translateY(-3px) rotate(-1deg) } 50% { transform: translateX(4px) translateY(0) rotate(1deg) } 75% { transform: translateX(6px) translateY(-2px) rotate(0) } 100% { transform: translateX(8px) translateY(0) rotate(-1deg) } }
@keyframes ach-reflect { 0% { opacity: .2 } 50% { opacity: .4 } 100% { opacity: .3 } }
@keyframes ach-flicker { 0% { opacity: .05 } 100% { opacity: .15 } }

.scn-salon-with-vichy-pastilles {
  background: 
    linear-gradient(180deg, #fdf6e3 0%, #f5ebd0 40%, #e8d8b8 100%),
    radial-gradient(ellipse at 50% 30%, #fdf6e3 0%, transparent 60%);
}
.scn-salon-with-vichy-pastilles .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0e6d0 0%, #dacbb0 100%);
  box-shadow: inset 0 0 40px rgba(180,140,100,.15);
}
.scn-salon-with-vichy-pastilles .divan {
  position: absolute; bottom: 15%; left: 10%; right: 40%; height: 35%;
  background: linear-gradient(180deg, #c8a8a0 0%, #a08078 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 30% 30%;
  box-shadow: 0 10px 20px rgba(0,0,0,.1);
  animation: svp-divan 10s ease-in-out infinite alternate;
}
.scn-salon-with-vichy-pastilles .palm {
  position: absolute; bottom: 20%; right: 8%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #4a7a4a 0%, #2a5a2a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(-5deg);
  animation: svp-palm 15s ease-in-out infinite alternate;
}
.scn-salon-with-vichy-pastilles .table {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #e8c8a0 0%, #c0a080 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 8px 15px rgba(0,0,0,.08);
  animation: svp-table 8s ease-in-out infinite;
}
.scn-salon-with-vichy-pastilles .bonbonniere {
  position: absolute; bottom: 32%; left: 38%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #e0c0a8 0%, #c0a080 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
  animation: svp-bonbon 12s ease-in-out infinite;
}
.scn-salon-with-vichy-pastilles .pastille {
  position: absolute; bottom: 30%; width: 8px; height: 8px;
  border-radius: 50%;
  background: radial-gradient(circle, #f0a0a0 0%, #d08080 100%);
  box-shadow: 0 0 4px rgba(208,128,128,.3);
}
.scn-salon-with-vichy-pastilles .pastille-1 {
  left: 36%;
  animation: svp-pastille-1 6s ease-in-out infinite alternate;
}
.scn-salon-with-vichy-pastilles .pastille-2 {
  left: 40%;
  background: radial-gradient(circle, #a0c0e0 0%, #80a0c0 100%);
  animation: svp-pastille-2 7s ease-in-out infinite alternate;
}
.scn-salon-with-vichy-pastilles .roses {
  position: absolute; bottom: 28%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d09090 0%, #b07070 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: svp-roses 20s ease-in-out infinite alternate;
}
.scn-salon-with-vichy-pastilles .books {
  position: absolute; bottom: 25%; left: 15%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8b090 0%, #a88868 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 2px 2px 6px rgba(0,0,0,.1);
  animation: svp-books 9s ease-in-out infinite;
}
@keyframes svp-divan { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes svp-palm { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(-3deg) scale(1.02) } 100% { transform: rotate(-7deg) scale(0.98) } }
@keyframes svp-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes svp-bonbon { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes svp-pastille-1 { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.2) } 100% { transform: translateY(1px) scale(0.9) } }
@keyframes svp-pastille-2 { 0% { transform: translateY(0) scale(0.9) } 50% { transform: translateY(-3px) scale(1.1) } 100% { transform: translateY(1px) scale(1) } }
@keyframes svp-roses { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes svp-books { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }

.scn-item-mignonette-couch {
  background:
    linear-gradient(135deg, #3a2a1a 0%, #5a3a2a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 30% 40%, #8a6a4a 0%, transparent 60%);
}
.scn-item-mignonette-couch .bg-wall {
  position:absolute; inset:0; background:linear-gradient(180deg, #4a3a2a 0%, transparent 100%); animation: mpc-wall 12s ease-in-out infinite alternate;
}
.scn-item-mignonette-couch .shrub {
  position:absolute; left:5%; bottom:20%; width:28%; height:50%; background:radial-gradient(ellipse at 50% 60%, #2a5a2a 0%, #1a3a1a 70%, transparent 100%); border-radius:50%; filter:blur(2px); animation: mpc-sway 8s ease-in-out infinite alternate;
}
.scn-item-mignonette-couch .couch {
  position:absolute; left:35%; bottom:10%; width:50%; height:40%; background:linear-gradient(135deg, #f5f0e8 0%, #e8ddd0 40%, #d4c8b8 100%); border-radius:20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow:0 -8px 20px rgba(0,0,0,0.4), inset 0 10px 20px rgba(255,255,240,0.3); animation: mpc-couch 6s ease-in-out infinite;
}
.scn-item-mignonette-couch .cushion {
  position:absolute; left:40%; bottom:30%; width:30%; height:18%; background:linear-gradient(180deg, #faf5ee 0%, #e8ddd0 100%); border-radius:20% 20% 10% 10% / 50% 50% 10% 10%; box-shadow:inset 0 4px 8px rgba(0,0,0,0.1); animation: mpc-cushion 6s ease-in-out infinite 2s;
}
.scn-item-mignonette-couch .mignonette {
  position:absolute; left:45%; bottom:0%; width:20%; height:12%; background:radial-gradient(circle at 50% 50%, #c8a060 0%, #a08040 30%, #806030 60%, transparent 70%); border-radius:50%; box-shadow:0 -4px 12px rgba(200,160,96,0.5); animation: mpc-bloom 10s ease-in-out infinite alternate;
}
.scn-item-mignonette-couch .glow {
  position:absolute; left:20%; top:10%; width:40%; height:50%; background:radial-gradient(ellipse at 50% 30%, rgba(200,180,120,0.2) 0%, transparent 70%); pointer-events:none; animation: mpc-glow 4s ease-in-out infinite alternate;
}
@keyframes mpc-wall { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes mpc-sway { 0% { transform:translateX(0) rotate(-1deg) } 100% { transform:translateX(4px) rotate(2deg) } }
@keyframes mpc-couch { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes mpc-cushion { 0%,100% { transform:scale(1) } 50% { transform:scale(1.02) } }
@keyframes mpc-bloom { 0% { transform:scale(0.95); opacity:0.7 } 100% { transform:scale(1.05); opacity:1 } }
@keyframes mpc-glow { 0% { opacity:0.3 } 100% { opacity:0.6 } }

.scn-inhaling-the-gas {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1a1a2a 100%),
    radial-gradient(ellipse at 60% 50%, #3a3a5e 0%, transparent 70%);
}
.scn-inhaling-the-gas .bg {
  position:absolute; inset:0; background:linear-gradient(180deg, #2a2a3e 0%, transparent 100%); animation: itg-bg 15s ease-in-out infinite alternate;
}
.scn-inhaling-the-gas .lamp {
  position:absolute; right:20%; bottom:40%; width:12%; height:35%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 10% 10%; box-shadow:-8px 0 20px rgba(200,160,80,0.3), inset 0 -10px 20px rgba(0,0,0,0.5); animation: itg-lamp 5s ease-in-out infinite alternate;
}
.scn-inhaling-the-gas .vapor {
  position:absolute; left:30%; top:20%; width:40%; height:30%; background:radial-gradient(ellipse at 50% 50%, rgba(200,220,255,0.15) 0%, transparent 70%); filter:blur(10px); animation: itg-vapor 12s ease-in-out infinite alternate;
}
.scn-inhaling-the-gas .table {
  position:absolute; left:10%; bottom:10%; width:80%; height:8%; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:4px; box-shadow:0 -4px 8px rgba(0,0,0,0.6);
}
.scn-inhaling-the-gas .figure {
  position:absolute; left:10%; bottom:12%; width:16%; height:35%; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a16 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: itg-figure 6s ease-in-out infinite;
}
.scn-inhaling-the-gas .vial {
  position:absolute; left:40%; bottom:20%; width:8%; height:12%; background:linear-gradient(135deg, #c0d0e0 0%, #8090a0 100%); border-radius:30% 30% 20% 20%; box-shadow:inset -2px -2px 6px rgba(0,0,0,0.3), 0 0 12px rgba(192,208,224,0.4); animation: itg-vial 8s ease-in-out infinite;
}
@keyframes itg-bg { 0%,100% { opacity:0.8 } 50% { opacity:0.95 } }
@keyframes itg-lamp { 0% { filter:brightness(1); box-shadow:-8px 0 20px rgba(200,160,80,0.3) } 100% { filter:brightness(0.85); box-shadow:-8px 0 20px rgba(200,160,80,0.5) } }
@keyframes itg-vapor { 0% { transform:translate(0,0) scale(1); opacity:0.3 } 50% { transform:translate(10px,-20px) scale(1.2); opacity:0.6 } 100% { transform:translate(-5px,-10px) scale(0.9); opacity:0.4 } }
@keyframes itg-figure { 0%,100% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(8px) rotate(1deg) } }
@keyframes itg-vial { 0%,100% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } }

.scn-first-asphyxiation {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 40%, #3a3a50 0%, transparent 70%);
}
.scn-first-asphyxiation .bg-floor {
  position:absolute; inset:0; background:linear-gradient(180deg, transparent 0%, #0a0a12 100%); animation: fas-floor 10s ease-in-out infinite alternate;
}
.scn-first-asphyxiation .couch-top {
  position:absolute; left:10%; bottom:5%; width:80%; height:55%; background:linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow:inset 0 10px 30px rgba(0,0,0,0.4); animation: fas-couch 8s ease-in-out infinite;
}
.scn-first-asphyxiation .figure-lying {
  position:absolute; left:25%; bottom:20%; width:20%; height:35%; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a16 100%); border-radius:50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin:bottom center; animation: fas-figure 6s ease-in-out infinite;
}
.scn-first-asphyxiation .pillow {
  position:absolute; left:20%; bottom:50%; width:14%; height:12%; background:radial-gradient(ellipse at 50% 50%, #e8ddd0 0%, #c8b8a8 100%); border-radius:50%; box-shadow:inset 0 -4px 8px rgba(0,0,0,0.2); animation: fas-pillow 6s ease-in-out infinite 1s;
}
.scn-first-asphyxiation .mignonette-bed {
  position:absolute; left:55%; bottom:5%; width:18%; height:10%; background:radial-gradient(circle at 50% 50%, #b8a060 0%, #8a7040 40%, transparent 60%); border-radius:50%; animation: fas-mignonette 12s ease-in-out infinite alternate;
}
.scn-first-asphyxiation .blur-overlay {
  position:absolute; inset:0; background:radial-gradient(ellipse at 50% 40%, rgba(200,180,200,0.1) 0%, transparent 70%); filter:blur(6px); animation: fas-blur 14s ease-in-out infinite alternate;
}
.scn-first-asphyxiation .gas-cloud {
  position:absolute; left:30%; top:10%; width:40%; height:30%; background:radial-gradient(ellipse at 50% 50%, rgba(200,220,255,0.12) 0%, transparent 70%); filter:blur(12px); animation: fas-gas 20s ease-in-out infinite alternate;
}
@keyframes fas-floor { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes fas-couch { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes fas-figure { 0%,100% { transform:rotate(0deg) scaleY(1) } 50% { transform:rotate(2deg) scaleY(1.02) } }
@keyframes fas-pillow { 0% { transform:scale(1) } 50% { transform:scale(1.05) } 100% { transform:scale(1) } }
@keyframes fas-mignonette { 0% { transform:scale(0.9); opacity:0.6 } 100% { transform:scale(1.1); opacity:1 } }
@keyframes fas-blur { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes fas-gas { 0% { transform:translate(0,0) scale(1); opacity:0.2 } 50% { transform:translate(10px,-15px) scale(1.3); opacity:0.4 } 100% { transform:translate(-5px,5px) scale(0.8); opacity:0.25 } }

.scn-dream-interrupted {
  background:
    linear-gradient(180deg, #f5e8c0 0%, #e8d8a0 30%, #c8b080 100%),
    radial-gradient(ellipse at 30% 40%, #ffe8a0 0%, transparent 70%);
}
.scn-dream-interrupted .bg-morning {
  position:absolute; inset:0; background:linear-gradient(180deg, #fff8e0 0%, #f0e0b0 100%); animation: din-bright 6s ease-in-out infinite alternate;
}
.scn-dream-interrupted .window-frame {
  position:absolute; left:5%; top:5%; width:40%; height:80%; border:8px solid #6a5a3a; border-radius:8px; background:radial-gradient(ellipse at 50% 30%, #ffd0a0 0%, #f0c080 100%); box-shadow:inset 0 0 20px rgba(255,200,100,0.4); animation: din-window 10s ease-in-out infinite alternate;
}
.scn-dream-interrupted .sunbeam {
  position:absolute; left:10%; top:0%; width:30%; height:100%; background:linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 100%); transform:rotate(20deg); transform-origin:left top; animation: din-sunbeam 20s linear infinite;
}
.scn-dream-interrupted .figure-secretary {
  position:absolute; right:15%; bottom:15%; width:18%; height:45%; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: din-secretary 4s ease-in-out infinite alternate;
}
.scn-dream-interrupted .dreamer-sitting {
  position:absolute; left:30%; bottom:5%; width:25%; height:40%; background:linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: din-dreamer 3s ease-in-out infinite;
}
.scn-dream-interrupted .dust-motes {
  position:absolute; left:20%; top:20%; width:60%; height:50%; background:radial-gradient(circle at 30% 40%, rgba(255,240,200,0.1) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(255,240,200,0.08) 0%, transparent 50%); filter:blur(2px); animation: din-dust 15s linear infinite;
}
.scn-dream-interrupted .bed-frame {
  position:absolute; left:10%; bottom:0%; width:60%; height:15%; background:linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:20% 20% 0 0 / 40% 40% 0 0; box-shadow:0 -4px 12px rgba(0,0,0,0.3);
}
@keyframes din-bright { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes din-window { 0% { filter:brightness(1) } 100% { filter:brightness(1.15) } }
@keyframes din-sunbeam { 0% { transform:rotate(15deg) translateX(-10px); opacity:0.6 } 50% { transform:rotate(25deg) translateX(10px); opacity:1 } 100% { transform:rotate(15deg) translateX(-10px); opacity:0.6 } }
@keyframes din-secretary { 0% { transform:translateX(0) rotate(0deg) } 100% { transform:translateX(6px) rotate(2deg) } }
@keyframes din-dreamer { 0%,100% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-4px) rotate(3deg) } }
@keyframes din-dust { 0% { transform:translateY(0) } 100% { transform:translateY(-30px) } }

/* boitelle-aftermath */
.scn-boitelle-aftermath {
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 60%, #050510 100%);
}
.scn-boitelle-aftermath .bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 70%);
}
.scn-boitelle-aftermath .window {
  position:absolute; top:10%; left:15%; width:40%; height:35%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius:2% 2% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); animation: bo-win 12s ease-in-out infinite alternate;
}
.scn-boitelle-aftermath .figure {
  position:absolute; bottom:18%; left:35%; width:20%; height:40%; background: linear-gradient(180deg, #0a0a1a 0%, #15152a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bo-fig 5s ease-in-out infinite;
}
.scn-boitelle-aftermath .table {
  position:absolute; bottom:10%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-boitelle-aftermath .lamp {
  position:absolute; bottom:20%; left:35%; width:6%; height:6%; background: radial-gradient(circle, #c08040 0%, #5a3a1a 70%); border-radius:50%; box-shadow: 0 0 20px 6px #8a5a2a, 0 0 40px 12px rgba(138,90,42,.5); animation: bo-lamp 3s ease-in-out infinite alternate;
}
.scn-boitelle-aftermath .shadow {
  position:absolute; bottom:5%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: bo-shadow 8s ease-in-out infinite alternate;
}
@keyframes bo-win {
  0% { opacity:.6; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
  50% { opacity:.8; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
  100% { opacity:.5; box-shadow: inset 0 0 10px rgba(0,0,0,.3); }
}
@keyframes bo-fig {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(-2px) rotate(0); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes bo-lamp {
  0% { box-shadow: 0 0 10px 3px #8a5a2a, 0 0 20px 6px rgba(138,90,42,.3); opacity:.8; }
  50% { box-shadow: 0 0 30px 8px #c08040, 0 0 50px 15px rgba(192,128,64,.5); opacity:1; }
  100% { box-shadow: 0 0 15px 4px #8a5a2a, 0 0 30px 8px rgba(138,90,42,.4); opacity:.9; }
}
@keyframes bo-shadow {
  0% { transform: scaleX(1) translateX(0); opacity:.6; }
  50% { transform: scaleX(1.1) translateX(5px); opacity:.4; }
  100% { transform: scaleX(0.95) translateX(-3px); opacity:.7; }
}

/* hunting-party-intro */
.scn-hunting-party-intro {
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 40%, #2a3a3a 100%);
}
.scn-hunting-party-intro .bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 0%, #5a6a6a 0%, transparent 70%);
}
.scn-hunting-party-intro .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-hunting-party-intro .figure.left {
  position:absolute; bottom:30%; left:20%; width:12%; height:30%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hi-fig-l 6s ease-in-out infinite;
}
.scn-hunting-party-intro .figure.right {
  position:absolute; bottom:30%; right:25%; width:12%; height:30%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hi-fig-r 7s ease-in-out infinite 1s;
}
.scn-hunting-party-intro .dog {
  position:absolute; bottom:30%; left:35%; width:8%; height:16%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: hi-dog 4s ease-in-out infinite alternate;
}
.scn-hunting-party-intro .trees {
  position:absolute; bottom:30%; left:5%; width:1.5%; height:40%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 10px 0 0 #1a2a1a, 20px 0 0 #1a2a1a, 30px 0 0 #1a2a1a, -10px 0 0 #1a2a1a; animation: hi-trees 15s ease-in-out infinite alternate;
}
.scn-hunting-party-intro .rain {
  position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 8px, rgba(255,255,255,.1) 8px, rgba(255,255,255,.1) 10px); animation: hi-rain 4s linear infinite;
}
@keyframes hi-fig-l {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(5px) rotate(-1deg); }
  75% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hi-fig-r {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-4px) rotate(-2deg); }
  60% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hi-dog {
  0% { transform: translateX(0) translateY(0); }
  33% { transform: translateX(8px) translateY(-2px); }
  66% { transform: translateX(16px) translateY(0); }
  100% { transform: translateX(24px) translateY(-1px); }
}
@keyframes hi-trees {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes hi-rain {
  0% { background-position: 0 0; }
  100% { background-position: 0 20px; }
}

/* after-dinner-boredom */
.scn-after-dinner-boredom {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 60%, #0a0505 100%);
}
.scn-after-dinner-boredom .bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #3a1a1a 0%, transparent 70%);
}
.scn-after-dinner-boredom .window {
  position:absolute; top:5%; right:10%; width:30%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:2% 2% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.8); animation: ad-win 10s ease-in-out infinite alternate;
}
.scn-after-dinner-boredom .table {
  position:absolute; bottom:15%; left:10%; width:80%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 10px rgba(0,0,0,.6);
}
.scn-after-dinner-boredom .cards {
  position:absolute; bottom:22%; left:20%; width:15%; height:10%; background: radial-gradient(ellipse, #4a3a2a 0%, #2a1a0a 100%); border-radius:8%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: ad-cards 3s ease-in-out infinite alternate;
}
.scn-after-dinner-boredom .candle {
  position:absolute; bottom:28%; left:45%; width:4%; height:8%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 12px 4px #c08040; animation: ad-candle 4s ease-in-out infinite alternate;
}
.scn-after-dinner-boredom .shadow-1 {
  position:absolute; bottom:5%; left:10%; width:40%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, transparent 100%); border-radius:50%; filter: blur(12px); animation: ad-sh1 6s ease-in-out infinite alternate;
}
.scn-after-dinner-boredom .shadow-2 {
  position:absolute; bottom:5%; right:10%; width:40%; height:25%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); border-radius:50%; filter: blur(10px); animation: ad-sh2 8s ease-in-out infinite alternate;
}
@keyframes ad-win {
  0% { opacity:.5; transform: skewX(0deg); }
  25% { opacity:.7; transform: skewX(2deg); }
  50% { opacity:.4; transform: skewX(-1deg); }
  75% { opacity:.8; transform: skewX(1deg); }
  100% { opacity:.6; transform: skewX(0deg); }
}
@keyframes ad-cards {
  0% { transform: translateY(0) rotate(-2deg); opacity:.7; }
  50% { transform: translateY(-2px) rotate(2deg); opacity:1; }
  100% { transform: translateY(0) rotate(-1deg); opacity:.8; }
}
@keyframes ad-candle {
  0% { box-shadow: 0 0 6px 2px #c08040, 0 0 16px 4px rgba(192,128,64,.3); height:7%; }
  50% { box-shadow: 0 0 16px 6px #e0a060, 0 0 30px 10px rgba(224,160,96,.5); height:9%; }
  100% { box-shadow: 0 0 8px 3px #c08040, 0 0 20px 6px rgba(192,128,64,.4); height:8%; }
}
@keyframes ad-sh1 {
  0% { transform: scaleX(1) translateX(0); opacity:.5; }
  50% { transform: scaleX(1.2) translateX(10px); opacity:.3; }
  100% { transform: scaleX(0.9) translateX(-5px); opacity:.6; }
}
@keyframes ad-sh2 {
  0% { transform: scaleX(1) translateX(0); opacity:.4; }
  50% { transform: scaleX(1.1) translateX(-8px); opacity:.6; }
  100% { transform: scaleX(0.95) translateX(5px); opacity:.3; }
}

/* ring-discovered */
.scn-ring-discovered {
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 60%, #0a050a 100%);
}
.scn-ring-discovered .bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 0%, #3a2a3a 0%, transparent 70%);
}
.scn-ring-discovered .candle {
  position:absolute; top:10%; left:10%; width:4%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 14px 4px #a08050; animation: ri-candle 3s ease-in-out infinite alternate;
}
.scn-ring-discovered .figure-old {
  position:absolute; bottom:15%; left:20%; width:25%; height:55%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri-old 8s ease-in-out infinite alternate;
}
.scn-ring-discovered .figure-young {
  position:absolute; bottom:15%; right:20%; width:22%; height:55%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri-young 6s ease-in-out infinite alternate;
}
.scn-ring-discovered .hand {
  position:absolute; bottom:30%; left:38%; width:12%; height:10%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 30% 30% 40%; transform: rotate(-15deg); animation: ri-hand 4s ease-in-out infinite alternate;
}
.scn-ring-discovered .ring-glow {
  position:absolute; bottom:31%; left:41%; width:4%; height:4%; background: radial-gradient(circle, #c0a060 0%, #806030 70%); border-radius:50%; box-shadow: 0 0 20px 6px #a08040, 0 0 40px 12px rgba(160,128,64,.5); animation: ri-ring 2s ease-in-out infinite alternate;
}
@keyframes ri-candle {
  0% { box-shadow: 0 0 8px 2px #a08050, 0 0 16px 4px rgba(160,128,80,.3); height:11%; }
  50% { box-shadow: 0 0 20px 8px #c0a060, 0 0 35px 12px rgba(192,160,96,.5); height:13%; }
  100% { box-shadow: 0 0 12px 4px #a08050, 0 0 24px 6px rgba(160,128,80,.4); height:12%; }
}
@keyframes ri-old {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ri-young {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  33% { transform: translateX(5px) translateY(-3px) rotate(3deg); }
  66% { transform: translateX(10px) translateY(0) rotate(-2deg); }
  100% { transform: translateX(5px) translateY(-1px) rotate(1deg); }
}
@keyframes ri-hand {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-10deg) scale(1.05); }
  100% { transform: rotate(-18deg) scale(0.98); }
}
@keyframes ri-ring {
  0% { box-shadow: 0 0 10px 2px #a08040, 0 0 20px 5px rgba(160,128,64,.3); opacity:.7; }
  50% { box-shadow: 0 0 30px 10px #d0b060, 0 0 60px 18px rgba(208,176,96,.6); opacity:1; }
  100% { box-shadow: 0 0 15px 4px #a08040, 0 0 30px 8px rgba(160,128,64,.4); opacity:.8; }
}

.scn-cat-attacks-lover {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-cat-attacks-lover .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a3e 0%, #12122a 100%);
  animation: cal-wall 12s ease-in-out infinite alternate;
}
.scn-cat-attacks-lover .window {
  position: absolute; top: 15%; left: 60%; width: 90px; height: 120px;
  background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3e 100%);
  border: 4px solid #3a3a5e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: cal-window 8s ease-in-out infinite alternate;
}
.scn-cat-attacks-lover .moonlight {
  position: absolute; top: 15%; left: 60%; width: 90px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,200,255,0.15) 0%, transparent 80%);
  filter: blur(8px); animation: cal-moon 14s ease-in-out infinite alternate;
}
.scn-cat-attacks-lover .couple {
  position: absolute; bottom: 24%; left: 30%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cal-couple 4s ease-in-out infinite;
}
.scn-cat-attacks-lover .cat {
  position: absolute; bottom: 40%; left: 35%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40%; transform: rotate(-30deg);
  animation: cal-cat 0.8s ease-in-out infinite alternate;
}
.scn-cat-attacks-lover .lamp {
  position: absolute; bottom: 22%; left: 12%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 0 12px 2px rgba(200,150,80,0.3);
  animation: cal-lamp 6s ease-in-out infinite alternate;
}
.scn-cat-attacks-lover .glow {
  position: absolute; bottom: 22%; left: 12%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,150,80,0.2) 0%, transparent 70%);
  filter: blur(12px); animation: cal-glow 6s ease-in-out infinite alternate;
}
@keyframes cal-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cal-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes cal-moon { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes cal-couple { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cal-cat { 0% { transform: translateY(0) rotate(-30deg) scale(1); } 100% { transform: translateY(-10px) rotate(20deg) scale(1.1); } }
@keyframes cal-lamp { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cal-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(1); } }

.scn-cat-thrown-out {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 100% 50%, #3a3a5e 0%, transparent 70%);
}
.scn-cat-thrown-out .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 100%);
  animation: cth-wall 15s ease-in-out infinite alternate;
}
.scn-cat-thrown-out .window {
  position: absolute; top: 10%; left: 10%; width: 160px; height: 180px;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  border: 4px solid #3a3a5e; border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: cth-window 10s ease-in-out infinite alternate;
}
.scn-cat-thrown-out .sky-outside {
  position: absolute; top: 10%; left: 10%; width: 160px; height: 180px;
  background: radial-gradient(ellipse at 30% 20%, rgba(100,140,200,0.2) 0%, transparent 70%);
  filter: blur(10px); animation: cth-sky 20s linear infinite;
}
.scn-cat-thrown-out .man-silhouette {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #0a0a1a 0%, #12122e 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cth-man 3s ease-in-out infinite;
}
.scn-cat-thrown-out .cat-falling {
  position: absolute; top: 30%; left: 20%; width: 25px; height: 18px;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30%; transform: rotate(40deg);
  animation: cth-catfall 1.5s ease-in-out infinite alternate;
}
.scn-cat-thrown-out .woman {
  position: absolute; bottom: 20%; left: 65%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0a0a1a 0%, #12122e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: cth-woman 4s ease-in-out infinite;
}
.scn-cat-thrown-out .lamp {
  position: absolute; bottom: 15%; left: 55%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a0a 100%);
  border-radius: 4px; box-shadow: 0 0 10px 1px rgba(180,120,60,0.3);
  animation: cth-lamp 7s ease-in-out infinite alternate;
}
@keyframes cth-wall { 0% { opacity: 1; } 50% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes cth-window { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.02) scaleY(1.01); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes cth-sky { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes cth-man { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-5px) rotate(5deg); } 60% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(-2px) rotate(1deg); } }
@keyframes cth-catfall { 0% { transform: translateY(0) rotate(40deg) scale(1); } 50% { transform: translateY(60px) rotate(30deg) scale(0.9); } 100% { transform: translateY(120px) rotate(20deg) scale(0.8); } }
@keyframes cth-woman { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cth-lamp { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

.scn-cat-death-stuffing {
  background: linear-gradient(180deg, #0a0a12 0%, #14141e 50%, #0a0a12 100%),
              radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, transparent 80%);
}
.scn-cat-death-stuffing .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a12 0%, #12121a 100%);
  animation: cds-bg 20s ease-in-out infinite alternate;
}
.scn-cat-death-stuffing .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.8);
  animation: cds-table 18s ease-in-out infinite alternate;
}
.scn-cat-death-stuffing .cat-stuffed {
  position: absolute; bottom: 20%; left: 38%; width: 60px; height: 30px;
  background: linear-gradient(135deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  transform: rotate(-10deg);
  animation: cds-cat 5s ease-in-out infinite;
}
.scn-cat-death-stuffing .woman-hands {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: cds-hands 4s ease-in-out infinite alternate;
}
.scn-cat-death-stuffing .shelf {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.7);
  animation: cds-shelf 12s ease-in-out infinite alternate;
}
.scn-cat-death-stuffing .spotlight {
  position: absolute; top: 0; left: 30%; width: 120px; height: 100%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,120,0.08) 0%, transparent 70%);
  filter: blur(20px); animation: cds-spot 8s ease-in-out infinite alternate;
}
@keyframes cds-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cds-table { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(2px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cds-cat { 0% { transform: translateY(0) rotate(-10deg) scale(1); } 25% { transform: translateY(-2px) rotate(-12deg) scale(1.02); } 50% { transform: translateY(0) rotate(-8deg) scale(1); } 75% { transform: translateY(-1px) rotate(-11deg) scale(1.01); } 100% { transform: translateY(0) rotate(-10deg) scale(1); } }
@keyframes cds-hands { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(5px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes cds-shelf { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cds-spot { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-misti-given-away {
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 50%, #2a2018 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-misti-given-away .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  animation: mga-wall 16s ease-in-out infinite alternate;
}
.scn-misti-given-away .doorway {
  position: absolute; top: 10%; left: 35%; width: 120px; height: 180px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border: 3px solid #3a2a1a; border-radius: 8px;
  animation: mga-door 20s ease-in-out infinite alternate;
}
.scn-misti-given-away .woman {
  position: absolute; bottom: 20%; left: 38%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: mga-woman 6s ease-in-out infinite;
}
.scn-misti-given-away .box {
  position: absolute; bottom: 18%; left: 48%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: mga-box 4s ease-in-out infinite alternate;
}
.scn-misti-given-away .cat-inside {
  position: absolute; bottom: 22%; left: 52%; width: 20px; height: 15px;
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: mga-cat 3s ease-in-out infinite alternate;
}
.scn-misti-given-away .lamp {
  position: absolute; bottom: 25%; left: 55%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 0 20px 4px rgba(200,160,100,0.3);
  animation: mga-lamp 8s ease-in-out infinite alternate;
}
.scn-misti-given-away .carpet {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  animation: mga-carpet 12s ease-in-out infinite alternate;
}
@keyframes mga-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes mga-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes mga-woman { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mga-box { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes mga-cat { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-4px) scale(0.95); opacity: 0.7; } }
@keyframes mga-lamp { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mga-carpet { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }

/* one block per scene id. Append to style.css. */

.scn-after-tavern-scape { background: linear-gradient(180deg, #1a1410 0%, #2e221a 40%, #3a2a1e 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-after-tavern-escape .street-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1e14 0%, #1a120e 100%); animation: ate-street 15s ease-in-out infinite alternate; }
.scn-after-tavern-escape .tavern-door { position:absolute; bottom:30%; left:20%; width:70px; height:120px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(255,180,80,.2); }
.scn-after-tavern-escape .door-glow { position:absolute; bottom:32%; left:20%; width:70px; height:80px; background: radial-gradient(ellipse at 50% 80%, #ffb060 0%, rgba(255,176,96,0) 70%); opacity:.6; animation: ate-glow 4s ease-in-out infinite alternate; }
.scn-after-tavern-escape .lamp-post { position:absolute; bottom:25%; right:30%; width:8px; height:120px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 2px; }
.scn-after-tavern-escape .lamp-glow { position:absolute; bottom:38%; right:27%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0) 60%); box-shadow: 0 0 30px 15px rgba(255,208,128,.4); animation: ate-lamp 6s ease-in-out infinite alternate; }
.scn-after-tavern-escape .figure-woman { position:absolute; bottom:25%; left:35%; width:20px; height:45px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ate-walk-w 5s ease-in-out infinite; }
.scn-after-tavern-escape .figure-man { position:absolute; bottom:25%; left:30%; width:22px; height:50px; background: linear-gradient(180deg, #0e0a06 0%, #060402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ate-walk-m 5s ease-in-out infinite 0.3s; opacity:.9; }
.scn-after-tavern-escape .shadow-lamp { position:absolute; bottom:28%; right:32%; width:30px; height:15px; background: radial-gradient(ellipse, #000 0%, transparent 70%); opacity:.4; animation: ate-shadow 6s ease-in-out infinite alternate; }
@keyframes ate-street { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ate-glow { 0% { opacity:.4; transform: scale(.95) } 50% { opacity:.7; transform: scale(1.05) } 100% { opacity:.5; transform: scale(1) } }
@keyframes ate-lamp { 0% { opacity:.6; transform: scale(.9) } 50% { opacity:.9; transform: scale(1.1) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes ate-walk-w { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes ate-walk-m { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(16px) translateY(0) rotate(1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes ate-shadow { 0% { opacity:.3; transform: scaleX(.8) } 50% { opacity:.5; transform: scaleX(1.2) } 100% { opacity:.4; transform: scaleX(1) } }

.scn-protective-fantasy { background: linear-gradient(180deg, #2e221a 0%, #1e1612 40%, #0e0a08 100%), radial-gradient(ellipse at 50% 60%, #4a3222 0%, transparent 70%); }
.scn-protective-fantasy .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 100%); }
.scn-protective-fantasy .table { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2e1e12 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.5); }
.scn-protective-fantasy .candle { position:absolute; bottom:40%; left:50%; width:8px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a070 0%, #7a5030 100%); border-radius: 2px 2px 4px 4px; }
.scn-protective-fantasy .candle-glow { position:absolute; bottom:45%; left:50%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffc080 0%, rgba(255,192,128,0) 60%); box-shadow: 0 0 40px 20px rgba(255,192,128,.5); animation: pf-glow 3s ease-in-out infinite alternate; }
.scn-protective-fantasy .figure-woman-sit { position:absolute; bottom:18%; left:35%; width:25px; height:40px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pf-sit-w 8s ease-in-out infinite; }
.scn-protective-fantasy .figure-man-sit { position:absolute; bottom:18%; left:55%; width:28px; height:45px; background: linear-gradient(180deg, #0e0a06 0%, #060402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pf-sit-m 8s ease-in-out infinite 0.5s; }
.scn-protective-fantasy .figure-old-woman { position:absolute; bottom:15%; left:10%; width:22px; height:35px; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pf-creep 12s ease-in-out infinite; opacity:.8; }
.scn-protective-fantasy .window-night { position:absolute; top:5%; right:10%; width:60px; height:80px; background: linear-gradient(180deg, #1a2040 0%, #0a0e20 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(255,255,200,.1); animation: pf-night 20s linear infinite; }
@keyframes pf-glow { 0% { opacity:.6; transform: translate(-50%,-50%) scale(.9) } 50% { opacity:1; transform: translate(-50%,-50%) scale(1.1) } 100% { opacity:.8; transform: translate(-50%,-50%) scale(.95) } }
@keyframes pf-sit-w { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes pf-sit-m { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes pf-creep { 0% { transform: translateX(0) translateY(0) } 20% { transform: translateX(10px) translateY(-3px) } 40% { transform: translateX(20px) translateY(-1px) } 60% { transform: translateX(30px) translateY(-4px) } 80% { transform: translateX(40px) translateY(-2px) } 100% { transform: translateX(50px) translateY(0) } }
@keyframes pf-night { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-item-fortune-cards { background: linear-gradient(180deg, #0e0a08 0%, #1e1410 40%, #2a1e18 100%), radial-gradient(ellipse at 50% 30%, #3a2214 0%, transparent 70%); }
.scn-item-fortune-cards .bg-dark { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0604 0%, #1a100e 100%); }
.scn-item-fortune-cards .table-top { position:absolute; bottom:20%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: 0 -6px 15px rgba(0,0,0,.6); }
.scn-item-fortune-cards .candle-fortune { position:absolute; bottom:40%; left:50%; width:6px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c09060 0%, #7a4a2a 100%); border-radius: 2px; }
.scn-item-fortune-cards .candle-glow-fortune { position:absolute; bottom:42%; left:50%; width:30px; height:30px; transform:translate(-50%,-50%); background: radial-gradient(circle, #ffa050 0%, rgba(255,160,80,0) 60%); box-shadow: 0 0 25px 12px rgba(255,160,80,.4); animation: ifc-glow 2s steps(2) infinite; }
.scn-item-fortune-cards .hand-left { position:absolute; bottom:28%; left:25%; width:30px; height:20px; background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-15deg); animation: ifc-hand-l 4s ease-in-out infinite; }
.scn-item-fortune-cards .hand-right { position:absolute; bottom:28%; right:25%; width:30px; height:20px; background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius: 50% 50% 40% 40%; transform: rotate(15deg) scaleX(-1); animation: ifc-hand-r 4s ease-in-out infinite 0.5s; }
.scn-item-fortune-cards .card-pile { position:absolute; bottom:30%; left:50%; width:40px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #e0d0b0 0%, #b8a080 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ifc-pile 8s ease-in-out infinite; }
.scn-item-fortune-cards .card-flying { position:absolute; bottom:35%; left:45%; width:15px; height:8px; background: #dcc8a0; border-radius: 1px; transform: rotate(25deg); animation: ifc-fly 3s ease-in-out infinite; }
@keyframes ifc-glow { 0% { opacity:.4 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes ifc-hand-l { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) } }
@keyframes ifc-hand-r { 0%,100% { transform: rotate(15deg) scaleX(-1) translateY(0) } 50% { transform: rotate(10deg) scaleX(-1) translateY(-3px) } }
@keyframes ifc-pile { 0% { transform: translateX(-50%) scale(1) } 25% { transform: translateX(-50%) scale(1.05) } 50% { transform: translateX(-50%) scale(0.95) } 75% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes ifc-fly { 0% { transform: rotate(25deg) translateX(0) translateY(0) } 25% { transform: rotate(30deg) translateX(10px) translateY(-5px) } 50% { transform: rotate(20deg) translateX(20px) translateY(0) } 75% { transform: rotate(35deg) translateX(30px) translateY(-3px) } 100% { transform: rotate(25deg) translateX(40px) translateY(0) } }

.scn-prediction-of-death { background: linear-gradient(180deg, #0e0806 0%, #1a0e0a 40%, #0a0604 100%), radial-gradient(ellipse at 50% 20%, #2a100a 0%, transparent 70%); }
.scn-prediction-of-death .bg-shadow { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0604 0%, #1a100e 100%); }
.scn-prediction-of-death .cup-saucer { position:absolute; bottom:20%; left:50%; width:70px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #c8b8a0 0%, #a09078 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-prediction-of-death .cup-body { position:absolute; bottom:26%; left:50%; width:50px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #b8a890 0%, #887868 100%); border-radius: 0 0 8px 8px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-prediction-of-death .coffee-grounds { position:absolute; bottom:27%; left:50%; width:30px; height:10px; transform:translateX(-50%); background: radial-gradient(ellipse, #2a1a10 0%, #1a0e08 60%, transparent 70%); border-radius: 50%; animation: pod-grounds 10s ease-in-out infinite; }
.scn-prediction-of-death .steam-1 { position:absolute; bottom:35%; left:48%; width:20px; height:30px; background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 70%); filter: blur(4px); animation: pod-steam 6s ease-in-out infinite; }
.scn-prediction-of-death .steam-2 { position:absolute; bottom:35%; left:54%; width:20px; height:30px; background: radial-gradient(ellipse, rgba(200,180,160,.3) 0%, transparent 70%); filter: blur(4px); animation: pod-steam 6s ease-in-out infinite 3s; }
.scn-prediction-of-death .hand-pointing { position:absolute; bottom:23%; right:30%; width:25px; height:15px; background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-20deg); animation: pod-point 4s ease-in-out infinite; }
.scn-prediction-of-death .candle-death { position:absolute; bottom:40%; left:20%; width:6px; height:25px; background: linear-gradient(180deg, #c09060 0%, #7a4a2a 100%); border-radius: 2px; }
.scn-prediction-of-death .candle-glow-death { position:absolute; bottom:42%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #ffa050 0%, rgba(255,160,80,0) 60%); box-shadow: 0 0 25px 12px rgba(255,160,80,.3); animation: pod-glow 2s steps(3) infinite; }
@keyframes pod-grounds { 0% { transform: translateX(-50%) scale(1) rotate(0) } 50% { transform: translateX(-50%) scale(1.05) rotate(3deg) } 100% { transform: translateX(-50%) scale(1) rotate(0) } }
@keyframes pod-steam { 0% { transform: translateY(0) scale(.8); opacity:.4 } 50% { transform: translateY(-15px) scale(1.2); opacity:.7 } 100% { transform: translateY(-30px) scale(1.5); opacity:0 } }
@keyframes pod-point { 0%,100% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-3px) } }
@keyframes pod-glow { 0% { opacity:.4 } 33% { opacity:.8 } 66% { opacity:.5 } 100% { opacity:.7 } }

.scn-mother-on-balcony {
  background: 
    linear-gradient(180deg, #e8a33c 0%, #c86a2e 30%, #5e2015 60%, #1a0a08 100%),
    radial-gradient(ellipse at 70% 20%, #f8c56a 0%, transparent 50%),
    linear-gradient(180deg, #5e2015 0%, #1a0a08 100%);
}
.scn-mother-on-balcony .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f8d68a 0%, #e8a33c 60%, transparent 100%);
  animation: mob-sky 18s ease-in-out infinite alternate;
}
.scn-mother-on-balcony .sun {
  position: absolute;
  top: 18%;
  right: 20%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, #ffefb0 0%, #f8c56a 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  box-shadow: 0 0 40px 20px rgba(248,197,106,0.6);
  animation: mob-sun 12s ease-in-out infinite;
}
.scn-mother-on-balcony .balcony {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #3a1c10 0%, #1a0a08 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
  animation: mob-balcony 6s ease-in-out infinite alternate;
}
.scn-mother-on-balcony .railing {
  position: absolute;
  bottom: 28%;
  left: 10%;
  right: 10%;
  height: 6%;
  background: linear-gradient(90deg, transparent 0%, #2a1508 20%, #2a1508 80%, transparent 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.6);
  animation: mob-railing 4s ease-in-out infinite;
}
.scn-mother-on-balcony .figure {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 50px;
  height: 80px;
  background: linear-gradient(180deg, #2a1508 0%, #0f0604 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mob-figure 8s ease-in-out infinite;
}
.scn-mother-on-balcony .figure::before {
  content: '';
  position: absolute;
  top: -14px;
  left: 14px;
  width: 22px;
  height: 24px;
  background: radial-gradient(ellipse, #2a1508 0%, #0f0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: mob-head 4s ease-in-out infinite alternate;
}
.scn-mother-on-balcony .door {
  position: absolute;
  bottom: 28%;
  left: 38%;
  width: 70px;
  height: 100px;
  background: linear-gradient(180deg, #4a2818 0%, #2a1508 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 0 4px 8px rgba(0,0,0,0.5);
  animation: mob-door 14s ease-in-out infinite alternate;
}
.scn-mother-on-balcony .shadow {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 80px;
  height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%);
  filter: blur(6px);
  animation: mob-shadow 8s ease-in-out infinite;
}
.scn-mother-on-balcony .veil {
  position: absolute;
  top: -10px;
  left: 30%;
  width: 60px;
  height: 40px;
  background: linear-gradient(180deg, rgba(255,200,100,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: mob-veil 6s ease-in-out infinite;
}

@keyframes mob-sky      { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mob-sun      { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-10px) scale(1.05) } }
@keyframes mob-balcony  { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes mob-railing  { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes mob-figure   { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(-3deg) } 50% { transform: translateX(4px) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mob-head     { 0% { transform: rotate(10deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(8deg) } }
@keyframes mob-door     { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1) } }
@keyframes mob-shadow   { 0%,100% { opacity:0.5 } 50% { opacity:0.8 } }
@keyframes mob-veil     { 0% { opacity:0.2; transform: translateY(0) } 50% { opacity:0.6; transform: translateY(-8px) } 100% { opacity:0.3; transform: translateY(0) } }

/* --- death-of-boy --- */
.scn-death-of-boy {
  background: 
    linear-gradient(180deg, #4a627a 0%, #2d4055 30%, #1a2738 70%, #0d1621 100%),
    radial-gradient(ellipse at 50% 70%, #5a7a9a 0%, transparent 60%);
}
.scn-death-of-boy .dawn-sky {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, #7a9ab5 0%, #5a7a9a 40%, #3a5a7a 100%);
  animation: dob-sky 20s ease-in-out infinite alternate;
}
.scn-death-of-boy .window {
  position: absolute;
  top: 10%;
  right: 15%;
  width: 100px;
  height: 130px;
  background: linear-gradient(180deg, #9ab5c8 0%, #7a9ab5 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.2), 0 4px 12px rgba(0,0,0,0.5);
  animation: dob-window 12s ease-in-out infinite;
}
.scn-death-of-boy .curtain {
  position: absolute;
  top: 10%;
  right: 15%;
  width: 50px;
  height: 130px;
  background: linear-gradient(180deg, #4a627a 0%, #2d4055 100%);
  border-radius: 0 6% 4% 0;
  filter: blur(2px);
  animation: dob-curtain 8s ease-in-out infinite alternate;
}
.scn-death-of-boy .bed {
  position: absolute;
  bottom: 15%;
  left: 10%;
  right: 10%;
  height: 30%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2738 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
  animation: dob-bed 6s ease-in-out infinite alternate;
}
.scn-death-of-boy .boy {
  position: absolute;
  bottom: 22%;
  left: 25%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2738 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-90deg);
  transform-origin: bottom left;
  animation: dob-boy 10s ease-in-out infinite;
}
.scn-death-of-boy .blanket {
  position: absolute;
  bottom: 18%;
  left: 20%;
  width: 80px;
  height: 40px;
  background: linear-gradient(180deg, #4a627a 0%, #2d4055 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: dob-blanket 6s ease-in-out infinite alternate;
}
.scn-death-of-boy .chair {
  position: absolute;
  bottom: 20%;
  left: 65%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #2d4055 0%, #1a2738 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: dob-chair 15s ease-in-out infinite;
}
.scn-death-of-boy .door-silhouette {
  position: absolute;
  bottom: 15%;
  left: 5%;
  width: 50px;
  height: 100px;
  background: linear-gradient(180deg, #1a2738 0%, #0d1621 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: dob-door 14s ease-in-out infinite alternate;
}

@keyframes dob-sky      { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dob-window   { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes dob-curtain  { 0% { transform: translateX(0) } 100% { transform: translateX(-15px) } }
@keyframes dob-bed      { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dob-boy      { 0% { transform: rotate(-90deg) } 25% { transform: rotate(-90deg) translateY(2px) } 50% { transform: rotate(-90deg) } 75% { transform: rotate(-90deg) translateY(-2px) } 100% { transform: rotate(-90deg) } }
@keyframes dob-blanket  { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:0.6; transform: scaleY(0.95) } 100% { opacity:0.8; transform: scaleY(1) } }
@keyframes dob-chair    { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes dob-door     { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.96) } 100% { transform: scaleX(1) } }

/* --- riverside-morning --- */
.scn-riverside-morning {
  background: 
    linear-gradient(180deg, #a8d8ea 0%, #75c2db 30%, #5ba8c7 60%, #3e7a9e 100%),
    radial-gradient(ellipse at 30% 80%, #cce8f0 0%, transparent 70%);
}
.scn-riverside-morning .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fce8c0 0%, #f8d68a 30%, #a8d8ea 100%);
  animation: rim-sky 15s ease-in-out infinite alternate;
}
.scn-riverside-morning .sun {
  position: absolute;
  top: 10%;
  left: 35%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #ffefb0 0%, #f8c56a 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  box-shadow: 0 0 30px 15px rgba(248,197,106,0.5);
  animation: rim-sun 10s ease-in-out infinite;
}
.scn-riverside-morning .water {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #5ba8c7 0%, #3e7a9e 50%, #2a5a7a 100%);
  border-radius: 60% 40% 0 0 / 10% 20% 0 0;
  animation: rim-water 12s ease-in-out infinite alternate;
}
.scn-riverside-morning .trees-far {
  position: absolute;
  bottom: 38%;
  left: 10%;
  right: 10%;
  height: 25%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  filter: blur(4px);
  animation: rim-trees-far 20s ease-in-out infinite alternate;
}
.scn-riverside-morning .trees-near {
  position: absolute;
  bottom: 30%;
  left: 5%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: rim-trees-near 8s ease-in-out infinite;
}
.scn-riverside-morning .ripples {
  position: absolute;
  bottom: 15%;
  left: 20%;
  right: 20%;
  height: 10%;
  background: repeating-linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.2) 1%, transparent 2%);
  background-size: 20px 100%;
  animation: rim-ripples 4s linear infinite;
}
.scn-riverside-morning .reflection {
  position: absolute;
  bottom: 5%;
  left: 30%;
  width: 80px;
  height: 60px;
  background: linear-gradient(180deg, rgba(248,197,106,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rim-reflection 7s ease-in-out infinite alternate;
}
.scn-riverside-morning .birds {
  position: absolute;
  top: 15%;
  left: 60%;
  width: 30px;
  height: 20px;
  background: radial-gradient(ellipse, #4a3a2a 0%, transparent 100%);
  filter: blur(1px);
  animation: rim-birds 30s linear infinite;
}

@keyframes rim-sky        { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes rim-sun        { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(1.05) } }
@keyframes rim-water      { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes rim-trees-far  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes rim-trees-near { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes rim-ripples    { 0% { background-position: 0 0 } 100% { background-position: 80px 0 } }
@keyframes rim-reflection { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.1) } 100% { opacity:0.4; transform: scaleX(0.95) } }
@keyframes rim-birds      { 0% { transform: translateX(0) } 100% { transform: translateX(-200px) } }

/* --- reading-statistics --- */
.scn-reading-statistics {
  background: 
    linear-gradient(180deg, #f5deb3 0%, #e8c88a 30%, #c8a06a 60%, #8a6a4a 100%),
    radial-gradient(ellipse at 60% 20%, #fff0d0 0%, transparent 60%);
}
.scn-reading-statistics .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fff0d0 0%, #f5deb3 40%, #e8c88a 100%);
  animation: rst-sky 14s ease-in-out infinite alternate;
}
.scn-reading-statistics .trees-bg {
  position: absolute;
  bottom: 40%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 100%);
  border-radius: 30% 70% 20% 20% / 60% 80% 30% 30%;
  filter: blur(3px);
  animation: rst-trees-bg 18s ease-in-out infinite alternate;
}
.scn-reading-statistics .river {
  position: absolute;
  bottom: 10%;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #6a9aba 0%, #4a7a9a 100%);
  border-radius: 70% 30% 0 0 / 20% 10% 0 0;
  animation: rst-river 10s ease-in-out infinite alternate;
}
.scn-reading-statistics .bank {
  position: absolute;
  bottom: 30%;
  left: 5%;
  right: 60%;
  height: 15%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: rst-bank 6s ease-in-out infinite;
}
.scn-reading-statistics .figure {
  position: absolute;
  bottom: 28%;
  left: 15%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rst-figure 8s ease-in-out infinite;
}
.scn-reading-statistics .papers {
  position: absolute;
  bottom: 35%;
  left: 22%;
  width: 30px;
  height: 20px;
  background: #f5deb3;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  border-radius: 2px;
  animation: rst-papers 3s ease-in-out infinite;
}
.scn-reading-statistics .papers::before {
  content: '';
  position: absolute;
  top: 4px;
  left: 6px;
  width: 14px;
  height: 12px;
  background: linear-gradient(180deg, transparent 40%, #8a6a4a 40%);
  border-radius: 1px;
}
.scn-reading-statistics .leaves {
  position: absolute;
  top: 20%;
  left: 40%;
  width: 60px;
  height: 30px;
  background: transparent;
  filter: blur(2px);
  animation: rst-leaves 12s linear infinite;
}
.scn-reading-statistics .leaves::before {
  content: '';
  position: absolute;
  width: 10px;
  height: 6px;
  background: #7a9a5a;
  border-radius: 50%;
  box-shadow: 15px -4px 0 #5a7a3a, 30px 8px 0 #7a9a5a, 45px -2px 0 #5a7a3a;
  animation: rst-leaves-move 4s ease-in-out infinite;
}
.scn-reading-statistics .shadow {
  position: absolute;
  bottom: 25%;
  left: 10%;
  width: 60px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: rst-shadow 8s ease-in-out infinite;
}

@keyframes rst-sky        { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes rst-trees-bg   { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes rst-river      { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes rst-bank       { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes rst-figure     { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rst-papers     { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(5deg) } }
@keyframes rst-leaves     { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes rst-leaves-move { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(2px) } }
@keyframes rst-shadow     { 0%,100% { opacity:0.4 } 50% { opacity:0.7 } }

/* Scene: impressions-of-genius (:ig) */
.scn-impressions-of-genius {
  background: 
    linear-gradient(180deg, #fdf6e3 0%, #e8dcc8 30%, #d4c4a8 100%),
    radial-gradient(ellipse at 50% 0%, #fff8ee 0%, transparent 60%);
}
.scn-impressions-of-genius .room-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.05);
  animation: ig-wall 20s ease-in-out infinite;
}
.scn-impressions-of-genius .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b89a7a 0%, #8b6f50 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-impressions-of-genius .table {
  position: absolute; bottom: 25%; left: 50%; width: 160px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6d4c32 0%, #4c331e 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-impressions-of-genius .figure {
  position: absolute; bottom: 26%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ig-figure 6s ease-in-out infinite;
}
.scn-impressions-of-genius .figure-left {
  left: 36%;
  transform-origin: bottom center;
  animation-delay: 0s;
}
.scn-impressions-of-genius .figure-right {
  left: 56%;
  transform-origin: bottom center;
  animation-delay: 1.5s;
}
.scn-impressions-of-genius .lamp {
  position: absolute; bottom: 35%; left: 45%; width: 12px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #b08040 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.4);
  animation: ig-lamp 4s ease-in-out infinite alternate;
}
.scn-impressions-of-genius .book {
  position: absolute; bottom: 27%; width: 26px; height: 34px;
  background: linear-gradient(180deg, #7a6050 0%, #5a4030 100%);
  border-radius: 5% 5% 15% 15% / 10% 10% 20% 20%;
  transform-origin: bottom left;
}
.scn-impressions-of-genius .book-a {
  left: 46%;
  transform: rotate(-10deg);
  animation: ig-book 8s ease-in-out infinite;
}
.scn-impressions-of-genius .book-b {
  left: 52%;
  transform: rotate(15deg);
  animation: ig-book 8s ease-in-out infinite reverse;
}
@keyframes ig-wall {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.95; }
}
@keyframes ig-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ig-lamp {
  0% { box-shadow: 0 0 20px 8px rgba(255,208,128,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 15px rgba(255,208,128,0.6); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px rgba(255,208,128,0.35); opacity: 0.95; }
}
@keyframes ig-book {
  0%, 100% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-12deg) scale(1.02); }
}

/* Scene: poetic-style (:ps) */
.scn-poetic-style {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e3cca0 40%, #c9ad7a 100%),
    radial-gradient(ellipse at 60% 30%, #fff4e0 0%, transparent 70%);
}
.scn-poetic-style .room-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8d5b0 0%, #d4be96 100%);
  box-shadow: inset 0 5px 20px rgba(0,0,0,0.08);
  animation: ps-wall 15s ease-in-out infinite;
}
.scn-poetic-style .desk {
  position: absolute; bottom: 20%; left: 40%; width: 140px; height: 30px;
  background: linear-gradient(180deg, #5c3a21 0%, #3d2615 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-poetic-style .poet {
  position: absolute; bottom: 22%; left: 44%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #2c1e12 0%, #140e08 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-poet 5s ease-in-out infinite alternate;
}
.scn-poetic-style .window {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #a9c6d9 0%, #7a9ab0 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(169,198,217,0.3), 0 0 30px rgba(169,198,217,0.2);
  animation: ps-window 10s ease-in-out infinite alternate;
}
.scn-poetic-style .paper {
  position: absolute; bottom: 25%; left: 46%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #fcf6e8 0%, #e8dcc4 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform: rotate(-5deg);
}
.scn-poetic-style .inkwell {
  position: absolute; bottom: 26%; left: 52%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 20%, #2a1a0e 0%, #0a0604 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: ps-ink 4s ease-in-out infinite;
}
.scn-poetic-style .dream-bubble {
  position: absolute; width: 40px; height: 30px;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.6) 0%, rgba(169,198,217,0.2) 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ps-bubble 12s ease-in-out infinite;
}
.scn-poetic-style .bubble-1 { top: 10%; left: 20%; animation-delay: 0s; width: 50px; height: 38px; }
.scn-poetic-style .bubble-2 { top: 18%; left: 35%; animation-delay: 3s; width: 35px; height: 28px; }
.scn-poetic-style .bubble-3 { top: 5%; left: 50%; animation-delay: 6s; width: 45px; height: 32px; }
@keyframes ps-wall {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.96; }
}
@keyframes ps-poet {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ps-window {
  0% { opacity: 0.7; box-shadow: 0 0 10px rgba(169,198,217,0.1); }
  50% { opacity: 1; box-shadow: 0 0 40px rgba(169,198,217,0.4); }
  100% { opacity: 0.8; box-shadow: 0 0 20px rgba(169,198,217,0.2); }
}
@keyframes ps-ink {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
@keyframes ps-bubble {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  25% { transform: translateY(-10px) scale(1.1); opacity: 0.6; }
  50% { transform: translateY(-20px) scale(1.2); opacity: 0.8; }
  75% { transform: translateY(-15px) scale(1.05); opacity: 0.5; }
  100% { transform: translateY(0) scale(1); opacity: 0.3; }
}

/* Scene: servant-afterscene (:sa) */
.scn-servant-afterscene {
  background:
    linear-gradient(180deg, #4a4c4d 0%, #363839 40%, #232425 100%),
    radial-gradient(ellipse at 50% 0%, #5a5c5d 0%, transparent 80%);
}
.scn-servant-afterscene .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a5c5d 0%, #3a3c3d 100%);
  animation: sa-sky 20s ease-in-out infinite alternate;
}
.scn-servant-afterscene .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a4a48 0%, #2a2a28 100%);
  border-radius: 30% 30% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.5);
}
.scn-servant-afterscene .figure-servant {
  position: absolute; bottom: 30%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-figure 7s ease-in-out infinite;
}
.scn-servant-afterscene .stall {
  position: absolute; bottom: 35%; left: 30%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #5c4a3a 0%, #3a2a1e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-servant-afterscene .barley-sugar {
  position: absolute; bottom: 42%; left: 35%; width: 8px; height: 14px;
  background: radial-gradient(circle at 50% 40%, #c78a3f 0%, #a06830 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  animation: sa-sugar 3s ease-in-out infinite;
}
.scn-servant-afterscene .lantern-gloom {
  position: absolute; bottom: 40%; left: 55%; width: 10px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #c08040 0%, #604020 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 12px 4px rgba(192,128,64,0.3);
  animation: sa-lantern 4s ease-in-out infinite alternate;
}
.scn-servant-afterscene .shadow-master {
  position: absolute; bottom: 30%; left: 60%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #0d0d0d 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-shadow 9s ease-in-out infinite;
}
@keyframes sa-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes sa-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-3deg); }
}
@keyframes sa-sugar {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.2) rotate(15deg); }
}
@keyframes sa-lantern {
  0% { opacity: 0.4; box-shadow: 0 0 8px 2px rgba(192,128,64,0.2); }
  50% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(192,128,64,0.5); }
  100% { opacity: 0.5; box-shadow: 0 0 10px 3px rgba(192,128,64,0.3); }
}
@keyframes sa-shadow {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(0.95); }
}

/* Scene: dinner-party-magnetism (:dm) */
.scn-dinner-party-magnetism {
  background:
    linear-gradient(180deg, #2c1a0e 0%, #1a0e06 40%, #0a0502 100%),
    radial-gradient(ellipse at 50% 40%, #3d2b1e 0%, transparent 80%);
}
.scn-dinner-party-magnetism .room-dim {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3d2b1e 0%, #1a1008 100%);
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.8);
  animation: dm-room 15s ease-in-out infinite alternate;
}
.scn-dinner-party-magnetism .table-dinner {
  position: absolute; bottom: 20%; left: 50%; width: 200px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3020 0%, #2c1a0e 100%);
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
}
.scn-dinner-party-magnetism .glass {
  position: absolute; bottom: 28%; width: 16px; height: 28px;
  background: radial-gradient(circle at 50% 20%, rgba(255,200,100,0.7) 0%, rgba(200,160,80,0.3) 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  animation: dm-glass 3s ease-in-out infinite;
}
.scn-dinner-party-magnetism .glass-left { left: 38%; }
.scn-dinner-party-magnetism .glass-right { left: 56%; }
.scn-dinner-party-magnetism .cigar {
  position: absolute; bottom: 30%; width: 8px; height: 20px;
  background: radial-gradient(circle at 30% 20%, #ff7b3a 0%, #8a3a1a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
}
.scn-dinner-party-magnetism .cigar-left {
  left: 42%;
  animation: dm-cigar 2s ease-in-out infinite alternate;
}
.scn-dinner-party-magnetism .magnet {
  position: absolute; bottom: 32%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #702243 0%, #441224 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(112,34,67,0.5);
  animation: dm-magnet 5s ease-in-out infinite;
}
.scn-dinner-party-magnetism .smoke {
  position: absolute; width: 20px; height: 40px;
  background: radial-gradient(circle at 50% 50%, rgba(200,200,200,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: dm-smoke 8s linear infinite;
}
.scn-dinner-party-magnetism .smoke-1 { bottom: 42%; left: 42%; animation-delay: 0s; }
.scn-dinner-party-magnetism .smoke-2 { bottom: 40%; left: 56%; animation-delay: 4s; }
.scn-dinner-party-magnetism .figure-man {
  position: absolute; bottom: 22%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0603 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dm-man 6s ease-in-out infinite;
}
.scn-dinner-party-magnetism .man-left { left: 30%; animation-delay: 0s; }
.scn-dinner-party-magnetism .man-right { left: 58%; animation-delay: 1.5s; }
@keyframes dm-room {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes dm-glass {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(8deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-8deg); }
}
@keyframes dm-cigar {
  0% { opacity: 0.5; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes dm-magnet {
  0%, 100% { box-shadow: 0 0 15px 4px rgba(112,34,67,0.4); }
  50% { box-shadow: 0 0 30px 10px rgba(112,34,67,0.8); }
}
@keyframes dm-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.2; }
  25% { transform: translateY(-20px) scale(1.5); opacity: 0.5; }
  50% { transform: translateY(-40px) scale(2); opacity: 0.3; }
  75% { transform: translateY(-60px) scale(2.5); opacity: 0.1; }
  100% { transform: translateY(-80px) scale(3); opacity: 0; }
}
@keyframes dm-man {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
}

.scn-journey-home {
  background: linear-gradient(180deg, #f9e3a8 0%, #f5c542 40%, #e4b741 100%), radial-gradient(ellipse at 50% 0%, #fff9e6 0%, transparent 60%);
}
.scn-journey-home .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f4e2b1 0%, transparent 100%);
  animation: jh-sky 14s ease-in-out infinite alternate;
}
.scn-journey-home .sun {
  position: absolute; top: 8%; left: 30%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff3d6 0%, #f7d97e 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(247,217,126,0.5);
  animation: jh-sun 10s ease-in-out infinite alternate;
}
.scn-journey-home .fields {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #d4c46a 0%, #b89f4a 60%, #a08830 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  animation: jh-fields 16s ease-in-out infinite alternate;
}
.scn-journey-home .road {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #c29e6a 0%, #a67c4a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.25);
  animation: jh-road 12s ease-in-out infinite alternate;
}
.scn-journey-home .figure-a,
.scn-journey-home .figure-b {
  position: absolute; bottom: 22%; width: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jh-walk 4s ease-in-out infinite;
}
.scn-journey-home .figure-a { left: 30%; height: 40px; background: linear-gradient(180deg, #6a5340 0%, #3a2a1a 100%); }
.scn-journey-home .figure-b { left: 38%; height: 36px; background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%); animation-delay: -2s; }
.scn-journey-home .tree {
  position: absolute; bottom: 20%; right: 12%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a6a2a 0%, #2a401a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: jh-tree 20s ease-in-out infinite alternate;
}
@keyframes jh-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes jh-sun { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-3px); } 100% { transform: scale(0.95) translateY(2px); } }
@keyframes jh-fields { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes jh-road { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes jh-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes jh-tree { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.01); } 100% { transform: rotate(-1deg) scale(1); } }

.scn-arrival-at-yvetot {
  background: linear-gradient(180deg, #d4c7a6 0%, #b8a680 50%, #96855e 100%), radial-gradient(ellipse at 50% 100%, #8a764e 0%, transparent 60%);
}
.scn-arrival-at-yvetot .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0e4c8 0%, transparent 100%);
  animation: ay-sky 18s ease-in-out infinite alternate;
}
.scn-arrival-at-yvetot .station-roof {
  position: absolute; top: 30%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-arrival-at-yvetot .platform {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b8a680 0%, #8a764e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
}
.scn-arrival-at-yvetot .train {
  position: absolute; bottom: 25%; left: 10%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ay-train 8s ease-in-out infinite alternate;
}
.scn-arrival-at-yvetot .figure-antoine {
  position: absolute; bottom: 42%; left: 28%; width: 14px; 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: ay-figure 3s ease-in-out infinite;
}
.scn-arrival-at-yvetot .steam {
  position: absolute; bottom: 50%; left: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ay-steam 6s ease-in-out infinite;
}
.scn-arrival-at-yvetot .steam-2 {
  left: 20%; animation-delay: -3s;
}
@keyframes ay-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ay-train { 0% { transform: translateX(-5px); } 50% { transform: translateX(0); } 100% { transform: translateX(-5px); } }
@keyframes ay-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(3deg); } 50% { transform: translateY(1px) rotate(-3deg); } 75% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ay-steam { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(-15px) scale(1.5); opacity: 0.3; } 100% { transform: translateY(-30px) scale(2); opacity: 0; } }

.scn-awkward-introduction {
  background: linear-gradient(180deg, #d4c7a6 0%, #b8a680 50%, #8a764e 100%), radial-gradient(ellipse at 50% 30%, #c8b894 0%, transparent 60%);
}
.scn-awkward-introduction .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0e4c8 0%, transparent 100%);
  animation: ai-sky 20s ease-in-out infinite alternate;
}
.scn-awkward-introduction .station-wall {
  position: absolute; top: 20%; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #8a7a5e 0%, #5a4a3a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-awkward-introduction .platform {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b8a680 0%, #8a764e 100%);
  border-radius: 10% 10% 0 0;
}
.scn-awkward-introduction .parents {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 32px;
  background: linear-gradient(180deg, #6a5340 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ai-hug 4s ease-in-out infinite;
}
.scn-awkward-introduction .figure-antoine {
  position: absolute; bottom: 18%; left: 25%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ai-rush 2.5s ease-in-out infinite;
}
.scn-awkward-introduction .figure-companion {
  position: absolute; bottom: 18%; right: 30%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ai-companion 5s ease-in-out infinite;
}
.scn-awkward-introduction .onlookers {
  position: absolute; bottom: 15%; right: 10%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ai-onlooker 7s ease-in-out infinite;
}
.scn-awkward-introduction .onlookers-2 {
  right: 5%; animation-delay: -3.5s;
}
@keyframes ai-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ai-hug { 0% { transform: translateY(0) scaleX(1); } 25% { transform: translateY(-2px) scaleX(1.1); } 50% { transform: translateY(0) scaleX(1); } 75% { transform: translateY(-2px) scaleX(1.1); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ai-rush { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(16px) translateY(0) rotate(-5deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(5deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes ai-companion { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ai-onlooker { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-ride-to-farm {
  background: linear-gradient(180deg, #e4d7b6 0%, #c8b894 40%, #a8986a 100%), radial-gradient(ellipse at 50% 0%, #f4e8c8 0%, transparent 60%);
}
.scn-ride-to-farm .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0e4c8 0%, transparent 100%);
  animation: rf-sky 22s ease-in-out infinite alternate;
}
.scn-ride-to-farm .fields-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b8a84a 0%, #9a8a30 100%);
  border-radius: 40% 60% 0 0 / 50% 40% 0 0;
  animation: rf-fields 20s ease-in-out infinite alternate;
}
.scn-ride-to-farm .road {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c29e6a 0%, #a67c4a 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.25);
  animation: rf-road 6s ease-in-out infinite;
}
.scn-ride-to-farm .carriage-body {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 22%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 15% 15% 5% 5%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: rf-bounce 0.8s ease-in-out infinite;
}
.scn-ride-to-farm .wheel {
  position: absolute; bottom: 8%; width: 14%; height: 22%;
  background: radial-gradient(circle, #8a7a5e 30%, #4a3a2a 70%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: rf-wheel 2s linear infinite;
}
.scn-ride-to-farm .wheel-left { left: 38%; }
.scn-ride-to-farm .wheel-right { left: 52%; animation-delay: -1s; }
.scn-ride-to-farm .figure-women {
  position: absolute; bottom: 28%; left: 40%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rf-passenger 0.8s ease-in-out infinite;
}
.scn-ride-to-farm .figure-men {
  position: absolute; bottom: 30%; left: 48%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rf-passenger 0.8s ease-in-out infinite reverse;
}
@keyframes rf-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes rf-fields { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(10px); } }
@keyframes rf-road { 0% { transform: translateY(0); } 25% { transform: translateY(-3px); } 50% { transform: translateY(2px); } 75% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rf-bounce { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(1deg); } 50% { transform: translateY(2px) rotate(-1deg); } 75% { transform: translateY(-4px) rotate(1deg); } }
@keyframes rf-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes rf-passenger { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(3deg); } 50% { transform: translateY(2px) rotate(-3deg); } 75% { transform: translateY(-3px) rotate(3deg); } }

/* Scene: prostitute-conversation */
.scn-prostitute-conversation {
  background:
    linear-gradient(180deg, #1a1328 0%, #2a1e3c 40%, #0e0a14 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a4a 0%, transparent 70%);
}
.scn-prostitute-conversation .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1f182a 0%, #0d0918 100%);
  animation: pc-room 20s ease-in-out infinite alternate;
}
.scn-prostitute-conversation .table {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 6px 18px rgba(0,0,0,.6);
}
.scn-prostitute-conversation .lamp {
  position: absolute; bottom: 30%; left: 50%; width: 18px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5030 0%, #3a2818 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-prostitute-conversation .candle-glow {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c8a060 0%, #a08040 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(160,128,64,.5), 0 0 80px 40px rgba(160,128,64,.2);
  animation: pc-glow 2s ease-in-out infinite alternate;
}
.scn-prostitute-conversation .figure-left {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #12101e 0%, #080612 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pc-fig-left 5s ease-in-out infinite;
}
.scn-prostitute-conversation .figure-right {
  position: absolute; bottom: 12%; right: 28%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #161422 0%, #0a0814 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pc-fig-right 4s ease-in-out infinite;
}
.scn-prostitute-conversation .shadow-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, rgba(10,8,20,.3) 0%, rgba(0,0,0,.6) 100%);
  animation: pc-shadow 8s ease-in-out infinite alternate;
}
@keyframes pc-room {
  0% { opacity: .85; }
  50% { opacity: .95; }
  100% { opacity: .8; }
}
@keyframes pc-glow {
  0% { opacity: .7; transform: translateX(-50%) scale(.95); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
  100% { opacity: .8; transform: translateX(-50%) scale(1); }
}
@keyframes pc-fig-left {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(0); }
  50% { transform: translateY(-1px) rotate(3deg); }
  75% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes pc-fig-right {
  0% { transform: translateY(0) rotate(1deg); }
  33% { transform: translateY(-3px) rotate(-2deg); }
  66% { transform: translateY(-1px) rotate(0); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes pc-shadow {
  0% { opacity: .4; }
  50% { opacity: .6; }
  100% { opacity: .35; }
}

/* Scene: prostitute-lies-story */
.scn-prostitute-lies-story {
  background:
    linear-gradient(180deg, #1e1a2a 0%, #2a2238 40%, #100c18 100%),
    radial-gradient(ellipse at 30% 70%, #3a2e48 0%, transparent 70%);
}
.scn-prostitute-lies-story .room-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, #0d0a14 0%, #1a1422 60%, #0a0810 100%);
  animation: pls-room 15s ease-in-out infinite alternate;
}
.scn-prostitute-lies-story .bed {
  position: absolute; bottom: 5%; left: 10%; width: 70%; height: 35%;
  background: linear-gradient(180deg, #2a1e30 0%, #1a1020 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  transform: scale(0.95);
}
.scn-prostitute-lies-story .figure-speaking {
  position: absolute; bottom: 18%; left: 40%; width: 38px; height: 85px;
  background: linear-gradient(180deg, #16141e 0%, #0a0812 100%);
  border-radius: 50% 30% 40% 40% / 60% 40% 50% 50%;
  transform-origin: bottom center;
  animation: pls-speak 3s ease-in-out infinite;
}
.scn-prostitute-lies-story .figure-listening {
  position: absolute; bottom: 20%; right: 15%; width: 34px; height: 80px;
  background: linear-gradient(180deg, #14121c 0%, #080610 100%);
  border-radius: 40% 50% 30% 30% / 60% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pls-listen 6s ease-in-out infinite alternate;
}
.scn-prostitute-lies-story .partition {
  position: absolute; left: 55%; top: 10%; bottom: 10%; width: 6px;
  background: linear-gradient(180deg, #3a2e40 0%, #1a1420 100%);
  box-shadow: 2px 0 8px rgba(0,0,0,.5);
}
.scn-prostitute-lies-story .window-light {
  position: absolute; top: 20%; right: 5%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, #4a4a6a 0%, #2a2a4a 40%, transparent 70%);
  border-radius: 20% 20% 10% 10%;
  animation: pls-window 8s ease-in-out infinite alternate;
}
.scn-prostitute-lies-story .chair {
  position: absolute; bottom: 10%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1e28 0%, #1a1018 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateY(5px);
  animation: pls-chair 12s ease-in-out infinite;
}
@keyframes pls-room {
  0% { opacity: .9; }
  50% { opacity: .95; }
  100% { opacity: .85; }
}
@keyframes pls-speak {
  0% { transform: translateY(0) rotate(-2deg) scaleX(1); }
  25% { transform: translateY(-3px) rotate(1deg) scaleX(0.98); }
  50% { transform: translateY(-1px) rotate(-1deg) scaleX(1.02); }
  75% { transform: translateY(-4px) rotate(2deg) scaleX(0.97); }
  100% { transform: translateY(0) rotate(-2deg) scaleX(1); }
}
@keyframes pls-listen {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pls-window {
  0% { opacity: .3; box-shadow: 0 0 10px 2px rgba(74,74,106,.2); }
  50% { opacity: .6; box-shadow: 0 0 20px 5px rgba(74,74,106,.4); }
  100% { opacity: .2; box-shadow: 0 0 5px 1px rgba(74,74,106,.1); }
}
@keyframes pls-chair {
  0%,100% { transform: translateY(5px) rotate(0); }
  25% { transform: translateY(3px) rotate(-1deg); }
  50% { transform: translateY(6px) rotate(1deg); }
  75% { transform: translateY(4px) rotate(0); }
}

/* Scene: thin-partition */
.scn-thin-partition {
  background:
    linear-gradient(180deg, #12101c 0%, #1a1628 40%, #0a0810 100%),
    radial-gradient(ellipse at 50% 50%, #2a2240 0%, transparent 70%);
}
.scn-thin-partition .room-left {
  position: absolute; top: 0; left: 0; bottom: 0; width: 48%;
  background: linear-gradient(180deg, #161222 0%, #0c0a14 100%);
  animation: tp-room-l 25s ease-in-out infinite alternate;
}
.scn-thin-partition .room-right {
  position: absolute; top: 0; right: 0; bottom: 0; width: 48%;
  background: linear-gradient(180deg, #1a1626 0%, #0e0c18 100%);
  animation: tp-room-r 30s ease-in-out infinite alternate;
}
.scn-thin-partition .partition-wall {
  position: absolute; left: 48%; top: 5%; bottom: 5%; width: 4%;
  background: linear-gradient(180deg, #2a2240 0%, #16122a 100%);
  box-shadow: 0 0 12px rgba(0,0,0,.7);
  z-index: 2;
}
.scn-thin-partition .crack-light {
  position: absolute; left: 49.5%; top: 30%; width: 1%; height: 40%;
  background: linear-gradient(180deg, #6a5a8a 0%, #4a3a66 100%);
  box-shadow: 0 0 20px 8px rgba(106,90,138,.4);
  animation: tp-crack 3s ease-in-out infinite alternate;
  z-index: 3;
}
.scn-thin-partition .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1628 0%, #0e0c18 100%);
  border-radius: 50% 40% 30% 30% / 70% 60% 30% 30%;
  animation: tp-fig-l 6s ease-in-out infinite;
}
.scn-thin-partition .figure-right {
  position: absolute; bottom: 22%; right: 20%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #1e1a2c 0%, #100e1c 100%);
  border-radius: 40% 50% 30% 30% / 60% 70% 30% 30%;
  animation: tp-fig-r 7s ease-in-out infinite alternate;
}
.scn-thin-partition .lamp-side {
  position: absolute; bottom: 35%; left: 15%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2818 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(160,128,64,.3);
  animation: tp-lamp 4s ease-in-out infinite alternate;
}
@keyframes tp-room-l { 0% { opacity: .8; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes tp-room-r { 0% { opacity: .75; } 50% { opacity: .85; } 100% { opacity: .8; } }
@keyframes tp-crack {
  0% { opacity: .5; box-shadow: 0 0 10px 4px rgba(106,90,138,.3); }
  50% { opacity: .8; box-shadow: 0 0 30px 12px rgba(106,90,138,.5); }
  100% { opacity: .4; box-shadow: 0 0 8px 2px rgba(106,90,138,.2); }
}
@keyframes tp-fig-l {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes tp-fig-r {
  0% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-3px) translateX(2px); }
  100% { transform: translateY(0) translateX(0); }
}
@keyframes tp-lamp {
  0% { opacity: .6; box-shadow: 0 0 20px 8px rgba(160,128,64,.2); }
  50% { opacity: .9; box-shadow: 0 0 40px 15px rgba(160,128,64,.5); }
  100% { opacity: .7; box-shadow: 0 0 25px 10px rgba(160,128,64,.3); }
}

/* Scene: prostitute-first-lover */
.scn-prostitute-first-lover {
  background:
    linear-gradient(180deg, #181428 0%, #1e1a30 30%, #0c0a14 100%),
    radial-gradient(ellipse at 50% 90%, #2a2244 0%, transparent 70%);
}
.scn-prostitute-first-lover .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #12101e 0%, #1a1628 50%, #080612 100%);
  animation: pfl-room 22s ease-in-out infinite alternate;
}
.scn-prostitute-first-lover .figure-sitting {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #16131e 0%, #0a0812 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: pfl-fig 6s ease-in-out infinite;
}
.scn-prostitute-first-lover .table {
  position: absolute; bottom: 10%; left: 50%; width: 100px; height: 6px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-prostitute-first-lover .picture-frame {
  position: absolute; top: 25%; left: 50%; width: 70px; height: 50px;
  transform: translateX(-50%) perspective(200px) rotateX(5deg);
  background: linear-gradient(180deg, #2a1e20 0%, #1a1014 100%);
  border: 3px solid #4a3a30;
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.4);
  overflow: hidden;
}
.scn-prostitute-first-lover .candle {
  position: absolute; bottom: 20%; left: 38%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%);
  border-radius: 20% 20% 10% 10%;
  animation: pfl-candle 3s ease-in-out infinite alternate;
}
.scn-prostitute-first-lover .boat-shadow {
  position: absolute; bottom: 8%; left: 20%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #1a1628 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: pfl-boat 15s ease-in-out infinite alternate;
}
.scn-prostitute-first-lover .window-faint {
  position: absolute; top: 10%; right: 8%; width: 50px; height: 60px;
  background: radial-gradient(ellipse, #3a3a5a 0%, #1a1a2a 50%, transparent 80%);
  border-radius: 20% 20% 10% 10%;
  opacity: .3;
  animation: pfl-window 10s ease-in-out infinite alternate;
}
@keyframes pfl-room {
  0% { opacity: .85; }
  50% { opacity: .93; }
  100% { opacity: .8; }
}
@keyframes pfl-fig {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes pfl-candle {
  0% { opacity: .7; box-shadow: 0 0 12px 4px rgba(160,128,64,.3); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(200,160,100,.6); }
  100% { opacity: .8; box-shadow: 0 0 20px 6px rgba(160,128,64,.4); }
}
@keyframes pfl-boat {
  0% { transform: translateX(0) scaleY(1) rotate(-2deg); opacity: .3; }
  50% { transform: translateX(15px) scaleY(1.2) rotate(1deg); opacity: .5; }
  100% { transform: translateX(-5px) scaleY(0.9) rotate(2deg); opacity: .25; }
}
@keyframes pfl-window {
  0% { opacity: .2; box-shadow: 0 0 10px 2px rgba(58,58,90,.2); }
  50% { opacity: .5; box-shadow: 0 0 20px 6px rgba(58,58,90,.4); }
  100% { opacity: .15; box-shadow: 0 0 5px 1px rgba(58,58,90,.1); }
}

/* Scene: prostitute-first-time (tag: pf) */
.scn-prostitute-first-time {
  background: linear-gradient(180deg, #1a1220 0%, #0f0a15 60%, #2a1a1a 100%), radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-prostitute-first-time .pf-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1420 0%, #0f0a12 100%);
  animation: pf-bgshift 12s ease-in-out infinite alternate;
}
.scn-prostitute-first-time .pf-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e2a 0%, transparent 100%);
  border-radius: 0 0 60% 60% / 0 0 20% 20%;
}
.scn-prostitute-first-time .pf-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a141a 0%, #0f0a0f 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-prostitute-first-time .pf-lamp {
  position: absolute; bottom: 40%; left: 40%; width: 12px; height: 20px;
  background: radial-gradient(ellipse at center, #c08040 0%, #4a2a0a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 30px 10px #a06030, 0 0 60px 20px rgba(160,96,48,0.4);
  animation: pf-lampglow 3s ease-in-out infinite alternate;
}
.scn-prostitute-first-time .pf-figure {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a22 0%, #0f0f14 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pf-figurebreathe 4s ease-in-out infinite;
}
.scn-prostitute-first-time .pf-curtain {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, #2a1e2a 0%, #1a121a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 20% 90%, 0 100%);
  animation: pf-curtainsway 8s ease-in-out infinite alternate;
}
.scn-prostitute-first-time .pf-shadow {
  position: absolute; bottom: 28%; left: 44%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: pf-shadowblur 4s ease-in-out infinite alternate;
}
@keyframes pf-bgshift { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pf-lampglow { 0% { box-shadow: 0 0 20px 5px #804020, 0 0 40px 10px rgba(128,64,32,0.3); opacity:0.8 } 50% { box-shadow: 0 0 40px 15px #c06030, 0 0 80px 30px rgba(192,96,48,0.6); opacity:1 } 100% { box-shadow: 0 0 25px 8px #a05028, 0 0 50px 15px rgba(160,80,40,0.4); opacity:0.85 } }
@keyframes pf-figurebreathe { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pf-curtainsway { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-6px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes pf-shadowblur { 0% { transform: scaleX(1); opacity:0.4 } 50% { transform: scaleX(1.2); opacity:0.6 } 100% { transform: scaleX(0.9); opacity:0.3 } }

/* Scene: narrator-theory (tag: nt) */
.scn-narrator-theory {
  background: linear-gradient(180deg, #121218 0%, #080810 60%, #1a1a1a 100%), radial-gradient(ellipse at 60% 50%, #2a2a1a 0%, transparent 50%);
}
.scn-narrator-theory .nt-bg {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #0e0e1a 0%, #0a0a10 100%);
  animation: nt-bgfade 15s ease-in-out infinite alternate;
}
.scn-narrator-theory .nt-bookshelf {
  position: absolute; top: 5%; left: 5%; width: 60%; height: 50%;
  background: repeating-linear-gradient(90deg, #2a221a 0px, #2a221a 8px, #1e1a14 8px, #1e1a14 16px);
  border-radius: 0 4px 4px 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-narrator-theory .nt-desk {
  position: absolute; bottom: 25%; left: 10%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #3a2e22 0%, #1e1a14 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-narrator-theory .nt-lamp {
  position: absolute; bottom: 35%; left: 35%; width: 10px; height: 18px;
  background: radial-gradient(ellipse at center, #d08050 0%, #4a2a0a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 25px 8px #b06030, 0 0 50px 18px rgba(176,96,48,0.3);
  animation: nt-lampglow 2.5s ease-in-out infinite alternate;
}
.scn-narrator-theory .nt-figure {
  position: absolute; bottom: 26%; left: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a0f 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: nt-figurelean 5s ease-in-out infinite;
}
.scn-narrator-theory .nt-chair {
  position: absolute; bottom: 24%; left: 28%; width: 24px; height: 20px;
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%);
  border-radius: 4px;
  animation: nt-chairrock 6s ease-in-out infinite;
}
.scn-narrator-theory .nt-bookpile {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 -6px 0 #4a3a2a, 0 -12px 0 #3a2a1a;
  animation: nt-bookslide 10s ease-in-out infinite alternate;
}
@keyframes nt-bgfade { 0% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes nt-lampglow { 0% { box-shadow: 0 0 15px 3px #804020, 0 0 30px 6px rgba(128,64,32,0.2); opacity:0.9 } 50% { box-shadow: 0 0 35px 12px #d08050, 0 0 70px 25px rgba(208,128,80,0.5); opacity:1 } 100% { box-shadow: 0 0 20px 5px #a05030, 0 0 40px 10px rgba(160,80,48,0.3); opacity:0.95 } }
@keyframes nt-figurelean { 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 nt-chairrock { 0% { transform: rotate(0deg) } 30% { transform: rotate(-2deg) } 70% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes nt-bookslide { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }

/* Scene: prostitute-persuasion (tag: pp) */
.scn-prostitute-persuasion {
  background: linear-gradient(180deg, #14101e 0%, #0c0810 60%, #1a0f0f 100%), radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 50%);
}
.scn-prostitute-persuasion .pp-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e0a1a 0%, #090610 100%);
  animation: pp-bgdim 10s ease-in-out infinite alternate;
}
.scn-prostitute-persuasion .pp-table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 5%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-prostitute-persuasion .pp-candle {
  position: absolute; bottom: 28%; left: 48%; width: 6px; height: 18px;
  background: radial-gradient(ellipse at center, #e0a060 0%, #4a2a0a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3);
  animation: pp-candleflicker 2s ease-in-out infinite alternate;
}
.scn-prostitute-persuasion .pp-figure1 {
  position: absolute; bottom: 22%; left: 32%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 68% 68% 32% 32%;
  transform-origin: bottom center;
  animation: pp-figure1sway 4s ease-in-out infinite;
}
.scn-prostitute-persuasion .pp-figure2 {
  position: absolute; bottom: 22%; right: 32%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a2a32 0%, #14141a 100%);
  border-radius: 50% 50% 40% 40% / 68% 68% 32% 32%;
  transform-origin: bottom center;
  animation: pp-figure2lean 3.5s ease-in-out infinite;
}
.scn-prostitute-persuasion .pp-shadow {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 10%;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: pp-shadowdance 5s ease-in-out infinite alternate;
}
@keyframes pp-bgdim { 0% { opacity:0.8 } 100% { opacity:0.9 } }
@keyframes pp-candleflicker { 0% { transform: scaleY(1); opacity:0.9 } 25% { transform: scaleY(1.1); opacity:1 } 50% { transform: scaleY(0.95); opacity:0.8 } 75% { transform: scaleY(1.05); opacity:0.95 } 100% { transform: scaleY(1); opacity:0.9 } }
@keyframes pp-figure1sway { 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 pp-figure2lean { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-1px) rotate(3deg) } 60% { transform: translateX(1px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pp-shadowdance { 0% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(1.2); opacity:0.7 } 100% { transform: scaleX(0.9); opacity:0.4 } }

/* Scene: story-chef-alexandre (tag: ca) */
.scn-story-chef-alexandre {
  background: linear-gradient(180deg, #1a1412 0%, #0f0a08 60%, #1a0e0a 100%), radial-gradient(ellipse at 60% 70%, #4a2a1a 0%, transparent 50%);
}
.scn-story-chef-alexandre .ca-bg {
  position: absolute; inset: 0;
  background: linear-gradient(120deg, #120e0c 0%, #0a0806 100%);
  animation: ca-bgpulse 12s ease-in-out infinite alternate;
}
.scn-story-chef-alexandre .ca-stove {
  position: absolute; bottom: 10%; left: 10%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-story-chef-alexandre .ca-pot {
  position: absolute; bottom: 25%; left: 25%; width: 20%; height: 15%;
  background: radial-gradient(ellipse at center, #5a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 10% 10%;
  animation: ca-potboil 2s ease-in-out infinite;
}
.scn-story-chef-alexandre .ca-chef {
  position: absolute; bottom: 25%; right: 15%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ca-chefstir 4s ease-in-out infinite;
}
.scn-story-chef-alexandre .ca-steam {
  position: absolute; bottom: 40%; left: 30%; width: 20%; height: 10%;
  background: radial-gradient(ellipse at center, rgba(200,180,160,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: ca-steamrise 3s ease-in-out infinite alternate;
}
.scn-story-chef-alexandre .ca-counter {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
@keyframes ca-bgpulse { 0% { opacity:0.8 } 100% { opacity:0.95 } }
@keyframes ca-potboil { 0% { transform: translateY(0) scaleY(1) } 30% { transform: translateY(-1px) scaleY(1.02) } 60% { transform: translateY(1px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ca-chefstir { 0% { transform: rotate(0deg) } 25% { transform: rotate(-5deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes ca-steamrise { 0% { transform: translateY(0) scale(1); opacity:0.4 } 50% { transform: translateY(-10px) scale(1.2); opacity:0.8 } 100% { transform: translateY(0) scale(1); opacity:0.4 } }

/* making-death-cheerful */
.scn-making-death-cheerful {
  background: linear-gradient(135deg, #fbe9d0 0%, #f2cba0 50%, #dba570 100%),
              radial-gradient(ellipse at 30% 50%, #ffe0b0 0%, transparent 60%);
}
.scn-making-death-cheerful .arch {
  position: absolute; top: 0; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #dbb080 0%, #c89560 100%);
  border-radius: 50% 50% 0 0;
  transform: scaleX(1.05);
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  animation: mdc-arch 8s ease-in-out infinite alternate;
}
.scn-making-death-cheerful .coffin {
  position: absolute; bottom: 18%; left: 50%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c09870 0%, #a07a50 100%);
  border-radius: 6px 6px 20px 20px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: mdc-coffin 6s ease-in-out infinite;
}
.scn-making-death-cheerful .flowers {
  position: absolute; bottom: 18%; left: 50%; width: 160px; height: 40px;
  transform: translateX(-50%) translateY(-2px);
  background: radial-gradient(circle at 20% 50%, #f2a0c0 6px, transparent 6px),
              radial-gradient(circle at 50% 30%, #f0c080 8px, transparent 8px),
              radial-gradient(circle at 80% 60%, #e080a0 7px, transparent 7px);
  background-size: 40px 40px;
  animation: mdc-flowers 10s ease-in-out infinite;
}
.scn-making-death-cheerful .window-glow {
  position: absolute; top: 15%; left: 35%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #f0d090 60%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(255,240,180,0.3);
  animation: mdc-window 5s ease-in-out infinite alternate;
}
.scn-making-death-cheerful .sunbeam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: mdc-sunbeam 12s ease-in-out infinite alternate;
}
.scn-making-death-cheerful .petal {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0c0d0 0%, #d090a0 100%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-making-death-cheerful .p1 { top: 40%; left: 20%; animation: mdc-petal1 14s linear infinite; }
.scn-making-death-cheerful .p2 { top: 60%; left: 70%; animation: mdc-petal2 18s linear infinite reverse; }

@keyframes mdc-arch { 0% { transform: scaleX(1.05) translateY(0); } 50% { transform: scaleX(1.02) translateY(-4px); } 100% { transform: scaleX(1.05) translateY(0); } }
@keyframes mdc-coffin { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes mdc-flowers { 0%,100% { opacity: 0.9; } 50% { opacity: 1; transform: translateX(-50%) translateY(-6px); } }
@keyframes mdc-window { 0% { opacity: 0.7; box-shadow: 0 0 20px 10px rgba(255,240,180,0.2); } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(255,240,180,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 30px 15px rgba(255,240,180,0.3); } }
@keyframes mdc-sunbeam { 0% { opacity: 0.3; transform: skewX(-10deg) scaleX(1); } 50% { opacity: 0.6; transform: skewX(-8deg) scaleX(1.1); } 100% { opacity: 0.4; transform: skewX(-10deg) scaleX(1); } }
@keyframes mdc-petal1 { 0% { transform: translate(0,0) rotate(0deg); opacity: 0; } 10% { opacity: 1; } 100% { transform: translate(60px, 120px) rotate(360deg); opacity: 0; } }
@keyframes mdc-petal2 { 0% { transform: translate(0,0) rotate(0deg); opacity: 0; } 10% { opacity: 1; } 100% { transform: translate(-80px, 150px) rotate(-360deg); opacity: 0; } }

/* first-suicides */
.scn-first-suicides {
  background: linear-gradient(180deg, #f2d8b0 0%, #dbb88a 50%, #b09070 100%),
              radial-gradient(ellipse at 30% 80%, #f0d0a0 0%, transparent 70%);
}
.scn-first-suicides .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #a08060 0%, #6a5040 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); }
.scn-first-suicides .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #d0b898 0%, #c0a080 100%); }
.scn-first-suicides .window-high { position: absolute; top: 8%; left: 40%; width: 60px; height: 80px; background: radial-gradient(ellipse, #fff0c0 0%, #f0d090 60%, transparent 100%); border: 4px solid #7a6040; border-radius: 4px; animation: fsu-window 2s ease-in-out infinite alternate; }
.scn-first-suicides .door-dark { position: absolute; bottom: 20%; left: 70%; width: 40px; height: 80px; background: linear-gradient(180deg, #4a3628 0%, #2a1e14 100%); border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.6); animation: fsu-door 8s ease-in-out infinite; }
.scn-first-suicides .podium { position: absolute; bottom: 20%; left: 50%; width: 80px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #8a7050 0%, #6a5040 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-first-suicides .figure-lone { position: absolute; bottom: 20%; left: 50%; width: 20px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fsu-figure 3s ease-in-out infinite; }
.scn-first-suicides .crowd { position: absolute; bottom: 20%; width: 100%; height: 40px; display: flex; justify-content: space-around; background: none; }
.scn-first-suicides .c1 { left: 0; }
.scn-first-suicides .c2 { left: 0; bottom: 20%; }
.scn-first-suicides .crowd::before { content: ''; display: block; width: 100%; height: 100%; background: radial-gradient(circle at 10% 50%, #3a2a1a 6px, transparent 6px), radial-gradient(circle at 30% 30%, #3a2a1a 6px, transparent 6px), radial-gradient(circle at 50% 60%, #3a2a1a 6px, transparent 6px), radial-gradient(circle at 70% 40%, #3a2a1a 6px, transparent 6px), radial-gradient(circle at 90% 50%, #3a2a1a 6px, transparent 6px); background-size: 20px 20px; animation: fsu-crowd 4s ease-in-out infinite; }
.scn-first-suicides .clock { position: absolute; top: 10%; right: 15%; width: 30px; height: 30px; border: 3px solid #7a6040; border-radius: 50%; background: radial-gradient(circle, #f0e0c0 0%, #d0b898 100%); animation: fsu-clock 1s steps(60) infinite; }
@keyframes fsu-window { 0% { opacity: 0.6; box-shadow: 0 0 10px rgba(255,240,180,0.2); } 50% { opacity: 1; box-shadow: 0 0 30px rgba(255,240,180,0.5); } 100% { opacity: 0.7; box-shadow: 0 0 15px rgba(255,240,180,0.3); } }
@keyframes fsu-door { 0%,100% { transform: skewY(0deg); } 50% { transform: skewY(2deg); opacity: 0.9; } }
@keyframes fsu-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-45%) translateY(-2px) rotate(3deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-55%) translateY(-1px) rotate(-3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes fsu-crowd { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes fsu-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* card-room-club */
.scn-card-room-club {
  background: linear-gradient(135deg, #c8a878 0%, #b08858 50%, #906840 100%),
              radial-gradient(ellipse at 50% 30%, #e0c090 0%, transparent 70%);
}
.scn-card-room-club .table { position: absolute; bottom: 15%; left: 50%; width: 140px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 6px 20px rgba(0,0,0,0.5); animation: crc-table 7s ease-in-out infinite; }
.scn-card-room-club .chair { position: absolute; bottom: 15%; width: 30px; height: 50px; background: linear-gradient(180deg, #8a7050 0%, #604830 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; }
.scn-card-room-club .ch1 { left: 30%; animation: crc-chair1 5s ease-in-out infinite; }
.scn-card-room-club .ch2 { right: 30%; animation: crc-chair2 5s ease-in-out infinite reverse; }
.scn-card-room-club .chandelier { position: absolute; top: 5%; left: 50%; width: 50px; height: 40px; transform: translateX(-50%); background: radial-gradient(ellipse, #f0d090 0%, #c8a870 80%, transparent 100%); box-shadow: 0 0 30px 10px rgba(240,208,144,0.3); animation: crc-chandelier 8s ease-in-out infinite; }
.scn-card-room-club .cards { position: absolute; top: 40%; left: 50%; width: 16px; height: 22px; background: linear-gradient(135deg, #f0e0c0 0%, #d0b898 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: crc-cards 12s linear infinite; }
.scn-card-room-club .smoke { position: absolute; top: 30%; left: 55%; width: 30px; height: 60px; background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 100%); filter: blur(4px); animation: crc-smoke 15s ease-in-out infinite; }
.scn-card-room-club .wall-board { position: absolute; top: 0; left: 5%; width: 90%; height: 100%; background: repeating-linear-gradient(90deg, transparent, transparent 20px, rgba(100,80,60,0.2) 20px, rgba(100,80,60,0.2) 22px); }
.scn-card-room-club .bottle { position: absolute; bottom: 20%; left: 48%; width: 12px; height: 24px; background: linear-gradient(180deg, #806040 0%, #5a4028 100%); border-radius: 2px 2px 6px 6px; animation: crc-bottle 9s ease-in-out infinite; }
@keyframes crc-table { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } }
@keyframes crc-chair1 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes crc-chair2 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes crc-chandelier { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes crc-cards { 0% { transform: translateX(-30px) rotate(0deg); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translateX(30px) rotate(360deg); opacity: 0; } }
@keyframes crc-smoke { 0% { transform: translateY(0) scaleX(1); opacity: 0.2; } 50% { transform: translateY(-40px) scaleX(1.5); opacity: 0.5; } 100% { transform: translateY(-80px) scaleX(2); opacity: 0; } }
@keyframes crc-bottle { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }

/* scorn-for-death */
.scn-scorn-for-death {
  background: linear-gradient(180deg, #d4a870 0%, #b08048 50%, #7a5428 100%),
              radial-gradient(ellipse at 50% 60%, #e0b878 0%, transparent 60%);
}
.scn-scorn-for-death .stage { position: absolute; bottom: 0; left: 10%; width: 80%; height: 25%; background: linear-gradient(180deg, #4a3620 0%, #2a1c10 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.5); }
.scn-scorn-for-death .podium-small { position: absolute; bottom: 25%; left: 50%; width: 30px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 4px; }
.scn-scorn-for-death .speaker { position: absolute; bottom: 25%; left: 50%; width: 18px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a14 0%, #0a0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sfd-speaker 4s ease-in-out infinite; }
.scn-scorn-for-death .audience { position: absolute; bottom: 0; left: 15%; width: 70%; height: 20%; background: radial-gradient(circle at 10% 30%, #2a1c10 8px, transparent 8px), radial-gradient(circle at 30% 70%, #2a1c10 8px, transparent 8px), radial-gradient(circle at 50% 20%, #2a1c10 8px, transparent 8px), radial-gradient(circle at 70% 80%, #2a1c10 8px, transparent 8px), radial-gradient(circle at 90% 40%, #2a1c10 8px, transparent 8px); background-size: 20px 20px; animation: sfd-audience 6s ease-in-out infinite; }
.scn-scorn-for-death .banner { position: absolute; top: 5%; left: 50%; width: 120px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #a03628 0%, #702020 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: sfd-banner 10s ease-in-out infinite; }
.scn-scorn-for-death .spotlight { position: absolute; top: 0; left: 50%; width: 80px; height: 100%; transform: translateX(-50%); background: linear-gradient(180deg, rgba(255,220,150,0.4) 0%, transparent 100%); clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%); animation: sfd-spotlight 7s ease-in-out infinite alternate; }
.scn-scorn-for-death .curtain { position: absolute; top: 0; width: 20%; height: 100%; background: linear-gradient(180deg, #502428 0%, #301418 100%); border-radius: 0 0 40% 40%; }
.scn-scorn-for-death .left { left: 0; animation: sfd-curtain-left 12s ease-in-out infinite; }
.scn-scorn-for-death .right { right: 0; animation: sfd-curtain-right 12s ease-in-out infinite reverse; }
@keyframes sfd-speaker { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-48%) translateY(-2px) rotate(4deg); } 60% { transform: translateX(-52%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes sfd-audience { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sfd-banner { 0%,100% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.05); } }
@keyframes sfd-spotlight { 0% { opacity: 0.6; transform: translateX(-50%) rotate(-2deg); } 50% { opacity: 0.9; transform: translateX(-50%) rotate(2deg); } 100% { opacity: 0.7; transform: translateX(-50%) rotate(-2deg); } }
@keyframes sfd-curtain-left { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes sfd-curtain-right { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }

.scn-sceptic-scoffs {
  background:
    linear-gradient(180deg, #1a1018 0%, #2d1b26 40%, #3a222f 100%),
    radial-gradient(ellipse at 30% 40%, #2d1b26 0%, transparent 70%);
}
.scn-sceptic-scoffs .wall {
  position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0, transparent 8px, rgba(80,50,30,.3) 8px, rgba(80,50,30,.3) 9px);
  opacity:.5; animation: sco-wall 20s ease-in-out infinite;
}
.scn-sceptic-scoffs .lamp {
  position:absolute; bottom:30%; left:60%; width:14px; height:30px;
  background: linear-gradient(180deg, #6a3a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.3);
  animation: sco-lamp 4s ease-in-out infinite;
}
.scn-sceptic-scoffs .chair {
  position:absolute; bottom:20%; left:20%; width:50px; height:60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: perspective(100px) rotateY(-10deg);
  opacity:.9;
}
.scn-sceptic-scoffs .figure {
  position:absolute; bottom:22%; left:25%; width:28px; height:70px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: sco-fig 8s ease-in-out infinite;
}
.scn-sceptic-scoffs .hand {
  position:absolute; bottom:48%; left:38%; width:15px; height:8px;
  background: #1a1210; border-radius: 50% 50% 20% 20%;
  transform: rotate(20deg) scaleX(1.2);
  animation: sco-hand 3s ease-in-out infinite;
  box-shadow: 2px -2px 4px rgba(0,0,0,.5);
}
.scn-sceptic-scoffs .book {
  position:absolute; bottom:25%; left:32%; width:30px; height:20px;
  background: linear-gradient(135deg, #3a2a1a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.6);
  animation: sco-book 12s ease-in-out infinite;
}

@keyframes sco-wall {
  0% { opacity:.4; } 50% { opacity:.55; } 100% { opacity:.4; }
}
@keyframes sco-lamp {
  0% { box-shadow: 0 0 25px 8px #b0703a, 0 0 50px 15px rgba(176,112,58,.3); opacity:.9; }
  50% { box-shadow: 0 0 40px 15px #e0a060, 0 0 80px 25px rgba(224,160,96,.5); opacity:1; }
  100% { box-shadow: 0 0 28px 10px #b0703a, 0 0 55px 18px rgba(176,112,58,.35); opacity:.92; }
}
@keyframes sco-fig {
  0% { transform: rotate(5deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-2px); }
  50% { transform: rotate(6deg) translateY(-1px); }
  75% { transform: rotate(4deg) translateY(-3px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes sco-hand {
  0% { transform: rotate(20deg) scaleX(1.2) translate(0,0); }
  25% { transform: rotate(25deg) scaleX(1.3) translate(3px,-2px); }
  50% { transform: rotate(18deg) scaleX(1.1) translate(1px,-1px); }
  75% { transform: rotate(22deg) scaleX(1.25) translate(4px,-3px); }
  100% { transform: rotate(20deg) scaleX(1.2) translate(0,0); }
}
@keyframes sco-book {
  0% { transform: rotate(-5deg) translateY(0); opacity:.85; }
  50% { transform: rotate(-4deg) translateY(-1px); opacity:1; }
  100% { transform: rotate(-5deg) translateY(0); opacity:.88; }
}

.scn-defense-of-miracles {
  background:
    linear-gradient(180deg, #1a1115 0%, #241a20 40%, #3a2a30 100%),
    radial-gradient(ellipse at 70% 60%, #3a2a30 0%, transparent 60%);
}
.scn-defense-of-miracles .bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(60,40,30,.4) 0%, transparent 70%);
  animation: def-bg 15s ease-in-out infinite;
}
.scn-defense-of-miracles .table {
  position:absolute; bottom:25%; right:30%; width:70px; height:12px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: def-table 10s ease-in-out infinite;
}
.scn-defense-of-miracles .figure-left {
  position:absolute; bottom:25%; right:45%; width:25px; height:50px;
  background: linear-gradient(180deg, #0a0605 0%, #1a1010 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-5deg) scaleX(.9);
  animation: def-fig-left 12s ease-in-out infinite;
}
.scn-defense-of-miracles .figures-right {
  position:absolute; bottom:25%; right:15%; width:50px; height:45px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%);
  border-radius: 40% 40% 30% 30%;
  transform: scaleX(1.5) skewX(-5deg);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.4);
  animation: def-fig-r 18s ease-in-out infinite;
}
.scn-defense-of-miracles .flame {
  position:absolute; bottom:30%; right:38%; width:10px; height:18px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #c07030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 15px #c08040, 0 0 60px 25px rgba(192,128,64,.3);
  animation: def-flame 2s ease-in-out infinite alternate;
}
.scn-defense-of-miracles .shadow {
  position:absolute; bottom:25%; left:10%; width:80px; height:50px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: def-shadow 20s ease-in-out infinite;
}

@keyframes def-bg {
  0% { opacity:.3; } 50% { opacity:.45; } 100% { opacity:.3; }
}
@keyframes def-table {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes def-fig-left {
  0% { transform: rotate(-5deg) scaleX(.9) translateX(0); }
  25% { transform: rotate(-3deg) scaleX(.85) translateX(3px); }
  50% { transform: rotate(-6deg) scaleX(.92) translateX(-2px); }
  75% { transform: rotate(-4deg) scaleX(.87) translateX(2px); }
  100% { transform: rotate(-5deg) scaleX(.9) translateX(0); }
}
@keyframes def-fig-r {
  0% { transform: scaleX(1.5) skewX(-5deg) translateY(0); opacity:.8; }
  25% { transform: scaleX(1.48) skewX(-4deg) translateY(-1px); opacity:.9; }
  50% { transform: scaleX(1.52) skewX(-6deg) translateY(-2px); opacity:.85; }
  75% { transform: scaleX(1.49) skewX(-5deg) translateY(-1px); opacity:.9; }
  100% { transform: scaleX(1.5) skewX(-5deg) translateY(0); opacity:.8; }
}
@keyframes def-flame {
  0% { transform: scaleY(1) translateY(0); opacity:.9; box-shadow: 0 0 25px 10px #c08040; }
  25% { transform: scaleY(1.2) translateY(-2px); opacity:1; box-shadow: 0 0 40px 20px #e0a060; }
  50% { transform: scaleY(.9) translateY(1px); opacity:.8; box-shadow: 0 0 30px 15px #b0703a; }
  75% { transform: scaleY(1.1) translateY(-1px); opacity:.95; box-shadow: 0 0 35px 18px #d09050; }
  100% { transform: scaleY(1) translateY(0); opacity:.9; box-shadow: 0 0 28px 12px #c08040; }
}
@keyframes def-shadow {
  0% { transform: scale(1); opacity:.5; } 50% { transform: scale(1.05); opacity:.6; } 100% { transform: scale(1); opacity:.5; }
}

.scn-etretat-fisherman-dream {
  background:
    linear-gradient(180deg, #151218 0%, #221c24 40%, #2d2430 100%),
    radial-gradient(ellipse at 40% 70%, #2d2430 0%, transparent 60%);
}
.scn-etretat-fisherman-dream .wall {
  position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0, transparent 10px, rgba(60,40,30,.2) 10px, rgba(60,40,30,.2) 11px);
  opacity:.4; animation: etr-wall 25s linear infinite;
}
.scn-etretat-fisherman-dream .bed {
  position:absolute; bottom:20%; left:30%; width:80px; height:30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: etr-bed 14s ease-in-out infinite;
}
.scn-etretat-fisherman-dream .child {
  position:absolute; bottom:32%; left:35%; width:25px; height:30px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0a05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: etr-child 4s ease-in-out infinite;
}
.scn-etretat-fisherman-dream .blanket {
  position:absolute; bottom:23%; left:32%; width:40px; height:15px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-5deg);
  animation: etr-blanket 8s ease-in-out infinite;
}
.scn-etretat-fisherman-dream .window {
  position:absolute; top:30%; right:15%; width:30px; height:40px;
  background: radial-gradient(ellipse at 50% 50%, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: etr-window 20s ease-in-out infinite alternate;
}
.scn-etretat-fisherman-dream .lantern {
  position:absolute; bottom:35%; right:60%; width:10px; height:16px;
  background: radial-gradient(ellipse at 50% 40%, #e0a060 0%, #804020 80%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 15px #b0703a, 0 0 60px 25px rgba(176,112,58,.3);
  animation: etr-lantern 5s ease-in-out infinite;
}
.scn-etretat-fisherman-dream .chair {
  position:absolute; bottom:20%; left:15%; width:30px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-2deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,.4);
  animation: etr-chair 12s ease-in-out infinite;
}

@keyframes etr-wall {
  0% { opacity:.3; } 50% { opacity:.45; } 100% { opacity:.3; }
}
@keyframes etr-bed {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); }
}
@keyframes etr-child {
  0% { transform: rotate(10deg) translateY(0); }
  25% { transform: rotate(12deg) translateY(-3px) scale(1.02); }
  50% { transform: rotate(8deg) translateY(-1px); }
  75% { transform: rotate(11deg) translateY(-2px) scale(.98); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes etr-blanket {
  0% { transform: rotate(-5deg) scaleX(1); }
  50% { transform: rotate(-4deg) scaleX(1.05); }
  100% { transform: rotate(-5deg) scaleX(1); }
}
@keyframes etr-window {
  0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.35; }
}
@keyframes etr-lantern {
  0% { box-shadow: 0 0 20px 10px #a06030, 0 0 40px 15px rgba(160,96,48,.3); opacity:.85; }
  25% { box-shadow: 0 0 35px 18px #d09050, 0 0 70px 30px rgba(208,144,80,.5); opacity:1; }
  50% { box-shadow: 0 0 25px 12px #b0703a, 0 0 50px 20px rgba(176,112,58,.35); opacity:.9; }
  75% { box-shadow: 0 0 30px 15px #c08040, 0 0 60px 25px rgba(192,128,64,.4); opacity:.95; }
  100% { box-shadow: 0 0 22px 12px #a06030, 0 0 45px 18px rgba(160,96,48,.3); opacity:.85; }
}
@keyframes etr-chair {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(-2deg) translateY(0); }
}

.scn-storyteller-asked {
  background:
    linear-gradient(180deg, #1a1a10 0%, #2a2a18 40%, #3a3020 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-storyteller-asked .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%);
  animation: sto-ground 30s ease-in-out infinite;
}
.scn-storyteller-asked .fire {
  position:absolute; bottom:25%; left:50%; width:40px; height:30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #e08030 0%, #c05020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 60px 30px #e08030, 0 0 120px 50px rgba(224,128,48,.4);
  animation: sto-fire 4s ease-in-out infinite;
}
.scn-storyteller-asked .flame {
  position:absolute; bottom:35%; left:50%; width:12px; height:25px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 20%, #ffc080 0%, #e08030 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 10px #e08030;
  animation: sto-flame 1.5s ease-in-out infinite alternate;
}
.scn-storyteller-asked .smoke {
  position:absolute; bottom:50%; left:50%; width:30px; height:40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(200,180,150,.2) 0%, transparent 100%);
  filter: blur(6px);
  animation: sto-smoke 10s linear infinite;
}
.scn-storyteller-asked .figure1 {
  position:absolute; bottom:22%; left:25%; width:30px; height:40px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-8deg);
  animation: sto-fig1 9s ease-in-out infinite;
}
.scn-storyteller-asked .figure2 {
  position:absolute; bottom:22%; right:25%; width:28px; height:38px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(6deg);
  animation: sto-fig2 11s ease-in-out infinite;
}
.scn-storyteller-asked .figure3 {
  position:absolute; bottom:20%; left:50%; width:25px; height:35px;
  transform: translateX(-70px);
  background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(0deg);
  animation: sto-fig3 13s ease-in-out infinite;
}
.scn-storyteller-asked .spark {
  position:absolute; bottom:40%; left:50%; width:5px; height:5px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 10px 4px #ffd080;
  animation: sto-spark 8s linear infinite;
}

@keyframes sto-ground {
  0% { opacity:.6; } 50% { opacity:.75; } 100% { opacity:.6; }
}
@keyframes sto-fire {
  0% { transform: translateX(-50%) scale(1); opacity:.9; }
  50% { transform: translateX(-50%) scale(1.05); opacity:1; }
  100% { transform: translateX(-50%) scale(1); opacity:.92; }
}
@keyframes sto-flame {
  0% { transform: translateX(-50%) scaleY(1) translateY(0); }
  25% { transform: translateX(-50%) scaleY(1.15) translateY(-3px); }
  50% { transform: translateX(-50%) scaleY(.9) translateY(2px); }
  75% { transform: translateX(-50%) scaleY(1.1) translateY(-1px); }
  100% { transform: translateX(-50%) scaleY(1) translateY(0); }
}
@keyframes sto-smoke {
  0% { transform: translateX(-50%) translateY(0) scale(1); opacity:.3; }
  25% { transform: translateX(-40%) translateY(-15px) scale(1.2); opacity:.2; }
  50% { transform: translateX(-60%) translateY(-30px) scale(1.4); opacity:.1; }
  75% { transform: translateX(-45%) translateY(-45px) scale(1.6); opacity:.05; }
  100% { transform: translateX(-50%) translateY(-60px) scale(1.8); opacity:0; }
}
@keyframes sto-fig1 {
  0% { transform: rotate(-8deg) translateY(0); }
  25% { transform: rotate(-6deg) translateY(-2px); }
  50% { transform: rotate(-9deg) translateY(-1px); }
  75% { transform: rotate(-7deg) translateY(-3px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes sto-fig2 {
  0% { transform: rotate(6deg) translateY(0); }
  25% { transform: rotate(8deg) translateY(-1px); }
  50% { transform: rotate(5deg) translateY(-2px); }
  75% { transform: rotate(7deg) translateY(-1px); }
  100% { transform: rotate(6deg) translateY(0); }
}
@keyframes sto-fig3 {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-2px); }
  50% { transform: rotate(1deg) translateY(-1px); }
  75% { transform: rotate(-1deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sto-spark {
  0% { transform: translateY(0) scale(1); opacity:1; }
  25% { transform: translateY(-20px) scale(1.2); opacity:.8; }
  50% { transform: translateY(-40px) scale(1.4); opacity:.5; }
  75% { transform: translateY(-60px) scale(1.6); opacity:.2; }
  100% { transform: translateY(-80px) scale(2); opacity:0; }
}

/* jewess-gossip — tense / overcast */
.scn-jewess-gossip {
  background: linear-gradient(180deg, #4a5568 0%, #2d3748 40%, #1a202c 80%, #171923 100%);
}
.scn-jewess-gossip .jg-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #718096 0%, #4a5568 45%, transparent 100%);
  animation: jg-gloom 14s ease-in-out infinite alternate;
}
.scn-jewess-gossip .jg-horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 60% 40% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
}
.scn-jewess-gossip .jg-spire {
  position: absolute; bottom: 52%; right: 28%;
  width: 14px; height: 40px;
  background: linear-gradient(180deg, #2d3748 0%, #171923 100%);
  clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%);
  animation: jg-spire-pulse 4s ease-in-out infinite alternate;
}
.scn-jewess-gossip .jg-tree {
  position: absolute; bottom: 30%; left: -5%; width: 50%; height: 80%;
  background: radial-gradient(ellipse 80% 60% at 30% 100%, #171923 0%, transparent 70%),
              linear-gradient(180deg, #1a202c 0%, #0f111a 100%);
  border-radius: 70% 20% 40% 30% / 80% 30% 50% 20%;
  filter: blur(1px);
  animation: jg-tree-sway 8s ease-in-out infinite alternate;
}
.scn-jewess-gossip .jg-woman {
  position: absolute; bottom: 34%; left: 42%;
  width: 16px; height: 32px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: jg-walk 6s ease-in-out infinite;
}
.scn-jewess-gossip .jg-path {
  position: absolute; bottom: 30%; left: 20%; right: 30%; height: 20%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  clip-path: polygon(10% 0, 90% 0, 70% 100%, 30% 100%);
  opacity: 0.4;
}
.scn-jewess-gossip .jg-fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, rgba(113,128,150,0.3) 0%, transparent 60%);
  filter: blur(40px);
  animation: jg-fog-drift 30s linear infinite alternate;
}
@keyframes jg-gloom     { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes jg-spire-pulse { 0% { transform: scaleY(1) } 100% { transform: scaleY(0.95) } }
@keyframes jg-tree-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) translateX(4px) } 100% { transform: rotate(-1deg) } }
@keyframes jg-walk      { 0% { transform: translateX(0) } 25% { transform: translateX(6px) translateY(-1px) } 50% { transform: translateX(12px) } 75% { transform: translateX(18px) translateY(-1px) } 100% { transform: translateX(24px) } }
@keyframes jg-fog-drift { 0% { transform: translateX(-20px) } 100% { transform: translateX(40px) } }

/* judas-and-woman-begging — dark / sunlit */
.scn-judas-and-woman-begging {
  background: linear-gradient(180deg, #fefcbf 0%, #f6e05e 30%, #d69e2e 60%, #1a202c 100%);
}
.scn-judas-and-woman-begging .jb-sun {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, #ffffff 0%, #fefcbf 40%, transparent 70%);
  border-radius: 50%;
  animation: jb-glare 4s ease-in-out infinite alternate;
}
.scn-judas-and-woman-begging .jb-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(214,158,46,0.6) 100%);
}
.scn-judas-and-woman-begging .jb-road {
  position: absolute; bottom: 0; left: -10%; right: -10%; height: 60%;
  background: linear-gradient(180deg, #d69e2e 0%, #744210 100%);
  clip-path: polygon(0% 0, 100% 0, 80% 100%, 20% 100%);
}
.scn-judas-and-woman-begging .jb-man {
  position: absolute; bottom: 30%; left: 35%;
  width: 22px; height: 50px;
  background: linear-gradient(135deg, #1a202c 0%, #0f111a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: jb-beg 7s ease-in-out infinite;
}
.scn-judas-and-woman-begging .jb-woman {
  position: absolute; bottom: 28%; left: 48%;
  width: 20px; height: 48px;
  background: linear-gradient(135deg, #2d3748 0%, #1a202c 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%;
  transform: rotate(3deg);
  animation: jb-beg 9s ease-in-out infinite reverse;
}
.scn-judas-and-woman-begging .jb-shadow-man {
  position: absolute; bottom: 5%; left: 25%;
  width: 60px; height: 20px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  transform: skewX(-45deg);
  animation: jb-shadow-stretch 10s ease-in-out infinite alternate;
}
.scn-judas-and-woman-begging .jb-shadow-woman {
  position: absolute; bottom: 5%; left: 40%;
  width: 50px; height: 18px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  transform: skewX(-40deg);
  animation: jb-shadow-stretch 12s ease-in-out infinite alternate-reverse;
}
.scn-judas-and-woman-begging .jb-dust {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 80%, rgba(214,158,46,0.4) 0%, transparent 50%);
  filter: blur(8px);
  animation: jb-dust-drift 12s linear infinite;
}
@keyframes jb-glare { 0% { opacity: 0.8; transform: translateX(-50%) scale(1) } 100% { opacity: 1; transform: translateX(-50%) scale(1.1) } }
@keyframes jb-beg { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-4px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes jb-shadow-stretch { 0% { transform: skewX(-45deg) scalex(1) } 100% { transform: skewX(-50deg) scalex(1.2) } }
@keyframes jb-dust-drift { 0% { opacity: 0.3; transform: translateY(0) } 50% { opacity: 0.6; transform: translateY(-20px) } 100% { opacity: 0.2; transform: translateY(0) } }

/* item-live-pigs — calm / sunlit */
.scn-item-live-pigs {
  background: linear-gradient(180deg, #e2e8f0 0%, #bee3f8 30%, #90cdf4 50%, #f6e05e 80%, #68d391 100%);
}
.scn-item-live-pigs .ip-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e2e8f0 0%, #bee3f8 60%, transparent 100%);
}
.scn-item-live-pigs .ip-sun {
  position: absolute; top: 12%; left: 65%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fefcbf 0%, #f6e05e 40%, transparent 70%);
  border-radius: 50%;
  animation: ip-sun-glide 20s ease-in-out infinite alternate;
}
.scn-item-live-pigs .ip-lake {
  position: absolute; bottom: 20%; left: 10%; right: 0; height: 30%;
  background: linear-gradient(180deg, #63b3ed 0%, #2b6cb0 100%);
  border-radius: 30% 50% 0 0 / 20% 30% 0 0;
  animation: ip-lake-shimmer 5s ease-in-out infinite alternate;
}
.scn-item-live-pigs .ip-hill {
  position: absolute; bottom: 30%; left: 0; right: 40%; height: 40%;
  background: linear-gradient(180deg, #68d391 0%, #48bb78 100%);
  border-radius: 0 60% 0 0 / 0 80% 0 0;
}
.scn-item-live-pigs .ip-oak {
  position: absolute; bottom: 30%; left: 5%;
  width: 45%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #2f855a 0%, #22543d 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 10% 10%;
  animation: ip-oak-rustle 9s ease-in-out infinite alternate;
}
.scn-item-live-pigs .ip-man {
  position: absolute; bottom: 32%; left: 22%;
  width: 12px; height: 24px;
  background: linear-gradient(180deg, #e2e8f0 0%, #a0aec0 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
}
.scn-item-live-pigs .ip-pig-1 {
  position: absolute; bottom: 28%; left: 35%;
  width: 24px; height: 14px;
  background: radial-gradient(ellipse at 50% 50%, #fbb6ce 0%, #e53e3e 50%, #9b2c2c 100%);
  border-radius: 50% 50% 40% 40%;
  animation: ip-pig-wander 15s ease-in-out infinite;
}
.scn-item-live-pigs .ip-pig-2 {
  position: absolute; bottom: 26%; left: 42%;
  width: 20px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #feb2b2 0%, #c53030 50%, #742a2a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: ip-pig-wander 18s ease-in-out infinite reverse;
}
@keyframes ip-sun-glide     { 0% { transform: translateX(0) } 100% { transform: translateX(-30px) } }
@keyframes ip-lake-shimmer  { 0% { opacity: 0.8 } 100% { opacity: 1 } }
@keyframes ip-oak-rustle    { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(1deg) scale(1.02) } 100% { transform: rotate(-1deg) scale(0.98) } }
@keyframes ip-pig-wander    { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(10px) rotate(3deg) } 50% { transform: translateX(20px) rotate(-2deg) } 75% { transform: translateX(30px) rotate(4deg) } 100% { transform: translateX(40px) rotate(0deg) } }

/* priest-rejected — tense / dark */
.scn-priest-rejected {
  background: linear-gradient(180deg, #1a202c 0%, #171923 30%, #0f111a 70%, #000000 100%);
}
.scn-priest-rejected .pr-moon {
  position: absolute; top: 8%; right: 20%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #ecc94b 0%, #975a16 60%, transparent 100%);
  border-radius: 50%;
  opacity: 0.6;
  animation: pr-moon-glow 6s ease-in-out infinite alternate;
}
.scn-priest-rejected .pr-road {
  position: absolute; bottom: 0; left: -10%; right: 30%; height: 50%;
  background: linear-gradient(180deg, #2d3748 0%, #171923 100%);
  clip-path: polygon(0% 0, 100% 0, 70% 100%, 0% 100%);
}
.scn-priest-rejected .pr-figure {
  position: absolute; bottom: 22%; left: 30%;
  width: 18px; height: 46px;
  background: linear-gradient(135deg, #1a202c 0%, #000000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(8deg);
  animation: pr-struggle 4s ease-in-out infinite;
}
.scn-priest-rejected .pr-window {
  position: absolute; bottom: 48%; right: 22%;
  width: 16px; height: 20px;
  background: radial-gradient(circle, #fefcbf 0%, #f6ad55 60%, transparent 100%);
  border-radius: 10%;
  animation: pr-flicker 2s steps(2) infinite;
}
.scn-priest-rejected .pr-trees-bg {
  position: absolute; bottom: 15%; left: 5%; right: 50%; height: 70%;
  background: linear-gradient(180deg, #1a202c 0%, #0f111a 100%);
  clip-path: polygon(10% 0, 30% 30%, 25% 60%, 40% 100%, 0% 100%);
  animation: pr-thrash 3s ease-in-out infinite alternate;
}
.scn-priest-rejected .pr-trees-fg {
  position: absolute; bottom: 10%; left: -5%; right: 60%; height: 90%;
  background: linear-gradient(180deg, #000000 0%, #1a202c 100%);
  clip-path: polygon(5% 0, 15% 40%, 8% 70%, 25% 100%, 0% 100%);
  animation: pr-thrash 3.5s ease-in-out infinite alternate-reverse;
}
.scn-priest-rejected .pr-leaves {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 50%, rgba(214,158,46,0.1) 0%, transparent 30%),
              radial-gradient(circle at 70% 30%, rgba(255,255,255,0.05) 0%, transparent 20%);
  filter: blur(4px);
  animation: pr-wind-sweep 6s linear infinite;
}
@keyframes pr-moon-glow    { 0% { opacity: 0.4; transform: scale(0.95) } 100% { opacity: 0.7; transform: scale(1.05) } }
@keyframes pr-struggle     { 0% { transform: rotate(8deg) translateX(0) } 25% { transform: rotate(12deg) translateX(2px) } 50% { transform: rotate(5deg) translateX(-1px) } 75% { transform: rotate(10deg) translateX(3px) } 100% { transform: rotate(8deg) translateX(0) } }
@keyframes pr-flicker      { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.4; transform: scale(0.95) } }
@keyframes pr-thrash       { 0% { clip-path: polygon(10% 0, 30% 30%, 25% 60%, 40% 100%, 0% 100%) } 100% { clip-path: polygon(15% 0, 35% 25%, 20% 65%, 45% 100%, 0% 100%) } }
@keyframes pr-wind-sweep   { 0% { transform: translateX(-20px) } 100% { transform: translateX(40px) } }

.scn-coquetry { background: linear-gradient(180deg, #1c1620 0%, #2a1e26 30%, #1a1218 70%, #0d0a0e 100%), radial-gradient(ellipse at 30% 80%, #4a2a18 0%, transparent 70%); }

.scn-coquetry .bg-deep { position: absolute; inset: 0; background: linear-gradient(135deg, #1a1218 0%, #0d0a0e 100%); }

.scn-coquetry .window-glow { position: absolute; top: 12%; left: 65%; width: 20%; height: 28%; background: linear-gradient(135deg, #2a3a4a 0%, #1a222e 100%); border: 2px solid #3a2a1a; border-radius: 2px; box-shadow: inset 0 0 12px #3a5a6a; animation: coq-window 12s ease-in-out infinite alternate; }

.scn-coquetry .desk-wood { position: absolute; bottom: 8%; left: 10%; right: 10%; height: 28%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 60%, #1a0e08 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }

.scn-coquetry .hand-note { position: absolute; bottom: 22%; left: 38%; width: 22%; height: 16%; background: radial-gradient(ellipse at 40% 50%, #c0a880 0%, #8a7050 60%, transparent 70%), linear-gradient(135deg, #c8b898 0%, #9a8060 100%); border-radius: 0 40% 30% 0; transform-origin: 10% 60%; animation: coq-hand 6s ease-in-out infinite; box-shadow: 0 2px 6px rgba(0,0,0,.4); }

.scn-coquetry .candle-flame { position: absolute; bottom: 32%; left: 52%; width: 3%; height: 6%; background: radial-gradient(circle, #ffd060 0%, #e08020 50%, transparent 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 18px 6px #e08020, 0 0 36px 12px rgba(224,128,32,.4); animation: coq-candle 1.2s ease-in-out infinite alternate; }

.scn-coquetry .shadow-witness { position: absolute; bottom: 32%; left: 18%; width: 22%; height: 44%; background: linear-gradient(135deg, #0a080c 0%, #14101a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: .7; transform-origin: bottom center; animation: coq-shadow 8s ease-in-out infinite; }

.scn-coquetry .inkwell { position: absolute; bottom: 15%; left: 48%; width: 4%; height: 5%; background: radial-gradient(ellipse at 50% 30%, #1a1a22 0%, #0a0a0e 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }

@keyframes coq-window { 0% { opacity: .6; box-shadow: inset 0 0 8px #2a4a5a; } 50% { opacity: 1; box-shadow: inset 0 0 18px #4a7a8a; } 100% { opacity: .7; box-shadow: inset 0 0 10px #2a4a5a; } }

@keyframes coq-hand { 0%, 100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(1px); } 75% { transform: rotate(3deg) translateY(-1px); } }

@keyframes coq-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity: .85; } 30% { transform: scaleY(1.15) rotate(3deg); opacity: 1; } 60% { transform: scaleY(.9) rotate(-1deg); opacity: .9; } 100% { transform: scaleY(1.05) rotate(1deg); opacity: .8; } }

@keyframes coq-shadow { 0%, 100% { transform: translateX(0) scale(1); } 25% { transform: translateX(2px) scale(1.02); } 50% { transform: translateX(-1px) scale(.98); } 75% { transform: translateX(3px) scale(1.01); } }

.scn-threat-declared { background: linear-gradient(180deg, #0a0e1a 0%, #121a2e 40%, #0e1422 80%, #06080e 100%), radial-gradient(ellipse at 70% 30%, #1a2a4a 0%, transparent 70%); }

.scn-threat-declared .moon-sky { position: absolute; inset: 0; background: linear-gradient(180deg, #0a0e1a 0%, #141a2e 100%); }

.scn-threat-declared .moon-disk { position: absolute; top: 8%; right: 18%; width: 12%; aspect-ratio: 1/1; background: radial-gradient(circle, #d0d8e8 0%, #a0a8c0 80%); border-radius: 50%; box-shadow: 0 0 40px 12px rgba(160,168,192,.4), 0 0 80px 24px rgba(160,168,192,.15); animation: thr-moon 15s ease-in-out infinite alternate; }

.scn-threat-declared .wall-plaster { position: absolute; bottom: 0; left: 0; width: 40%; height: 75%; background: linear-gradient(90deg, #1a1e2a 0%, #22263a 100%); border-radius: 0 4px 0 0; box-shadow: -4px 0 12px rgba(0,0,0,.5); }

.scn-threat-declared .figure-tall { position: absolute; bottom: 8%; left: 24%; width: 14%; height: 56%; background: linear-gradient(135deg, #0a0c14 0%, #12162a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: thr-tall 9s ease-in-out infinite; }

.scn-threat-declared .figure-short { position: absolute; bottom: 6%; left: 30%; width: 12%; height: 40%; background: linear-gradient(135deg, #0e1220 0%, #161a30 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: thr-short 4s ease-in-out infinite; }

.scn-threat-declared .shadow-cast { position: absolute; bottom: 0; left: 28%; width: 30%; height: 70%; background: linear-gradient(135deg, rgba(10,14,26,.5) 0%, rgba(6,8,14,.8) 100%); filter: blur(8px); transform-origin: bottom left; animation: thr-shadow 12s ease-in-out infinite alternate; }

.scn-threat-declared .moonbeam { position: absolute; top: 0; right: 12%; width: 40%; height: 100%; background: linear-gradient(135deg, rgba(200,210,230,.1) 0%, rgba(200,210,230,.03) 60%, transparent 100%); filter: blur(12px); animation: thr-beam 18s ease-in-out infinite alternate; }

@keyframes thr-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 8px rgba(160,168,192,.3); } 50% { transform: translateY(-4px) scale(1.02); box-shadow: 0 0 60px 18px rgba(160,168,192,.5); } 100% { transform: translateY(2px) scale(.98); box-shadow: 0 0 40px 12px rgba(160,168,192,.35); } }

@keyframes thr-tall { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(1px) rotate(1deg); } 75% { transform: translateX(-4px) rotate(-1deg); } }

@keyframes thr-short { 0%, 100% { transform: translateX(0) translateY(0) rotate(0deg) scaleY(1); } 25% { transform: translateX(2px) translateY(-1px) rotate(4deg) scaleY(1.05); } 50% { transform: translateX(-1px) translateY(1px) rotate(-2deg) scaleY(.95); } 75% { transform: translateX(3px) translateY(0) rotate(5deg) scaleY(1.02); } }

@keyframes thr-shadow { 0% { transform: skewX(-8deg) scaleY(1); opacity: .5; } 50% { transform: skewX(-12deg) scaleY(1.1); opacity: .7; } 100% { transform: skewX(-6deg) scaleY(.95); opacity: .6; } }

@keyframes thr-beam { 0% { transform: rotate(-3deg) translateX(0); opacity: .3; } 50% { transform: rotate(2deg) translateX(4px); opacity: .6; } 100% { transform: rotate(-1deg) translateX(-2px); opacity: .4; } }

.scn-aunt-reserved { background: linear-gradient(180deg, #1a1a12 0%, #2a261e 20%, #1e1c16 50%, #12100e 100%), radial-gradient(ellipse at 50% 80%, #3a3022 0%, transparent 70%); }

.scn-aunt-reserved .room-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #1e1c16 0%, #12100e 100%); }

.scn-aunt-reserved .chair-wing { position: absolute; bottom: 8%; left: 50%; transform: translateX(-50%); width: 24%; height: 60%; background: linear-gradient(135deg, #2a2218 0%, #1a140e 100%); border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: aun-chair 15s ease-in-out infinite alternate; }

.scn-aunt-reserved .figure-rigid { position: absolute; bottom: 16%; left: 50%; transform: translateX(-50%); width: 14%; height: 42%; background: linear-gradient(180deg, #3a302a 0%, #2a221c 50%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aun-figure 10s ease-in-out infinite; }

.scn-aunt-reserved .table-round { position: absolute; bottom: 10%; left: 26%; width: 16%; aspect-ratio: 1.5/1; background: linear-gradient(135deg, #2a2218 0%, #1a140e 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,.4); }

.scn-aunt-reserved .book-closed { position: absolute; bottom: 14%; left: 30%; width: 5%; height: 7%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: aun-book 25s ease-in-out infinite; }

.scn-aunt-reserved .curtain-heavy { position: absolute; top: 0; left: 0; width: 18%; height: 100%; background: linear-gradient(180deg, #2a221e 0%, #1a1412 50%, #0e0a08 100%); border-radius: 0 4px 4px 0; animation: aun-curtain 12s ease-in-out infinite alternate; }

.scn-aunt-reserved .candle-wax { position: absolute; bottom: 22%; left: 46%; width: 2%; height: 5%; background: linear-gradient(180deg, #e8d8b0 0%, #c8a878 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px rgba(200,168,120,.3); animation: aun-candle 2s ease-in-out infinite alternate; }

@keyframes aun-chair { 0%, 100% { transform: translateX(-50%) scaleY(1); } 25% { transform: translateX(-50%) scaleY(1.01); } 50% { transform: translateX(-50%) scaleY(.99); } 75% { transform: translateX(-50%) scaleY(1.02); } }

@keyframes aun-figure { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-1deg) translateY(-1px); } 50% { transform: translateX(-50%) rotate(.5deg) translateY(1px); } 75% { transform: translateX(-50%) rotate(-.5deg) translateY(-1px); } }

@keyframes aun-book { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(3deg); } }

@keyframes aun-curtain { 0% { transform: translateX(0); opacity: .8; } 50% { transform: translateX(2px); opacity: .9; } 100% { transform: translateX(-2px); opacity: .85; } }

@keyframes aun-candle { 0% { transform: scaleY(1) rotate(-3deg); opacity: .85; } 30% { transform: scaleY(1.1) rotate(4deg); opacity: 1; } 60% { transform: scaleY(.95) rotate(-2deg); opacity: .9; } 100% { transform: scaleY(1.05) rotate(2deg); opacity: .8; } }

.scn-suicide-note { background: linear-gradient(180deg, #5a5a68 0%, #7a7a88 20%, #8a8a96 40%, #9a9aa2 60%, #aaaaaa 100%), linear-gradient(135deg, #4a4a5a 0%, #6a6a7a 50%, #8a8a96 100%); }

.scn-suicide-note .dawn-sky { position: absolute; inset: 0; background: linear-gradient(180deg, #7a7a88 0%, #8a8a96 40%, #9a9aa2 100%); animation: sui-sky 30s ease-in-out infinite alternate; }

.scn-suicide-note .ground-mud { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 60% 40% 0 0 / 20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }

.scn-suicide-note .tree-trunk { position: absolute; top: 0; right: 30%; width: 12%; height: 90%; background: linear-gradient(90deg, #2a1a0e 0%, #3a2a1a 30%, #2a1a0e 100%); border-radius: 20% 20% 10% 10%; box-shadow: -4px 0 12px rgba(0,0,0,.3); }

.scn-suicide-note .cap-lost { position: absolute; bottom: 36%; left: 38%; width: 8%; aspect-ratio: 1.2/1; background: radial-gradient(ellipse at 50% 40%, #a0a8b0 0%, #6a7080 100%); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,.4), inset 0 2px 4px rgba(255,255,255,.1); animation: sui-cap 15s ease-in-out infinite; }

.scn-suicide-note .figure-hanging { position: absolute; top: 20%; right: 34%; width: 6%; height: 40%; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); border-radius: 20% 20% 40% 40% / 10% 10% 60% 60%; transform-origin: top center; animation: sui-hang 6s ease-in-out infinite; box-shadow: 0 4px 12px rgba(0,0,0,.3); }

.scn-suicide-note .leaves-shake { position: absolute; top: 2%; right: 28%; width: 16%; height: 20%; background: radial-gradient(ellipse, #4a5a3a 0%, #2a3a1a 60%, transparent 80%); filter: blur(2px); animation: sui-leaves 2s ease-in-out infinite; }

.scn-suicide-note .branch-twisted { position: absolute; top: 6%; right: 30%; width: 6%; height: 18%; background: linear-gradient(135deg, #2a1a0e 0%, #1a0e08 100%); border-radius: 40% 10% 30% 10%; transform-origin: bottom right; animation: sui-branch 12s ease-in-out infinite alternate; }

@keyframes sui-sky { 0% { opacity: .8; filter: brightness(1); } 50% { opacity: 1; filter: brightness(1.1); } 100% { opacity: .9; filter: brightness(.95); } }

@keyframes sui-cap { 0%, 100% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(-3px) rotate(-8deg); } 75% { transform: translateX(4px) rotate(-4deg); } }

@keyframes sui-hang { 0% { transform: rotate(-3deg) translateX(0); } 25% { transform: rotate(2deg) translateX(2px); } 50% { transform: rotate(-4deg) translateX(-3px); } 75% { transform: rotate(5deg) translateX(4px); } 100% { transform: rotate(-2deg) translateX(-1px); } }

@keyframes sui-leaves { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(5deg); } 50% { transform: translateX(-4px) rotate(-6deg); } 75% { transform: translateX(5px) rotate(4deg); } }

@keyframes sui-branch { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } 100% { transform: rotate(-1deg) scaleY(.98); } }

/* pyre-blazing – warm firelit */
.scn-pyre-blazing {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #4a2a1a 40%, #8a3a1a 70%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 70%, #c85a17 0%, transparent 60%);
}
.scn-pyre-blazing .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 50%, transparent 100%);
  animation: pyb-sky 14s ease-in-out infinite alternate;
}
.scn-pyre-blazing .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(200,90,23,.15);
  animation: pyb-ocean 20s ease-in-out infinite;
}
.scn-pyre-blazing .pyre-base {
  position: absolute; bottom: 40%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: pyb-pyre 8s ease-in-out infinite;
}
.scn-pyre-blazing .flame-core {
  position: absolute; bottom: 55%; left: 45%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #f4a460 0%, #c85a17 60%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 40px 10px #c85a17, 0 0 80px 20px rgba(200,90,23,.4);
  animation: pyb-flame-core 3.5s ease-in-out infinite alternate;
}
.scn-pyre-blazing .flame-outer {
  position: absolute; bottom: 50%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #e07a2f 0%, #8a3a1a 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  filter: blur(4px);
  animation: pyb-flame-outer 5s ease-in-out infinite;
}
.scn-pyre-blazing .sparks-1 {
  position: absolute; bottom: 70%; left: 35%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd700 0%, #c85a17 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px #ffd700;
  animation: pyb-spark1 2.5s linear infinite;
}
.scn-pyre-blazing .sparks-2 {
  position: absolute; bottom: 75%; left: 55%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffe08a 0%, #c85a17 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffe08a;
  animation: pyb-spark2 3s linear infinite 1.2s;
}
.scn-pyre-blazing .smoke-drift {
  position: absolute; bottom: 60%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(80,50,30,.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: pyb-smoke 25s ease-in-out infinite alternate;
}
@keyframes pyb-sky {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}
@keyframes pyb-ocean {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes pyb-pyre {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(.5deg); }
  50% { transform: translateX(-1px) rotate(-.3deg); }
  75% { transform: translateX(3px) rotate(.6deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pyb-flame-core {
  0% { transform: scaleY(1) translateY(0); opacity: .9; }
  50% { transform: scaleY(1.3) translateY(-5px); opacity: 1; }
  100% { transform: scaleY(.9) translateY(2px); opacity: .85; }
}
@keyframes pyb-flame-outer {
  0% { transform: scaleX(1) scaleY(1) translateY(0); opacity: .6; }
  33% { transform: scaleX(1.1) scaleY(1.2) translateY(-3px); opacity: .7; }
  66% { transform: scaleX(.9) scaleY(1.15) translateY(2px); opacity: .55; }
  100% { transform: scaleX(1) scaleY(1) translateY(0); opacity: .6; }
}
@keyframes pyb-spark1 {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 1; }
  25% { transform: translateY(-20px) translateX(10px) scale(.8); opacity: .8; }
  50% { transform: translateY(-40px) translateX(-5px) scale(.5); opacity: .5; }
  75% { transform: translateY(-60px) translateX(15px) scale(.3); opacity: .2; }
  100% { transform: translateY(-80px) translateX(0) scale(0); opacity: 0; }
}
@keyframes pyb-spark2 {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 1; }
  30% { transform: translateY(-25px) translateX(-12px) scale(.7); opacity: .7; }
  60% { transform: translateY(-50px) translateX(8px) scale(.4); opacity: .4; }
  100% { transform: translateY(-90px) translateX(-5px) scale(0); opacity: 0; }
}
@keyframes pyb-smoke {
  0% { transform: translateY(0) scale(1); opacity: .3; }
  50% { transform: translateY(-15px) scale(1.1); opacity: .4; }
  100% { transform: translateY(-5px) scale(.95); opacity: .25; }
}

/* corpse-exposed – dark firelit, dramatic */
.scn-corpse-exposed {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #2a1a12 30%, #5a2a0a 60%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 65%, #c85a17 0%, transparent 55%);
}
.scn-corpse-exposed .sky-night {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a12 0%, #1a121a 100%);
  animation: cor-sky 18s ease-in-out infinite alternate;
}
.scn-corpse-exposed .sea-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0e1a1a 0%, #060a0e 100%);
  border-radius: 40% 50% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,.8);
  animation: cor-sea 22s ease-in-out infinite;
}
.scn-corpse-exposed .pyre-crumble {
  position: absolute; bottom: 38%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%;
  box-shadow: 0 4px 15px rgba(0,0,0,.9);
  animation: cor-crumble 7s ease-in-out infinite;
}
.scn-corpse-exposed .flame-blinding {
  position: absolute; bottom: 45%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #ffe08a 0%, #c85a17 50%, #4a2a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%;
  box-shadow: 0 0 60px 15px #c85a17, 0 0 120px 30px rgba(200,90,23,.5);
  animation: cor-flame 4s ease-in-out infinite alternate;
}
.scn-corpse-exposed .corpse-silhouette {
  position: absolute; bottom: 35%; left: 42%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset 0 4px 8px rgba(200,90,23,.1), 0 6px 12px rgba(0,0,0,.8);
  animation: cor-corpse 6s ease-in-out infinite;
}
.scn-corpse-exposed .sparks-bright {
  position: absolute; bottom: 70%; left: 40%; width: 5px; height: 5px;
  background: radial-gradient(circle, #ffd700 0%, #e07a2f 60%);
  border-radius: 50%;
  box-shadow: 0 0 14px 4px #ffd700;
  animation: cor-spark 2s linear infinite;
}
.scn-corpse-exposed .smoke-thick {
  position: absolute; bottom: 50%; left: 25%; width: 50%; height: 55%;
  background: radial-gradient(ellipse at 50% 100%, rgba(40,20,10,.35) 0%, transparent 70%);
  filter: blur(12px);
  animation: cor-smoke 30s ease-in-out infinite alternate;
}
@keyframes cor-sky {
  0% { opacity: .5; }
  50% { opacity: .8; }
  100% { opacity: .4; }
}
@keyframes cor-sea {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes cor-crumble {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  30% { transform: translateX(4px) rotate(2deg) scale(1.02); }
  60% { transform: translateX(-3px) rotate(-1.5deg) scale(.98); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes cor-flame {
  0% { transform: scaleY(1) translateY(0); opacity: .9; }
  50% { transform: scaleY(1.4) translateY(-8px); opacity: 1; }
  100% { transform: scaleY(.85) translateY(3px); opacity: .8; }
}
@keyframes cor-corpse {
  0% { transform: translateX(0) rotate(0deg); opacity: .5; }
  25% { transform: translateX(3px) rotate(2deg); opacity: .6; }
  50% { transform: translateX(-2px) rotate(-1deg); opacity: .4; }
  75% { transform: translateX(4px) rotate(3deg); opacity: .55; }
  100% { transform: translateX(0) rotate(0deg); opacity: .5; }
}
@keyframes cor-spark {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 1; }
  25% { transform: translateY(-15px) translateX(8px) scale(.7); opacity: .8; }
  50% { transform: translateY(-30px) translateX(-6px) scale(.4); opacity: .5; }
  75% { transform: translateY(-45px) translateX(10px) scale(.2); opacity: .2; }
  100% { transform: translateY(-60px) translateX(0) scale(0); opacity: 0; }
}
@keyframes cor-smoke {
  0% { transform: translateY(0) scale(1); opacity: .25; }
  50% { transform: translateY(-12px) scale(1.08); opacity: .35; }
  100% { transform: translateY(-4px) scale(.95); opacity: .2; }
}

/* mourners-watching – sad firelit, wide horizon */
.scn-mourners-watching {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 30%, #4a2a1a 65%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 80%, #b85a1a 0%, transparent 60%);
}
.scn-mourners-watching .sky-sad {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 50%, transparent 100%);
  animation: mou-sky 20s ease-in-out infinite alternate;
}
.scn-mourners-watching .horizon-sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #0e1a1a 0%, #060e0e 100%);
  border-radius: 40% 50% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
  animation: mou-sea 25s ease-in-out infinite;
}
.scn-mourners-watching .fire-hearth {
  position: absolute; bottom: 28%; left: 40%; width: 20%; height: 22%;
  background: linear-gradient(180deg, #e07a2f 0%, #8a3a1a 70%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 10px #c85a17, 0 0 80px 20px rgba(200,90,23,.3);
  animation: mou-fire 6s ease-in-out infinite alternate;
}
.scn-mourners-watching .smoke-soft {
  position: absolute; bottom: 40%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(40,20,10,.25) 0%, transparent 70%);
  filter: blur(14px);
  animation: mou-smoke 35s ease-in-out infinite alternate;
}
.scn-mourners-watching .figure-left {
  position: absolute; bottom: 22%; left: 15%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #1a120e 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: mou-fig-l 8s ease-in-out infinite;
}
.scn-mourners-watching .figure-center {
  position: absolute; bottom: 20%; left: 42%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #1a120e 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: mou-fig-c 10s ease-in-out infinite 1s;
}
.scn-mourners-watching .figure-right {
  position: absolute; bottom: 23%; left: 68%; width: 12%; height: 17%;
  background: linear-gradient(180deg, #1a120e 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: mou-fig-r 9s ease-in-out infinite .5s;
}
.scn-mourners-watching .ember-glow {
  position: absolute; bottom: 35%; left: 45%; width: 10%; height: 10%;
  background: radial-gradient(circle, #ffd700 0%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #ffd700;
  animation: mou-ember 4s ease-in-out infinite alternate;
}
@keyframes mou-sky {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .5; }
}
@keyframes mou-sea {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.005); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes mou-fire {
  0% { transform: scaleY(1) translateY(0); opacity: .85; }
  50% { transform: scaleY(1.2) translateY(-4px); opacity: 1; }
  100% { transform: scaleY(.9) translateY(2px); opacity: .8; }
}
@keyframes mou-smoke {
  0% { transform: translateY(0) scale(1); opacity: .2; }
  50% { transform: translateY(-10px) scale(1.05); opacity: .3; }
  100% { transform: translateY(-3px) scale(.97); opacity: .15; }
}
@keyframes mou-fig-l {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mou-fig-c {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-1px) rotate(.5deg); }
  40% { transform: translateY(0) rotate(0deg); }
  60% { transform: translateY(-3px) rotate(-.8deg); }
  80% { transform: translateY(-1px) rotate(.3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mou-fig-r {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(-.5deg); }
  60% { transform: translateY(-2px) rotate(.7deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mou-ember {
  0% { opacity: .4; transform: scale(1); }
  50% { opacity: .8; transform: scale(1.2); }
  100% { opacity: .5; transform: scale(.9); }
}

/* item-cremation-urn – calm dawn */
.scn-item-cremation-urn {
  background:
    linear-gradient(180deg, #4a6fa5 0%, #6a8fbf 30%, #b0c4de 60%, #e8d8c8 100%),
    radial-gradient(ellipse at 50% 100%, #f3c5a8 0%, transparent 70%);
}
.scn-item-cremation-urn .dawn-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a6fa5 0%, #8ab0d8 50%, #c8d8e8 100%);
  animation: urn-sky 25s ease-in-out infinite alternate;
}
.scn-item-cremation-urn .dawn-horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #d4c4b0 0%, #b8a898 100%);
  border-radius: 60% 50% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 2px 8px rgba(0,0,0,.1);
  animation: urn-horiz 30s ease-in-out infinite;
}
.scn-item-cremation-urn .urn-body {
  position: absolute; bottom: 20%; left: 42%; width: 16%; height: 28%;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 60%, #705030 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  box-shadow: 0 6px 20px rgba(0,0,0,.3);
  animation: urn-body 12s ease-in-out infinite;
}
.scn-item-cremation-urn .urn-lid {
  position: absolute; bottom: 45%; left: 43%; width: 14%; height: 6%;
  background: linear-gradient(180deg, #d8b888 0%, #b09060 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: urn-lid 8s ease-in-out infinite alternate;
}
.scn-item-cremation-urn .steam-1 {
  position: absolute; bottom: 50%; left: 47%; width: 6%; height: 30%;
  background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(8px);
  animation: urn-steam1 14s ease-in-out infinite;
}
.scn-item-cremation-urn .steam-2 {
  position: absolute; bottom: 50%; left: 43%; width: 5%; height: 25%;
  background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(6px);
  animation: urn-steam2 18s ease-in-out infinite 4s;
}
.scn-item-cremation-urn .dawn-sun {
  position: absolute; bottom: 35%; left: 70%; width: 12%; height: 12%;
  background: radial-gradient(circle, #f3c5a8 0%, #eebb55 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #f3c5a8, 0 0 80px 20px rgba(238,187,85,.3);
  animation: urn-sun 30s ease-in-out infinite alternate;
}
@keyframes urn-sky {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .8; }
}
@keyframes urn-horiz {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.005); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes urn-body {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(.3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-.2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes urn-lid {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes urn-steam1 {
  0% { transform: translateY(0) scale(1) translateX(0); opacity: .4; }
  25% { transform: translateY(-15px) scale(1.1) translateX(4px); opacity: .3; }
  50% { transform: translateY(-30px) scale(1.2) translateX(-2px); opacity: .2; }
  75% { transform: translateY(-45px) scale(1.3) translateX(6px); opacity: .1; }
  100% { transform: translateY(-60px) scale(1.4) translateX(0); opacity: 0; }
}
@keyframes urn-steam2 {
  0% { transform: translateY(0) scale(1) translateX(0); opacity: .35; }
  30% { transform: translateY(-12px) scale(1.05) translateX(-5px); opacity: .25; }
  60% { transform: translateY(-28px) scale(1.15) translateX(3px); opacity: .15; }
  100% { transform: translateY(-50px) scale(1.25) translateX(-2px); opacity: 0; }
}
@keyframes urn-sun {
  0% { opacity: .6; transform: translateY(0) scale(1); }
  50% { opacity: .9; transform: translateY(-3px) scale(1.02); }
  100% { opacity: .7; transform: translateY(0) scale(1); }
}

/* Scene: spring-landscape */
.scn-spring-landscape { background: linear-gradient(180deg, #72b8de 0%, #b8d4a8 50%, #d4c04a 100%), radial-gradient(ellipse at 50% 100%, #e0d060 0%, transparent 60%); }

.scn-spring-landscape .sl-sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #7ab8df 0%, #b4d6b0 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; animation: sl-sky 16s ease-in-out infinite alternate; }
.scn-spring-landscape .sl-sun { position: absolute; top: 8%; left: 60%; width: 60px; height: 60px; background: radial-gradient(circle, #fff8e0 0%, #ffd580 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255, 213, 128, 0.5); animation: sl-sun 20s ease-in-out infinite alternate; }
.scn-spring-landscape .sl-hills-far { position: absolute; bottom: 35%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #8ab890 0%, #5a8a5a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); animation: sl-hills-far 24s ease-in-out infinite alternate; }
.scn-spring-landscape .sl-hills-near { position: absolute; bottom: 20%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #6a9a5a 0%, #3a6a2a 100%); border-radius: 30% 70% 0 0 / 50% 90% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,0.3); animation: sl-hills-near 18s ease-in-out infinite alternate-reverse; }
.scn-spring-landscape .sl-river { position: absolute; bottom: 18%; left: 10%; right: 10%; height: 6%; background: linear-gradient(90deg, #8ab8d0 0%, #c0e0e8 30%, #a0c8d8 70%, #6a98b0 100%); border-radius: 0 0 40% 40% / 0 0 80% 80%; box-shadow: inset 0 2px 8px rgba(255,255,255,0.6); animation: sl-river 8s ease-in-out infinite alternate; }
.scn-spring-landscape .sl-figure { position: absolute; bottom: 22%; left: 30%; width: 16px; height: 30px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sl-figure 6s ease-in-out infinite; }
.scn-spring-landscape .sl-tree { position: absolute; bottom: 30%; right: 15%; width: 40px; height: 70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px 10px rgba(80, 60, 40, 0.3); animation: sl-tree 12s ease-in-out infinite alternate; }

@keyframes sl-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sl-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 60px 20px rgba(255, 213, 128, 0.5); } 50% { transform: translateY(-6px) scale(1.02); box-shadow: 0 0 80px 30px rgba(255, 213, 128, 0.7); } 100% { transform: translateY(3px) scale(0.98); box-shadow: 0 0 50px 15px rgba(255, 213, 128, 0.4); } }
@keyframes sl-hills-far { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.01); } 100% { transform: translateY(2px) scaleX(0.99); } }
@keyframes sl-hills-near { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(3px) scaleX(0.99); } 100% { transform: translateY(-2px) scaleX(1.01); } }
@keyframes sl-river { 0% { transform: scaleX(1) scaleY(1); opacity: 0.8; } 50% { transform: scaleX(1.01) scaleY(1.1); opacity: 1; } 100% { transform: scaleX(0.99) scaleY(0.95); opacity: 0.85; } }
@keyframes sl-figure { 0% { transform: translateX(0) rotate(-2deg) scaleY(1); } 25% { transform: translateX(8px) rotate(2deg) scaleY(1.02); } 50% { transform: translateX(16px) rotate(-1deg) scaleY(1); } 75% { transform: translateX(24px) rotate(1deg) scaleY(0.98); } 100% { transform: translateX(32px) rotate(0) scaleY(1); } }
@keyframes sl-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }


/* Scene: journey-to-south */
.scn-journey-to-south { background: linear-gradient(180deg, #f0d080 0%, #d4a050 30%, #b08040 100%), radial-gradient(ellipse at 50% 0%, #ffe880 0%, transparent 70%); }

.scn-journey-to-south .js-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #fae4b0 0%, #f0c870 100%); border-radius: 0 0 50% 50%; animation: js-sky 12s ease-in-out infinite alternate; }
.scn-journey-to-south .js-road { position: absolute; bottom: 0; left: 30%; right: 30%; height: 60%; background: linear-gradient(180deg, #c89848 0%, #8a6830 100%); clip-path: polygon(30% 0%, 70% 0%, 80% 100%, 20% 100%); border-radius: 0 0 20% 20%; animation: js-road 20s ease-in-out infinite alternate; }
.scn-journey-to-south .js-city-dome { position: absolute; bottom: 40%; left: 50%; width: 80px; height: 60px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 20%, #ffe8a0 0%, #d4a050 40%, #a07030 100%); border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: 0 0 40px 15px rgba(212, 160, 80, 0.6), 0 0 80px 30px rgba(255, 232, 160, 0.3); animation: js-city-dome 8s ease-in-out infinite alternate; }
.scn-journey-to-south .js-cypress-left { position: absolute; bottom: 30%; left: 18%; width: 20px; height: 120px; background: linear-gradient(180deg, #3a5a2a 0%, #1a2a10 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; box-shadow: 0 0 10px 2px rgba(0,0,0,0.3); animation: js-cypress-l 15s ease-in-out infinite alternate; }
.scn-journey-to-south .js-cypress-right { position: absolute; bottom: 30%; right: 18%; width: 24px; height: 140px; background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; box-shadow: 0 0 10px 2px rgba(0,0,0,0.3); animation: js-cypress-r 18s ease-in-out infinite alternate-reverse; }
.scn-journey-to-south .js-blossoms { position: absolute; top: 10%; left: 10%; right: 10%; height: 20%; background: transparent; background-image: radial-gradient(circle, #fff4d0 1px, transparent 1px); background-size: 20px 20px; animation: js-blossoms 25s linear infinite; }
.scn-journey-to-south .js-pilgrim { position: absolute; bottom: 18%; left: 45%; width: 14px; height: 28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: js-pilgrim 8s ease-in-out infinite; }

@keyframes js-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes js-road { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(2px); } 100% { transform: scaleY(0.98) translateY(-2px); } }
@keyframes js-city-dome { 0% { transform: translateX(-50%) translateY(0) scale(1); box-shadow: 0 0 40px 15px rgba(212, 160, 80, 0.6); } 50% { transform: translateX(-50%) translateY(-4px) scale(1.02); box-shadow: 0 0 60px 25px rgba(255, 232, 160, 0.8); } 100% { transform: translateX(-50%) translateY(3px) scale(0.98); box-shadow: 0 0 30px 10px rgba(212, 160, 80, 0.5); } }
@keyframes js-cypress-l { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes js-cypress-r { 0% { transform: rotate(2deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(1deg); } }
@keyframes js-blossoms { 0% { background-position: 0 0; } 100% { background-position: 40px 40px; } }
@keyframes js-pilgrim { 0% { transform: translateX(0) rotate(-2deg) scaleY(1); } 25% { transform: translateX(6px) rotate(2deg) scaleY(1.03); } 50% { transform: translateX(12px) rotate(-1deg) scaleY(1); } 75% { transform: translateX(18px) rotate(1deg) scaleY(0.97); } 100% { transform: translateX(24px) rotate(0) scaleY(1); } }


/* Scene: item-orange-blossoms */
.scn-item-orange-blossoms { background: linear-gradient(180deg, #0a1a08 0%, #1a2a10 30%, #2a3a18 100%), radial-gradient(ellipse at 50% 80%, #3a5a28 0%, transparent 70%); }

.scn-item-orange-blossoms .ob-canopy-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%, #3a5a28 0%, #1a2a10 100%); animation: ob-canopy 60s ease-in-out infinite alternate; }
.scn-item-orange-blossoms .ob-sunbeam { position: absolute; top: -10%; left: 30%; width: 20%; height: 60%; background: linear-gradient(180deg, rgba(255, 230, 150, 0.4) 0%, transparent 100%); transform: rotate(15deg); border-radius: 50%; filter: blur(8px); animation: ob-sunbeam 12s ease-in-out infinite alternate; }
.scn-item-orange-blossoms .ob-blossom-cluster { position: absolute; top: 5%; left: 10%; right: 10%; bottom: 40%; background: radial-gradient(circle at 30% 40%, rgba(255, 255, 220, 0.8) 0%, transparent 30%), radial-gradient(circle at 70% 60%, rgba(255, 255, 220, 0.6) 0%, transparent 30%), radial-gradient(circle at 50% 20%, rgba(255, 240, 180, 0.9) 0%, transparent 40%); filter: blur(2px); animation: ob-cluster 20s ease-in-out infinite alternate; }
.scn-item-orange-blossoms .ob-figure-resting { position: absolute; bottom: 15%; left: 50%; width: 80px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; box-shadow: inset 0 10px 15px rgba(0,0,0,0.5); animation: ob-rest 8s ease-in-out infinite alternate; }
.scn-item-orange-blossoms .ob-petal-fall { position: absolute; inset: 0; background: transparent; background-image: radial-gradient(circle, #fff8e0 1px, transparent 1px); background-size: 30px 30px; animation: ob-petal 25s linear infinite; }

@keyframes ob-canopy { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes ob-sunbeam { 0% { transform: rotate(12deg) scaleY(1); opacity: 0.6; } 50% { transform: rotate(18deg) scaleY(1.1); opacity: 1; } 100% { transform: rotate(14deg) scaleY(0.95); opacity: 0.7; } }
@keyframes ob-cluster { 0% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-4px); } 100% { opacity: 0.9; transform: translateY(3px); } }
@keyframes ob-rest { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes ob-petal { 0% { background-position: 0 0; transform: rotate(0); } 100% { background-position: 60px 90px; transform: rotate(10deg); } }


/* Scene: ravine-landscape */
.scn-ravine-landscape { background: linear-gradient(180deg, #9ac0d0 0%, #7aa0b0 30%, #4a6a78 100%), radial-gradient(ellipse at 50% 0%, #b0d8e8 0%, transparent 70%); }

.scn-ravine-landscape .rl-sky-high { position: absolute; top: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #b0d8e8 0%, #8ab8c8 100%); border-radius: 0 0 30% 30%; animation: rl-sky 18s ease-in-out infinite alternate; }
.scn-ravine-landscape .rl-gorge-left { position: absolute; top: 5%; left: 0; width: 30%; bottom: 0; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 0 30% 0 15% / 0 60% 0 30%; box-shadow: inset -10px 0 20px rgba(0,0,0,0.4); animation: rl-gorge-l 40s ease-in-out infinite alternate; }
.scn-ravine-landscape .rl-gorge-right { position: absolute; top: 10%; right: 0; width: 25%; bottom: 0; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 30% 0 15% 0 / 60% 0 30% 0; box-shadow: inset 10px 0 20px rgba(0,0,0,0.4); animation: rl-gorge-r 45s ease-in-out infinite alternate-reverse; }
.scn-ravine-landscape .rl-reservoir { position: absolute; bottom: 5%; left: 25%; right: 25%; height: 20%; background: linear-gradient(180deg, #6a98a8 0%, #4a7888 100%); border-radius: 50% 50% 20% 20% / 60% 60% 10% 10%; box-shadow: inset 0 8px 15px rgba(255,255,255,0.3); animation: rl-reservoir 14s ease-in-out infinite alternate; }
.scn-ravine-landscape .rl-lemon-trees { position: absolute; bottom: 20%; left: 15%; right: 15%; height: 30%; background: transparent; background-image: radial-gradient(circle at 20% 80%, #5a7a4a 6px, transparent 6px), radial-gradient(circle at 80% 60%, #5a7a4a 8px, transparent 8px), radial-gradient(circle at 50% 90%, #5a7a4a 5px, transparent 5px), radial-gradient(circle at 30% 50%, #f0e060 3px, transparent 3px), radial-gradient(circle at 70% 40%, #f0e060 4px, transparent 4px), radial-gradient(circle at 50% 70%, #f0e060 3px, transparent 3px); filter: blur(1px); animation: rl-lemons 24s ease-in-out infinite alternate; }
.scn-ravine-landscape .rl-mist { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, rgba(180, 210, 220, 0) 0%, rgba(180, 210, 220, 0.4) 70%, rgba(200, 230, 240, 0.6) 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; filter: blur(10px); animation: rl-mist 20s ease-in-out infinite alternate; }

@keyframes rl-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rl-gorge-l { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-6px) scaleX(1.01); } 100% { transform: translateY(4px) scaleX(0.99); } }
@keyframes rl-gorge-r { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(5px) scaleX(0.99); } 100% { transform: translateY(-4px) scaleX(1.01); } }
@keyframes rl-reservoir { 0% { transform: scaleY(1) scaleX(1); opacity: 0.9; } 50% { transform: scaleY(1.05) scaleX(1.01); opacity: 1; } 100% { transform: scaleY(0.95) scaleX(0.99); opacity: 0.85; } }
@keyframes rl-lemons { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes rl-mist { 0% { opacity: 0.6; transform: translateY(0) scaleY(1); } 50% { opacity: 0.9; transform: translateY(-4px) scaleY(1.1); } 100% { opacity: 0.7; transform: translateY(3px) scaleY(0.95); } }

.scn-chicot-plots { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2a 100%), radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 60%); }
.scn-chicot-plots .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a10 0%, #1a1a2e 100%); opacity:0.7; animation: cp-bg 12s ease-in-out infinite alternate; }
.scn-chicot-plots .bg-mid { position:absolute; inset:10% 10% 20% 15%; background: linear-gradient(90deg, #2a2a3e 0%, #3a3a4e 50%, #2a2a3e 100%); border-radius: 5%; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: cp-mid 8s ease-in-out infinite; }
.scn-chicot-plots .window-glow { position:absolute; top:15%; left:35%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 50%, #c8b080 0%, #806040 70%, transparent 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 60px 20px rgba(200,176,128,0.4), 0 0 120px 40px rgba(200,176,128,0.2); animation: cp-glow 5s ease-in-out infinite alternate; }
.scn-chicot-plots .figure-silhouette { position:absolute; bottom:20%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #0a0a10 0%, #050508 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-figure 3s ease-in-out infinite; }
.scn-chicot-plots .shadow-on-wall { position:absolute; bottom:15%; left:28%; width:60px; height:100px; background: rgba(0,0,0,0.4); border-radius: 40% 60% 30% 50%; filter: blur(8px); animation: cp-shadow 3s ease-in-out infinite; }
.scn-chicot-plots .light-beam { position:absolute; top:20%; left:38%; width:100px; height:200px; background: linear-gradient(135deg, rgba(200,176,128,0.15) 0%, transparent 80%); transform: rotate(-15deg); animation: cp-beam 6s ease-in-out infinite alternate; }
@keyframes cp-bg { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes cp-mid { 0% { transform: scale(1); } 50% { transform: scale(1.02) skewX(-2deg); } 100% { transform: scale(1); } }
@keyframes cp-glow { 0% { opacity:0.5; box-shadow: 0 0 40px 10px rgba(200,176,128,0.3); } 50% { opacity:0.9; box-shadow: 0 0 80px 30px rgba(200,176,128,0.6); } 100% { opacity:0.6; box-shadow: 0 0 60px 20px rgba(200,176,128,0.4); } }
@keyframes cp-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cp-shadow { 0% { transform: translateY(0) scale(1); opacity:0.4; } 50% { transform: translateY(-3px) scale(1.1); opacity:0.6; } 100% { transform: translateY(0) scale(1); opacity:0.4; } }
@keyframes cp-beam { 0% { opacity:0.1; transform: rotate(-15deg) translateX(0); } 50% { opacity:0.3; transform: rotate(-15deg) translateX(10px); } 100% { opacity:0.1; transform: rotate(-15deg) translateX(0); } }

.scn-magloire-visits-inn { background: linear-gradient(180deg, #f5e6c8 0%, #e8d5b0 40%, #d4bf94 100%), radial-gradient(ellipse at 50% 100%, #f0d8a8 0%, transparent 70%); }
.scn-magloire-visits-inn .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c4a87a 0%, #a88c5a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); animation: mi-floor 10s ease-in-out infinite; }
.scn-magloire-visits-inn .wall-back { position:absolute; inset:20% 10% 30% 10%; background: linear-gradient(90deg, #e8d5b0 0%, #f5e6c8 50%, #e8d5b0 100%); border-radius: 10px; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); animation: mi-wall 15s ease-in-out infinite alternate; }
.scn-magloire-visits-inn .table { position:absolute; bottom:25%; left:30%; width:120px; height:50px; background: linear-gradient(180deg, #b8956a 0%, #8a6d4a 100%); border-radius: 5px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: mi-table 6s ease-in-out infinite; }
.scn-magloire-visits-inn .chair { position:absolute; bottom:23%; left:32%; width:40px; height:70px; background: linear-gradient(90deg, #a08060 0%, #806040 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom center; animation: mi-chair 4s ease-in-out infinite; }
.scn-magloire-visits-inn .figure-back { position:absolute; bottom:24%; left:34%; width:50px; height:90px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mi-figure 5s ease-in-out infinite; }
.scn-magloire-visits-inn .window-frame { position:absolute; top:15%; right:20%; width:80px; height:100px; background: rgba(255,255,200,0.6); border: 6px solid #6a5a3a; border-radius: 5px; box-shadow: 0 0 30px rgba(255,255,200,0.3); animation: mi-window 8s ease-in-out infinite alternate; }
.scn-magloire-visits-inn .door { position:absolute; top:20%; left:10%; width:60px; height:120px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 3px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); animation: mi-door 12s ease-in-out infinite; }
@keyframes mi-floor { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes mi-wall { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes mi-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes mi-chair { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mi-figure { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes mi-window { 0% { opacity:0.5; box-shadow: 0 0 20px rgba(255,255,200,0.2); } 50% { opacity:0.8; box-shadow: 0 0 40px rgba(255,255,200,0.5); } 100% { opacity:0.6; box-shadow: 0 0 30px rgba(255,255,200,0.3); } }
@keyframes mi-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }

.scn-brandy-offered { background: linear-gradient(180deg, #f0d8a8 0%, #e0c090 40%, #c8a070 100%), radial-gradient(ellipse at 80% 50%, #f5e0b0 0%, transparent 60%); }
.scn-brandy-offered .table-top { position:absolute; bottom:20%; left:15%; right:15%; height:30%; background: linear-gradient(135deg, #c4a070 0%, #a08050 100%); border-radius: 10%; box-shadow: inset 0 5px 15px rgba(0,0,0,0.3); animation: bo-table 7s ease-in-out infinite; }
.scn-brandy-offered .bottle-brandy { position:absolute; bottom:35%; left:45%; width:30px; height:60px; background: linear-gradient(90deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: bo-bottle 4s ease-in-out infinite; }
.scn-brandy-offered .glass-brandy { position:absolute; bottom:35%; left:55%; width:25px; height:30px; background: radial-gradient(ellipse at 50% 40%, #ffe0a0 0%, #c8a060 60%, transparent 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 5px rgba(200,160,96,0.5); animation: bo-glass 3s ease-in-out infinite; }
.scn-brandy-offered .hand-offering { position:absolute; bottom:30%; left:38%; width:40px; height:30px; background: linear-gradient(180deg, #d0a080 0%, #a07050 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-10deg); animation: bo-hand 5s ease-in-out infinite; }
.scn-brandy-offered .background-wall { position:absolute; inset:5% 10% 25% 10%; background: linear-gradient(180deg, #e8d0a0 0%, #d0b080 100%); border-radius: 5px; box-shadow: inset 0 0 20px rgba(0,0,0,0.1); animation: bo-bg 12s ease-in-out infinite alternate; }
.scn-brandy-offered .light-glow { position:absolute; top:10%; left:30%; width:200px; height:200px; background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 60%); pointer-events:none; animation: bo-light 8s ease-in-out infinite alternate; }
@keyframes bo-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bo-bottle { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes bo-glass { 0% { opacity:0.7; box-shadow: 0 0 10px 2px rgba(200,160,96,0.3); } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(255,200,100,0.6); } 100% { opacity:0.8; box-shadow: 0 0 15px 4px rgba(200,160,96,0.4); } }
@keyframes bo-hand { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-3px) rotate(-8deg); } 100% { transform: translateY(0) rotate(-10deg); } }
@keyframes bo-bg { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes bo-light { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(1); } }

.scn-magloire-drinks { background: linear-gradient(180deg, #f5d8a0 0%, #e0c088 40%, #c8a068 100%), radial-gradient(ellipse at 60% 30%, #ffe0b0 0%, transparent 60%); }
.scn-magloire-drinks .seated-figure { position:absolute; bottom:20%; left:30%; width:60px; height:100px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-figure 5s ease-in-out infinite; }
.scn-magloire-drinks .head-silhouette { position:absolute; bottom:65%; left:28%; width:40px; height:40px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 50%; transform-origin: center top; animation: md-head 3s ease-in-out infinite; }
.scn-magloire-drinks .glass-to-mouth { position:absolute; bottom:55%; left:50%; width:20px; height:25px; background: radial-gradient(ellipse at 50% 40%, #ffe0a0 0%, #c8a060 60%, transparent 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 15px 3px rgba(200,160,96,0.5); animation: md-glass 4s ease-in-out infinite; }
.scn-magloire-drinks .table-surface { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background: linear-gradient(135deg, #c4a070 0%, #a08050 100%); border-radius: 5px; box-shadow: inset 0 3px 10px rgba(0,0,0,0.2); animation: md-table 8s ease-in-out infinite; }
.scn-magloire-drinks .wall-panel { position:absolute; inset:20% 10% 25% 10%; background: linear-gradient(180deg, #e8d0a0 0%, #d0b080 100%); border-radius: 10px; box-shadow: inset 0 0 15px rgba(0,0,0,0.1); animation: md-wall 12s ease-in-out infinite alternate; }
.scn-magloire-drinks .warm-light { position:absolute; top:5%; left:20%; width:250px; height:250px; background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 60%); pointer-events:none; animation: md-light 6s ease-in-out infinite alternate; }
@keyframes md-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes md-head { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes md-glass { 0% { transform: translateY(0) rotate(0deg); opacity:0.8; } 50% { transform: translateY(-3px) rotate(10deg); opacity:1; } 100% { transform: translateY(0) rotate(0deg); opacity:0.8; } }
@keyframes md-table { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes md-wall { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes md-light { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.15); } 100% { opacity:0.2; transform: scale(1); } }

.scn-final-game { background: linear-gradient(180deg, #1f1515 0%, #3b2218 50%, #120c0c 100%), radial-gradient(circle at 30% 70%, #5a3a2a 0%, transparent 50%); position:relative; overflow:hidden; width:100%; height:100%; }
.scn-final-game .bg { position:absolute; inset:0; background: linear-gradient(135deg, transparent 60%, rgba(0,0,0,0.4) 100%); }
.scn-final-game .table { position:absolute; bottom:15%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-final-game .lamp { position:absolute; top:20%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #a08060 0%, #604030 100%); border-radius: 5px 5px 50% 50%; box-shadow: 0 0 30px 10px rgba(255,200,150,0.4); animation: fg-lamp 3s ease-in-out infinite alternate; }
.scn-final-game .clock { position:absolute; top:10%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #d0b080 0%, #806040 70%); border-radius: 50%; animation: fg-clock 2s ease-in-out infinite alternate; }
.scn-final-game .figure-left { position:absolute; bottom:20%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: fg-figure 5s ease-in-out infinite; }
.scn-final-game .figure-right { position:absolute; bottom:20%; right:25%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: fg-figure 5s ease-in-out infinite reverse; }
.scn-final-game .window { position:absolute; top:8%; left:10%; width:60px; height:50px; background: radial-gradient(circle, #102030 0%, #050a10 70%); border: 2px solid #2a1a1a; animation: fg-window 4s ease-in-out infinite alternate; }
.scn-final-game .shadow { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); animation: fg-shadow 8s ease-in-out infinite; }
@keyframes fg-lamp { 0% { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(255,200,150,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,200,150,0.6); } 100% { opacity: 0.9; box-shadow: 0 0 25px 8px rgba(255,200,150,0.4); } }
@keyframes fg-clock { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes fg-figure { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(3deg) scaleY(0.98); } 50% { transform: rotate(-2deg) scaleY(1); } 75% { transform: rotate(2deg) scaleY(0.99); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes fg-window { 0% { transform: translate(0, 0); } 25% { transform: translate(2px, -1px); } 50% { transform: translate(-3px, 2px); } 75% { transform: translate(1px, -2px); } 100% { transform: translate(0, 0); } }
@keyframes fg-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

.scn-drunkard-stumble-home { background: linear-gradient(180deg, #0a0a1a 0%, #15152a 50%, #050510 100%), radial-gradient(ellipse at 50% 40%, #1a1a3a 0%, transparent 70%); position:relative; overflow:hidden; width:100%; height:100%; }
.scn-drunkard-stumble-home .bg { position:absolute; inset:0; background: linear-gradient(135deg, transparent 60%, rgba(0,0,0,0.3) 100%); }
.scn-drunkard-stumble-home .buildings { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #0f0f1f 0%, #05050f 100%); clip-path: polygon(0% 100%, 5% 40%, 10% 100%, 20% 30%, 30% 100%, 35% 50%, 45% 100%, 55% 20%, 65% 100%, 70% 60%, 80% 100%, 90% 40%, 95% 100%, 100% 0%, 100% 100%); }
.scn-drunkard-stumble-home .street { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-drunkard-stumble-home .figure { position:absolute; bottom:20%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: dsh-figure 2s ease-in-out infinite; }
.scn-drunkard-stumble-home .wind { position:absolute; top:40%; left:0; width:200%; height:10px; background: linear-gradient(90deg, transparent 0%, rgba(200,220,255,0.1) 30%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: dsh-wind 4s linear infinite; }
.scn-drunkard-stumble-home .moon { position:absolute; top:5%; right:20%; width:40px; height:40px; background: radial-gradient(circle, rgba(220,230,255,0.2) 0%, transparent 70%); border-radius: 50%; animation: dsh-moon 10s ease-in-out infinite alternate; }
@keyframes dsh-figure { 0% { transform: translateX(0) rotate(0deg) scaleX(1); } 20% { transform: translateX(8px) rotate(4deg) scaleX(0.9); } 40% { transform: translateX(-5px) rotate(-3deg) scaleX(1.1); } 60% { transform: translateX(10px) rotate(2deg) scaleX(0.95); } 80% { transform: translateX(-3px) rotate(-1deg) scaleX(1); } 100% { transform: translateX(0) rotate(0deg) scaleX(1); } }
@keyframes dsh-wind { 0% { transform: translateX(-100%); opacity: 0; } 30% { opacity: 0.5; } 60% { opacity: 0.2; } 100% { transform: translateX(100%); opacity: 0; } }
@keyframes dsh-moon { 0% { opacity: 0.1; transform: scale(1); } 50% { opacity: 0.3; transform: scale(1.1); } 100% { opacity: 0.15; transform: scale(1); } }

.scn-fear-in-darkness { background: linear-gradient(180deg, #050510 0%, #0a0a1a 30%, #000005 100%), radial-gradient(ellipse at 50% 50%, #0f0f1f 0%, transparent 70%); position:relative; overflow:hidden; width:100%; height:100%; }
.scn-fear-in-darkness .bg { position:absolute; inset:0; background: linear-gradient(135deg, transparent 70%, rgba(0,0,0,0.5) 100%); }
.scn-fear-in-darkness .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0f0f1a 0%, #050510 100%); }
.scn-fear-in-darkness .wall { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #0a0a15 0%, #050510 100%); }
.scn-fear-in-darkness .figure { position:absolute; bottom:30%; left:50%; transform: translateX(-50%); width:25px; height:60px; background: linear-gradient(180deg, #0f0f1a 0%, #050510 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: fid-figure 6s ease-in-out infinite; }
.scn-fear-in-darkness .shadow { position:absolute; bottom:30%; left:40%; width:50px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%); animation: fid-shadow 8s ease-in-out infinite alternate; }
.scn-fear-in-darkness .doorway { position:absolute; top:10%; left:20%; width:40px; height:70px; background: #000005; border: 2px solid #0f0f1a; border-radius: 0 0 20% 20%; animation: fid-door 10s ease-in-out infinite alternate; }
@keyframes fid-figure { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg); } 25% { transform: translateX(-50%) scaleY(1.02) rotate(0.5deg); } 50% { transform: translateX(-50%) scaleY(0.98) rotate(-0.5deg); } 75% { transform: translateX(-50%) scaleY(1.01) rotate(0.3deg); } 100% { transform: translateX(-50%) scaleY(1) rotate(0deg); } }
@keyframes fid-shadow { 0% { transform: scale(1) translateX(0); opacity: 0.6; } 50% { transform: scale(1.1) translateX(5px); opacity: 0.8; } 100% { transform: scale(1) translateX(0); opacity: 0.6; } }
@keyframes fid-door { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.15; } }

.scn-drunk-logic { background: linear-gradient(180deg, #1a1010 0%, #2a1a15 50%, #0a0505 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%); position:relative; overflow:hidden; width:100%; height:100%; }
.scn-drunk-logic .bg { position:absolute; inset:0; background: linear-gradient(135deg, transparent 60%, rgba(0,0,0,0.4) 100%); }
.scn-drunk-logic .wall { position:absolute; top:0; left:0; right:0; bottom:25%; background: linear-gradient(180deg, #2a1a15 0%, #1a1010 100%); }
.scn-drunk-logic .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%); }
.scn-drunk-logic .figure { position:absolute; bottom:25%; left:50%; transform: translateX(-50%); width:30px; height:55px; background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: dl-figure 3s ease-in-out infinite; }
.scn-drunk-logic .bottle { position:absolute; bottom:30%; left:30%; width:15px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 5px 5px 10px 10px; animation: dl-bottle 4s ease-in-out infinite alternate; }
.scn-drunk-logic .candle { position:absolute; top:35%; left:60%; width:10px; height:25px; background: linear-gradient(180deg, #ffd080 0%, #b08050 100%); border-radius: 3px; box-shadow: 0 0 20px 8px rgba(255,200,100,0.4); animation: dl-candle 2s ease-in-out infinite alternate; }
@keyframes dl-figure { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 25% { transform: translateX(-50%) rotate(2deg) scaleY(0.95); } 50% { transform: translateX(-50%) rotate(-3deg) scaleY(0.98); } 75% { transform: translateX(-50%) rotate(1deg) scaleY(1.02); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes dl-bottle { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes dl-candle { 0% { opacity: 0.8; transform: scaleY(1); box-shadow: 0 0 15px 5px rgba(255,200,100,0.3); } 50% { opacity: 1; transform: scaleY(1.1); box-shadow: 0 0 30px 12px rgba(255,200,100,0.6); } 100% { opacity: 0.9; transform: scaleY(1); box-shadow: 0 0 20px 8px rgba(255,200,100,0.4); } }

.scn-hut-and-name { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e2e 100%), radial-gradient(ellipse at 70% 50%, #2a2a3e 0%, transparent 60%); }
.scn-hut-and-name .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); }
.scn-hut-and-name .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); }
.scn-hut-and-name .door { position:absolute; bottom:20%; left:50%; width:80px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.6); }
.scn-hut-and-name .window { position:absolute; top:40%; left:30%; width:20px; height:24px; background: radial-gradient(circle, #ffe0a0 0%, #c08040 70%); border-radius: 10%; box-shadow: 0 0 12px 4px #c08040; animation: hnt-window-glow 4s ease-in-out infinite alternate; }
.scn-hut-and-name .sign { position:absolute; bottom:65%; left:50%; width:60px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border: 2px solid #4a2a1a; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: hnt-sway 5s ease-in-out infinite; }
.scn-hut-and-name .lantern { position:absolute; bottom:45%; left:58%; width:12px; height:18px; background: radial-gradient(circle, #ffd080 0%, #b08030 100%); border-radius: 30%; box-shadow: 0 0 24px 8px rgba(255,208,128,.6), 0 0 48px 16px rgba(255,208,128,.3); animation: hnt-flicker 2s ease-in-out infinite alternate; }
.scn-hut-and-name .keeper { position:absolute; bottom:18%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hnt-stance 6s ease-in-out infinite; }
@keyframes hnt-window-glow { 0% { opacity:.7; box-shadow: 0 0 8px 2px #c08040; } 50% { opacity:1; box-shadow: 0 0 20px 6px #c08040; } 100% { opacity:.8; box-shadow: 0 0 12px 3px #c08040; } }
@keyframes hnt-sway { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes hnt-flicker { 0% { opacity: .7; box-shadow: 0 0 12px 4px rgba(255,208,128,.4); } 50% { opacity: 1; box-shadow: 0 0 36px 12px rgba(255,208,128,.8); } 100% { opacity: .8; box-shadow: 0 0 20px 6px rgba(255,208,128,.5); } }
@keyframes hnt-stance { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(2px) translateY(-1px); } 50% { transform: translateX(0) translateY(-2px); } 75% { transform: translateX(-2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }

.scn-friend-described { background: linear-gradient(180deg, #f5f0e0 0%, #e8e0c8 100%), radial-gradient(ellipse at 60% 40%, #f0e8d0 0%, transparent 60%); }
.scn-friend-described .bg-light { position:absolute; inset:0; background: linear-gradient(180deg, #faf5e8 0%, #ede5d0 100%); }
.scn-friend-described .window-sun { position:absolute; top:10%; right:10%; width:80px; height:100px; background: linear-gradient(180deg, #fff8d0 0%, #f0e0a0 100%); border-radius: 4px; box-shadow: 0 0 40px 20px rgba(255,248,200,.4); animation: frd-sunlight 8s ease-in-out infinite alternate; }
.scn-friend-described .chair { position:absolute; bottom:10%; right:30%; width:60px; height:50px; background: linear-gradient(180deg, #b09070 0%, #8a6a50 100%); border-radius: 10px 10px 0 0; box-shadow: inset 0 -4px 6px rgba(0,0,0,.2); }
.scn-friend-described .body-small { position:absolute; bottom:15%; left:45%; width:30px; height:40px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: frd-breathing 6s ease-in-out infinite; }
.scn-friend-described .head-large { position:absolute; bottom:48%; left:43%; width:50px; height:60px; background: linear-gradient(180deg, #d0c8b8 0%, #b8a890 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.1); transform-origin: center bottom; animation: frd-turn 10s ease-in-out infinite; }
.scn-friend-described .aura { position:absolute; bottom:44%; left:40%; width:70px; height:80px; background: radial-gradient(circle, rgba(255,255,240,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: frd-glow 7s ease-in-out infinite alternate; }
@keyframes frd-sunlight { 0% { opacity: .8; box-shadow: 0 0 20px 10px rgba(255,248,200,.3); } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(255,248,200,.6); } 100% { opacity: .9; box-shadow: 0 0 30px 15px rgba(255,248,200,.4); } }
@keyframes frd-breathing { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes frd-turn { 0% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(2deg) scaleX(1.01); } 50% { transform: rotate(0deg) scaleX(1); } 75% { transform: rotate(-2deg) scaleX(1.01); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes frd-glow { 0% { opacity: .3; transform: scale(1); } 50% { opacity: .5; transform: scale(1.05); } 100% { opacity: .4; transform: scale(1); } }

.scn-swinburne-transfigured { background: linear-gradient(180deg, #f0d0a0 0%, #e0b080 100%), radial-gradient(ellipse at 50% 40%, #f0d8b0 0%, transparent 60%); }
.scn-swinburne-transfigured .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #eed8b8 0%, #d8b898 100%); }
.scn-swinburne-transfigured .figure-body { position:absolute; bottom:20%; left:45%; width:40px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; }
.scn-swinburne-transfigured .figure-head { position:absolute; bottom:50%; left:42%; width:60px; height:70px; background: radial-gradient(circle at 50% 40%, #f0d0a0 0%, #c8a880 60%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 40px 20px rgba(240,208,160,.5); animation: swb-brighten 4s ease-in-out infinite alternate; }
.scn-swinburne-transfigured .halo { position:absolute; bottom:44%; left:36%; width:90px; height:100px; background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, rgba(255,200,100,0) 70%); border-radius: 50%; filter: blur(15px); animation: swb-pulse 3s ease-in-out infinite alternate; }
.scn-swinburne-transfigured .light-rays { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(circle at 46% 60%, rgba(255,220,150,0.2) 0%, transparent 40%, transparent 50%, rgba(255,220,150,0.1) 60%, transparent 70%); mask: radial-gradient(circle at 46% 60%, black 30%, transparent 40%); animation: swb-rotate 15s linear infinite; }
.scn-swinburne-transfigured .particle { position:absolute; width:6px; height:6px; background: radial-gradient(circle, #ffe0a0 0%, transparent 70%); border-radius: 50%; filter: blur(2px); }
.scn-swinburne-transfigured .p1 { top:30%; left:30%; animation: swb-drift1 12s ease-in-out infinite; }
.scn-swinburne-transfigured .p2 { top:40%; left:55%; animation: swb-drift2 15s ease-in-out infinite; animation-delay: -3s; }
@keyframes swb-brighten { 0% { box-shadow: 0 0 20px 10px rgba(240,208,160,.3); } 50% { box-shadow: 0 0 60px 30px rgba(240,208,160,.7); } 100% { box-shadow: 0 0 30px 15px rgba(240,208,160,.4); } }
@keyframes swb-pulse { 0% { transform: scale(1); opacity: .4; } 50% { transform: scale(1.1); opacity: .6; } 100% { transform: scale(1); opacity: .5; } }
@keyframes swb-rotate { 0% { transform: rotate(0deg); opacity: .6; } 50% { opacity: .8; } 100% { transform: rotate(360deg); opacity: .6; } }
@keyframes swb-drift1 { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(10px, -20px) scale(1.5); opacity: .7; } 100% { transform: translate(20px, -40px) scale(1); opacity: .4; } }
@keyframes swb-drift2 { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(-15px, -25px) scale(1.3); opacity: .6; } 100% { transform: translate(-30px, -50px) scale(1); opacity: .3; } }

.scn-paintings-and-bones { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e2e 100%), radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 70%); }
.scn-paintings-and-bones .bg-dark { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-paintings-and-bones .floor-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-paintings-and-bones .pic-frame { position:absolute; top:15%; left:30%; width:120px; height:100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border: 6px solid #6a4a2a; border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); overflow:hidden; }
.scn-paintings-and-bones .pic-frame::before { content:''; position:absolute; top:10px; left:10px; right:10px; bottom:10px; background: radial-gradient(circle at 50% 30%, #c8a080 0%, #8a6040 50%, #000 100%); border-radius: 2px; animation: pab-painting 10s ease-in-out infinite; }
.scn-paintings-and-bones .shelf { position:absolute; top:50%; left:10%; width:80%; height:12px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 2px; box-shadow: 0 -2px 6px rgba(0,0,0,.4); }
.scn-paintings-and-bones .hand-bone { position:absolute; top:44%; left:15%; width:30px; height:40px; background: linear-gradient(180deg, #b8a890 0%, #8a7a6a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(20deg); animation: pab-bone-twitch 7s ease-in-out infinite; }
.scn-paintings-and-bones .skull-bone { position:absolute; top:42%; right:20%; width:24px; height:28px; background: linear-gradient(180deg, #c8b8a8 0%, #a09080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.2); animation: pab-skull-glare 12s ease-in-out infinite; }
.scn-paintings-and-bones .candle { position:absolute; top:40%; left:50%; width:8px; height:20px; background: linear-gradient(180deg, #f0d0a0 0%, #c08050 100%); border-radius: 2px; box-shadow: 0 0 16px 8px rgba(240,208,160,.5); animation: pab-candle-flicker 2s ease-in-out infinite alternate; }
@keyframes pab-painting { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes pab-bone-twitch { 0% { transform: rotate(20deg) translate(0,0); } 50% { transform: rotate(15deg) translate(2px, -1px); } 100% { transform: rotate(20deg) translate(0,0); } }
@keyframes pab-skull-glare { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes pab-candle-flicker { 0% { opacity: .8; box-shadow: 0 0 12px 4px rgba(240,208,160,.4); } 50% { opacity: 1; box-shadow: 0 0 24px 8px rgba(240,208,160,.7); } 100% { opacity: .9; box-shadow: 0 0 16px 6px rgba(240,208,160,.5); } }

.scn-village-stares {
  background: linear-gradient(180deg, #4a7a9a 0%, #b0c8d0 40%, #e8c860 100%), radial-gradient(ellipse at 50% 30%, #fff8d0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-village-stares .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a9ab0 0%, #b8d0d8 50%, #f0e0a0 100%);
  animation: vs-sky 8s ease-in-out infinite alternate;
}
.scn-village-stares .sun {
  position: absolute;
  top: 12%;
  left: 65%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #fffae0 0%, #ffe080 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,224,128,0.6);
  animation: vs-sun 3s ease-in-out infinite alternate;
}
.scn-village-stares .hills {
  position: absolute;
  bottom: 35%;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 60% 40% 0 0;
  transform: scaleY(0.8);
  animation: vs-hills 15s ease-in-out infinite alternate;
}
.scn-village-stares .field {
  position: absolute;
  bottom: 20%;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #8a8a3a 0%, #5a5a1a 100%);
  border-radius: 30% 70% 0 0;
  animation: vs-field 10s ease-in-out infinite;
}
.scn-village-stares .road {
  position: absolute;
  bottom: 5%;
  left: 10%;
  right: 10%;
  height: 18%;
  background: linear-gradient(180deg, #b8a888 0%, #8a7a6a 100%);
  clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%);
  animation: vs-road 12s ease-in-out infinite alternate;
}
.scn-village-stares .fence {
  position: absolute;
  bottom: 25%;
  left: 15%;
  width: 60%;
  height: 12%;
  background: repeating-linear-gradient(90deg, #5c3a1a 0px, #5c3a1a 6px, transparent 6px, transparent 12px);
  animation: vs-fence 4s ease-in-out infinite alternate;
}
.scn-village-stares .stile {
  position: absolute;
  bottom: 26%;
  left: 42%;
  width: 20px;
  height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 4px;
  animation: vs-stile 6s ease-in-out infinite;
}
.scn-village-stares .figure-c {
  position: absolute;
  bottom: 42%;
  left: 43%;
  width: 14px;
  height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vs-figure 3s ease-in-out infinite alternate;
}
.scn-village-stares .brats {
  position: absolute;
  bottom: 30%;
  left: 48%;
  width: 50px;
  height: 20px;
  background: radial-gradient(circle at 15% 0%, #1a1a0a 6px, transparent 6px),
              radial-gradient(circle at 35% 0%, #1a1a0a 6px, transparent 6px),
              radial-gradient(circle at 55% 0%, #1a1a0a 6px, transparent 6px),
              radial-gradient(circle at 75% 0%, #1a1a0a 6px, transparent 6px);
  animation: vs-brats 2s ease-in-out infinite alternate;
}
@keyframes vs-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes vs-sun { 0% { transform: scale(0.9); box-shadow: 0 0 40px 10px rgba(255,224,128,0.5); } 50% { transform: scale(1.1); box-shadow: 0 0 80px 30px rgba(255,224,128,0.8); } 100% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255,224,128,0.6); } }
@keyframes vs-hills { 0% { transform: translateY(0) scaleY(0.8); } 50% { transform: translateY(-2px) scaleY(0.85); } 100% { transform: translateY(0) scaleY(0.8); } }
@keyframes vs-field { 0% { background-position: 0% 0%; } 50% { background-position: 5% 0%; } 100% { background-position: 0% 0%; } }
@keyframes vs-road { 0% { transform: skewX(-1deg); } 50% { transform: skewX(1deg); } 100% { transform: skewX(-1deg); } }
@keyframes vs-fence { 0% { transform: translateX(-2px); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }
@keyframes vs-stile { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes vs-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes vs-brats { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }

.scn-public-scene {
  background: linear-gradient(180deg, #9aacb8 0%, #bcc8cc 30%, #e0d8c0 100%), radial-gradient(ellipse at 50% 60%, #d0c8b0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-public-scene .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #809aa8 0%, #b0c0c8 100%);
  animation: ps-sky 10s ease-in-out infinite alternate;
}
.scn-public-scene .sun {
  position: absolute;
  top: 25%;
  left: 55%;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle, #fff8e0 0%, #e8d0a0 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(232,208,160,0.4);
  animation: ps-sun 5s ease-in-out infinite alternate;
}
.scn-public-scene .green {
  position: absolute;
  bottom: 10%;
  left: 5%;
  right: 5%;
  height: 35%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 20% 20% 0 0;
  animation: ps-green 12s ease-in-out infinite;
}
.scn-public-scene .houses {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 20%;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 40px, #4a3a2a 40px, #4a3a2a 80px);
  clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 80% 20%, 60% 0%, 40% 20%, 20% 0%, 0% 20%);
  animation: ps-houses 8s ease-in-out infinite alternate;
}
.scn-public-scene .crowd {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 12%;
  background: radial-gradient(circle at 10% 40%, #1a1a0a 8px, transparent 8px),
              radial-gradient(circle at 20% 40%, #1a1a0a 8px, transparent 8px),
              radial-gradient(circle at 30% 40%, #1a1a0a 8px, transparent 8px),
              radial-gradient(circle at 40% 40%, #1a1a0a 8px, transparent 8px),
              radial-gradient(circle at 50% 40%, #1a1a0a 8px, transparent 8px),
              radial-gradient(circle at 60% 40%, #1a1a0a 8px, transparent 8px),
              radial-gradient(circle at 70% 40%, #1a1a0a 8px, transparent 8px),
              radial-gradient(circle at 80% 40%, #1a1a0a 8px, transparent 8px),
              radial-gradient(circle at 90% 40%, #1a1a0a 8px, transparent 8px);
  animation: ps-crowd 3s ease-in-out infinite alternate;
}
.scn-public-scene .antoine {
  position: absolute;
  bottom: 22%;
  left: 40%;
  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: ps-antoine 4s ease-in-out infinite;
}
.scn-public-scene .sweetheart {
  position: absolute;
  bottom: 22%;
  left: 44%;
  width: 14px;
  height: 34px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-sweet 4s ease-in-out infinite;
}
.scn-public-scene .boitelle {
  position: absolute;
  bottom: 22%;
  left: 60%;
  width: 14px;
  height: 30px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-boitelle 1.5s ease-in-out infinite;
}
.scn-public-scene .shadow {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 40%;
  height: 10%;
  background: rgba(0,0,0,0.3);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ps-shadow 6s ease-in-out infinite alternate;
}
@keyframes ps-sky { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.9; } }
@keyframes ps-sun { 0% { transform: scale(0.95); box-shadow: 0 0 20px 10px rgba(232,208,160,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 40px 20px rgba(232,208,160,0.6); } 100% { transform: scale(0.95); box-shadow: 0 0 20px 10px rgba(232,208,160,0.3); } }
@keyframes ps-green { 0% { background-position: 0% 0%; } 50% { background-position: 5% 0%; } 100% { background-position: 0% 0%; } }
@keyframes ps-houses { 0% { transform: skewY(-1deg); } 50% { transform: skewY(1deg); } 100% { transform: skewY(-1deg); } }
@keyframes ps-crowd { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ps-antoine { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(-1deg); } 50% { transform: translateX(6px) rotate(0); } 75% { transform: translateX(9px) rotate(1deg); } 100% { transform: translateX(12px) rotate(0); } }
@keyframes ps-sweet { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(0); } 75% { transform: translateX(6px) rotate(-1deg); } 100% { transform: translateX(8px) rotate(0); } }
@keyframes ps-boitelle { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-4px) rotate(-2deg); } 50% { transform: translateX(-8px) rotate(0); } 75% { transform: translateX(-12px) rotate(2deg); } 100% { transform: translateX(-16px) rotate(0); } }
@keyframes ps-shadow { 0% { transform: skewX(-2deg); opacity: 0.3; } 50% { transform: skewX(2deg); opacity: 0.5; } 100% { transform: skewX(-2deg); opacity: 0.3; } }

.scn-goodbye {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-goodbye .wall {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
  animation: gb-wall 10s ease-in-out infinite alternate;
}
.scn-goodbye .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  animation: gb-floor 8s ease-in-out infinite;
}
.scn-goodbye .window {
  position: absolute;
  top: 15%;
  left: 35%;
  width: 80px;
  height: 100px;
  background: #1a1a2a;
  border: 4px 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.6);
  animation: gb-window 6s ease-in-out infinite alternate;
}
.scn-goodbye .table {
  position: absolute;
  bottom: 18%;
  left: 25%;
  width: 120px;
  height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: gb-table 12s ease-in-out infinite;
}
.scn-goodbye .churn {
  position: absolute;
  bottom: 15%;
  right: 15%;
  width: 30px;
  height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: gb-churn 4s ease-in-out infinite alternate;
}
.scn-goodbye .figure-s {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 16px;
  height: 38px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gb-figure-s 5s ease-in-out infinite;
}
.scn-goodbye .figure-m {
  position: absolute;
  bottom: 22%;
  left: 50%;
  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: gb-figure-m 7s ease-in-out infinite;
}
@keyframes gb-wall { 0% { opacity: 0.9; } 50% { opacity: 0.8; } 100% { opacity: 0.9; } }
@keyframes gb-floor { 0% { background-position: 0% 0%; } 50% { background-position: 2% 0%; } 100% { background-position: 0% 0%; } }
@keyframes gb-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 4px 8px rgba(0,0,0,0.6); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.9), 0 6px 12px rgba(0,0,0,0.7); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 4px 8px rgba(0,0,0,0.6); } }
@keyframes gb-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes gb-churn { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes gb-figure-s { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(4px) rotate(0); } 75% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(8px) rotate(0); } }
@keyframes gb-figure-m { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(1deg); } 50% { transform: translateX(-4px) rotate(0); } 75% { transform: translateX(-6px) rotate(-1deg); } 100% { transform: translateX(-8px) rotate(0); } }

.scn-train-departure {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 30%, #4a3a3a 60%, #8a6a4a 100%), radial-gradient(ellipse at 50% 20%, #c08050 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-train-departure .sky-dusk {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 40%;
  background: linear-gradient(180deg, #3a3a5a 0%, #5a4a5a 30%, #a07050 60%, #d09860 100%);
  animation: td-sky 15s ease-in-out infinite alternate;
}
.scn-train-departure .sunset {
  position: absolute;
  top: 15%;
  left: 60%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #ffc080 0%, #ff9040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,144,64,0.5);
  animation: td-sunset 8s ease-in-out infinite alternate;
}
.scn-train-departure .platform {
  position: absolute;
  bottom: 10%;
  left: 0;
  right: 0;
  height: 12%;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: td-platform 10s ease-in-out infinite;
}
.scn-train-departure .train {
  position: absolute;
  bottom: 12%;
  left: 5%;
  width: 50%;
  height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 4% 4% / 60% 60% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: td-train 6s ease-in-out infinite alternate;
}
.scn-train-departure .track {
  position: absolute;
  bottom: 8%;
  left: 0;
  right: 0;
  height: 4%;
  background: repeating-linear-gradient(90deg, #8a7a6a 0px, #8a7a6a 8px, #3a3a2a 8px, #3a3a2a 12px);
  animation: td-track 4s linear infinite;
}
.scn-train-departure .lamp {
  position: absolute;
  bottom: 20%;
  left: 75%;
  width: 10px;
  height: 14px;
  background: radial-gradient(ellipse, #ffe0a0 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,224,160,0.6);
  animation: td-lamp 3s ease-in-out infinite alternate;
}
.scn-train-departure .figure-b {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 16px;
  height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: td-figure-b 4s ease-in-out infinite;
}
.scn-train-departure .figure-sw {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 14px;
  height: 32px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: td-figure-sw 4.5s ease-in-out infinite;
}
@keyframes td-sky { 0% { opacity: 0.8; } 50% { opacity: 0.6; } 100% { opacity: 0.8; } }
@keyframes td-sunset { 0% { transform: scale(0.9); box-shadow: 0 0 60px 20px rgba(255,144,64,0.4); } 50% { transform: scale(1.1); box-shadow: 0 0 100px 40px rgba(255,144,64,0.6); } 100% { transform: scale(0.9); box-shadow: 0 0 60px 20px rgba(255,144,64,0.4); } }
@keyframes td-platform { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes td-train { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes td-track { 0% { background-position: 0% 0%; } 100% { background-position: -12px 0%; } }
@keyframes td-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(255,224,160,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,224,160,0.7); } 100% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(255,224,160,0.4); } }
@keyframes td-figure-b { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(-1deg); } 50% { transform: translateX(4px) rotate(0); } 75% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(8px) rotate(0); } }
@keyframes td-figure-sw { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(1deg); } 50% { transform: translateX(-4px) rotate(0); } 75% { transform: translateX(-6px) rotate(-1deg); } 100% { transform: translateX(-8px) rotate(0); } }

.scn-egg-story { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #deb887 100%), radial-gradient(circle at 70% 20%, rgba(255,255,200,0.4) 0%, transparent 50%); }
.scn-egg-story .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0ff 0%, #f0e68c 100%); animation: eg-sky 12s ease-in-out infinite alternate; }
.scn-egg-story .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, transparent 100%); box-shadow: 0 0 40px 20px rgba(255,215,0,0.6); animation: eg-sun 6s ease-in-out infinite; }
.scn-egg-story .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8bc34a 0%, #556b2f 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-egg-story .hen-body { position:absolute; bottom:35%; left:30%; width:70px; height:50px; background: radial-gradient(ellipse at 50% 60%, #f5deb3 0%, #d2b48c 100%); border-radius: 50% 50% 40% 40%; animation: eg-hen 3s ease-in-out infinite; }
.scn-egg-story .hen-head { position:absolute; bottom:50%; left:42%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #f5deb3 0%, #d2b48c 100%); border-radius: 50%; animation: eg-head 3s ease-in-out infinite; }
.scn-egg-story .hen-comb { position:absolute; bottom:67%; left:47%; width:10px; height:12px; background: #e57373; border-radius: 50% 50% 0 0; animation: eg-comb 3s ease-in-out infinite; }
.scn-egg-story .nest { position:absolute; bottom:30%; left:22%; width:50px; height:20px; background: linear-gradient(180deg, #8b4513 0%, #a0522d 100%); border-radius: 50% 50% 20% 20%; }
.scn-egg-story .egg-1 { position:absolute; bottom:33%; left:28%; width:18px; height:24px; background: radial-gradient(ellipse at 50% 40%, #fffde7 0%, #ffe082 100%); border-radius: 50% 50% 40% 40%; animation: eg-egg 4s ease-in-out infinite; }
.scn-egg-story .egg-2 { position:absolute; bottom:31%; left:35%; width:16px; height:22px; background: radial-gradient(ellipse at 50% 40%, #fffde7 0%, #ffe082 100%); border-radius: 50% 50% 40% 40%; animation: eg-egg 4s ease-in-out infinite 1.5s; }
@keyframes eg-sky { 0% { opacity:1; transform: scaleY(1); } 50% { opacity:0.9; transform: scaleY(1.02); } 100% { opacity:1; transform: scaleY(1); } }
@keyframes eg-sun { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes eg-hen { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes eg-head { 0% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(2px, -1px) rotate(5deg); } 100% { transform: translate(0,0) rotate(-5deg); } }
@keyframes eg-comb { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(2px, -1px) scale(1.2); } 100% { transform: translate(0,0) scale(1); } }
@keyframes eg-egg { 0% { transform: translate(0,0) rotate(-10deg); } 50% { transform: translate(1px, -1px) rotate(10deg); } 100% { transform: translate(0,0) rotate(-10deg); } }

.scn-private-conversation { background: linear-gradient(180deg, #2c1e1a 0%, #1a1010 50%, #0d0808 100%), radial-gradient(ellipse at 50% 80%, #3a2a22 0%, transparent 60%); }
.scn-private-conversation .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a22 0%, #1a1010 100%); }
.scn-private-conversation .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a22 0%, #0d0808 100%); }
.scn-private-conversation .door { position:absolute; left:10%; bottom:30%; width:20%; height:60%; background: linear-gradient(180deg, #5c4030 0%, #3a2a22 100%); border:2px solid #2c1e1a; box-shadow: inset 0 0 10px #000; animation: pc-door 8s ease-in-out infinite; }
.scn-private-conversation .figure-man { position:absolute; left:40%; bottom:30%; width:30px; height:70px; background: linear-gradient(180deg, #1a1010 0%, #0d0808 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: pc-figure 5s ease-in-out infinite; }
.scn-private-conversation .figure-woman { position:absolute; left:55%; bottom:30%; width:28px; height:65px; background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: pc-figure 5s ease-in-out infinite 0.5s; }
.scn-private-conversation .dress { position:absolute; left:70%; bottom:35%; width:20px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a22 100%); border-radius: 30% 30% 20% 20%; transform: rotate(15deg); animation: pc-dress 6s ease-in-out infinite; }
.scn-private-conversation .table { position:absolute; left:50%; bottom:30%; width:40px; height:15px; background: linear-gradient(180deg, #5c4030 0%, #3a2a22 100%); border-radius: 4px; transform: translateX(-50%); }
.scn-private-conversation .candle { position:absolute; left:50%; bottom:45%; width:6px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #c0a070 100%); border-radius: 2px; box-shadow: 0 0 12px 4px rgba(255,200,100,0.5); animation: pc-candle 3s ease-in-out infinite; }
@keyframes pc-door { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pc-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes pc-dress { 0% { transform: rotate(15deg) translate(0,0); } 50% { transform: rotate(20deg) translate(2px, -2px); } 100% { transform: rotate(15deg) translate(0,0); } }
@keyframes pc-candle { 0% { transform: rotate(-2deg); opacity:0.9; box-shadow: 0 0 10px 3px rgba(255,200,100,0.4); } 50% { transform: rotate(2deg); opacity:1; box-shadow: 0 0 18px 6px rgba(255,200,100,0.7); } 100% { transform: rotate(-2deg); opacity:0.9; box-shadow: 0 0 10px 3px rgba(255,200,100,0.4); } }

.scn-dinner-preparation { background: linear-gradient(180deg, #f5deb3 0%, #deb887 30%, #d2691e 100%), radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 80%); }
.scn-dinner-preparation .kitchen-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); }
.scn-dinner-preparation .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b5651d 0%, #8b4513 100%); }
.scn-dinner-preparation .table { position:absolute; left:10%; bottom:30%; width:60%; height:20%; background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%); border-radius: 5px; }
.scn-dinner-preparation .stove { position:absolute; right:15%; bottom:30%; width:25%; height:40%; background: linear-gradient(180deg, #696969 0%, #2f2f2f 100%); border-radius: 8px 8px 0 0; }
.scn-dinner-preparation .pot { position:absolute; right:22%; bottom:50%; width:15%; height:25%; background: linear-gradient(180deg, #b8860b 0%, #8b4513 100%); border-radius: 50% 50% 10% 10%; animation: dp-pot 4s ease-in-out infinite; }
.scn-dinner-preparation .figure-old { position:absolute; left:20%; bottom:30%; width:35px; height:70px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: scaleX(-1); animation: dp-figure 5s ease-in-out infinite; }
.scn-dinner-preparation .figure-young { position:absolute; left:40%; bottom:30%; width:30px; height:65px; background: linear-gradient(180deg, #a0522d 0%, #6b3a1e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: dp-figure 5s ease-in-out infinite 0.7s; }
.scn-dinner-preparation .steam-1 { position:absolute; right:22%; bottom:75%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.4) 0%, transparent 100%); filter: blur(3px); animation: dp-steam 3s ease-in-out infinite; }
.scn-dinner-preparation .steam-2 { position:absolute; right:28%; bottom:70%; width:16px; height:25px; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.3) 0%, transparent 100%); filter: blur(3px); animation: dp-steam 3s ease-in-out infinite 1s; }
@keyframes dp-pot { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dp-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes dp-steam { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-10px) scale(1.5); opacity:0; } 100% { transform: translateY(0) scale(1); opacity:0.6; } }

.scn-mother-refuses { background: linear-gradient(180deg, #1a0a0a 0%, #0d0505 50%, #050202 100%), radial-gradient(ellipse at 50% 50%, #2a1a1a 0%, transparent 70%); }
.scn-mother-refuses .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a0a0a 0%, #0d0505 100%); }
.scn-mother-refuses .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a0a0a 0%, #050202 100%); }
.scn-mother-refuses .mother { position:absolute; left:40%; bottom:30%; width:45px; height:100px; background: linear-gradient(180deg, #0d0505 0%, #050202 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: scaleX(-1); animation: mr-mother 8s ease-in-out infinite; }
.scn-mother-refuses .son { position:absolute; left:55%; bottom:30%; width:30px; height:70px; background: linear-gradient(180deg, #1a0a0a 0%, #0d0505 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: mr-son 5s ease-in-out infinite; }
.scn-mother-refuses .candle { position:absolute; left:50%; bottom:40%; width:5px; height:15px; background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%); border-radius: 2px; box-shadow: 0 0 8px 2px rgba(255,215,0,0.5); animation: mr-candle 4s ease-in-out infinite; }
.scn-mother-refuses .glow { position:absolute; left:48%; bottom:35%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,215,0,0.2) 0%, transparent 100%); animation: mr-glow 4s ease-in-out infinite; }
.scn-mother-refuses .door { position:absolute; left:15%; bottom:30%; width:15%; height:60%; background: linear-gradient(180deg, #0d0505 0%, #050202 100%); border:1px solid #2a1a1a; box-shadow: inset 0 0 10px #000; animation: mr-door 10s ease-in-out infinite; }
@keyframes mr-mother { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-1px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes mr-son { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mr-candle { 0% { transform: rotate(-3deg); opacity:0.7; } 50% { transform: rotate(3deg); opacity:1; } 100% { transform: rotate(-3deg); opacity:0.7; } }
@keyframes mr-glow { 0% { transform: scale(1); opacity:0.3; } 50% { transform: scale(1.2); opacity:0.5; } 100% { transform: scale(1); opacity:0.3; } }
@keyframes mr-door { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }

/* casino-evening */
.scn-casino-evening { background: linear-gradient(180deg, #0a1628 0%, #1c2a42 60%, #2a4060 100%), radial-gradient(ellipse at 50% 0%, #4a6a8a 0%, transparent 60%); }
.scn-casino-evening .night-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a1628 100%); }
.scn-casino-evening .moon { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #e0e8ff 0%, #8aa0c0 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(180,200,255,0.3); animation: ce-moon 15s ease-in-out infinite alternate; }
.scn-casino-evening .cloud { position:absolute; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter: blur(4px); }
.scn-casino-evening .cloud1 { top:12%; left:10%; width:70px; height:16px; animation: ce-drift1 40s linear infinite; }
.scn-casino-evening .cloud2 { top:18%; right:15%; width:50px; height:12px; animation: ce-drift2 50s linear infinite reverse; }
.scn-casino-evening .casino { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:120px; height:80px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a30 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
.scn-casino-evening .window { position:absolute; bottom:30%; width:16px; height:20px; background: radial-gradient(circle, #b0c8e0 0%, #5a7a9a 70%); border-radius:4px; box-shadow: 0 0 12px 4px rgba(160,200,240,0.4); animation: ce-glow 3s ease-in-out infinite alternate; }
.scn-casino-evening .win1 { left:30%; }
.scn-casino-evening .win2 { left:50%; margin-left:-8px; animation-delay:1s; }
.scn-casino-evening .dancer { position:absolute; bottom:22%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: ce-dance 2s ease-in-out infinite; }
.scn-casino-evening .d1 { left:35%; animation-delay:0s; }
.scn-casino-evening .d2 { left:55%; animation-delay:0.8s; }
@keyframes ce-moon { 0% { transform: translate(0,0); } 50% { transform: translate(5px,-3px); } 100% { transform: translate(-5px,2px); } }
@keyframes ce-drift1 { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes ce-drift2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes ce-glow { 0% { opacity:0.6; box-shadow: 0 0 8px 2px rgba(160,200,240,0.2); } 50% { opacity:1; box-shadow: 0 0 20px 8px rgba(160,200,240,0.5); } 100% { opacity:0.8; box-shadow: 0 0 14px 4px rgba(160,200,240,0.3); } }
@keyframes ce-dance { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* cliff-shadow */
.scn-cliff-shadow { background: linear-gradient(180deg, #0c1a2e 0%, #1a2c44 50%, #2a4a6a 100%), radial-gradient(ellipse at 50% 30%, #3a6a8a 0%, transparent 70%); }
.scn-cliff-shadow .sky-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0c1a2e 50%, #1a2c44 100%); }
.scn-cliff-shadow .moon { position:absolute; top:15%; left:60%; width:45px; height:45px; background: radial-gradient(circle, #e8eef8 0%, #8aa0c0 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(200,220,255,0.3); animation: cs-moon 20s ease-in-out infinite alternate; }
.scn-cliff-shadow .cloud { position:absolute; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.02) 100%); border-radius:50%; filter: blur(5px); }
.scn-cliff-shadow .c1 { top:10%; left:5%; width:90px; height:20px; animation: cs-drift1 45s linear infinite; }
.scn-cliff-shadow .c2 { top:20%; right:10%; width:60px; height:15px; animation: cs-drift2 55s linear infinite reverse; }
.scn-cliff-shadow .cliff-left { position:absolute; bottom:30%; left:5%; width:30%; height:50%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 60% 40% 0 0 / 80% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: cs-cliff 25s ease-in-out infinite alternate; }
.scn-cliff-shadow .cliff-right { position:absolute; bottom:35%; right:8%; width:25%; height:45%; background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%); border-radius: 40% 60% 0 0 / 50% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: cs-cliff 30s ease-in-out infinite alternate; }
.scn-cliff-shadow .sea { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 40% 30% 0 0 / 20% 15% 0 0; animation: cs-sea 8s ease-in-out infinite alternate; }
.scn-cliff-shadow .figure { position:absolute; bottom:28%; width:16px; height:32px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: cs-walk 6s ease-in-out infinite; }
.scn-cliff-shadow .f1 { left:35%; animation-delay:0s; }
.scn-cliff-shadow .f2 { left:55%; animation-delay:1.5s; }
@keyframes cs-moon { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(4px,-2px) scale(1.02); } 100% { transform: translate(-4px,2px) scale(0.98); } }
@keyframes cs-drift1 { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes cs-drift2 { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }
@keyframes cs-cliff { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes cs-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cs-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0); } }

/* rumor-spreads */
.scn-rumor-spreads { background: linear-gradient(180deg, #1a2030 0%, #2a3040 100%), radial-gradient(ellipse at 50% 50%, #3a4a5a 0%, transparent 70%); }
.scn-rumor-spreads .int-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a2030 0%, #2a3040 100%); }
.scn-rumor-spreads .wall { position:absolute; bottom:40%; left:0; right:0; height:60%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 15px rgba(0,0,0,0.4); }
.scn-rumor-spreads .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%); border-radius: 0 0 10% 10%; }
.scn-rumor-spreads .chandelier { position:absolute; top:12%; left:50%; transform:translateX(-50%); width:30px; height:20px; background: radial-gradient(ellipse, #c0d0e0 0%, #4a5a6a 100%); border-radius:50%; box-shadow: 0 0 20px 10px rgba(160,200,240,0.3); animation: rs-chandelier 6s ease-in-out infinite alternate; }
.scn-rumor-spreads .window { position:absolute; top:15%; left:20%; width:50px; height:60px; background: radial-gradient(circle, #b0c8e0 0%, #4a6a8a 100%); border-radius:4px; box-shadow: 0 0 30px 15px rgba(160,200,240,0.3); animation: rs-window 8s ease-in-out infinite alternate; }
.scn-rumor-spreads .dancer { position:absolute; bottom:25%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; }
.scn-rumor-spreads .g1 { left:30%; animation: rs-dance1 3s ease-in-out infinite; }
.scn-rumor-spreads .g2 { left:45%; animation: rs-dance2 3.5s ease-in-out infinite; }
.scn-rumor-spreads .g3 { left:60%; animation: rs-dance1 4s ease-in-out infinite; }
.scn-rumor-spreads .whisper { position:absolute; bottom:35%; left:55%; width:10px; height:10px; background: radial-gradient(circle, #8a9aba 0%, transparent 70%); border-radius:50%; animation: rs-whisper 2s ease-in-out infinite; }
@keyframes rs-chandelier { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes rs-window { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.03); } 100% { opacity:0.85; transform: scale(0.98); } }
@keyframes rs-dance1 { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(4px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rs-dance2 { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(-4px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rs-whisper { 0% { transform: scale(0.8); opacity:0.3; } 50% { transform: scale(1.2); opacity:0.8; } 100% { transform: scale(0.9); opacity:0.4; } }

/* midnight-preparation */
.scn-midnight-preparation { background: linear-gradient(180deg, #050a12 0%, #0a1420 50%, #101a2a 100%), radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%); }
.scn-midnight-preparation .dark-bg { position:absolute; inset:0; background: linear-gradient(180deg, #050a12 0%, #101a2a 100%); }
.scn-midnight-preparation .street { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 30% 40% 0 0 / 20% 15% 0 0; }
.scn-midnight-preparation .house { position:absolute; bottom:30%; width:60px; height:50px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 20% 20% 4% 4% / 40% 40% 4% 4%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-midnight-preparation .h1 { left:15%; }
.scn-midnight-preparation .h2 { right:15%; }
.scn-midnight-preparation .lamppost { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:4px; height:40px; background: #2a3a4a; border-radius:2px; }
.scn-midnight-preparation .lantern-light { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:12px; height:16px; background: radial-gradient(circle, #d0a050 0%, #b08030 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 20px 10px rgba(200,140,60,0.2); animation: mp-lantern 4s ease-in-out infinite alternate; }
.scn-midnight-preparation .lamplighter { position:absolute; bottom:22%; left:48%; width:12px; height:30px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: mp-extinguish 6s ease-in-out infinite; }
.scn-midnight-preparation .puddle { position:absolute; bottom:8%; left:20%; width:40px; height:6px; border-radius:50%; background: linear-gradient(180deg, rgba(50,70,90,0.3) 0%, rgba(20,30,50,0.1) 100%); animation: mp-puddle 8s ease-in-out infinite alternate; }
.scn-midnight-preparation .star { position:absolute; top:10%; left:30%; width:4px; height:4px; background: radial-gradient(circle, #e0e8f0 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(200,220,255,0.3); animation: mp-star 5s ease-in-out infinite alternate; }
@keyframes mp-lantern { 0% { box-shadow: 0 0 15px 5px rgba(200,140,60,0.1); transform: scale(0.95); } 50% { box-shadow: 0 0 30px 15px rgba(200,140,60,0.3); transform: scale(1.05); } 100% { box-shadow: 0 0 10px 3px rgba(200,140,60,0.05); transform: scale(0.98); } }
@keyframes mp-extinguish { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3px) rotate(5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mp-puddle { 0% { transform: scaleX(1) scaleY(1); opacity:0.2; } 50% { transform: scaleX(1.2) scaleY(0.8); opacity:0.4; } 100% { transform: scaleX(0.9) scaleY(1.1); opacity:0.3; } }
@keyframes mp-star { 0% { transform: scale(0.5); opacity:0.3; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.8); opacity:0.5; } }

/* Scene 1: mother-monsters-confrontation (tense, bright-interior) */
.scn-mother-monsters-confrontation {
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 50%, #0e0a08 100%), radial-gradient(ellipse at 60% 50%, #c8a060 0%, transparent 70%);
}
.scn-mother-monsters-confrontation .bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.15) 0px, rgba(0,0,0,0.15) 2px, transparent 2px, transparent 4px);
}
.scn-mother-monsters-confrontation .texture {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 60% 30%, rgba(200,160,96,0.08) 0%, transparent 60%);
  animation: mmc-flicker 8s ease-in-out infinite alternate;
}
.scn-mother-monsters-confrontation .beam {
  position: absolute; top: 0; left: 0; right: 0; height: 6%;
  background: linear-gradient(180deg, #1a1412 0%, #2a221c 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-mother-monsters-confrontation .window {
  position: absolute; top: 8%; left: 55%; width: 30%; height: 35%;
  background: radial-gradient(ellipse, #ffe8c0 0%, #d0a060 50%, transparent 80%);
  box-shadow: 0 0 80px 30px rgba(200,160,96,0.5), 0 0 180px 60px rgba(200,160,96,0.2);
  animation: mmc-flicker 8s ease-in-out infinite alternate;
}
.scn-mother-monsters-confrontation .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #3a2a1c 0%, #1e1410 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -12px 24px rgba(0,0,0,0.7);
}
.scn-mother-monsters-confrontation .figure-mother {
  position: absolute; bottom: 12%; right: 15%; width: 22%; height: 70%;
  background: linear-gradient(135deg, #1a1614 0%, #0a0808 100%);
  border-radius: 60% 40% 40% 60% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -8px 0 24px rgba(0,0,0,0.7);
  animation: mmc-tower 7s ease-in-out infinite;
}
.scn-mother-monsters-confrontation .figure-friend {
  position: absolute; bottom: 18%; left: 12%; width: 16%; height: 55%;
  background: linear-gradient(225deg, #2a221e 0%, #121012 100%);
  border-radius: 40% 60% 60% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 8px 0 20px rgba(0,0,0,0.5);
  animation: mmc-flinch 5s ease-in-out infinite;
}
.scn-mother-monsters-confrontation .shadow-mother {
  position: absolute; bottom: 0; left: 55%; width: 35%; height: 25%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 70%);
  animation: mmc-creep 7s ease-in-out infinite;
}
@keyframes mmc-flicker {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(0.98); }
}
@keyframes mmc-tower {
  0% { transform: rotate(2deg) scale(1); }
  50% { transform: rotate(-3deg) scale(1.06); }
  100% { transform: rotate(2deg) scale(1); }
}
@keyframes mmc-flinch {
  0% { transform: translateX(0) rotate(0); }
  40% { transform: translateX(-8px) rotate(-3deg); }
  60% { transform: translateX(-12px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes mmc-creep {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(1.3); opacity: 1; }
  100% { transform: scaleX(1); opacity: 0.8; }
}

/* Scene 2: mother-monsters-refusal (tense, bright-interior) */
.scn-mother-monsters-refusal {
  background: linear-gradient(180deg, #1e1814 0%, #120e0a 50%, #0a0604 100%), radial-gradient(ellipse at 30% 50%, #c8a060 0%, transparent 70%);
}
.scn-mother-monsters-refusal .bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,0.1) 0px, rgba(0,0,0,0.1) 4px, transparent 4px, transparent 8px);
}
.scn-mother-monsters-refusal .doorway {
  position: absolute; left: 50%; top: 8%; width: 40%; height: 85%;
  transform: translateX(-50%);
  border: 14px solid #2a1e14;
  background: #080604;
  border-radius: 24px 24px 0 0;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.9), 0 0 30px rgba(0,0,0,0.6);
}
.scn-mother-monsters-refusal .interior-dark {
  position: absolute; left: 50%; top: 10%; width: 36%; height: 80%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0.4) 0%, #000000 100%);
  border-radius: 12px;
}
.scn-mother-monsters-refusal .figure-mother {
  position: absolute; bottom: 10%; left: 50%; width: 28%; height: 65%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1612 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
  animation: mmr-block 6s ease-in-out infinite;
}
.scn-mother-monsters-refusal .figure-child {
  position: absolute; bottom: 18%; left: 56%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -4px 0 10px rgba(0,0,0,0.5);
  animation: mmr-peek 6s ease-in-out infinite;
}
.scn-mother-monsters-refusal .figure-friend {
  position: absolute; bottom: 12%; left: 8%; width: 18%; height: 58%;
  background: linear-gradient(180deg, #2a221e 0%, #14100e 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  box-shadow: 8px 0 20px rgba(0,0,0,0.5);
  animation: mmr-lean 5s ease-in-out infinite;
}
.scn-mother-monsters-refusal .lamp {
  position: absolute; top: 22%; left: 18%; width: 6%; height: 12%;
  background: radial-gradient(ellipse, #ffd080 0%, #c08040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,208,128,0.4);
}
.scn-mother-monsters-refusal .halo {
  position: absolute; top: 15%; left: 10%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,208,128,0.15) 0%, transparent 70%);
  animation: mmr-hum 4s ease-in-out infinite alternate;
}
@keyframes mmr-block {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.08); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes mmr-peek {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  40% { transform: translateX(8px) scale(1.05); opacity: 1; }
  60% { transform: translateX(10px) scale(1.1); opacity: 0.9; }
  100% { transform: translateX(0) scale(1); opacity: 0.5; }
}
@keyframes mmr-lean {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(12px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes mmr-hum {
  0% { opacity: 0.6; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1.05); }
}

/* Scene 3: mother-monsters-threat (tense, bright-interior) */
.scn-mother-monsters-threat {
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 50%, #040202 100%), radial-gradient(ellipse at 50% 100%, #6a2a1a 0%, transparent 70%);
}
.scn-mother-monsters-threat .bg {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 80%, rgba(200,80,40,0.1) 0%, transparent 60%);
}
.scn-mother-monsters-threat .fire {
  position: absolute; bottom: 5%; left: 12%; width: 18%; height: 25%;
  background: radial-gradient(ellipse, #ff9040 0%, #ff4000 40%, #cc2200 70%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,100,40,0.5);
  animation: mmt-blaze 1.2s steps(2) infinite;
}
.scn-mother-monsters-threat .glow {
  position: absolute; bottom: 0; left: 0; width: 40%; height: 50%;
  background: radial-gradient(ellipse, rgba(255,120,40,0.2) 0%, transparent 70%);
  animation: mmt-pulse 3s ease-in-out infinite alternate;
}
.scn-mother-monsters-threat .figure-mother {
  position: absolute; bottom: 0; right: 15%; width: 35%; height: 85%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0606 100%);
  border-radius: 60% 40% 40% 60% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -12px 0 30px rgba(0,0,0,0.8);
  animation: mmt-loom 4s ease-in-out infinite;
}
.scn-mother-monsters-threat .arm-raised {
  position: absolute; bottom: 65%; right: 28%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0606 100%);
  border-radius: 40% 40% 60% 60% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  transform: rotate(-40deg);
  box-shadow: -4px 0 12px rgba(0,0,0,0.6);
  animation: mmt-shake 0.6s ease-in-out infinite;
}
.scn-mother-monsters-threat .fist {
  position: absolute; bottom: 92%; right: 30%; width: 10%; height: 10%;
  background: radial-gradient(circle, #1a1412 0%, #0a0606 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(0,0,0,0.7);
  animation: mmt-clench 0.6s ease-in-out infinite;
}
.scn-mother-monsters-threat .figure-friend {
  position: absolute; bottom: 8%; left: 8%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #2a221e 0%, #121012 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 8px 0 20px rgba(0,0,0,0.5);
  animation: mmt-retreat 4s ease-in-out infinite;
}
@keyframes mmt-blaze {
  0% { opacity: 0.7; transform: scale(1) rotate(0deg); }
  25% { opacity: 1; transform: scale(1.05) rotate(3deg); }
  50% { opacity: 0.8; transform: scale(0.95) rotate(-2deg); }
  75% { opacity: 1; transform: scale(1.1) rotate(2deg); }
  100% { opacity: 0.7; transform: scale(1) rotate(0deg); }
}
@keyframes mmt-pulse {
  0% { opacity: 0.5; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1.05); }
}
@keyframes mmt-loom {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.08) translateY(-12px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes mmt-shake {
  0% { transform: rotate(-40deg); }
  25% { transform: rotate(-30deg); }
  50% { transform: rotate(-45deg); }
  75% { transform: rotate(-35deg); }
  100% { transform: rotate(-40deg); }
}
@keyframes mmt-clench {
  0% { transform: scale(1); }
  50% { transform: scale(1.25); }
  100% { transform: scale(1); }
}
@keyframes mmt-retreat {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-25px) scale(0.85); }
  100% { transform: translateX(0) scale(1); }
}

/* Scene 4: story-peasant-girl (dark, sunlit) */
.scn-story-peasant-girl {
  background: linear-gradient(180deg, #c8d8e0 0%, #e0e8e8 40%, #c0c8c0 100%), radial-gradient(ellipse at 60% 10%, #fff8e0 0%, transparent 60%);
}
.scn-story-peasant-girl .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0c8d0 0%, #d8e0e0 100%);
  animation: spg-wash 15s ease-in-out infinite alternate;
}
.scn-story-peasant-girl .sun {
  position: absolute; top: 8%; left: 55%; width: 20%; height: 20%;
  background: radial-gradient(circle, #ffffff 0%, #fff4d0 30%, transparent 70%);
  box-shadow: 0 0 120px 60px rgba(255,244,208,0.6), 0 0 240px 120px rgba(255,244,208,0.2);
  animation: spg-blaze 10s ease-in-out infinite alternate;
}
.scn-story-peasant-girl .cloud {
  position: absolute; top: 15%; left: -20%; width: 60%; height: 12%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.4) 30%, rgba(255,255,255,0.6) 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: spg-drift 30s linear infinite;
}
.scn-story-peasant-girl .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #a09880 0%, #807058 30%, #605040 100%);
  clip-path: polygon(0% 20%, 100% 10%, 100% 100%, 0% 100%);
}
.scn-story-peasant-girl .path {
  position: absolute; bottom: 0; left: 50%; width: 30%; height: 45%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b898 0%, #a08868 100%);
  clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
  animation: spg-yawn 12s ease-in-out infinite;
}
.scn-story-peasant-girl .figure-girl {
  position: absolute; bottom: 30%; left: 50%; width: 10%; height: 28%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -8px 0 20px rgba(0,0,0,0.4);
  animation: spg-stumble 8s ease-in-out infinite;
}
.scn-story-peasant-girl .shadow {
  position: absolute; bottom: 30%; left: 50%; width: 25%; height: 8%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  animation: spg-shadow 8s ease-in-out infinite;
}
.scn-story-peasant-girl .dust {
  position: absolute; top: 20%; left: 40%; width: 40%; height: 60%;
  background: radial-gradient(circle at 30% 40%, rgba(255,244,208,0.06) 0%, transparent 50%);
  animation: spg-dust 20s ease-in-out infinite alternate;
}
@keyframes spg-wash {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes spg-blaze {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.8; }
}
@keyframes spg-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(180vw); }
}
@keyframes spg-yawn {
  0% { clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%); opacity: 0.9; }
  50% { clip-path: polygon(25% 0%, 75% 0%, 95% 100%, 5% 100%); opacity: 1; }
  100% { clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%); opacity: 0.9; }
}
@keyframes spg-stumble {
  0% { transform: translateX(-50%) rotate(0); }
  25% { transform: translateX(-45%) rotate(-4deg); }
  50% { transform: translateX(-50%) rotate(0); }
  75% { transform: translateX(-55%) rotate(4deg); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes spg-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(-50%) scaleX(1.4); opacity: 1; }
  100% { transform: translateX(-50%) scaleX(1); opacity: 0.6; }
}
@keyframes spg-dust {
  0% { opacity: 0.2; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-20px); }
  100% { opacity: 0.2; transform: translateY(0); }
}

.scn-emma-gaze { background: linear-gradient(180deg, #2a1f14 0%, #3d2b1a 50%, #4a3520 100%), radial-gradient(ellipse at 30% 30%, #8a6a40 0%, transparent 70%); }
.scn-emma-gaze .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a120a 0%, #302518 50%, #1a120a 100%); animation: eg-bg 15s ease-in-out infinite alternate; }
.scn-emma-gaze .lamp-glow { position:absolute; top:15%; left:20%; width:80px; height:80px; background: radial-gradient(circle, #c88440 0%, #8a5a30 50%, transparent 100%); border-radius:50%; animation: eg-lamp 4s ease-in-out infinite; }
.scn-emma-gaze .divan { position:absolute; bottom:10%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius:20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); animation: eg-divan 10s ease-in-out infinite; }
.scn-emma-gaze .figure-emma { position:absolute; bottom:25%; left:30%; width:50px; height:120px; background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eg-emma 6s ease-in-out infinite; }
.scn-emma-gaze .head-narrator { position:absolute; bottom:30%; left:25%; width:30px; height:20px; background: #1a120a; border-radius: 50% 50% 40% 40%; animation: eg-head 4s ease-in-out infinite; }
.scn-emma-gaze .hand-emma { position:absolute; bottom:40%; left:35%; width:15px; height:30px; background: #2a1a10; border-radius:30% 30% 20% 20%; transform: rotate(15deg); animation: eg-hand 5s ease-in-out infinite; }
@keyframes eg-bg { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes eg-lamp { 0% { transform: scale(1); opacity:0.8; box-shadow:0 0 20px #c88440; } 50% { transform: scale(1.1); opacity:1; box-shadow:0 0 40px #c88440; } 100% { transform: scale(0.95); opacity:0.7; box-shadow:0 0 15px #c88440; } }
@keyframes eg-divan { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes eg-emma { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes eg-head { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-1px); } 100% { transform: translateX(-1px) translateY(1px); } }
@keyframes eg-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(18deg) translateY(1px); } }

.scn-husband-absent { background: linear-gradient(180deg, #1e1612 0%, #2e221c 50%, #3d2d24 100%), radial-gradient(ellipse at 50% 30%, #7a5a40 0%, transparent 70%); }
.scn-husband-absent .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1a1410, #2a1e16, #1a1410); animation: ha-wall 20s ease-in-out infinite; }
.scn-husband-absent .divan { position:absolute; bottom:5%; left:5%; right:5%; height:50%; background: linear-gradient(180deg, #4a3224 0%, #2a1c12 100%); border-radius: 30% 30% 5% 5%; box-shadow: 0 -6px 12px rgba(0,0,0,0.4); animation: ha-divan 12s ease-in-out infinite; }
.scn-husband-absent .woman { position:absolute; bottom:30%; left:20%; width:60px; height:100px; background: linear-gradient(180deg, #2a1c12 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-woman 8s ease-in-out infinite; }
.scn-husband-absent .head-narrator { position:absolute; bottom:25%; left:18%; width:32px; height:22px; background: #1a1410; border-radius: 50% 50% 40% 40%; animation: ha-head 6s ease-in-out infinite; }
.scn-husband-absent .cat-misti { position:absolute; bottom:25%; left:40%; width:50px; height:30px; background: radial-gradient(circle at 30% 30%, #2a2a2a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.8); animation: ha-cat 5s ease-in-out infinite; }
.scn-husband-absent .lamp-soft { position:absolute; top:10%; left:60%; width:40px; height:60px; background: radial-gradient(circle, #c89a60 0%, #8a6630 50%, transparent 100%); border-radius: 50% 50% 20% 20%; animation: ha-lamp 3s ease-in-out infinite; }
@keyframes ha-wall { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.85 } }
@keyframes ha-divan { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.005); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ha-woman { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes ha-head { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ha-cat { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.95) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ha-lamp { 0% { transform: scale(1) rotate(0deg); opacity:0.7; } 50% { transform: scale(1.05) rotate(3deg); opacity:1; } 100% { transform: scale(0.98) rotate(-2deg); opacity:0.8; } }

.scn-item-misti-cat { background: linear-gradient(180deg, #1a1e24 0%, #2a2e34 50%, #1a1e24 100%), radial-gradient(ellipse at 50% 20%, #4a5a60 0%, transparent 60%); }
.scn-item-misti-cat .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1e24 0%, #2a2e34 100%); animation: imc-bg 20s ease-in-out infinite; }
.scn-item-misti-cat .rug { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); animation: imc-rug 15s ease-in-out infinite; }
.scn-item-misti-cat .cat { position:absolute; bottom:15%; left:30%; width:70px; height:50px; background: radial-gradient(circle at 40% 40%, #2a2a2a 0%, #0a0a0a 100%); border-radius: 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.8); animation: imc-cat 6s ease-in-out infinite; transform-origin: bottom center; }
.scn-item-misti-cat .lamp { position:absolute; top:10%; left:60%; width:30px; height:50px; background: radial-gradient(circle, #c8a870 0%, #8a6e40 50%, transparent 100%); border-radius: 50% 50% 20% 20%; animation: imc-lamp 4s ease-in-out infinite; }
.scn-item-misti-cat .shadow-cat { position:absolute; bottom:10%; left:30%; width:70px; height:10px; background: radial-gradient(ellipse, #000 0%, transparent 100%); opacity:0.5; animation: imc-shadow 6s ease-in-out infinite; }
.scn-item-misti-cat .yarn-ball { position:absolute; bottom:20%; left:20%; width:15px; height:15px; background: radial-gradient(circle, #c06030 0%, #803010 100%); border-radius:50%; animation: imc-yarn 8s ease-in-out infinite; }
@keyframes imc-bg { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.85 } }
@keyframes imc-rug { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(1); } }
@keyframes imc-cat { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes imc-lamp { 0% { transform: scale(1) rotate(-1deg); opacity:0.7; box-shadow:0 0 20px #c8a870; } 50% { transform: scale(1.05) rotate(2deg); opacity:1; box-shadow:0 0 35px #c8a870; } 100% { transform: scale(0.98) rotate(0deg); opacity:0.8; box-shadow:0 0 15px #c8a870; } }
@keyframes imc-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.4; transform: scaleX(0.9); } 100% { opacity:0.5; transform: scaleX(1); } }
@keyframes imc-yarn { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(180deg); } 100% { transform: translateX(0) rotate(360deg); } }

.scn-tavern-adventure { background: linear-gradient(180deg, #2a1a10 0%, #3d2818 50%, #2a1a10 100%), radial-gradient(ellipse at 40% 30%, #d4a050 0%, transparent 70%); }
.scn-tavern-adventure .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a120e, #2a1a12, #1a120e); animation: ta-wall 20s ease-in-out infinite; }
.scn-tavern-adventure .table { position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3d2818 0%, #2a1a10 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.6); animation: ta-table 12s ease-in-out infinite; }
.scn-tavern-adventure .lamp-gas { position:absolute; top:5%; left:40%; width:50px; height:60px; background: radial-gradient(circle, #f0c060 0%, #c08030 50%, transparent 100%); border-radius: 50% 50% 20% 20%; animation: ta-lamp 3s ease-in-out infinite; }
.scn-tavern-adventure .figure-woman { position:absolute; bottom:25%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #2a1a12 0%, #1a0f08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ta-woman 5s ease-in-out infinite; }
.scn-tavern-adventure .glass { position:absolute; bottom:35%; left:35%; width:10px; height:25px; background: linear-gradient(180deg, rgba(200,180,150,0.6) 0%, rgba(180,160,130,0.2) 100%); border-radius: 10% 10% 5% 5%; border: 1px solid rgba(200,180,150,0.3); animation: ta-glass 4s ease-in-out infinite; }
.scn-tavern-adventure .cherries { position:absolute; bottom:40%; left:30%; width:12px; height:12px; background: radial-gradient(circle, #a04020 0%, #702010 100%); border-radius:50%; box-shadow: 2px 2px 4px rgba(0,0,0,0.5); animation: ta-cherries 6s ease-in-out infinite; }
.scn-tavern-adventure .shadow-table { position:absolute; bottom:8%; left:15%; right:15%; height:5px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); animation: ta-shadow 5s ease-in-out infinite; }
@keyframes ta-wall { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.85 } }
@keyframes ta-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ta-lamp { 0% { transform: scale(1) rotate(0deg); opacity:0.7; box-shadow:0 0 30px #f0c060; } 50% { transform: scale(1.05) rotate(3deg); opacity:1; box-shadow:0 0 50px #f0c060; } 100% { transform: scale(0.97) rotate(-2deg); opacity:0.8; box-shadow:0 0 20px #f0c060; } }
@keyframes ta-woman { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ta-glass { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ta-cherries { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes ta-shadow { 0% { opacity:0.6; transform: scaleX(1); } 50% { opacity:0.4; transform: scaleX(0.9); } 100% { opacity:0.6; transform: scaleX(1); } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.awning { position: absolute; pointer-events: none; }
.bird { position: absolute; pointer-events: none; }
.cockatoo { position: absolute; pointer-events: none; }
.fig { position: absolute; pointer-events: none; }
.motes { position: absolute; pointer-events: none; }
.pig { position: absolute; pointer-events: none; }
.pig-run { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.stone { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-suicide-visions {
  background: linear-gradient(180deg, #14101f 0%, #1c162e 40%, #241b3d 100%), radial-gradient(ellipse at 50% 60%, #2a2045 0%, transparent 70%);
}
.scn-suicide-visions .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1427 0%, #241b3d 50%, #2a1f38 100%); opacity: 0.8;
}
.scn-suicide-visions .window-glow {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at center, rgba(180, 160, 120, 0.3) 0%, rgba(180, 160, 120, 0.05) 70%, transparent 100%);
  border-radius: 20%; filter: blur(12px);
  animation: sv-glow 8s ease-in-out infinite alternate;
}
.scn-suicide-visions .hook-a,
.scn-suicide-visions .hook-b,
.scn-suicide-visions .hook-c {
  position: absolute; top: 18%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1f30 100%);
  border-radius: 2px 2px 0 0;
  transform-origin: top center;
}
.scn-suicide-visions .hook-a { left: 20%; animation: sv-sway 7s ease-in-out infinite; }
.scn-suicide-visions .hook-b { left: 48%; animation: sv-sway 9s ease-in-out infinite 1s; }
.scn-suicide-visions .hook-c { left: 76%; animation: sv-sway 6s ease-in-out infinite 2s; }
.scn-suicide-visions .figure-a,
.scn-suicide-visions .figure-b,
.scn-suicide-visions .figure-c {
  position: absolute; top: 20%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: top center;
}
.scn-suicide-visions .figure-a { left: 19%; animation: sv-sway 7s ease-in-out infinite; }
.scn-suicide-visions .figure-b { left: 47%; animation: sv-sway 9s ease-in-out infinite 1s; }
.scn-suicide-visions .figure-c { left: 75%; animation: sv-sway 6s ease-in-out infinite 2s; }
.scn-suicide-visions .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(8,6,14,0.7) 100%);
}
@keyframes sv-sway {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(2px); }
  50% { transform: rotate(-1deg) translateY(1px); }
  75% { transform: rotate(3deg) translateY(3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sv-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

.scn-suicide-thought {
  background: linear-gradient(180deg, #2b2e3b 0%, #1f2230 50%, #141724 100%), radial-gradient(ellipse at 50% 30%, #3f4354 0%, transparent 70%);
}
.scn-suicide-thought .bg-door {
  position: absolute; inset: 20% 25% 30% 25%; background: #2d3140; border-radius: 4px 4px 0 0; box-shadow: 0 0 0 3px #4a5070;
}
.scn-suicide-thought .door-frame {
  position: absolute; inset: 20% 25% 30% 25%; border: 4px solid #4a5070; border-radius: 4px 4px 0 0; background: transparent;
  animation: st-door 12s ease-in-out infinite alternate;
}
.scn-suicide-thought .crowd-a,
.scn-suicide-thought .crowd-b,
.scn-suicide-thought .crowd-c {
  position: absolute; bottom: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #353a4a 0%, #1e222e 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
}
.scn-suicide-thought .crowd-a { left: 10%; animation: st-crowd 20s linear infinite; }
.scn-suicide-thought .crowd-b { left: 35%; animation: st-crowd 25s linear infinite 3s; }
.scn-suicide-thought .crowd-c { left: 65%; animation: st-crowd 22s linear infinite 6s; }
.scn-suicide-thought .prayer-light {
  position: absolute; top: 25%; left: 45%; width: 10%; height: 10%;
  background: radial-gradient(circle, rgba(200, 210, 220, 0.4) 0%, transparent 80%);
  filter: blur(8px);
  animation: st-light 6s ease-in-out infinite alternate;
}
.scn-suicide-thought .floor-line {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #4a5070 20%, #6a7090 50%, #4a5070 80%, transparent 100%);
}
@keyframes st-door {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.6; transform: scaleY(0.98); }
}
@keyframes st-crowd {
  0% { transform: translateX(-20px) scaleY(1); }
  50% { transform: translateX(10vw) scaleY(0.95); }
  100% { transform: translateX(-20px) scaleY(1); }
}
@keyframes st-light {
  0% { opacity: 0.2; transform: scale(0.8); }
  100% { opacity: 0.5; transform: scale(1.2); }
}

.scn-suicide-bureau-entrance {
  background: linear-gradient(180deg, #f0e6d8 0%, #e0d4c0 50%, #d4c6b0 100%), radial-gradient(ellipse at 50% 20%, #faf5ee 0%, transparent 70%);
}
.scn-suicide-bureau-entrance .wall-calm {
  position: absolute; inset: 0; background: linear-gradient(180deg, #ecdfcc 0%, #d6c5ab 100%); opacity: 0.6;
}
.scn-suicide-bureau-entrance .floor-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b09878 0%, #8a7658 100%);
  border-top: 2px solid #a08868;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.1);
}
.scn-suicide-bureau-entrance .entrance-door {
  position: absolute; bottom: 25%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #c0a888 0%, #a08868 100%);
  border: 3px solid #8a7658; border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2), 0 4px 8px rgba(0,0,0,0.3);
}
.scn-suicide-bureau-entrance .cloak-rack {
  position: absolute; bottom: 28%; left: 18%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #8a7658 0%, #6a5a42 100%);
  border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,0.2);
}
.scn-suicide-bureau-entrance .footman-left,
.scn-suicide-bureau-entrance .footman-right {
  position: absolute; bottom: 28%; width: 16px; height: 45px;
  background: linear-gradient(180deg, #d4c6b0 0%, #b8a68a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-suicide-bureau-entrance .footman-left { left: 30%; animation: be-footman 8s ease-in-out infinite; }
.scn-suicide-bureau-entrance .footman-right { left: 60%; animation: be-footman 8s ease-in-out infinite 4s; }
.scn-suicide-bureau-entrance .chandelier {
  position: absolute; top: 8%; left: 42%; width: 16%; height: 12%;
  background: radial-gradient(ellipse at bottom, #f0e0b0 0%, #c8a868 50%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: be-chandelier 5s ease-in-out infinite alternate;
}
.scn-suicide-bureau-entrance .warm-light {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 10%, rgba(255, 240, 200, 0.4) 0%, transparent 70%);
  pointer-events: none;
}
@keyframes be-footman {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(1px); }
}
@keyframes be-chandelier {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

.scn-suicide-bureau-explanation {
  background: linear-gradient(180deg, #e8ddc8 0%, #d6c8b0 50%, #c8b89c 100%), radial-gradient(ellipse at 50% 30%, #f5eedd 0%, transparent 70%);
}
.scn-suicide-bureau-explanation .room-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #ddd0bc 0%, #c8bba0 100%); opacity: 0.5;
}
.scn-suicide-bureau-explanation .desk {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #b09878 0%, #8a7658 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  border-top: 2px solid #a08868;
}
.scn-suicide-bureau-explanation .chair {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #b09878 0%, #8a7658 100%);
  border-radius: 4px 4px 0 0;
  transform: perspective(200px) rotateX(5deg);
}
.scn-suicide-bureau-explanation .official {
  position: absolute; bottom: 22%; left: 38%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #d4c6b0 0%, #b8a68a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bx-official 6s ease-in-out infinite alternate;
}
.scn-suicide-bureau-explanation .lamp {
  position: absolute; top: 18%; left: 45%; width: 10%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #f0e0b0 0%, #d4b878 50%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: bx-lamp 4s ease-in-out infinite alternate;
}
.scn-suicide-bureau-explanation .paper-stack {
  position: absolute; bottom: 24%; left: 50%; width: 6%; height: 4%;
  background: #e8ddc8; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-5deg);
}
.scn-suicide-bureau-explanation .window-blind {
  position: absolute; top: 12%; left: 70%; width: 18%; height: 30%;
  background: linear-gradient(180deg, #e8ddc8 0%, #c8bba0 100%);
  border: 2px solid #b09878; border-radius: 4px;
  opacity: 0.7;
}
.scn-suicide-bureau-explanation .soft-light {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 45% 20%, rgba(255, 245, 210, 0.3) 0%, transparent 80%);
  pointer-events: none;
}
@keyframes bx-official {
  0% { transform: scaleY(1) translateY(0); }
  100% { transform: scaleY(1.02) translateY(-2px); }
}
@keyframes bx-lamp {
  0% { opacity: 0.5; }
  100% { opacity: 1; }
}

.scn-chicot-arrival {
  background: 
    linear-gradient(180deg, #f7e9c8 0%, #d4c19e 40%, #b8a87a 100%),
    radial-gradient(ellipse at 50% 100%, #b8a87a 0%, transparent 70%);
}
.scn-chicot-arrival .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b6d0e0 0%, #e8f0ff 100%); animation: ca-sky 18s ease-in-out infinite alternate; }
.scn-chicot-arrival .field { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a9e6a 0%, #5c7a4e 100%); border-radius: 30% 70% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,20,0,.3); animation: ca-field 12s ease-in-out infinite; }
.scn-chicot-arrival .fence { position:absolute; bottom:35%; left:0; width:100%; height:12px; background: repeating-linear-gradient(90deg, #6b4a2e 0px, #6b4a2e 4px, transparent 4px, transparent 20px); box-shadow: 0 2px 4px rgba(0,0,0,.2); }
.scn-chicot-arrival .gate { position:absolute; bottom:33%; left:30%; width:60px; height:50px; background: #7a5a3a; border: 3px solid #5a3a1a; border-radius: 4px; transform-origin: left center; animation: ca-gate 5s ease-in-out infinite; }
.scn-chicot-arrival .farmhouse { position:absolute; bottom:32%; left:58%; width:100px; height:80px; background: linear-gradient(180deg, #c2a05a 0%, #a08040 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-chicot-arrival .farmhouse::after { content:''; position:absolute; top:15%; left:50%; width:30px; height:40px; background: #4a3a1a; transform:translateX(-50%); border-radius: 2px; }
.scn-chicot-arrival .buggy { position:absolute; bottom:28%; left:15%; width:60px; height:40px; background: linear-gradient(135deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 20% 40% 40% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ca-buggy 4s ease-in-out infinite; }
.scn-chicot-arrival .figure-chicot { position:absolute; bottom:26%; left:20%; width:12px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-walk 3s ease-in-out infinite; }
.scn-chicot-arrival .figure-magloire { position:absolute; bottom:34%; left:55%; width:10px; height:28px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-stand 3s ease-in-out infinite; }
@keyframes ca-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ca-field { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ca-gate { 0%,100% { transform: rotate(0); } 25% { transform: rotate(-15deg); } 75% { transform: rotate(0); } }
@keyframes ca-buggy { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-5px); } }
@keyframes ca-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(2deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes ca-stand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

.scn-chicot-meeting {
  background: 
    linear-gradient(180deg, #d4c4a0 0%, #b8a88a 50%, #8a7a6a 100%),
    radial-gradient(ellipse at 50% 100%, #8a7a6a 0%, transparent 60%);
}
.scn-chicot-meeting .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8dcc4 0%, #c8bca4 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.15); }
.scn-chicot-meeting .window { position:absolute; top:10%; left:60%; width:50px; height:60px; background: linear-gradient(180deg, #b8d4e8 0%, #e0f0ff 100%); border: 4px solid #6a5a3a; border-radius: 2px; box-shadow: 0 6px 20px rgba(200,220,240,.4); animation: cm-window 10s ease-in-out infinite alternate; }
.scn-chicot-meeting .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 20% 20% 0 0; }
.scn-chicot-meeting .stool { position:absolute; bottom:25%; left:35%; width:30px; height:20px; background: #5a3a1a; border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.scn-chicot-meeting .figure-old-woman { position:absolute; bottom:26%; left:30%; width:14px; height:34px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cm-sit 5s ease-in-out infinite; }
.scn-chicot-meeting .figure-chicot-sitting { position:absolute; bottom:24%; left:50%; width:16px; 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: cm-lean 6s ease-in-out infinite; }
.scn-chicot-meeting .table { position:absolute; bottom:28%; left:40%; width:40px; height:14px; background: #5a3a1a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
@keyframes cm-window { 0% { opacity:0.7; box-shadow: 0 6px 20px rgba(200,220,240,.3); } 50% { opacity:1; box-shadow: 0 8px 30px rgba(200,220,240,.6); } 100% { opacity:0.8; box-shadow: 0 6px 20px rgba(200,220,240,.4); } }
@keyframes cm-sit { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cm-lean { 0% { transform: rotate(0); } 25% { transform: rotate(3deg); } 50% { transform: rotate(0); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0); } }

.scn-chicot-proposition {
  background: 
    linear-gradient(180deg, #b8a07a 0%, #8a7050 40%, #5a4030 100%),
    radial-gradient(ellipse at 50% 0%, #e8d8b0 0%, transparent 50%);
}
.scn-chicot-proposition .wall-kitchen { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8a87a 0%, #a08060 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-chicot-proposition .counter { position:absolute; bottom:35%; left:10%; right:10%; height:20px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 2px; }
.scn-chicot-proposition .bowl { position:absolute; bottom:38%; left:20%; width:40px; height:20px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 0 0 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: cp-bowl 8s ease-in-out infinite; }
.scn-chicot-proposition .potatoes { position:absolute; bottom:40%; left:20%; width:30px; height:15px; background: radial-gradient(circle at 30% 30%, #8a7a5a 0%, #5a4a2a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: cp-potatoes 8s ease-in-out infinite; }
.scn-chicot-proposition .hands { position:absolute; bottom:36%; left:25%; width:20px; height:10px; background: linear-gradient(180deg, #b08a6a 0%, #8a6a4a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform-origin: top center; animation: cp-hands 4s ease-in-out infinite; }
.scn-chicot-proposition .fowl-1 { position:absolute; bottom:38%; left:45%; width:12px; height:10px; background: linear-gradient(180deg, #8a7a3a 0%, #6a5a2a 100%); border-radius: 50% 50% 40% 40%; animation: cp-hop 1.5s ease-in-out infinite; }
.scn-chicot-proposition .fowl-2 { position:absolute; bottom:36%; left:55%; width:10px; height:8px; background: linear-gradient(180deg, #7a6a2a 0%, #5a4a1a 100%); border-radius: 50% 50% 40% 40%; animation: cp-hop 1.8s ease-in-out infinite 0.3s; }
.scn-chicot-proposition .fowl-3 { position:absolute; bottom:39%; left:65%; width:11px; height:9px; background: linear-gradient(180deg, #6a5a2a 0%, #4a3a1a 100%); border-radius: 50% 50% 40% 40%; animation: cp-hop 1.6s ease-in-out infinite 0.6s; }
@keyframes cp-bowl { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes cp-potatoes { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px) rotate(3deg); } }
@keyframes cp-hands { 0% { transform: rotate(0) translateY(0); } 25% { transform: rotate(-5deg) translateY(-1px); } 50% { transform: rotate(0) translateY(0); } 75% { transform: rotate(5deg) translateY(1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes cp-hop { 0%,100% { transform: translateY(0); } 30% { transform: translateY(-4px); } 60% { transform: translateY(-2px); } 80% { transform: translateY(0); } }

.scn-chicot-annuity-offer {
  background: 
    linear-gradient(180deg, #b8a07a 0%, #8a7050 40%, #5a4030 100%),
    radial-gradient(ellipse at 50% 100%, #5a4030 0%, transparent 60%);
}
.scn-chicot-annuity-offer .wall-office { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c8b89a 0%, #a08868 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-chicot-annuity-offer .table-desk { position:absolute; bottom:30%; left:20%; right:20%; height:16px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 4px; }
.scn-chicot-annuity-offer .document { position:absolute; bottom:34%; left:35%; width:50px; height:30px; background: linear-gradient(135deg, #e8dcc4 0%, #c8bca4 100%); border: 1px solid #8a7a5a; box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: can-doc 12s ease-in-out infinite alternate; }
.scn-chicot-annuity-offer .hand-chicot { position:absolute; bottom:32%; left:45%; width:16px; height:12px; background: linear-gradient(180deg, #b08a6a 0%, #8a6a4a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom left; animation: can-reach 5s ease-in-out infinite; }
.scn-chicot-annuity-offer .hand-magloire { position:absolute; bottom:32%; left:56%; width:14px; height:10px; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; transform-origin: bottom right; animation: can-withdraw 5s ease-in-out infinite 2.5s; }
.scn-chicot-annuity-offer .candle { position:absolute; bottom:36%; left:55%; width:8px; height:26px; background: linear-gradient(180deg, #d4b88a 0%, #a08060 100%); border-radius: 2px; box-shadow: 0 0 10px 4px #ffd080; }
.scn-chicot-annuity-offer .glow { position:absolute; bottom:36%; left:55%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%); border-radius: 50%; transform: translate(-50%, -50%); animation: can-glow 3s ease-in-out infinite alternate; pointer-events: none; }
@keyframes can-doc { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(0) scale(1); } }
@keyframes can-reach { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(-10deg); } 50% { transform: translateX(8px) rotate(0); } 75% { transform: translateX(4px) rotate(10deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes can-withdraw { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-4px) rotate(10deg); } 50% { transform: translateX(-8px) rotate(0); } 75% { transform: translateX(-4px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes can-glow { 0% { opacity:0.6; transform: translate(-50%, -50%) scale(0.8); } 100% { opacity:1; transform: translate(-50%, -50%) scale(1.2); } }

.scn-suicide-bureau-club { background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #a07858 100%); }
.scn-suicide-bureau-club .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #e8d5b0 0%, #c8a87a 100%); }
.scn-suicide-bureau-club .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b6f4e 0%, #5a3d2c 100%); }
.scn-suicide-bureau-club .table { position:absolute; bottom:20%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: sbc-table 6s ease-in-out infinite alternate; }
.scn-suicide-bureau-club .chair-left { position:absolute; bottom:22%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #5a3d2c 0%, #3a2518 100%); border-radius:30% 30% 10% 10%; transform-origin:bottom center; animation: sbc-chair 4s ease-in-out infinite; }
.scn-suicide-bureau-club .chair-right { position:absolute; bottom:22%; right:35%; width:40px; height:50px; background: linear-gradient(180deg, #5a3d2c 0%, #3a2518 100%); border-radius:30% 30% 10% 10%; transform-origin:bottom center; animation: sbc-chair 4s ease-in-out infinite reverse; }
.scn-suicide-bureau-club .figure-left { position:absolute; bottom:24%; left:38%; width:30px; height:60px; background: linear-gradient(180deg, #3a2518 0%, #1a1008 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: sbc-figure-left 5s ease-in-out infinite; }
.scn-suicide-bureau-club .figure-right { position:absolute; bottom:24%; right:38%; width:30px; height:60px; background: linear-gradient(180deg, #3a2518 0%, #1a1008 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: sbc-figure-right 5s ease-in-out infinite; }
.scn-suicide-bureau-club .lamp { position:absolute; top:10%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: radial-gradient(circle at 50% 100%, #ffd080 0%, #c89050 70%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 40px 20px rgba(255,208,128,.3); animation: sbc-lamp 3s ease-in-out infinite alternate; }
.scn-suicide-bureau-club .glow { position:absolute; top:0; left:0; right:0; height:60%; background: radial-gradient(ellipse at 50% 20%, rgba(255,220,150,.15) 0%, transparent 60%); pointer-events:none; }
@keyframes sbc-table { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sbc-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sbc-figure-left { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(2deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-2px,-1px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes sbc-figure-right { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-2px,-1px) rotate(-2deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(2px,-1px) rotate(2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes sbc-lamp { 0% { opacity:0.8; box-shadow:0 0 30px 15px rgba(255,208,128,.2); } 100% { opacity:1; box-shadow:0 0 50px 25px rgba(255,208,128,.4); } }

.scn-suicide-bureau-tour { background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 40%, #b8a890 100%); }
.scn-suicide-bureau-tour .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #e8dcc8 0%, #c8b89a 100%); }
.scn-suicide-bureau-tour .bg-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%); }
.scn-suicide-bureau-tour .card-table { position:absolute; bottom:18%; left:30%; width:300px; height:50px; transform:translateX(-20%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:8px; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: sbt-table 8s ease-in-out infinite; }
.scn-suicide-bureau-tour .player-1 { position:absolute; bottom:22%; left:15%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: sbt-player 6s ease-in-out infinite; }
.scn-suicide-bureau-tour .player-2 { position:absolute; bottom:22%; left:38%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: sbt-player 6s ease-in-out infinite 2s; }
.scn-suicide-bureau-tour .player-3 { position:absolute; bottom:22%; left:55%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: sbt-player 6s ease-in-out infinite 4s; }
.scn-suicide-bureau-tour .card-deck { position:absolute; bottom:20%; left:46%; width:30px; height:40px; transform:rotate(10deg); background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 100%); border-radius:4px; box-shadow: 2px 2px 4px rgba(0,0,0,.2); animation: sbt-cards 12s ease-in-out infinite; }
.scn-suicide-bureau-tour .chandelier { position:absolute; top:5%; left:50%; width:80px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #c8a870 0%, #8a7040 70%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 30px 20px rgba(200,168,112,.2); animation: sbt-chandelier 5s ease-in-out infinite alternate; }
.scn-suicide-bureau-tour .light-dust { position:absolute; top:0; left:0; right:0; height:60%; background: radial-gradient(ellipse at 30% 10%, rgba(255,240,200,.08) 0%, transparent 60%); pointer-events:none; animation: sbt-dust 20s linear infinite; }
@keyframes sbt-table { 0% { transform: translateX(-20%) scale(1); } 50% { transform: translateX(-20%) scale(1.005); } 100% { transform: translateX(-20%) scale(1); } }
@keyframes sbt-player { 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 sbt-cards { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes sbt-chandelier { 0% { opacity:0.8; box-shadow:0 0 20px 10px rgba(200,168,112,.15); } 100% { opacity:1; box-shadow:0 0 40px 20px rgba(200,168,112,.3); } }
@keyframes sbt-dust { 0% { background-position:0% 0%; } 100% { background-position:100% 0%; } }

.scn-suicide-bureau-finance { background: linear-gradient(180deg, #e6d8c0 0%, #c8b898 40%, #a08868 100%); }
.scn-suicide-bureau-finance .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.3) 100%); }
.scn-suicide-bureau-finance .desk { position:absolute; bottom:15%; left:50%; width:200px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:6px; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: sbf-desk 10s ease-in-out infinite; }
.scn-suicide-bureau-finance .papers { position:absolute; bottom:22%; left:40%; width:60px; height:10px; background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 100%); border-radius:2px; transform:rotate(-5deg); animation: sbf-papers 5s ease-in-out infinite alternate; }
.scn-suicide-bureau-finance .coin-pile { position:absolute; bottom:20%; left:55%; width:30px; height:20px; background: radial-gradient(circle at 50% 30%, #e8c870 0%, #b09050 60%); border-radius:50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sbf-coins 4s ease-in-out infinite; }
.scn-suicide-bureau-finance .figure-seated { position:absolute; bottom:17%; left:30%; width:50px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom center; animation: sbf-figure 6s ease-in-out infinite; }
.scn-suicide-bureau-finance .inkwell { position:absolute; bottom:24%; left:48%; width:12px; height:16px; background: radial-gradient(circle at 50% 20%, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 10% 10%; animation: sbf-ink 8s ease-in-out infinite; }
.scn-suicide-bureau-finance .ledger { position:absolute; bottom:23%; left:42%; width:80px; height:40px; transform:rotate(-3deg); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4px; box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: sbf-ledger 7s ease-in-out infinite alternate; }
.scn-suicide-bureau-finance .lamp-desk { position:absolute; bottom:30%; left:55%; width:16px; height:30px; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #b88850 70%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 30px 12px rgba(255,208,128,.3); animation: sbf-lamp 4s ease-in-out infinite alternate; }
.scn-suicide-bureau-finance .shadow { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.2) 100%); pointer-events:none; }
@keyframes sbf-desk { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.002); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes sbf-papers { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes sbf-coins { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(1); opacity:0.9; } }
@keyframes sbf-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sbf-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes sbf-ledger { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes sbf-lamp { 0% { opacity:0.85; box-shadow:0 0 20px 8px rgba(255,208,128,.2); } 100% { opacity:1; box-shadow:0 0 40px 16px rgba(255,208,128,.4); } }

.scn-suicide-bureau-endormeuse { background: linear-gradient(180deg, #d0e0e8 0%, #b8c8d4 40%, #a0b0c0 100%); }
.scn-suicide-bureau-endormeuse .corridor-bg { position:absolute; inset:0; background: linear-gradient(90deg, rgba(255,200,200,.1) 0%, rgba(200,255,200,.1) 50%, rgba(200,200,255,.1) 100%); }
.scn-suicide-bureau-endormeuse .glass-pane-a { position:absolute; top:5%; left:10%; width:30%; height:60%; background: linear-gradient(180deg, rgba(180,220,255,.3) 0%, rgba(180,220,255,.1) 100%); border-radius:10px; transform:skewY(3deg); box-shadow:0 0 20px rgba(180,220,255,.2); animation: sbe-glass-a 8s ease-in-out infinite alternate; }
.scn-suicide-bureau-endormeuse .glass-pane-b { position:absolute; top:8%; left:40%; width:25%; height:55%; background: linear-gradient(180deg, rgba(255,200,220,.3) 0%, rgba(255,200,220,.1) 100%); border-radius:10px; transform:skewY(-2deg); box-shadow:0 0 20px rgba(255,200,220,.2); animation: sbe-glass-b 10s ease-in-out infinite alternate; }
.scn-suicide-bureau-endormeuse .glass-pane-c { position:absolute; top:3%; left:65%; width:28%; height:65%; background: linear-gradient(180deg, rgba(200,255,220,.3) 0%, rgba(200,255,220,.1) 100%); border-radius:10px; transform:skewY(4deg); box-shadow:0 0 20px rgba(200,255,220,.2); animation: sbe-glass-c 12s ease-in-out infinite alternate; }
.scn-suicide-bureau-endormeuse .divan { position:absolute; bottom:15%; left:25%; width:150px; height:40px; transform:translateX(-10%); background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: sbe-divan 6s ease-in-out infinite; }
.scn-suicide-bureau-endormeuse .palm { position:absolute; bottom:5%; left:60%; width:20px; height:80px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius:0% 0% 40% 40% / 0% 0% 60% 60%; transform-origin:bottom center; animation: sbe-palm 15s ease-in-out infinite; }
.scn-suicide-bureau-endormeuse .rose { position:absolute; bottom:20%; left:42%; width:14px; height:18px; background: radial-gradient(circle at 50% 40%, #b87878 0%, #8a5050 70%); border-radius:50% 50% 30% 30%; transform:rotate(20deg); box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: sbe-rose 7s ease-in-out infinite; }
.scn-suicide-bureau-endormeuse .bookshelf { position:absolute; top:15%; left:5%; width:15%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4px; box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: sbe-shelf 20s ease-in-out infinite; }
.scn-suicide-bureau-endormeuse .figure-guide { position:absolute; bottom:18%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: sbe-guide 5s ease-in-out infinite; }
@keyframes sbe-glass-a { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes sbe-glass-b { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes sbe-glass-c { 0% { opacity:0.8; } 50% { opacity:0.5; } 100% { opacity:0.8; } }
@keyframes sbe-divan { 0% { transform: translateX(-10%) scale(1); } 50% { transform: translateX(-10%) scale(1.005); } 100% { transform: translateX(-10%) scale(1); } }
@keyframes sbe-palm { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes sbe-rose { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(20deg) scale(1.05); opacity:0.9; } 100% { transform: rotate(20deg) scale(1); opacity:1; } }
@keyframes sbe-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes sbe-guide { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(2deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-2px,-1px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(0deg); } }

.scn-droll-woman-escapades {
  background: linear-gradient(180deg, #3a2210 0%, #2a1808 40%, #1a0e04 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 70%);
}
.scn-droll-woman-escapades .table {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 40%; height: 8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 10% / 30%; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-droll-woman-escapades .chair-left {
  position: absolute; bottom: 22%; left: 30%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 30% 30% 10% 10%; transform: rotate(-5deg);
  animation: s1-chair 4s ease-in-out infinite alternate;
}
.scn-droll-woman-escapades .chair-right {
  position: absolute; bottom: 22%; right: 30%; width: 14%; height: 20%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 30% 30% 10% 10%; transform: rotate(5deg);
  animation: s1-chair 4s ease-in-out infinite alternate-reverse;
}
.scn-droll-woman-escapades .figure-left {
  position: absolute; bottom: 26%; left: 35%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure-left 5s ease-in-out infinite;
}
.scn-droll-woman-escapades .figure-right {
  position: absolute; bottom: 26%; right: 35%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure-right 5s ease-in-out infinite;
}
.scn-droll-woman-escapades .glass-left {
  position: absolute; bottom: 18%; left: 42%; width: 4%; height: 6%;
  background: radial-gradient(circle, #e8d8b0 0%, #a08050 70%);
  border-radius: 20% 20% 80% 80%; box-shadow: 0 0 10px 2px #c0a060;
  animation: s1-sip 2s ease-in-out infinite;
}
.scn-droll-woman-escapades .glass-right {
  position: absolute; bottom: 18%; right: 42%; width: 4%; height: 6%;
  background: radial-gradient(circle, #e8d8b0 0%, #a08050 70%);
  border-radius: 20% 20% 80% 80%;
  animation: s1-sip 2s ease-in-out 1s infinite;
}
.scn-droll-woman-escapades .lamp {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 8%; height: 12%; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 50%, #4a2a10 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 15px #c08040, 0 0 60px 30px rgba(192,128,64,0.3);
  animation: s1-flicker 3s ease-in-out infinite alternate;
}
.scn-droll-woman-escapades .smoke {
  position: absolute; top: 5%; left: 45%; width: 20%; height: 10%;
  background: radial-gradient(ellipse, rgba(180,160,130,0.3) 0%, transparent 70%);
  filter: blur(6px); animation: s1-smoke 8s linear infinite;
}
@keyframes s1-chair {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-4px); }
}
@keyframes s1-figure-left {
  0%, 100% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-3px); }
}
@keyframes s1-figure-right {
  0%, 100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-5px); }
}
@keyframes s1-sip {
  0%, 100% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.9) translateY(2px); }
}
@keyframes s1-flicker {
  0% { opacity: 0.7; box-shadow: 0 0 20px 10px #c08040; }
  50% { opacity: 1; box-shadow: 0 0 40px 20px #ffd080; }
  100% { opacity: 0.8; box-shadow: 0 0 25px 12px #c08040; }
}
@keyframes s1-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-30px) scale(1.5); opacity: 0.2; }
  100% { transform: translateY(-60px) scale(2); opacity: 0; }
}

.scn-droll-woman-fortune-teller {
  background: linear-gradient(135deg, #1a0e08 0%, #2a1808 30%, #1a0e04 70%, #0a0400 100%),
              radial-gradient(ellipse at 50% 30%, #3a2010 0%, transparent 70%);
}
.scn-droll-woman-fortune-teller .table {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 50%; height: 10%; background: linear-gradient(180deg, #4a2a10 0%, #2a1808 100%);
  border-radius: 20% 20% 5% 5%; box-shadow: 0 6px 20px rgba(0,0,0,0.8);
}
.scn-droll-woman-fortune-teller .figure-teller {
  position: absolute; bottom: 30%; left: 60%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #1a0e04 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-teller 6s ease-in-out infinite;
}
.scn-droll-woman-fortune-teller .figure-client {
  position: absolute; bottom: 30%; left: 26%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-client 5s ease-in-out infinite;
}
.scn-droll-woman-fortune-teller .cards {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 8%;
  background: repeating-linear-gradient(45deg, #e0d0b0 0px, #e0d0b0 2px, #c0a080 2px, #c0a080 4px);
  border-radius: 5%; box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
  animation: s2-cards 8s ease-in-out infinite alternate;
}
.scn-droll-woman-fortune-teller .candle {
  position: absolute; bottom: 22%; left: 48%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c09860 30%, #5a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: s2-candle 3s ease-in-out infinite alternate;
}
.scn-droll-woman-fortune-teller .shadow-curtain {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 30% 40%, transparent 30%, rgba(0,0,0,0.6) 100%);
  animation: s2-shadow 10s ease-in-out infinite alternate;
}
.scn-droll-woman-fortune-teller .glow {
  position: absolute; bottom: 22%; left: 46%; width: 10%; height: 10%;
  background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.2) 50%, transparent 100%);
  filter: blur(8px);
  animation: s2-glow 2s ease-in-out infinite alternate;
}
@keyframes s2-teller {
  0%, 100% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-5px); }
}
@keyframes s2-client {
  0%, 100% { transform: rotate(-2deg) scale(1); }
  33% { transform: rotate(2deg) scale(1.02); }
  66% { transform: rotate(-4deg) scale(0.98); }
}
@keyframes s2-cards {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.1); }
  100% { transform: rotate(-15deg) scale(0.9); }
}
@keyframes s2-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.8; }
}
@keyframes s2-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes s2-glow {
  0% { transform: scale(1); opacity: 0.6; }
  100% { transform: scale(1.3); opacity: 1; }
}

.scn-droll-woman-attic-visit {
  background: linear-gradient(180deg, #0a0808 0%, #1a1210 40%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 60%, #2a1a14 0%, transparent 70%);
}
.scn-droll-woman-attic-visit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-droll-woman-attic-visit .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 20%;
  background: linear-gradient(135deg, #2a1a14 0%, #1a0e08 50%, #0a0400 100%);
}
.scn-droll-woman-attic-visit .cat-stuffed {
  position: absolute; bottom: 28%; left: 58%; width: 12%; height: 10%;
  background: #1a0a08;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: s3-cat 12s ease-in-out infinite alternate;
}
.scn-droll-woman-attic-visit .flask {
  position: absolute; bottom: 22%; left: 30%; width: 8%; height: 16%;
  background: radial-gradient(circle at 50% 30%, #60b070 0%, #2a5a3a 60%, #0a1a10 100%);
  border-radius: 30% 30% 20% 20%;
  animation: s3-flask 8s ease-in-out infinite alternate;
}
.scn-droll-woman-attic-visit .herbs {
  position: absolute; bottom: 18%; left: 20%; width: 14%; height: 6%;
  background: radial-gradient(ellipse, #4a6a3a 0%, #2a3a1a 100%);
  border-radius: 50%; filter: blur(2px);
  animation: s3-herbs 15s linear infinite;
}
.scn-droll-woman-attic-visit .skin {
  position: absolute; bottom: 15%; right: 25%; width: 18%; height: 8%;
  background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 50%, #3a1a0a 100%);
  border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%;
  filter: blur(1px);
  animation: s3-skin 20s ease-in-out infinite alternate;
}
.scn-droll-woman-attic-visit .candle {
  position: absolute; bottom: 26%; left: 45%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c09860 30%, #5a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: s3-candle 3s ease-in-out infinite alternate;
}
.scn-droll-woman-attic-visit .light-pool {
  position: absolute; bottom: 26%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: s3-light 4s ease-in-out infinite alternate;
}
@keyframes s3-cat {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.02); }
  100% { transform: rotate(-3deg) scale(0.98); }
}
@keyframes s3-flask {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes s3-herbs {
  0% { transform: translateX(0) scale(1); opacity: 0.7; }
  50% { transform: translateX(10px) scale(1.1); opacity: 0.5; }
  100% { transform: translateX(-10px) scale(0.9); opacity: 0.8; }
}
@keyframes s3-skin {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1) scaleY(0.9); }
  100% { transform: scaleX(0.9) scaleY(1.05); }
}
@keyframes s3-candle {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.15); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.7; }
}
@keyframes s3-light {
  0% { transform: scale(1); opacity: 0.4; }
  100% { transform: scale(1.2); opacity: 0.7; }
}

.scn-droll-woman-cat-story {
  background: linear-gradient(180deg, #0e1418 0%, #18202a 40%, #0a0e12 100%),
              radial-gradient(ellipse at 50% 80%, #1a222c 0%, transparent 70%);
}
.scn-droll-woman-cat-story .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1e24 0%, #0e1218 100%);
}
.scn-droll-woman-cat-story .window {
  position: absolute; top: 8%; right: 10%; width: 20%; height: 30%;
  background: radial-gradient(ellipse, #8090a0 0%, #405060 60%, #0a0e12 100%);
  border-radius: 10%/20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: s4-window 15s ease-in-out infinite alternate;
}
.scn-droll-woman-cat-story .sewing-table {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 35%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 10% / 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-droll-woman-cat-story .figure-girl {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-girl 6s ease-in-out infinite;
}
.scn-droll-woman-cat-story .cat {
  position: absolute; bottom: 28%; left: 40%; width: 10%; height: 8%;
  background: #0a0a0e;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s4-cat 4s ease-in-out infinite alternate;
}
.scn-droll-woman-cat-story .candle {
  position: absolute; bottom: 22%; left: 38%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #e8d0a0 0%, #c09860 30%, #5a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: s4-candle 3s ease-in-out infinite alternate;
}
.scn-droll-woman-cat-story .moonlight {
  position: absolute; top: 8%; right: 10%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at center, rgba(180,200,220,0.08) 0%, transparent 70%);
  filter: blur(8px);
  animation: s4-moon 12s ease-in-out infinite alternate;
}
@keyframes s4-window {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes s4-girl {
  0%, 100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
}
@keyframes s4-cat {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(-3deg) scale(0.95); }
}
@keyframes s4-candle {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.7; }
}
@keyframes s4-moon {
  0% { opacity: 0.3; transform: scale(1); }
  100% { opacity: 0.6; transform: scale(1.1); }
}

/* Scene: practical-joke-precaution - dim interior, funny */
.scn-practical-joke-precaution {
  background: linear-gradient(180deg, #2b2820 0%, #1f1c16 40%, #15120e 100%),
              radial-gradient(ellipse at 50% 80%, #3a3528 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-practical-joke-precaution .wall-left {
  position: absolute;
  left: 0; top: 0; width: 15%; height: 100%;
  background: linear-gradient(90deg, #1c1914 0%, #242018 100%);
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.6);
}
.scn-practical-joke-precaution .wall-right {
  position: absolute;
  right: 0; top: 0; width: 15%; height: 100%;
  background: linear-gradient(90deg, #242018 0%, #1c1914 100%);
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.6);
}
.scn-practical-joke-precaution .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #1a1611 0%, #2a241e 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-practical-joke-precaution .bed-mattress {
  position: absolute;
  bottom: 15%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #4a4136 0%, #3a3328 100%);
  border-radius: 8px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  transform: rotate(-2deg);
  animation: pjp-bed 6s ease-in-out infinite;
}
.scn-practical-joke-precaution .blanket {
  position: absolute;
  bottom: 18%; left: 32%; width: 36%; height: 20%;
  background: linear-gradient(180deg, #5c4e3c 0%, #3f3426 100%);
  border-radius: 20% 20% 8% 8% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: pjp-blanket 4s ease-in-out infinite alternate;
}
.scn-practical-joke-precaution .pillow {
  position: absolute;
  bottom: 38%; left: 38%; width: 10%; height: 8%;
  background: radial-gradient(ellipse, #b8a88a 0%, #9e8a6e 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: pjp-pillow 3s ease-in-out infinite;
}
.scn-practical-joke-precaution .figure-under {
  position: absolute;
  bottom: 20%; left: 40%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #1a1611 0%, #0e0c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform: rotate(5deg);
  animation: pjp-figure 5s ease-in-out infinite;
}
.scn-practical-joke-precaution .falling-shadow {
  position: absolute;
  top: -10%; left: 45%; width: 12%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, rgba(30,25,20,0.8) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: pjp-fall 8s linear infinite;
}
.scn-practical-joke-precaution .candle-stub {
  position: absolute;
  bottom: 25%; left: 55%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #6b5b48 0%, #4a3d2e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 0 2px #2a221a;
  opacity: 0.6;
}
@keyframes pjp-bed {
  0%, 100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-3px); }
}
@keyframes pjp-blanket {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(0.98) translateY(1px); }
}
@keyframes pjp-pillow {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
}
@keyframes pjp-figure {
  0%, 100% { transform: rotate(5deg) translateX(0); }
  30% { transform: rotate(3deg) translateX(3px) scale(1.01); }
  70% { transform: rotate(6deg) translateX(-2px) scale(0.98); }
}
@keyframes pjp-fall {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(60vh) scale(1.5); opacity: 0.4; }
  100% { transform: translateY(120vh) scale(2); opacity: 0; }
}

/* Scene: milial-introduction - calm, sunlit */
.scn-milial-introduction {
  background: linear-gradient(180deg, #b7d4e8 0%, #e6f0f5 40%, #fde8c8 100%),
              radial-gradient(ellipse at 30% 100%, #fce4b8 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-milial-introduction .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #a8c8e0 0%, #dbebf2 100%);
  animation: mi1-sky 15s ease-in-out infinite alternate;
}
.scn-milial-introduction .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a6b86a 0%, #6f8242 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
}
.scn-milial-introduction .tree-left {
  position: absolute; bottom: 25%; left: 5%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #3d5a2e 0%, #1e2d16 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%;
  transform: scale(0.9);
  animation: mi1-tree 20s ease-in-out infinite;
}
.scn-milial-introduction .tree-right {
  position: absolute; bottom: 20%; right: 8%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #4a6e38 0%, #2a4120 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: scale(0.8);
  animation: mi1-tree 25s ease-in-out infinite reverse;
}
.scn-milial-introduction .milial-silhouette {
  position: absolute; bottom: 18%; left: 40%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #2e2820 0%, #1e1812 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform: rotate(5deg);
  animation: mi1-figure-sway 6s ease-in-out infinite;
}
.scn-milial-introduction .lady-silhouette {
  position: absolute; bottom: 18%; left: 52%; width: 7%; height: 30%;
  background: linear-gradient(180deg, #3a342a 0%, #221e16 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: mi1-figure-sway 7s ease-in-out infinite 1s;
}
.scn-milial-introduction .sunbeams {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 50%);
  filter: blur(10px);
  animation: mi1-sunbeams 12s ease-in-out infinite alternate;
}
@keyframes mi1-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mi1-tree {
  0%, 100% { transform: scale(0.9) rotate(0deg); }
  50% { transform: scale(0.92) rotate(2deg); }
}
@keyframes mi1-figure-sway {
  0%, 100% { transform: rotate(5deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(4px); }
}
@keyframes mi1-sunbeams {
  0% { opacity: 0.4; transform: translateX(-10px) scale(1); }
  100% { opacity: 0.7; transform: translateX(10px) scale(1.05); }
}

/* Scene: milial-conversation - warm, sunlit */
.scn-milial-conversation {
  background: linear-gradient(180deg, #e3cfb0 0%, #f5e3c4 50%, #faead0 100%),
              radial-gradient(ellipse at 30% 60%, #fce4b8 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-milial-conversation .bg-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, #d8c6a8 0%, #e8d6b8 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-milial-conversation .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #9b896e 0%, #7a6a52 100%);
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  transform: perspective(400px) rotateX(5deg);
}
.scn-milial-conversation .chair-left {
  position: absolute; bottom: 18%; left: 22%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3d2e 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  animation: mco-chair 8s ease-in-out infinite;
}
.scn-milial-conversation .chair-right {
  position: absolute; bottom: 18%; right: 22%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3d2e 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  animation: mco-chair 8s ease-in-out infinite 1s;
}
.scn-milial-conversation .figure-left {
  position: absolute; bottom: 22%; left: 26%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #3a342a 0%, #1e1812 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: mco-figures 6s ease-in-out infinite;
}
.scn-milial-conversation .figure-right {
  position: absolute; bottom: 22%; right: 26%; width: 8%; height: 26%;
  background: linear-gradient(180deg, #2e2820 0%, #16120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(4deg);
  animation: mco-figures 7s ease-in-out infinite 0.5s;
}
.scn-milial-conversation .warm-glow {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,200,120,0.3) 0%, transparent 70%);
  filter: blur(20px);
  animation: mco-glow 10s ease-in-out infinite alternate;
}
@keyframes mco-chair {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes mco-figures {
  0%, 100% { transform: rotate(-5deg) translateX(0) scale(1); }
  50% { transform: rotate(-3deg) translateX(4px) scale(1.02); }
}
@keyframes mco-glow {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

/* Scene: milial-portrait - warm, bright-interior */
.scn-milial-portrait {
  background: linear-gradient(180deg, #f2e6d8 0%, #f9efe3 50%, #fff5ea 100%),
              radial-gradient(ellipse at 50% 30%, #fce4c8 0%, transparent 70%);
  position: relative;
  overflow: hidden;
  height: 100%;
}
.scn-milial-portrait .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, #e8daca 0%, #dccbbc 100%);
  border-radius: 8% 8% 0 0 / 12% 12% 0 0;
}
.scn-milial-portrait .divan {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 25%;
  background: linear-gradient(180deg, #c4a88a 0%, #a6886a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}
.scn-milial-portrait .cushion {
  position: absolute; bottom: 22%; left: 30%; width: 15%; height: 10%;
  background: radial-gradient(ellipse, #b88a6a 0%, #9a7050 100%);
  border-radius: 50%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2);
  animation: mpo-cushion 8s ease-in-out infinite alternate;
}
.scn-milial-portrait .portrait-frame {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #5e4a38 0%, #3d2e20 100%);
  border-radius: 8% 8% 4% 4% / 10% 10% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4), inset 0 0 0 4px #9e8a70;
}
.scn-milial-portrait .portrait-silhouette {
  position: absolute; top: 18%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #cbaa8a 0%, #b08860 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: mpo-portrait 12s ease-in-out infinite;
}
.scn-milial-portrait .window-light {
  position: absolute; top: 5%; right: 8%; width: 18%; height: 30%;
  background: linear-gradient(135deg, rgba(255,245,220,0.5) 0%, rgba(255,235,200,0.1) 100%);
  border-radius: 10% 10% 20% 20%;
  filter: blur(6px);
  animation: mpo-light 10s ease-in-out infinite alternate;
}
.scn-milial-portrait .modest-table {
  position: absolute; bottom: 8%; right: 12%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #8a7058 0%, #6a5038 100%);
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
@keyframes mpo-cushion {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-4px) scale(1.03); }
}
@keyframes mpo-portrait {
  0%, 100% { transform: rotate(2deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.01); }
}
@keyframes mpo-light {
  0% { opacity: 0.4; }
  100% { opacity: 0.8; }
}

/* swinburne-first-impression (sfi) */
.scn-swinburne-first-impression {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #deb887 100%),
    radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 70%);
}
.scn-swinburne-first-impression .sky {
  position: absolute; inset: 0 0 70% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #c1e1ec 100%);
  animation: sfi-sky 12s ease-in-out infinite alternate;
}
.scn-swinburne-first-impression .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7c9d6e 0%, #5a7a4e 100%);
  border-radius: 30% 40% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
  animation: sfi-ground 8s ease-in-out infinite alternate;
}
.scn-swinburne-first-impression .distant-city {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 30%;
  background:
    linear-gradient(90deg, transparent 0%, #b0a090 20%, #a09080 40%, transparent 60%),
    linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  opacity: 0.6;
  animation: sfi-city 6s ease-in-out infinite;
}
.scn-swinburne-first-impression .figure {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sfi-walk 5s ease-in-out infinite;
}
.scn-swinburne-first-impression .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fffacd 0%, #ffd700 40%, transparent 60%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sfi-sun 10s ease-in-out infinite alternate;
}
.scn-swinburne-first-impression .cloud-a,
.scn-swinburne-first-impression .cloud-b {
  position: absolute; width: 100px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.6) 0%, transparent);
  border-radius: 50%;
  filter: blur(6px);
  opacity: 0.7;
}
.scn-swinburne-first-impression .cloud-a {
  top: 18%; left: 20%;
  animation: sfi-drift-a 30s linear infinite;
}
.scn-swinburne-first-impression .cloud-b {
  top: 25%; right: 10%; width: 80px; height: 24px;
  animation: sfi-drift-b 40s linear infinite reverse;
}
@keyframes sfi-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sfi-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sfi-city { 0%,100% { transform: scale(1) } 50% { transform: scale(0.98) } }
@keyframes sfi-walk { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes sfi-sun { 0% { opacity:0.9; transform: scale(1) } 100% { opacity:1; transform: scale(1.02) } }
@keyframes sfi-drift-a { 0% { transform: translateX(-30px) } 100% { transform: translateX(110vw) } }
@keyframes sfi-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* swinburne-visit (sv) */
.scn-swinburne-visit {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e0c9a5 50%, #c9b088 100%),
    radial-gradient(ellipse at 50% 60%, #ffe4b5 0%, transparent 70%);
}
.scn-swinburne-visit .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f5e6d3 0%, #e0c9a5 100%);
  animation: sv-wall 10s ease-in-out infinite alternate;
}
.scn-swinburne-visit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c9b088 0%, #a08a6b 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.15);
}
.scn-swinburne-visit .window {
  position: absolute; top: 10%; left: 65%; width: 80px; height: 100px;
  background: radial-gradient(circle at 50% 30%, #fffce8 0%, #b0d4f1 60%, #7a9bb5 100%);
  border: 4px solid #8a6b4e;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.6), 0 4px 8px rgba(0,0,0,0.2);
  animation: sv-window 8s ease-in-out infinite alternate;
}
.scn-swinburne-visit .narrator {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: sv-narrator 6s ease-in-out infinite;
}
.scn-swinburne-visit .friend {
  position: absolute; bottom: 28%; left: 55%; width: 32px; height: 44px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; /* large head on small body */
  box-shadow: 0 0 0 4px #3a2a1a; /* outline */
  transform: rotate(-3deg);
  animation: sv-friend 7s ease-in-out infinite alternate;
}
.scn-swinburne-visit .table {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #8a6b4e 0%, #6a4a2e 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sv-table 5s ease-in-out infinite;
}
@keyframes sv-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.92 } }
@keyframes sv-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sv-narrator { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-1px) } }
@keyframes sv-friend { 0% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(-4deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes sv-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

/* swinburne-house (sh) */
.scn-swinburne-house {
  background:
    linear-gradient(180deg, #d4c4b0 0%, #b8a28a 50%, #8a7a6a 100%),
    radial-gradient(ellipse at 40% 50%, #c0a88a 0%, transparent 60%);
}
.scn-swinburne-house .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #d4c4b0 0%, #c0a88a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: sh-wall 12s ease-in-out infinite alternate;
}
.scn-swinburne-house .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a08a6b 0%, #7a6a4e 100%);
  border-radius: 5% 5% 0 0 / 10% 10% 0 0;
}
.scn-swinburne-house .frame-a,
.scn-swinburne-house .frame-b {
  position: absolute; width: 50px; height: 60px;
  border: 3px solid #5a4a3a;
  background: radial-gradient(ellipse at 50% 30%, #b06040 0%, #8a3a2a 60%, #4a1a1a 100%); /* strange painting - dark reds, no crimson */
  border-radius: 2px;
  opacity: 0.8;
}
.scn-swinburne-house .frame-a {
  top: 15%; left: 15%;
  animation: sh-frame 8s ease-in-out infinite;
}
.scn-swinburne-house .frame-b {
  top: 18%; right: 20%; width: 55px; height: 55px;
  background: radial-gradient(ellipse at 50% 70%, #7060c0 0%, #3a2a5a 100%); /* bluish strange painting */
  animation: sh-frame 8s ease-in-out infinite reverse;
}
.scn-swinburne-house .table {
  position: absolute; bottom: 15%; left: 35%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #6a4a2e 0%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.4);
  animation: sh-table 6s ease-in-out infinite;
}
.scn-swinburne-house .hand {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); /* terracotta/rust, no bright red */
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: sh-hand 4s ease-in-out infinite;
}
.scn-swinburne-house .shadow-line {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 30%, transparent 100%);
  animation: sh-shadow 7s ease-in-out infinite alternate;
}
@keyframes sh-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes sh-frame { 0%,100% { transform: rotate(0) scale(1) } 50% { transform: rotate(1deg) scale(1.02) } }
@keyframes sh-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes sh-hand { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(12deg) translateY(0) } }
@keyframes sh-shadow { 0% { opacity:0.3; transform: scaleX(1) } 100% { opacity:0.5; transform: scaleX(1.2) } }

/* swinburne-reflection (sr) */
.scn-swinburne-reflection {
  background:
    linear-gradient(180deg, #f0e6d3 0%, #d4c4a8 50%, #b8a28a 100%),
    radial-gradient(ellipse at 70% 30%, #fff5e0 0%, transparent 70%);
}
.scn-swinburne-reflection .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 100%);
  animation: sr-wall 10s ease-in-out infinite alternate;
}
.scn-swinburne-reflection .window {
  position: absolute; top: 10%; left: 60%; width: 90px; height: 110px;
  background: radial-gradient(circle at 50% 30%, #fffce0 0%, #b0d4f1 50%, #7a9bb5 100%);
  border: 4px solid #6a4a2e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.4), 0 4px 8px rgba(0,0,0,0.15);
  animation: sr-window 12s ease-in-out infinite alternate;
}
.scn-swinburne-reflection .desk {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #8a6b4e 0%, #6a4a2e 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.2);
  animation: sr-desk 8s ease-in-out infinite;
}
.scn-swinburne-reflection .paper {
  position: absolute; bottom: 31%; left: 32%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #fff8e0 0%, #f0e0c0 100%);
  border-radius: 1px;
  transform: rotate(2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: sr-paper 7s ease-in-out infinite alternate;
}
.scn-swinburne-reflection .quill {
  position: absolute; bottom: 34%; left: 48%; width: 4px; height: 24px;
  background: linear-gradient(180deg, #e8dcc8 0%, #a09080 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: sr-quill 4s ease-in-out infinite;
}
.scn-swinburne-reflection .figure {
  position: absolute; bottom: 25%; left: 15%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: sr-figure 6s ease-in-out infinite;
}
.scn-swinburne-reflection .sunburst {
  position: absolute; top: 8%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fffacd 0%, #ffd700 30%, transparent 50%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sr-sunburst 14s ease-in-out infinite alternate;
}
@keyframes sr-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes sr-window { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.01) } 100% { opacity:0.8; transform: scale(0.99) } }
@keyframes sr-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes sr-paper { 0% { transform: rotate(2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(1deg) } }
@keyframes sr-quill { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(18deg) } }
@keyframes sr-figure { 0%,100% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-1px) } }
@keyframes sr-sunburst { 0% { opacity:0.7; transform: scale(1) } 100% { opacity:1; transform: scale(1.03) } }

/* scene: dinner-magnetism */
.scn-dinner-magnetism {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #d9c2a3 50%, #b89b7a 100%),
    radial-gradient(ellipse at 50% 30%, #fff2e0 0%, transparent 70%);
}
.scn-dinner-magnetism .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8d4b8 0%, #d4b896 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.08);
}
.scn-dinner-magnetism .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #c4a47a 0%, #a6845c 100%);
  border-radius: 0 0 20% 20%;
}
.scn-dinner-magnetism .table {
  position: absolute; bottom: 28%; left: 50%; width: 260px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b6f4a 0%, #6b4f2e 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: di1-table 6s ease-in-out infinite alternate;
}
.scn-dinner-magnetism .plate {
  position: absolute; bottom: 36%; left: 50%; width: 40px; height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f5f0e0 0%, #d4c9a8 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-dinner-magnetism .glass {
  position: absolute; bottom: 36%; left: 58%; width: 14px; height: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(200,180,160,0.2) 100%);
  border-radius: 0 0 30% 30%;
  transform: skewX(-2deg);
  box-shadow: 0 0 10px rgba(255,255,240,0.3);
  animation: di1-glass 8s ease-in-out infinite;
}
.scn-dinner-magnetism .figure-center {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: di1-figure 5s ease-in-out infinite alternate;
}
.scn-dinner-magnetism .chandelier {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #f0d080 0%, #c8a050 70%, #8a6a30 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(200,160,80,0.4);
  animation: di1-chandelier 4s ease-in-out infinite alternate;
}
.scn-dinner-magnetism .glow-warm {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,220,150,0.3) 0%, transparent 70%);
  pointer-events: none;
}
@keyframes di1-table {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.01) translateY(-2px); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes di1-glass {
  0%,100% { opacity: 0.7; }
  50% { opacity: 1; transform: skewX(0deg) translateY(-2px); }
}
@keyframes di1-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes di1-chandelier {
  0% { box-shadow: 0 0 20px 6px rgba(200,160,80,0.3); }
  100% { box-shadow: 0 0 40px 16px rgba(200,160,80,0.6); }
}

/* scene: magnetism-first-story */
.scn-magnetism-first-story {
  background:
    linear-gradient(180deg, #e8ddd0 0%, #cbbcb0 40%, #a8978a 100%),
    repeating-linear-gradient(45deg, rgba(180,160,140,0.1) 0px, rgba(180,160,140,0.1) 4px, transparent 4px, transparent 8px);
}
.scn-magnetism-first-story .bg-cold {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d6c8b8 0%, #b8a694 100%);
  clip-path: polygon(0 0, 100% 0, 100% 70%, 0 65%);
}
.scn-magnetism-first-story .chair {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #5a4a38 0%, #3a2a1c 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-5deg);
  box-shadow: 10px 0 20px rgba(0,0,0,0.3);
  animation: fi1-chair 4s ease-in-out infinite alternate;
}
.scn-magnetism-first-story .figure-rising {
  position: absolute; bottom: 20%; left: 45%; width: 32px; height: 80px;
  transform: rotate(10deg) translateX(-50%);
  background: linear-gradient(180deg, #2c2218 0%, #140e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fi1-rise 3s ease-in-out infinite alternate;
}
.scn-magnetism-first-story .cigar {
  position: absolute; bottom: 45%; left: 52%; width: 30px; height: 4px;
  background: linear-gradient(90deg, #8c4a2a 0%, #6a3018 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  box-shadow: 0 0 8px 4px rgba(200,80,30,0.3);
  animation: fi1-cigar 1.5s ease-in-out infinite;
}
.scn-magnetism-first-story .shadow-burst {
  position: absolute; bottom: 18%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: fi1-shadow 3s ease-in-out infinite alternate;
}
.scn-magnetism-first-story .glare-flash {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,255,240,0.3) 0%, transparent 70%);
  filter: blur(20px);
  animation: fi1-flash 0.8s ease-in-out infinite;
}
@keyframes fi1-chair {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-8px); }
  100% { transform: rotate(-7deg) translateY(2px); }
}
@keyframes fi1-rise {
  0% { transform: rotate(10deg) translateX(-50%) scale(1); }
  50% { transform: rotate(15deg) translateX(-50%) scale(1.05) translateY(-10px); }
  100% { transform: rotate(8deg) translateX(-50%) scale(0.95); }
}
@keyframes fi1-cigar {
  0%,100% { opacity: 0.8; transform: rotate(-30deg); }
  50% { opacity: 1; transform: rotate(-20deg) translate(5px, -5px); }
}
@keyframes fi1-shadow {
  0% { transform: translateX(-50%) scale(1); opacity: 0.4; }
  100% { transform: translateX(-50%) scale(1.3); opacity: 0.7; }
}
@keyframes fi1-flash {
  0%,100% { opacity: 0; }
  50% { opacity: 1; }
}

/* scene: magnetism-second-story */
.scn-magnetism-second-story {
  background:
    linear-gradient(180deg, #d6b28a 0%, #bf9b73 50%, #a88058 100%),
    radial-gradient(ellipse at 50% 20%, #f0d0b0 0%, transparent 70%);
}
.scn-magnetism-second-story .bg-umber {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8a88c 0%, #a88668 100%);
}
.scn-magnetism-second-story .table-round {
  position: absolute; bottom: 22%; left: 50%; width: 200px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5e3e 0%, #5c4228 100%);
  border-radius: 50%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.3);
}
.scn-magnetism-second-story .smoker-left {
  position: absolute; bottom: 26%; left: 38%; width: 28px; height: 64px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1e 0%, #1e150e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: se1-left 7s ease-in-out infinite alternate;
}
.scn-magnetism-second-story .smoker-right {
  position: absolute; bottom: 30%; left: 62%; width: 28px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3525 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: se1-right 6s ease-in-out infinite alternate;
}
.scn-magnetism-second-story .lamp {
  position: absolute; top: 24%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #f0d080 0%, #c8a050 60%, #8a6a30 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 30px 12px rgba(200,160,80,0.4);
  animation: se1-lamp 5s ease-in-out infinite;
}
.scn-magnetism-second-story .smoke-wisp {
  position: absolute; top: 20%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,160,0.15) 0%, transparent 70%);
  filter: blur(6px);
  animation: se1-smoke 10s linear infinite;
}
.scn-magnetism-second-story .mug-left {
  position: absolute; bottom: 30%; left: 42%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #8c7a64 0%, #6b5a46 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
}
.scn-magnetism-second-story .mug-right {
  position: absolute; bottom: 30%; left: 56%; width: 16px; height: 18px;
  background: linear-gradient(180deg, #8c7a64 0%, #6b5a46 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.2);
}
@keyframes se1-left {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes se1-right {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(-2deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(1deg) translateY(0); }
}
@keyframes se1-lamp {
  0%,100% { box-shadow: 0 0 20px 8px rgba(200,160,80,0.3); }
  50% { box-shadow: 0 0 40px 16px rgba(220,180,100,0.5); }
}
@keyframes se1-smoke {
  0% { opacity: 0; transform: translate(0, 0) scale(1); }
  20% { opacity: 0.6; }
  80% { opacity: 0.3; }
  100% { opacity: 0; transform: translate(-30px, -60px) scale(2.5); }
}

/* scene: magnetism-dream-realized */
.scn-magnetism-dream-realized {
  background:
    linear-gradient(180deg, #8a7aa4 0%, #b8a8c8 40%, #d8c8e0 100%),
    radial-gradient(ellipse at 50% 20%, #f0e0d0 0%, transparent 60%);
}
.scn-magnetism-dream-realized .sky-dawn {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4c0b0 0%, #e8d8c8 50%, #f0e0d0 100%);
  animation: dr1-sky 20s ease-in-out infinite alternate;
}
.scn-magnetism-dream-realized .window-frame {
  position: absolute; top: 5%; left: 50%; width: 140px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #9a8a78 0%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2), 0 4px 12px rgba(0,0,0,0.3);
}
.scn-magnetism-dream-realized .couple-left {
  position: absolute; bottom: 28%; left: 44%; width: 24px; height: 52px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e14 0%, #140e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dr1-couple 6s ease-in-out infinite alternate;
}
.scn-magnetism-dream-realized .couple-right {
  position: absolute; bottom: 28%; left: 56%; width: 22px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dr1-couple 6s ease-in-out infinite alternate-reverse;
}
.scn-magnetism-dream-realized .light-rays {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(
    45deg,
    rgba(240,220,200,0.1) 0px,
    rgba(240,220,200,0.1) 8px,
    transparent 8px,
    transparent 16px
  );
  animation: dr1-rays 5s linear infinite;
}
.scn-magnetism-dream-realized .radiance {
  position: absolute; top: 10%; left: 50%; width: 200px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(240,210,180,0.3) 0%, transparent 70%);
  filter: blur(30px);
  animation: dr1-radiance 8s ease-in-out infinite alternate;
}
.scn-magnetism-dream-realized .curtain-left {
  position: absolute; top: 5%; left: 45%; width: 40px; height: 180px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2e 100%);
  border-radius: 0 0 20% 20%;
  transform: skewY(3deg);
  animation: dr1-curtain 7s ease-in-out infinite alternate;
}
.scn-magnetism-dream-realized .curtain-right {
  position: absolute; top: 5%; right: 42%; width: 40px; height: 180px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2e 100%);
  border-radius: 0 0 20% 20%;
  transform: skewY(-3deg);
  animation: dr1-curtain 7s ease-in-out infinite alternate-reverse;
}
@keyframes dr1-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes dr1-couple {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes dr1-rays {
  0% { background-position: 0 0; }
  100% { background-position: 100px 0; }
}
@keyframes dr1-radiance {
  0% { transform: translateX(-50%) scale(1); opacity: 0.4; }
  100% { transform: translateX(-50%) scale(1.2); opacity: 0.7; }
}
@keyframes dr1-curtain {
  0% { transform: skewY(3deg) scaleY(1); }
  100% { transform: skewY(0deg) scaleY(1.02); }
}

.scn-milial-revelation {
  background:
    linear-gradient(180deg, #8b7355 0%, #6b4f32 40%, #4a3520 70%, #2a1a10 100%),
    radial-gradient(ellipse at 70% 30%, #ba9b6b 0%, transparent 60%);
}
.scn-milial-revelation .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #7a654a 0%, #5a4330 100%);
  animation: mr-wall 20s ease-in-out infinite alternate;
}
.scn-milial-revelation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3320 0%, #3a2615 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.4);
}
.scn-milial-revelation .doorway {
  position: absolute; bottom: 25%; left: 15%; width: 20%; height: 55%;
  background: #2a1a0e;
  border-radius: 4% 4% 0 0 / 10% 10% 0 0;
  box-shadow: 0 0 20px rgba(255,200,100,0.3);
  animation: mr-door 8s ease-in-out infinite;
}
.scn-milial-revelation .portrait-frame {
  position: absolute; bottom: 40%; right: 15%; width: 16%; height: 30%;
  background: linear-gradient(135deg, #8b6b4a 0%, #5a4328 100%);
  border: 2px solid #4a3320;
  border-radius: 4%; 
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: mr-frame 6s ease-in-out infinite alternate;
}
.scn-milial-revelation .portrait-image {
  position: absolute; bottom: 42%; right: 17%; width: 12%; height: 24%;
  background: radial-gradient(circle at 50% 30%, #c9a87c 0%, #8b6b4a 60%, #5a4330 100%);
  border-radius: 2%; 
  box-shadow: 0 0 12px 4px rgba(255,200,100,0.25);
  animation: mr-portrait 10s ease-in-out infinite;
}
.scn-milial-revelation .figure-milial {
  position: absolute; bottom: 25%; left: 35%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0f08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: mr-figure 12s ease-in-out infinite;
}
.scn-milial-revelation .lamp-glow {
  position: absolute; top: 20%; left: 70%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,180,60,0.4);
  animation: mr-lamp 3s ease-in-out infinite alternate;
}
@keyframes mr-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes mr-door { 0% { transform: scaleY(1) rotate(0deg); } 25% { transform: scaleY(0.98) rotate(1deg); } 50% { transform: scaleY(1) rotate(0deg); } 75% { transform: scaleY(0.99) rotate(-1deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes mr-frame { 0% { box-shadow: 0 4px 8px rgba(0,0,0,.5); } 50% { box-shadow: 0 0 15px rgba(255,200,100,0.3); } 100% { box-shadow: 0 4px 8px rgba(0,0,0,.5); } }
@keyframes mr-portrait { 0% { opacity: .8; filter: brightness(1); } 50% { opacity: 1; filter: brightness(1.1); } 100% { opacity: .85; filter: brightness(0.95); } }
@keyframes mr-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 mr-lamp { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(0.95); } }

.scn-storm-at-yport {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0d0d1a 100%),
    radial-gradient(ellipse at 70% 50%, #3e3e5a 0%, transparent 70%);
}
.scn-storm-at-yport .sky-storm {
  position: absolute; inset: 0 0 45% 0; 
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a30 100%);
  animation: say-sky 15s ease-in-out infinite alternate;
}
.scn-storm-at-yport .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0e1a2a 0%, #1a2a3e 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-storm-at-yport .wave-foam {
  position: absolute; height: 8%; background: rgba(240,240,250,0.15); 
  border-radius: 50%; filter: blur(4px);
}
.scn-storm-at-yport .wave-a {
  bottom: 35%; left: -10%; width: 120%; 
  animation: say-wave1 4s ease-in-out infinite alternate;
}
.scn-storm-at-yport .wave-b {
  bottom: 20%; left: -10%; width: 140%; 
  animation: say-wave2 5s ease-in-out infinite alternate;
  animation-delay: -2.5s;
}
.scn-storm-at-yport .cliff {
  position: absolute; bottom: 45%; right: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 85%);
  border-radius: 20% 0 0 30%;
}
.scn-storm-at-yport .ship-hull {
  position: absolute; bottom: 40%; left: 20%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0d0808 100%);
  border-radius: 10% 10% 30% 30% / 30% 30% 20% 20%;
  animation: say-ship 7s ease-in-out infinite;
}
.scn-storm-at-yport .rain-streak {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: repeating-linear-gradient(0deg, rgba(200,210,240,0.1) 0px, transparent 2px, transparent 10px);
  animation: say-rain 1s linear infinite;
}
@keyframes say-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes say-wave1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(10px) scaleY(1.02); } 100% { transform: translateX(-5px) scaleY(0.98); } }
@keyframes say-wave2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-15px) scaleY(1.05); } 100% { transform: translateX(10px) scaleY(0.97); } }
@keyframes say-ship { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(2px) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(1deg); } 75% { transform: translateY(3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes say-rain { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }

.scn-dominoes-invitation {
  background:
    linear-gradient(180deg, #3a3028 0%, #2a221a 50%, #1a1410 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-dominoes-invitation .back-wall-dim {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #2e241c 0%, #1e1610 100%);
  animation: di-wall 30s ease-in-out infinite alternate;
}
.scn-dominoes-invitation .table-top {
  position: absolute; bottom: 22%; left: 50%; width: 40%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a38 0%, #3a2e20 100%);
  border-radius: 4% 4% 0 0 / 20% 20% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.6);
}
.scn-dominoes-invitation .table-leg {
  position: absolute; bottom: 10%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0f08 100%);
  border-radius: 10%;
}
.scn-dominoes-invitation .left-leg { left: 37%; }
.scn-dominoes-invitation .right-leg { right: 37%; }
.scn-dominoes-invitation .domino-set {
  position: absolute; bottom: 25%; left: 50%; width: 20%; height: 6%;
  transform: translateX(-50%);
  background: repeating-linear-gradient(90deg, #e0d8c8 0px, #e0d8c8 6px, #8a7a6a 6px, #8a7a6a 8px);
  border-radius: 2%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: di-domino 15s ease-in-out infinite;
}
.scn-dominoes-invitation .figure-left {
  position: absolute; bottom: 24%; left: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1e1814 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: di-figure-l 6s ease-in-out infinite;
}
.scn-dominoes-invitation .figure-right {
  position: absolute; bottom: 24%; right: 30%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: di-figure-r 6s ease-in-out infinite;
  animation-delay: -3s;
}
.scn-dominoes-invitation .lamp-halo {
  position: absolute; top: 15%; left: 45%; width: 15%; height: 15%;
  background: radial-gradient(circle, #ffd080 0%, #d09040 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,80,0.3);
  animation: di-lamp 4s ease-in-out infinite alternate;
}
@keyframes di-wall { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes di-domino { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes di-figure-l { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes di-figure-r { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(1px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes di-lamp { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .8; transform: scale(0.95); } }

.scn-dominoes-cafe {
  background:
    linear-gradient(180deg, #6b5540 0%, #4a3828 40%, #2a1e14 100%),
    radial-gradient(ellipse at 80% 40%, #8a6b4a 0%, transparent 60%);
}
.scn-dominoes-cafe .cafe-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #5a4634 0%, #3a2e20 100%);
  animation: dc-bg 25s ease-in-out infinite alternate;
}
.scn-dominoes-cafe .window-light {
  position: absolute; bottom: 30%; right: 15%; width: 25%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #ffe8c0 0%, #c8a060 40%, transparent 80%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 0 0 50px 20px rgba(255,200,100,0.3);
  animation: dc-window 5s ease-in-out infinite alternate;
}
.scn-dominoes-cafe .counter {
  position: absolute; bottom: 10%; left: 10%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #5a4a38 0%, #3a2e20 100%);
  border-radius: 0 0 4% 4%;
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
}
.scn-dominoes-cafe .stool {
  position: absolute; bottom: 8%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: dc-stool 8s ease-in-out infinite;
}
.scn-dominoes-cafe .stool-a { left: 45%; animation-delay: 0s; }
.scn-dominoes-cafe .stool-b { left: 65%; animation-delay: -4s; }
.scn-dominoes-cafe .patron {
  position: absolute; bottom: 21%; left: 38%; width: 14%; height: 30%;
  background: linear-gradient(180deg, #1e1814 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: dc-patron 10s ease-in-out infinite;
}
.scn-dominoes-cafe .bottle-glow {
  position: absolute; bottom: 15%; left: 70%; width: 6%; height: 12%;
  background: radial-gradient(ellipse at 50% 30%, #c8a060 0%, #a08040 50%, transparent 80%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 0 30px 8px rgba(200,160,60,0.3);
  animation: dc-bottle 3s ease-in-out infinite alternate;
}
.scn-dominoes-cafe .lantern {
  position: absolute; top: 10%; left: 30%; width: 8%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, #d09040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,200,80,0.3);
  animation: dc-lantern 4s ease-in-out infinite alternate;
}
@keyframes dc-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes dc-window { 0% { opacity: .7; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.02); } 100% { opacity: .8; transform: scaleX(0.98); } }
@keyframes dc-stool { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dc-patron { 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 dc-bottle { 0% { opacity: .6; transform: scaleY(1); } 50% { opacity: .9; transform: scaleY(1.05); } 100% { opacity: .7; transform: scaleY(0.95); } }
@keyframes dc-lantern { 0% { opacity: .7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.03); } 100% { opacity: .8; transform: scale(0.97); } }

.scn-old-judas-lake {
  background: linear-gradient(180deg, #2a3040 0%, #1a2025 40%, #0d1217 100%),
              radial-gradient(ellipse at 50% 60%, #2a4050 0%, transparent 70%);
}
.scn-old-judas-lake .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a4055 0%, #1e2630 100%);
  animation: ojl-sky 12s ease-in-out infinite alternate;
}
.scn-old-judas-lake .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 30% 100%, #3a3a30 0%, #1a1a10 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: ojl-hills 20s ease-in-out infinite alternate;
}
.scn-old-judas-lake .lake {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #0b1117 0%, #05080c 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
  animation: ojl-lake 8s linear infinite;
}
.scn-old-judas-lake .reeds {
  position: absolute; bottom: 25%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #4a4a35 0%, #2a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
}
.scn-old-judas-lake .reeds-a {
  left: 20%; animation: ojl-reeds 5s ease-in-out infinite;
}
.scn-old-judas-lake .reeds-b {
  left: 70%; animation: ojl-reeds 5s ease-in-out infinite reverse;
  animation-delay: 1s;
}
.scn-old-judas-lake .fog {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(20,25,30,0.6) 0%, transparent 100%);
  filter: blur(12px);
  animation: ojl-fog 15s ease-in-out infinite alternate;
}
@keyframes ojl-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ojl-hills { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes ojl-lake { 0% { background-position: 0 0 } 50% { background-position: 10% 5% } 100% { background-position: 0 0 } }
@keyframes ojl-reeds { 0% { transform: rotate(-8deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-8deg) } }
@keyframes ojl-fog { 0% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.7; transform: translateX(10%) } 100% { opacity:0.4; transform: translateX(0) } }

.scn-old-judas-boat {
  background: linear-gradient(180deg, #5a8bb5 0%, #8fc0e0 40%, #c0dce8 100%),
              radial-gradient(ellipse at 70% 20%, #f0e8a0 0%, transparent 50%);
}
.scn-old-judas-boat .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #86b4d4 0%, #b8dce8 100%);
  animation: ojb-sky 10s ease-in-out infinite alternate;
}
.scn-old-judas-boat .sun {
  position: absolute; top: 15%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fce8a0 0%, #f0c040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,200,80,0.4);
  animation: ojb-sun 20s linear infinite;
}
.scn-old-judas-boat .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4c88b0 0%, #3a7090 100%);
  box-shadow: inset 0 10px 30px rgba(0,40,70,0.4);
  animation: ojb-water 6s ease-in-out infinite;
}
.scn-old-judas-boat .boat {
  position: absolute; bottom: 25%; left: 40%; width: 90px; height: 30px;
  background: linear-gradient(180deg, #6a4e3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ojb-boat 4s ease-in-out infinite;
}
.scn-old-judas-boat .rower {
  position: absolute; bottom: 18%; left: 48%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2420 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ojb-rower 3s ease-in-out infinite;
}
.scn-old-judas-boat .nets {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #7a7a6a 0%, transparent 100%);
  filter: blur(2px);
  animation: ojb-nets 5s ease-in-out infinite alternate;
}
.scn-old-judas-boat .rays {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, rgba(255,240,180,0.15) 0%, transparent 40%);
  animation: ojb-rays 8s linear infinite;
}
@keyframes ojb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ojb-sun { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(0) } }
@keyframes ojb-water { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ojb-boat { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes ojb-rower { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(0deg) translateY(-2px) } 50% { transform: rotate(5deg) translateY(0) } 75% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes ojb-nets { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes ojb-rays { 0% { opacity:0.2; transform: rotate(0deg) } 50% { opacity:0.4; transform: rotate(3deg) } 100% { opacity:0.2; transform: rotate(0deg) } }

.scn-old-judas-cross {
  background: linear-gradient(180deg, #2a1a30 0%, #4a2030 30%, #6a3a30 60%, #4a2a20 100%),
              radial-gradient(ellipse at 60% 40%, #8a5030 0%, transparent 60%);
}
.scn-old-judas-cross .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2040 0%, #6a3a30 100%);
  animation: ojc-sky 15s ease-in-out infinite alternate;
}
.scn-old-judas-cross .sun {
  position: absolute; top: 20%; right: 10%; width: 35px; height: 35px;
  background: radial-gradient(circle, #e06040 0%, #c04020 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(200,80,40,0.5);
  animation: ojc-sun 30s linear infinite;
}
.scn-old-judas-cross .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 40% 100%, #2a1a10 0%, #1a0a08 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
  animation: ojc-hills 12s ease-in-out infinite alternate;
}
.scn-old-judas-cross .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a08 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-old-judas-cross .hut {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: ojc-hut 5s ease-in-out infinite alternate;
}
.scn-old-judas-cross .cross {
  position: absolute; bottom: 23%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3324 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 5px rgba(200,85,61,0.5), 0 0 40px 10px rgba(200,85,61,0.3);
  animation: ojc-cross 3s ease-in-out infinite alternate;
}
.scn-old-judas-cross .glow {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%) scale(3);
  width: 20px; height: 30px;
  background: radial-gradient(circle, rgba(200,85,61,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: ojc-glow 4s ease-in-out infinite alternate;
}
@keyframes ojc-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ojc-sun { 0% { transform: translateY(0) } 50% { transform: translateY(15px) scale(0.95) } 100% { transform: translateY(0) } }
@keyframes ojc-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ojc-hut { 0% { box-shadow: 0 6px 12px rgba(0,0,0,0.6) } 50% { box-shadow: 0 8px 20px rgba(0,0,0,0.8) } 100% { box-shadow: 0 6px 12px rgba(0,0,0,0.6) } }
@keyframes ojc-cross { 0% { opacity:0.7; box-shadow: 0 0 20px 5px rgba(200,85,61,0.3) } 50% { opacity:1; box-shadow: 0 0 30px 10px rgba(200,85,61,0.6) } 100% { opacity:0.8; box-shadow: 0 0 20px 5px rgba(200,85,61,0.3) } }
@keyframes ojc-glow { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.3 } }

.scn-old-judas-legend {
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 40%, #1a1412 100%),
              radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, transparent 60%);
}
.scn-old-judas-legend .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1412 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
  animation: ojg-wall 20s ease-in-out infinite alternate;
}
.scn-old-judas-legend .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a1210 0%, #2a1e1a 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-old-judas-legend .window {
  position: absolute; top: 15%; left: 20%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #4a5a6a 0%, #2a3a4a 80%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 10px 2px rgba(74,90,106,0.3);
  border-radius: 4px;
  animation: ojg-window 8s ease-in-out infinite alternate;
}
.scn-old-judas-legend .table {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 8px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-old-judas-legend .candle {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 14px;
  background: linear-gradient(180deg, #f0e0a0 0%, #d0b070 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(240,200,100,0.6), 0 0 40px 12px rgba(240,200,100,0.3);
  animation: ojg-candle 3s ease-in-out infinite alternate;
}
.scn-old-judas-legend .shadow {
  position: absolute; bottom: 10%; left: 40%; width: 40px; height: 80px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 80%);
  filter: blur(6px);
  animation: ojg-shadow 5s ease-in-out infinite alternate;
}
.scn-old-judas-legend .beam {
  position: absolute; top: 15%; left: 18%; width: 20px; height: 60px;
  background: linear-gradient(180deg, rgba(180,200,220,0.15) 0%, transparent 100%);
  transform: rotate(-20deg);
  transform-origin: top left;
  animation: ojg-beam 10s ease-in-out infinite alternate;
}
@keyframes ojg-wall { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes ojg-window { 0% { opacity:0.5; box-shadow: 0 0 10px 2px rgba(74,90,106,0.2) } 50% { opacity:0.8; box-shadow: 0 0 15px 4px rgba(74,90,106,0.4) } 100% { opacity:0.5; box-shadow: 0 0 10px 2px rgba(74,90,106,0.2) } }
@keyframes ojg-candle { 0% { opacity:0.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.02) } 100% { opacity:0.8; transform: translateX(-50%) scale(1) } }
@keyframes ojg-shadow { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10%) scale(1.1) } 100% { transform: translateX(0) scale(1) } }
@keyframes ojg-beam { 0% { opacity:0.1 } 50% { opacity:0.3 } 100% { opacity:0.1 } }

.scn-chicot-drunkenness {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 60%, #2a2a3e 100%), radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 70%);
}
.scn-chicot-drunkenness .sky-cd {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1c1c30 0%, #282840 50%, #2e2e48 100%);
  animation: cd-sky 10s ease-in-out infinite alternate;
}
.scn-chicot-drunkenness .snow-ground-cd {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a4a5a 0%, #5c5c6e 40%, #6e6e80 100%);
  border-radius: 30% 70% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.4);
  animation: cd-ground 8s ease-in-out infinite alternate;
}
.scn-chicot-drunkenness .figure-cd {
  position: absolute; bottom: 22%; left: 32%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 60%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform: rotate(-10deg) translateY(10px);
  box-shadow: 0 8px 12px rgba(0,0,0,.5);
  animation: cd-figure 6s ease-in-out infinite;
}
.scn-chicot-drunkenness .tree-cd {
  position: absolute; bottom: 30%; right: 15%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%;
  transform: scaleY(1.2);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.3);
  animation: cd-tree 12s ease-in-out infinite alternate;
}
.scn-chicot-drunkenness .snowflake-cd {
  position: absolute; top: -5%; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(255,255,255,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: cd-fall linear infinite;
}
.scn-chicot-drunkenness .snowflake-cd.a { left: 20%; animation-duration: 10s; animation-delay: 0s; }
.scn-chicot-drunkenness .snowflake-cd.b { left: 50%; width: 8px; height: 8px; animation-duration: 14s; animation-delay: 3s; }
.scn-chicot-drunkenness .snowflake-cd.c { left: 75%; animation-duration: 12s; animation-delay: 6s; }

@keyframes cd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cd-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes cd-figure { 0% { transform: rotate(-10deg) translateY(10px); } 50% { transform: rotate(-8deg) translateY(12px); } 100% { transform: rotate(-10deg) translateY(8px); } }
@keyframes cd-tree { 0% { transform: scaleY(1.2) rotate(0deg); } 50% { transform: scaleY(1.25) rotate(2deg); } 100% { transform: scaleY(1.18) rotate(-1deg); } }
@keyframes cd-fall { 0% { transform: translateY(-10vh) translateX(0); opacity: 1; } 50% { transform: translateY(40vh) translateX(15px); opacity: 0.9; } 100% { transform: translateY(110vh) translateX(30px); opacity: 0.2; } }

.scn-boitelle-introduction {
  background: linear-gradient(180deg, #b0b8b0 0%, #909890 40%, #585e58 100%), radial-gradient(ellipse at 50% 30%, #c0c8c0 0%, transparent 70%);
}
.scn-boitelle-introduction .sky-bi {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8ccc8 0%, #a8aea8 50%, #889088 100%);
  animation: bi-sky 15s ease-in-out infinite alternate;
}
.scn-boitelle-introduction .horizon-bi {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 5%;
  background: linear-gradient(90deg, #6a726a 0%, #7a827a 50%, #6a726a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: bi-horizon 20s ease-in-out infinite alternate;
}
.scn-boitelle-introduction .path-bi {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #6e766e 0%, #585e58 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.2);
  animation: bi-path 12s ease-in-out infinite alternate;
}
.scn-boitelle-introduction .figure-bi {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a3e3a 0%, #2a2e2a 60%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform: translateX(-20px);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: bi-walk 5s ease-in-out infinite;
}
.scn-boitelle-introduction .tool-bi {
  position: absolute; bottom: 20%; left: 25%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #7a7a7a 0%, #5a5a5a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: bi-tool 5s ease-in-out infinite;
}
.scn-boitelle-introduction .cloud-bi {
  position: absolute; top: 12%; width: 100px; height: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(200,200,200,.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bi-drift linear infinite;
}
.scn-boitelle-introduction .cloud-bi.a { left: -5%; animation-duration: 60s; }
.scn-boitelle-introduction .cloud-bi.b { left: 30%; top: 20%; width: 80px; height: 18px; animation-duration: 80s; animation-delay: 10s; }

@keyframes bi-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes bi-horizon { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes bi-path { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes bi-walk { 0% { transform: translateX(-20px) rotate(-2deg); } 25% { transform: translateX(-10px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(10px) rotate(2deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes bi-tool { 0% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(10deg); } }
@keyframes bi-drift { 0% { transform: translateX(-120px); } 100% { transform: translateX(120vw); } }

.scn-boitelle-bird-market {
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d8be 30%, #c8c0a8 60%, #b0a890 100%), radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 60%);
}
.scn-boitelle-bird-market .sky-bb {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0ecd0 0%, #d8d4b8 50%, #c0bca0 100%);
  animation: bb-sky 12s ease-in-out infinite alternate;
}
.scn-boitelle-bird-market .quay-bb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b0a890 0%, #989080 40%, #7a7265 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
  animation: bb-quay 10s ease-in-out infinite alternate;
}
.scn-boitelle-bird-market .stall-bb {
  position: absolute; bottom: 30%; left: 15%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #9a8a74 0%, #7a6a54 100%);
  border-radius: 4% 4% 2% 2% / 6% 6% 3% 3%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  animation: bb-stall 8s ease-in-out infinite;
}
.scn-boitelle-bird-market .bird-bb {
  position: absolute; width: 24px; height: 20px;
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: bb-bird 4s ease-in-out infinite;
}
.scn-boitelle-bird-market .bird-bb.a { bottom: 40%; left: 22%; background: radial-gradient(circle, #5a9a5a 0%, #3a7a3a 100%); }
.scn-boitelle-bird-market .bird-bb.b { bottom: 35%; left: 30%; width: 28px; height: 22px; background: radial-gradient(circle, #5a7aba 0%, #3a5a9a 100%); animation-delay: 1.2s; }
.scn-boitelle-bird-market .bird-bb.c { bottom: 42%; left: 18%; width: 18px; height: 16px; background: radial-gradient(circle, #baba5a 0%, #9a9a3a 100%); animation-delay: 2.5s; }
.scn-boitelle-bird-market .soldier-bb {
  position: absolute; bottom: 22%; left: 55%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  transform: scaleX(0.8);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: bb-soldier 6s ease-in-out infinite alternate;
}

@keyframes bb-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes bb-quay { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes bb-stall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.98); } }
@keyframes bb-bird { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-6px) rotate(5deg); } 50% { transform: translateY(0) rotate(-3deg); } 75% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bb-soldier { 0% { transform: scaleX(0.8) translateX(0); } 50% { transform: scaleX(0.82) translateX(5px); } 100% { transform: scaleX(0.78) translateX(-5px); } }

.scn-boitelle-meets-negress {
  background: linear-gradient(180deg, #e8d8b0 0%, #d0c0a0 30%, #b8a888 60%, #a09070 100%), radial-gradient(ellipse at 40% 50%, #ffedd4 0%, transparent 60%);
}
.scn-boitelle-meets-negress .facade-bn {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 80%;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 60%, #8a7a5a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
  animation: bn-facade 10s ease-in-out infinite alternate;
}
.scn-boitelle-meets-negress .doorway-bn {
  position: absolute; bottom: 0; left: 35%; right: 35%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0 / 6% 6% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  animation: bn-door 8s ease-in-out infinite;
}
.scn-boitelle-meets-negress .woman-bn {
  position: absolute; bottom: 10%; left: 36%; width: 32px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 60%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform: translateX(8px);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: bn-woman 6s ease-in-out infinite;
}
.scn-boitelle-meets-negress .woman-bn::before {
  content: '';
  position: absolute; top: 2px; left: 10px; width: 12px; height: 6px;
  background: radial-gradient(circle, #b85a3a 0%, #8a2a1a 100%); /* red silk handkerchief – muted terracotta */
  border-radius: 30% 30% 10% 10%;
  animation: bn-hanky 3s ease-in-out infinite alternate;
}
.scn-boitelle-meets-negress .macaw-bn {
  position: absolute; bottom: 30%; left: 44%; width: 28px; height: 24px;
  background: radial-gradient(circle at 40% 40%, #5a8a4a 0%, #2a5a2a 30%, #1a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: bn-macaw 4s ease-in-out infinite alternate;
}
.scn-boitelle-meets-negress .shadow-bn {
  position: absolute; bottom: 5%; left: 30%; right: 30%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%);
  animation: bn-shadow 6s ease-in-out infinite;
}
.scn-boitelle-meets-negress .light-bn {
  position: absolute; top: 20%; left: 30%; right: 30%; height: 30%;
  background: radial-gradient(ellipse, rgba(255,235,200,.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: bn-light 8s ease-in-out infinite alternate;
}

@keyframes bn-facade { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes bn-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes bn-woman { 0% { transform: translateX(8px) rotate(0deg); } 25% { transform: translateX(6px) rotate(-2deg); } 50% { transform: translateX(10px) rotate(2deg); } 75% { transform: translateX(7px) rotate(-1deg); } 100% { transform: translateX(8px) rotate(0deg); } }
@keyframes bn-hanky { 0% { transform: translateY(0) rotate(-5deg); opacity: 0.8; } 50% { transform: translateY(-2px) rotate(5deg); opacity: 1; } 100% { transform: translateY(0) rotate(0deg); opacity: 0.9; } }
@keyframes bn-macaw { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-4px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bn-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.9); } }
@keyframes bn-light { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

.scn-indian-prince-illness {
  background: 
    radial-gradient(ellipse at 50% 50%, #2a1e2a 0%, #0e0a12 70%),
    linear-gradient(180deg, #1a1420 0%, #2e2130 40%, #0a060c 100%);
}
.scn-indian-prince-illness .room-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a2130 0%, #160e1a 100%); }
.scn-indian-prince-illness .window-shutter { position:absolute; top:12%; left:30%; width:20%; height:30%; background: linear-gradient(135deg, #3a303c 0%, #1c1424 100%); border: 4px solid #1a1020; border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); animation: ipi-shutter 6s ease-in-out infinite alternate; }
.scn-indian-prince-illness .moonlight-beam { position:absolute; top:8%; left:32%; width:16%; height:50%; background: linear-gradient(180deg, rgba(180,180,220,0.12) 0%, rgba(180,180,220,0.04) 100%); transform: skewX(-8deg); filter: blur(4px); animation: ipi-beam 12s ease-in-out infinite alternate; }
.scn-indian-prince-illness .grieving-figure { position:absolute; bottom:20%; left:45%; width:14%; height:35%; background: linear-gradient(180deg, #1a121a 0%, #0a060c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ipi-figure 4s ease-in-out infinite; }
.scn-indian-prince-illness .bed-shadow { position:absolute; bottom:8%; left:25%; width:50%; height:20%; background: radial-gradient(ellipse at 50% 0%, #1a1220 0%, transparent 100%); filter: blur(6px); animation: ipi-bed 8s ease-in-out infinite alternate; }
.scn-indian-prince-illness .candle-glow { position:absolute; bottom:38%; left:20%; width:4%; height:4%; background: radial-gradient(circle, #d0a060 0%, #b08040 40%, transparent 100%); box-shadow: 0 0 30px 15px rgba(200,150,80,0.3); animation: ipi-candle 3s ease-in-out infinite alternate; }
@keyframes ipi-shutter { 0% { transform: rotateY(0deg); opacity:0.9; } 50% { transform: rotateY(-15deg); opacity:0.7; } 100% { transform: rotateY(0deg); opacity:0.9; } }
@keyframes ipi-beam { 0% { opacity:0.1; transform: skewX(-8deg) scaleY(1); } 50% { opacity:0.3; transform: skewX(-10deg) scaleY(1.05); } 100% { opacity:0.15; transform: skewX(-6deg) scaleY(1); } }
@keyframes ipi-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(2%) translateY(-1%) rotate(0deg); } 50% { transform: translateX(0) translateY(0) rotate(2deg); } 75% { transform: translateX(-2%) translateY(-1%) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes ipi-bed { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.9; transform: scaleY(1.03); } 100% { opacity:0.7; transform: scaleY(1); } }
@keyframes ipi-candle { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.95); } }

.scn-indian-prince-mayor-decision {
  background: 
    radial-gradient(ellipse at 50% 30%, #2a3a5a 0%, #0e142a 60%, #040612 100%),
    linear-gradient(180deg, #0a122a 0%, #1a2240 50%, #2a3250 100%);
}
.scn-indian-prince-mayor-decision .cliff-dark { position:absolute; bottom:0; left:-10%; width:120%; height:60%; background: linear-gradient(180deg, #1a1e2a 0%, #0e0e18 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); animation: ipm-cliff 20s ease-in-out infinite alternate; }
.scn-indian-prince-mayor-decision .cliff-mid { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3240 0%, #1a1e2a 100%); border-radius: 30% 40% 0 0 / 60% 50% 0 0; opacity:0.7; }
.scn-indian-prince-mayor-decision .moon-circle { position:absolute; top:8%; right:15%; width:10%; height:10%; background: radial-gradient(circle, #e0e8f0 0%, #c0c8d8 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(200,210,230,0.3); animation: ipm-moon 8s ease-in-out infinite alternate; }
.scn-indian-prince-mayor-decision .cloud-rag-a { position:absolute; top:12%; left:5%; width:30%; height:10%; background: linear-gradient(180deg, rgba(160,180,200,0.3) 0%, rgba(160,180,200,0.05) 100%); border-radius: 50%; filter: blur(6px); animation: ipm-cloud-a 25s linear infinite; }
.scn-indian-prince-mayor-decision .cloud-rag-b { position:absolute; top:18%; right:20%; width:20%; height:8%; background: linear-gradient(180deg, rgba(180,190,210,0.25) 0%, rgba(180,190,210,0.03) 100%); border-radius: 50%; filter: blur(5px); animation: ipm-cloud-b 35s linear infinite reverse; }
.scn-indian-prince-mayor-decision .casino-roof { position:absolute; bottom:55%; left:50%; width:30%; height:15%; transform: translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 20px rgba(0,0,0,0.6); animation: ipm-roof 10s ease-in-out infinite alternate; }
.scn-indian-prince-mayor-decision .dancer-silhouette { position:absolute; bottom:50%; left:55%; width:8%; height:20%; background: #0a0a12; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ipm-dancer 2s ease-in-out infinite; }
.scn-indian-prince-mayor-decision .wind-sweep { position:absolute; top:20%; left:-10%; width:120%; height:15%; background: linear-gradient(90deg, transparent 0%, rgba(200,220,240,0.05) 50%, transparent 100%); filter: blur(10px); animation: ipm-wind 15s linear infinite; }
@keyframes ipm-cliff { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ipm-moon { 0% { opacity:0.8; transform: translateX(0) scale(1); } 50% { opacity:1; transform: translateX(-2%) scale(1.02); } 100% { opacity:0.85; transform: translateX(0) scale(1); } }
@keyframes ipm-cloud-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes ipm-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes ipm-roof { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes ipm-dancer { 0% { transform: translateX(0) rotate(-5deg); } 25% { transform: translateX(5%) rotate(3deg) scaleY(1.02); } 50% { transform: translateX(-5%) rotate(-3deg); } 75% { transform: translateX(5%) rotate(4deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes ipm-wind { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-5%) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }

.scn-indian-prince-preparations {
  background: 
    radial-gradient(ellipse at 50% 60%, #1a142a 0%, #0a0612 70%),
    linear-gradient(180deg, #0a0812 0%, #120e1a 30%, #1a142a 100%);
}
.scn-indian-prince-preparations .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0812 0%, #161220 100%); animation: ipp-sky 15s ease-in-out infinite alternate; }
.scn-indian-prince-preparations .beach-sand { position:absolute; bottom:0; left:-10%; width:120%; height:50%; background: linear-gradient(180deg, #1e1824 0%, #120e18 100%); border-radius: 30% 50% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.7); animation: ipp-sand 12s ease-in-out infinite alternate; }
.scn-indian-prince-preparations .wood-pile { position:absolute; bottom:25%; left:45%; width:20%; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,0.8); animation: ipp-wood 5s ease-in-out infinite alternate; }
.scn-indian-prince-preparations .carpenter-figure { position:absolute; bottom:30%; left:35%; width:10%; height:25%; background: linear-gradient(180deg, #1a121a 0%, #0a060c 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ipp-carpenter 4s ease-in-out infinite; }
.scn-indian-prince-preparations .funeral-py-re { position:absolute; bottom:20%; left:50%; width:25%; height:20%; background: linear-gradient(180deg, #2a1a0e 0%, #140a04 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: 0 0 20px 5px rgba(40,20,10,0.3); animation: ipp-pyre 10s ease-in-out infinite alternate; }
.scn-indian-prince-preparations .torch-flame { position:absolute; bottom:38%; left:40%; width:4%; height:8%; background: radial-gradient(ellipse at 50% 100%, #d08030 0%, #b05020 50%, transparent 100%); box-shadow: 0 0 30px 10px rgba(200,100,40,0.4); animation: ipp-flame 2s ease-in-out infinite; }
.scn-indian-prince-preparations .cart-shadow { position:absolute; bottom:5%; left:20%; width:40%; height:12%; background: radial-gradient(ellipse, #0a060c 0%, transparent 100%); filter: blur(8px); animation: ipp-cart 9s ease-in-out infinite alternate; }
@keyframes ipp-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ipp-sand { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ipp-wood { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-2%) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes ipp-carpenter { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(3%) translateY(-1%) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-3deg); } }
@keyframes ipp-pyre { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:0.8; transform: scaleY(1); } }
@keyframes ipp-flame { 0% { opacity:0.6; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.2); } 100% { opacity:0.7; transform: scaleY(0.9); } }
@keyframes ipp-cart { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.05); } 100% { opacity:0.6; transform: scaleX(1); } }

.scn-indian-prince-procession {
  background: 
    radial-gradient(ellipse at 50% 20%, #2a3a5a 0%, #0e142a 60%, #040612 100%),
    linear-gradient(180deg, #0a122a 0%, #1a2240 40%, #2a3250 100%);
}
.scn-indian-prince-procession .moonlit-clouds { position:absolute; top:10%; left:-10%; width:120%; height:30%; background: linear-gradient(180deg, rgba(180,190,210,0.15) 0%, rgba(180,190,210,0.02) 100%); border-radius: 50%; filter: blur(8px); animation: ippc-clouds 30s linear infinite; }
.scn-indian-prince-procession .muddy-street { position:absolute; bottom:0; left:-10%; width:120%; height:50%; background: linear-gradient(180deg, #2a282a 0%, #121012 100%); border-radius: 30% 40% 0 0 / 50% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); animation: ippc-street 14s ease-in-out infinite alternate; }
.scn-indian-prince-procession .stretcher-silk { position:absolute; bottom:30%; left:50%; width:16%; height:22%; transform: translateX(-50%); background: linear-gradient(180deg, rgba(240,240,255,0.6) 0%, rgba(200,210,230,0.2) 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 0 60px 20px rgba(220,230,250,0.4), 0 0 120px 40px rgba(200,210,240,0.2); animation: ippc-silk 5s ease-in-out infinite alternate; }
.scn-indian-prince-procession .stretcher-bearers { position:absolute; bottom:25%; left:45%; width:4%; height:30%; background: linear-gradient(180deg, #0e0e18 0%, #06060c 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ippc-bearer 3s ease-in-out infinite; }
.scn-indian-prince-procession .indian-servants { position:absolute; bottom:25%; left:35%; width:4%; height:28%; background: linear-gradient(180deg, #12121a 0%, #080810 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ippc-servant 3.5s ease-in-out infinite 0.5s; }
.scn-indian-prince-procession .englishman-shadow { position:absolute; bottom:25%; right:30%; width:5%; height:32%; background: linear-gradient(180deg, #1a1a24 0%, #0a0a12 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ippc-english 4s ease-in-out infinite 1s; }
.scn-indian-prince-procession .weird-luminance { position:absolute; bottom:25%; left:45%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 20%, rgba(220,230,255,0.08) 0%, transparent 100%); filter: blur(15px); animation: ippc-luminance 6s ease-in-out infinite alternate; }
@keyframes ippc-clouds { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes ippc-street { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ippc-silk { 0% { opacity:0.6; transform: translateX(-50%) scaleY(0.95); } 50% { opacity:1; transform: translateX(-50%) scaleY(1.05); } 100% { opacity:0.7; transform: translateX(-50%) scaleY(0.95); } }
@keyframes ippc-bearer { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2%) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2%) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ippc-servant { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(1%) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-1%) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ippc-english { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(2%) rotate(1deg); } 50% { transform: translateX(0) rotate(3deg); } 75% { transform: translateX(-2%) rotate(-1deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes ippc-luminance { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(1); } }

/* Scene: funeral-badon (calm overcast) */
.scn-funeral-badon {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 40%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 80%);
}
.scn-funeral-badon .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #5a6a7a 100%);
  animation: fnb-sky 20s ease-in-out infinite alternate;
}
.scn-funeral-badon .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: fnb-ground 30s ease-in-out infinite;
}
.scn-funeral-badon .church {
  position: absolute; bottom: 35%; left: 20%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: fnb-breathe 8s ease-in-out infinite;
}
.scn-funeral-badon .church::after {
  content: ''; position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
  width: 0; height: 0; border-left: 15px solid transparent; border-right: 15px solid transparent; border-bottom: 30px solid #2a2a2a;
}
.scn-funeral-badon .grave {
  position: absolute; bottom: 32%; left: 55%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
.scn-funeral-badon .cross {
  position: absolute; bottom: 40%; left: 57%; width: 4px; height: 20px;
  background: #5a5a5a;
  border-radius: 1px;
  box-shadow: 0 0 0 2px #4a4a4a;
  animation: fnb-sway 6s ease-in-out infinite;
}
.scn-funeral-badon .cross::before {
  content: ''; position: absolute; top: 4px; left: -6px; width: 16px; height: 4px;
  background: #5a5a5a; border-radius: 1px;
}
.scn-funeral-badon .mourner {
  position: absolute; bottom: 30%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fnb-mourn 12s ease-in-out infinite;
}
.scn-funeral-badon .mourner-a { left: 35%; }
.scn-funeral-badon .mourner-b { left: 48%; animation-delay: -4s; }
.scn-funeral-badon .crows {
  position: absolute; top: 20%; left: 70%; width: 18px; height: 12px;
  background: #1a1a1a;
  clip-path: polygon(20% 0%, 50% 40%, 80% 0%, 100% 50%, 60% 100%, 40% 100%, 0% 50%);
  animation: fnb-crows 20s linear infinite;
}
@keyframes fnb-sky { 0% { opacity: .8; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes fnb-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes fnb-breathe { 0%,100% { transform: scale(1); } 50% { transform: scale(1.01); } }
@keyframes fnb-sway { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 75% { transform: rotate(-1deg); } }
@keyframes fnb-mourn { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 75% { transform: translateY(1px) rotate(-1deg); } }
@keyframes fnb-crows { 0% { transform: translateX(-100px) rotate(0deg); } 50% { transform: translateX(50px) rotate(5deg); } 100% { transform: translateX(200px) rotate(-5deg); } }

/* Scene: will-confession-begins (dark bright-interior) */
.scn-will-confession-begins {
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 40%, #1a0a0a 100%),
              radial-gradient(circle at 30% 50%, #6a4a3a 0%, transparent 60%);
}
.scn-will-confession-begins .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  animation: wcf-wall 15s ease-in-out infinite;
}
.scn-will-confession-begins .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,.4);
  transform: perspective(50px) rotateX(2deg);
}
.scn-will-confession-begins .desk {
  position: absolute; bottom: 18%; left: 25%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: wcf-desk 8s ease-in-out infinite;
}
.scn-will-confession-begins .lamp {
  position: absolute; bottom: 30%; left: 30%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 16px 4px #c8a060, 0 0 32px 8px rgba(200,160,96,.3);
  animation: wcf-lamp 3s ease-in-out infinite alternate;
}
.scn-will-confession-begins .mirror {
  position: absolute; top: 20%; right: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  border-radius: 6% 6% 8% 8%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.3), 0 2px 6px rgba(0,0,0,.2);
  animation: wcf-mirror 12s ease-in-out infinite;
}
.scn-will-confession-begins .figure {
  position: absolute; bottom: 15%; left: 45%; 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: wcf-figure 6s ease-in-out infinite;
}
.scn-will-confession-begins .shadow {
  position: absolute; bottom: 15%; left: 42%; width: 30px; height: 8px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: wcf-shadow 6s ease-in-out infinite;
}
@keyframes wcf-wall { 0%,100% { opacity: .7; } 50% { opacity: .8; } }
@keyframes wcf-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes wcf-lamp { 0% { box-shadow: 0 0 14px 3px #c8a060, 0 0 28px 6px rgba(200,160,96,.2); } 50% { box-shadow: 0 0 20px 6px #d8b070, 0 0 40px 12px rgba(216,176,112,.4); } 100% { box-shadow: 0 0 16px 4px #c8a060, 0 0 32px 8px rgba(200,160,96,.3); } }
@keyframes wcf-mirror { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes wcf-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-2deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wcf-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } }

/* Scene: will-child-born (dark dim-interior) */
.scn-will-child-born {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%),
              radial-gradient(circle at 50% 30%, #3a2a3a 0%, transparent 60%);
}
.scn-will-child-born .room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  animation: wch-room 20s ease-in-out infinite alternate;
}
.scn-will-child-born .crib {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 12% 12% 8% 8%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: wch-creak 10s ease-in-out infinite;
}
.scn-will-child-born .crib::after {
  content: ''; position: absolute; top: -8px; left: -8px; right: -8px; height: 10px;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-will-child-born .chair {
  position: absolute; bottom: 15%; right: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: wch-chair 15s ease-in-out infinite;
}
.scn-will-child-born .window {
  position: absolute; top: 15%; right: 15%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.2);
  animation: wch-window 30s ease-in-out infinite;
}
.scn-will-child-born .child {
  position: absolute; bottom: 25%; left: 38%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  animation: wch-child 8s ease-in-out infinite;
}
.scn-will-child-born .clothes {
  position: absolute; bottom: 19%; left: 33%; width: 30px; height: 14px;
  background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 50%, #5a4a3a 100%);
  border-radius: 20% 20% 40% 40%;
  animation: wch-clothes 12s ease-in-out infinite;
}
.scn-will-child-born .candle {
  position: absolute; bottom: 30%; left: 55%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #b08040 0%, #6a4a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 3px #b08040, 0 0 24px 6px rgba(176,128,64,.2);
  animation: wch-candle 4s ease-in-out infinite alternate;
}
@keyframes wch-room { 0% { opacity: .7; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes wch-creak { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 75% { transform: rotate(-1deg); } }
@keyframes wch-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes wch-window { 0%,100% { opacity: .5; } 50% { opacity: .7; } }
@keyframes wch-child { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-1px); } 75% { transform: translateY(1px); } }
@keyframes wch-clothes { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }
@keyframes wch-candle { 0% { box-shadow: 0 0 10px 2px #b08040, 0 0 20px 4px rgba(176,128,64,.15); } 50% { box-shadow: 0 0 14px 4px #c09050, 0 0 28px 8px rgba(192,144,80,.3); } 100% { box-shadow: 0 0 12px 3px #b08040, 0 0 24px 6px rgba(176,128,64,.2); } }

/* Scene: will-cold-night (dark dim-interior, firelit) */
.scn-will-cold-night {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 40%, #0a0000 100%),
              radial-gradient(circle at 50% 80%, #6a3a1a 0%, transparent 70%);
}
.scn-will-cold-night .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  animation: wcn-wall 20s ease-in-out infinite;
}
.scn-will-cold-night .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
}
.scn-will-cold-night .fireplace {
  position: absolute; bottom: 10%; left: 35%; width: 80px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: inset 0 0 20px #0a0000;
  animation: wcn-hearth 15s ease-in-out infinite;
}
.scn-will-cold-night .fireplace::after {
  content: ''; position: absolute; bottom: 8px; left: 15px; right: 15px; height: 20px;
  background: linear-gradient(180deg, #8a3a1a 0%, #c86a2a 50%, #6a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px #c86a2a, 0 0 40px 20px rgba(200,106,42,.3);
  animation: wcn-fire 3s ease-in-out infinite alternate;
}
.scn-will-cold-night .armchair {
  position: absolute; bottom: 10%; left: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: wcn-chair 10s ease-in-out infinite;
}
.scn-will-cold-night .child {
  position: absolute; bottom: 20%; left: 25%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wcn-child 8s ease-in-out infinite;
}
.scn-will-cold-night .window-frost {
  position: absolute; top: 8%; left: 65%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 4% 4% 6% 6%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: wcn-frost 25s ease-in-out infinite;
  filter: blur(1px);
}
.scn-will-cold-night .fire-glow {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 85%, #c86a2a 0%, transparent 60%);
  mix-blend-mode: overlay;
  opacity: .3;
  animation: wcn-glow 4s ease-in-out infinite alternate;
}
.scn-will-cold-night .ember {
  position: absolute; bottom: 18%; left: 40%; width: 4px; height: 4px;
  background: #ff8040;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ff8040;
  animation: wcn-ember 6s ease-in-out infinite;
}
@keyframes wcn-wall { 0%,100% { opacity: .7; } 50% { opacity: .8; } }
@keyframes wcn-hearth { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes wcn-fire { 0% { transform: scaleY(0.8); opacity: .7; } 100% { transform: scaleY(1.1); opacity: 1; } }
@keyframes wcn-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes wcn-child { 0%,100% { transform: translateY(0); } 25% { transform: translateY(-1px); } 75% { transform: translateY(1px); } }
@keyframes wcn-frost { 0%,100% { opacity: .4; } 50% { opacity: .6; } }
@keyframes wcn-glow { 0% { opacity: .2; } 100% { opacity: .4; } }
@keyframes wcn-ember { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(3px,-5px) scale(1.2); } 100% { transform: translate(-2px,-2px) scale(0.8); } }

.scn-old-judas-priest {
  background: linear-gradient(135deg, #1a1025 0%, #2c1e35 40%, #0d0814 100%),
    radial-gradient(ellipse at 40% 30%, #4a2a1a 0%, transparent 60%);
}
.scn-old-judas-priest .ojp-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e2e 0%, #0d0814 100%); }
.scn-old-judas-priest .ojp-door-frame { position: absolute; inset: 8% 25% 20% 25%; border: 4px solid #3a2a1a; background: #0d0a10; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px #00000055; }
.scn-old-judas-priest .ojp-old-man { position: absolute; bottom: 22%; left: 38%; width: 24px; height: 50px; background: linear-gradient(180deg, #15111a 0%, #0a0710 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ojp-shake 0.5s ease-in-out infinite alternate; }
.scn-old-judas-priest .ojp-beard { position: absolute; bottom: 22%; left: 36%; width: 28px; height: 20px; background: linear-gradient(180deg, #4a4040 0%, #2a2020 100%); border-radius: 50% 50% 60% 60%; filter: blur(2px); animation: ojp-ripple 0.3s ease-in-out infinite; }
.scn-old-judas-priest .ojp-eyes { position: absolute; bottom: 42%; left: 39%; width: 4px; height: 4px; background: radial-gradient(circle, #ffaa44 0%, #cc5500 100%); border-radius: 50%; box-shadow: 0 0 12px 6px #ff7700, 0 0 24px 12px #ff4400aa; animation: ojp-flicker 0.15s step-end infinite; }
.scn-old-judas-priest .ojp-priest { position: absolute; bottom: 22%; right: 34%; width: 20px; height: 44px; background: linear-gradient(180deg, #2a2a34 0%, #1a1a24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: ojp-tremble 2s ease-in-out infinite; }
.scn-old-judas-priest .ojp-candle { position: absolute; bottom: 16%; left: 46%; width: 6px; height: 12px; background: linear-gradient(180deg, #c8a050 0%, #8a6030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px #ffdd66, 0 0 40px 20px #ffaa3366; animation: ojp-glow 0.8s ease-in-out infinite alternate; }
@keyframes ojp-shake { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes ojp-ripple { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(-3deg) scaleY(0.95); } }
@keyframes ojp-flicker { 0%, 100% { opacity: 1; box-shadow: 0 0 12px 6px #ff7700, 0 0 24px 12px #ff4400aa; } 25% { opacity: 0.7; box-shadow: 0 0 4px 2px #ff7700, 0 0 8px 4px #ff4400aa; } 75% { opacity: 0.9; box-shadow: 0 0 20px 10px #ff7700, 0 0 40px 20px #ff4400aa; } }
@keyframes ojp-tremble { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(1px) rotate(-0.5deg); } 66% { transform: translateX(-1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ojp-glow { 0% { box-shadow: 0 0 15px 5px #ffdd66, 0 0 30px 15px #ffaa3388; } 50% { box-shadow: 0 0 25px 10px #ffeeaa, 0 0 50px 25px #ffcc55aa; } 100% { box-shadow: 0 0 18px 6px #ffdd66, 0 0 35px 18px #ffaa3366; } }

.scn-old-judas-death-woman {
  background: linear-gradient(180deg, #141024 0%, #0f0a1e 50%, #08041a 100%),
    radial-gradient(ellipse at 50% 80%, #2a1e3a 0%, transparent 70%);
}
.scn-old-judas-death-woman .ojw-hut { position: absolute; bottom: 20%; left: 50%; width: 100px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2e3a 0%, #1a121a 100%); border-radius: 8% 8% 2% 2%; box-shadow: 0 4px 12px #00000088; }
.scn-old-judas-death-woman .ojw-grave { position: absolute; bottom: 18%; left: 36%; width: 40px; height: 30px; background: linear-gradient(180deg, #2a242a 0%, #181218 100%); border-radius: 50% 50% 20% 20%; box-shadow: inset 0 -4px 8px #00000066; }
.scn-old-judas-death-woman .ojw-figure { position: absolute; bottom: 20%; left: 42%; width: 18px; height: 36px; background: linear-gradient(180deg, #18121e 0%, #0a0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: ojw-bend 6s ease-in-out infinite; }
.scn-old-judas-death-woman .ojw-shovel { position: absolute; bottom: 24%; left: 44%; width: 4px; height: 24px; background: #3a2a1a; border-radius: 4px; transform: rotate(20deg); animation: ojw-dig 8s ease-in-out infinite; }
.scn-old-judas-death-woman .ojw-pig { position: absolute; bottom: 24%; right: 28%; width: 20px; height: 10px; background: #4a3a3a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(2px); animation: ojw-wander 12s ease-in-out infinite alternate; }
.scn-old-judas-death-woman .ojw-cloud { position: absolute; top: 12%; left: 10%; width: 50px; height: 12px; background: rgba(200,180,220,0.15); border-radius: 50%; filter: blur(6px); animation: ojw-cloud 30s linear infinite; }
@keyframes ojw-bend { 0% { transform: translateX(0) rotate(0) translateY(0); } 20% { transform: translateX(-2px) rotate(-5deg) translateY(2px); } 40% { transform: translateX(0) rotate(0) translateY(0); } 60% { transform: translateX(2px) rotate(5deg) translateY(2px); } 80% { transform: translateX(0) rotate(0) translateY(0); } 100% { transform: translateX(0) rotate(0) translateY(0); } }
@keyframes ojw-dig { 0% { transform: rotate(20deg) translateX(0); } 25% { transform: rotate(30deg) translateX(2px); } 50% { transform: rotate(15deg) translateX(-1px); } 75% { transform: rotate(25deg) translateX(1px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes ojw-wander { 0% { transform: translateX(0) scaleX(1); } 33% { transform: translateX(8px) scaleX(-1); } 66% { transform: translateX(16px) scaleX(1); } 100% { transform: translateX(24px) scaleX(-1); } }
@keyframes ojw-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

.scn-old-judas-devoured {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b89a 40%, #a8987a 100%),
    radial-gradient(ellipse at 40% 60%, #f0e0c0 0%, transparent 60%);
}
.scn-old-judas-devoured .ojd-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: repeating-linear-gradient(45deg, #6a5a4a 0px, #7a6a5a 2px, #6a5a4a 4px); box-shadow: inset 0 20px 40px #00000044; }
.scn-old-judas-devoured .ojd-sunbeam { position: absolute; inset: 0; background: linear-gradient(135deg, transparent 40%, rgba(255,240,200,0.3) 45%, rgba(255,240,200,0.6) 50%, transparent 55%); animation: ojd-beam 12s ease-in-out infinite alternate; }
.scn-old-judas-devoured .ojd-rags { position: absolute; bottom: 22%; left: 32%; width: 30px; height: 20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 20% 40% 30% / 50% 40% 60% 50%; transform: rotate(15deg); animation: ojd-rag 0.4s ease-in-out infinite alternate; }
.scn-old-judas-devoured .ojd-bones { position: absolute; bottom: 20%; left: 40%; width: 14px; height: 6px; background: #d0c0b0; border-radius: 50% 50% 20% 20%; transform: rotate(-20deg); box-shadow: 0 0 4px #00000033; animation: ojd-bone 2s ease-in-out infinite; }
.scn-old-judas-devoured .ojd-door-broken { position: absolute; bottom: 20%; left: 10%; width: 60px; height: 80px; border: 3px solid #5a4a3a; background: transparent; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px #00000033; }
.scn-old-judas-devoured .ojd-pig-a { position: absolute; bottom: 30%; left: 30%; width: 22px; height: 12px; background: #7a6a5a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ojd-leap 0.6s ease-in-out infinite alternate; }
.scn-old-judas-devoured .ojd-pig-b { position: absolute; bottom: 28%; left: 60%; width: 18px; height: 10px; background: #7a6a5a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ojd-leap 0.7s ease-in-out 0.3s infinite alternate; }
@keyframes ojd-beam { 0% { opacity: 0.3; transform: scaleX(0.9); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.4; transform: scaleX(0.8); } }
@keyframes ojd-rag { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-1px); } 100% { transform: rotate(12deg) translateY(1px); } }
@keyframes ojd-bone { 0%,100% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-15deg) scale(1.05); } }
@keyframes ojd-leap { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-4px) rotate(0deg); } 50% { transform: translateY(0) rotate(5deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }

.scn-old-judas-conclusion {
  background: linear-gradient(180deg, #1a1a3a 0%, #3a2a4e 30%, #6a5a3a 60%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 0%, #c0a06044 0%, transparent 60%);
}
.scn-old-judas-conclusion .ojc-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1a1a3e 0%, #3a2a5e 50%, #6a4a3a 100%); animation: ojc-twilight 15s ease-in-out infinite alternate; }
.scn-old-judas-conclusion .ojc-horizon { position: absolute; bottom: 40%; left: 0; right: 0; height: 2px; background: #8a7a5a; box-shadow: 0 0 10px #c0a06088; }
.scn-old-judas-conclusion .ojc-hut { position: absolute; bottom: 20%; left: 40%; width: 80px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 4px 12px #00000088; }
.scn-old-judas-conclusion .ojc-joseph { position: absolute; bottom: 22%; left: 44%; width: 18px; height: 38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: ojc-gesture 4s ease-in-out infinite; }
.scn-old-judas-conclusion .ojc-narrator { position: absolute; bottom: 22%; right: 32%; width: 18px; height: 38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom; animation: ojc-listen 5s ease-in-out infinite alternate; }
.scn-old-judas-conclusion .ojc-tree { position: absolute; bottom: 22%; left: 20%; width: 6px; height: 40px; background: #3a2a1a; border-radius: 3px 3px 0 0; transform-origin: bottom; animation: ojc-sway 8s ease-in-out infinite; }
.scn-old-judas-conclusion .ojc-cloud { position: absolute; top: 15%; left: 5%; width: 70px; height: 14px; background: rgba(200,180,200,0.2); border-radius: 50%; filter: blur(8px); animation: ojc-cloud 25s linear infinite; }
@keyframes ojc-twilight { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ojc-gesture { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(2px) rotate(10deg); } 40% { transform: translateX(0) rotate(0); } 60% { transform: translateX(-2px) rotate(-5deg); } 80% { transform: translateX(0) rotate(0); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ojc-listen { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes ojc-sway { 0% { transform: rotate(0); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0); } }
@keyframes ojc-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

.scn-chicot-brandy-introduction {
  background: linear-gradient(180deg, #e8d4a0 0%, #d4b880 50%, #c0a060 100%), radial-gradient(ellipse at 30% 40%, #f0e0c0 0%, transparent 60%);
}
.scn-chicot-brandy-introduction .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #e8d4a0 0%, #d4b880 100%); }
.scn-chicot-brandy-introduction .window { position:absolute; top:10%; left:5%; width:25%; height:30%; background: radial-gradient(ellipse at center, #fff8e0 0%, #e8d4a0 70%); border-radius: 20px; box-shadow: 0 0 40px 20px rgba(255,248,224,0.3); animation: cbi-window 8s ease-in-out infinite; }
.scn-chicot-brandy-introduction .table { position:absolute; bottom:15%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #8a6a40 0%, #5a4020 100%); border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
.scn-chicot-brandy-introduction .bottle { position:absolute; bottom:30%; left:45%; width:8%; height:35%; background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); border-radius: 40% 40% 10% 10%; transform: rotate(-10deg); animation: cbi-bottle 12s ease-in-out infinite; }
.scn-chicot-brandy-introduction .glass { position:absolute; bottom:28%; left:55%; width:5%; height:8%; background: radial-gradient(ellipse at 50% 40%, #f0c060 0%, #c08030 80%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px rgba(192,128,48,0.4); animation: cbi-glass 3s ease-in-out infinite alternate; }
.scn-chicot-brandy-introduction .figure-left { position:absolute; bottom:15%; left:20%; width:12%; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: cbi-figure-left 5s ease-in-out infinite; }
.scn-chicot-brandy-introduction .figure-right { position:absolute; bottom:15%; right:20%; width:10%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cbi-figure-right 6s ease-in-out infinite; }
.scn-chicot-brandy-introduction .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(255,200,100,0.15) 0%, transparent 70%); animation: cbi-glow 7s ease-in-out infinite alternate; }
@keyframes cbi-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cbi-bottle { 0% { transform:rotate(-8deg) translateY(0); } 50% { transform:rotate(-12deg) translateY(-2px); } 100% { transform:rotate(-8deg) translateY(0); } }
@keyframes cbi-glass { 0% { box-shadow:0 0 12px 4px rgba(192,128,48,0.3); } 100% { box-shadow:0 0 28px 12px rgba(192,128,48,0.6); } }
@keyframes cbi-figure-left { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-3px) rotate(1deg); } 50% { transform:translateY(-1px) rotate(-1deg); } 75% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes cbi-figure-right { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes cbi-glow { 0% { opacity:0.5; } 100% { opacity:0.9; } }

.scn-chicot-brandy-continued {
  background: linear-gradient(180deg, #e0d0a0 0%, #c0b080 50%, #a09060 100%), radial-gradient(ellipse at 60% 40%, #f0e0c0 0%, transparent 70%);
}
.scn-chicot-brandy-continued .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #e0d0a0 0%, #c0b080 100%); }
.scn-chicot-brandy-continued .window { position:absolute; top:10%; right:5%; width:25%; height:30%; background: radial-gradient(ellipse at center, #fff8e0 0%, #e0d0a0 70%); border-radius: 20px; box-shadow: 0 0 40px 20px rgba(255,248,224,0.3); animation: cbc-window 10s ease-in-out infinite; }
.scn-chicot-brandy-continued .table { position:absolute; bottom:15%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #7a5a30 0%, #4a3010 100%); border-radius: 10px; box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
.scn-chicot-brandy-continued .bottle-tilted { position:absolute; bottom:30%; left:42%; width:8%; height:35%; background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%); border-radius: 40% 40% 10% 10%; transform: rotate(35deg) translateX(10px); animation: cbc-bottle 3s ease-in-out infinite; }
.scn-chicot-brandy-continued .stream { position:absolute; bottom:34%; left:49%; width:2%; height:12%; background: linear-gradient(180deg, #f0c060 0%, #c08030 100%); border-radius: 50%; animation: cbc-stream 2s ease-in-out infinite; }
.scn-chicot-brandy-continued .glass { position:absolute; bottom:25%; left:50%; width:5%; height:8%; background: radial-gradient(ellipse at 50% 60%, #f0c060 0%, #c08030 80%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px rgba(192,128,48,0.4); animation: cbc-glass 1.5s ease-in-out infinite; }
.scn-chicot-brandy-continued .glass-second { position:absolute; bottom:25%; left:42%; width:5%; height:8%; background: radial-gradient(ellipse at 50% 40%, #e08040 0%, #a06020 80%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 4px rgba(192,128,48,0.3); animation: cbc-glass-second 4s ease-in-out infinite; }
.scn-chicot-brandy-continued .figure-hand { position:absolute; bottom:35%; left:38%; width:8%; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%; transform: rotate(-20deg); animation: cbc-hand 2s ease-in-out infinite; }
@keyframes cbc-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes cbc-bottle { 0% { transform:rotate(30deg) translateX(8px); } 50% { transform:rotate(40deg) translateX(12px); } 100% { transform:rotate(30deg) translateX(8px); } }
@keyframes cbc-stream { 0% { opacity:0; transform:scaleY(0.5); } 50% { opacity:1; transform:scaleY(1); } 100% { opacity:0; transform:scaleY(0.5); } }
@keyframes cbc-glass { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes cbc-glass-second { 0% { transform:rotate(0deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(0deg); } }
@keyframes cbc-hand { 0% { transform:rotate(-18deg) translateY(0); } 50% { transform:rotate(-22deg) translateY(-2px); } 100% { transform:rotate(-18deg) translateY(0); } }

.scn-chicot-gift-keg {
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a060 30%, #806040 60%, #4a3020 100%), radial-gradient(ellipse at 20% 80%, #ffd080 0%, transparent 50%);
}
.scn-chicot-gift-keg .bg-sky { position:absolute; top:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #b8d0e0 0%, #e0d8b0 100%); animation: cbg-sky 15s ease-in-out infinite alternate; }
.scn-chicot-gift-keg .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a8a4a 0%, #3a5a2a 100%); border-radius: 20% 20% 0 0; }
.scn-chicot-gift-keg .keg { position:absolute; bottom:25%; left:20%; width:18%; height:25%; background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 50%, #6a4a2a 100%); border-radius: 30%/40%; box-shadow: 0 6px 12px rgba(0,0,0,0.4); animation: cbg-keg 8s ease-in-out infinite; }
.scn-chicot-gift-keg .gig-wheel { position:absolute; bottom:25%; right:20%; width:15%; height:15%; background: radial-gradient(circle, #4a3020 40%, #2a1a0a 45%, #4a3020 50%, transparent 70%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: cbg-wheel 4s linear infinite; }
.scn-chicot-gift-keg .figure-left { position:absolute; bottom:30%; left:10%; width:10%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cbg-figure-left 5s ease-in-out infinite; }
.scn-chicot-gift-keg .figure-right { position:absolute; bottom:30%; right:15%; width:8%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cbg-figure-right 6s ease-in-out infinite; }
.scn-chicot-gift-keg .sun-rays { position:absolute; top:0; left:50%; width:60%; height:100%; background: linear-gradient(135deg, rgba(255,220,100,0.2) 0%, transparent 70%); filter: blur(20px); animation: cbg-rays 20s linear infinite; }
.scn-chicot-gift-keg .tree { position:absolute; bottom:25%; left:5%; width:15%; height:50%; background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%); border-radius: 20% 20% 0 0; animation: cbg-tree 12s ease-in-out infinite; }
@keyframes cbg-sky { 0% { opacity:0.9; } 100% { opacity:1; } }
@keyframes cbg-keg { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes cbg-wheel { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }
@keyframes cbg-figure-left { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-2px) rotate(1deg); } 50% { transform:translateY(-1px) rotate(-1deg); } 75% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes cbg-figure-right { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes cbg-rays { 0% { transform:translateX(-10%) rotate(-5deg); } 100% { transform:translateX(10%) rotate(5deg); } }
@keyframes cbg-tree { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(1); } }

.scn-chicot-checking-breath {
  background: linear-gradient(180deg, #fff8e0 0%, #f0e0b0 50%, #e0c080 100%), radial-gradient(ellipse at 50% 100%, #ffe0a0 0%, transparent 60%);
}
.scn-chicot-checking-breath .bg-bright { position:absolute; inset:0; background: linear-gradient(135deg, #fff8e0, #f0e0b0); }
.scn-chicot-checking-breath .shadow { position:absolute; bottom:0; left:20%; width:60%; height:80%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.4) 100%); clip-path: polygon(0% 100%, 100% 100%, 70% 0%, 30% 0%); animation: cbt-shadow 2s ease-in-out infinite; }
.scn-chicot-checking-breath .figure-a { position:absolute; bottom:20%; left:30%; width:12%; height:50%; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius: 50% 40% 30% 30% / 70% 60% 30% 30%; transform-origin: bottom center; animation: cbt-figure-a 1.5s ease-in-out infinite; }
.scn-chicot-checking-breath .figure-b { position:absolute; bottom:20%; right:35%; width:10%; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 40% 50% 30% 30% / 60% 70% 30% 30%; transform-origin: bottom center; animation: cbt-figure-b 1.5s ease-in-out infinite; }
.scn-chicot-checking-breath .breath-mist { position:absolute; bottom:45%; left:42%; width:6%; height:4%; background: radial-gradient(ellipse, rgba(200,180,160,0.5) 0%, transparent 80%); filter: blur(4px); animation: cbt-mist 0.8s ease-in-out infinite; }
.scn-chicot-checking-breath .light-glow { position:absolute; top:10%; left:40%; width:20%; height:40%; background: radial-gradient(ellipse at center, rgba(255,220,100,0.3) 0%, transparent 70%); animation: cbt-glow 3s ease-in-out infinite alternate; }
@keyframes cbt-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes cbt-figure-a { 0% { transform:translateY(0) rotate(2deg); } 50% { transform:translateY(-2px) rotate(-1deg); } 100% { transform:translateY(0) rotate(2deg); } }
@keyframes cbt-figure-b { 0% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(-3deg); } }
@keyframes cbt-mist { 0% { opacity:0; transform:scale(0.5) translateX(0); } 50% { opacity:1; transform:scale(1.2) translateX(5px); } 100% { opacity:0; transform:scale(0.5) translateX(10px); } }
@keyframes cbt-glow { 0% { opacity:0.6; } 100% { opacity:1; } }

/* mother-of-monsters-sales */
.scn-mother-of-monsters-sales {
  background: linear-gradient(180deg, #f5c890 0%, #d9a066 30%, #ab6b3a 60%, #3a2515 100%), radial-gradient(ellipse at 30% 40%, #ffe0a0 0%, transparent 60%);
}
.scn-mother-of-monsters-sales .sky-glow { position:absolute; inset:0 0 45% 0; background: radial-gradient(ellipse 60% 100% at 50% 100%, #ffd580 0%, #c89050 40%, transparent 70%); animation: mom-sky 10s ease-in-out infinite alternate; }
.scn-mother-of-monsters-sales .tent { position:absolute; bottom:15%; left:8%; width:50%; height:55%; background: linear-gradient(160deg, #a06030 0%, #5a3a20 60%, #3a2510 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%); box-shadow: -10px 0 20px rgba(0,0,0,.5); animation: mom-tent 12s ease-in-out infinite; }
.scn-mother-of-monsters-sales .cage { position:absolute; bottom:22%; right:15%; width:70px; height:60px; background: linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%); border: 3px solid #8a6030; border-radius: 8px; box-shadow: inset 0 0 0 2px #4a3a20; animation: mom-cage 6s ease-in-out infinite; }
.scn-mother-of-monsters-sales .creature { position:absolute; bottom:25%; right:20%; width:40px; height:35px; background: radial-gradient(circle at 40% 30%, #8a6830 0%, #3a2a10 80%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-10deg); animation: mom-creature 4s ease-in-out infinite; }
.scn-mother-of-monsters-sales .woman { position:absolute; bottom:18%; left:40%; width:20px; height:50px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: skewX(-5deg); animation: mom-woman 3s ease-in-out infinite alternate; }
.scn-mother-of-monsters-sales .showman-a { position:absolute; bottom:18%; left:55%; width:22px; height:48px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; transform: scaleX(0.85); animation: mom-showman 5s ease-in-out infinite; }
.scn-mother-of-monsters-sales .showman-b { position:absolute; bottom:18%; left:62%; width:20px; height:45px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; transform: scaleX(0.8); animation: mom-showman 5s ease-in-out 1s infinite; }
.scn-mother-of-monsters-sales .coin { position:absolute; bottom:40%; left:48%; width:8px; height:8px; background: radial-gradient(circle, #ffd700 0%, #b8860b 100%); border-radius: 50%; box-shadow: 0 0 10px 2px #ffd700; animation: mom-coin 7s ease-in-out infinite; }
.scn-mother-of-monsters-sales .dust { position:absolute; top:20%; left:20%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(200,180,120,.3) 0%, transparent 70%); filter: blur(6px); animation: mom-dust 20s linear infinite; }
@keyframes mom-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mom-tent { 0% { transform: skewX(0deg) } 50% { transform: skewX(2deg) translateY(-2px) } 100% { transform: skewX(0deg) } }
@keyframes mom-cage { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mom-creature { 0% { transform: rotate(-10deg) translateY(0) } 25% { transform: rotate(-5deg) translateY(-2px) scale(1.02) } 75% { transform: rotate(-15deg) translateY(1px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes mom-woman { 0% { transform: skewX(-5deg) translateX(0) } 50% { transform: skewX(-3deg) translateX(2px) translateY(-1px) } 100% { transform: skewX(-5deg) translateX(0) } }
@keyframes mom-showman { 0% { transform: scaleX(0.85) translateY(0) } 50% { transform: scaleX(0.9) translateY(-2px) } 100% { transform: scaleX(0.85) translateY(0) } }
@keyframes mom-coin { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-8px) rotate(180deg) scale(1.2) } 100% { transform: translateY(0) rotate(360deg) } }
@keyframes mom-dust { 0% { transform: scaleX(1) opacity:0.3 } 50% { opacity:0.6 } 100% { transform: scaleX(2) opacity:0 } }

/* corset-deformities */
.scn-corset-deformities {
  background: linear-gradient(180deg, #89cff0 0%, #6ab4e0 30%, #4a90b0 60%, #2a6080 100%), radial-gradient(ellipse at 40% 70%, #c0d8ff 0%, transparent 60%);
}
.scn-corset-deformities .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a0d8f0 0%, #78c0e0 50%, transparent 100%); animation: cor-sky 15s ease-in-out infinite alternate; }
.scn-corset-deformities .sea { position:absolute; bottom:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a80a0 0%, #1a6080 60%, #0a4050 100%); border-radius: 60% 40% 0 0 / 20% 30% 0 0; animation: cor-sea 20s ease-in-out infinite; }
.scn-corset-deformities .sand { position:absolute; bottom:0; left:0; right:10%; height:30%; background: linear-gradient(180deg, #e0c090 0%, #c0a070 30%, #a08050 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.2); animation: cor-sand 12s ease-in-out infinite alternate; }
.scn-corset-deformities .woman-sil { position:absolute; bottom:18%; left:35%; width:18px; height:55px; background: linear-gradient(180deg, #202030 0%, #0a0a15 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; transform: rotate(5deg); animation: cor-woman 4s ease-in-out infinite; }
.scn-corset-deformities .child-a { position:absolute; bottom:12%; left:50%; width:20px; height:22px; background: radial-gradient(circle at 50% 30%, #8080a0 0%, #404060 80%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-20deg); animation: cor-child 3s ease-in-out infinite; }
.scn-corset-deformities .child-b { position:absolute; bottom:10%; left:58%; width:18px; height:20px; background: radial-gradient(circle at 50% 30%, #8080a0 0%, #404060 80%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(15deg); animation: cor-child 3.5s ease-in-out 0.5s infinite; }
.scn-corset-deformities .child-c { position:absolute; bottom:8%; left:45%; width:16px; height:18px; background: radial-gradient(circle at 50% 30%, #8080a0 0%, #404060 80%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-10deg); animation: cor-child 4s ease-in-out 1s infinite; }
.scn-corset-deformities .crutch { position:absolute; bottom:15%; left:48%; width:3px; height:30px; background: #6a5030; border-radius: 2px; transform: rotate(20deg); box-shadow: 4px 0 0 #6a5030, 8px 0 0 #6a5030; animation: cor-crutch 2s ease-in-out infinite; }
.scn-corset-deformities .gull { position:absolute; top:20%; right:15%; width:20px; height:8px; background: #d0d0e0; border-radius: 50%; clip-path: polygon(0 50%, 50% 0%, 100% 50%, 70% 60%, 100% 100%, 50% 70%, 0% 100%, 30% 60%); transform: scale(0.8); animation: cor-gull 8s linear infinite; }
@keyframes cor-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cor-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes cor-sand { 0% { background-position-y: 0 } 50% { background-position-y: 5px } 100% { background-position-y: 0 } }
@keyframes cor-woman { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes cor-child { 0% { transform: rotate(-20deg) translateY(0) } 25% { transform: rotate(-15deg) translateY(-2px) scale(1.05) } 75% { transform: rotate(-25deg) translateY(1px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes cor-crutch { 0% { transform: rotate(20deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(20deg) } }
@keyframes cor-gull { 0% { transform: translateX(0) scale(0.8) } 50% { transform: translateX(-30px) scale(0.9) } 100% { transform: translateX(-60px) scale(0.8) } }

/* practical-joke-arrival */
.scn-practical-joke-arrival {
  background: linear-gradient(180deg, #f5e6c0 0%, #e0c8a0 30%, #c0a880 60%, #a08860 100%), radial-gradient(ellipse at 50% 40%, #ffe8c0 0%, transparent 70%);
}
.scn-practical-joke-arrival .wall-l { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(180deg, #c8b090 0%, #a89070 100%); border-right: 4px solid #8a7050; box-shadow: inset -10px 0 20px rgba(0,0,0,.1); animation: pja-wall 10s ease-in-out infinite alternate; }
.scn-practical-joke-arrival .wall-r { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(180deg, #c8b090 0%, #a89070 100%); border-left: 4px solid #8a7050; box-shadow: inset 10px 0 20px rgba(0,0,0,.1); animation: pja-wall 10s ease-in-out infinite alternate-reverse; }
.scn-practical-joke-arrival .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b09070 0%, #9a7a5a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: pja-floor 8s ease-in-out infinite; }
.scn-practical-joke-arrival .chandelier { position:absolute; top:8%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #c89040 60%, #8a6020 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 8px #ffd080; animation: pja-chandelier 4s ease-in-out infinite; }
.scn-practical-joke-arrival .host { position:absolute; bottom:20%; left:42%; width:22px; height:45px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; transform: rotate(2deg); animation: pja-host 6s ease-in-out infinite; }
.scn-practical-joke-arrival .friend-a { position:absolute; bottom:20%; left:50%; width:20px; height:42px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; transform: scaleX(0.9); animation: pja-friend 7s ease-in-out infinite; }
.scn-practical-joke-arrival .friend-b { position:absolute; bottom:20%; left:58%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; transform: scaleX(0.85); animation: pja-friend 7s ease-in-out 1s infinite; }
.scn-practical-joke-arrival .table-food { position:absolute; bottom:18%; left:38%; width:30px; height:12px; background: #a08050; border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.3), 0 0 0 2px #c0a060; animation: pja-table 5s ease-in-out infinite alternate; }
.scn-practical-joke-arrival .fireplace { position:absolute; bottom:15%; right:8%; width:50px; height:40px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 8px 8px 4px 4px; box-shadow: inset 0 -5px 10px rgba(0,0,0,.5); animation: pja-fireplace 3s ease-in-out infinite; }
@keyframes pja-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes pja-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pja-chandelier { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes pja-host { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-1px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes pja-friend { 0% { transform: scaleX(0.9) translateY(0) } 50% { transform: scaleX(0.95) translateY(-2px) } 100% { transform: scaleX(0.9) translateY(0) } }
@keyframes pja-table { 0% { box-shadow: 0 4px 6px rgba(0,0,0,.3), 0 0 0 2px #c0a060 } 100% { box-shadow: 0 2px 4px rgba(0,0,0,.2), 0 0 0 2px #d0b070 } }
@keyframes pja-fireplace { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }

/* practical-joke-bedtime */
.scn-practical-joke-bedtime {
  background: linear-gradient(180deg, #1a1818 0%, #2a2220 30%, #1a1210 60%, #0a0808 100%), radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 70%);
}
.scn-practical-joke-bedtime .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2220 0%, #1a1210 100%); border: 2px solid #0a0808; box-shadow: inset 0 0 40px rgba(0,0,0,.6); animation: pjb-wall 12s ease-in-out infinite alternate; }
.scn-practical-joke-bedtime .door { position:absolute; left:12%; top:10%; width:60px; height:90px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5), 4px 0 8px rgba(0,0,0,.4); animation: pjb-door 8s ease-in-out infinite; }
.scn-practical-joke-bedtime .bed { position:absolute; bottom:10%; right:10%; width:80px; height:40px; background: linear-gradient(180deg, #3a2a20 0%, #2a1a10 100%); border-radius: 10px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.3), 0 4px 10px rgba(0,0,0,.5); animation: pjb-bed 6s ease-in-out infinite; }
.scn-practical-joke-bedtime .candle { position:absolute; top:20%; left:45%; width:4px; height:16px; background: linear-gradient(180deg, #ffd080 0%, #c89040 50%, #8a6020 100%); border-radius: 2px; box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,.3); animation: pjb-candle 3s ease-in-out infinite alternate; }
.scn-practical-joke-bedtime .character { position:absolute; bottom:20%; left:48%; width:18px; height:50px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; transform: rotate(2deg); animation: pjb-character 5s ease-in-out infinite; }
.scn-practical-joke-bedtime .shadow-l { position:absolute; top:15%; left:15%; width:30px; height:60px; background: rgba(0,0,0,.4); border-radius: 40% 40% 20% 20%; filter: blur(8px); transform: rotate(-10deg); animation: pjb-shadow 7s ease-in-out infinite alternate; }
.scn-practical-joke-bedtime .shadow-r { position:absolute; top:15%; right:15%; width:30px; height:60px; background: rgba(0,0,0,.4); border-radius: 40% 40% 20% 20%; filter: blur(8px); transform: rotate(10deg); animation: pjb-shadow 7s ease-in-out infinite alternate-reverse; }
.scn-practical-joke-bedtime .whisper-line { position:absolute; top:40%; left:45%; width:20px; height:2px; background: rgba(255,255,255,.03); border-radius: 1px; filter: blur(2px); box-shadow: 0 0 4px rgba(255,255,255,.05); animation: pjb-whisper 4s ease-in-out infinite; }
@keyframes pjb-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pjb-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes pjb-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pjb-candle { 0% { box-shadow: 0 0 20px 6px #ffd080, 0 0 40px 12px rgba(255,208,128,.3); transform: scaleY(1) } 50% { box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 18px rgba(255,208,128,.5); transform: scaleY(1.05) } 100% { box-shadow: 0 0 15px 4px #ffd080, 0 0 30px 8px rgba(255,208,128,.2); transform: scaleY(0.98) } }
@keyframes pjb-character { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes pjb-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }
@keyframes pjb-whisper { 0% { opacity:0 } 50% { opacity:0.3 } 100% { opacity:0 } }

/* dominoes-drunk */
.scn-dominoes-drunk { 
  background: 
    linear-gradient(180deg, #d4a76a 0%, #b8843a 30%, #8a5e2a 70%, #4a2a0a 100%),
    radial-gradient(ellipse at 50% 60%, #f0d8b8 0%, transparent 70%);
}
.scn-dominoes-drunk .wall { position:absolute; inset:0; background: linear-gradient(135deg, #c8a060 0%, #a07840 100%); opacity:.6; }
.scn-dominoes-drunk .counter { position:absolute; bottom:10%; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #7a5a2a 0%, #5a3a1a 100%); border-radius:8% 8% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-dominoes-drunk .table { position:absolute; bottom:22%; left:50%; width:120px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #a07030 0%, #704a1a 100%); border-radius:10%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: dd-rock 7s ease-in-out infinite; }
.scn-dominoes-drunk .figure-jeremie { position:absolute; bottom:28%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dd-sway 5s ease-in-out infinite alternate; }
.scn-dominoes-drunk .figure-owner { position:absolute; bottom:28%; left:55%; width:28px; height:58px; background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dd-lean 6s ease-in-out infinite alternate; }
.scn-dominoes-drunk .dominoes { position:absolute; bottom:30%; left:50%; width:50px; height:18px; transform:translateX(-50%); background: radial-gradient(circle, #d0b080 0%, #a08050 60%); border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: dd-wobble 4s ease-in-out infinite; }
.scn-dominoes-drunk .bottle { position:absolute; bottom:32%; left:62%; width:10px; height:30px; background: linear-gradient(180deg, #a07040 0%, #704820 100%); border-radius:30% 30% 20% 20%; transform-origin: bottom center; animation: dd-tilt 8s ease-in-out infinite; }
.scn-dominoes-drunk .lamp { position:absolute; top:15%; left:30%; width:20px; height:30px; background: radial-gradient(circle, #ffd080 0%, #c09040 70%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 30px 8px #e0b060; animation: dd-swing 6s ease-in-out infinite alternate; }
@keyframes dd-rock  { 0% { transform:translateX(-50%) rotate(0deg); } 50% { transform:translateX(-50%) rotate(2deg); } 100% { transform:translateX(-50%) rotate(-1deg); } }
@keyframes dd-sway { 0% { transform: rotate(-5deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-4deg); } }
@keyframes dd-lean { 0% { transform: rotate(3deg); } 50% { transform: rotate(-6deg); } 100% { transform: rotate(2deg); } }
@keyframes dd-wobble { 0% { transform:translateX(-50%) scale(1); } 30% { transform:translateX(-50%) scale(1.03) rotate(-2deg); } 70% { transform:translateX(-50%) scale(0.97) rotate(1deg); } 100% { transform:translateX(-50%) scale(1); } }
@keyframes dd-tilt { 0% { transform: rotate(0deg); } 30% { transform: rotate(10deg); } 70% { transform: rotate(-8deg); } 100% { transform: rotate(2deg); } }
@keyframes dd-swing { 0% { transform: rotate(-5deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(-6deg); } }

/* dominoes-closing */
.scn-dominoes-closing { 
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #0e0e2a 40%, #050515 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a5a 0%, transparent 70%);
}
.scn-dominoes-closing .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1e1e3e 0%, #0a0a1a 100%); opacity:.8; }
.scn-dominoes-closing .window { position:absolute; top:20%; left:10%; width:80px; height:60px; background: linear-gradient(180deg, #3a3a7a 0%, #1a1a4a 100%); border:2px solid #4a4a6a; border-radius:4px; box-shadow: inset 0 0 20px #2a2a5a; animation: dc-shake 10s ease-in-out infinite; }
.scn-dominoes-closing .table { position:absolute; bottom:20%; left:50%; width:140px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:8%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-dominoes-closing .figure-sit { position:absolute; bottom:24%; left:38%; width:28px; height:55px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dc-sit-still 12s ease-in-out infinite; }
.scn-dominoes-closing .figure-stand { position:absolute; bottom:28%; left:60%; width:25px; height:58px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dc-rise 15s ease-in-out infinite; }
.scn-dominoes-closing .candle { position:absolute; bottom:25%; left:30%; width:8px; height:24px; background: linear-gradient(180deg, #e0b070 0%, #a07030 100%); border-radius:20%; box-shadow: 0 0 20px 4px #c09050; animation: dc-flicker 3s ease-in-out infinite alternate; }
.scn-dominoes-closing .gust { position:absolute; top:30%; right:20%; width:40px; height:6px; background: linear-gradient(90deg, rgba(200,200,255,.4) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: dc-gust 8s linear infinite; }
@keyframes dc-shake { 0% { transform: translate(0,0); } 20% { transform: translate(2px,-1px); } 40% { transform: translate(-1px,2px); } 60% { transform: translate(-2px,-1px); } 80% { transform: translate(1px,1px); } 100% { transform: translate(0,0); } }
@keyframes dc-sit-still { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes dc-rise { 0% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-4px) scaleY(1.02); } 50% { transform: translateY(-8px) scaleY(1.05); } 75% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dc-flicker { 0% { box-shadow: 0 0 15px 2px #c09050; opacity:.8; } 50% { box-shadow: 0 0 25px 6px #e0b070; opacity:1; } 100% { box-shadow: 0 0 18px 3px #c09050; opacity:.9; } }
@keyframes dc-gust { 0% { transform: translateX(-20px); opacity:0; } 50% { opacity:.6; } 100% { transform: translateX(120px); opacity:0; } }

/* jeremie-staggering-home */
.scn-jeremie-staggering-home { 
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #1a1a3a 0%, transparent 80%);
}
.scn-jeremie-staggering-home .doorframe { position:absolute; top:20%; left:35%; width:80px; height:120px; border:4px solid #2a2a2a; border-bottom:none; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:4px 4px 0 0; box-shadow: inset 0 0 20px #000; animation: js-creak 14s ease-in-out infinite; }
.scn-jeremie-staggering-home .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-top:2px solid #2a2a2a; }
.scn-jeremie-staggering-home .figure-fall { position:absolute; bottom:15%; left:45%; width:32px; height:60px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: 50% 0%; animation: js-fall 4s ease-in-out infinite; }
.scn-jeremie-staggering-home .shadow-escape { position:absolute; bottom:10%; right:10%; width:40px; height:50px; background: radial-gradient(ellipse, rgba(0,0,0,.8) 0%, transparent 80%); border-radius:50%; filter: blur(6px); animation: js-escape 12s ease-in-out infinite; }
.scn-jeremie-staggering-home .table { position:absolute; bottom:20%; left:15%; width:60px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: rotate(8deg); animation: js-table-shake 9s ease-in-out infinite; }
.scn-jeremie-staggering-home .chair { position:absolute; bottom:15%; left:20%; width:20px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:10%; transform: rotate(-15deg); animation: js-chair-tip 5s ease-in-out infinite; }
.scn-jeremie-staggering-home .lamp { position:absolute; top:10%; left:50%; width:16px; height:24px; background: radial-gradient(circle, #a08050 0%, #403020 80%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 25px 5px #604020; animation: js-lamp-swing 8s ease-in-out infinite alternate; }
@keyframes js-creak { 0% { transform: rotate(0deg); } 30% { transform: rotate(1.5deg); } 60% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes js-fall { 0% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(-20deg) translateY(-5px); } 50% { transform: rotate(-45deg) translateY(15px); } 80% { transform: rotate(-20deg) translateY(-5px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes js-escape { 0% { transform: translateX(0) scale(1); opacity:.3; } 25% { transform: translateX(30px) scale(1.2); opacity:.6; } 50% { transform: translateX(60px) scale(1.5); opacity:.8; } 75% { transform: translateX(30px) scale(1.2); opacity:.6; } 100% { transform: translateX(0) scale(1); opacity:.3; } }
@keyframes js-table-shake { 0% { transform: rotate(8deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(6deg); } 75% { transform: rotate(9deg); } 100% { transform: rotate(8deg); } }
@keyframes js-chair-tip { 0% { transform: rotate(-15deg); } 25% { transform: rotate(-20deg); } 50% { transform: rotate(-12deg); } 75% { transform: rotate(-18deg); } 100% { transform: rotate(-15deg); } }
@keyframes js-lamp-swing { 0% { transform: rotate(-8deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(-6deg); } }

/* jeremie-rage */
.scn-jeremie-rage { 
  background: 
    linear-gradient(180deg, #0a0a0f 0%, #1a1a2e 40%, #0a0a0a 100%),
    radial-gradient(ellipse at 30% 50%, #2a2a4a 0%, transparent 60%);
}
.scn-jeremie-rage .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #1a1a2a 0%, #0a0a0a 100%); }
.scn-jeremie-rage .wall-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(90deg, #0a0a0a 0%, #1a1a2a 100%); }
.scn-jeremie-rage .window { position:absolute; top:20%; right:10%; width:50px; height:70px; background: linear-gradient(180deg, #2a2a5a 0%, #1a1a3a 100%); border:2px solid #3a3a5a; border-radius:4px; box-shadow: inset 0 0 30px #1a1a4a, 0 0 15px rgba(50,50,100,.3); animation: jr-glow 6s ease-in-out infinite alternate; }
.scn-jeremie-rage .bed { position:absolute; bottom:15%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:20% 20% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.5); }
.scn-jeremie-rage .figure-sit { position:absolute; bottom:30%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jr-sit-up 4s ease-in-out infinite; }
.scn-jeremie-rage .ghost-shape { position:absolute; top:20%; left:40%; width:20px; height:40px; background: radial-gradient(ellipse, rgba(100,100,200,.2) 0%, transparent 80%); border-radius:50%; filter: blur(8px); animation: jr-float 10s ease-in-out infinite; }
.scn-jeremie-rage .shadow { position:absolute; bottom:5%; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: jr-pulse 7s ease-in-out infinite; }
@keyframes jr-glow { 0% { box-shadow: inset 0 0 20px #1a1a4a, 0 0 10px rgba(50,50,100,.2); } 50% { box-shadow: inset 0 0 40px #2a2a6a, 0 0 25px rgba(60,60,120,.5); } 100% { box-shadow: inset 0 0 20px #1a1a4a, 0 0 10px rgba(50,50,100,.2); } }
@keyframes jr-sit-up { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-5px) rotate(5deg); } 60% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes jr-float { 0% { transform: translate(0,0) scale(1); opacity:.2; } 25% { transform: translate(10px,-15px) scale(1.2); opacity:.4; } 50% { transform: translate(20px,-30px) scale(1.5); opacity:.6; } 75% { transform: translate(10px,-15px) scale(1.2); opacity:.4; } 100% { transform: translate(0,0) scale(1); opacity:.2; } }
@keyframes jr-pulse { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.3; } }

.scn-mother-of-monsters-intro { background: linear-gradient(180deg, #fce8d0 0%, #b8d4e0 50%, #80a8b8 100%), radial-gradient(ellipse at 50% 100%, #d0b090 0%, transparent 70%); }
.scn-mother-of-monsters-intro .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #fff8e0 0%, #98c0d0 100%); animation: momi-sky 16s ease-in-out infinite alternate; }
.scn-mother-of-monsters-intro .sea { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(90deg, #5080a0 0%, #4080a0 50%, #5080a0 100%); animation: momi-sea 8s ease-in-out infinite; }
.scn-mother-of-monsters-intro .sand { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #e0c8a0 0%, #c8a880 100%); }
.scn-mother-of-monsters-intro .cliffs { position:absolute; bottom:40%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #808060 0%, #606040 100%); border-radius: 0 0 40% 40%; transform: scaleX(0.9); }
.scn-mother-of-monsters-intro .umbrella { position:absolute; bottom:50%; left:30%; width:8px; height:30px; background: #4a2a1a; transform-origin: bottom center; animation: momi-sway 6s ease-in-out infinite; }
.scn-mother-of-monsters-intro .umbrella::before { content:''; position:absolute; bottom:100%; left:50%; width:40px; height:20px; background: linear-gradient(180deg, #a05840 0%, #783828 100%); border-radius: 50% 50% 0 0; transform: translateX(-50%) scaleY(0.7); }
.scn-mother-of-monsters-intro .figure { position:absolute; bottom:42%; left:35%; width:20px; height:50px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: momi-walk 10s ease-in-out infinite; }
.scn-mother-of-monsters-intro .cloud { position:absolute; top:12%; left:10%; width:80px; height:20px; background: rgba(255,255,255,0.6); border-radius: 50%; filter: blur(6px); animation: momi-cloud 50s linear infinite; }
.scn-mother-of-monsters-intro .gull { position:absolute; top:18%; left:50%; width:12px; height:8px; background: #2a2a2a; border-radius: 50%; clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: momi-gull 20s ease-in-out infinite; }
@keyframes momi-sky { 0% { opacity:1 } 50% { opacity:0.7 } 100% { opacity:0.9 } }
@keyframes momi-sea { 0% { transform: translateX(-2px); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }
@keyframes momi-sway { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes momi-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(10px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(20px) translateY(0) rotate(-1deg); } 75% { transform: translateX(30px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(40px) translateY(0) rotate(0); } }
@keyframes momi-cloud { 0% { transform: translateX(-40px); } 100% { transform: translateX(100vw); } }
@keyframes momi-gull { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-8px) rotate(3deg); } }

.scn-mother-of-monsters-visit { background: linear-gradient(180deg, #ffe8c0 0%, #c0d0a0 50%, #b0a080 100%), radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 70%); }
.scn-mother-of-monsters-visit .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe8c0 0%, #d0e0b0 100%); animation: momv-sky 20s ease-in-out infinite alternate; }
.scn-mother-of-monsters-visit .house { position:absolute; bottom:30%; left:30%; width:120px; height:100px; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.2); animation: momv-house 12s ease-in-out infinite; }
.scn-mother-of-monsters-visit .roof { position:absolute; bottom:55%; left:28%; width:140px; height:40px; background: linear-gradient(180deg, #b08050 0%, #906040 100%); border-radius: 10% 10% 0 0; clip-path: polygon(0% 100%, 50% 0%, 100% 100%); }
.scn-mother-of-monsters-visit .door { position:absolute; bottom:32%; left:42%; width:18px; height:40px; background: #4a3a1a; border-radius: 4px 4px 0 0; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.4); animation: momv-door 18s ease-in-out infinite; }
.scn-mother-of-monsters-visit .garden { position:absolute; bottom:30%; left:5%; width:90%; height:15%; background: radial-gradient(ellipse at 30% 100%, #80a060 0%, transparent 70%), linear-gradient(180deg, #a0c080 0%, #709050 100%); border-radius: 30% 70% 0 0; }
.scn-mother-of-monsters-visit .woman { position:absolute; bottom:25%; left:38%; width:20px; height:60px; background: #2a2a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: momv-woman 8s ease-in-out infinite alternate; }
.scn-mother-of-monsters-visit .path { position:absolute; bottom:5%; left:35%; width:80px; height:20px; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); border-radius: 30% 30% 0 0; transform: perspective(60px) rotateX(40deg); animation: momv-path 6s ease-in-out infinite; }
.scn-mother-of-monsters-visit .fence { position:absolute; bottom:42%; left:10%; width:3px; height:30px; background: #6a5a4a; box-shadow: 20px 0 0 #6a5a4a, 40px 0 0 #6a5a4a, 60px 0 0 #6a5a4a, 80px 0 0 #6a5a4a; }
@keyframes momv-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes momv-house { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes momv-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.8); } }
@keyframes momv-woman { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes momv-path { 0% { transform: perspective(60px) rotateX(40deg) translateX(0); } 50% { transform: perspective(60px) rotateX(40deg) translateX(2px); } 100% { transform: perspective(60px) rotateX(40deg) translateX(0); } }

.scn-mother-of-monsters-refusal { background: linear-gradient(180deg, #d8c0a0 0%, #b8a080 50%, #a08868 100%), radial-gradient(ellipse at 50% 0%, #f0d8b0 0%, transparent 70%); }
.scn-mother-of-monsters-refusal .wall { position:absolute; inset:0; background: linear-gradient(180deg, #c8b090 0%, #a08870 100%); animation: momr-wall 24s ease-in-out infinite; }
.scn-mother-of-monsters-refusal .window { position:absolute; top:20%; left:35%; width:60px; height:80px; background: #a0c0d0; border: 6px solid #7a6a5a; border-radius: 4px; animation: momr-window 10s ease-in-out infinite alternate; }
.scn-mother-of-monsters-refusal .light { position:absolute; top:20%; left:35%; width:60px; height:80px; background: radial-gradient(ellipse 60% 80%, #ffe8a0 0%, transparent 70%); opacity:0.5; animation: momr-light 4s ease-in-out infinite; }
.scn-mother-of-monsters-refusal .woman { position:absolute; bottom:20%; left:30%; width:18px; height:60px; background: #2a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: momr-woman 7s ease-in-out infinite; }
.scn-mother-of-monsters-refusal .visitor { position:absolute; bottom:20%; right:30%; width:18px; height:60px; background: #3a2a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: momr-visitor 9s ease-in-out infinite alternate; }
.scn-mother-of-monsters-refusal .chair { position:absolute; bottom:15%; left:50%; width:30px; height:20px; background: #5a4a3a; border-radius: 4px; transform: translateX(-50%); animation: momr-chair 12s ease-in-out infinite; }
.scn-mother-of-monsters-refusal .curtain { position:absolute; top:20%; left:34%; width:8px; height:80px; background: #8a6a5a; border-radius: 4px; animation: momr-curtain 6s ease-in-out infinite; }
@keyframes momr-wall { 0%,100% { opacity:1; } 50% { opacity:0.9; } }
@keyframes momr-window { 0% { background: #a0c0d0; } 100% { background: #d0e0f0; } }
@keyframes momr-light { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes momr-woman { 0% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 60% { transform: translateX(-1px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes momr-visitor { 0% { transform: translateX(0) translateY(0) rotate(0); } 100% { transform: translateX(4px) translateY(0) rotate(1deg); } }
@keyframes momr-chair { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(1px); } }
@keyframes momr-curtain { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.8); } }

.scn-mother-of-monsters-history { background: linear-gradient(180deg, #f0e0c0 0%, #c8b8a0 50%, #a09080 100%), radial-gradient(ellipse at 50% 100%, #d0c0a0 0%, transparent 70%); }
.scn-mother-of-monsters-history .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); animation: momh-sky 18s ease-in-out infinite alternate; }
.scn-mother-of-monsters-history .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #90a070 0%, #707050 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; animation: momh-hills 22s ease-in-out infinite; }
.scn-mother-of-monsters-history .road { position:absolute; bottom:10%; left:10%; width:80%; height:8px; background: #e0d0b0; border-radius: 4px; transform: perspective(60px) rotateX(30deg); animation: momh-road 14s ease-in-out infinite; }
.scn-mother-of-monsters-history .fig1 { position:absolute; bottom:15%; left:30%; width:16px; height:50px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: momh-fig1 10s ease-in-out infinite; }
.scn-mother-of-monsters-history .fig2 { position:absolute; bottom:15%; left:42%; width:16px; height:50px; background: #2a2a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: momh-fig2 10s ease-in-out infinite reverse; }
.scn-mother-of-monsters-history .tree { position:absolute; bottom:35%; right:15%; width:8px; height:40px; background: #4a3a2a; transform-origin: bottom center; animation: momh-tree 8s ease-in-out infinite alternate; }
.scn-mother-of-monsters-history .tree::before { content:''; position:absolute; bottom:100%; left:50%; width:30px; height:20px; background: #508040; border-radius: 50%; transform: translateX(-50%); }
.scn-mother-of-monsters-history .grass { position:absolute; bottom:20%; left:0; right:0; height:10%; background: linear-gradient(0deg, #80a060 0%, transparent 100%); animation: momh-grass 6s ease-in-out infinite; }
.scn-mother-of-monsters-history .dust { position:absolute; bottom:17%; left:40%; width:6px; height:6px; background: rgba(200,180,160,0.5); border-radius: 50%; animation: momh-dust 12s linear infinite; }
@keyframes momh-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes momh-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes momh-road { 0% { transform: perspective(60px) rotateX(30deg) translateX(0); } 50% { transform: perspective(60px) rotateX(30deg) translateX(2px); } 100% { transform: perspective(60px) rotateX(30deg) translateX(0); } }
@keyframes momh-fig1 { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(0); } 75% { transform: translateX(24px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes momh-fig2 { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(6px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(12px) translateY(0) rotate(0); } 75% { transform: translateX(18px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0); } }
@keyframes momh-tree { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes momh-grass { 0% { transform: skewX(0); } 50% { transform: skewX(2deg); } 100% { transform: skewX(0); } }
@keyframes momh-dust { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-20px) scale(0.5); opacity:0; } 100% { transform: translateY(0) scale(0); opacity:0; } }

.scn-prostitute-choice { background: linear-gradient(180deg, #1a1a3e 0%, #2a1a2e 50%, #3a2a2a 100%), radial-gradient(ellipse at 30% 80%, #b08040 0%, transparent 70%); }
.scn-prostitute-choice .sky    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%); animation: prochoice-sky 20s ease-in-out infinite alternate; }
.scn-prostitute-choice .stars  { position:absolute; top:5%; left:10%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,255,200,.8) 0%, transparent 70%); filter: blur(2px); animation: prochoice-stars 6s ease-in-out infinite alternate; }
.scn-prostitute-choice .lamp-post { position:absolute; bottom:35%; left:25%; width:6px; height:80px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:2px; box-shadow: 0 0 4px rgba(0,0,0,.5); }
.scn-prostitute-choice .lamp-glow { position:absolute; bottom:45%; left:25%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 80%); border-radius:50%; animation: prochoice-glow 3s ease-in-out infinite alternate; box-shadow: 0 0 40px 10px rgba(255,208,128,.5); }
.scn-prostitute-choice .woman  { position:absolute; bottom:30%; left:55%; width:40px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 60% 40% 40% 40% / 70% 50% 30% 30%; transform-origin: bottom center; animation: prochoice-woman 5s ease-in-out infinite; }
.scn-prostitute-choice .cat    { position:absolute; bottom:32%; left:50%; width:20px; height:12px; background: #1a1a1a; border-radius: 50% 50% 40% 40%; animation: prochoice-cat 8s ease-in-out infinite; }
.scn-prostitute-choice .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a0a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.6); }
@keyframes prochoice-sky   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes prochoice-stars { 0% { transform: scale(.8) translate(0,0); opacity:.3 } 50% { transform: scale(1.1) translate(2px,-2px); opacity:.8 } 100% { transform: scale(.9) translate(-1px,1px); opacity:.4 } }
@keyframes prochoice-glow  { 0% { transform: scale(.9); opacity:.7; box-shadow: 0 0 30px 6px rgba(255,208,128,.5) } 50% { transform: scale(1.1); opacity:1; box-shadow: 0 0 50px 15px rgba(255,208,128,.7) } 100% { transform: scale(1); opacity:.85; box-shadow: 0 0 35px 8px rgba(255,208,128,.6) } }
@keyframes prochoice-woman { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(-3px) rotate(0deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes prochoice-cat   { 0% { transform: translateX(0) scaleX(1) } 25% { transform: translateX(15px) scaleX(.9) } 50% { transform: translateX(30px) scaleX(1) rotate(10deg) } 75% { transform: translateX(15px) scaleX(.9) rotate(-5deg) } 100% { transform: translateX(0) scaleX(1) } }

.scn-prostitute-apartment { background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 40%, #3a1a1a 100%), radial-gradient(ellipse at 50% 60%, #6a3a3a 0%, transparent 80%); }
.scn-prostitute-apartment .wall   { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #4a2a2a 0%, #1a0a0a 100%); }
.scn-prostitute-apartment .door-left  { position:absolute; bottom:20%; left:10%; width:50px; height:80px; background: linear-gradient(180deg, #3a2a1a, #1a0a0a); border-radius:4px; box-shadow: inset 0 2px 6px rgba(0,0,0,.5); transform: rotateY(-5deg); }
.scn-prostitute-apartment .door-right { position:absolute; bottom:20%; right:10%; width:50px; height:80px; background: linear-gradient(180deg, #3a2a1a, #1a0a0a); border-radius:4px; box-shadow: inset 0 2px 6px rgba(0,0,0,.5); transform: rotateY(5deg); }
.scn-prostitute-apartment .curtain{ position:absolute; bottom:20%; left:40%; width:80px; height:90px; background: linear-gradient(180deg, #8a4a3a 0%, #5a2a1a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: proapart-curtain 12s ease-in-out infinite alternate; }
.scn-prostitute-apartment .candle { position:absolute; bottom:40%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #c0a080, #a08060); border-radius:2px; transform:translateX(-50%); }
.scn-prostitute-apartment .candle::after { content:''; position:absolute; top:-8px; left:50%; width:10px; height:12px; background: radial-gradient(circle, #ffd080 0%, #ffa040 60%, transparent); border-radius:50%; transform:translateX(-50%); animation: proapart-flame 0.8s ease-in-out infinite alternate; }
.scn-prostitute-apartment .woman-silhouette { position:absolute; bottom:20%; left:48%; width:30px; height:50px; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: proapart-woman 4s ease-in-out infinite; }
.scn-prostitute-apartment .table  { position:absolute; bottom:20%; left:42%; width:80px; height:15px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
@keyframes proapart-curtain { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-3px) scaleX(1.02) } 100% { transform: translateX(2px) scaleX(.98) } }
@keyframes proapart-flame    { 0% { transform: translateX(-50%) scale(.9) rotate(-3deg); opacity:.8 } 50% { transform: translateX(-50%) scale(1.1) rotate(2deg); opacity:1 } 100% { transform: translateX(-50%) scale(.95) rotate(-1deg); opacity:.9 } }
@keyframes proapart-woman    { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }

.scn-prostitute-confession { background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 50%, #2a0a0a 100%), radial-gradient(ellipse at 40% 30%, #1a1a2a 0%, transparent 70%); }
.scn-prostitute-confession .darkness { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, #2a1a1a 0%, #0a0a0a 100%); }
.scn-prostitute-confession .doorway-light { position:absolute; top:10%; left:15%; width:80px; height:120px; background: linear-gradient(180deg, rgba(200,180,150,.6) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: proconf-light 8s ease-in-out infinite alternate; }
.scn-prostitute-confession .woman-back { position:absolute; bottom:20%; left:30%; width:50px; height:70px; background: linear-gradient(180deg, #2a1a1a, #0a0a0a); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: proconf-woman 6s ease-in-out infinite; }
.scn-prostitute-confession .janitor-shadow { position:absolute; bottom:20%; left:60%; width:30px; height:80px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: proconf-janitor 10s ease-in-out infinite; }
.scn-prostitute-confession .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a1a, #0a0a0a); border-radius: 50% 50% 0 0 / 10% 10% 0 0; }
.scn-prostitute-confession .chair { position:absolute; bottom:20%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #3a2a1a, #1a0a0a); border-radius: 10% 10% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
@keyframes proconf-light   { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(1.05) } 100% { opacity:.5; transform: scaleX(.95) } }
@keyframes proconf-woman   { 0% { transform: rotate(0deg) } 25% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes proconf-janitor { 0% { transform: scaleY(1) skewX(0deg); opacity:.6 } 33% { transform: scaleY(1.2) skewX(5deg); opacity:.8 } 66% { transform: scaleY(.9) skewX(-3deg); opacity:.5 } 100% { transform: scaleY(1) skewX(0deg); opacity:.6 } }

.scn-prostitute-truth { background: linear-gradient(180deg, #1a0a0a 0%, #2a0a1a 30%, #1a0a0a 100%), radial-gradient(ellipse at 50% 30%, #4a1a2a 0%, transparent 80%); }
.scn-prostitute-truth .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #2a1a2a 0%, #0a0a0a 100%); }
.scn-prostitute-truth .table-top { position:absolute; bottom:10%; left:30%; width:160px; height:20px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 20% 20% 0 0; box-shadow: 0 -2px 10px rgba(0,0,0,.5); }
.scn-prostitute-truth .crystal-ball { position:absolute; bottom:25%; left:45%; width:40px; height:40px; background: radial-gradient(circle, #b0a0d0 0%, #7050a0 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 6px rgba(112,80,160,.6); animation: protruth-ball 4s ease-in-out infinite alternate; }
.scn-prostitute-truth .candle { position:absolute; bottom:20%; left:35%; width:6px; height:25px; background: linear-gradient(180deg, #c0a080, #a08060); border-radius:2px; }
.scn-prostitute-truth .candle::after { content:''; position:absolute; top:-6px; left:50%; width:8px; height:10px; background: radial-gradient(circle, #ffd080 0%, #ff8040 70%); border-radius:50%; transform:translateX(-50%); animation: protruth-flame 0.6s ease-in-out infinite alternate; }
.scn-prostitute-truth .woman-hands { position:absolute; bottom:18%; left:42%; width:30px; height:15px; background: linear-gradient(180deg, #8a7a6a, #6a5a4a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center; animation: protruth-hands 7s ease-in-out infinite; }
.scn-prostitute-truth .sorcerer-hand { position:absolute; bottom:20%; left:55%; width:20px; height:25px; background: linear-gradient(180deg, #7a6a5a, #5a4a3a); border-radius: 50% 40% 40% 40% / 60% 40% 40% 50%; transform: rotate(20deg); transform-origin: bottom left; animation: protruth-sorcerer 9s ease-in-out infinite; }
.scn-prostitute-truth .cards { position:absolute; bottom:18%; left:50%; width:15px; height:20px; background: linear-gradient(180deg, #a09080, #807060); border-radius:2px; box-shadow: 2px 2px 4px rgba(0,0,0,.5); transform: rotate(-10deg); animation: protruth-cards 11s ease-in-out infinite; }
@keyframes protruth-ball     { 0% { transform: scale(.95); box-shadow: 0 0 20px 4px rgba(112,80,160,.5) } 50% { transform: scale(1.05); box-shadow: 0 0 40px 10px rgba(112,80,160,.8) } 100% { transform: scale(1); box-shadow: 0 0 30px 6px rgba(112,80,160,.6) } }
@keyframes protruth-flame    { 0% { transform: translateX(-50%) scale(.9) rotate(-5deg); opacity:.7 } 50% { transform: translateX(-50%) scale(1.2) rotate(3deg); opacity:1 } 100% { transform: translateX(-50%) scale(1) rotate(-2deg); opacity:.8 } }
@keyframes protruth-hands    { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-2px) rotate(5deg) } 66% { transform: translateY(1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes protruth-sorcerer { 0% { transform: rotate(15deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(15deg) } }
@keyframes protruth-cards    { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-5px) } 100% { transform: rotate(-10deg) translateY(0) } }

/* droll-woman-cat-aftermath – dark dim interior, figure and cat */
.scn-droll-woman-cat-aftermath {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e2a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 60%);
}
.scn-droll-woman-cat-aftermath .room-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
}
.scn-droll-woman-cat-aftermath .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1e1a18 0%, #0f0c0a 100%);
  border-radius: 8% 8% 0 0;
}
.scn-droll-woman-cat-aftermath .bed {
  position: absolute; bottom: 25%; left: 10%; width: 35%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1610 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-droll-woman-cat-aftermath .figure-side {
  position: absolute; bottom: 27%; left: 30%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #2e2e3e 0%, #1a1a2a 100%);
  border-radius: 30% 50% 40% 40% / 40% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-figure 6s ease-in-out infinite alternate;
}
.scn-droll-woman-cat-aftermath .cat-crouched {
  position: absolute; bottom: 20%; left: 55%; width: 12%; height: 15%;
  background: radial-gradient(ellipse, #3a2a2a 0%, #1e1414 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: ca-cat 4s ease-in-out infinite alternate;
}
.scn-droll-woman-cat-aftermath .candle-glow {
  position: absolute; bottom: 30%; left: 45%; width: 6%; height: 8%;
  background: radial-gradient(circle, #d4a060 0%, #b07030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #b07030, 0 0 60px 30px rgba(176,112,48,0.3);
  animation: ca-candle 3s ease-in-out infinite alternate;
}
.scn-droll-woman-cat-aftermath .shadow-bar {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 2%;
  background: rgba(0,0,0,0.5);
  transform: skewX(-10deg);
  filter: blur(3px);
  animation: ca-shadow 8s ease-in-out infinite;
}
.scn-droll-woman-cat-aftermath .dust-mote {
  position: absolute; top: 15%; left: 30%; width: 2%; height: 2%;
  background: rgba(200,180,160,0.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: ca-dust 12s linear infinite;
}
@keyframes ca-figure {
  0% { transform: translateY(0) rotate(-2deg); opacity: 0.9; }
  50% { transform: translateY(-4px) rotate(1deg); opacity: 1; }
  100% { transform: translateY(0) rotate(-1deg); opacity: 0.85; }
}
@keyframes ca-cat {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.02); }
  100% { transform: rotate(-12deg) scale(0.98); }
}
@keyframes ca-candle {
  0% { box-shadow: 0 0 20px 10px #b07030, 0 0 40px 20px rgba(176,112,48,0.2); }
  50% { box-shadow: 0 0 35px 18px #d4a060, 0 0 70px 35px rgba(212,160,96,0.4); }
  100% { box-shadow: 0 0 25px 12px #b07030, 0 0 50px 25px rgba(176,112,48,0.3); }
}
@keyframes ca-shadow {
  0% { opacity: 0.6; transform: skewX(-10deg) scaleY(1); }
  50% { opacity: 0.8; transform: skewX(-12deg) scaleY(1.1); }
  100% { opacity: 0.5; transform: skewX(-8deg) scaleY(0.95); }
}
@keyframes ca-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  10% { opacity: 0.6; }
  90% { opacity: 0.4; }
  100% { transform: translate(60px, -40px) scale(0.5); opacity: 0; }
}

/* droll-woman-misti-gone – tense bright interior, woman standing, empty chair */
.scn-droll-woman-misti-gone {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 40%, #d0b890 100%),
    radial-gradient(ellipse at 60% 50%, #fff4e0 0%, transparent 70%);
}
.scn-droll-woman-misti-gone .wall-bright {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fff0d8 0%, #ecd4b0 100%);
}
.scn-droll-woman-misti-gone .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  background-size: 8% 8%;
  filter: blur(0.5px);
  border-radius: 4% 4% 0 0;
}
.scn-droll-woman-misti-gone .window-light {
  position: absolute; top: 10%; left: 15%; width: 30%; height: 50%;
  background: linear-gradient(135deg, #fff8ee 0%, #fff0d0 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 0 40px 20px rgba(255,240,200,0.3);
  animation: mg-window 5s ease-in-out infinite alternate;
}
.scn-droll-woman-misti-gone .woman-stand {
  position: absolute; bottom: 20%; left: 40%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 40% 35% 35% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mg-woman 3s ease-in-out infinite alternate;
}
.scn-droll-woman-misti-gone .chair-empty {
  position: absolute; bottom: 15%; left: 25%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #8a7050 0%, #604830 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 4px 4px 8px rgba(0,0,0,0.2);
  transform: rotate(2deg);
  animation: mg-chair 6s ease-in-out infinite;
}
.scn-droll-woman-misti-gone .cat-bowl {
  position: absolute; bottom: 5%; left: 55%; width: 12%; height: 8%;
  background: radial-gradient(ellipse, #c8b090 0%, #a88460 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: mg-bowl 4s ease-in-out infinite alternate;
}
.scn-droll-woman-misti-gone .door-open {
  position: absolute; top: 15%; right: 10%; width: 20%; height: 70%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 0 4% 4% 0;
  transform: skewY(2deg);
  box-shadow: -6px 0 12px rgba(0,0,0,0.3);
  animation: mg-door 7s ease-in-out infinite;
}
@keyframes mg-window {
  0% { opacity: 0.8; box-shadow: 0 0 30px 15px rgba(255,240,200,0.2); }
  50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,240,200,0.5); }
  100% { opacity: 0.85; box-shadow: 0 0 35px 18px rgba(255,240,200,0.3); }
}
@keyframes mg-woman {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg) scale(1.01); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes mg-chair {
  0% { transform: rotate(2deg) scale(1); }
  50% { transform: rotate(0deg) scale(0.98); }
  100% { transform: rotate(3deg) scale(1.02); }
}
@keyframes mg-bowl {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes mg-door {
  0% { transform: skewY(2deg) scaleX(1); }
  50% { transform: skewY(0deg) scaleX(1.02); }
  100% { transform: skewY(4deg) scaleX(0.98); }
}

/* madhouse-reflection – bright interior calm, figure in chair, dream bubbles */
.scn-madhouse-reflection {
  background:
    linear-gradient(180deg, #e8f0f0 0%, #c8d8e0 40%, #a8bcc8 100%),
    radial-gradient(ellipse at 40% 30%, #f0f8ff 0%, transparent 70%);
}
.scn-madhouse-reflection .asylum-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d0e0e8 0%, #b0c8d4 100%);
}
.scn-madhouse-reflection .asylum-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a0b8c0 0%, #8098a0 100%);
  border-radius: 6% 6% 0 0;
}
.scn-madhouse-reflection .chair-shaped {
  position: absolute; bottom: 18%; left: 25%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #b0a090 0%, #887868 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 4px 4px 10px rgba(0,0,0,0.15);
  transform: rotate(1deg);
}
.scn-madhouse-reflection .figure-sit {
  position: absolute; bottom: 22%; left: 30%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #7a8a8a 0%, #4a5a5a 100%);
  border-radius: 40% 30% 35% 35% / 55% 45% 40% 40%;
  transform-origin: bottom center;
  animation: mr-sit 8s ease-in-out infinite alternate;
}
.scn-madhouse-reflection .mirror-oval {
  position: absolute; bottom: 35%; left: 33%; width: 8%; height: 12%;
  background: linear-gradient(135deg, #d4e4f0 0%, #b0c8d8 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(255,255,255,0.5);
  animation: mr-mirror 4s ease-in-out infinite alternate;
}
.scn-madhouse-reflection .dream-bubble {
  position: absolute;
  background: radial-gradient(circle, rgba(200,220,240,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mr-bubble 15s linear infinite;
}
.scn-madhouse-reflection .bubble1 {
  width: 18%; height: 18%; top: 10%; left: 10%;
  animation-delay: 0s;
}
.scn-madhouse-reflection .bubble2 {
  width: 12%; height: 12%; top: 25%; left: 60%;
  animation-delay: -5s;
}
.scn-madhouse-reflection .veil-draped {
  position: absolute; bottom: 10%; left: 50%; width: 20%; height: 10%;
  background: linear-gradient(180deg, rgba(200,200,220,0.7) 0%, rgba(160,160,180,0.4) 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  filter: blur(2px);
  transform: rotate(15deg);
  animation: mr-veil 6s ease-in-out infinite alternate;
}
.scn-madhouse-reflection .window-soft {
  position: absolute; top: 5%; right: 10%; width: 20%; height: 40%;
  background: linear-gradient(135deg, #f0f8ff 0%, #d0e0f0 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 0 30px 10px rgba(200,220,255,0.2);
  animation: mr-window 7s ease-in-out infinite alternate;
}
@keyframes mr-sit {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mr-mirror {
  0% { transform: translateX(0) rotate(-3deg); box-shadow: 0 0 10px rgba(255,255,255,0.3); }
  50% { transform: translateX(2px) rotate(2deg); box-shadow: 0 0 20px rgba(255,255,255,0.6); }
  100% { transform: translateX(0) rotate(-1deg); box-shadow: 0 0 12px rgba(255,255,255,0.4); }
}
@keyframes mr-bubble {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  10% { opacity: 0.6; }
  90% { opacity: 0.5; }
  100% { transform: translateY(-60px) scale(1.3); opacity: 0; }
}
@keyframes mr-veil {
  0% { transform: rotate(15deg) scaleY(1); opacity: 0.7; }
  50% { transform: rotate(12deg) scaleY(0.95); opacity: 0.9; }
  100% { transform: rotate(18deg) scaleY(1.05); opacity: 0.6; }
}
@keyframes mr-window {
  0% { opacity: 0.8; box-shadow: 0 0 20px 8px rgba(200,220,255,0.15); }
  50% { opacity: 1; box-shadow: 0 0 40px 16px rgba(200,220,255,0.3); }
  100% { opacity: 0.85; box-shadow: 0 0 25px 10px rgba(200,220,255,0.2); }
}

/* madhouse-visit – bright interior calm, woman with mirror and veil */
.scn-madhouse-visit {
  background:
    linear-gradient(180deg, #f0efe8 0%, #d8d0c8 40%, #c0b8b0 100%),
    radial-gradient(ellipse at 50% 40%, #fff8f0 0%, transparent 70%);
}
.scn-madhouse-visit .cell-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e0ddd5 0%, #c8c0b8 100%);
}
.scn-madhouse-visit .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #b8a8a0 0%, #9a8a80 100%);
  border-radius: 8% 8% 0 0;
}
.scn-madhouse-visit .armchair-large {
  position: absolute; bottom: 15%; left: 25%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.15);
  transform: rotate(1deg);
}
.scn-madhouse-visit .woman-mirror {
  position: absolute; bottom: 20%; left: 30%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #7a6a6a 0%, #4a3a3a 100%);
  border-radius: 30% 40% 35% 35% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mv-woman 6s ease-in-out infinite alternate;
}
.scn-madhouse-visit .hand-mirror {
  position: absolute; bottom: 40%; left: 32%; width: 6%; height: 10%;
  background: linear-gradient(135deg, #d0c8c0 0%, #b0a098 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 8px rgba(0,0,0,0.1);
  transform: rotate(-15deg);
  animation: mv-mirror 4s ease-in-out infinite alternate;
}
.scn-madhouse-visit .veil-lifted {
  position: absolute; bottom: 10%; left: 50%; width: 18%; height: 12%;
  background: linear-gradient(180deg, rgba(200,180,170,0.6) 0%, rgba(160,140,130,0.3) 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  filter: blur(2px);
  transform: rotate(20deg);
  animation: mv-veil 5s ease-in-out infinite alternate;
}
.scn-madhouse-visit .door-guide {
  position: absolute; top: 10%; right: 15%; width: 15%; height: 70%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 0 6% 6% 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.2);
  transform: skewY(1deg);
  animation: mv-door 8s ease-in-out infinite;
}
@keyframes mv-woman {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg) scale(1.01); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mv-mirror {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-10deg) translateX(2px); }
  100% { transform: rotate(-18deg) translateX(0); }
}
@keyframes mv-veil {
  0% { transform: rotate(20deg) scaleY(1); opacity: 0.6; }
  50% { transform: rotate(15deg) scaleY(0.9); opacity: 0.8; }
  100% { transform: rotate(25deg) scaleY(1.1); opacity: 0.5; }
}
@keyframes mv-door {
  0% { transform: skewY(1deg) scaleX(1); }
  50% { transform: skewY(0deg) scaleX(1.02); }
  100% { transform: skewY(2deg) scaleX(0.98); }
}

/* 1. boitelle-courtship – warm interior, courting */
.scn-boitelle-courtship {
  background: linear-gradient(180deg, #fff8e0 0%, #f0d09a 40%, #d4a76a 100%),
              radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%);
}
.scn-boitelle-courtship .room-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f5e6c8 0%, #dcc4a0 100%);
}
.scn-boitelle-courtship .window {
  position: absolute; top: 8%; left: 55%; width: 28%; height: 40%;
  background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 80%);
  border: 6px solid #b89a6a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,0.3);
  animation: bc-window 12s ease-in-out infinite alternate;
}
.scn-boitelle-courtship .curtain {
  position: absolute; top: 8%; left: 55%; width: 30%; height: 42%;
  background: linear-gradient(90deg, rgba(180,120,80,0.6) 0%, transparent 30%, transparent 70%, rgba(180,120,80,0.4) 100%);
  border-radius: 0 0 10px 10px; transform-origin: top; filter: blur(1px);
  animation: bc-curtain 8s ease-in-out infinite alternate;
}
.scn-boitelle-courtship .table {
  position: absolute; bottom: 14%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bc-table 6s ease-in-out infinite;
}
.scn-boitelle-courtship .lantern {
  position: absolute; bottom: 20%; left: 42%; width: 5%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 60%, #804020 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 40px 12px #e8a040, 0 0 80px 20px rgba(232,160,64,0.3);
  animation: bc-lantern 3s ease-in-out infinite alternate;
}
.scn-boitelle-courtship .figure-man {
  position: absolute; bottom: 14%; left: 35%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: bc-man 4s ease-in-out infinite;
}
.scn-boitelle-courtship .figure-woman {
  position: absolute; bottom: 14%; left: 52%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: bc-woman 4s ease-in-out infinite 0.6s;
}
.scn-boitelle-courtship .oyster-shell {
  position: absolute; bottom: 14%; left: 46%; width: 3%; height: 2%;
  background: radial-gradient(ellipse, #d0b080 0%, #a08050 100%);
  border-radius: 50% 50% 40% 40%; transform: rotate(-15deg);
  animation: bc-shell 10s ease-in-out infinite;
}
@keyframes bc-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes bc-curtain { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes bc-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes bc-lantern { 0% { box-shadow: 0 0 30px 8px #e8a040; } 50% { box-shadow: 0 0 50px 16px #ffd080; } 100% { box-shadow: 0 0 35px 10px #e8a040; } }
@keyframes bc-man { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 75% { transform: rotate(-3deg); } }
@keyframes bc-woman { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-2deg); } 75% { transform: rotate(2deg); } }
@keyframes bc-shell { 0%,100% { opacity:0.6; transform: rotate(-15deg) scale(1); } 50% { opacity:1; transform: rotate(5deg) scale(1.1); } }

/* 2. boitelle-going-home – calm family dinner */
.scn-boitelle-going-home {
  background: linear-gradient(180deg, #f4e8d0 0%, #d4b88a 40%, #b8925a 100%),
              radial-gradient(ellipse at 70% 80%, #fff4d0 0%, transparent 70%);
}
.scn-boitelle-going-home .room-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8d4b8 0%, #d0b898 100%);
}
.scn-boitelle-going-home .fireplace {
  position: absolute; bottom: 10%; left: 10%; width: 22%; height: 50%;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a5a3a 50%, #6a4a2a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
}
.scn-boitelle-going-home .fireplace::after {
  content:''; position:absolute; bottom:0; left:15%; width:70%; height:20%;
  background: radial-gradient(ellipse, #ff8c40 0%, #cc4400 60%, #6a2a00 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px #ff6a20;
  animation: gh-fire 2s ease-in-out infinite alternate;
}
.scn-boitelle-going-home .table {
  position: absolute; bottom: 14%; left: 35%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-boitelle-going-home .chair-left {
  position: absolute; bottom: 14%; left: 33%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 0 0; animation: gh-chair 8s ease-in-out infinite;
}
.scn-boitelle-going-home .chair-right {
  position: absolute; bottom: 14%; right: 28%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 0 0; animation: gh-chair 8s ease-in-out infinite 4s;
}
.scn-boitelle-going-home .figure-parent {
  position: absolute; bottom: 14%; left: 41%; width: 4%; height: 16%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: gh-figure 10s ease-in-out infinite;
}
.scn-boitelle-going-home .figure-boitelle {
  position: absolute; bottom: 14%; left: 55%; width: 3.5%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: gh-figure 10s ease-in-out infinite 2s;
}
.scn-boitelle-going-home .clock {
  position: absolute; top: 10%; right: 20%; width: 10%; height: 14%;
  background: radial-gradient(circle, #e8d090 0%, #b09060 80%);
  border: 2px solid #7a5a3a; border-radius: 50%;
  box-shadow: 0 0 10px rgba(0,0,0,0.2); animation: gh-clock 20s steps(60) infinite;
}
@keyframes gh-fire { 0% { opacity:0.7; transform: scale(1); } 100% { opacity:1; transform: scale(1.05); } }
@keyframes gh-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes gh-figure { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } }
@keyframes gh-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* 3. boitelle-reveal-color – tense, harsh light */
.scn-boitelle-reveal-color {
  background: linear-gradient(180deg, #f0ece4 0%, #d4ccc4 40%, #b8b0a8 100%),
              radial-gradient(ellipse at 50% 30%, #f0ece4 0%, transparent 60%);
}
.scn-boitelle-reveal-color .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e0d8d0 0%, #c8c0b8 100%);
}
.scn-boitelle-reveal-color .lamp {
  position: absolute; top: 10%; left: 45%; width: 10%; height: 14%;
  background: radial-gradient(circle, #fff8d0 0%, #f0d0a0 40%, #c0a080 80%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 100px 30px #f0d0a0, 0 0 200px 50px rgba(240,208,160,0.3);
  animation: rc-lamp 0.8s ease-in-out infinite alternate;
}
.scn-boitelle-reveal-color .shadow-floor {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(135deg, #4a4040 0%, #2a2020 100%);
  clip-path: polygon(20% 0, 80% 0, 100% 100%, 0 100%);
  opacity: 0.6; animation: rc-shadow 1.2s ease-in-out infinite alternate;
}
.scn-boitelle-reveal-color .figure-boitelle {
  position: absolute; bottom: 10%; left: 40%; width: 5%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: rc-figure 0.6s ease-in-out infinite alternate;
}
.scn-boitelle-reveal-color .figure-mother {
  position: absolute; bottom: 10%; left: 48%; width: 4%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1); transform-origin: bottom center;
  animation: rc-figure 0.9s ease-in-out infinite alternate 0.3s;
}
.scn-boitelle-reveal-color .figure-father {
  position: absolute; bottom: 10%; left: 56%; width: 4.5%; height: 26%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: rc-figure 0.7s ease-in-out infinite alternate 0.15s;
}
.scn-boitelle-reveal-color .table {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 4%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: rc-table 1s ease-in-out infinite alternate;
}
@keyframes rc-lamp { 0% { box-shadow: 0 0 80px 20px #f0d0a0, 0 0 160px 40px rgba(240,208,160,0.2); } 100% { box-shadow: 0 0 120px 30px #f0d0a0, 0 0 240px 60px rgba(240,208,160,0.3); } }
@keyframes rc-shadow { 0% { opacity:0.5; transform: scaleX(1); } 100% { opacity:0.7; transform: scaleX(1.02); } }
@keyframes rc-figure { 0% { transform: rotate(-1deg) translateX(0); } 50% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes rc-table { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.005); } }

/* 4. boitelle-parents-weigh – tense, weighing decision */
.scn-boitelle-parents-weigh {
  background: linear-gradient(180deg, #d4c8b8 0%, #ac9888 40%, #847064 100%),
              radial-gradient(ellipse at 50% 60%, #c8b8a8 0%, transparent 70%);
}
.scn-boitelle-parents-weigh .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%);
}
.scn-boitelle-parents-weigh .table {
  position: absolute; bottom: 12%; left: 25%; width: 50%; height: 5%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3010 100%);
  border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-boitelle-parents-weigh .scale {
  position: absolute; bottom: 12%; left: 40%; width: 20%; height: 20%;
  background: transparent;
  border-top: 3px solid #6a4a2a; border-left: 3px solid #6a4a2a; border-right: 3px solid #6a4a2a;
  border-radius: 50% 50% 0 0; display: flex; justify-content: center; align-items: flex-start;
  transform-origin: bottom center; animation: pw-scale 8s ease-in-out infinite;
}
.scn-boitelle-parents-weigh .scale::before {
  content:''; position:absolute; bottom:0; width:4px; height:16px;
  background: #6a4a2a; border-radius: 2px;
}
.scn-boitelle-parents-weigh .scale::after {
  content:''; position:absolute; bottom:-4px; left:-10px; width:20px; height:4px;
  background: #6a4a2a; border-radius: 2px;
  animation: pw-beam 8s ease-in-out infinite;
}
.scn-boitelle-parents-weigh .figure-father {
  position: absolute; bottom: 12%; left: 30%; width: 4%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pw-father 12s ease-in-out infinite;
}
.scn-boitelle-parents-weigh .figure-mother {
  position: absolute; bottom: 12%; left: 55%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pw-mother 12s ease-in-out infinite 3s;
}
.scn-boitelle-parents-weigh .figure-boitelle {
  position: absolute; bottom: 12%; left: 42%; width: 3%; height: 24%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pw-boitelle 10s ease-in-out infinite;
}
.scn-boitelle-parents-weigh .window {
  position: absolute; top: 12%; right: 12%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #a8b8c0 0%, #8098a0 100%);
  border: 4px solid #6a5a4a; border-radius: 4px; opacity: 0.6;
  animation: pw-window 20s ease-in-out infinite alternate;
}
@keyframes pw-scale { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 75% { transform: rotate(-3deg); } }
@keyframes pw-beam { 0%,100% { left:-10px; } 25% { left:-5px; } 75% { left:-15px; } }
@keyframes pw-father { 0%,100% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(2deg) scaleY(1.01); } 75% { transform: rotate(-2deg) scaleY(0.99); } }
@keyframes pw-mother { 0%,100% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(-2deg) scaleY(0.99); } 75% { transform: rotate(2deg) scaleY(1.01); } }
@keyframes pw-boitelle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pw-window { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-old-judas-hut { background: linear-gradient(180deg, #2a1a0e 0%, #1a0a04 60%, #0d0502 100%), radial-gradient(ellipse at 30% 60%, #4a2a14 0%, transparent 80%); }
.scn-old-judas-hut .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: inset 0 0 60px #0a0500; }
.scn-old-judas-hut .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-old-judas-hut .door { position:absolute; bottom:20%; left:30%; width:25%; height:60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 30px #0a0500; animation: ojh-door 8s ease-in-out infinite; }
.scn-old-judas-hut .leaves { position:absolute; bottom:20%; left:55%; width:28%; height:15%; background: radial-gradient(ellipse at 50% 100%, #4a5a3a 0%, #2a3a1a 70%, transparent 100%); border-radius: 60% 40% 0 0; animation: ojh-leaves 6s ease-in-out infinite alternate; }
.scn-old-judas-hut .figure-woman { position:absolute; bottom:20%; left:48%; width:12%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ojh-woman 4s ease-in-out infinite; }
.scn-old-judas-hut .figure-man { position:absolute; bottom:20%; left:60%; width:14%; height:48%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: ojh-man 6s ease-in-out infinite; }
.scn-old-judas-hut .bread { position:absolute; bottom:18%; left:45%; width:6%; height:3%; background: radial-gradient(ellipse, #c8a070 0%, #a08050 100%); border-radius: 50%; box-shadow: 0 0 8px rgba(200,160,112,0.5); animation: ojh-bread 7s ease-in-out infinite; }
.scn-old-judas-hut .candle { position:absolute; bottom:40%; left:20%; width:3%; height:15%; background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px #ffd080, 0 0 60px rgba(255,208,128,0.3); animation: ojh-candle 3s ease-in-out infinite alternate; }
@keyframes ojh-door { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } }
@keyframes ojh-leaves { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ojh-woman { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2%) rotate(0deg); } }
@keyframes ojh-man { 0%,100% { transform: translateX(0) rotate(0deg) scale(1); } 33% { transform: translateX(3%) rotate(2deg) scale(1.02); } 66% { transform: translateX(-3%) rotate(-2deg) scale(0.98); } }
@keyframes ojh-bread { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes ojh-candle { 0% { box-shadow: 0 0 15px #ffd080, 0 0 50px rgba(255,208,128,0.2); } 50% { box-shadow: 0 0 25px #ffd080, 0 0 80px rgba(255,208,128,0.4); } 100% { box-shadow: 0 0 18px #ffd080, 0 0 60px rgba(255,208,128,0.3); } }

.scn-old-judas-suspicion { background: linear-gradient(180deg, #f0e8d0 0%, #c8b898 40%, #a09880 100%), radial-gradient(ellipse at 70% 30%, #ffe0b0 0%, transparent 70%); }
.scn-old-judas-suspicion .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b8d8f0 0%, #d0e0f0 100%); animation: ojs-sky 10s ease-in-out infinite alternate; }
.scn-old-judas-suspicion .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8a888 0%, #988068 100%); }
.scn-old-judas-suspicion .church { position:absolute; bottom:30%; left:15%; width:20%; height:50%; background: linear-gradient(180deg, #808080 0%, #606060 100%); border-radius: 5% 5% 0 0; box-shadow: -5px 0 15px rgba(0,0,0,0.3); animation: ojs-church 4s ease-in-out infinite; }
.scn-old-judas-suspicion .woman { position:absolute; bottom:30%; left:45%; width:10%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ojs-woman 3s ease-in-out infinite; }
.scn-old-judas-suspicion .child1 { position:absolute; bottom:30%; left:55%; width:6%; height:20%; background: #3a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ojs-child 3.5s ease-in-out infinite 1s; }
.scn-old-judas-suspicion .child2 { position:absolute; bottom:30%; left:60%; width:7%; height:22%; background: #4a3a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ojs-child 3.5s ease-in-out infinite 2s; }
.scn-old-judas-suspicion .shadow { position:absolute; bottom:30%; left:44%; width:12%; height:5%; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(3px); animation: ojs-shadow 4s ease-in-out infinite; }
@keyframes ojs-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ojs-church { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } }
@keyframes ojs-woman { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(4%) rotate(3deg); } 40% { transform: translateX(-2%) rotate(-2deg); } 60% { transform: translateX(5%) rotate(4deg); } 80% { transform: translateX(-1%) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ojs-child { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(5deg); } 60% { transform: translateY(0) rotate(-3deg); } }
@keyframes ojs-shadow { 0%,100% { transform: translateX(0) scaleX(1); opacity:0.6; } 50% { transform: translateX(2%) scaleX(1.1); opacity:0.8; } }

.scn-old-judas-pigs { background: linear-gradient(180deg, #78b8d8 0%, #a8d8e8 40%, #c0e0c0 100%), radial-gradient(ellipse at 80% 20%, #ffe8c0 0%, transparent 60%); }
.scn-old-judas-pigs .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #98c8e8 0%, #b8d8f0 100%); animation: ojp-sky 15s ease-in-out infinite alternate; }
.scn-old-judas-pigs .lake { position:absolute; bottom:20%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #68a0c0 0%, #407898 100%); border-radius: 30% 40% 0 0; animation: ojp-lake 6s ease-in-out infinite alternate; }
.scn-old-judas-pigs .grass { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #608040 0%, #406020 100%); }
.scn-old-judas-pigs .oak { position:absolute; bottom:20%; left:20%; width:25%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 30% 70% 20% 40% / 30% 60% 40% 50%; animation: ojp-oak 20s ease-in-out infinite; }
.scn-old-judas-pigs .man { position:absolute; bottom:18%; left:45%; width:10%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ojp-man 5s ease-in-out infinite; }
.scn-old-judas-pigs .pig1 { position:absolute; bottom:15%; left:55%; width:8%; height:6%; background: radial-gradient(ellipse at 40% 50%, #e0b0a0 0%, #c09080 80%); border-radius: 50%; animation: ojp-pig1 4s ease-in-out infinite; }
.scn-old-judas-pigs .pig2 { position:absolute; bottom:16%; left:62%; width:9%; height:7%; background: radial-gradient(ellipse at 60% 50%, #d0a090 0%, #b08070 80%); border-radius: 50%; animation: ojp-pig2 4s ease-in-out infinite 2s; }
@keyframes ojp-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ojp-lake { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ojp-oak { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.01); } }
@keyframes ojp-man { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3%) rotate(2deg); } }
@keyframes ojp-pig1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5%) rotate(10deg); } 50% { transform: translateX(-3%) rotate(-5deg); } 75% { transform: translateX(4%) rotate(8deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ojp-pig2 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4%) rotate(-8deg); } 50% { transform: translateX(5%) rotate(12deg); } 75% { transform: translateX(-2%) rotate(-6deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-old-judas-illness { background: linear-gradient(180deg, #1a1020 0%, #0d0810 40%, #050205 100%), radial-gradient(ellipse at 50% 60%, #301830 0%, transparent 70%); }
.scn-old-judas-illness .wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(90deg, #201820 0%, #100810 100%); box-shadow: inset 0 0 80px #050005; }
.scn-old-judas-illness .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #201820 0%, #100810 100%); }
.scn-old-judas-illness .bed { position:absolute; bottom:15%; left:25%; width:50%; height:40%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 0 40px #0d000d; animation: oji-bed 10s ease-in-out infinite; }
.scn-old-judas-illness .figure-ill { position:absolute; bottom:20%; left:35%; width:30%; height:30%; background: radial-gradient(ellipse at 50% 60%, #2a1a2a 0%, #1a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: oji-ill 2s ease-in-out infinite; }
.scn-old-judas-illness .figure-healer { position:absolute; bottom:18%; left:15%; width:12%; height:40%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: oji-healer 5s ease-in-out infinite; }
.scn-old-judas-illness .window-light { position:absolute; top:5%; right:8%; width:20%; height:25%; background: radial-gradient(ellipse, rgba(200,200,255,0.15) 0%, transparent 80%); box-shadow: 0 0 40px rgba(200,200,255,0.1); animation: oji-window 8s ease-in-out infinite alternate; }
.scn-old-judas-illness .lamp { position:absolute; top:35%; left:10%; width:4%; height:12%; background: linear-gradient(180deg, #d0a080 0%, #a08050 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 30px #ffc080, 0 0 80px rgba(255,192,128,0.2); animation: oji-lamp 2s ease-in-out infinite alternate; }
@keyframes oji-bed { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes oji-ill { 0% { transform: translateY(0) rotate(0deg) scale(1); } 25% { transform: translateY(2px) rotate(2deg) scale(1.02); } 50% { transform: translateY(-1px) rotate(-1deg) scale(0.98); } 75% { transform: translateY(3px) rotate(1deg) scale(1.01); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes oji-healer { 0%,100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5%) rotate(3deg); } 60% { transform: translateX(-3%) rotate(-2deg); } }
@keyframes oji-window { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes oji-lamp { 0% { box-shadow: 0 0 20px #ffc080, 0 0 60px rgba(255,192,128,0.15); } 50% { box-shadow: 0 0 40px #ffc080, 0 0 120px rgba(255,192,128,0.3); } 100% { box-shadow: 0 0 25px #ffc080, 0 0 80px rgba(255,192,128,0.2); } }

/* boitelle-cooking: warm, bright-interior kitchen */
.scn-boitelle-cooking {
  background: linear-gradient(180deg, #fff5e0 0%, #f5cba7 50%, #d4a373 100%), radial-gradient(ellipse at 50% 120%, #d4a373 0%, transparent 60%);
}
.scn-boitelle-cooking .fire {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #f17a2e 0%, #b85b20 40%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: bc-fire 3s ease-in-out infinite alternate;
}
.scn-boitelle-cooking .pot {
  position: absolute; bottom: 30%; left: 28%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 0 0 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: bc-pot 6s ease-in-out infinite;
}
.scn-boitelle-cooking .steam-1,
.scn-boitelle-cooking .steam-2 {
  position: absolute; bottom: 55%; left: 32%; width: 20px; height: 40px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: bc-steam 5s ease-in-out infinite;
}
.scn-boitelle-cooking .steam-2 { left: 28%; animation-delay: -2.5s; }
.scn-boitelle-cooking .figure-cook {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-cook 8s ease-in-out infinite;
}
.scn-boitelle-cooking .figure-old {
  position: absolute; bottom: 20%; right: 25%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-old 9s ease-in-out infinite;
}
.scn-boitelle-cooking .cabinet {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
}
.scn-boitelle-cooking .window {
  position: absolute; top: 5%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #ffffe0 0%, #fff8dc 100%);
  border-radius: 4px; box-shadow: inset 0 0 12px rgba(255,255,200,0.5);
  animation: bc-window 12s ease-in-out infinite alternate;
}
@keyframes bc-fire {
  0% { transform: scaleY(1) scaleX(0.9); opacity: 0.9; }
  50% { transform: scaleY(1.2) scaleX(1.1); opacity: 1; }
  100% { transform: scaleY(0.9) scaleX(0.8); opacity: 0.8; }
}
@keyframes bc-pot {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes bc-steam {
  0% { transform: translateY(0) scale(0.8); opacity: 0.5; }
  50% { transform: translateY(-20px) scale(1.2); opacity: 0.3; }
  100% { transform: translateY(-40px) scale(1.5); opacity: 0; }
}
@keyframes bc-cook {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes bc-old {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-1deg) scaleY(1.01); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes bc-window {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}

/* boitelle-separation: dark, dusk village green */
.scn-boitelle-separation {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2250 40%, #4a3a5e 70%, #8a6a4a 100%), radial-gradient(ellipse at 50% 100%, #8a6a4a 0%, transparent 60%);
}
.scn-boitelle-separation .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4a 60%, transparent 100%);
  animation: bs-sky 20s ease-in-out infinite alternate;
}
.scn-boitelle-separation .crowd {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 30px;
  background: radial-gradient(ellipse at 30% 50%, #2a1a2a 0%, transparent 70%), radial-gradient(ellipse at 60% 50%, #2a1a2a 0%, transparent 70%), radial-gradient(ellipse at 80% 50%, #2a1a2a 0%, transparent 70%);
  filter: blur(2px);
  animation: bs-crowd 6s ease-in-out infinite;
}
.scn-boitelle-separation .figure-antoine,
.scn-boitelle-separation .figure-sweetheart {
  position: absolute; bottom: 30%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
}
.scn-boitelle-separation .figure-antoine { left: 45%; animation: bs-walk 4s ease-in-out infinite; }
.scn-boitelle-separation .figure-sweetheart { left: 52%; animation: bs-walk 4s ease-in-out infinite reverse; }
.scn-boitelle-separation .tree {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: bs-tree 15s ease-in-out infinite;
}
.scn-boitelle-separation .lamp {
  position: absolute; bottom: 38%; left: 30%; width: 6px; height: 20px;
  background: #4a4a4a;
}
.scn-boitelle-separation .lamp::after {
  content: ''; position: absolute; top: -8px; left: -2px; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 60%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,200,100,0.6);
  animation: bs-lamp 3s ease-in-out infinite alternate;
}
.scn-boitelle-separation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 0 0 0;
  animation: bs-ground 12s ease-in-out infinite;
}
@keyframes bs-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes bs-crowd {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes bs-walk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  75% { transform: translateX(4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bs-tree {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes bs-lamp {
  0% { box-shadow: 0 0 20px 6px rgba(255,200,100,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 30px 10px rgba(255,200,100,0.7); opacity: 1; }
  100% { box-shadow: 0 0 20px 6px rgba(255,200,100,0.4); opacity: 0.85; }
}
@keyframes bs-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

/* boitelle-parting: dusk railway station */
.scn-boitelle-parting {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2250 30%, #5a3a4a 60%, #7a5a3a 100%), radial-gradient(ellipse at 50% 100%, #7a5a3a 0%, transparent 50%);
}
.scn-boitelle-parting .platform {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 2% 2% 0 0;
}
.scn-boitelle-parting .figure-antoine {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: bp-figure 6s ease-in-out infinite;
}
.scn-boitelle-parting .train {
  position: absolute; bottom: 20%; right: -15%; width: 120px; height: 50px;
  background: linear-gradient(90deg, #2a2a2a 0%, #1a1a1a 50%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: -4px 4px 12px rgba(0,0,0,0.5);
  animation: bp-train 20s linear infinite;
}
.scn-boitelle-parting .smoke-1,
.scn-boitelle-parting .smoke-2 {
  position: absolute; bottom: 30%; right: 20%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,200,200,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: bp-smoke 8s ease-out infinite;
}
.scn-boitelle-parting .smoke-2 { right: 30%; animation-delay: -4s; }
.scn-boitelle-parting .lamp {
  position: absolute; bottom: 30%; left: 20%; width: 8px; height: 24px;
  background: #4a4a4a;
}
.scn-boitelle-parting .lamp::after {
  content: ''; position: absolute; top: -10px; left: -4px; width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 60%);
  border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,200,100,0.5);
  animation: bp-lamp 4s ease-in-out infinite alternate;
}
.scn-boitelle-parting .tracks {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 4px;
  background: repeating-linear-gradient(90deg, #4a4a4a 0px, #4a4a4a 8px, transparent 8px, transparent 16px);
  animation: bp-tracks 10s linear infinite;
}
@keyframes bp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes bp-train {
  0% { transform: translateX(0); }
  100% { transform: translateX(-150vw); }
}
@keyframes bp-smoke {
  0% { transform: translateY(0) scale(0.5); opacity: 0.6; }
  50% { transform: translateY(-40px) scale(1.2); opacity: 0.3; }
  100% { transform: translateY(-80px) scale(1.8); opacity: 0; }
}
@keyframes bp-lamp {
  0% { box-shadow: 0 0 30px 8px rgba(255,200,100,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px rgba(255,200,100,0.6); opacity: 1; }
  100% { box-shadow: 0 0 30px 8px rgba(255,200,100,0.3); opacity: 0.85; }
}
@keyframes bp-tracks {
  0% { transform: translateX(0); }
  100% { transform: translateX(-16px); }
}

/* ring-introduction: calm, bright-interior chateau */
.scn-ring-introduction {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c9a6 50%, #c4a882 100%), radial-gradient(ellipse at 50% 100%, #c4a882 0%, transparent 60%);
}
.scn-ring-introduction .fireplace {
  position: absolute; bottom: 20%; left: 20%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
}
.scn-ring-introduction .fireplace::after {
  content: ''; position: absolute; bottom: 10%; left: 20%; width: 60%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #f17a2e 0%, #b85b20 50%, transparent 80%);
  border-radius: 50%;
  animation: ri-fire 3s ease-in-out infinite alternate;
}
.scn-ring-introduction .window {
  position: absolute; top: 5%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #c8d8e8 0%, #a0b8c8 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(200,200,200,0.3);
  overflow: hidden;
}
.scn-ring-introduction .window::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: repeating-linear-gradient(0deg, transparent, transparent 10px, rgba(255,255,255,0.3) 10px, rgba(255,255,255,0.3) 12px);
  animation: ri-rain 2s linear infinite;
}
.scn-ring-introduction .figure-1,
.scn-ring-introduction .figure-2 {
  position: absolute; bottom: 15%;
  width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ri-figure 12s ease-in-out infinite alternate;
}
.scn-ring-introduction .figure-1 { left: 35%; }
.scn-ring-introduction .figure-2 { left: 50%; animation-delay: -6s; }
.scn-ring-introduction .table {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-ring-introduction .lamp {
  position: absolute; bottom: 25%; left: 55%; width: 12px; height: 30px;
  background: #4a3a2a;
}
.scn-ring-introduction .lamp::after {
  content: ''; position: absolute; top: -12px; left: -6px; width: 24px; height: 24px;
  background: radial-gradient(circle, #fff0c0 0%, #e0b060 60%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,230,150,0.5);
  animation: ri-lamp 4s ease-in-out infinite alternate;
}
@keyframes ri-fire {
  0% { transform: scaleY(1) scaleX(0.9); opacity: 0.9; }
  50% { transform: scaleY(1.15) scaleX(1.05); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(0.85); opacity: 0.8; }
}
@keyframes ri-rain {
  0% { transform: translateY(0); }
  100% { transform: translateY(12px); }
}
@keyframes ri-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg) scaleY(1.01); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes ri-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(255,230,150,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 14px rgba(255,230,150,0.6); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(255,230,150,0.4); opacity: 0.85; }
}

.scn-mme-hermet-smallpox {
  background: linear-gradient(180deg, #2c1a1a 0%, #1a1018 40%, #2a1a2a 100%), radial-gradient(ellipse at 50% 40%, #4a2a1a 0%, transparent 70%);
}
.scn-mme-hermet-smallpox .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a2a 0%, #1a1218 60%, #0a0a0a 100%); opacity: 0.9;
}
.scn-mme-hermet-smallpox .bed {
  position: absolute; bottom: 8%; left: 10%; width: 50%; height: 45%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 6% 6% 20% 20% / 10% 10% 30% 30%; box-shadow: 0 6px 20px rgba(0,0,0,.7);
}
.scn-mme-hermet-smallpox .figure {
  position: absolute; bottom: 20%; left: 22%; width: 18%; height: 25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mh1-figure 4s ease-in-out infinite;
}
.scn-mme-hermet-smallpox .candle {
  position: absolute; bottom: 30%; right: 20%; width: 8px; height: 20px; background: linear-gradient(180deg, #ffcc80 0%, #e69050 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 8px #ffa050, 0 0 60px 20px rgba(255,160,80,.4); animation: mh1-candle 3s ease-in-out infinite alternate;
}
.scn-mme-hermet-smallpox .window {
  position: absolute; top: 12%; right: 15%; width: 25%; height: 30%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border: 3px solid #1a1a2a; border-radius: 4%; box-shadow: inset 0 0 30px #1a2a3a; animation: mh1-window 8s ease-in-out infinite;
}
.scn-mme-hermet-smallpox .shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%; background: linear-gradient(0deg, #0a0a0a 0%, transparent 100%); opacity: 0.7; animation: mh1-shadow 6s ease-in-out infinite alternate;
}
@keyframes mh1-figure { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes mh1-candle { 0% { opacity: 0.7; box-shadow: 0 0 20px 6px #ffa050, 0 0 40px 12px rgba(255,160,80,.3); } 50% { opacity: 1; box-shadow: 0 0 40px 14px #ffd080, 0 0 80px 28px rgba(255,208,128,.5); } 100% { opacity: 0.8; box-shadow: 0 0 25px 8px #ffa050, 0 0 50px 16px rgba(255,160,80,.35); } }
@keyframes mh1-window { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.9; transform: scaleX(1.02); } 100% { opacity: 0.6; transform: scaleX(1); } }
@keyframes mh1-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

.scn-mme-hermet-refusal {
  background: linear-gradient(180deg, #1a1018 0%, #2a1a22 40%, #1a121a 100%), radial-gradient(ellipse at 60% 70%, #4a2a1a 0%, transparent 60%);
}
.scn-mme-hermet-refusal .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 25%; background: linear-gradient(0deg, #1a121a 0%, #2a1a22 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-mme-hermet-refusal .brazier {
  position: absolute; bottom: 18%; left: 20%; width: 14%; height: 18%; background: radial-gradient(ellipse at 50% 30%, #c8553d 0%, #7a2a1a 50%, #1a0a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 40px 12px #c8553d, 0 0 80px 24px rgba(200,85,61,.4); animation: mh2-brazier 5s ease-in-out infinite alternate;
}
.scn-mme-hermet-refusal .smoke {
  position: absolute; bottom: 35%; left: 22%; width: 10%; height: 40%; background: linear-gradient(0deg, rgba(60,40,30,.5) 0%, transparent 100%); filter: blur(8px); border-radius: 40%; transform-origin: bottom; animation: mh2-smoke 12s ease-in-out infinite;
}
.scn-mme-hermet-refusal .figure {
  position: absolute; bottom: 5%; right: 15%; width: 15%; height: 35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: mh2-figure 6s ease-in-out infinite;
}
.scn-mme-hermet-refusal .shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%; background: linear-gradient(0deg, #0a0a0a 0%, transparent 100%); opacity: 0.6; animation: mh2-shadow 8s ease-in-out infinite alternate;
}
.scn-mme-hermet-refusal .door {
  position: absolute; top: 10%; left: 5%; width: 20%; height: 70%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1218 100%); border: 2px solid #2a1a1a; border-radius: 2%; box-shadow: inset 0 0 20px #0a0a0a; transform: skewY(-2deg);
}
@keyframes mh2-brazier { 0% { transform: scaleY(1); box-shadow: 0 0 30px 10px #c8553d, 0 0 60px 20px rgba(200,85,61,.3); } 50% { transform: scaleY(1.05); box-shadow: 0 0 50px 16px #e07050, 0 0 80px 28px rgba(224,112,80,.5); } 100% { transform: scaleY(1); box-shadow: 0 0 30px 10px #c8553d, 0 0 60px 20px rgba(200,85,61,.3); } }
@keyframes mh2-smoke { 0% { transform: translateY(0) scaleX(1) rotate(0deg); opacity: 0.3; } 50% { transform: translateY(-30px) scaleX(0.8) rotate(8deg); opacity: 0.6; } 100% { transform: translateY(0) scaleX(1) rotate(0deg); opacity: 0.3; } }
@keyframes mh2-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-6px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mh2-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-mme-hermet-final-refusal {
  background: linear-gradient(180deg, #101820 0%, #1a242a 40%, #0e141a 100%), radial-gradient(ellipse at 30% 50%, #3a2a3a 0%, transparent 60%);
}
.scn-mme-hermet-final-refusal .door-frame {
  position: absolute; top: 5%; left: 25%; width: 40%; height: 85%; background: linear-gradient(180deg, #2a1a22 0%, #1a1018 100%); border: 4px solid #1a1a2a; border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 0 40px #0a0a0a;
}
.scn-mme-hermet-final-refusal .mother-figure {
  position: absolute; bottom: 5%; left: 28%; width: 10%; height: 30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: bottom center; animation: mh3-mother 3s ease-in-out infinite;
}
.scn-mme-hermet-final-refusal .doctor-arm {
  position: absolute; bottom: 15%; right: 35%; width: 12%; height: 20%; background: linear-gradient(180deg, #2a1a22 0%, #1a1018 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; transform: rotate(-30deg); transform-origin: top right; animation: mh3-arm 2s ease-in-out infinite alternate;
}
.scn-mme-hermet-final-refusal .window-out {
  position: absolute; top: 15%; right: 10%; width: 25%; height: 30%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border: 3px solid #1a2a3a; border-radius: 4%; box-shadow: inset 0 0 30px #1a2a3a, 0 0 20px #3a4a5a; animation: mh3-window 8s ease-in-out infinite alternate;
}
.scn-mme-hermet-final-refusal .shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%; background: linear-gradient(0deg, #0a0a0a 0%, transparent 100%); opacity: 0.6;
}
.scn-mme-hermet-final-refusal .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 12%; background: linear-gradient(0deg, #1a1218 0%, #2a1a22 100%); border-radius: 50% 50% 0 0 / 10% 10% 0 0;
}
@keyframes mh3-mother { 0% { transform: translateX(0) rotate(5deg); } 50% { transform: translateX(8px) rotate(-3deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes mh3-arm { 0% { transform: rotate(-30deg) translateX(0); } 100% { transform: rotate(-20deg) translateX(10px); } }
@keyframes mh3-window { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }

.scn-suicide-seine-morning {
  background: linear-gradient(180deg, #8ba8c0 0%, #d4e2ed 30%, #f0e6d0 50%, #a8c8d0 80%, #5a7a8a 100%), radial-gradient(ellipse at 40% 20%, #f0e6d0 0%, transparent 70%);
}
.scn-suicide-seine-morning .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #7a9ab0 0%, #c0d4e0 40%, #f0e6d0 70%); animation: ss-sky 12s ease-in-out infinite alternate;
}
.scn-suicide-seine-morning .river {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 35%; background: linear-gradient(0deg, #3a5a6a 0%, #7a9ab0 40%, #a8c8d0 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; box-shadow: inset 0 10px 40px #2a4a5a; animation: ss-river 15s linear infinite;
}
.scn-suicide-seine-morning .sun-glow {
  position: absolute; top: 15%; left: 60%; width: 60px; height: 60px; background: radial-gradient(circle, #f0d090 0%, #d4a060 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 30px #f0d090, 0 0 160px 60px rgba(240,208,144,.4); animation: ss-sun 6s ease-in-out infinite alternate;
}
.scn-suicide-seine-morning .tree {
  position: absolute; bottom: 28%; left: 8%; width: 12%; height: 40%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 40% 60% 0 0 / 60% 80% 0 0; box-shadow: 0 0 20px #2a4a2a; animation: ss-tree 20s ease-in-out infinite alternate;
}
.scn-suicide-seine-morning .boat {
  position: absolute; bottom: 18%; left: 45%; width: 10%; height: 8%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; transform: rotate(-3deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ss-boat 8s ease-in-out infinite;
}
.scn-suicide-seine-morning .bridge {
  position: absolute; bottom: 30%; left: 25%; width: 30%; height: 8%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: ss-bridge 10s ease-in-out infinite alternate;
}
.scn-suicide-seine-morning .bird-a {
  position: absolute; top: 18%; left: 20%; width: 8px; height: 4px; background: #2a2a2a; border-radius: 50%; filter: blur(1px); animation: ss-bird 25s linear infinite;
}
.scn-suicide-seine-morning .bird-b {
  position: absolute; top: 22%; left: 70%; width: 6px; height: 3px; background: #2a2a2a; border-radius: 50%; filter: blur(1px); animation: ss-bird 30s linear infinite; animation-delay: -15s;
}
@keyframes ss-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ss-river { 0% { background-position: 0 0; } 100% { background-position: 100% 0; } }
@keyframes ss-sun { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.8; } }
@keyframes ss-tree { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes ss-boat { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes ss-bridge { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ss-bird { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }

.scn-chicot-terms { background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 30%, #d4b880 60%, #c4a468 100%), radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 60%); }
.scn-chicot-terms .sky-glow   { position:absolute; inset:0 0 55% 0; background: radial-gradient(ellipse at 60% 100%, #ffe8a0 0%, #f0d080 40%, transparent 70%); animation: chter-sky 14s ease-in-out infinite alternate; }
.scn-chicot-terms .sky-band   { position:absolute; top:18%; left:10%; width:80%; height:12%; background: linear-gradient(90deg, transparent, rgba(255,240,180,.3), transparent); border-radius:50%; filter:blur(8px); animation: chter-band 20s ease-in-out infinite; }
.scn-chicot-terms .field-far  { position:absolute; bottom:28%; left:0; right:0; height:28%; background: linear-gradient(180deg, #b8a060 0%, #9a8040 100%); border-radius:60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 6px 20px rgba(120,80,20,.3); animation: chter-field 22s ease-in-out infinite alternate; }
.scn-chicot-terms .field-near { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8a860 0%, #a88840 50%, #8a7028 100%); border-radius:80% 20% 0 0 / 30% 10% 0 0; box-shadow: inset 0 4px 16px rgba(100,60,10,.4); animation: chter-field 18s ease-in-out infinite alternate-reverse; }
.scn-chicot-terms .figure-chicot   { position:absolute; bottom:22%; left:38%; width:22px; height:58px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; box-shadow: -4px 0 8px rgba(0,0,0,.2); animation: chter-walk-a 6s ease-in-out infinite; }
.scn-chicot-terms .figure-magloire { position:absolute; bottom:22%; right:32%; width:28px; height:52px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin:bottom center; box-shadow: 2px 0 8px rgba(0,0,0,.15); animation: chter-walk-b 7s ease-in-out infinite 1s; }
.scn-chicot-terms .tree       { position:absolute; bottom:32%; left:72%; width:8px; height:44px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:4px; box-shadow: -12px 0 20px rgba(0,0,0,.2); animation: chter-tree 30s ease-in-out infinite alternate; }
.scn-chicot-terms .tree::after{ content:''; position:absolute; top:-30px; left:-20px; width:48px; height:40px; background: radial-gradient(ellipse, #6a8040 0%, #4a6020 60%, transparent 80%); border-radius:50%; animation: chter-foliage 35s ease-in-out infinite alternate; }
.scn-chicot-terms .dust       { position:absolute; bottom:30%; left:20%; width:8px; height:8px; background: radial-gradient(circle, #fff8e0 0%, transparent 70%); border-radius:50%; filter:blur(2px); animation: chter-dust 8s ease-in-out infinite; box-shadow: 40px -20px 0 2px rgba(255,248,224,.3), 80px 10px 0 1px rgba(255,248,224,.2); }
@keyframes chter-sky    { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes chter-band   { 0% { transform:translateX(-10%) scaleX(1); opacity:.4 } 50% { transform:translateX(5%) scaleX(1.1); opacity:.7 } 100% { transform:translateX(-10%) scaleX(1); opacity:.4 } }
@keyframes chter-field  { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-4px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes chter-walk-a { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(8px) rotate(1deg) } 50% { transform:translateX(16px) rotate(-1deg) } 75% { transform:translateX(8px) rotate(2deg) } 100% { transform:translateX(0) rotate(-2deg) } }
@keyframes chter-walk-b { 0% { transform:translateX(0) rotate(1deg) } 25% { transform:translateX(-6px) rotate(-2deg) } 50% { transform:translateX(-12px) rotate(1deg) } 75% { transform:translateX(-6px) rotate(-1deg) } 100% { transform:translateX(0) rotate(1deg) } }
@keyframes chter-tree   { 0% { transform:rotate(-1deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes chter-foliage{ 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-3px) scaleX(1.05) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes chter-dust   { 0% { transform:translate(0,0) scale(1); opacity:.5 } 50% { transform:translate(10px,-15px) scale(1.4); opacity:1 } 100% { transform:translate(20px,-5px) scale(.8); opacity:.3 } }

.scn-chicot-explanation { background: linear-gradient(180deg, #e8d4a8 0%, #d8c090 30%, #c8a870 60%, #b89860 100%), radial-gradient(ellipse at 50% 30%, #fff0c0 0%, transparent 70%); }
.scn-chicot-explanation .wall-warm   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f0d8b0 0%, #d8b880 100%); border-radius:0 0 20% 20% / 0 0 8% 8%; box-shadow: inset 0 -10px 30px rgba(160,120,60,.3); animation: chexp-wall 16s ease-in-out infinite alternate; }
.scn-chicot-explanation .floor-earth  { position:absolute; bottom:0; left:0; right:0; height:36%; background: linear-gradient(180deg, #a08050 0%, #806030 50%, #604020 100%); border-radius:10% 10% 0 0 / 4% 4% 0 0; animation: chexp-floor 20s ease-in-out infinite; }
.scn-chicot-explanation .figure-left  { position:absolute; bottom:24%; left:28%; width:20px; height:54px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; box-shadow: -2px 0 6px rgba(0,0,0,.3); animation: chexp-gesture 5s ease-in-out infinite; }
.scn-chicot-explanation .figure-right { position:absolute; bottom:24%; right:22%; width:24px; height:48px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin:bottom center; box-shadow: 2px 0 6px rgba(0,0,0,.2); animation: chexp-listen 6s ease-in-out infinite 1s; }
.scn-chicot-explanation .table-wood  { position:absolute; bottom:22%; left:35%; width:30%; height:14px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a1a 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: chexp-table 30s ease-in-out infinite alternate; }
.scn-chicot-explanation .jug-clay    { position:absolute; bottom:30%; left:58%; width:16px; height:20px; background: radial-gradient(ellipse at 40% 30%, #b88860 0%, #8a6040 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,.2); animation: chexp-jug 12s ease-in-out infinite; }
.scn-chicot-explanation .window-light{ position:absolute; top:8%; right:15%; width:40px; height:50px; background: radial-gradient(ellipse, #fff8e0 0%, #f0d880 60%, transparent 100%); border-radius:4px; box-shadow: 0 0 30px 8px rgba(240,216,128,.4), 0 0 60px 20px rgba(240,216,128,.15); animation: chexp-window 8s ease-in-out infinite alternate; }
.scn-chicot-explanation .dust-mot    { position:absolute; top:30%; left:40%; width:6px; height:6px; background: radial-gradient(circle, #fff8e0 0%, transparent 70%); border-radius:50%; filter:blur(1px); animation: chexp-dust 9s ease-in-out infinite; box-shadow: 30px -20px 0 1px rgba(255,248,224,.3), 60px 10px 0 2px rgba(255,248,224,.15); }
@keyframes chexp-wall   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes chexp-floor  { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes chexp-gesture{ 0% { transform:rotate(-3deg) translateX(0) } 25% { transform:rotate(2deg) translateX(4px) } 50% { transform:rotate(-2deg) translateX(8px) } 75% { transform:rotate(3deg) translateX(4px) } 100% { transform:rotate(-3deg) translateX(0) } }
@keyframes chexp-listen { 0% { transform:rotate(0) } 25% { transform:rotate(1deg) } 50% { transform:rotate(-1deg) } 75% { transform:rotate(2deg) } 100% { transform:rotate(0) } }
@keyframes chexp-table  { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } 100% { transform:scaleX(1) } }
@keyframes chexp-jug    { 0% { transform:rotate(-1deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes chexp-window { 0% { opacity:.7; box-shadow:0 0 20px 5px rgba(240,216,128,.3),0 0 40px 12px rgba(240,216,128,.1) } 50% { opacity:1; box-shadow:0 0 40px 12px rgba(240,216,128,.5),0 0 80px 25px rgba(240,216,128,.2) } 100% { opacity:.8; box-shadow:0 0 25px 6px rgba(240,216,128,.35),0 0 50px 15px rgba(240,216,128,.12) } }
@keyframes chexp-dust   { 0% { transform:translate(0,0) scale(1); opacity:.4 } 50% { transform:translate(12px,-18px) scale(1.5); opacity:.9 } 100% { transform:translate(24px,-6px) scale(.7); opacity:.2 } }

.scn-chicot-negotiation { background: linear-gradient(170deg, #c8a060 0%, #a88040 30%, #886030 60%, #604020 100%), radial-gradient(ellipse at 30% 60%, #e8c880 0%, transparent 60%); }
.scn-chicot-negotiation .bg-wash     { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,160,96,.3) 0%, rgba(60,40,20,.4) 100%); animation: chneg-shadow 4s ease-in-out infinite alternate; }
.scn-chicot-negotiation .table-long  { position:absolute; bottom:20%; left:10%; width:80%; height:14px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:4px; box-shadow: 0 6px 20px rgba(0,0,0,.5); animation: chneg-table 6s ease-in-out infinite; }
.scn-chicot-negotiation .figure-one  { position:absolute; bottom:18%; left:22%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; box-shadow: -2px 0 10px rgba(0,0,0,.4); animation: chneg-fidget 3.5s ease-in-out infinite; }
.scn-chicot-negotiation .figure-two  { position:absolute; bottom:18%; right:18%; width:26px; height:52px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin:bottom center; box-shadow: 2px 0 10px rgba(0,0,0,.35); animation: chneg-tense 3s ease-in-out infinite .8s; }
.scn-chicot-negotiation .chair-left  { position:absolute; bottom:16%; left:18%; width:30px; height:36px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: chneg-chair 7s ease-in-out infinite alternate; }
.scn-chicot-negotiation .chair-right { position:absolute; bottom:16%; right:14%; width:34px; height:38px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: chneg-chair 7s ease-in-out infinite alternate-reverse; }
.scn-chicot-negotiation .candle-wax  { position:absolute; bottom:32%; left:46%; width:6px; height:14px; background: linear-gradient(180deg, #e8d0a0 0%, #c8a060 100%); border-radius:50% 50% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 -8px 20px 6px rgba(240,200,80,.6), 0 -16px 40px 12px rgba(240,200,80,.25); animation: chneg-candle 2.5s ease-in-out infinite alternate; }
.scn-chicot-negotiation .shadow-sharp{ position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.35) 100%); animation: chneg-hard 4s ease-in-out infinite alternate; }
@keyframes chneg-shadow  { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes chneg-table   { 0% { transform:translateX(-2px) } 50% { transform:translateX(2px) } 100% { transform:translateX(-2px) } }
@keyframes chneg-fidget  { 0% { transform:rotate(-3deg) translateY(0) } 25% { transform:rotate(1deg) translateY(-3px) } 50% { transform:rotate(-2deg) translateY(0) } 75% { transform:rotate(2deg) translateY(-2px) } 100% { transform:rotate(-3deg) translateY(0) } }
@keyframes chneg-tense   { 0% { transform:rotate(0) translateX(0) } 25% { transform:rotate(-2deg) translateX(-3px) } 50% { transform:rotate(1deg) translateX(0) } 75% { transform:rotate(-1deg) translateX(-2px) } 100% { transform:rotate(0) translateX(0) } }
@keyframes chneg-chair   { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes chneg-candle  { 0% { transform:scaleY(1) scaleX(1); opacity:.8; box-shadow:0 -6px 15px 4px rgba(240,200,80,.5),0 -12px 30px 8px rgba(240,200,80,.2) } 50% { transform:scaleY(1.15) scaleX(.9); opacity:1; box-shadow:0 -10px 25px 8px rgba(240,200,80,.8),0 -20px 50px 18px rgba(240,200,80,.35) } 100% { transform:scaleY(.95) scaleX(1.05); opacity:.85; box-shadow:0 -7px 18px 5px rgba(240,200,80,.55),0 -14px 36px 10px rgba(240,200,80,.22) } }
@keyframes chneg-hard   { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-chicot-notary { background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 30%, #d0b898 60%, #c0a880 100%), radial-gradient(ellipse at 50% 20%, #fff8ee 0%, transparent 70%); }
.scn-chicot-notary .wall-pale    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f5eddc 0%, #e5d5bc 100%); box-shadow: inset 0 -8px 24px rgba(160,120,80,.15); animation: chnot-wall 20s ease-in-out infinite alternate; }
.scn-chicot-notary .floor-dark   { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a1a 100%); border-radius:6% 6% 0 0 / 2% 2% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.15); animation: chnot-floor 25s ease-in-out infinite; }
.scn-chicot-notary .desk-big     { position:absolute; bottom:18%; left:20%; width:60%; height:20px; background: linear-gradient(180deg, #7a5a2a 0%, #5a3a10 100%); border-radius:4px; box-shadow: 0 6px 20px rgba(0,0,0,.25); animation: chnot-desk 30s ease-in-out infinite alternate; }
.scn-chicot-notary .figure-notaire{ position:absolute; bottom:16%; right:22%; width:24px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; box-shadow: -2px 0 8px rgba(0,0,0,.2); animation: chnot-write 5s ease-in-out infinite; }
.scn-chicot-notary .figure-mag   { position:absolute; bottom:16%; left:28%; width:26px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 45% 45% / 55% 55% 45% 45%; transform-origin:bottom center; box-shadow: 2px 0 8px rgba(0,0,0,.15); animation: chnot-listen 6s ease-in-out infinite 1s; }
.scn-chicot-notary .paper-stack  { position:absolute; bottom:24%; left:34%; width:30px; height:4px; background: #f0e8d8; border-radius:2px; box-shadow: 0 3px 0 #e8d8c0, 0 6px 0 #e0d0b8, 0 9px 0 #d8c8a8; animation: chnot-papers 12s ease-in-out infinite; }
.scn-chicot-notary .inkwell      { position:absolute; bottom:24%; left:48%; width:10px; height:12px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: chnot-ink 14s ease-in-out infinite; }
.scn-chicot-notary .lamp-glow    { position:absolute; top:12%; left:40%; width:60px; height:50px; background: radial-gradient(ellipse, #fff8e0 0%, #f0e0b0 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(240,224,176,.3), 0 0 80px 30px rgba(240,224,176,.1); animation: chnot-lamp 8s ease-in-out infinite alternate; }
.scn-chicot-notary .chair-back   { position:absolute; bottom:14%; left:16%; width:36px; height:44px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.2); animation: chnot-chair 9s ease-in-out infinite alternate; }
@keyframes chnot-wall  { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.92 } }
@keyframes chnot-floor { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes chnot-desk  { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.01) } 100% { transform:scaleX(1) } }
@keyframes chnot-write { 0% { transform:rotate(-2deg) translateY(0) } 25% { transform:rotate(1deg) translateY(-2px) } 50% { transform:rotate(0) translateY(0) } 75% { transform:rotate(-1deg) translateY(-1px) } 100% { transform:rotate(-2deg) translateY(0) } }
@keyframes chnot-listen{ 0% { transform:rotate(0) } 25% { transform:rotate(1deg) } 50% { transform:rotate(-1deg) } 75% { transform:rotate(2deg) } 100% { transform:rotate(0) } }
@keyframes chnot-papers{ 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.05) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes chnot-ink   { 0% { transform:rotate(-1deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes chnot-lamp  { 0% { opacity:.75; box-shadow:0 0 30px 10px rgba(240,224,176,.25),0 0 60px 20px rgba(240,224,176,.08) } 50% { opacity:1; box-shadow:0 0 50px 20px rgba(240,224,176,.4),0 0 100px 40px rgba(240,224,176,.12) } 100% { opacity:.8; box-shadow:0 0 35px 12px rgba(240,224,176,.28),0 0 70px 25px rgba(240,224,176,.09) } }
@keyframes chnot-chair { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }

/* Scene 1: indian-prince-cremation (tag: ipc) */
.scn-indian-prince-cremation {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 50%, #2a1000 100%),
              radial-gradient(ellipse at 70% 60%, #4a2000 0%, transparent 60%);
}
.scn-indian-prince-cremation .sky     { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0d0d2e 0%, transparent 100%); animation: ipc-sky 12s ease-in-out infinite alternate; }
.scn-indian-prince-cremation .cliff   { position:absolute; bottom:20%; right:0; width:40%; height:60%; background: linear-gradient(90deg, #f5e6d0 0%, #e0c8a0 100%); border-radius: 60% 0 0 50% / 80% 0 0 70%; box-shadow: inset 0 10px 30px rgba(200,120,40,0.3); animation: ipc-cliff 18s ease-in-out infinite alternate; }
.scn-indian-prince-cremation .pyre    { position:absolute; bottom:10%; left:35%; width:120px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 5px #ff6600; animation: ipc-pyre 6s ease-in-out infinite; }
.scn-indian-prince-cremation .flames  { position:absolute; bottom:15%; left:35%; width:120px; height:100px; background: radial-gradient(ellipse at 50% 100%, #ffaa00 0%, #ff4400 50%, transparent 80%); opacity:0.9; animation: ipc-flame 1.5s ease-in-out infinite alternate; }
.scn-indian-prince-cremation .shadowBuddha { position:absolute; bottom:22%; right:5%; width:100px; height:150px; background: radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, transparent 60%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); animation: ipc-shadow 8s ease-in-out infinite alternate; }
.scn-indian-prince-cremation .sparks  { position:absolute; bottom:30%; left:38%; width:4px; height:4px; background:#ffdd44; border-radius:50%; box-shadow: 0 0 6px 2px #ffaa00, 0 0 12px 4px rgba(255,170,0,0.4); animation: ipc-sparks 3s linear infinite; }
@keyframes ipc-sky    { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ipc-cliff  { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes ipc-pyre   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) scale(1.02) } }
@keyframes ipc-flame  { 0% { transform: scale(1,1) rotate(0deg); opacity:.8 } 50% { transform: scale(1.1,1.2) rotate(-3deg); opacity:1 } 100% { transform: scale(0.95,0.9) rotate(2deg); opacity:.9 } }
@keyframes ipc-shadow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.7; transform: scale(0.98) } }
@keyframes ipc-sparks { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-30px) scale(1.5); opacity:.7 } 100% { transform: translateY(-60px) scale(2); opacity:0 } }

/* Scene 2: indian-prince-ashes (tag: ipa) */
.scn-indian-prince-ashes {
  background: linear-gradient(180deg, #1a0a00 0%, #3a1a00 50%, #5a2a00 100%),
              radial-gradient(ellipse at 50% 70%, #ff6600 0%, #ff3300 30%, transparent 60%);
}
.scn-indian-prince-ashes .sky     { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0f0a00 0%, transparent 100%); animation: ipa-sky 15s ease-in-out infinite alternate; }
.scn-indian-prince-ashes .ground  { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #0d0200 0%, #1a0e00 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; box-shadow: inset 0 20px 40px rgba(0,0,0,0.7); }
.scn-indian-prince-ashes .pyre    { position:absolute; bottom:15%; left:40%; width:140px; height:90px; background: linear-gradient(180deg, #1a0e00 0%, #0a0500 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 0 30px 10px #ff8800; animation: ipa-pyre 8s ease-in-out infinite; }
.scn-indian-prince-ashes .flames  { position:absolute; bottom:20%; left:40%; width:140px; height:120px; background: radial-gradient(ellipse at 50% 100%, #ffee00 0%, #ff8800 40%, #ff3300 70%, transparent 90%); opacity:0.85; animation: ipa-flame 1.2s ease-in-out infinite alternate; }
.scn-indian-prince-ashes .corpse  { position:absolute; bottom:18%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #1f1b1b 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ipa-corpse 6s ease-in-out infinite; }
.scn-indian-prince-ashes .figures { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: radial-gradient(ellipse at 50% 100%, #0d0a0a 0%, transparent 70%); animation: ipa-figures 20s ease-in-out infinite alternate; }
@keyframes ipa-sky    { 0% { opacity:.5; filter:brightness(0.8) } 50% { opacity:1; filter:brightness(1) } 100% { opacity:.6; filter:brightness(0.9) } }
@keyframes ipa-pyre   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) scale(1.03) } }
@keyframes ipa-flame  { 0% { transform: scale(1,1) rotate(-2deg); opacity:.7 } 50% { transform: scale(1.12,1.18) rotate(3deg); opacity:.95 } 100% { transform: scale(0.9,0.88) rotate(-1deg); opacity:.8 } }
@keyframes ipa-corpse { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(10deg) translateY(-5px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-10deg) translateY(-5px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes ipa-figures{ 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.02); opacity:1 } 100% { transform: scale(0.98); opacity:.7 } }

/* Scene 3: indian-prince-aftermath (tag: ipaf) */
.scn-indian-prince-aftermath {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 100%),
              radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 40%);
}
.scn-indian-prince-aftermath .sky      { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0d4f1 0%, transparent 100%); animation: ipaf-sky 20s ease-in-out infinite alternate; }
.scn-indian-prince-aftermath .ground   { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #c2b280 0%, #a09260 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.2); }
.scn-indian-prince-aftermath .crowd    { position:absolute; bottom:15%; left:5%; right:5%; height:20%; background: repeating-linear-gradient(90deg, #2a2a2a 0px, #2a2a2a 4px, transparent 4px, transparent 8px); background-size: 8px 100%; animation: ipaf-crowd 4s linear infinite; }
.scn-indian-prince-aftermath .deputy   { position:absolute; bottom:20%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ipaf-deputy 3s ease-in-out infinite; }
.scn-indian-prince-aftermath .fragments{ position:absolute; bottom:10%; left:20%; right:20%; height:5%; background: radial-gradient(circle, #aa8866 0%, transparent 60%); animation: ipaf-frag 10s ease-in-out infinite; }
.scn-indian-prince-aftermath .tent     { position:absolute; bottom:5%; right:10%; width:80px; height:70px; background: linear-gradient(180deg, #d2b48c 0%, #b8966a 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: ipaf-tent 7s ease-in-out infinite alternate; }
@keyframes ipaf-sky     { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ipaf-crowd   { 0% { transform: translateX(0) } 100% { transform: translateX(-8px) } }
@keyframes ipaf-deputy  { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ipaf-frag    { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:.6; transform: scale(0.8) } }
@keyframes ipaf-tent    { 0% { transform: skewX(0deg) } 50% { transform: skewX(-5deg) } 100% { transform: skewX(0deg) } }

/* Scene 4: droll-woman-intro (tag: dwi) */
.scn-droll-woman-intro {
  background: linear-gradient(135deg, #f5deb3 0%, #deb887 50%, #d2b48c 100%),
              radial-gradient(ellipse at 30% 20%, #fff8dc 0%, transparent 50%);
}
.scn-droll-woman-intro .wall    { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #f5deb3 0%, #e0c8a0 100%); box-shadow: inset 0 10px 40px rgba(0,0,0,0.1); }
.scn-droll-woman-intro .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8B7355 0%, #6B5735 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-droll-woman-intro .window  { position:absolute; top:15%; left:10%; width:40%; height:35%; background: radial-gradient(ellipse at 50% 50%, #fff0b0 0%, #ffe080 40%, transparent 80%); border: 4px solid #5a4a3a; border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 40px #ffe080; animation: dwi-window 8s ease-in-out infinite alternate; }
.scn-droll-woman-intro .table   { position:absolute; bottom:12%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #6B4226 0%, #4a2e1a 100%); border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.4); }
.scn-droll-woman-intro .lamp    { position:absolute; bottom:25%; left:45%; width:14px; height:28px; background: radial-gradient(ellipse at 50% 100%, #ffdd88 0%, #cc8844 60%, transparent 80%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 30px 8px #ffdd88; animation: dwi-lamp 3s ease-in-out infinite alternate; }
.scn-droll-woman-intro .sofa    { position:absolute; bottom:0; right:15%; width:45%; height:20%; background: linear-gradient(180deg, #8B4513 0%, #5a2d0c 100%); border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); }
.scn-droll-woman-intro .woman   { position:absolute; bottom:8%; left:18%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dwi-woman 6s ease-in-out infinite; }
@keyframes dwi-window { 0% { opacity:.75; filter: brightness(0.9) } 50% { opacity:1; filter: brightness(1.1) } 100% { opacity:.8; filter: brightness(0.95) } }
@keyframes dwi-lamp   { 0% { box-shadow: 0 0 20px 4px #ffdd88; opacity:.8 } 50% { box-shadow: 0 0 40px 12px #ffdd88; opacity:1 } 100% { box-shadow: 0 0 25px 6px #ffdd88; opacity:.85 } }
@keyframes dwi-woman  { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }

.scn-mountain-pool-children {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-mountain-pool-children .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #3a2a5a 50%, transparent 100%);
  animation: mpc-sky 12s ease-in-out infinite alternate;
}
.scn-mountain-pool-children .cliff {
  position: absolute; bottom: 30%; left: 10%; right: 30%; height: 35%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 60% 0 0 / 40% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: mpc-cliff 18s ease-in-out infinite alternate;
}
.scn-mountain-pool-children .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 60% 40% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
  animation: mpc-water 6s ease-in-out infinite alternate;
}
.scn-mountain-pool-children .figure-big {
  position: absolute; bottom: 32%; left: 35%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mpc-climb 4s ease-in-out infinite;
}
.scn-mountain-pool-children .figure-small {
  position: absolute; bottom: 12%; left: 42%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mpc-bob 3s ease-in-out infinite;
}
.scn-mountain-pool-children .reflection {
  position: absolute; bottom: 5%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, rgba(20,30,40,.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: mpc-reflect 8s ease-in-out infinite alternate;
}

@keyframes mpc-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .6; } }
@keyframes mpc-cliff { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mpc-water { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes mpc-climb { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 30% { transform: translateX(5px) translateY(-8px) rotate(5deg); } 60% { transform: translateX(10px) translateY(-12px) rotate(-3deg); } 100% { transform: translateX(15px) translateY(0) rotate(0); } }
@keyframes mpc-bob { 0% { transform: translateY(0); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0); } }
@keyframes mpc-reflect { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .2; } }

.scn-mountain-pool-watch {
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 40%, #2a2a4e 100%), radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 70%);
}
.scn-mountain-pool-watch .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(circle at 20% 30%, #ffffff 0%, transparent 1%),
              radial-gradient(circle at 60% 50%, #ffffff 0%, transparent 2%),
              radial-gradient(circle at 80% 20%, #ffffff 0%, transparent 1%),
              radial-gradient(circle at 40% 70%, #ffffff 0%, transparent 2%),
              linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 100%);
  background-size: 200px 200px, 150px 150px, 180px 180px, 120px 120px, 100% 100%;
  animation: mpw-stars 20s ease-in-out infinite alternate;
}
.scn-mountain-pool-watch .pool {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.7);
  animation: mpw-pool 8s ease-in-out infinite alternate;
}
.scn-mountain-pool-watch .grass {
  position: absolute; bottom: 35%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: mpw-grass 5s ease-in-out infinite alternate;
}
.scn-mountain-pool-watch .watch {
  position: absolute; bottom: 42%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #e0d0a0 0%, #b09060 60%, #806040 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(224,208,160,.3);
  animation: mpw-watch 4s ease-in-out infinite alternate;
}
.scn-mountain-pool-watch .figure-standing {
  position: absolute; bottom: 38%; left: 30%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mpw-stand 6s ease-in-out infinite;
}
.scn-mountain-pool-watch .figure-sinking {
  position: absolute; bottom: 15%; left: 38%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mpw-sink 8s ease-in-out infinite;
}

@keyframes mpw-stars { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .5; } }
@keyframes mpw-pool { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-3px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes mpw-grass { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mpw-watch { 0% { transform: rotate(0deg); box-shadow: 0 0 8px 2px rgba(224,208,160,.2); } 50% { transform: rotate(10deg); box-shadow: 0 0 16px 4px rgba(224,208,160,.5); } 100% { transform: rotate(0deg); box-shadow: 0 0 8px 2px rgba(224,208,160,.2); } }
@keyframes mpw-stand { 0% { transform: translateX(0) rotate(-3deg); } 30% { transform: translateX(4px) rotate(3deg); } 60% { transform: translateX(8px) rotate(-2deg); } 100% { transform: translateX(12px) rotate(0); } }
@keyframes mpw-sink { 0% { transform: translateY(0) scaleY(1); opacity: 1; } 50% { transform: translateY(10px) scaleY(.8); opacity: .6; } 100% { transform: translateY(20px) scaleY(.6); opacity: 0; } }

.scn-mountain-pool-reflection {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #3a2a5a 100%), radial-gradient(ellipse at 50% 50%, #3a2a5a 0%, transparent 70%);
}
.scn-mountain-pool-reflection .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 100%);
  animation: mpr-bg 15s ease-in-out infinite alternate;
}
.scn-mountain-pool-reflection .watch-case {
  position: absolute; top: 20%; left: 35%; width: 30%; padding-bottom: 30%; /* square */
  background: radial-gradient(circle, #b09070 0%, #705040 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(176,144,112,.3);
  animation: mpr-case 6s ease-in-out infinite alternate;
}
.scn-mountain-pool-reflection .watch-face {
  position: absolute; top: 25%; left: 40%; width: 20%; padding-bottom: 20%;
  background: radial-gradient(circle, #e0d0b0 0%, #c0a880 70%, #a08060 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px 2px rgba(0,0,0,.3);
  animation: mpr-face 8s ease-in-out infinite alternate;
}
.scn-mountain-pool-reflection .watch-hands {
  position: absolute; top: 33%; left: 49%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #302010 0%, #201000 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: mpr-hands 12s linear infinite;
}
.scn-mountain-pool-reflection .reflection-surface {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(20,30,40,.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: mpr-reflect 10s ease-in-out infinite alternate;
}
.scn-mountain-pool-reflection .figure-silhouette {
  position: absolute; bottom: 10%; left: 15%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%;
  animation: mpr-fig 5s ease-in-out infinite alternate;
}

@keyframes mpr-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes mpr-case { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes mpr-face { 0% { box-shadow: inset 0 0 8px 1px rgba(0,0,0,.2); } 50% { box-shadow: inset 0 0 14px 3px rgba(0,0,0,.4); } 100% { box-shadow: inset 0 0 8px 1px rgba(0,0,0,.2); } }
@keyframes mpr-hands { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes mpr-reflect { 0% { opacity: .3; } 50% { opacity: .5; } 100% { opacity: .2; } }
@keyframes mpr-fig { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-indian-prince-arrival {
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b0 40%, #c8b8a0 100%), radial-gradient(ellipse at 50% 100%, #d8c8b0 0%, transparent 70%);
}
.scn-indian-prince-arrival .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0c8d8 0%, #d0d8e0 50%, transparent 100%);
  animation: ipa-sky 20s ease-in-out infinite alternate;
}
.scn-indian-prince-arrival .building-left {
  position: absolute; bottom: 20%; left: 0; width: 30%; height: 60%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 0 10% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,.15);
  animation: ipa-bldg 8s ease-in-out infinite alternate;
}
.scn-indian-prince-arrival .building-right {
  position: absolute; bottom: 20%; right: 0; width: 30%; height: 60%;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 10% 0 0 0;
  box-shadow: inset 4px 0 8px rgba(0,0,0,.15);
  animation: ipa-bldg 8s ease-in-out infinite alternate-reverse;
}
.scn-indian-prince-arrival .street {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09078 100%);
  border-radius: 20% 20% 0 0 / 5% 5% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.1);
  animation: ipa-street 6s ease-in-out infinite alternate;
}
.scn-indian-prince-arrival .prince {
  position: absolute; bottom: 22%; left: 38%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #c89050 0%, #a07040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 12px 4px rgba(200,144,80,.3);
  animation: ipa-prince 4s ease-in-out infinite;
}
.scn-indian-prince-arrival .escort-1 {
  position: absolute; bottom: 25%; left: 20%; width: 8%; height: 15%;
  background: linear-gradient(180deg, #908080 0%, #706060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ipa-escort 5s ease-in-out infinite 0.5s;
}
.scn-indian-prince-arrival .escort-2 {
  position: absolute; bottom: 25%; left: 55%; width: 8%; height: 15%;
  background: linear-gradient(180deg, #908080 0%, #706060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ipa-escort 5s ease-in-out infinite 1s;
}

@keyframes ipa-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ipa-bldg { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ipa-street { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes ipa-prince { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(3deg); } 60% { transform: translateX(8px) rotate(-2deg); } 100% { transform: translateX(12px) rotate(0deg); } }
@keyframes ipa-escort { 0% { transform: translateX(0) translateY(0); } 30% { transform: translateX(3px) translateY(-2px); } 60% { transform: translateX(6px) translateY(0); } 100% { transform: translateX(9px) translateY(0); } }

.scn-chicot-final-deal {
  background: linear-gradient(125deg, #f2e3c6 0%, #c8b88a 40%, #a09070 80%, #7a6a50 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,245,210,0.6) 0%, transparent 60%);
}
.scn-chicot-final-deal .wall-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4c4a6 0%, #b8a888 100%); }
.scn-chicot-final-deal .floor  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); }
.scn-chicot-final-deal .window-sun { position:absolute; top:8%; left:10%; width:60px; height:80px; background: radial-gradient(circle at 35% 30%, #fff8e0 0%, #ffe080 70%, transparent 100%); border-radius:4px; box-shadow: 0 0 30px 10px rgba(255,224,128,0.4), 0 0 60px 20px rgba(255,224,128,0.15); animation: cfd-windowglow 3s ease-in-out infinite alternate; }
.scn-chicot-final-deal .figure-chicot { position:absolute; bottom:35%; left:30%; width:28px; height:60px; background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cfd-figuresway 3.5s ease-in-out infinite; }
.scn-chicot-final-deal .figure-magloire { position:absolute; bottom:35%; left:55%; width:32px; height:50px; background: linear-gradient(180deg, #4a3a28 0%, #2a1a10 100%); border-radius: 50% 50% 60% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: cfd-figuresway 4s ease-in-out infinite reverse; }
.scn-chicot-final-deal .table { position:absolute; bottom:30%; left:40%; width:60px; height:12px; background: linear-gradient(90deg, #5a4a30 0%, #7a6a50 50%, #5a4a30 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.4); }
.scn-chicot-final-deal .coin-glow { position:absolute; bottom:31%; left:48%; width:8px; height:8px; background: radial-gradient(circle, #f0d080 0%, #c89850 70%); border-radius:50%; box-shadow: 0 0 12px 3px #d4a860; animation: cfd-coinshimmer 2s ease-in-out infinite; }
.scn-chicot-final-deal .shadow-cast { position:absolute; bottom:20%; left:20%; width:80px; height:20px; background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, transparent 100%); filter: blur(6px); animation: cfd-shadowsway 3.5s ease-in-out infinite; }
@keyframes cfd-windowglow { 0% { opacity:0.7; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.8; transform:scale(0.98); } }
@keyframes cfd-figuresway { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes cfd-coinshimmer { 0% { box-shadow: 0 0 8px 2px #d4a860; opacity:0.7; } 50% { box-shadow: 0 0 20px 8px #f0d080; opacity:1; } 100% { box-shadow: 0 0 10px 3px #d4a860; opacity:0.8; } }
@keyframes cfd-shadowsway { 0% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }

.scn-chicot-haggling {
  background: linear-gradient(135deg, #e3d6bc 0%, #c4b496 50%, #a29074 100%),
              radial-gradient(ellipse at 80% 20%, rgba(255,240,190,0.5) 0%, transparent 70%);
}
.scn-chicot-haggling .room-wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 100%); }
.scn-chicot-haggling .table-top { position:absolute; bottom:20%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #6a5a3e 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: inset 0 8px 12px rgba(0,0,0,0.3); }
.scn-chicot-haggling .window-light { position:absolute; top:10%; right:8%; width:70px; height:90px; background: radial-gradient(ellipse at 50% 40%, #fff8e0 0%, #ffe080 60%, transparent 100%); border-radius:4px; box-shadow: 0 0 40px 15px rgba(255,224,128,0.3); animation: chg-windowglow 4s ease-in-out infinite alternate; }
.scn-chicot-haggling .figure-left { position:absolute; bottom:30%; left:28%; width:26px; height:55px; background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: chg-figuresway 3s ease-in-out infinite; }
.scn-chicot-haggling .figure-right { position:absolute; bottom:30%; right:30%; width:30px; height:48px; background: linear-gradient(180deg, #4a3a28 0%, #2a1a10 100%); border-radius: 50% 50% 60% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: chg-figuresway 3.7s ease-in-out infinite reverse; }
.scn-chicot-haggling .money-pouch { position:absolute; bottom:35%; left:48%; width:14px; height:10px; background: radial-gradient(circle at 50% 30%, #a08050 0%, #604020 100%); border-radius: 50% 50% 40% 40%; animation: chg-pouchbob 2.5s ease-in-out infinite; }
.scn-chicot-haggling .coin-scatter { position:absolute; bottom:30%; left:44%; width:6px; height:6px; background: radial-gradient(circle, #e0b060 0%, #a07030 100%); border-radius:50%; box-shadow: 0 0 6px 2px #c09040; animation: chg-coinglitter 1.8s ease-in-out infinite; }
.scn-chicot-haggling .shadow-angles { position:absolute; bottom:20%; left:15%; right:15%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); filter: blur(8px); animation: chg-shadowangle 6s ease-in-out infinite; }
@keyframes chg-windowglow { 0% { opacity:0.6; transform:scale(0.97); } 50% { opacity:1; transform:scale(1.03); } 100% { opacity:0.7; transform:scale(0.99); } }
@keyframes chg-figuresway { 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 chg-pouchbob { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes chg-coinglitter { 0% { box-shadow: 0 0 4px 1px #c09040; opacity:0.6; } 50% { box-shadow: 0 0 12px 4px #e0b060; opacity:1; } 100% { box-shadow: 0 0 4px 1px #c09040; opacity:0.7; } }
@keyframes chg-shadowangle { 0% { transform: skewX(-2deg); } 50% { transform: skewX(2deg); } 100% { transform: skewX(-2deg); } }

.scn-chicot-plot {
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 40%, #1a1a2a 80%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 0%, #4a4a6e 0%, transparent 70%);
}
.scn-chicot-plot .storm-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 60%, #1a1a2a 100%); animation: cpl-skydarken 15s ease-in-out infinite alternate; }
.scn-chicot-plot .mud-ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 30% 30% 0 0; }
.scn-chicot-plot .gnarled-tree { position:absolute; bottom:30%; left:20%; width:12px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #0a0a00 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-5deg); transform-origin: bottom center; animation: cpl-treesway 8s ease-in-out infinite; }
.scn-chicot-plot .figure-plotter { position:absolute; bottom:35%; right:20%; width:24px; height:55px; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cpl-figuremove 5s ease-in-out infinite; }
.scn-chicot-plot .cloud-dark { position:absolute; top:12%; left:10%; width:100px; height:20px; background: radial-gradient(ellipse, rgba(40,40,60,0.6) 0%, transparent 100%); filter: blur(8px); animation: cpl-clouddrift 30s linear infinite; }
.scn-chicot-plot .fog-veil { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(20,20,30,0.5) 0%, transparent 100%); filter: blur(10px); }
.scn-chicot-plot .lightning-faint { position:absolute; top:5%; left:60%; width:4px; height:40px; background: rgba(200,200,255,0.08); filter: blur(3px); animation: cpl-lightning 12s ease-in-out infinite; }
@keyframes cpl-skydarken { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes cpl-treesway { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg) scaleX(1.02); } 100% { transform: rotate(-5deg); } }
@keyframes cpl-figuremove { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 75% { transform: translateX(1px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes cpl-clouddrift { 0% { transform: translateX(-30px); } 100% { transform: translateX(110vw); } }
@keyframes cpl-lightning { 0% { opacity:0; } 5% { opacity:0.6; } 10% { opacity:0; } 100% { opacity:0; } }

.scn-chicot-first-dinner {
  background: linear-gradient(180deg, #f0d8b0 0%, #dca878 50%, #b8865a 100%),
              radial-gradient(ellipse at 60% 30%, rgba(255,220,160,0.7) 0%, transparent 70%);
}
.scn-chicot-first-dinner .wall-warm { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e8c898 0%, #c8a078 100%); }
.scn-chicot-first-dinner .window-barn { position:absolute; top:12%; right:10%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 50%, #c8b080 0%, #8a7a5a 100%); border-radius:4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); overflow:hidden; animation: cdi-windowblur 6s ease-in-out infinite alternate; }
.scn-chicot-first-dinner .dinner-table { position:absolute; bottom:20%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,0.4); }
.scn-chicot-first-dinner .figure-cook { position:absolute; bottom:30%; left:35%; width:30px; height:55px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cdi-cookstir 4.5s ease-in-out infinite; }
.scn-chicot-first-dinner .lantern-glow { position:absolute; bottom:40%; left:55%; width:10px; height:10px; background: radial-gradient(circle, #ffd880 0%, #e0a050 100%); border-radius:50%; box-shadow: 0 0 24px 8px rgba(255,200,100,0.6), 0 0 48px 16px rgba(255,200,100,0.3); animation: cdi-lanternflicker 2s ease-in-out infinite; }
.scn-chicot-first-dinner .buggy-outside { position:absolute; bottom:45%; right:8%; width:30px; height:20px; background: linear-gradient(180deg, #6a4a30 0%, #4a2a10 100%); border-radius: 20% 20% 10% 10%; transform: scale(0.8); filter: blur(2px); animation: cdi-buggyglide 12s ease-in-out infinite; }
.scn-chicot-first-dinner .steam-curl { position:absolute; bottom:45%; left:30%; width:12px; height:18px; background: radial-gradient(ellipse, rgba(255,255,240,0.3) 0%, transparent 100%); filter: blur(4px); animation: cdi-steam 3.5s ease-in-out infinite; }
.scn-chicot-first-dinner .rug-pattern { position:absolute; bottom:12%; left:25%; right:25%; height:8%; background: repeating-linear-gradient(90deg, #8a6050 0px, #8a6050 8px, #6a4030 8px, #6a4030 16px); border-radius: 2px; opacity:0.6; }
@keyframes cdi-windowblur { 0% { filter: blur(0px); opacity:0.8; } 50% { filter: blur(2px); opacity:1; } 100% { filter: blur(0px); opacity:0.9; } }
@keyframes cdi-cookstir { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(2px) translateY(-1px) rotate(3deg); } 40% { transform: translateX(4px) translateY(-2px) rotate(-1deg); } 60% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 80% { transform: translateX(1px) translateY(0) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes cdi-lanternflicker { 0% { box-shadow: 0 0 20px 6px rgba(255,200,100,0.5); opacity:0.9; } 50% { box-shadow: 0 0 30px 12px rgba(255,200,100,0.7); opacity:1; } 100% { box-shadow: 0 0 20px 6px rgba(255,200,100,0.5); opacity:0.9; } }
@keyframes cdi-buggyglide { 0% { transform: scale(0.8) translateX(0); } 50% { transform: scale(0.8) translateX(3px); } 100% { transform: scale(0.8) translateX(0); } }
@keyframes cdi-steam { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-12px) scale(1.5); opacity:0; } 100% { transform: translateY(0) scale(1); opacity:0.6; } }

/* will-temptation: dim interior, deep shadows, warm lamp */
.scn-will-temptation {
  background: 
    linear-gradient(135deg, #1a1a2e 0%, #2a1e2e 40%, #3a2a3a 100%),
    radial-gradient(ellipse at 30% 60%, #4a3a4a 0%, transparent 70%);
}
.scn-will-temptation .bg-layer {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0e1a 0%, #2a1e2a 50%, #1a1a2e 100%);
  animation: wt-bg 12s ease-in-out infinite alternate;
}
.scn-will-temptation .partition {
  position: absolute; left: 40%; top: 0; bottom: 0; width: 8%;
  background: linear-gradient(90deg, #3a2a3a, #2a1a2a, #3a2a3a);
  border-radius: 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.6);
  animation: wt-partition 8s ease-in-out infinite;
}
.scn-will-temptation .figure {
  position: absolute; bottom: 15%; left: 20%; width: 12%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #4a3a4a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wt-figure 6s ease-in-out infinite alternate;
}
.scn-will-temptation .crib {
  position: absolute; bottom: 10%; left: 55%; width: 25%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.4);
  animation: wt-crib 10s ease-in-out infinite;
}
.scn-will-temptation .coverings {
  position: absolute; bottom: 12%; left: 57%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #7a6a5a, #4a3a2a);
  border-radius: 50% 50% 20% 20%;
  filter: blur(2px);
  animation: wt-cover 7s ease-in-out infinite alternate;
}
.scn-will-temptation .lamp {
  position: absolute; top: 30%; right: 15%; width: 6%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #ffcc80 0%, #a07040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #a07040, 0 0 60px 20px rgba(160,112,64,0.3);
  animation: wt-lamp 3s ease-in-out infinite alternate;
}
.scn-will-temptation .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, transparent, #0a0a1a 50%, #000 100%);
  filter: blur(8px);
  animation: wt-shadow 5s ease-in-out infinite;
}
@keyframes wt-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes wt-partition { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes wt-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2%) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wt-crib { 0% { transform: translateY(0) } 50% { transform: translateY(-1%) } 100% { transform: translateY(0) } }
@keyframes wt-cover { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.02) } 100% { opacity: 0.8; transform: scale(0.98) } }
@keyframes wt-lamp { 0% { opacity: 0.6; box-shadow: 0 0 20px 6px #a07040 } 50% { opacity: 1; box-shadow: 0 0 40px 12px #ffcc80 } 100% { opacity: 0.7; box-shadow: 0 0 25px 8px #a07040 } }
@keyframes wt-shadow { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }

/* will-child-coughs: dim interior, warm candle, caring figure */
.scn-will-child-coughs {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a223a 50%, #1e1a2a 100%),
    radial-gradient(ellipse at 60% 70%, #3a2a3a 0%, transparent 80%);
}
.scn-will-child-coughs .bg-layer {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e0e1a, #2a1e2a, #1a1a2e);
  animation: wcc-bg 20s ease-in-out infinite alternate;
}
.scn-will-child-coughs .window-frame {
  position: absolute; top: 10%; left: 70%; width: 20%; height: 30%;
  background: #2a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: wcc-window 8s ease-in-out infinite;
}
.scn-will-child-coughs .curtain {
  position: absolute; top: 10%; left: 68%; width: 24%; height: 32%;
  background: linear-gradient(180deg, #4a3a4a, #2a1a2a);
  border-radius: 0 0 50% 50%;
  filter: blur(2px);
  animation: wcc-curtain 10s ease-in-out infinite alternate;
}
.scn-will-child-coughs .crib {
  position: absolute; bottom: 8%; left: 20%; width: 30%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5), 0 4px 8px rgba(0,0,0,0.4);
  animation: wcc-crib 9s ease-in-out infinite;
}
.scn-will-child-coughs .child {
  position: absolute; bottom: 14%; left: 28%; width: 14%; height: 12%;
  background: radial-gradient(ellipse at 50% 40%, #5a4a3a, #2a1a1a);
  border-radius: 50% 50% 40% 40%;
  animation: wcc-child 6s ease-in-out infinite;
}
.scn-will-child-coughs .parent {
  position: absolute; bottom: 10%; left: 8%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #3a2a3a, #1a1a2e);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wcc-parent 5s ease-in-out infinite alternate;
}
.scn-will-child-coughs .candle {
  position: absolute; top: 40%; left: 10%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #c08040, #8a6030);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,0.3);
  animation: wcc-candle 2s ease-in-out infinite alternate;
}
.scn-will-child-coughs .blanket {
  position: absolute; bottom: 12%; left: 25%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #6a5a4a, #4a3a2a);
  border-radius: 50%;
  filter: blur(3px);
  animation: wcc-blanket 7s ease-in-out infinite alternate;
}
@keyframes wcc-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes wcc-window { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.7 } }
@keyframes wcc-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(2%) } 100% { transform: translateX(0) } }
@keyframes wcc-crib { 0% { transform: translateY(0) } 50% { transform: translateY(-1%) } 100% { transform: translateY(0) } }
@keyframes wcc-child { 0% { opacity: 0.8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.02) } 100% { opacity: 0.9; transform: scale(0.98) } }
@keyframes wcc-parent { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3%) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wcc-candle { 0% { opacity: 0.6; box-shadow: 0 0 15px 4px #c08040 } 50% { opacity: 1; box-shadow: 0 0 30px 10px #ffd080 } 100% { opacity: 0.7; box-shadow: 0 0 18px 6px #c08040 } }
@keyframes wcc-blanket { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.05) } 100% { opacity: 0.6; transform: scale(0.95) } }

/* will-child-dies: dawn, cool pale light, sickroom */
.scn-will-child-dies {
  background: 
    linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 30%, #6a7a8a 0%, transparent 70%);
}
.scn-will-child-dies .bg-layer {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a3a4a, #3a4a5a, #1a2a3a);
  animation: wcd-bg 15s ease-in-out infinite alternate;
}
.scn-will-child-dies .window-light {
  position: absolute; top: 5%; left: 15%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, #8a9aaa 0%, #5a6a7a 60%, transparent 100%);
  border-radius: 10%;
  filter: blur(8px);
  animation: wcd-window 12s ease-in-out infinite alternate;
}
.scn-will-child-dies .sickbed {
  position: absolute; bottom: 5%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #4a5a5a, #2a3a3a);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,0.4);
  animation: wcd-bed 10s ease-in-out infinite;
}
.scn-will-child-dies .child {
  position: absolute; bottom: 12%; left: 38%; width: 12%; height: 15%;
  background: radial-gradient(ellipse at 50% 40%, #5a6a6a, #3a4a4a);
  border-radius: 50% 50% 40% 40%;
  animation: wcd-child 8s ease-in-out infinite;
}
.scn-will-child-dies .doctor {
  position: absolute; bottom: 10%; left: 60%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #4a5a6a, #2a3a4a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wcd-doctor 7s ease-in-out infinite alternate;
}
.scn-will-child-dies .parent-trembling {
  position: absolute; bottom: 10%; left: 10%; width: 14%; height: 42%;
  background: linear-gradient(180deg, #3a4a5a, #1a2a3a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wcd-parent 4s ease-in-out infinite;
}
.scn-will-child-dies .medicine {
  position: absolute; bottom: 20%; left: 48%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #a0b0b0, #708080);
  border-radius: 2px;
  box-shadow: 0 0 6px rgba(160,176,176,0.6);
  animation: wcd-medicine 9s ease-in-out infinite alternate;
}
.scn-will-child-dies .dawn-rays {
  position: absolute; top: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, rgba(160,180,200,0.2) 0%, transparent 100%);
  animation: wcd-rays 18s ease-in-out infinite alternate;
}
@keyframes wcd-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes wcd-window { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.05) } 100% { opacity: 0.6; transform: scale(0.95) } }
@keyframes wcd-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-1%) } 100% { transform: translateY(0) } }
@keyframes wcd-child { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes wcd-doctor { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2%) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wcd-parent { 0% { transform: translateX(0) translateY(0) } 30% { transform: translateX(2%) translateY(-1%) } 60% { transform: translateX(-1%) translateY(1%) } 100% { transform: translateX(0) translateY(0) } }
@keyframes wcd-medicine { 0% { opacity: 0.5 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes wcd-rays { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }

/* will-destroyed: bright interior, sharp shadows, candle flame */
.scn-will-destroyed {
  background: 
    linear-gradient(135deg, #c8b8a8 0%, #b0a090 40%, #a09080 100%),
    radial-gradient(ellipse at 50% 80%, #d0c0b0 0%, transparent 70%);
}
.scn-will-destroyed .bg-layer {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8c8b8, #c0b0a0, #a89888);
  animation: wds-bg 20s ease-in-out infinite alternate;
}
.scn-will-destroyed .table {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #b8a898, #988878);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2), inset 0 4px 6px rgba(255,255,255,0.2);
  animation: wds-table 12s ease-in-out infinite;
}
.scn-will-destroyed .candle {
  position: absolute; bottom: 20%; left: 45%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #e8d8c8, #c8b8a8, #a89888);
  border-radius: 3px;
  box-shadow: 0 0 10px 2px rgba(200,180,160,0.5);
  animation: wds-candle 2s ease-in-out infinite alternate;
}
.scn-will-destroyed .flame {
  position: absolute; bottom: 33%; left: 45.5%; width: 2%; height: 6%;
  background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #ffa040 40%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255,160,64,0.3);
  animation: wds-flame 0.8s ease-in-out infinite alternate;
}
.scn-will-destroyed .papers {
  position: absolute; bottom: 12%; left: 46%; width: 18%; height: 4%;
  background: linear-gradient(180deg, #f0e8d8, #d8c8b8);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: wds-papers 6s ease-in-out infinite;
}
.scn-will-destroyed .figure-poirel {
  position: absolute; bottom: 5%; left: 35%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wds-poirel 5s ease-in-out infinite alternate;
}
.scn-will-destroyed .figure-heir1 {
  position: absolute; bottom: 5%; left: 55%; width: 14%; height: 48%;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wds-heir1 7s ease-in-out infinite alternate;
}
.scn-will-destroyed .figure-heir2 {
  position: absolute; bottom: 5%; left: 68%; width: 14%; height: 48%;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wds-heir2 7s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-will-destroyed .figure-heir3 {
  position: absolute; bottom: 5%; left: 80%; width: 14%; height: 48%;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wds-heir3 7s ease-in-out infinite alternate;
  animation-delay: -4s;
}
@keyframes wds-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes wds-table { 0% { transform: translateY(0) } 50% { transform: translateY(-0.5%) } 100% { transform: translateY(0) } }
@keyframes wds-candle { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes wds-flame { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-2%) } 100% { transform: scaleY(0.95) translateY(1%) } }
@keyframes wds-papers { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-4deg) } 100% { transform: rotate(-5deg) } }
@keyframes wds-poirel { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2%) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wds-heir1 { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1%) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wds-heir2 { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1%) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wds-heir3 { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1%) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* jeremie-murder */
.scn-jeremie-murder { background: linear-gradient(180deg, #05050f 0%, #0f0f1f 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, transparent 80%); }
.scn-jeremie-murder .jm-bg    { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,10,30,.8) 0%, transparent 100%); animation: jm-pulse 4s ease-in-out infinite alternate; }
.scn-jeremie-murder .jm-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1410 0%, #2a2020 50%, #1a1410 100%); border-radius: 10% 10% 0 0 / 5% 5% 0 0; }
.scn-jeremie-murder .jm-chair { position:absolute; bottom:30%; left:40%; width:50px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.8); transform-origin: bottom center; animation: jm-wobble 1.2s ease-in-out infinite; }
.scn-jeremie-murder .jm-figure{ position:absolute; bottom:32%; left:50%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jm-fury 0.6s ease-in-out infinite; }
.scn-jeremie-murder .jm-bottle{ position:absolute; bottom:30%; left:52%; width:8px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0e 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: jm-roll 2.5s ease-in-out infinite; }
.scn-jeremie-murder .jm-shadow{ position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, transparent 0%, rgba(0,0,0,.6) 100%); pointer-events: none; animation: jm-pulse 5s ease-in-out infinite alternate; }
@keyframes jm-fury   { 0% { transform: translateY(0) rotate(0deg) scaleX(1) } 25% { transform: translateY(-3px) rotate(3deg) scaleX(1.02) } 50% { transform: translateY(0) rotate(-2deg) scaleX(1) } 75% { transform: translateY(-2px) rotate(4deg) scaleX(1.01) } 100% { transform: translateY(0) rotate(0) scaleX(1) } }
@keyframes jm-wobble { 0% { transform: rotate(0deg) } 20% { transform: rotate(5deg) } 40% { transform: rotate(-4deg) } 60% { transform: rotate(6deg) } 80% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes jm-roll   { 0% { transform: rotate(0) translateY(0) } 30% { transform: rotate(30deg) translateY(-3px) } 60% { transform: rotate(-20deg) translateY(0) } 100% { transform: rotate(0) translateY(0) } }
@keyframes jm-pulse  { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }

/* jeremie-morning-after */
.scn-jeremie-morning-after { background: linear-gradient(180deg, #2a2a3a 0%, #3a4a3a 30%, #5a4a3a 60%, #4a3a2a 100%), radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, transparent 70%); }
.scn-jeremie-morning-after .jma-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1410 0%, #2a2018 100%); }
.scn-jeremie-morning-after .jma-bed   { position:absolute; bottom:20%; left:30%; width:120px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0e 100%); border-radius: 5px; box-shadow: 0 4px 12px rgba(0,0,0,.7); }
.scn-jeremie-morning-after .jma-figure{ position:absolute; bottom:20%; left:50%; width:28px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: jma-breathe 3s ease-in-out infinite; }
.scn-jeremie-morning-after .jma-chair1{ position:absolute; bottom:35%; left:20%; width:20px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 3px; transform: rotate(20deg); animation: jma-shift 6s ease-in-out infinite; }
.scn-jeremie-morning-after .jma-chair2{ position:absolute; bottom:38%; left:70%; width:18px; height:25px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 3px; transform: rotate(-35deg); animation: jma-shift2 5s ease-in-out infinite; }
.scn-jeremie-morning-after .jma-light { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(200,180,160,.15) 0%, transparent 100%); animation: jma-dawn 15s ease-in-out infinite alternate; }
@keyframes jma-breathe { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes jma-shift   { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-3px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes jma-shift2  { 0% { transform: rotate(-35deg) translateY(0) } 50% { transform: rotate(-30deg) translateY(-2px) } 100% { transform: rotate(-35deg) translateY(0) } }
@keyframes jma-dawn    { 0% { opacity: .3 } 50% { opacity: .7 } 100% { opacity: .4 } }

/* prostitute-story-begin */
.scn-prostitute-story-begin { background: linear-gradient(180deg, #f0e0c0 0%, #e8d8b0 40%, #d8c8a0 100%), radial-gradient(ellipse at 50% 80%, #f0e0c0 0%, transparent 70%); }
.scn-prostitute-story-begin .psb-wall   { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #f0e0c8 0%, #e0d0b8 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; }
.scn-prostitute-story-begin .psb-floor  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #c8b898 0%, #d8c8a8 100%); }
.scn-prostitute-story-begin .psb-table  { position:absolute; bottom:25%; left:50%; width:160px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a880 0%, #a88868 100%); border-radius: 5px; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-prostitute-story-begin .psb-chair1 { position:absolute; bottom:30%; left:30%; width:30px; height:40px; background: linear-gradient(180deg, #a88868 0%, #887058 100%); border-radius: 5px; animation: psb-sway 4s ease-in-out infinite; }
.scn-prostitute-story-begin .psb-chair2 { position:absolute; bottom:30%; right:30%; width:30px; height:40px; background: linear-gradient(180deg, #a88868 0%, #887058 100%); border-radius: 5px; animation: psb-sway 4.5s ease-in-out infinite reverse; }
.scn-prostitute-story-begin .psb-figure1{ position:absolute; bottom:30%; left:20%; width:25px; height:45px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psb-bob 5s ease-in-out infinite; }
.scn-prostitute-story-begin .psb-figure2{ position:absolute; bottom:30%; right:20%; width:25px; height:45px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psb-bob 5.5s ease-in-out infinite alternate; }
.scn-prostitute-story-begin .psb-candle { position:absolute; bottom:55%; left:50%; width:8px; height:15px; margin-left:-4px; background: linear-gradient(180deg, #f0e0c0 0%, #e0c080 100%); border-radius: 2px; animation: psb-flicker 2s ease-in-out infinite; }
@keyframes psb-sway   { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes psb-bob    { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes psb-flicker{ 0% { opacity: .8; height:15px; } 25% { opacity: 1; height:17px; } 50% { opacity: .7; height:13px; } 75% { opacity: .9; height:16px; } 100% { opacity: .8; height:15px; } }

/* prostitute-folies */
.scn-prostitute-folies { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a3e 100%), radial-gradient(ellipse at 50% 30%, #2a2a3e 0%, transparent 80%); }
.scn-prostitute-folies .pf-sky      { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 80%); animation: pf-rain-sky 8s linear infinite; }
.scn-prostitute-folies .pf-building1{ position:absolute; bottom:20%; left:0; width:45%; height:70%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 5px 5px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-prostitute-folies .pf-building2{ position:absolute; bottom:20%; right:0; width:55%; height:60%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 5px 5px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-prostitute-folies .pf-lamp     { position:absolute; bottom:22%; left:40%; width:12px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0e 100%); border-radius: 3px; box-shadow: 0 0 30px 10px #e0a060, 0 0 60px 20px rgba(224,160,96,.3); animation: pf-flicker 2s ease-in-out infinite; }
.scn-prostitute-folies .pf-rain     { position:absolute; inset:0; background: repeating-linear-gradient(0deg, rgba(200,200,220,.1) 0px, rgba(200,200,220,.1) 2px, transparent 2px, transparent 8px) 50% 50%; background-size: 100% 15px; animation: pf-rain-fall 1s linear infinite; }
.scn-prostitute-folies .pf-figure   { position:absolute; bottom:22%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pf-walk 4s ease-in-out infinite; }
.scn-prostitute-folies .pf-puddle   { position:absolute; bottom:18%; left:50%; width:40px; height:8px; margin-left:-20px; background: radial-gradient(ellipse, #1a1a2e 0%, transparent 100%); border-radius: 50%; animation: pf-ripple 3s ease-in-out infinite; }
@keyframes pf-flicker { 0% { box-shadow: 0 0 20px 6px #e0a060, 0 0 40px 12px rgba(224,160,96,.3); opacity:.8 } 50% { box-shadow: 0 0 40px 14px #f0c080, 0 0 80px 24px rgba(240,192,128,.5); opacity:1 } 100% { box-shadow: 0 0 20px 6px #e0a060, 0 0 40px 12px rgba(224,160,96,.3); opacity:.8 } }
@keyframes pf-rain-fall { 0% { background-position: 0 0; } 100% { background-position: 0 15px; } }
@keyframes pf-rain-sky { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes pf-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0deg) } }
@keyframes pf-ripple { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(1); opacity:.8 } }

.scn-prostitute-child-revealed {
  background: linear-gradient(180deg, #1a0f0a 0%, #2a1a10 40%, #0d0805 100%), radial-gradient(ellipse at 50% 30%, #3a2518 0%, transparent 70%);
}
.scn-prostitute-child-revealed .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2518 0%, #1a0f0a 100%);
}
.scn-prostitute-child-revealed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-prostitute-child-revealed .door {
  position: absolute; right: 10%; bottom: 30%; width: 70px; height: 100px;
  background: linear-gradient(90deg, #1a0f0a 0%, #0d0805 100%);
  border-radius: 4px 0 0 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,.5);
  transform: skewY(5deg);
  animation: pcr-door 12s ease-in-out infinite alternate;
}
.scn-prostitute-child-revealed .light-beam {
  position: absolute; right: 10%; bottom: 30%; width: 120px; height: 110px;
  background: linear-gradient(135deg, rgba(255,200,120,.25) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 90%);
  animation: pcr-beam 4s ease-in-out infinite alternate;
}
.scn-prostitute-child-revealed .woman {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 80px;
  background: radial-gradient(ellipse 70% 60% at 50% 40%, #2a1a12 0%, #0d0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pcr-woman 6s ease-in-out infinite;
}
.scn-prostitute-child-revealed .child {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 50px;
  background: radial-gradient(ellipse 70% 60% at 50% 40%, #1a0f0a 0%, #0d0805 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pcr-child 8s ease-in-out infinite alternate;
}
.scn-prostitute-child-revealed .candle {
  position: absolute; bottom: 30%; left: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #8a3020 100%);
  border-radius: 2px;
}
.scn-prostitute-child-revealed .candle-flame {
  position: absolute; bottom: 69%; left: 20%; width: 10px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #c8553d 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(200,85,61,.4);
  animation: pcr-flame 0.5s ease-in-out infinite alternate;
}
@keyframes pcr-door {
  0% { transform: skewY(5deg) scaleX(1); }
  50% { transform: skewY(-2deg) scaleX(0.98); }
  100% { transform: skewY(3deg) scaleX(1.02); }
}
@keyframes pcr-beam {
  0% { opacity: 0.6; transform: scaleX(1); }
  100% { opacity: 0.9; transform: scaleX(1.05); }
}
@keyframes pcr-woman {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(2px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes pcr-child {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(-1px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes pcr-flame {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.15) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(-1px); opacity: 0.9; }
}

.scn-mountain-pool-letter {
  background: linear-gradient(180deg, #8fb5c8 0%, #c2dbe0 40%, #e8f0e8 100%), radial-gradient(ellipse at 50% 20%, #d2e6e0 0%, transparent 70%);
}
.scn-mountain-pool-letter .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8fb5c8 0%, #b0d0d8 100%);
  animation: ltr-sky 30s ease-in-out infinite alternate;
}
.scn-mountain-pool-letter .mountains {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a8a7a 0%, #4a6a5a 100%);
  border-radius: 60% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 15px rgba(30,50,30,0.3);
}
.scn-mountain-pool-letter .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a9a7a 0%, #5a7a5a 100%);
  border-radius: 40% 60% 0 0 / 70% 70% 0 0;
}
.scn-mountain-pool-letter .pool {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #5a8a8a 0%, #3a6a6a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,20,20,0.4);
  animation: ltr-pool 8s ease-in-out infinite alternate;
}
.scn-mountain-pool-letter .bench {
  position: absolute; bottom: 18%; left: 45%; width: 40px; height: 12px;
  background: #6a5a4a;
  border-radius: 2px;
}
.scn-mountain-pool-letter .figure {
  position: absolute; bottom: 24%; left: 50%; width: 18px; height: 30px;
  background: radial-gradient(ellipse 80% 60% at 50% 40%, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ltr-figure 6s ease-in-out infinite;
}
.scn-mountain-pool-letter .letter {
  position: absolute; bottom: 24%; left: 46%; width: 14px; height: 10px;
  background: #f0e8d0;
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-5deg);
  animation: ltr-letter 10s ease-in-out infinite alternate;
}
.scn-mountain-pool-letter .tree {
  position: absolute; bottom: 18%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: ltr-tree 12s ease-in-out infinite alternate;
}
.scn-mountain-pool-letter .cloud {
  position: absolute; top: 8%; left: 10%; width: 60px; height: 14px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(5px);
  animation: ltr-cloud 40s linear infinite;
}
@keyframes ltr-sky {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; }
}
@keyframes ltr-pool {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.99); }
}
@keyframes ltr-figure {
  0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(-3deg); } 50% { transform: translateX(0) rotate(3deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); }
}
@keyframes ltr-letter {
  0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes ltr-tree {
  0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0); }
}
@keyframes ltr-cloud {
  0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); }
}

.scn-mountain-pool-landscape {
  background: linear-gradient(180deg, #7bacc0 0%, #a8c8d0 30%, #d0ded8 60%, #c8d8c8 100%), radial-gradient(ellipse at 50% 0%, #b0d0d8 0%, transparent 70%);
}
.scn-mountain-pool-landscape .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #7bacc0 0%, #a8c8d0 100%);
  animation: lnd-sky 25s ease-in-out infinite alternate;
}
.scn-mountain-pool-landscape .far-mountains {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 100%);
  border-radius: 50% 30% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 5px 15px rgba(20,40,30,0.4);
}
.scn-mountain-pool-landscape .gorge-left {
  position: absolute; bottom: 20%; left: 0; width: 35%; height: 45%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 0 40% 0 0 / 0 30% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
  animation: lnd-gorge 18s ease-in-out infinite alternate;
}
.scn-mountain-pool-landscape .gorge-right {
  position: absolute; bottom: 20%; right: 0; width: 40%; height: 50%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 40% 0 0 0 / 30% 0 0 0;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.3);
  animation: lnd-gorge 20s ease-in-out infinite alternate-reverse;
}
.scn-mountain-pool-landscape .reservoir {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #4a7a7a 0%, #2a5a5a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,20,20,0.5);
  animation: lnd-water 6s ease-in-out infinite alternate;
}
.scn-mountain-pool-landscape .lemon-tree {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #6a7a3a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: lnd-tree 14s ease-in-out infinite alternate;
}
.scn-mountain-pool-landscape .path {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 6px;
  background: #6a5a4a;
  border-radius: 50%;
  filter: blur(1px);
}
.scn-mountain-pool-landscape .cloud {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 12px;
  background: rgba(255,255,255,0.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: lnd-cloud 50s linear infinite;
}
@keyframes lnd-sky {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; }
}
@keyframes lnd-gorge {
  0% { transform: translateY(0); } 100% { transform: translateY(-3px); }
}
@keyframes lnd-water {
  0% { transform: scaleY(1); } 50% { transform: scaleY(1.015); } 100% { transform: scaleY(0.995); }
}
@keyframes lnd-tree {
  0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); }
}
@keyframes lnd-cloud {
  0% { transform: translateX(0); } 100% { transform: translateX(-120vw); }
}

.scn-mountain-pool-stranger {
  background: linear-gradient(180deg, #b8d8e0 0%, #d0e8e8 30%, #e8f0e0 60%, #f0f0e0 100%), radial-gradient(ellipse at 40% 20%, #ffffd0 0%, transparent 60%);
}
.scn-mountain-pool-stranger .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8d8e0 0%, #d0e8e8 100%);
}
.scn-mountain-pool-stranger .sun {
  position: absolute; top: 8%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe080 0%, #f0c040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,224,128,0.3);
  animation: str-sun 8s ease-in-out infinite alternate;
}
.scn-mountain-pool-stranger .mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 100%);
  border-radius: 40% 50% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 5px 20px rgba(20,30,20,0.3);
}
.scn-mountain-pool-stranger .reservoir {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 25%;
  background: linear-gradient(180deg, #4a7a7a 0%, #2a5a5a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,20,20,0.4);
  animation: str-water 4s ease-in-out infinite alternate;
}
.scn-mountain-pool-stranger .figure-sitting {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 35px;
  background: radial-gradient(ellipse 70% 60% at 50% 40%, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: str-figure-sit 5s ease-in-out infinite;
}
.scn-mountain-pool-stranger .stranger {
  position: absolute; bottom: 20%; right: 20%; width: 24px; height: 42px;
  background: radial-gradient(ellipse 80% 60% at 50% 40%, #1a2a1a 0%, #000a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: str-stranger 12s ease-in-out infinite;
}
.scn-mountain-pool-stranger .shadow {
  position: absolute; bottom: 14%; left: 25%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: str-shadow 10s ease-in-out infinite alternate;
}
.scn-mountain-pool-stranger .tree {
  position: absolute; bottom: 18%; left: 10%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: str-tree 15s ease-in-out infinite alternate;
}
@keyframes str-sun {
  0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; }
}
@keyframes str-water {
  0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(0.98) translateY(0); }
}
@keyframes str-figure-sit {
  0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(2px) rotate(-4deg); } 70% { transform: translateX(-1px) rotate(4deg); } 100% { transform: translateX(0) rotate(0); }
}
@keyframes str-stranger {
  0% { transform: translateX(0) translateY(0) scaleY(1); } 50% { transform: translateX(-5px) translateY(-2px) scaleY(1.02); } 100% { transform: translateX(0) translateY(0) scaleY(1); }
}
@keyframes str-shadow {
  0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(0.95); opacity: 0.3; } 100% { transform: scaleX(1.05); opacity: 0.6; }
}
@keyframes str-tree {
  0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); }
}

/* ---- boitelle-arrival-home (warm, sunlit, festive) ---- */
.scn-boitelle-arrival-home {
  background: linear-gradient(180deg, #87CEEB 0%, #FFD700 60%, #D2B48C 100%),
              radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 70%);
}
.scn-boitelle-arrival-home .bah-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #FFD700 0%, #87CEEB 100%); animation: bah-sky 8s ease-in-out infinite alternate; }
.scn-boitelle-arrival-home .bah-sun { position:absolute; top:8%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 20px #FFD700; animation: bah-sun 12s ease-in-out infinite alternate; }
.scn-boitelle-arrival-home .bah-road { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-boitelle-arrival-home .bah-figure-boitelle { position:absolute; bottom:35%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bah-walk 3s ease-in-out infinite; }
.scn-boitelle-arrival-home .bah-figure-bride { position:absolute; bottom:35%; left:50%; width:24px; height:52px; background: linear-gradient(180deg, #D98A6C 0%, #c8553d 50%, #FFD700 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bah-sway 2.5s ease-in-out infinite; box-shadow: -4px 0 8px rgba(0,0,0,0.2); }
.scn-boitelle-arrival-home .bah-petal-1 { position:absolute; top:20%; left:30%; width:8px; height:8px; background: #FFB6C1; border-radius: 50% 0 50% 0; animation: bah-confetti 5s linear infinite; }
.scn-boitelle-arrival-home .bah-petal-2 { position:absolute; top:15%; left:60%; width:6px; height:6px; background: #FFD700; border-radius: 50% 0 50% 0; animation: bah-confetti 4s linear infinite 1.5s; }
@keyframes bah-sky { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes bah-sun { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-4px); } }
@keyframes bah-walk { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(2deg); } }
@keyframes bah-sway { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(3deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(3px) rotate(-3deg); } }
@keyframes bah-confetti { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 100% { transform: translateY(80vh) rotate(720deg); opacity:0; } }

/* ---- boitelle-parents-reaction (tense, sunlit, stupefaction) ---- */
.scn-boitelle-parents-reaction {
  background: linear-gradient(180deg, #FFFACD 0%, #F5DEB3 40%, #A0522D 100%),
              radial-gradient(ellipse at 30% 40%, transparent 0%, #2E4053 80%);
}
.scn-boitelle-parents-reaction .bpr-light { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, #FFF8DC 0%, transparent 60%); animation: bpr-flash 4s ease-in-out infinite; }
.scn-boitelle-parents-reaction .bpr-shadow { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, transparent 0%, #2E4053 100%); animation: bpr-deepen 6s ease-in-out infinite; }
.scn-boitelle-parents-reaction .bpr-mother { position:absolute; bottom:25%; left:20%; width:30px; height:60px; background: linear-gradient(180deg, #5D6D7E 0%, #34495E 100%); border-radius: 30% 30% 40% 40%; transform-origin: bottom center; animation: bpr-recoil 1.5s ease-in-out infinite; }
.scn-boitelle-parents-reaction .bpr-father { position:absolute; bottom:22%; left:40%; width:36px; height:65px; background: linear-gradient(180deg, #6E2C00 0%, #3E1A00 100%); border-radius: 30% 30% 40% 40%; transform-origin: bottom center; animation: bpr-struggle 2s ease-in-out infinite; }
.scn-boitelle-parents-reaction .bpr-horse { position:absolute; bottom:28%; left:35%; width:50px; height:40px; background: linear-gradient(135deg, #8B4513 0%, #5D4037 100%); border-radius: 40% 60% 30% 50%; transform-origin: bottom left; animation: bpr-rear 1.8s ease-in-out infinite; }
.scn-boitelle-parents-reaction .bpr-bride { position:absolute; bottom:25%; left:60%; width:28px; height:58px; background: linear-gradient(180deg, #E67E22 0%, #AF601A 50%, #F1C40F 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: -8px 0 16px rgba(0,0,0,0.3); animation: bpr-bright 3s ease-in-out infinite; }
@keyframes bpr-flash { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes bpr-deepen { 0%,100% { opacity:0.6; } 50% { opacity:0.9; } }
@keyframes bpr-recoil { 0%,100% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-8px) rotate(-10deg); } 40% { transform: translateX(0) rotate(0deg); } 60% { transform: translateX(-4px) rotate(-5deg); } 80% { transform: translateX(0) rotate(0deg); } }
@keyframes bpr-struggle { 0%,100% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-4px) rotate(-2deg); } 50% { transform: translateY(0) rotate(4deg); } 75% { transform: translateY(-2px) rotate(-4deg); } }
@keyframes bpr-rear { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-10px) rotate(-15deg); } 60% { transform: translateY(0) rotate(0deg); } 80% { transform: translateY(-5px) rotate(-8deg); } }
@keyframes bpr-bright { 0%,100% { opacity:0.8; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.3); } }

/* ---- boitelle-silent-drive (tense, sunlit, awkward) ---- */
.scn-boitelle-silent-drive {
  background: linear-gradient(180deg, #F5CBA7 0%, #E59866 40%, #A04000 100%),
              radial-gradient(ellipse at 50% 100%, #BA4A00 0%, transparent 70%);
}
.scn-boitelle-silent-drive .bsd-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #FAD7A0 0%, #F5CBA7 100%); animation: bsd-shimmer 10s ease-in-out infinite; }
.scn-boitelle-silent-drive .bsd-road { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #A04000 0%, #6E2C00 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; transform-origin: bottom; animation: bsd-roll 6s linear infinite; }
.scn-boitelle-silent-drive .bsd-carriage { position:absolute; bottom:30%; left:50%; width:80px; height:45px; transform: translateX(-50%); background: linear-gradient(135deg, #5D4037 0%, #3E2723 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.5); animation: bsd-shake 3s ease-in-out infinite; }
.scn-boitelle-silent-drive .bsd-wheel { position:absolute; bottom:28%; left:50%; width:30px; height:30px; transform: translateX(-50%); background: radial-gradient(circle, #3E2723 0%, #1A100F 100%); border-radius: 50%; border: 4px solid #5D4037; animation: bsd-spin 2s linear infinite; }
.scn-boitelle-silent-drive .bsd-antoine { position:absolute; bottom:38%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #2C3E50 0%, #1A252F 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bsd-whistle 4s ease-in-out infinite; }
.scn-boitelle-silent-drive .bsd-mother { position:absolute; bottom:38%; left:56%; width:22px; height:42px; background: linear-gradient(180deg, #5D6D7E 0%, #34495E 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bsd-glance 3.5s ease-in-out infinite; }
@keyframes bsd-shimmer { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes bsd-roll { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }
@keyframes bsd-shake { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 75% { transform: translateX(-52%) rotate(-2deg); } }
@keyframes bsd-spin { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes bsd-whistle { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(5deg); } 60% { transform: translateY(0) rotate(-5deg); } 80% { transform: translateY(-1px) rotate(3deg); } }
@keyframes bsd-glance { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(8deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(4deg); } }

/* ---- boitelle-laughter (funny, sunlit, burst of joy) ---- */
.scn-boitelle-laughter {
  background: linear-gradient(180deg, #85C1E9 0%, #F7DC6F 50%, #2ECC71 100%),
              radial-gradient(circle at 50% 0%, #F1C40F 0%, transparent 60%);
}
.scn-boitelle-laughter .bla-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #AED6F1 0%, #85C1E9 100%); animation: bla-sky 5s ease-in-out infinite alternate; }
.scn-boitelle-laughter .bla-sunburst { position:absolute; top:5%; left:50%; width:80px; height:80px; transform: translateX(-50%); background: radial-gradient(circle, #FFF8DC 0%, #F1C40F 50%, transparent 100%); border-radius: 50%; animation: bla-pulse 2s ease-in-out infinite; }
.scn-boitelle-laughter .bla-hills { position:absolute; bottom:15%; left:0; right:0; height:35%; background: linear-gradient(180deg, #2ECC71 0%, #1E8449 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; animation: bla-bounce 0.8s ease-in-out infinite; }
.scn-boitelle-laughter .bla-horse { position:absolute; bottom:25%; left:20%; width:80px; height:50px; background: linear-gradient(135deg, #8B4513 0%, #5D4037 100%); border-radius: 40% 60% 30% 50%; transform-origin: bottom center; animation: bla-gallop 0.6s ease-in-out infinite; }
.scn-boitelle-laughter .bla-antoine { position:absolute; bottom:35%; left:25%; width:22px; height:45px; background: linear-gradient(180deg, #1A5276 0%, #0E2F44 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bla-vibrate 0.15s linear infinite; }
.scn-boitelle-laughter .bla-bride { position:absolute; bottom:35%; left:32%; width:26px; height:48px; background: linear-gradient(180deg, #F39C12 0%, #D35400 50%, #F1C40F 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bla-vibrate 0.12s linear infinite 0.05s; }
.scn-boitelle-laughter .bla-ripples { position:absolute; bottom:40%; left:50%; width:100px; height:20px; transform: translateX(-50%); background: radial-gradient(ellipse, #FFF 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: bla-ripple 0.8s ease-out infinite; }
@keyframes bla-sky { 0% { opacity:0.9; } 100% { opacity:1; } }
@keyframes bla-pulse { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.2); } }
@keyframes bla-bounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes bla-gallop { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(-5deg); } }
@keyframes bla-vibrate { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(1px, -1px) rotate(2deg); } 50% { transform: translate(-1px, 0) rotate(-2deg); } 75% { transform: translate(0, 1px) rotate(1deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes bla-ripple { 0% { transform: translateX(-50%) scale(0.5); opacity:0.8; } 100% { transform: translateX(-50%) scale(2); opacity:0; } }

/* madhouse-mirror-treatment – tense, bright interior */
.scn-madhouse-mirror-treatment {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #d9c4a0 40%, #a6886e 100%),
    radial-gradient(ellipse at 50% 20%, #fff5e6 0%, transparent 60%);
}
.scn-madhouse-mirror-treatment .bg     { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,220,180,.15) 0%, transparent 100%); animation: mhmt-bg 12s ease-in-out infinite alternate; }
.scn-madhouse-mirror-treatment .lamp   { position:absolute; bottom:55%; left:28%; width:12px; height:20px; background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08030 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 40px 12px rgba(255,208,128,.7), 0 0 80px 24px rgba(255,180,80,.3); animation: mhmt-lamp 2s ease-in-out infinite alternate; }
.scn-madhouse-mirror-treatment .armchair { position:absolute; bottom:18%; left:35%; width:130px; height:110px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3), 0 8px 12px rgba(0,0,0,.2); animation: mhmt-chair 8s ease-in-out infinite; }
.scn-madhouse-mirror-treatment .woman-body { position:absolute; bottom:18%; left:40%; width:60px; height:80px; background: linear-gradient(180deg, #b89878 0%, #7a5a3a 100%); border-radius: 40% 40% 50% 50% / 50% 50% 60% 60%; animation: mhmt-sob 3s ease-in-out infinite; }
.scn-madhouse-mirror-treatment .woman-head { position:absolute; bottom:46%; left:43%; width:40px; height:40px; background: radial-gradient(circle at 45% 40%, #d4b898 0%, #b89878 100%); border-radius: 50%; box-shadow: inset -6px -6px 10px rgba(0,0,0,.1), 0 0 20px rgba(0,0,0,.1); animation: mhmt-sob 3s ease-in-out infinite 0.1s; }
.scn-madhouse-mirror-treatment .veil   { position:absolute; bottom:44%; left:41%; width:50px; height:30px; background: linear-gradient(180deg, rgba(255,240,220,.5) 0%, rgba(255,220,180,.3) 100%); border-radius: 30% 30% 40% 40%; filter: blur(2px); animation: mhmt-veil 4s ease-in-out infinite; }
.scn-madhouse-mirror-treatment .doctor-arm { position:absolute; bottom:30%; left:68%; width:60px; height:14px; background: linear-gradient(90deg, #d4b898 0%, #c0a080 100%); border-radius: 40% 20% 20% 40%; transform-origin: left center; animation: mhmt-reach 5s ease-in-out infinite alternate; }
.scn-madhouse-mirror-treatment .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 0%, rgba(40,20,10,.3) 100%); animation: mhmt-shadow 12s ease-in-out infinite alternate; }
@keyframes mhmt-bg     { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mhmt-lamp   { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 40px 12px rgba(255,208,128,.7), 0 0 80px 24px rgba(255,180,80,.3); } 50% { transform: scaleY(1.03) scaleX(1.02); box-shadow: 0 0 60px 18px rgba(255,208,128,.9), 0 0 100px 30px rgba(255,180,80,.5); } 100% { transform: scaleY(0.98) scaleX(0.99); box-shadow: 0 0 30px 8px rgba(255,208,128,.5), 0 0 60px 18px rgba(255,180,80,.2); } }
@keyframes mhmt-chair  { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-0.8deg) translateY(-2px); } 100% { transform: rotate(0.6deg) translateY(0); } }
@keyframes mhmt-sob    { 0% { transform: translateY(0) rotate(-1deg); } 20% { transform: translateY(-3px) rotate(2deg); } 40% { transform: translateY(1px) rotate(-3deg); } 60% { transform: translateY(-2px) rotate(1deg); } 80% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes mhmt-veil   { 0% { transform: translateY(0) rotate(0deg) skewX(0deg); } 50% { transform: translateY(-2px) rotate(-5deg) skewX(2deg); opacity:0.6; } 100% { transform: translateY(1px) rotate(3deg) skewX(-1deg); } }
@keyframes mhmt-reach  { 0% { transform: translate(0,0) scaleX(1); } 50% { transform: translate(-10px, -8px) scaleX(0.95); } 100% { transform: translate(0,-4px) scaleX(1.02); } }
@keyframes mhmt-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.4 } }

/* madhouse-no-marks – calm, bright interior */
.scn-madhouse-no-marks {
  background: 
    linear-gradient(180deg, #f0e8dc 0%, #e0d0c0 40%, #c0b0a0 100%),
    radial-gradient(ellipse at 70% 30%, #fff8f0 0%, transparent 70%);
}
.scn-madhouse-no-marks .bg        { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,240,230,.1) 0%, transparent 100%); animation: mhnm-bg 18s ease-in-out infinite alternate; }
.scn-madhouse-no-marks .chair-back { position:absolute; bottom:20%; left:30%; width:80px; height:120px; background: linear-gradient(90deg, #b09880 0%, #8a7a6a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 4px 0 10px rgba(0,0,0,.1); animation: mhnm-chair 15s ease-in-out infinite; }
.scn-madhouse-no-marks .figure-body { position:absolute; bottom:20%; left:38%; width:60px; height:90px; background: linear-gradient(180deg, #e0c8b8 0%, #c0a890 100%); border-radius: 40% 40% 50% 50% / 50% 50% 60% 60%; animation: mhnm-breathe 12s ease-in-out infinite; }
.scn-madhouse-no-marks .figure-head { position:absolute; bottom:55%; left:40%; width:40px; height:42px; background: radial-gradient(circle at 50% 40%, #f0dcc8 0%, #d4b898 100%); border-radius: 50%; box-shadow: inset -4px -4px 8px rgba(0,0,0,.05); animation: mhnm-breathe 12s ease-in-out infinite 0.2s; }
.scn-madhouse-no-marks .hair      { position:absolute; bottom:58%; left:37%; width:50px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30%; animation: mhnm-hair 9s ease-in-out infinite; }
.scn-madhouse-no-marks .hand      { position:absolute; bottom:43%; left:52%; width:20px; height:25px; background: linear-gradient(180deg, #e0c8b8 0%, #c8b098 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: mhnm-hand-touch 14s ease-in-out infinite; }
.scn-madhouse-no-marks .shoulder  { position:absolute; bottom:18%; left:35%; width:80px; height:30px; background: linear-gradient(180deg, #e0c8b8 0%, #c0a890 100%); border-radius: 30% 30% 40% 40%; animation: mhnm-breathe 12s ease-in-out infinite 0.1s; }
@keyframes mhnm-bg      { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes mhnm-chair   { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(0.5deg) translateY(-3px); } 100% { transform: rotate(-0.3deg) translateY(0); } }
@keyframes mhnm-breathe { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(1.008) translateY(-1px); } 50% { transform: scaleY(1.015) translateY(-2px); } 75% { transform: scaleY(1.005) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes mhnm-hair    { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes mhnm-hand-touch { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(-8px, -6px) rotate(-10deg); } 60% { transform: translate(-12px, -4px) rotate(-5deg); } 100% { transform: translate(0,0) rotate(0deg); } }

/* mme-hermet-history – dark mood, bright interior */
.scn-mme-hermet-history {
  background: 
    linear-gradient(180deg, #e8d8c0 0%, #c0a888 40%, #8a6e56 100%),
    radial-gradient(ellipse at 50% 30%, #f5e6d0 0%, transparent 70%);
}
.scn-mme-hermet-history .bg     { position:absolute; inset:0; background: linear-gradient(135deg, rgba(120,80,50,.15) 0%, transparent 100%); animation: mmhh-bg 20s ease-in-out infinite alternate; }
.scn-mme-hermet-history .wallpaper { position:absolute; top:0; left:0; right:0; bottom:40%; background: repeating-linear-gradient(90deg, rgba(180,150,120,.2) 0px, rgba(180,150,120,.2) 6px, transparent 6px, transparent 12px); animation: mmhh-wp 30s linear infinite; }
.scn-mme-hermet-history .vanity  { position:absolute; bottom:15%; left:25%; width:120px; height:80px; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: mmhh-furniture 15s ease-in-out infinite; }
.scn-mme-hermet-history .mirror-frame { position:absolute; bottom:38%; left:28%; width:90px; height:110px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%; box-shadow: inset 0 0 0 4px #7a5a3a, 0 8px 12px rgba(0,0,0,.2); animation: mmhh-furniture 15s ease-in-out infinite 0.1s; }
.scn-mme-hermet-history .mirror-glass { position:absolute; bottom:41%; left:32%; width:70px; height:80px; background: radial-gradient(circle at 50% 40%, rgba(200,180,160,.6) 0%, rgba(160,140,120,.3) 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,.2); animation: mmhh-glass 8s ease-in-out infinite alternate; }
.scn-mme-hermet-history .figure-reflection { position:absolute; bottom:44%; left:34%; width:40px; height:50px; background: linear-gradient(180deg, rgba(180,150,130,.7) 0%, rgba(120,100,80,.5) 100%); border-radius: 40% 40% 50% 50% / 60% 60% 50% 50%; filter: blur(3px); animation: mmhh-reflect 12s ease-in-out infinite; }
.scn-mme-hermet-history .crack   { position:absolute; bottom:55%; left:45%; width:30px; height:4px; background: linear-gradient(90deg, transparent 0%, rgba(80,60,40,.6) 50%, transparent 100%); border-radius: 50%; transform: rotate(30deg); animation: mmhh-crack 18s ease-in-out infinite; }
.scn-mme-hermet-history .shadow  { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 0%, rgba(60,40,20,.4) 100%); animation: mmhh-shadow 20s ease-in-out infinite alternate; }
@keyframes mmhh-bg       { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes mmhh-wp       { 0% { transform: translateX(0); } 100% { transform: translateX(-12px); } }
@keyframes mmhh-furniture { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes mmhh-glass    { 0% { opacity:0.6; box-shadow: inset 0 0 20px rgba(0,0,0,.2); } 50% { opacity:0.8; box-shadow: inset 0 0 30px rgba(0,0,0,.3); } 100% { opacity:0.7; box-shadow: inset 0 0 25px rgba(0,0,0,.25); } }
@keyframes mmhh-reflect  { 0% { transform: translateY(0) scaleX(1); opacity:0.4; } 50% { transform: translateY(-2px) scaleX(0.98); opacity:0.6; } 100% { transform: translateY(1px) scaleX(1.02); opacity:0.5; } }
@keyframes mmhh-crack    { 0% { transform: translateX(0) rotate(30deg) scaleX(1); } 50% { transform: translateX(3px) rotate(32deg) scaleX(1.1); } 100% { transform: translateX(-2px) rotate(28deg) scaleX(0.9); } }
@keyframes mmhh-shadow   { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.4 } }

/* mme-hermet-son-ill – dark, dim interior */
.scn-mme-hermet-son-ill {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 60%, #2a2a3e 100%),
    radial-gradient(ellipse at 50% 40%, #2c2c44 0%, transparent 70%);
}
.scn-mme-hermet-son-ill .bg     { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,10,30,.3) 0%, transparent 100%); animation: mmhs-bg 16s ease-in-out infinite alternate; }
.scn-mme-hermet-son-ill .candle  { position:absolute; bottom:50%; left:60%; width:8px; height:16px; background: linear-gradient(180deg, #ffd080 0%, #b08030 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 30px 6px rgba(255,200,80,.7), 0 0 60px 18px rgba(255,180,60,.3); animation: mmhs-candle 3s ease-in-out infinite alternate; }
.scn-mme-hermet-son-ill .bed    { position:absolute; bottom:10%; left:20%; width:160px; height:80px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.4); animation: mmhs-bed 10s ease-in-out infinite; }
.scn-mme-hermet-son-ill .child-body { position:absolute; bottom:14%; left:35%; width:45px; height:55px; background: linear-gradient(180deg, #b8a090 0%, #8a7a6a 100%); border-radius: 40% 40% 50% 50% / 50% 50% 60% 60%; animation: mmhs-child 8s ease-in-out infinite; }
.scn-mme-hermet-son-ill .child-head { position:absolute; bottom:42%; left:36%; width:30px; height:30px; background: radial-gradient(circle at 50% 40%, #d0b8a8 0%, #b09888 100%); border-radius: 50%; box-shadow: inset -4px -4px 6px rgba(0,0,0,.2); animation: mmhs-child 8s ease-in-out infinite 0.2s; }
.scn-mme-hermet-son-ill .priest-body { position:absolute; bottom:18%; left:62%; width:50px; height:70px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 60% 60%; animation: mmhs-priest 12s ease-in-out infinite; }
.scn-mme-hermet-son-ill .priest-head { position:absolute; bottom:50%; left:64%; width:26px; height:28px; background: radial-gradient(circle at 45% 40%, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50%; box-shadow: inset -3px -3px 4px rgba(0,0,0,.3); animation: mmhs-priest 12s ease-in-out infinite 0.1s; }
.scn-mme-hermet-son-ill .blanket { position:absolute; bottom:11%; left:26%; width:140px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; filter: blur(1px); animation: mmhs-blanket 9s ease-in-out infinite; }
@keyframes mmhs-bg      { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.6 } }
@keyframes mmhs-candle  { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 30px 6px rgba(255,200,80,.7), 0 0 60px 18px rgba(255,180,60,.3); } 50% { transform: scaleY(1.05) scaleX(1.02); box-shadow: 0 0 40px 10px rgba(255,200,80,.9), 0 0 80px 24px rgba(255,180,60,.5); } 100% { transform: scaleY(0.97) scaleX(0.99); box-shadow: 0 0 25px 4px rgba(255,200,80,.5), 0 0 50px 12px rgba(255,180,60,.2); } }
@keyframes mmhs-bed      { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mmhs-child    { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0.5px) rotate(0deg); } }
@keyframes mmhs-priest   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-0.5deg); } 100% { transform: translateY(1px) rotate(0.3deg); } }
@keyframes mmhs-blanket  { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(2px) translateY(-1px); } 100% { transform: translateX(-1px) translateY(0); } }

.scn-suicide-bureau-experience {
  background: linear-gradient(180deg, #f0dbb0 0%, #c09060 50%, #6a4a2a 100%), 
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-suicide-bureau-experience .couch {
  position: absolute;
  bottom: 20%;
  left: 10%;
  width: 80%;
  height: 30%;
  background: linear-gradient(180deg, #8b5a3a 0%, #5a3a1a 100%);
  border-radius: 20px;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
  animation: sbe-couch 4s ease-in-out infinite alternate;
}
.scn-suicide-bureau-experience .figure-reclining {
  position: absolute;
  bottom: 25%;
  left: 15%;
  width: 60%;
  height: 15%;
  background: linear-gradient(180deg, #d0a080 0%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: sbe-recline 2s ease-in-out infinite alternate;
}
.scn-suicide-bureau-experience .figure-standing {
  position: absolute;
  bottom: 20%;
  left: 70%;
  width: 12%;
  height: 40%;
  background: linear-gradient(180deg, #b09070 0%, #705030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sbe-shake 1.5s ease-in-out infinite;
}
.scn-suicide-bureau-experience .lamp {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 8%;
  height: 8%;
  background: radial-gradient(circle, #ffd680 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffd680;
  animation: sbe-flicker 0.5s ease-in-out infinite alternate;
}
.scn-suicide-bureau-experience .table {
  position: absolute;
  bottom: 10%;
  left: 40%;
  width: 15%;
  height: 10%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a1a 100%);
  border-radius: 5px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sbe-table 6s ease-in-out infinite alternate;
}
.scn-suicide-bureau-experience .haze {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(255,230,180,0.2) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(200,160,100,0.2) 0%, transparent 40%);
  filter: blur(8px);
  animation: sbe-haze 4s ease-in-out infinite alternate;
}
@keyframes sbe-couch {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes sbe-recline {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-5px); }
  100% { transform: rotate(-5deg) translateY(2px); }
}
@keyframes sbe-shake {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-10px) rotate(-5deg); }
  50% { transform: translateX(10px) rotate(5deg); }
  75% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sbe-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 20px 5px #ffd680; }
  50% { opacity: 1; box-shadow: 0 0 40px 15px #ffd680; }
  100% { opacity: 0.9; box-shadow: 0 0 25px 8px #ffd680; }
}
@keyframes sbe-table {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.98); }
}
@keyframes sbe-haze {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(0.95); }
}

.scn-final-paragraph {
  background: linear-gradient(180deg, #f5edd0 0%, #e0cfa0 50%, #c0a870 100%),
              radial-gradient(ellipse at 50% 100%, #d0bfa0 0%, transparent 70%);
}
.scn-final-paragraph .window {
  position: absolute;
  top: 5%;
  right: 10%;
  width: 20%;
  height: 30%;
  background: linear-gradient(135deg, #e0f0ff 0%, #b0d0e0 100%);
  border: 4px solid #8a7a5a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.5);
  animation: fp-window-glow 6s ease-in-out infinite alternate;
}
.scn-final-paragraph .desk {
  position: absolute;
  bottom: 10%;
  left: 15%;
  width: 40%;
  height: 20%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 10px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: fp-desk-breathe 8s ease-in-out infinite alternate;
}
.scn-final-paragraph .chair {
  position: absolute;
  bottom: 5%;
  right: 15%;
  width: 15%;
  height: 35%;
  background: linear-gradient(180deg, #705030 0%, #503020 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fp-chair 12s ease-in-out infinite;
}
.scn-final-paragraph .sunbeam {
  position: absolute;
  top: 5%;
  right: 10%;
  width: 30%;
  height: 70%;
  background: linear-gradient(135deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0) 90%);
  clip-path: polygon(0 0, 100% 10%, 90% 100%, 0% 100%);
  animation: fp-sunbeam 20s ease-in-out infinite alternate;
}
.scn-final-paragraph .dust {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,255,0.3) 0%, transparent 20%),
              radial-gradient(circle at 70% 60%, rgba(255,255,255,0.2) 0%, transparent 30%),
              radial-gradient(circle at 50% 80%, rgba(255,255,255,0.1) 0%, transparent 20%);
  filter: blur(4px);
  animation: fp-dust 15s ease-in-out infinite alternate;
}
.scn-final-paragraph .book-open {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 25%;
  height: 15%;
  background: linear-gradient(135deg, #f5f0e0 30%, #d0c0a0 70%);
  border-radius: 5px 30px 30px 5px / 5px 20px 20px 5px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: fp-book 10s ease-in-out infinite alternate;
}
.scn-final-paragraph .bookshelf {
  position: absolute;
  top: 5%;
  left: 3%;
  width: 20%;
  height: 85%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: fp-shelf 20s ease-in-out infinite;
}
@keyframes fp-window-glow {
  0% { opacity: 0.9; box-shadow: inset 0 0 10px rgba(255,255,200,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,200,0.6); }
  100% { opacity: 0.95; box-shadow: inset 0 0 15px rgba(255,255,200,0.4); }
}
@keyframes fp-desk-breathe {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.01) translateY(-2px); }
  100% { transform: scale(0.99) translateY(1px); }
}
@keyframes fp-chair {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(1px); }
}
@keyframes fp-sunbeam {
  0% { transform: rotate(0deg) translateX(0); opacity: 0.4; }
  50% { transform: rotate(2deg) translateX(5px); opacity: 0.7; }
  100% { transform: rotate(-1deg) translateX(-3px); opacity: 0.5; }
}
@keyframes fp-dust {
  0% { transform: scale(1) rotate(0deg); opacity: 0.3; }
  50% { transform: scale(1.1) rotate(5deg); opacity: 0.6; }
  100% { transform: scale(0.95) rotate(-3deg); opacity: 0.4; }
}
@keyframes fp-book {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(0.98); }
}
@keyframes fp-shelf {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.005) rotate(0.5deg); }
  100% { transform: scale(0.995) rotate(-0.5deg); }
}

/* --- Scene: ring-aunt-story-begins --- */
.scn-ring-aunt-story-begins {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #1a0e0a 50%, #0f0604 100%),
    radial-gradient(ellipse at 75% 80%, #8a5a2a 0%, transparent 60%);
}
.scn-ring-aunt-story-begins .r1-wall {
  position:absolute; top:0; left:0; right:0; height:60%;
  background: linear-gradient(135deg, #2a1a0e 0%, #1a0e0a 100%);
  border-bottom: 2px solid #3a2a1a;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
}
.scn-ring-aunt-story-begins .r1-floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1a0e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-ring-aunt-story-begins .r1-table {
  position:absolute; bottom:18%; left:50%; width:100px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: r1-table 12s ease-in-out infinite;
}
@keyframes r1-table {
  0%,100% { transform: translateX(-50%) }
  50% { transform: translateX(-50%) translateY(1px) }
}
.scn-ring-aunt-story-begins .r1-lamp {
  position:absolute; bottom:28%; left:52%; width:16px; height:24px;
  transform: translate(-50%,0);
  background: radial-gradient(circle at 50% 30%, #e8a030 0%, #907020 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #e8a030, 0 0 60px 20px rgba(232,160,48,.4);
  animation: r1-lamp 4s ease-in-out infinite alternate;
}
@keyframes r1-lamp {
  0% { box-shadow: 0 0 25px 8px #e8a030, 0 0 50px 15px rgba(232,160,48,.3); transform: translate(-50%,0) scale(1); }
  50% { box-shadow: 0 0 40px 15px #f0b040, 0 0 80px 30px rgba(240,176,64,.5); transform: translate(-50%,-1px) scale(1.02); }
  100% { box-shadow: 0 0 30px 10px #e8a030, 0 0 60px 20px rgba(232,160,48,.35); transform: translate(-50%,0) scale(1); }
}
.scn-ring-aunt-story-begins .r1-hair {
  position:absolute; bottom:20%; left:50%; width:40px; height:8px;
  transform: translateX(-50%) rotate(-10deg);
  background: linear-gradient(90deg, #2a1a0e 0%, #3a2a1a 50%, #2a1a0e 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 12px 4px rgba(58,42,26,.3);
  animation: r1-hair 8s ease-in-out infinite;
}
@keyframes r1-hair {
  0%,100% { transform: translateX(-50%) rotate(-10deg) scaleY(1); }
  33% { transform: translateX(-50%) rotate(-8deg) scaleY(1.05); }
  66% { transform: translateX(-50%) rotate(-12deg) scaleY(0.95); }
}
.scn-ring-aunt-story-begins .r1-old-lady {
  position:absolute; bottom:14%; left:30%; width:30px; height:50px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0f0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: r1-lady 6s ease-in-out infinite;
}
@keyframes r1-lady {
  0%,100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(2deg) translateY(-1px); }
}
.scn-ring-aunt-story-begins .r1-picture {
  position:absolute; top:15%; left:20%; width:20px; height:25px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0e 100%);
  border: 2px solid #6a4a3a;
  border-radius: 2px;
  animation: r1-pic 16s ease-in-out infinite alternate;
}
@keyframes r1-pic {
  0%,100% { opacity: .7; transform: scale(1); }
  50% { opacity: .9; transform: scale(1.03); }
}

/* --- Scene: ring-grandfather --- */
.scn-ring-grandfather {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a1a0a 40%, #1a0e0a 100%),
    radial-gradient(ellipse at 80% 30%, #4a3a2a 0%, transparent 70%);
}
.scn-ring-grandfather .r2-bg {
  position:absolute; inset:0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 3px, rgba(255,255,255,.02) 3px, rgba(255,255,255,.02) 4px);
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
}
.scn-ring-grandfather .r2-beam {
  position:absolute; top:20%; left:10%; right:10%; height:6px;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-ring-grandfather .r2-rope {
  position:absolute; top:20%; left:50%; width:3px; height:30%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 1px;
  animation: r2-rope 8s ease-in-out infinite;
}
@keyframes r2-rope {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(0.5deg); }
  50% { transform: translateX(-50%) rotate(-0.5deg); }
  75% { transform: translateX(-50%) rotate(0.3deg); }
}
.scn-ring-grandfather .r2-figure {
  position:absolute; top:38%; left:50%; width:20px; height:35px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0e0a 0%, #0f0604 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: r2-figure 8s ease-in-out infinite;
}
@keyframes r2-figure {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(1deg) translateY(1px); }
  50% { transform: translateX(-50%) rotate(-1deg) translateY(-1px); }
  75% { transform: translateX(-50%) rotate(0.5deg) translateY(0); }
}
.scn-ring-grandfather .r2-shadow {
  position:absolute; top:42%; left:48%; width:30px; height:15px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  transform: rotate(10deg);
  animation: r2-shadow 8s ease-in-out infinite alternate;
}
@keyframes r2-shadow {
  0%,100% { opacity: 1; transform: rotate(10deg) scale(1); }
  50% { opacity: .6; transform: rotate(12deg) scale(0.9); }
}
.scn-ring-grandfather .r2-window {
  position:absolute; top:12%; right:15%; width:18px; height:20px;
  background: radial-gradient(circle at 50% 50%, #5a4a3a 0%, #2a1a0e 100%);
  border: 2px solid #3a2a1a;
  border-radius: 2px;
  box-shadow: 0 0 15px 5px rgba(90,74,58,.3);
  animation: r2-window 10s ease-in-out infinite alternate;
}
@keyframes r2-window {
  0% { opacity: .4; box-shadow: 0 0 10px 3px rgba(90,74,58,.2); }
  50% { opacity: .8; box-shadow: 0 0 25px 10px rgba(90,74,58,.5); }
  100% { opacity: .5; box-shadow: 0 0 15px 5px rgba(90,74,58,.3); }
}

/* --- Scene: ring-young-gontran --- */
.scn-ring-young-gontran {
  background:
    linear-gradient(180deg, #e8a050 0%, #c07030 30%, #806030 60%, #203020 100%),
    radial-gradient(ellipse at 50% 100%, #ffcc80 0%, transparent 60%);
}
.scn-ring-young-gontran .r3-sky {
  position:absolute; top:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #ff8844 0%, #ffaa66 30%, #cc8844 60%, #886644 100%);
  animation: r3-sky 20s ease-in-out infinite alternate;
}
@keyframes r3-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
.scn-ring-young-gontran .r3-glow {
  position:absolute; top:30%; left:50%; width:100px; height:60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #ffcc80 0%, transparent 70%);
  filter: blur(8px);
  animation: r3-glow 25s ease-in-out infinite alternate;
}
@keyframes r3-glow {
  0% { opacity: .5; transform: translateX(-50%) scale(1); }
  50% { opacity: .8; transform: translateX(-50%) scale(1.1); }
  100% { opacity: .6; transform: translateX(-50%) scale(0.9); }
}
.scn-ring-young-gontran .r3-tree-left {
  position:absolute; bottom:30%; left:5%; width:40px; height:50%;
  background: linear-gradient(0deg, #203020 0%, #406040 40%, #508050 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset -5px 0 10px rgba(0,0,0,.3);
  animation: r3-tree 14s ease-in-out infinite alternate;
}
@keyframes r3-tree {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
.scn-ring-young-gontran .r3-tree-right {
  position:absolute; bottom:30%; right:5%; width:35px; height:55%;
  background: linear-gradient(0deg, #203020 0%, #305030 40%, #507050 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 5px 0 10px rgba(0,0,0,.3);
  animation: r3-tree 18s ease-in-out infinite alternate-reverse;
}
.scn-ring-young-gontran .r3-clearing {
  position:absolute; bottom:0; left:15%; right:15%; height:40%;
  background: linear-gradient(180deg, #507050 0%, #406040 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-ring-young-gontran .r3-figures {
  position:absolute; bottom:22%; left:50%; width:40px; height:50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, #1a1a1a 0%, transparent 70%);
  clip-path: polygon(25% 0%, 75% 0%, 100% 100%, 0% 100%);
  animation: r3-figures 6s ease-in-out infinite;
}
@keyframes r3-figures {
  0%,100% { transform: translateX(-50%) translateY(0); }
  25% { transform: translateX(-52%) translateY(-2px); }
  50% { transform: translateX(-48%) translateY(1px); }
  75% { transform: translateX(-50%) translateY(-1px); }
}
.scn-ring-young-gontran .r3-path {
  position:absolute; bottom:0; left:45%; right:45%; height:25%;
  background: linear-gradient(180deg, #806030 0%, #403020 100%);
  transform: perspective(50px) rotateX(10deg);
  border-radius: 10% 10% 0 0;
}

/* --- Scene: ring-courtship --- */
.scn-ring-courtship {
  background:
    linear-gradient(180deg, #d0b0a0 0%, #b08070 35%, #805040 70%, #402820 100%),
    radial-gradient(ellipse at 50% 100%, #e0c0a0 0%, transparent 60%);
}
.scn-ring-courtship .r4-sky {
  position:absolute; top:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #e0c0a0 0%, #c0a090 50%, #a08070 100%);
  animation: r4-sky 30s ease-in-out infinite alternate;
}
@keyframes r4-sky {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
.scn-ring-courtship .r4-garden {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(0deg, #204020 0%, #407040 40%, #609060 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
}
.scn-ring-courtship .r4-fence {
  position:absolute; bottom:25%; left:10%; right:10%; height:30px;
  background: repeating-linear-gradient(90deg, #c0a090 0px, #c0a090 6px, transparent 6px, transparent 12px);
  background-size: 12px 30px;
  border-top: 3px solid #a08070;
  border-bottom: 3px solid #a08070;
  animation: r4-fence 20s linear infinite;
}
@keyframes r4-fence {
  0% { background-position: 0 0; }
  100% { background-position: 12px 0; }
}
.scn-ring-courtship .r4-flowers {
  position:absolute; bottom:30%; left:40%; width:30px; height:20px;
  background: radial-gradient(circle at 30% 50%, #d06040 0%, #b05030 40%, transparent 70%),
              radial-gradient(circle at 70% 50%, #e08060 0%, #c06040 40%, transparent 70%),
              radial-gradient(circle at 50% 30%, #f0a080 0%, #d07050 40%, transparent 70%);
  background-size: 100% 100%;
  filter: blur(2px);
  animation: r4-flowers 5s ease-in-out infinite alternate;
}
@keyframes r4-flowers {
  0%,100% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.05); }
}
.scn-ring-courtship .r4-lady {
  position:absolute; bottom:20%; left:35%; width:25px; height:50px;
  background: linear-gradient(180deg, #704030 0%, #402820 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: r4-lady 7s ease-in-out infinite;
}
@keyframes r4-lady {
  0%,100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-2deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(2deg) translateY(-1px); }
}
.scn-ring-courtship .r4-man {
  position:absolute; bottom:20%; left:52%; width:28px; height:50px;
  background: linear-gradient(180deg, #605040 0%, #403020 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: r4-man 8s ease-in-out infinite;
}
@keyframes r4-man {
  0%,100% { transform: rotate(0deg) translateY(0); }
  33% { transform: rotate(1deg) translateY(-3px); }
  66% { transform: rotate(-1deg) translateY(0); }
}
.scn-ring-courtship .r4-path {
  position:absolute; bottom:0; left:44%; right:44%; height:20%;
  background: linear-gradient(0deg, #a08070 0%, #806050 100%);
  border-radius: 10% 10% 0 0;
  transform: perspective(30px) rotateX(5deg);
  box-shadow: 0 -4px 8px rgba(0,0,0,.2);
}

.scn-ring-threat {
  background: 
    linear-gradient(180deg, #2a1a3e 0%, #4a2a5e 30%, #6a4a3e 60%, #b07a4a 100%),
    radial-gradient(ellipse at 30% 70%, #d09a5a 0%, transparent 60%);
}
.scn-ring-threat .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a5e 50%, transparent 100%);
  animation: rt-sky 15s ease-in-out infinite alternate;
}
.scn-ring-threat .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: rt-ground 10s ease-in-out infinite alternate;
}
.scn-ring-threat .tree {
  position: absolute; bottom: 35%; left: 20%; width: 12px; height: 60%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 0 0; transform-origin: bottom center;
  animation: rt-tree 6s ease-in-out infinite;
}
.scn-ring-threat .lamp {
  position: absolute; bottom: 42%; left: 70%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #4a4a4a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px #d09a5a, 0 0 40px 16px rgba(208,154,90,.3);
  animation: rt-lamp 3s ease-in-out infinite alternate;
}
.scn-ring-threat .figure-man {
  position: absolute; bottom: 12%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rt-man 2s ease-in-out infinite;
}
.scn-ring-threat .figure-woman {
  position: absolute; bottom: 5%; left: 55%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #3a2a4e 0%, #1a1a3e 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform-origin: bottom center;
  animation: rt-woman 3s ease-in-out infinite;
}
.scn-ring-threat .shadow {
  position: absolute; bottom: 5%; left: 40%; width: 80px; height: 12px;
  background: rgba(0,0,0,.4); filter: blur(6px); border-radius: 50%;
  animation: rt-shadow 2s ease-in-out infinite alternate;
}
@keyframes rt-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes rt-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rt-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes rt-lamp { 0% { box-shadow: 0 0 15px 4px #b0844a; opacity:.8 } 50% { box-shadow: 0 0 30px 12px #d09a5a; opacity:1 } 100% { box-shadow: 0 0 18px 6px #b0844a; opacity:.85 } }
@keyframes rt-man { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes rt-woman { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(1px) rotate(1deg) } }
@keyframes rt-shadow { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.1) scaleY(0.9) } 100% { transform: scaleX(1) scaleY(1) } }

.scn-ring-engagement {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #e0d0b8 50%, #c8b8a0 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 50%);
}
.scn-ring-engagement .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f5e6c8 0%, #e0d0b8 100%);
  animation: re-wall 20s ease-in-out infinite alternate;
}
.scn-ring-engagement .window {
  position: absolute; top: 10%; left: 60%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at center, #fff8e0 0%, #f0e0c8 100%);
  border: 4px solid #b0a090; box-shadow: inset 0 0 30px rgba(255,255,240,.5);
  animation: re-window 15s ease-in-out infinite alternate;
}
.scn-ring-engagement .table {
  position: absolute; bottom: 20%; left: 20%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,.3);
  animation: re-table 5s ease-in-out infinite alternate;
}
.scn-ring-engagement .figure-man {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: re-man 2s ease-in-out infinite;
}
.scn-ring-engagement .figure-woman {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: re-woman 2.5s ease-in-out infinite;
}
.scn-ring-engagement .pendulum {
  position: absolute; top: 5%; left: 20%; width: 4px; height: 40%;
  background: #2a2a2a; transform-origin: top center;
  animation: re-pendulum 1.5s ease-in-out infinite;
}
.scn-ring-engagement .lamp-light {
  position: absolute; top: 5%; left: 45%; width: 10%; height: 20%;
  background: radial-gradient(ellipse at center, rgba(255,255,240,.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: re-lamp 4s ease-in-out infinite alternate;
}
@keyframes re-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes re-window { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes re-table { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes re-man { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes re-woman { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(1px) rotate(1deg) } }
@keyframes re-pendulum { 0% { transform: rotate(-15deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(-15deg) } }
@keyframes re-lamp { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-ring-suicide {
  background: 
    linear-gradient(180deg, #3a4a6a 0%, #6a7a8a 30%, #a08a6a 70%, #c8a85a 100%),
    radial-gradient(ellipse at 50% 100%, #c8a85a 0%, transparent 60%);
}
.scn-ring-suicide .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a3a6a 0%, #5a6a8a 40%, transparent 100%);
  animation: rs-sky 20s ease-in-out infinite alternate;
}
.scn-ring-suicide .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: rs-ground 12s ease-in-out infinite alternate;
}
.scn-ring-suicide .tree-trunk {
  position: absolute; bottom: 25%; left: 35%; width: 14px; height: 70%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 0 0; transform-origin: bottom center;
  animation: rs-tree 8s ease-in-out infinite;
}
.scn-ring-suicide .swinging-thing {
  position: absolute; top: 15%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%;
  transform-origin: top center;
  animation: rs-swing 2s ease-in-out infinite;
}
.scn-ring-suicide .figure-woman {
  position: absolute; bottom: 8%; left: 45%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #3a4a6a 0%, #2a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: rs-woman 4s ease-in-out infinite;
}
.scn-ring-suicide .cap {
  position: absolute; bottom: 12%; left: 42%; width: 14px; height: 8px;
  background: #2a2a2a; border-radius: 40% 40% 30% 30%;
  animation: rs-cap 5s ease-in-out infinite;
}
.scn-ring-suicide .wind-lines {
  position: absolute; top: 20%; left: 0; right: 0; height: 10%;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0%, transparent 20%);
  filter: blur(4px);
  animation: rs-wind 10s linear infinite;
}
@keyframes rs-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes rs-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rs-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes rs-swing { 0% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }
@keyframes rs-woman { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes rs-cap { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes rs-wind { 0% { background-position: 0% 0%; } 50% { background-position: -50% 0%; } 100% { background-position: -100% 0%; } }

.scn-ring-aftermath {
  background: 
    linear-gradient(180deg, #c8d0d8 0%, #a0a8b0 100%),
    radial-gradient(ellipse at 50% 30%, #e0e8f0 0%, transparent 60%);
}
.scn-ring-aftermath .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8d0d8 0%, #a8b0b8 100%);
  animation: ra-wall 20s ease-in-out infinite alternate;
}
.scn-ring-aftermath .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 4px; box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
  animation: ra-floor 15s ease-in-out infinite alternate;
}
.scn-ring-aftermath .table {
  position: absolute; bottom: 20%; left: 15%; width: 60%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: ra-table 8s ease-in-out infinite alternate;
}
.scn-ring-aftermath .figure-large {
  position: absolute; bottom: 28%; left: 30%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-large 3s ease-in-out infinite;
}
.scn-ring-aftermath .figure-neighbor {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ra-neighbor 3.5s ease-in-out infinite;
}
.scn-ring-aftermath .chair {
  position: absolute; bottom: 18%; left: 10%; width: 20px; height: 30px;
  background: #3a2a1a; border-radius: 10% 10% 5% 5%;
  animation: ra-chair 6s ease-in-out infinite alternate;
}
.scn-ring-aftermath .doorway {
  position: absolute; top: 5%; left: 70%; width: 15%; height: 95%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: ra-doorway 12s ease-in-out infinite alternate;
}
.scn-ring-aftermath .night-window {
  position: absolute; top: 10%; right: 5%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at center, #1a2a4a 0%, #0a1a2a 100%);
  border: 3px solid #6a7a8a; box-shadow: inset 0 0 20px rgba(0,0,0,.7);
  animation: ra-night 20s ease-in-out infinite alternate;
}
.scn-ring-aftermath .lamp-light {
  position: absolute; top: 8%; left: 40%; width: 8%; height: 15%;
  background: radial-gradient(ellipse at center, rgba(240,240,255,.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: ra-lamp 4s ease-in-out infinite alternate;
}
@keyframes ra-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes ra-floor { 0% { opacity:.8 } 50% { opacity:.9 } 100% { opacity:.85 } }
@keyframes ra-table { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes ra-large { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(1px) rotate(1deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes ra-neighbor { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(1px) rotate(1deg) } }
@keyframes ra-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ra-doorway { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes ra-night { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes ra-lamp { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

/* boitelle-arrival-home */
.scn-boitelle-arrival-home {
  background: linear-gradient(180deg, #fde8c4 0%, #f5d4a0 40%, #e4b87a 100%), radial-gradient(ellipse at 30% 80%, #fff4d4 0%, transparent 60%);
}
.scn-boitelle-arrival-home .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #b3d4e0 0%, #cce4f0 60%, #fef4d4 100%);
  animation: bah-sky 20s ease-in-out infinite alternate;
}
.scn-boitelle-arrival-home .village-bg {
  position:absolute; bottom:45%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #d4b88a 0%, #c8a878 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  filter: blur(2px);
  animation: bah-bg 25s ease-in-out infinite;
}
.scn-boitelle-arrival-home .street {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #b8945a 0%, #a07840 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
  animation: bah-street 12s ease-in-out infinite alternate;
}
.scn-boitelle-arrival-home .house-left {
  position:absolute; bottom:35%; left:5%; width:90px; height:70px;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: bah-house 15s ease-in-out infinite;
}
.scn-boitelle-arrival-home .house-right {
  position:absolute; bottom:38%; right:8%; width:70px; height:55px;
  background: linear-gradient(180deg, #d4b080 0%, #b89868 100%);
  border-radius: 4% 4% 3% 3%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: bah-house 18s ease-in-out infinite reverse;
}
.scn-boitelle-arrival-home .church-spire {
  position:absolute; bottom:42%; left:55%; width:20px; height:50px;
  background: linear-gradient(180deg, #c8b08a 0%, #b09870 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bah-spire 20s ease-in-out infinite;
}
.scn-boitelle-arrival-home .woman-dress {
  position:absolute; bottom:18%; left:40%; width:40px; height:50px;
  background: linear-gradient(180deg, #f5c85a 0%, #d4a040 50%, #c8553d 100%); /* yellow, gold, terracotta */
  border-radius: 40% 40% 60% 60% / 50% 50% 60% 60%;
  transform-origin: bottom center;
  box-shadow: 0 6px 12px rgba(0,0,0,0.15);
  animation: bah-walk 3s ease-in-out infinite;
}
.scn-boitelle-arrival-home .man-figure {
  position:absolute; bottom:18%; left:34%; width:20px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bah-walk 3s ease-in-out infinite 0.15s;
}
.scn-boitelle-arrival-home .onlooker {
  position:absolute; bottom:20%; right:25%; width:18px; height:36px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  animation: bah-headturn 6s ease-in-out infinite;
}
.scn-boitelle-arrival-home .dust-particles {
  position:absolute; bottom:15%; left:50%; width:100%; height:10px;
  background: radial-gradient(circle at 20% 50%, rgba(255,240,200,0.3) 0%, transparent 60%);
  filter: blur(4px);
  animation: bah-dust 8s ease-in-out infinite;
}
@keyframes bah-sky { 0% { opacity:0.9; background-position:0% 0% } 50% { opacity:1; background-position:10% 5% } 100% { opacity:0.95; background-position:0% 0% } }
@keyframes bah-bg { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes bah-street { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.005) } }
@keyframes bah-house { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) translateY(-1px) } }
@keyframes bah-spire { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(1deg) } 75% { transform: rotate(-1deg) } }
@keyframes bah-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0deg) } }
@keyframes bah-headturn { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(15deg) } 75% { transform: rotate(-10deg) } }
@keyframes bah-dust { 0%,100% { opacity:0.2; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.2) } }

/* boitelle-parents-reaction */
.scn-boitelle-parents-reaction {
  background: linear-gradient(180deg, #ffecb3 0%, #f5d78a 30%, #d4b05a 70%, #b09040 100%), radial-gradient(ellipse at 50% 90%, #ffe080 0%, transparent 60%);
}
.scn-boitelle-parents-reaction .sky-bright {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #c4daf0 0%, #e4f0ff 50%, #fff4d4 100%);
  animation: bpr-sky 8s ease-in-out infinite alternate;
}
.scn-boitelle-parents-reaction .farmyard {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #c8a860 0%, #b09050 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.15);
  animation: bpr-yard 5s ease-in-out infinite;
}
.scn-boitelle-parents-reaction .barn-wall {
  position:absolute; bottom:30%; right:10%; width:120px; height:80px;
  background: linear-gradient(180deg, #a08050 0%, #806030 100%);
  border-radius: 0 0 8% 8%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: bpr-barn 10s ease-in-out infinite;
}
.scn-boitelle-parents-reaction .mother-figure {
  position:absolute; bottom:15%; left:20%; width:22px; height:38px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bpr-mother 3s ease-in-out infinite;
}
.scn-boitelle-parents-reaction .father-figure {
  position:absolute; bottom:15%; left:35%; width:24px; height:42px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: bpr-father 2.5s ease-in-out infinite;
}
.scn-boitelle-parents-reaction .horse-rearing {
  position:absolute; bottom:10%; left:50%; width:60px; height:70px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bpr-horse 1.8s ease-in-out infinite;
}
.scn-boitelle-parents-reaction .cart-wheel {
  position:absolute; bottom:5%; left:42%; width:30px; height:30px;
  background: radial-gradient(circle, #8a7a5a 0%, #5a4a2a 70%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: bpr-wheel 0.6s linear infinite;
}
.scn-boitelle-parents-reaction .shadow-slashes {
  position:absolute; bottom:20%; left:10%; width:80%; height:40%;
  background: repeating-linear-gradient(45deg, rgba(0,0,0,0.08) 0px, rgba(0,0,0,0.08) 8px, transparent 8px, transparent 16px);
  animation: bpr-shadows 4s ease-in-out infinite;
}
.scn-boitelle-parents-reaction .reaction-dust {
  position:absolute; bottom:20%; left:30%; width:100px; height:20px;
  background: radial-gradient(circle at 50% 50%, rgba(200,180,130,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: bpr-dust 2s ease-in-out infinite;
}
@keyframes bpr-sky { 0% { opacity:0.9; filter: brightness(1) } 50% { opacity:1; filter: brightness(1.1) } 100% { opacity:0.85; filter: brightness(0.9) } }
@keyframes bpr-yard { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes bpr-barn { 0%,100% { transform: scale(1) } 25% { transform: scale(0.98) translateY(1px) } 75% { transform: scale(1.02) translateY(-1px) } }
@keyframes bpr-mother { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-8deg) } 50% { transform: translateX(2px) rotate(5deg) } 75% { transform: translateX(-1px) rotate(-3deg) } }
@keyframes bpr-father { 0%,100% { transform: translateX(0) scaleY(1) } 30% { transform: translateX(4px) scaleY(1.05) } 60% { transform: translateX(-2px) scaleY(0.95) } }
@keyframes bpr-horse { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-8px) rotate(-5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-6px) rotate(4deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bpr-wheel { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes bpr-shadows { 0%,100% { opacity:0.3; transform: skewX(0deg) } 50% { opacity:0.6; transform: skewX(2deg) } }
@keyframes bpr-dust { 0%,100% { opacity:0.2; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.5) scaleY(0.8) } }

/* ring-introduction */
.scn-ring-introduction {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #dcc9a6 50%, #c4aa82 100%),
    radial-gradient(ellipse at 30% 60%, rgba(255,230,200,.3) 0%, transparent 70%),
    radial-gradient(ellipse at 70% 40%, rgba(200,180,150,.2) 0%, transparent 60%);
}
.scn-ring-introduction .room-bg {
  position:absolute; inset:0; background:linear-gradient(180deg, #e8d8b8 0%, #d4c4a4 100%);
  animation: ri-shift 20s ease-in-out infinite alternate;
}
.scn-ring-introduction .window {
  position:absolute; top:8%; left:10%; width:30%; height:45%;
  background:linear-gradient(180deg, #c8d8e8 0%, #a8b8c8 80%), repeating-linear-gradient(90deg, #8899aa 1px, transparent 1px, transparent 8px);
  border-radius:4% 4% 2% 2%; box-shadow: inset 0 0 30px rgba(0,0,0,.2);
  animation: ri-rain 1.5s linear infinite;
}
.scn-ring-introduction .lamp {
  position:absolute; top:6%; left:50%; width:20px; height:30px; transform:translateX(-50%);
  background:radial-gradient(circle, #fff4d0 0%, #d4a85c 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 40px 20px rgba(230,180,80,.4), 0 0 80px 40px rgba(230,180,80,.15);
  animation: ri-lamp 4s ease-in-out infinite alternate;
}
.scn-ring-introduction .table {
  position:absolute; bottom:30%; left:15%; right:15%; height:18%;
  background:linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.3), inset 0 4px 8px rgba(200,160,120,.4);
}
.scn-ring-introduction .cards {
  position:absolute; bottom:36%; left:30%; right:30%; height:8%;
  background: repeating-linear-gradient(90deg, #f0e0c0 0px, #f0e0c0 12px, #e0d0b0 12px, #e0d0b0 14px);
  border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.2);
  animation: ri-cards 12s ease-in-out infinite;
}
.scn-ring-introduction .player-left {
  position:absolute; bottom:15%; left:8%; width:40px; height:70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ri-sway 6s ease-in-out infinite alternate;
}
.scn-ring-introduction .player-right {
  position:absolute; bottom:15%; right:8%; width:40px; height:70px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ri-sway 7s ease-in-out infinite alternate-reverse;
}
.scn-ring-introduction .rain {
  position:absolute; top:0; left:0; width:100%; height:100%;
  background: repeating-linear-gradient(180deg, rgba(180,200,220,.4) 0px, rgba(180,200,220,.1) 1px, transparent 6px, transparent 20px);
  animation: ri-rainfall 0.8s linear infinite;
}
@keyframes ri-shift { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ri-rain { 0% { background-position: 0 0; } 100% { background-position: -20px 0; } }
@keyframes ri-lamp { 0% { box-shadow: 0 0 30px 15px rgba(230,180,80,.3); transform: scale(1); } 50% { box-shadow: 0 0 60px 30px rgba(230,180,80,.6); transform: scale(1.05); } 100% { box-shadow: 0 0 40px 20px rgba(230,180,80,.4); transform: scale(0.98); } }
@keyframes ri-cards { 0% { opacity:.8; transform: translateY(0); } 25% { opacity:1; transform: translateY(-2px); } 75% { opacity:.9; transform: translateY(1px); } 100% { opacity:.8; transform: translateY(0); } }
@keyframes ri-sway { 0% { transform: rotate(-2deg) scaleY(1); } 25% { transform: rotate(1deg) scaleY(1.02); } 50% { transform: rotate(-1deg) scaleY(0.98); } 75% { transform: rotate(2deg) scaleY(1.01); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes ri-rainfall { 0% { transform: translateY(-100%); } 100% { transform: translateY(100vh); } }

/* ring-aunt-story-begins */
.scn-ring-aunt-story-begins {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e05 70%, #0a0502 100%),
    radial-gradient(ellipse at 50% 70%, #5a3a1a 0%, transparent 60%);
}
.scn-ring-aunt-story-begins .room-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, rgba(60,40,20,.9) 0%, rgba(20,10,5,.95) 100%);
  animation: ras-glow 30s ease-in-out infinite alternate;
}
.scn-ring-aunt-story-begins .fireplace {
  position:absolute; bottom:30%; left:25%; right:25%; height:40%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%;
  box-shadow: inset 0 20px 40px rgba(200,100,30,.2);
}
.scn-ring-aunt-story-begins .flame {
  position:absolute; bottom:60%; left:38%; right:38%; height:12%;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #c04020 50%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  animation: ras-flame 0.3s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-ring-aunt-story-begins .chair {
  position:absolute; bottom:12%; left:50%; width:80px; height:90px; transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
}
.scn-ring-aunt-story-begins .old-lady {
  position:absolute; bottom:20%; left:50%; width:50px; height:70px; transform:translateX(-60%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ras-rock 8s ease-in-out infinite;
}
.scn-ring-aunt-story-begins .arm {
  position:absolute; bottom:28%; left:40%; width:30px; height:14px; transform-origin: right center;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 50% 20%;
  animation: ras-arm 5s ease-in-out infinite alternate;
}
.scn-ring-aunt-story-begins .hand {
  position:absolute; bottom:26%; left:30%; width:16px; height:20px;
  background: radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  animation: ras-hand 3s ease-in-out infinite;
}
.scn-ring-aunt-story-begins .hair {
  position:absolute; bottom:28%; left:28%; width:6px; height:40px;
  background: linear-gradient(180deg, #c07040 0%, #804020 100%);
  border-radius: 50% 50% 40% 40% / 20% 20% 60% 60%;
  transform-origin: top center;
  animation: ras-hair 6s ease-in-out infinite;
}
.scn-ring-aunt-story-begins .candle {
  position:absolute; bottom:20%; left:15%; width:12px; height:30px;
  background: linear-gradient(180deg, #f0d080 0%, #c09850 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(230,180,80,.3), 0 0 40px 20px rgba(230,180,80,.1);
  animation: ras-candle 4s ease-in-out infinite alternate;
}
@keyframes ras-glow { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes ras-flame { 0% { transform: scaleY(1) rotate(-3deg); opacity:.8; } 25% { transform: scaleY(1.2) rotate(2deg); opacity:1; } 50% { transform: scaleY(0.9) rotate(-1deg); opacity:.9; } 75% { transform: scaleY(1.15) rotate(3deg); opacity:1; } 100% { transform: scaleY(1.05) rotate(0deg); opacity:.85; } }
@keyframes ras-rock { 0% { transform: translateX(-60%) rotate(-1deg); } 25% { transform: translateX(-58%) rotate(1deg); } 50% { transform: translateX(-62%) rotate(-0.5deg); } 75% { transform: translateX(-59%) rotate(0.5deg); } 100% { transform: translateX(-60%) rotate(0deg); } }
@keyframes ras-arm { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-15deg); } }
@keyframes ras-hand { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(2px,-3px) scale(1.1); } 100% { transform: translate(-1px,1px) scale(0.95); } }
@keyframes ras-hair { 0% { transform: rotate(-20deg); } 25% { transform: rotate(-10deg); } 50% { transform: rotate(-30deg); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(-15deg); } }
@keyframes ras-candle { 0% { box-shadow: 0 0 15px 8px rgba(230,180,80,.2); } 50% { box-shadow: 0 0 30px 15px rgba(230,180,80,.5); } 100% { box-shadow: 0 0 20px 10px rgba(230,180,80,.3); } }

.scn-ring-courtship {
  background:
    linear-gradient(180deg, #f7a54e 0%, #e87d41 30%, #c25b3a 60%, #6b2c4a 100%),
    radial-gradient(ellipse at 50% 100%, #ffcc80 0%, transparent 60%);
}

.scn-ring-courtship .sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(255,200,100,0.3) 50%, transparent 100%);
  animation: rc-sky 8s ease-in-out infinite alternate;
}

.scn-ring-courtship .glow {
  position: absolute; bottom: 30%; left: 50%;
  width: 200px; height: 200px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, #ffd980 0%, #f5a623 30%, transparent 70%);
  animation: rc-glow 4s ease-in-out infinite alternate;
}

.scn-ring-courtship .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a, #1a0a0a);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  animation: rc-ground 12s ease-in-out infinite;
}

.scn-ring-courtship .figure-h1 {
  position: absolute; bottom: 55%; left: 35%;
  width: 24px; height: 28px;
  background: #1a1a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rc-nod 3s ease-in-out infinite;
}

.scn-ring-courtship .figure-b1 {
  position: absolute; bottom: 20%; left: 35%;
  width: 30px; height: 50px;
  background: #1a1a1a;
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: rc-sway 4s ease-in-out infinite;
}

.scn-ring-courtship .figure-h2 {
  position: absolute; bottom: 55%; left: 55%;
  width: 22px; height: 26px;
  background: #1a1a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rc-nod 3s ease-in-out infinite alternate;
}

.scn-ring-courtship .figure-b2 {
  position: absolute; bottom: 20%; left: 55%;
  width: 28px; height: 45px;
  background: #1a1a1a;
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: rc-sway 4s ease-in-out infinite;
}

.scn-ring-courtship .ring {
  position: absolute; bottom: 45%; left: 45%;
  width: 8px; height: 8px;
  background: #ffd700;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffd700;
  animation: rc-glow-ring 2s ease-in-out infinite;
}

.scn-ring-courtship .flower {
  position: absolute; bottom: 52%; left: 32%;
  width: 10px; height: 10px;
  background: radial-gradient(circle, #ff6b6b, #d94f4f);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,107,107,0.5);
  animation: rc-sway 3s ease-in-out infinite;
}

@keyframes rc-sky {
  0% { opacity: 0.8 }
  50% { opacity: 1 }
  100% { opacity: 0.7 }
}

@keyframes rc-glow {
  0% { transform: translate(-50%, 50%) scale(1); opacity: 0.8 }
  50% { transform: translate(-50%, 50%) scale(1.1); opacity: 1 }
  100% { transform: translate(-50%, 50%) scale(0.95); opacity: 0.7 }
}

@keyframes rc-ground {
  0% { transform: translateY(0) }
  50% { transform: translateY(-3px) }
  100% { transform: translateY(0) }
}

@keyframes rc-nod {
  0% { transform: rotate(-5deg) }
  50% { transform: rotate(5deg) }
  100% { transform: rotate(-5deg) }
}

@keyframes rc-sway {
  0% { transform: translateX(0) rotate(0) }
  25% { transform: translateX(2px) rotate(2deg) }
  50% { transform: translateX(0) rotate(0) }
  75% { transform: translateX(-2px) rotate(-2deg) }
  100% { transform: translateX(0) rotate(0) }
}

@keyframes rc-glow-ring {
  0% { box-shadow: 0 0 12px 4px #ffd700; opacity: 0.8 }
  50% { box-shadow: 0 0 20px 8px #ffd700; opacity: 1 }
  100% { box-shadow: 0 0 12px 4px #ffd700; opacity: 0.8 }
}

/* one block per scene id. Append to style.css. */
.scn-ring-grandfather {
  background: linear-gradient(180deg, #1a0a0a 0%, #0d0505 60%, #0a0a10 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-ring-grandfather .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #0d0808 100%);
  opacity: 0.9;
}
.scn-ring-grandfather .window {
  position: absolute; top: 15%; left: 25%; width: 50%; height: 35%;
  background: radial-gradient(ellipse at 50% 40%, #ffe0a0 0%, #b07020 60%, transparent 100%);
  border-radius: 10% / 20%;
  box-shadow: 0 0 60px 20px rgba(255,200,100,0.3), 0 0 120px 40px rgba(255,200,100,0.1);
  animation: rgf-window 5s ease-in-out infinite alternate;
}
.scn-ring-grandfather .rope {
  position: absolute; top: 20%; left: 50%; width: 4px; height: 25%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  transform: translateX(-50%);
  border-radius: 2px;
  animation: rgf-rope 4s ease-in-out infinite;
}
.scn-ring-grandfather .figure {
  position: absolute; top: 42%; left: 50%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #0a0a08 0%, #1a1510 40%, #0a0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: rgf-figure 4s ease-in-out infinite;
}
.scn-ring-grandfather .chair {
  position: absolute; bottom: 30%; left: 43%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a, #1a100a);
  border-radius: 6%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-ring-grandfather .shadow {
  position: absolute; top: 45%; left: 50%; width: 50px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  transform: translateX(-50%);
  filter: blur(8px);
  animation: rgf-shadow 4s ease-in-out infinite;
}
.scn-ring-grandfather .dust {
  position: absolute; top: 25%; left: 20%; width: 4px; height: 4px;
  background: rgba(255,220,160,0.4);
  border-radius: 50%;
  filter: blur(1px);
  animation: rgf-dust 8s ease-in-out infinite;
}
@keyframes rgf-window {
  0% { box-shadow: 0 0 40px 10px rgba(255,200,100,0.2), 0 0 80px 20px rgba(255,200,100,0.05); opacity: 0.8; }
  50% { box-shadow: 0 0 80px 30px rgba(255,200,100,0.5), 0 0 160px 60px rgba(255,200,100,0.2); opacity: 1; }
  100% { box-shadow: 0 0 50px 15px rgba(255,200,100,0.25), 0 0 100px 30px rgba(255,200,100,0.08); opacity: 0.85; }
}
@keyframes rgf-rope {
  0%   { transform: translateX(-50%) rotate(-2deg); }
  50%  { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes rgf-figure {
  0%   { transform: translateX(-50%) rotate(-3deg); }
  50%  { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes rgf-shadow {
  0%   { transform: translateX(-55%) scale(1); opacity: 0.7; }
  50%  { transform: translateX(-45%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-55%) scale(1); opacity: 0.7; }
}
@keyframes rgf-dust {
  0%   { transform: translate(0,0) scale(1); opacity: 0.3; }
  33%  { transform: translate(-10px, -5px) scale(1.2); opacity: 0.6; }
  66%  { transform: translate(8px, -12px) scale(0.8); opacity: 0.4; }
  100% { transform: translate(0,0) scale(1); opacity: 0.3; }
}

.scn-ring-young-gontran {
  background: linear-gradient(180deg, #1a0a1a 0%, #3a2050 25%, #a05040 55%, #d08060 80%, #e09060 100%), radial-gradient(ellipse at 70% 80%, #f0b080 0%, transparent 40%);
}
.scn-ring-young-gontran .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, rgba(255,200,150,0.3) 0%, transparent 100%);
  animation: ryg-sky 12s ease-in-out infinite alternate;
}
.scn-ring-young-gontran .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a10 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-ring-young-gontran .trunk {
  position: absolute; bottom: 25%; left: 10%; width: 12px; height: 40%;
  background: linear-gradient(180deg, #3a2a1a, #1a100a);
  border-radius: 10%;
  transform-origin: bottom center;
}
.scn-ring-young-gontran .canopy {
  position: absolute; bottom: 55%; left: 5%; width: 25%; height: 30%;
  background: radial-gradient(ellipse at 50% 70%, #1a2a1a 0%, #0a1a0a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ryg-tree 15s ease-in-out infinite alternate;
}
.scn-ring-young-gontran .figure1 {
  position: absolute; bottom: 30%; right: 20%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #0a050a 0%, #1a1010 50%, #0a050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ryg-fig1 6s ease-in-out infinite;
}
.scn-ring-young-gontran .figure2 {
  position: absolute; bottom: 28%; right: 30%; width: 16px; height: 35px;
  background: linear-gradient(180deg, #0a050a 0%, #1a1010 50%, #0a050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ryg-fig2 7s ease-in-out infinite;
}
.scn-ring-young-gontran .firefly {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffe080 0%, #d08020 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 2px #ffe080, 0 0 20px 4px rgba(255,224,128,0.3);
  filter: blur(1px);
}
.scn-ring-young-gontran .firefly-a {
  top: 45%; left: 35%;
  animation: ryg-firefly 9s ease-in-out infinite;
}
.scn-ring-young-gontran .firefly-b {
  top: 55%; left: 60%;
  animation: ryg-firefly 11s ease-in-out infinite 2s;
}
.scn-ring-young-gontran .path {
  position: absolute; bottom: 22%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #3a3a1a 0%, #2a2a0a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.4;
}
@keyframes ryg-sky {
  0%   { opacity: 0.7; }
  50%  { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes ryg-tree {
  0%   { transform: scale(1) rotate(-1deg); }
  50%  { transform: scale(1.01) rotate(1deg); }
  100% { transform: scale(1) rotate(-1deg); }
}
@keyframes ryg-fig1 {
  0%   { transform: translate(0,0) rotate(0deg); }
  25%  { transform: translate(2px, -1px) rotate(-4deg); }
  50%  { transform: translate(0,0) rotate(0deg); }
  75%  { transform: translate(-2px, -1px) rotate(4deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes ryg-fig2 {
  0%   { transform: translate(0,0) rotate(0deg); }
  20%  { transform: translate(3px, -2px) rotate(2deg); }
  40%  { transform: translate(1px, -1px) rotate(-1deg); }
  60%  { transform: translate(-2px, -1px) rotate(1deg); }
  80%  { transform: translate(-4px, -2px) rotate(-2deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes ryg-firefly {
  0%   { transform: translate(0,0) scale(1); opacity: 0.6; box-shadow: 0 0 8px 1px #ffe080; }
  25%  { transform: translate(-15px, -20px) scale(1.2); opacity: 1; box-shadow: 0 0 16px 4px #ffe080; }
  50%  { transform: translate(10px, -30px) scale(0.9); opacity: 0.7; box-shadow: 0 0 10px 2px #ffe080; }
  75%  { transform: translate(-5px, -10px) scale(1.1); opacity: 0.9; box-shadow: 0 0 20px 6px #ffe080; }
  100% { transform: translate(0,0) scale(1); opacity: 0.6; box-shadow: 0 0 8px 1px #ffe080; }
}

.scn-boitelle-silent-drive {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #ffd180 0%, #87ceeb 100%), radial-gradient(ellipse at 20% 30%, #fff5e0 0%, transparent 50%);
}
.scn-boitelle-silent-drive .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #ffd180 0%, transparent 100%);
  animation: bsd-sky 4s ease-in-out infinite alternate;
}
.scn-boitelle-silent-drive .hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7aac7a 0%, #4a7a4a 100%);
  border-radius: 50% 50% 0 0;
  animation: bsd-hills 12s ease-in-out infinite alternate;
}
.scn-boitelle-silent-drive .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(90deg, #8a7a5a 50%, #9a8a6a 50%);
  background-size: 20px 100%;
  background-repeat: repeat-x;
  animation: bsd-road 2s linear infinite;
}
.scn-boitelle-silent-drive .carriage {
  position: absolute; bottom: 25%; left: 45%; width: 120px; height: 70px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bsd-carriage 0.8s ease-in-out infinite;
}
.scn-boitelle-silent-drive .wheel-rear {
  position: absolute; bottom: 22%; left: 47%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #c0c0c0 0%, #c0c0c0 8px, transparent 8px);
  border-radius: 50%;
  animation: bsd-wheel-spin 0.5s linear infinite;
}
.scn-boitelle-silent-drive .wheel-front {
  position: absolute; bottom: 22%; left: 68%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #c0c0c0 0%, #c0c0c0 8px, transparent 8px);
  border-radius: 50%;
  animation: bsd-wheel-spin 0.5s linear infinite;
}
.scn-boitelle-silent-drive .horse {
  position: absolute; bottom: 28%; left: 20%; width: 70px; height: 40px;
  background: radial-gradient(circle at 15% 40%, #5a3a2a 12px, transparent 12px), linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 40% 50% 30% 30%;
  box-shadow: -5px 15px 0 3px #3a2a1a, 15px 15px 0 3px #3a2a1a;
  animation: bsd-horse 0.6s ease-in-out infinite;
}
.scn-boitelle-silent-drive .fig-front {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 20px;
  background: radial-gradient(circle at 30% 50%, #1a1a2a 6px, transparent 6px), radial-gradient(circle at 70% 50%, #1a1a2a 6px, transparent 6px);
  background-size: 20px 20px;
  background-repeat: no-repeat;
  background-position: 0 0, 20px 0;
  animation: bsd-fig 0.8s ease-in-out infinite;
}
.scn-boitelle-silent-drive .fig-back {
  position: absolute; bottom: 35%; left: 58%; width: 40px; height: 20px;
  background: radial-gradient(circle at 30% 50%, #2a2a3a 6px, transparent 6px), radial-gradient(circle at 70% 50%, #2a2a3a 6px, transparent 6px);
  background-size: 20px 20px;
  background-repeat: no-repeat;
  background-position: 0 0, 20px 0;
  animation: bsd-fig 0.8s ease-in-out 0.2s infinite;
}
@keyframes bsd-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes bsd-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes bsd-road {
  0% { background-position: 0 0; }
  50% { background-position: -50% 0; }
  100% { background-position: -100% 0; }
}
@keyframes bsd-carriage {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes bsd-wheel-spin {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}
@keyframes bsd-horse {
  0% { transform: translateY(0) translateX(0) scaleY(1); }
  25% { transform: translateY(-4px) translateX(2px) scaleY(0.95); }
  50% { transform: translateY(0) translateX(0) scaleY(1); }
  75% { transform: translateY(-2px) translateX(1px) scaleY(0.98); }
  100% { transform: translateY(0) translateX(0) scaleY(1); }
}
@keyframes bsd-fig {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

.scn-boitelle-laughter {
  position: relative; width: 100%; height: 100%; overflow: hidden;
  background: linear-gradient(180deg, #ffe55e 0%, #ffcc80 100%), radial-gradient(circle at 50% 20%, #fff0b0 0%, transparent 60%);
}
.scn-boitelle-laughter .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #ffe55e 0%, transparent 100%);
  animation: blf-sky 3s ease-in-out infinite alternate;
}
.scn-boitelle-laughter .road {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(90deg, #b0a080 50%, #c0b090 50%);
  background-size: 20px 100%;
  background-repeat: repeat-x;
  animation: blf-road 1s linear infinite;
}
.scn-boitelle-laughter .carriage {
  position: absolute; bottom: 25%; left: 45%; width: 120px; height: 70px;
  background: linear-gradient(180deg, #c09060 0%, #8a6a4a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: blf-carriage 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}
.scn-boitelle-laughter .wheel-rear {
  position: absolute; bottom: 22%; left: 47%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #e0e0e0 0%, #e0e0e0 8px, transparent 8px);
  border-radius: 50%;
  animation: blf-wheel-spin 0.3s linear infinite;
}
.scn-boitelle-laughter .wheel-front {
  position: absolute; bottom: 22%; left: 68%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #e0e0e0 0%, #e0e0e0 8px, transparent 8px);
  border-radius: 50%;
  animation: blf-wheel-spin 0.3s linear infinite;
}
.scn-boitelle-laughter .horse {
  position: absolute; bottom: 28%; left: 20%; width: 70px; height: 40px;
  background: radial-gradient(circle at 15% 40%, #7a5a3a 12px, transparent 12px), linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%);
  border-radius: 40% 50% 30% 30%;
  box-shadow: -5px 15px 0 3px #4a2a1a, 15px 15px 0 3px #4a2a1a;
  animation: blf-horse 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}
.scn-boitelle-laughter .fig-front {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 20px;
  background: radial-gradient(circle at 30% 50%, #2a2a3a 6px, transparent 6px), radial-gradient(circle at 70% 50%, #2a2a3a 6px, transparent 6px);
  background-size: 20px 20px;
  background-repeat: no-repeat;
  background-position: 0 0, 20px 0;
  animation: blf-fig 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite;
}
.scn-boitelle-laughter .fig-back {
  position: absolute; bottom: 35%; left: 58%; width: 40px; height: 20px;
  background: radial-gradient(circle at 30% 50%, #3a3a5a 6px, transparent 6px), radial-gradient(circle at 70% 50%, #3a3a5a 6px, transparent 6px);
  background-size: 20px 20px;
  background-repeat: no-repeat;
  background-position: 0 0, 20px 0;
  animation: blf-fig 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) 0.1s infinite;
}
.scn-boitelle-laughter .laugh-burst {
  position: absolute; bottom: 40%; left: 55%; width: 10px; height: 10px;
  border-radius: 50%;
  background: #ffeb3b;
  box-shadow: -20px -10px 0 0 #f48fb1, 20px -10px 0 0 #81d4fa, 0 20px 0 0 #ff8a65, -15px 15px 0 0 #aed581, 15px 15px 0 0 #ce93d8;
  animation: blf-laugh 1.5s ease-out infinite;
  pointer-events: none;
}
@keyframes blf-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes blf-road {
  0% { background-position: 0 0; }
  50% { background-position: -50% 0; }
  100% { background-position: -100% 0; }
}
@keyframes blf-carriage {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-6px) rotate(-2deg); }
  60% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes blf-wheel-spin {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}
@keyframes blf-horse {
  0% { transform: translateY(0) translateX(0) scaleY(1) rotate(0deg); }
  20% { transform: translateY(-8px) translateX(4px) scaleY(0.9) rotate(-3deg); }
  40% { transform: translateY(-2px) translateX(2px) scaleY(1) rotate(0deg); }
  60% { transform: translateY(-6px) translateX(3px) scaleY(0.95) rotate(2deg); }
  100% { transform: translateY(0) translateX(0) scaleY(1) rotate(0deg); }
}
@keyframes blf-fig {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes blf-laugh {
  0% { transform: scale(0); opacity: 0; }
  20% { transform: scale(1.5); opacity: 0.8; }
  100% { transform: scale(2); opacity: 0; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.brim { position: absolute; pointer-events: none; }
.crest { position: absolute; pointer-events: none; }
.dusk-sky { position: absolute; pointer-events: none; }
.figure-train { position: absolute; pointer-events: none; }
.figure-walk { position: absolute; pointer-events: none; }
.sunray-a { position: absolute; pointer-events: none; }
.victim-silhouette { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-cafe-drinking-game {
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 60%, #1a0e08 100%),
    radial-gradient(ellipse at 30% 20%, #e0a060 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-cafe-drinking-game .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 50%, #1a0e08 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
  animation: cdg-wall 10s ease-in-out infinite alternate;
}
.scn-cafe-drinking-game .window-frame {
  position: absolute; top: 12%; left: 8%;
  width: 28%; height: 40%;
  border: 4px solid #5a3a2a;
  border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  transform: perspective(800px) rotateY(-8deg);
  animation: cdg-window-frame 8s ease-in-out infinite alternate;
}
.scn-cafe-drinking-game .window-glow {
  position: absolute; top: 14%; left: 10%;
  width: 24%; height: 36%;
  background: radial-gradient(ellipse at 50% 50%, rgba(240,200,120,0.6) 0%, rgba(200,160,80,0.2) 40%, transparent 70%);
  filter: blur(8px);
  animation: cdg-window-glow 6s ease-in-out infinite alternate;
}
.scn-cafe-drinking-game .gas-lamp {
  position: absolute; top: 6%; left: 48%;
  width: 12px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a, #3a2a1a);
  border-radius: 4px;
  box-shadow: 0 0 18px 6px #d08040, 0 0 40px 16px rgba(208,128,64,0.5);
  transform: rotate(2deg);
  animation: cdg-lamp 3s ease-in-out infinite alternate;
}
.scn-cafe-drinking-game .table {
  position: absolute; bottom: 14%; left: 20%;
  width: 60%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a, #3a2a1a);
  border-radius: 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  transform: perspective(400px) rotateX(6deg);
  animation: cdg-table 12s linear infinite;
}
.scn-cafe-drinking-game .bottle {
  position: absolute; bottom: 24%; left: 48%;
  width: 8px; height: 28px;
  background: linear-gradient(90deg, #4a6a3a 0%, #6a8a5a 50%, #4a6a3a 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-6deg);
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: cdg-bottle 5s ease-in-out infinite alternate;
}
.scn-cafe-drinking-game .figure-left {
  position: absolute; bottom: 26%; left: 28%;
  width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1a0e, #1a0e08);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cdg-figure-left 4s ease-in-out infinite;
}
.scn-cafe-drinking-game .figure-right {
  position: absolute; bottom: 26%; left: 56%;
  width: 14px; height: 38px;
  background: linear-gradient(180deg, #2a1a0e, #1a0e08);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cdg-figure-right 4.2s ease-in-out infinite;
}
.scn-cafe-drinking-game .door-draft {
  position: absolute; top: 20%; right: -2%;
  width: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,120,0.15) 0%, transparent 70%);
  filter: blur(10px);
  transform: rotate(3deg);
  animation: cdg-draft 5s ease-in-out infinite alternate;
}
@keyframes cdg-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cdg-window-frame { 0% { transform: perspective(800px) rotateY(-8deg) translateX(0); } 50% { transform: perspective(800px) rotateY(-6deg) translateX(2px); } 100% { transform: perspective(800px) rotateY(-8deg) translateX(0); } }
@keyframes cdg-window-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.02); } 100% { opacity: 0.6; transform: scale(0.98); } }
@keyframes cdg-lamp { 0% { box-shadow: 0 0 18px 6px #d08040, 0 0 40px 16px rgba(208,128,64,0.5); } 50% { box-shadow: 0 0 24px 10px #e09050, 0 0 50px 20px rgba(224,144,80,0.6); } 100% { box-shadow: 0 0 18px 6px #d08040, 0 0 40px 16px rgba(208,128,64,0.5); } }
@keyframes cdg-table { 0% { transform: perspective(400px) rotateX(6deg) translateY(0); } 25% { transform: perspective(400px) rotateX(6.5deg) translateY(-1px); } 75% { transform: perspective(400px) rotateX(5.5deg) translateY(1px); } 100% { transform: perspective(400px) rotateX(6deg) translateY(0); } }
@keyframes cdg-bottle { 0% { transform: rotate(-6deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(0); } }
@keyframes cdg-figure-left { 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(0) translateY(0) rotate(-2deg); } }
@keyframes cdg-figure-right { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 30% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 60% { transform: translateX(-6px) translateY(0) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes cdg-draft { 0% { transform: rotate(3deg) scaleX(1); opacity: 0.4; } 50% { transform: rotate(2deg) scaleX(1.1); opacity: 0.7; } 100% { transform: rotate(3deg) scaleX(1); opacity: 0.4; } }

.scn-drunkard-talk {
  background: linear-gradient(180deg, #3a2212 0%, #1a0e06 60%, #0a0603 100%),
    radial-gradient(ellipse at 55% 30%, #d09060 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-drunkard-talk .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0e 0%, #1a0e06 100%);
  transform: scale(1.05);
  filter: blur(2px);
  animation: dt-bg 12s ease-in-out infinite alternate;
}
.scn-drunkard-talk .table-close {
  position: absolute; bottom: 10%; left: 10%;
  width: 80%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.8), inset 0 4px 8px rgba(255,200,150,0.1);
  transform: perspective(500px) rotateX(10deg);
  animation: dt-table-close 10s linear infinite;
}
.scn-drunkard-talk .mug-left {
  position: absolute; bottom: 22%; left: 30%;
  width: 16px; height: 24px;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 50%, #6a4a3a 100%);
  border-radius: 10% 10% 8% 8% / 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-8deg);
  animation: dt-mug-left 6s ease-in-out infinite alternate;
}
.scn-drunkard-talk .mug-right {
  position: absolute; bottom: 20%; left: 55%;
  width: 14px; height: 22px;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 50%, #6a4a3a 100%);
  border-radius: 10% 10% 8% 8% / 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(5deg);
  animation: dt-mug-right 6.5s ease-in-out infinite alternate;
}
.scn-drunkard-talk .silhouette-left {
  position: absolute; bottom: 28%; left: 28%;
  width: 24px; height: 44px;
  background: linear-gradient(180deg, #0a0603 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: dt-sil-left 3s ease-in-out infinite;
}
.scn-drunkard-talk .silhouette-right {
  position: absolute; bottom: 28%; left: 50%;
  width: 22px; height: 42px;
  background: linear-gradient(180deg, #0a0603 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: dt-sil-right 3.6s ease-in-out infinite;
}
.scn-drunkard-talk .lamp-glow {
  position: absolute; top: 8%; left: 48%;
  width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #e0a060 0%, #c08040 40%, transparent 80%);
  filter: blur(6px);
  animation: dt-lamp-glow 4s ease-in-out infinite alternate;
}
.scn-drunkard-talk .steam {
  position: absolute; top: 18%; left: 34%;
  width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,120,0.2) 0%, transparent 70%);
  filter: blur(8px);
  transform: rotate(12deg);
  animation: dt-steam 8s ease-in-out infinite;
}
@keyframes dt-bg { 0% { transform: scale(1.05) translateY(0); } 50% { transform: scale(1.03) translateY(-2px); } 100% { transform: scale(1.05) translateY(0); } }
@keyframes dt-table-close { 0% { transform: perspective(500px) rotateX(10deg) translateY(0); } 25% { transform: perspective(500px) rotateX(11deg) translateY(-1px); } 75% { transform: perspective(500px) rotateX(9deg) translateY(1px); } 100% { transform: perspective(500px) rotateX(10deg) translateY(0); } }
@keyframes dt-mug-left { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes dt-mug-right { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes dt-sil-left { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); } 50% { transform: translateX(0) translateY(0) rotate(1deg); } 75% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes dt-sil-right { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes dt-lamp-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes dt-steam { 0% { transform: rotate(12deg) translateY(0) scaleX(1); opacity: 0.2; } 50% { transform: rotate(10deg) translateY(-10px) scaleX(1.2); opacity: 0.5; } 100% { transform: rotate(12deg) translateY(0) scaleX(1); opacity: 0.2; } }

.scn-fever-attack {
  background: linear-gradient(180deg, #1c1410 0%, #2a1e18 40%, #1c1410 100%),
              radial-gradient(ellipse at 40% 70%, #3a2820 0%, transparent 60%);
}
.scn-fever-attack .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(135deg, #3a2a1e 0%, #2a1a12 60%);
  animation: fva-wall 10s ease-in-out infinite alternate;
}
.scn-fever-attack .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1a10 100%);
  border-radius: 30% 10% 0 0 / 100% 40% 0 0;
}
.scn-fever-attack .lamp {
  position:absolute; bottom:45%; left:30%; width:12px; height:18px;
  background: radial-gradient(circle at 50% 30%, #e8a040 0%, #a05020 70%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  box-shadow: 0 0 30px 10px rgba(200,100,30,0.5), 0 0 60px 20px rgba(200,100,30,0.2);
  animation: fva-lamp 4s ease-in-out infinite alternate;
}
.scn-fever-attack .sick-figure {
  position:absolute; bottom:35%; left:60%; width:40px; height:60px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fva-figure 6s ease-in-out infinite;
}
.scn-fever-attack .medicine {
  position:absolute; bottom:42%; left:55%; width:10px; height:14px;
  background: linear-gradient(180deg, #d0a070 0%, #a07040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: fva-med 3s ease-in-out infinite alternate;
}
.scn-fever-attack .shadow {
  position:absolute; bottom:30%; left:20%; width:80%; height:20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: fva-shadow 8s ease-in-out infinite;
}
@keyframes fva-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes fva-lamp { 0% { box-shadow:0 0 20px 5px rgba(200,100,30,0.4); opacity:0.9 } 50% { box-shadow:0 0 40px 15px rgba(200,100,30,0.7); opacity:1 } 100% { box-shadow:0 0 25px 8px rgba(200,100,30,0.5); opacity:0.9 } }
@keyframes fva-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-2px) translateY(1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes fva-med { 0% { transform: scale(1) } 50% { transform: scale(1.1) translateY(-2px) } 100% { transform: scale(1) } }
@keyframes fva-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-discovery-of-bones {
  background: linear-gradient(180deg, #4a4040 0%, #3a3030 50%, #2a2020 100%),
              radial-gradient(ellipse at 50% 30%, #5a4a4a 0%, transparent 70%);
}
.scn-discovery-of-bones .room-wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(135deg, #4a3a3a 0%, #3a2a2a 80%);
  animation: dob-wall 12s ease-in-out infinite alternate;
}
.scn-discovery-of-bones .room-floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #2a1a1a 0%, #3a2a2a 50%, #4a3a3a 100%);
  border-radius: 20% 40% 0 0 / 80% 60% 0 0;
}
.scn-discovery-of-bones .window {
  position:absolute; top:15%; left:15%; width:50px; height:60px;
  background: linear-gradient(180deg, #6a6060 0%, #4a4040 100%);
  border: 3px solid #2a2020;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(200,200,200,0.2);
  animation: dob-window 8s ease-in-out infinite alternate;
}
.scn-discovery-of-bones .pile-bones {
  position:absolute; bottom:35%; left:35%; width:30px; height:15px;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: dob-bones 6s ease-in-out infinite;
}
.scn-discovery-of-bones .rag {
  position:absolute; bottom:42%; left:55%; width:20px; height:10px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%;
  transform: rotate(15deg);
  animation: dob-rag 10s ease-in-out infinite alternate;
}
.scn-discovery-of-bones .hat {
  position:absolute; bottom:30%; left:20%; width:25px; height:15px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
  animation: dob-hat 4s ease-in-out infinite alternate;
}
.scn-discovery-of-bones .bloodstain {
  position:absolute; bottom:45%; left:40%; width:12px; height:8px;
  background: radial-gradient(circle, #7a3a2a 0%, #5a2a1a 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: dob-blood 9s ease-in-out infinite;
}
@keyframes dob-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dob-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dob-bones { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dob-rag { 0% { transform: rotate(10deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(10deg) } }
@keyframes dob-hat { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes dob-blood { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

.scn-legend-concluded {
  background: linear-gradient(180deg, #6a6050 0%, #5a5040 50%, #4a4030 100%),
              radial-gradient(ellipse at 70% 20%, #7a7060 0%, transparent 60%);
}
.scn-legend-concluded .room-back {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(135deg, #5a5040 0%, #4a4030 80%);
  animation: lgc-back 15s ease-in-out infinite alternate;
}
.scn-legend-concluded .cross {
  position:absolute; top:20%; left:50%; width:40px; height:60px;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a10 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 5px rgba(100,70,40,0.3);
  animation: lgc-cross 8s ease-in-out infinite alternate;
}
.scn-legend-concluded .window-small {
  position:absolute; top:10%; right:15%; width:30px; height:40px;
  background: linear-gradient(180deg, #7a7060 0%, #5a5040 100%);
  border: 2px solid #3a3020;
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(200,200,180,0.2);
  animation: lgc-window 12s ease-in-out infinite alternate;
}
.scn-legend-concluded .desk {
  position:absolute; bottom:35%; left:20%; width:70px; height:20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
}
.scn-legend-concluded .figure-seated {
  position:absolute; bottom:35%; left:50%; width:35px; height:45px;
  background: linear-gradient(180deg, #3a3020 0%, #1a1000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lgc-figure 6s ease-in-out infinite;
}
.scn-legend-concluded .chair {
  position:absolute; bottom:35%; left:48%; width:20px; height:25px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 10% 10% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: lgc-chair 4s ease-in-out infinite alternate;
}
@keyframes lgc-back { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes lgc-cross { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes lgc-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lgc-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(1px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lgc-chair { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(1) } }

.scn-chicot-and-magloire {
  background: linear-gradient(180deg, #d0c8b0 0%, #c0b8a0 50%, #a09880 100%),
              radial-gradient(ellipse at 50% 0%, #f0e8d0 0%, transparent 70%);
}
.scn-chicot-and-magloire .sky-farm {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #90b8d0 0%, #c0d8e0 60%, transparent 100%);
  animation: chm-sky 20s ease-in-out infinite alternate;
}
.scn-chicot-and-magloire .field {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(0deg, #7a9a6a 0%, #9aba8a 50%, #b8d8a8 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  animation: chm-field 10s ease-in-out infinite alternate;
}
.scn-chicot-and-magloire .farmhouse {
  position:absolute; bottom:25%; left:15%; width:80px; height:60px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  transform: skewX(-3deg);
  animation: chm-house 8s ease-in-out infinite;
}
.scn-chicot-and-magloire .fence {
  position:absolute; bottom:30%; left:0; right:0; height:8px;
  background: repeating-linear-gradient(90deg, #8a7a5a 0px, #8a7a5a 4px, transparent 4px, transparent 16px);
  animation: chm-fence 6s ease-in-out infinite alternate;
}
.scn-chicot-and-magloire .figure-left {
  position:absolute; bottom:30%; left:55%; width:24px; height:48px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: chm-figure1 5s ease-in-out infinite;
}
.scn-chicot-and-magloire .figure-right {
  position:absolute; bottom:30%; left:68%; width:22px; height:44px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: chm-figure2 5s ease-in-out infinite 1s;
}
.scn-chicot-and-magloire .potato-bucket {
  position:absolute; bottom:30%; left:60%; width:16px; height:18px;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.4);
  animation: chm-bucket 4s ease-in-out infinite alternate;
}
.scn-chicot-and-magloire .stool {
  position:absolute; bottom:30%; left:65%; width:20px; height:8px;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 2px 3px rgba(0,0,0,0.3);
}
@keyframes chm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes chm-field { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes chm-house { 0% { transform: skewX(-3deg) } 50% { transform: skewX(-1deg) } 100% { transform: skewX(-3deg) } }
@keyframes chm-fence { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes chm-figure1 { 0% { transform: translateX(0) } 25% { transform: translateX(3px) } 50% { transform: translateX(0) } 75% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes chm-figure2 { 0% { transform: translateX(0) } 25% { transform: translateX(2px) } 50% { transform: translateX(0) } 75% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes chm-bucket { 0% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-2px) } 100% { transform: scale(1) } }

.scn-dream-of-stranger {
  background:
    linear-gradient(180deg, #2b1f1a 0%, #3d2b22 40%, #4a3529 100%),
    radial-gradient(ellipse at 50% 70%, #5a3f30 0%, transparent 60%);
}
.scn-dream-of-stranger .wall { position:absolute; inset:0; background:linear-gradient(135deg, #3a2820 0%, #2a1c16 60%, #1f130e 100%); }
.scn-dream-of-stranger .window-pane { position:absolute; top:15%; left:60%; width:22%; height:35%; background:radial-gradient(ellipse at 50% 50%, #fce8b0 0%, #b08040 60%, #2b1f1a 100%); border-radius:4px 4px 8px 8px; box-shadow:inset 0 0 40px rgba(255,200,100,0.3); animation:ds-window 8s ease-in-out infinite alternate; }
.scn-dream-of-stranger .candle { position:absolute; bottom:20%; left:35%; width:6px; height:50px; background:linear-gradient(180deg, #f5d0a0 0%, #c8945a 40%, #8b5e3c 100%); border-radius:3px 3px 2px 2px; transform:rotate(-2deg); animation:ds-candle 4s ease-in-out infinite; }
.scn-dream-of-stranger .candle-glow { position:absolute; bottom:20%; left:35%; width:40px; height:40px; transform:translate(-50%, -50%); background:radial-gradient(circle, #ffd580 0%, rgba(255,200,100,0.4) 40%, transparent 70%); border-radius:50%; animation:ds-glow 3s ease-in-out infinite alternate; }
.scn-dream-of-stranger .figure-profile { position:absolute; bottom:10%; left:25%; width:28px; height:60px; background:linear-gradient(180deg, #1a1210 0%, #120c0a 100%); border-radius: 40% 50% 30% 40% / 60% 50% 40% 30%; transform:scale(1.2) rotate(5deg); animation:ds-figure 6s ease-in-out infinite; }
.scn-dream-of-stranger .blanket { position:absolute; bottom:0; left:15%; width:55%; height:18%; background:linear-gradient(180deg, #6a3f2e 0%, #4a2a1e 100%); border-radius:40% 60% 0 0 / 100% 100% 0 0; opacity:0.8; }
.scn-dream-of-stranger .dust { position:absolute; top:30%; left:20%; width:100%; height:100%; background:radial-gradient(circle at 30% 40%, rgba(255,220,180,0.15) 0%, transparent 50%), radial-gradient(circle at 70% 50%, rgba(255,220,180,0.1) 0%, transparent 50%); filter:blur(3px); animation:ds-dust 15s linear infinite; }
@keyframes ds-window { 0% { opacity:0.6; box-shadow:inset 0 0 20px rgba(255,200,100,0.2); } 50% { opacity:0.9; box-shadow:inset 0 0 60px rgba(255,220,150,0.5); } 100% { opacity:0.7; box-shadow:inset 0 0 30px rgba(255,200,100,0.3); } }
@keyframes ds-candle { 0%,100% { transform:rotate(-2deg) scaleY(1); } 25% { transform:rotate(-1deg) scaleY(1.02); } 50% { transform:rotate(-3deg) scaleY(0.98); } 75% { transform:rotate(-1.5deg) scaleY(1.01); } }
@keyframes ds-glow { 0% { opacity:0.7; transform:translate(-50%,-50%) scale(0.9); } 50% { opacity:1; transform:translate(-50%,-50%) scale(1.1); } 100% { opacity:0.8; transform:translate(-50%,-50%) scale(0.95); } }
@keyframes ds-figure { 0%,100% { transform:scale(1.2) rotate(5deg) translateY(0); } 50% { transform:scale(1.2) rotate(4deg) translateY(-2px); } }
@keyframes ds-dust { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-10px) rotate(180deg); } 100% { transform:translateY(0) rotate(360deg); } }

.scn-conclusion-coincidence {
  background:
    linear-gradient(180deg, #b0b8b5 0%, #8b9490 30%, #6b736f 70%, #4a504d 100%),
    radial-gradient(ellipse at 50% 0%, #c2c9c6 0%, transparent 80%);
}
.scn-conclusion-coincidence .sky-overcast { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #d0d6d3 0%, #b0b8b5 60%, transparent 100%); }
.scn-conclusion-coincidence .horizon { position:absolute; bottom:40%; left:0; right:0; height:8%; background:linear-gradient(180deg, #5a6360 0%, #4a504d 100%); border-radius:30% 70% 0 0 / 80% 80% 0 0; }
.scn-conclusion-coincidence .tree-left { position:absolute; bottom:45%; left:10%; width:25px; height:80px; background:linear-gradient(180deg, #2e3734 0%, #1c231f 100%); border-radius:30% 30% 20% 20% / 60% 60% 20% 20%; animation:cc-tree 12s ease-in-out infinite alternate; }
.scn-conclusion-coincidence .tree-right { position:absolute; bottom:42%; right:15%; width:30px; height:70px; background:linear-gradient(180deg, #3b4541 0%, #242b28 100%); border-radius:40% 20% 30% 20% / 50% 40% 30% 30%; animation:cc-tree 15s ease-in-out infinite alternate-reverse; }
.scn-conclusion-coincidence .path { position:absolute; bottom:0; left:25%; width:50%; height:45%; background:linear-gradient(180deg, #7d847e 0%, #5a605a 100%); border-radius:30% 30% 0 0 / 100% 100% 0 0; opacity:0.6; }
.scn-conclusion-coincidence .figure-funeral { position:absolute; bottom:35%; left:48%; width:16px; height:40px; background:linear-gradient(180deg, #2a302e 0%, #141817 100%); border-radius: 40% 30% 20% 30% / 60% 50% 30% 40%; transform:translateX(-50%); animation:cc-figure 8s ease-in-out infinite; }
.scn-conclusion-coincidence .distant-spire { position:absolute; bottom:38%; left:70%; width:8px; height:50px; background:linear-gradient(180deg, #4a524f 0%, #303633 100%); border-radius:2px 2px 0 0; transform:skewX(-3deg); }
.scn-conclusion-coincidence .clouds { position:absolute; top:5%; left:0; width:100%; height:15%; background:radial-gradient(circle at 20% 50%, rgba(220,225,222,0.6) 0%, transparent 50%), radial-gradient(circle at 80% 30%, rgba(210,215,212,0.5) 0%, transparent 40%); filter:blur(8px); animation:cc-clouds 40s linear infinite; }
@keyframes cc-tree { 0% { transform:rotate(-1deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-1deg); } }
@keyframes cc-figure { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0); } 25% { transform:translateX(-48%) translateY(-2px) rotate(1deg); } 50% { transform:translateX(-50%) translateY(0) rotate(0); } 75% { transform:translateX(-52%) translateY(-1px) rotate(-1deg); } }
@keyframes cc-clouds { 0% { transform:translateX(0); } 50% { transform:translateX(-20%); } 100% { transform:translateX(0); } }

.scn-badon-will-confession {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a1f1a 40%, #1c1512 80%, #0f0b0a 100%),
    radial-gradient(ellipse at 30% 60%, #3a2820 0%, transparent 70%);
}
.scn-badon-will-confession .wall-dark { position:absolute; inset:0; background:linear-gradient(135deg, #2a1f1a 0%, #1c1512 50%, #120c0a 100%); }
.scn-badon-will-confession .desk { position:absolute; bottom:10%; left:20%; width:60%; height:20%; background:linear-gradient(180deg, #4a3222 0%, #2a1c12 100%); border-radius:4px 4px 8px 8px; box-shadow:0 4px 12px rgba(0,0,0,0.6); }
.scn-badon-will-confession .paper { position:absolute; bottom:22%; left:35%; width:30%; height:12%; background:linear-gradient(180deg, #d4c4a8 0%, #b8a88c 100%); border-radius:2px; transform:rotate(-2deg); box-shadow:0 2px 6px rgba(0,0,0,0.4); animation:bw-paper 10s ease-in-out infinite alternate; }
.scn-badon-will-confession .inkwell { position:absolute; bottom:24%; left:32%; width:12px; height:16px; background:linear-gradient(180deg, #2a1a12 0%, #0f0705 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-badon-will-confession .figure-hunched { position:absolute; bottom:20%; left:38%; width:36px; height:50px; background:linear-gradient(180deg, #1c1410 0%, #0a0705 100%); border-radius: 40% 30% 30% 40% / 60% 50% 40% 50%; transform:rotate(10deg) translateX(-50%); animation:bw-figure 6s ease-in-out infinite; }
.scn-badon-will-confession .lamp { position:absolute; bottom:28%; left:25%; width:6px; height:30px; background:linear-gradient(180deg, #b08040 0%, #5a3a1a 100%); border-radius:2px 2px 3px 3px; transform:rotate(5deg); animation:bw-lamp 4s ease-in-out infinite; }
.scn-badon-will-confession .shadow-shape { position:absolute; bottom:0; left:0; width:100%; height:60%; background:radial-gradient(ellipse at 30% 80%, rgba(0,0,0,0.7) 0%, transparent 70%); opacity:0.9; animation:bw-shadow 12s ease-in-out infinite alternate; }
@keyframes bw-paper { 0% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(-1deg) translateY(-2px); } 100% { transform:rotate(-3deg) translateY(1px); } }
@keyframes bw-figure { 0%,100% { transform:rotate(10deg) translateX(-50%) translateY(0); } 30% { transform:rotate(9deg) translateX(-48%) translateY(-2px); } 60% { transform:rotate(11deg) translateX(-52%) translateY(-1px); } }
@keyframes bw-lamp { 0% { opacity:0.8; transform:rotate(5deg) scaleY(1); } 50% { opacity:1; transform:rotate(6deg) scaleY(1.03); } 100% { opacity:0.7; transform:rotate(4deg) scaleY(0.98); } }
@keyframes bw-shadow { 0% { opacity:0.8; transform:scaleY(1); } 50% { opacity:0.9; transform:scaleY(1.05); } 100% { opacity:0.7; transform:scaleY(0.95); } }

.scn-hidden-child-dilemma {
  background:
    linear-gradient(180deg, #1a1a24 0%, #252530 40%, #1a1a22 80%, #0f0f14 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a38 0%, transparent 70%);
}
.scn-hidden-child-dilemma .room-dark { position:absolute; inset:0; background:linear-gradient(135deg, #1e1e2a 0%, #15152a 60%, #0a0a14 100%); }
.scn-hidden-child-dilemma .crib { position:absolute; bottom:15%; left:30%; width:40%; height:25%; background:linear-gradient(180deg, #3a2a22 0%, #1e1410 100%); border-radius:10px 10px 20px 20px; box-shadow:inset 0 -6px 12px rgba(0,0,0,0.6); animation:hc-creak 8s ease-in-out infinite alternate; }
.scn-hidden-child-dilemma .baby-blanket { position:absolute; bottom:18%; left:35%; width:30%; height:10%; background:linear-gradient(180deg, #8b6b5a 0%, #5a4035 100%); border-radius:20px 20px 10px 10px; opacity:0.7; }
.scn-hidden-child-dilemma .figure-rigid { position:absolute; bottom:20%; left:15%; width:22px; height:55px; background:linear-gradient(180deg, #1a1a24 0%, #0a0a10 100%); border-radius: 30% 20% 20% 40% / 60% 40% 30% 50%; transform:rotate(-2deg); animation:hc-figure 4s ease-in-out infinite; }
.scn-hidden-child-dilemma .doorway { position:absolute; top:0; left:65%; width:15%; height:100%; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a24 100%); border-left:2px solid #3a3a4a; }
.scn-hidden-child-dilemma .lamp-small { position:absolute; bottom:30%; left:20%; width:4px; height:20px; background:linear-gradient(180deg, #806030 0%, #4a2a10 100%); border-radius:2px; box-shadow:0 0 8px 2px rgba(200,150,80,0.3); animation:hc-lamp 3s ease-in-out infinite alternate; }
.scn-hidden-child-dilemma .shadow-bars { position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 20%, transparent 80%, rgba(0,0,0,0.3) 100%), linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 40%, transparent 70%, rgba(0,0,0,0.4) 100%); animation:hc-bars 12s ease-in-out infinite alternate; }
@keyframes hc-creak { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(0.5deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes hc-figure { 0%,100% { transform:rotate(-2deg) translateX(0); } 25% { transform:rotate(-1deg) translateX(3px); } 50% { transform:rotate(-3deg) translateX(0); } 75% { transform:rotate(-1.5deg) translateX(-2px); } }
@keyframes hc-lamp { 0% { opacity:0.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.1); } 100% { opacity:0.6; transform:scaleY(0.9); } }
@keyframes hc-bars { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* scene: carryall-ride (warm, sunlit) */
.scn-carryall-ride {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #f0d080 30%, #e09850 60%, #8b5e3c 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 10%, transparent 70%);
}
.scn-carryall-ride .sky-cr {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #ffe4a0 60%, transparent 100%);
  animation: cr-sky 8s ease-in-out infinite alternate;
}
.scn-carryall-ride .wheat-cr {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #c8a050 0%, #7a5a2a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.3);
  animation: cr-wheat 12s ease-in-out infinite alternate;
}
.scn-carryall-ride .carryall-cr {
  position:absolute; bottom:18%; left:50%; width:140px; height:80px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: cr-bounce 3s ease-in-out infinite;
}
.scn-carryall-ride .wheel-cr {
  position:absolute; bottom:12%; width:40px; height:40px;
  background: radial-gradient(circle, #2a1a0a 40%, #6a4a2a 80%);
  border-radius:50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: cr-roll 2s linear infinite;
}
.scn-carryall-ride .wheel-left { left:calc(50% - 55px); }
.scn-carryall-ride .wheel-right { left:calc(50% + 15px); }
.scn-carryall-ride .figure-cr {
  position:absolute; bottom:24%; width:20px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-carryall-ride .fig-front { left:calc(50% - 10px); animation: cr-jostle-front 4s ease-in-out infinite; }
.scn-carryall-ride .fig-back { left:calc(50% + 15px); animation: cr-jostle-back 4s ease-in-out infinite 0.5s; }
.scn-carryall-ride .dust-cr {
  position:absolute; bottom:10%; width:20px; height:10px;
  background: rgba(200,160,80,.6);
  border-radius:50%;
  filter: blur(4px);
}
.scn-carryall-ride .dust-a { left:30%; animation: cr-dust 3s linear infinite; }
.scn-carryall-ride .dust-b { left:60%; animation: cr-dust 3s linear infinite 1.5s; }

@keyframes cr-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes cr-wheat { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes cr-bounce { 0%,100% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-6px) } }
@keyframes cr-roll { 0% { transform:rotate(0deg) } 100% { transform:rotate(360deg) } }
@keyframes cr-jostle-front { 0%,100% { transform:translate(0,0) rotate(-2deg) } 50% { transform:translate(2px,-3px) rotate(2deg) } }
@keyframes cr-jostle-back { 0%,100% { transform:translate(0,0) rotate(-2deg) } 50% { transform:translate(-2px,-2px) rotate(3deg) } }
@keyframes cr-dust { 0% { transform:translateY(0) scale(1); opacity:.6 } 50% { transform:translateY(-15px) scale(1.5); opacity:.3 } 100% { transform:translateY(-30px) scale(2); opacity:0 } }

/* scene: rejection-by-mother (tense, overcast) */
.scn-rejection-by-mother {
  background: 
    linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 50%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a5a 10%, transparent 70%);
}
.scn-rejection-by-mother .bg-rbm {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 60%, #2a2a3a 100%);
  animation: rbm-flicker 6s ease-in-out infinite alternate;
}
.scn-rejection-by-mother .wall-rbm {
  position:absolute; left:10%; bottom:0; width:80%; height:60%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.6);
}
.scn-rejection-by-mother .window-rbm {
  position:absolute; top:15%; left:20%; width:50px; height:70px;
  background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 100%);
  border: 6px solid #3a2a1a;
  border-radius:4px;
  box-shadow: inset 0 0 12px rgba(255,255,255,.1);
  animation: rbm-window 4s ease-in-out infinite alternate;
}
.scn-rejection-by-mother .stove-rbm {
  position:absolute; bottom:8%; right:20%; width:60px; height:50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius:20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-rejection-by-mother .pot-rbm {
  position:absolute; bottom:22%; right:32%; width:24px; height:16px;
  background: #302010;
  border-radius:0 0 40% 40%;
  box-shadow: 0 0 10px 2px rgba(180,100,60,.5);
  animation: rbm-boil 3s ease-in-out infinite;
}
.scn-rejection-by-mother .figure-rbm {
  position:absolute; bottom:14%; width:22px; height:60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-rejection-by-mother .mother { left:35%; animation: rbm-turn 5s ease-in-out infinite; }
.scn-rejection-by-mother .daughter { left:55%; animation: rbm-turn 5s ease-in-out infinite 1.5s; }
.scn-rejection-by-mother .shadow-rbm {
  position:absolute; bottom:6%; left:30%; width:40%; height:20px;
  background: rgba(0,0,0,.4);
  border-radius:50%;
  filter: blur(6px);
  animation: rbm-shadow 3s ease-in-out infinite alternate;
}

@keyframes rbm-flicker { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes rbm-window { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rbm-boil { 0%,100% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.1) } }
@keyframes rbm-turn { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(10deg) } }
@keyframes rbm-shadow { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.3) } 100% { transform:scaleX(1) } }

/* scene: disappointment-wheat-fields (tense, overcast) */
.scn-disappointment-wheat-fields {
  background: 
    linear-gradient(180deg, #8a8a8a 0%, #6a6a6a 40%, #4a4a4a 100%),
    radial-gradient(ellipse at 50% 20%, #a0a0a0 10%, transparent 80%);
}
.scn-disappointment-wheat-fields .sky-dwf {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #9a9a9a 0%, #7a7a7a 60%, transparent 100%);
  animation: dwf-sky 10s ease-in-out infinite alternate;
}
.scn-disappointment-wheat-fields .field-dwf {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #b09860 0%, #7a5a2a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: dwf-field 8s ease-in-out infinite alternate;
}
.scn-disappointment-wheat-fields .path-dwf {
  position:absolute; bottom:20%; left:30%; width:40%; height:8px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius:4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-disappointment-wheat-fields .figure-dwf {
  position:absolute; bottom:22%; 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: dwf-walk 6s ease-in-out infinite;
}
.scn-disappointment-wheat-fields .man { left:40%; }
.scn-disappointment-wheat-fields .woman { left:48%; animation-delay: 1s; }
.scn-disappointment-wheat-fields .tree-dwf {
  position:absolute; bottom:40%; left:10%; width:30px; height:60px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: dwf-sway 5s ease-in-out infinite;
}
.scn-disappointment-wheat-fields .cloud-dwf {
  position:absolute; width:80px; height:20px;
  background: rgba(180,180,180,.5);
  border-radius:50%;
  filter: blur(6px);
}
.scn-disappointment-wheat-fields .cloud-left { top:10%; left:15%; animation: dwf-drift 40s linear infinite; }
.scn-disappointment-wheat-fields .cloud-right { top:18%; right:10%; animation: dwf-drift 50s linear infinite reverse; }

@keyframes dwf-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dwf-field { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(0) } }
@keyframes dwf-walk { 0%,100% { transform:translate(0,0) rotate(-2deg) } 50% { transform:translate(10px,-2px) rotate(2deg) } }
@keyframes dwf-sway { 0%,100% { transform:rotate(-3deg) } 50% { transform:rotate(3deg) } }
@keyframes dwf-drift { 0% { transform:translateX(-50px) } 100% { transform:translateX(120vw) } }

/* scene: village-stare (dark, overcast) */
.scn-village-stare {
  background: 
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 50%, #4a4a5a 10%, transparent 80%);
}
.scn-village-stare .bg-vs {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  animation: vs-sky 8s ease-in-out infinite alternate;
}
.scn-village-stare .ground-vs {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.6);
}
.scn-village-stare .crowd-vs {
  position:absolute; bottom:20%; left:10%; width:80%; height:40%;
}
.scn-village-stare .crowd-vs::before, .scn-village-stare .crowd-vs::after {
  content:''; position:absolute;
  width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vs-heads 4s ease-in-out infinite;
}
.scn-village-stare .crowd-vs::before { left:10%; animation-delay:0s; }
.scn-village-stare .crowd-vs::after { left:30%; animation-delay:0.6s; }
.scn-village-stare .couple-vs {
  position:absolute; bottom:22%; left:45%;
}
.scn-village-stare .couple-vs::before, .scn-village-stare .couple-vs::after {
  content:''; position:absolute;
  width:22px; height:60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-village-stare .couple-vs::before { left:0; animation: vs-advance 6s ease-in-out infinite; }
.scn-village-stare .couple-vs::after { left:30px; animation: vs-advance 6s ease-in-out infinite 0.3s; }
.scn-village-stare .lamp-vs {
  position:absolute; top:20%; left:25%; width:10px; height:20px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 70%);
  border-radius:50%;
  box-shadow: 0 0 20px 6px #c08030, 0 0 40px 12px rgba(192,128,48,.3);
  animation: vs-lamp 3s ease-in-out infinite alternate;
}
.scn-village-stare .fence-vs {
  position:absolute; bottom:30%; left:0; right:0; height:20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
}
.scn-village-stare .mist-vs {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,180,200,.15) 0%, transparent 70%);
  animation: vs-mist 10s ease-in-out infinite alternate;
}

@keyframes vs-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes vs-heads { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes vs-advance { 0%,100% { transform:translate(0,0) rotate(-2deg) } 50% { transform:translate(8px,-2px) rotate(2deg) } }
@keyframes vs-lamp { 0% { box-shadow: 0 0 12px 4px #c08030, 0 0 24px 8px rgba(192,128,48,.2); opacity:.8 } 50% { box-shadow: 0 0 30px 10px #f0c060, 0 0 60px 20px rgba(240,192,96,.5); opacity:1 } 100% { box-shadow: 0 0 18px 6px #c08030, 0 0 36px 12px rgba(192,128,48,.3); opacity:.9 } }
@keyframes vs-mist { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.3 } }

/* milial-friendship - warm/bright interior */
.scn-milial-friendship {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #c2a67a 100%),
              radial-gradient(ellipse at 30% 20%, #fff3e0 0%, transparent 60%);
}
.scn-milial-friendship .sunbeam {
  position:absolute; top:0; left:20%; width:40%; height:60%;
  background: linear-gradient(135deg, rgba(255,240,200,0.6), transparent 60%);
  animation: mf-sunbeam 8s ease-in-out infinite alternate;
}
.scn-milial-friendship .wall {
  position:absolute; top:0; left:0; right:0; bottom:35%;
  background: linear-gradient(180deg, #e8d4b4 0%, #d4bc9c 100%);
}
.scn-milial-friendship .window {
  position:absolute; top:15%; left:60%; width:90px; height:120px;
  background: linear-gradient(135deg, #b8d8f0 0%, #e0f0ff 100%);
  border:6px solid #a08060;
  border-radius:4px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3);
  animation: mf-windowglow 6s ease-in-out infinite alternate;
}
.scn-milial-friendship .divan {
  position:absolute; bottom:20%; left:15%; width:55%; height:40%;
  background: linear-gradient(180deg, #b08060 0%, #8a6040 100%);
  border-radius:20% 20% 8% 8% / 30% 30% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-milial-friendship .cushion-a {
  position:absolute; bottom:28%; left:20%; width:25%; height:18%;
  background: linear-gradient(135deg, #e07050 0%, #c05040 100%);
  border-radius:50%;
  transform:rotate(-5deg);
  animation: mf-cushion 7s ease-in-out infinite alternate;
}
.scn-milial-friendship .cushion-b {
  position:absolute; bottom:26%; left:45%; width:22%; height:16%;
  background: linear-gradient(135deg, #70b060 0%, #509040 100%);
  border-radius:50%;
  transform:rotate(8deg);
  animation: mf-cushion 7s ease-in-out infinite alternate reverse;
}
.scn-milial-friendship .figure {
  position:absolute; bottom:20%; left:30%; width:12%; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mf-figure 10s ease-in-out infinite;
}
.scn-milial-friendship .teacup {
  position:absolute; bottom:24%; right:22%; width:8%; height:10%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0bea0 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: mf-teacup 12s ease-in-out infinite;
}
.scn-milial-friendship .rug {
  position:absolute; bottom:0; left:10%; right:10%; height:15%;
  background: linear-gradient(90deg, #a06040, #c08060, #a06040);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0;
  opacity:0.6;
  animation: mf-rug 15s ease-in-out infinite alternate;
}
@keyframes mf-sunbeam {
  0% { opacity:0.4; transform:rotate(-2deg); }
  50% { opacity:0.8; transform:rotate(0deg); }
  100% { opacity:0.5; transform:rotate(3deg); }
}
@keyframes mf-windowglow {
  0% { box-shadow: inset 0 0 20px rgba(255,255,255,0.2); }
  50% { box-shadow: inset 0 0 40px rgba(255,255,255,0.5); }
  100% { box-shadow: inset 0 0 25px rgba(255,255,255,0.3); }
}
@keyframes mf-cushion {
  0% { transform:translateY(0) rotate(-5deg) scale(1); }
  50% { transform:translateY(-4px) rotate(0deg) scale(1.02); }
  100% { transform:translateY(0) rotate(5deg) scale(1); }
}
@keyframes mf-figure {
  0% { transform:translateX(0) rotate(0deg); }
  50% { transform:translateX(8px) rotate(2deg); }
  100% { transform:translateX(0) rotate(0deg); }
}
@keyframes mf-teacup {
  0% { transform:translateX(0) rotate(0deg); }
  50% { transform:translateX(-3px) rotate(-3deg); }
  100% { transform:translateX(0) rotate(0deg); }
}
@keyframes mf-rug {
  0% { background-position:0% 0%; }
  50% { background-position:50% 0%; }
  100% { background-position:100% 0%; }
}

/* milial-mother-portrait - warm bright interior */
.scn-milial-mother-portrait {
  background: linear-gradient(180deg, #f0e0c8 0%, #d4c0a8 40%, #b8a080 100%),
              radial-gradient(ellipse at 70% 30%, #fff8e8 0%, transparent 50%);
}
.scn-milial-mother-portrait .apartment-wall {
  position:absolute; top:0; left:0; right:0; bottom:30%;
  background: linear-gradient(180deg, #e8d8c0 0%, #d0bca0 100%);
}
.scn-milial-mother-portrait .door {
  position:absolute; top:20%; right:10%; width:25%; height:55%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius:4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: mp-door 15s ease-in-out infinite alternate;
}
.scn-milial-mother-portrait .portrait-frame {
  position:absolute; top:12%; left:30%; width:30%; height:45%;
  background: linear-gradient(135deg, #c0a060 0%, #a08050 100%);
  border:8px solid #8a6a3a;
  border-radius:6px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
}
.scn-milial-mother-portrait .portrait-figure {
  position:absolute; top:18%; left:35%; width:20%; height:35%;
  background: linear-gradient(180deg, #d0b898 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform:scale(0.95);
  animation: mp-portraitfigure 8s ease-in-out infinite alternate;
}
.scn-milial-mother-portrait .mother-silhouette {
  position:absolute; bottom:25%; left:45%; width:15%; height:35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform:translateX(-20px);
  animation: mp-mother 10s ease-in-out infinite;
}
.scn-milial-mother-portrait .window-light {
  position:absolute; top:8%; left:5%; width:20%; height:30%;
  background: linear-gradient(135deg, #f0e8d0 0%, transparent 70%);
  border-radius:50%;
  filter:blur(15px);
  animation: mp-windowlight 6s ease-in-out infinite alternate;
}
.scn-milial-mother-portrait .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #a08060 0%, #7a6040 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
}
@keyframes mp-door {
  0% { transform:rotateY(0deg); }
  50% { transform:rotateY(10deg); }
  100% { transform:rotateY(0deg); }
}
@keyframes mp-portraitfigure {
  0% { transform:scale(0.95) translateY(0); opacity:0.8; }
  50% { transform:scale(1) translateY(-2px); opacity:1; }
  100% { transform:scale(0.95) translateY(0); opacity:0.85; }
}
@keyframes mp-mother {
  0% { transform:translateX(-20px) rotate(-1deg); }
  50% { transform:translateX(0) rotate(2deg); }
  100% { transform:translateX(-20px) rotate(-1deg); }
}
@keyframes mp-windowlight {
  0% { opacity:0.3; transform:scale(1); }
  50% { opacity:0.7; transform:scale(1.1); }
  100% { opacity:0.4; transform:scale(0.95); }
}

/* storm-hurricane - tense dark exterior */
.scn-storm-hurricane {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a5e 0%, transparent 80%);
}
.scn-storm-hurricane .sky-bg {
  position:absolute; top:0; left:0; right:0; bottom:40%;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%);
  animation: sh-sky 12s ease-in-out infinite alternate;
}
.scn-storm-hurricane .clouds {
  position:absolute; top:5%; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 0 0 50% 50%;
  filter:blur(10px);
  animation: sh-clouds 20s linear infinite;
}
.scn-storm-hurricane .rain-lines {
  position:absolute; inset:0;
  background: repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(255,255,255,0.05) 4px, rgba(255,255,255,0.05) 6px);
  animation: sh-rain 0.8s linear infinite;
  z-index:1;
}
.scn-storm-hurricane .house {
  position:absolute; bottom:20%; left:50%; width:120px; height:80px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius:4px;
  box-shadow: 0 0 30px rgba(0,0,0,0.6);
  animation: sh-house 9s ease-in-out infinite;
}
.scn-storm-hurricane .roof-piece {
  position:absolute; bottom:55%; left:48%; width:60px; height:15px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  transform:rotate(-20deg);
  animation: sh-roof 3s ease-in-out infinite;
}
.scn-storm-hurricane .tree {
  position:absolute; bottom:22%; left:20%; width:30px; height:100px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 20% 20% 0 0 / 60% 60% 0 0;
  transform-origin: bottom center;
  animation: sh-tree 4s ease-in-out infinite alternate;
}
.scn-storm-hurricane .shutter {
  position:absolute; bottom:30%; left:52%; width:20px; height:35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:2px;
  transform:rotate(-70deg);
  transform-origin: left center;
  animation: sh-shutter 1.5s ease-in-out infinite alternate;
}
@keyframes sh-sky {
  0% { opacity:0.6; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes sh-clouds {
  0% { transform:translateX(0); }
  50% { transform:translateX(10%); }
  100% { transform:translateX(0); }
}
@keyframes sh-rain {
  from { background-position: 0 0; }
  to { background-position: 0 20px; }
}
@keyframes sh-house {
  0% { transform:translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform:translateX(-50%) translateY(4px) rotate(1deg); }
  100% { transform:translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes sh-roof {
  0% { transform:rotate(-20deg) translateY(0); }
  50% { transform:rotate(-30deg) translateY(10px); }
  100% { transform:rotate(-20deg) translateY(0); }
}
@keyframes sh-tree {
  0% { transform:rotate(0deg); }
  50% { transform:rotate(5deg); }
  100% { transform:rotate(-5deg); }
}
@keyframes sh-shutter {
  0% { transform:rotate(-70deg); }
  50% { transform:rotate(-50deg); }
  100% { transform:rotate(-70deg); }
}

/* dominoes-invitation - warm dim interior */
.scn-dominoes-invitation {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 60%, #5a3a1a 0%, transparent 60%);
}
.scn-dominoes-invitation .table {
  position:absolute; bottom:15%; left:10%; right:10%; height:40%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: 0 8px 30px rgba(0,0,0,0.5);
}
.scn-dominoes-invitation .domino-a {
  position:absolute; bottom:28%; left:35%; width:12%; height:10%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b898 100%);
  border:2px solid #1a0a00;
  border-radius:4px;
  animation: di-domino 7s ease-in-out infinite;
}
.scn-dominoes-invitation .domino-b {
  position:absolute; bottom:25%; right:35%; width:12%; height:10%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b898 100%);
  border:2px solid #1a0a00;
  border-radius:4px;
  transform:rotate(180deg);
  animation: di-domino 7s ease-in-out infinite reverse;
}
.scn-dominoes-invitation .figure-left {
  position:absolute; bottom:15%; left:18%; width:14%; height:35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform:rotate(-5deg);
  animation: di-figureleft 9s ease-in-out infinite;
}
.scn-dominoes-invitation .figure-right {
  position:absolute; bottom:15%; right:18%; width:14%; height:35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform:rotate(5deg);
  animation: di-figureright 9s ease-in-out infinite;
}
.scn-dominoes-invitation .lantern {
  position:absolute; bottom:45%; left:50%; width:10%; height:15%;
  transform:translateX(-50%);
  background: radial-gradient(circle, #ffd080 0%, #804020 70%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 10px #ffa040, 0 0 80px 20px rgba(255,160,64,0.3);
  animation: di-lantern 4s ease-in-out infinite alternate;
}
.scn-dominoes-invitation .bottle {
  position:absolute; bottom:22%; left:25%; width:6%; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  transform:rotate(-10deg);
}
.scn-dominoes-invitation .glass {
  position:absolute; bottom:22%; right:25%; width:8%; height:12%;
  background: linear-gradient(180deg, #b09878 0%, #806048 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  opacity:0.7;
}
@keyframes di-domino {
  0% { transform:translateY(0) rotate(0deg); }
  50% { transform:translateY(-5px) rotate(15deg); }
  100% { transform:translateY(0) rotate(0deg); }
}
@keyframes di-figureleft {
  0% { transform:rotate(-5deg) translateY(0); }
  50% { transform:rotate(0deg) translateY(-3px); }
  100% { transform:rotate(-5deg) translateY(0); }
}
@keyframes di-figureright {
  0% { transform:rotate(5deg) translateY(0); }
  50% { transform:rotate(0deg) translateY(-3px); }
  100% { transform:rotate(5deg) translateY(0); }
}
@keyframes di-lantern {
  0% { box-shadow: 0 0 30px 8px #ffa040, 0 0 60px 15px rgba(255,160,64,0.2); opacity:0.8; }
  50% { box-shadow: 0 0 50px 15px #ffb060, 0 0 100px 30px rgba(255,176,96,0.4); opacity:1; }
  100% { box-shadow: 0 0 35px 10px #ffa040, 0 0 70px 20px rgba(255,160,64,0.25); opacity:0.9; }
}

/* Scene 1: marriage-dilemma (tense, dim-interior, winter) */
.scn-marriage-dilemma {
  background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #2a2a3e 100%),
              radial-gradient(ellipse at 30% 80%, #2a3a4a 0%, transparent 60%);
}
.scn-marriage-dilemma .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); }
.scn-marriage-dilemma .window { position:absolute; left:20%; top:10%; width:35%; height:45%; background: linear-gradient(135deg, #1a2a3a 0%, #0a1a2a 100%); border:4px solid #3a3a4a; border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.8); animation: si-md-window 8s ease-in-out infinite; }
.scn-marriage-dilemma .moonlight { position:absolute; left:10%; top:5%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 50%, rgba(200,220,240,.15) 0%, transparent 70%); filter:blur(12px); animation: si-md-moon 12s ease-in-out infinite alternate; }
.scn-marriage-dilemma .bed { position:absolute; bottom:15%; left:40%; width:40%; height:30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius:10% 10% 4% 4%; box-shadow:inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-marriage-dilemma .child { position:absolute; bottom:16%; left:48%; width:12%; height:18%; background: radial-gradient(ellipse at 50% 60%, #4a3a3a 0%, #1a1212 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: si-md-child 6s ease-in-out infinite; }
.scn-marriage-dilemma .figure { position:absolute; bottom:20%; left:25%; width:14%; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: si-md-figure 10s ease-in-out infinite; }
.scn-marriage-dilemma .lamp { position:absolute; right:15%; top:25%; width:8%; height:12%; background: radial-gradient(circle at 50% 30%, #d0b080 0%, #8a6a40 100%); border-radius:30% 30% 10% 10%; box-shadow:0 0 30px 10px rgba(200,160,80,.3); animation: si-md-lamp 4s ease-in-out infinite alternate; }
@keyframes si-md-window { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes si-md-moon { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-8px) scale(1.02) } 100% { transform:translateY(0) scale(1) } }
@keyframes si-md-child { 0%,100% { transform:rotate(-5deg) } 50% { transform:rotate(-3deg) translateY(-2px) } }
@keyframes si-md-figure { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(-5px) rotate(-2deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(3px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes si-md-lamp { 0% { box-shadow:0 0 20px 5px rgba(200,160,80,.2); } 50% { box-shadow:0 0 40px 15px rgba(200,160,80,.5); } 100% { box-shadow:0 0 20px 5px rgba(200,160,80,.2); } }

/* Scene 2: obsessive-idea-returns (dark, dark) */
.scn-obsessive-idea-returns {
  background: linear-gradient(135deg, #05050f 0%, #0f0f1a 50%, #1a1a24 100%),
              radial-gradient(ellipse at 60% 40%, #1a1a30 0%, transparent 70%);
}
.scn-obsessive-idea-returns .room-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%); }
.scn-obsessive-idea-returns .thought-shadow { position:absolute; left:10%; top:10%; width:80%; height:80%; background: radial-gradient(ellipse at 50% 50%, rgba(60,40,80,.4) 0%, transparent 70%); filter:blur(20px); animation: si-oi-thought 15s ease-in-out infinite alternate; }
.scn-obsessive-idea-returns .bed-frame { position:absolute; bottom:12%; left:30%; width:45%; height:35%; background: linear-gradient(180deg, #2a1a1a 0%, #120a0a 100%); border-radius:8% 8% 4% 4%; box-shadow:inset 0 -8px 16px rgba(0,0,0,.7); }
.scn-obsessive-idea-returns .child-wrapped { position:absolute; bottom:14%; left:40%; width:20%; height:22%; background: radial-gradient(ellipse at 50% 50%, #3a2a2a 0%, #0a0606 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-10deg); animation: si-oi-child 8s ease-in-out infinite; }
.scn-obsessive-idea-returns .figure-seated { position:absolute; bottom:18%; left:25%; width:16%; height:50%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: si-oi-figure 12s ease-in-out infinite; }
.scn-obsessive-idea-returns .clock { position:absolute; right:12%; top:12%; width:10%; height:10%; background: radial-gradient(circle, #3a3a4a 0%, #1a1a2a 100%); border-radius:50%; box-shadow:0 0 10px 2px rgba(0,0,0,.8); animation: si-oi-clock 4s ease-in-out infinite; }
.scn-obsessive-idea-returns .fog { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, rgba(100,100,120,.05) 0%, transparent 60%); filter:blur(30px); animation: si-oi-fog 20s linear infinite; }
@keyframes si-oi-thought { 0% { opacity:.2; transform:scale(1) } 50% { opacity:.6; transform:scale(1.05) } 100% { opacity:.2; transform:scale(1) } }
@keyframes si-oi-child { 0%,100% { transform:rotate(-10deg) } 50% { transform:rotate(-6deg) translateY(-3px) } }
@keyframes si-oi-figure { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(-3px) rotate(-3deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(2px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes si-oi-clock { 0%,100% { transform:rotate(0) } 50% { transform:rotate(10deg) } }
@keyframes si-oi-fog { 0% { transform:translateX(0) } 100% { transform:translateX(-30%) } }

/* Scene 3: temptation-to-crime (dark, dim-interior, candles, window) */
.scn-temptation-to-crime {
  background: linear-gradient(135deg, #0a0a12 0%, #14141e 50%, #1e1e2a 100%),
              radial-gradient(ellipse at 40% 60%, #2a1a1a 0%, transparent 70%);
}
.scn-temptation-to-crime .walls-dark { position:absolute; inset:0; background: linear-gradient(180deg, #12121c 0%, #08080e 100%); }
.scn-temptation-to-crime .window-cold { position:absolute; left:15%; top:8%; width:30%; height:50%; background: linear-gradient(135deg, #1a2a3a 0%, #0a1a2a 100%); border:3px solid #2a2a3a; border-radius:3px; box-shadow:inset 0 0 30px rgba(0,0,0,.9); animation: si-tc-window 6s ease-in-out infinite; }
.scn-temptation-to-crime .curtains { position:absolute; left:12%; top:6%; width:36%; height:54%; background: linear-gradient(180deg, #2a1a1a 0%, #0f0808 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); opacity:.9; animation: si-tc-curtains 10s ease-in-out infinite; }
.scn-temptation-to-crime .candle-a { position:absolute; right:20%; top:30%; width:5%; height:14%; background: linear-gradient(180deg, #c0a080 0%, #6a4a2a 100%); border-radius:2px; box-shadow:0 0 20px 8px rgba(200,160,80,.3); animation: si-tc-candle 3s ease-in-out infinite alternate; }
.scn-temptation-to-crime .candle-b { position:absolute; right:10%; top:35%; width:4%; height:12%; background: linear-gradient(180deg, #c0a080 0%, #6a4a2a 100%); border-radius:2px; box-shadow:0 0 15px 6px rgba(200,160,80,.2); animation: si-tc-candle 4s ease-in-out infinite alternate reverse; }
.scn-temptation-to-crime .figure-back { position:absolute; bottom:10%; left:40%; width:18%; height:60%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: si-tc-figure 8s ease-in-out infinite; }
.scn-temptation-to-crime .knife { position:absolute; bottom:30%; left:45%; width:2%; height:20%; background: linear-gradient(180deg, #8a8a9a 0%, #4a4a5a 100%); border-radius:10% 10% 30% 30%; transform:rotate(-30deg); box-shadow:0 0 6px 2px rgba(255,255,255,.1); animation: si-tc-knife 5s ease-in-out infinite; }
.scn-temptation-to-crime .breath { position:absolute; left:40%; top:12%; width:20%; height:15%; background: radial-gradient(ellipse at 50% 50%, rgba(200,220,255,.08) 0%, transparent 70%); filter:blur(8px); animation: si-tc-breath 7s ease-in-out infinite; }
@keyframes si-tc-window { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes si-tc-curtains { 0%,100% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } }
@keyframes si-tc-candle { 0% { box-shadow:0 0 10px 4px rgba(200,160,80,.2); transform:translateY(0) scale(1) } 50% { box-shadow:0 0 30px 12px rgba(200,160,80,.5); transform:translateY(-2px) scale(1.03) } 100% { box-shadow:0 0 15px 6px rgba(200,160,80,.3); transform:translateY(0) scale(1) } }
@keyframes si-tc-figure { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(-4px) rotate(-1deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(5px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes si-tc-knife { 0%,100% { transform:rotate(-30deg) } 50% { transform:rotate(-20deg) translateY(2px) } }
@keyframes si-tc-breath { 0% { opacity:.1; transform:scale(1) } 50% { opacity:.4; transform:scale(1.1) } 100% { opacity:.1; transform:scale(1) } }

/* Scene 4: pity-for-child (warm, firelit) */
.scn-pity-for-child {
  background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 40%, #5a3a2a 100%),
              radial-gradient(ellipse at 50% 80%, #8a4a2a 0%, transparent 60%);
}
.scn-pity-for-child .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); }
.scn-pity-for-child .fireplace { position:absolute; left:10%; bottom:15%; width:30%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1212 100%); border-radius:10% 10% 4% 4%; box-shadow:inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-pity-for-child .fire-glow { position:absolute; left:12%; bottom:18%; width:26%; height:35%; background: radial-gradient(ellipse at 50% 70%, #ffb060 0%, #d08030 40%, transparent 70%); filter:blur(15px); mix-blend-mode:screen; animation: si-pc-fire 2s ease-in-out infinite alternate; }
.scn-pity-for-child .bed-wood { position:absolute; right:10%; bottom:12%; width:35%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:8% 8% 4% 4%; box-shadow:inset 0 -8px 16px rgba(0,0,0,.5); }
.scn-pity-for-child .child-sleeping { position:absolute; right:18%; bottom:14%; width:15%; height:20%; background: radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(5deg); animation: si-pc-child 6s ease-in-out infinite; }
.scn-pity-for-child .figure-sitting { position:absolute; left:40%; bottom:10%; width:18%; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: si-pc-figure 8s ease-in-out infinite; }
.scn-pity-for-child .candle-stand { position:absolute; left:55%; bottom:22%; width:4%; height:18%; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius:2px; box-shadow:0 0 10px 4px rgba(200,160,80,.3); animation: si-pc-candle 4s ease-in-out infinite alternate; }
.scn-pity-for-child .warm-haze { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(255,180,80,.08) 0%, transparent 70%); filter:blur(30px); animation: si-pc-haze 10s ease-in-out infinite alternate; }
@keyframes si-pc-fire { 0% { opacity:.6; transform:scale(1) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:.7; transform:scale(0.98) } }
@keyframes si-pc-child { 0%,100% { transform:rotate(5deg) } 50% { transform:rotate(3deg) translateY(-2px) } }
@keyframes si-pc-figure { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(-3px) rotate(-2deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(2px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes si-pc-candle { 0% { box-shadow:0 0 8px 2px rgba(200,160,80,.2) } 50% { box-shadow:0 0 20px 8px rgba(200,160,80,.5) } 100% { box-shadow:0 0 12px 4px rgba(200,160,80,.3) } }
@keyframes si-pc-haze { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.3 } }

.scn-later-regret {
  background: linear-gradient(180deg, #1c1816 0%, #2a221e 40%, #1e1a14 100%), radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-later-regret .lr-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a1410 0%, #2c241c 50%, #1a1410 100%); opacity:0.6; }
.scn-later-regret .lr-lamp { position:absolute; bottom:55%; left:35%; width:14px; height:20px; background: radial-gradient(circle, #d4a060 0%, #8a5a30 70%); border-radius:20% 20% 40% 40%; box-shadow: 0 0 40px 20px rgba(200,140,60,0.5); animation: lr-flicker 4s ease-in-out infinite alternate; }
.scn-later-regret .lr-table { position:absolute; bottom:20%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1c1410 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-later-regret .lr-figure { position:absolute; bottom:22%; left:50%; width:28px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #0c0808 0%, #1a1410 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: lr-sway 8s ease-in-out infinite; }
.scn-later-regret .lr-shadow { position:absolute; bottom:20%; left:45%; width:40px; height:12px; background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%); animation: lr-shade 8s ease-in-out infinite; }
.scn-later-regret .lr-glint { position:absolute; bottom:45%; left:38%; width:4px; height:4px; background: #f0d0a0; border-radius:50%; box-shadow: 0 0 8px 2px rgba(240,208,160,0.6); animation: lr-glimmer 6s ease-in-out infinite; }
@keyframes lr-flicker { 0% { opacity:0.8; transform:scaleX(1) rotate(0deg); } 50% { opacity:1; transform:scaleX(1.05) rotate(2deg); } 100% { opacity:0.85; transform:scaleX(0.95) rotate(-1deg); } }
@keyframes lr-sway { 0% { transform: translateX(-50%) rotate(0deg) translateY(0); } 30% { transform: translateX(-50%) rotate(1.5deg) translateY(-2px); } 60% { transform: translateX(-50%) rotate(-1deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes lr-shade { 0% { transform: scaleX(1); opacity:0.7; } 50% { transform: scaleX(1.2); opacity:0.9; } 100% { transform: scaleX(0.9); opacity:0.6; } }
@keyframes lr-glimmer { 0% { opacity:0.3; transform:translate(0,0); } 50% { opacity:1; transform:translate(3px,-2px); } 100% { opacity:0.5; transform:translate(-2px,1px); } }

.scn-item-blond-hair-ring {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a4f3a 40%, #8a6f4a 100%), radial-gradient(ellipse at 50% 40%, #b89860 0%, transparent 70%);
}
.scn-item-blond-hair-ring .hr-backdrop { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #5a4030 50%, #3a2a1a 100%); opacity:0.5; }
.scn-item-blond-hair-ring .hr-hand { position:absolute; bottom:15%; left:30%; right:20%; height:60%; background: linear-gradient(180deg, #2a1c14 0%, #1c1008 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform:rotate(10deg); animation: hr-hand-tremor 7s ease-in-out infinite; }
.scn-item-blond-hair-ring .hr-ring { position:absolute; bottom:55%; left:50%; width:16px; height:12px; transform:translate(-50%,0) rotate(20deg); background: radial-gradient(circle, #f0d090 0%, #b08050 70%); border-radius: 40% 40% 30% 30%; box-shadow: 0 0 30px 10px rgba(200,160,80,0.5), 0 0 60px 20px rgba(200,160,80,0.3); animation: hr-glow 9s ease-in-out infinite alternate; }
.scn-item-blond-hair-ring .hr-finger { position:absolute; bottom:58%; left:46%; width:6px; height:20px; transform:translate(0,0) rotate(20deg); background: linear-gradient(180deg, #3a2818 0%, #1c1008 100%); border-radius: 30% 30% 20% 20%; animation: hr-finger-twitch 10s ease-in-out infinite; }
.scn-item-blond-hair-ring .hr-shine { position:absolute; bottom:60%; left:44%; width:4px; height:4px; background: #ffe0b0; border-radius:50%; box-shadow: 0 0 8px 4px rgba(255,224,176,0.6); animation: hr-sparkle 5s ease-in-out infinite; }
.scn-item-blond-hair-ring .hr-table { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #4a3420 0%, #2a1c10 100%); border-radius: 10% 10% 0 0; }
.scn-item-blond-hair-ring .hr-thimble { position:absolute; bottom:12%; left:25%; width:12px; height:14px; background: linear-gradient(180deg, #6a5038 0%, #3a2a1a 100%); border-radius: 30% 30% 40% 40%; animation: hr-thimble-roll 12s linear infinite; }
@keyframes hr-hand-tremor { 0% { transform:rotate(10deg) scale(1); } 25% { transform:rotate(12deg) scale(0.98); } 50% { transform:rotate(8deg) scale(1.02); } 75% { transform:rotate(11deg) scale(0.99); } 100% { transform:rotate(10deg) scale(1); } }
@keyframes hr-glow { 0% { box-shadow: 0 0 20px 6px rgba(200,160,80,0.4), 0 0 40px 12px rgba(200,160,80,0.2); opacity:0.9; } 50% { box-shadow: 0 0 40px 16px rgba(220,180,100,0.7), 0 0 80px 30px rgba(220,180,100,0.4); opacity:1; } 100% { box-shadow: 0 0 25px 8px rgba(200,160,80,0.5), 0 0 50px 15px rgba(200,160,80,0.25); opacity:0.85; } }
@keyframes hr-finger-twitch { 0% { transform:translate(0,0) rotate(20deg); } 30% { transform:translate(1px,-1px) rotate(22deg); } 60% { transform:translate(-1px,1px) rotate(18deg); } 100% { transform:translate(0,0) rotate(20deg); } }
@keyframes hr-sparkle { 0% { opacity:0.2; transform:scale(0.5) rotate(0deg); } 50% { opacity:1; transform:scale(1.2) rotate(180deg); } 100% { opacity:0.3; transform:scale(0.6) rotate(360deg); } }
@keyframes hr-thimble-roll { 0% { transform:rotate(0deg) translateX(0); } 25% { transform:rotate(90deg) translateX(3px); } 50% { transform:rotate(180deg) translateX(0px); } 75% { transform:rotate(270deg) translateX(-3px); } 100% { transform:rotate(360deg) translateX(0); } }

.scn-santeze-madness {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 10%, #3a3a5e 0%, transparent 60%);
}
.scn-santeze-madness .sm-bg { position:absolute; inset:0; background: linear-gradient(90deg, #12121e 0%, #22223a 50%, #12121e 100%); opacity:0.7; }
.scn-santeze-madness .sm-beam { position:absolute; top:0; left:48%; right:48%; height:100%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2e 100%); width:6%; margin:0 auto; }
.scn-santeze-madness .sm-rope { position:absolute; top:0; left:50%; width:3px; height:40%; background: #2a2a3a; transform:translateX(-50%); box-shadow: 0 0 4px rgba(200,200,220,0.2); animation: sm-rope-swing 15s ease-in-out infinite; }
.scn-santeze-madness .sm-figure { position:absolute; top:35%; left:50%; width:28px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 40% 40% 20% 20% / 30% 30% 20% 20%; animation: sm-hang 12s ease-in-out infinite alternate; }
.scn-santeze-madness .sm-window { position:absolute; top:10%; right:15%; width:40px; height:50px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border: 2px solid #2a2a3a; border-radius:2px; box-shadow: inset 0 0 20px rgba(100,100,180,0.3); }
.scn-santeze-madness .sm-moon { position:absolute; top:12%; right:20%; width:20px; height:20px; background: radial-gradient(circle, #c0c0e0 0%, #6a6a8a 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(180,180,220,0.4); animation: sm-moon-drift 30s linear infinite; }
@keyframes sm-rope-swing { 0% { transform:translateX(-50%) rotate(-2deg); } 30% { transform:translateX(-50%) rotate(0deg); } 60% { transform:translateX(-50%) rotate(2deg); } 100% { transform:translateX(-50%) rotate(-1deg); } }
@keyframes sm-hang { 0% { transform:translateX(-50%) rotate(-1deg) scaleY(1); } 50% { transform:translateX(-50%) rotate(2deg) scaleY(0.98); } 100% { transform:translateX(-50%) rotate(-1deg) scaleY(1); } }
@keyframes sm-moon-drift { 0% { transform:translateX(0) translateY(0) scale(1); } 33% { transform:translateX(5px) translateY(-3px) scale(1.02); } 66% { transform:translateX(-3px) translateY(2px) scale(0.98); } 100% { transform:translateX(0) translateY(0) scale(1); } }

.scn-childhood-cousin {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4030 30%, #7a5a40 70%, #5a4030 100%), radial-gradient(ellipse at 50% 15%, #9e7a5a 0%, transparent 80%);
}
.scn-childhood-cousin .cc-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3420 0%, #2a1c10 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-childhood-cousin .cc-window { position:absolute; top:12%; left:35%; right:35%; height:45%; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 60%, #4a4a6a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 40px rgba(80,80,120,0.4), 0 0 20px rgba(0,0,0,0.5); }
.scn-childhood-cousin .cc-curtains { position:absolute; top:18%; left:32%; width:8%; height:80%; background: linear-gradient(180deg, #6a5038 0%, #3a2818 100%); border-radius: 40% 0 0 40%; box-shadow: 2px 0 8px rgba(0,0,0,0.3); animation: cc-drape 12s ease-in-out infinite alternate; }
.scn-childhood-cousin .cc-curtains::after { content:''; position:absolute; right:-100%; top:0; width:100%; height:100%; background: linear-gradient(180deg, #6a5038 0%, #3a2818 100%); border-radius: 0 40% 40% 0; box-shadow: -2px 0 8px rgba(0,0,0,0.3); }
.scn-childhood-cousin .cc-figure-left { position:absolute; bottom:30%; left:20%; width:22px; height:50px; background: linear-gradient(180deg, #1c1410 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom; animation: cc-breathe 6s ease-in-out infinite; }
.scn-childhood-cousin .cc-figure-right { position:absolute; bottom:30%; right:20%; width:18px; height:44px; background: linear-gradient(180deg, #2a1c14 0%, #1a0e0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin:bottom; animation: cc-breathe 6s ease-in-out infinite 3s; }
.scn-childhood-cousin .cc-lamp { position:absolute; bottom:40%; left:50%; width:12px; height:18px; transform:translateX(-50%); background: radial-gradient(circle, #d4a060 0%, #8a5a30 70%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 30px 12px rgba(200,140,60,0.4); animation: cc-lamp-flicker 8s ease-in-out infinite alternate; }
.scn-childhood-cousin .cc-rug { position:absolute; bottom:0; left:15%; right:15%; height:10%; background: linear-gradient(90deg, #6a4a3a 0%, #4a3420 50%, #6a4a3a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; opacity:0.6; }
@keyframes cc-drape { 0% { transform:translateY(0) scaleX(1); } 50% { transform:translateY(-4px) scaleX(0.95); } 100% { transform:translateY(0) scaleX(1); } }
@keyframes cc-breathe { 0% { transform:scale(1) rotate(0deg); } 25% { transform:scale(1.02) rotate(1deg); } 50% { transform:scale(0.98) rotate(-1deg); } 75% { transform:scale(1.01) rotate(0.5deg); } 100% { transform:scale(1) rotate(0deg); } }
@keyframes cc-lamp-flicker { 0% { opacity:0.7; transform:translateX(-50%) scale(1); } 30% { opacity:1; transform:translateX(-50%) scale(1.05); } 60% { opacity:0.8; transform:translateX(-50%) scale(0.95); } 100% { opacity:0.9; transform:translateX(-50%) scale(1); } }

/* Scene 1: magloire-drink-gossip (funny + sunlit) */
.scn-magloire-drink-gossip {
  background: linear-gradient(180deg, #fde4b3 0%, #e8c98a 40%, #c9a46c 100%),
              radial-gradient(ellipse at 70% 20%, #fff7d6 0%, transparent 60%);
}
.scn-magloire-drink-gossip .bg-wall     { position:absolute; inset:0; background:linear-gradient(90deg, #d4b68a 0%, #c49a6c 100%); animation: mlg-wall 12s ease-in-out infinite alternate; }
.scn-magloire-drink-gossip .window-sun  { position:absolute; top:8%; left:15%; width:30%; height:45%; background:linear-gradient(135deg, #fff3d6 0%, #fce8b4 80%); border-radius:4px; box-shadow:0 0 40px 20px #fce8b4; animation: mlg-sun 8s ease-in-out infinite alternate; }
.scn-magloire-drink-gossip .table       { position:absolute; bottom:20%; left:35%; width:30%; height:12%; background:linear-gradient(180deg, #8b5e3c 0%, #6b4226 100%); border-radius:8px; box-shadow:0 6px 12px rgba(0,0,0,.3); animation: mlg-table 4s ease-in-out infinite; }
.scn-magloire-drink-gossip .bottle      { position:absolute; bottom:28%; left:43%; width:8%; height:20%; background:linear-gradient(180deg, #5a7a4a 0%, #3e5a30 100%); border-radius:30% 30% 10% 10% / 40% 40% 10% 10%; animation: mlg-bottle 3s ease-in-out infinite alternate; }
.scn-magloire-drink-gossip .glass       { position:absolute; bottom:30%; left:52%; width:6%; height:14%; background:rgba(255,255,230,0.3); border:1px solid rgba(255,255,200,0.5); border-radius:0 0 30% 30%; box-shadow:0 0 8px 2px #fffde0; animation: mlg-glass 2s ease-in-out infinite; }
.scn-magloire-drink-gossip .figure-mag  { position:absolute; bottom:20%; left:40%; width:16%; height:35%; background:linear-gradient(180deg, #4a3520 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: mlg-figure 4s ease-in-out infinite alternate; }
.scn-magloire-drink-gossip .chair       { position:absolute; bottom:18%; left:55%; width:12%; height:8%; background:linear-gradient(180deg, #5c4030 0%, #3c2820 100%); border-radius:10px; transform:rotate(5deg); animation: mlg-chair 5s ease-in-out infinite; }
.scn-magloire-drink-gossip .gossip-sound{ position:absolute; top:60%; right:20%; width:8%; height:6%; background:radial-gradient(circle, #ffe680 0%, transparent 70%); filter:blur(3px); animation: mlg-gossip 3s ease-in-out infinite; }
@keyframes mlg-wall   { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mlg-sun    { 0% { transform:scale(1) translate(0,0); opacity:.8 } 50% { transform:scale(1.05) translate(3px, -2px); opacity:1 } 100% { transform:scale(1) translate(0,0); opacity:.85 } }
@keyframes mlg-table  { 0%,100% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-2px) rotate(0.5deg) } }
@keyframes mlg-bottle { 0% { transform:rotate(-3deg); opacity:.9 } 50% { transform:rotate(2deg); opacity:1 } 100% { transform:rotate(-1deg); opacity:.95 } }
@keyframes mlg-glass  { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-1px) rotate(2deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes mlg-figure { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(1deg) translateY(-3px) } 100% { transform:rotate(0deg) translateY(0) } }
@keyframes mlg-chair  { 0%,100% { transform:rotate(5deg) translateY(0) } 50% { transform:rotate(3deg) translateY(-2px) } }
@keyframes mlg-gossip { 0% { opacity:0; transform:scale(0.5) } 50% { opacity:0.7; transform:scale(1.2) } 100% { opacity:0; transform:scale(0.8) } }

/* Scene 2: night-scavenger (calm + dark) */
.scn-night-scavenger {
  background: linear-gradient(180deg, #0b0e1a 0%, #1a2330 40%, #0d1118 100%),
              radial-gradient(ellipse at 30% 80%, #2a3a4a 0%, transparent 60%);
}
.scn-night-scavenger .bg-night     { position:absolute; inset:0; background:linear-gradient(180deg, #11172a 0%, #070a12 100%); animation: ngs-bg 20s ease-in-out infinite alternate; }
.scn-night-scavenger .moon         { position:absolute; top:12%; left:70%; width:12%; height:12%; background:radial-gradient(circle, #e8e0c8 0%, #b8a880 80%); border-radius:50%; box-shadow:0 0 60px 20px rgba(200,190,160,0.3); animation: ngs-moon 15s ease-in-out infinite alternate; }
.scn-night-scavenger .lamp-glow    { position:absolute; top:20%; left:25%; width:20%; height:30%; background:radial-gradient(ellipse, #ffd080 0%, #b08040 30%, transparent 70%); animation: ngs-lampglow 5s ease-in-out infinite; }
.scn-night-scavenger .lamp-post    { position:absolute; top:20%; left:30%; width:2%; height:35%; background:linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius:2px; box-shadow:0 0 4px #000; }
.scn-night-scavenger .figure-scav  { position:absolute; bottom:12%; left:40%; width:10%; height:40%; background:linear-gradient(180deg, #1a1a22 0%, #0a0a0e 100%); border-radius:50% 40% 30% 40% / 60% 50% 40% 50%; transform-origin:bottom; animation: ngs-figure 6s ease-in-out infinite; }
.scn-night-scavenger .barrel       { position:absolute; bottom:8%; left:28%; width:10%; height:16%; background:linear-gradient(180deg, #3c3024 0%, #2a1e14 100%); border-radius:30%; box-shadow:inset 0 4px 8px rgba(0,0,0,0.5); animation: ngs-barrel 8s ease-in-out infinite alternate; }
.scn-night-scavenger .tool-pick    { position:absolute; bottom:20%; left:25%; width:6%; height:12%; background:linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%); border-radius:2px; transform:rotate(30deg); animation: ngs-pick 4s ease-in-out infinite; }
.scn-night-scavenger .shadow-street{ position:absolute; bottom:0; left:0; right:0; height:15%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
@keyframes ngs-bg      { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ngs-moon    { 0% { transform:translateY(0); opacity:.7 } 50% { transform:translateY(-5px); opacity:.9 } 100% { transform:translateY(0); opacity:.75 } }
@keyframes ngs-lampglow{ 0% { opacity:.5; transform:scale(0.95) } 50% { opacity:.8; transform:scale(1.05) } 100% { opacity:.6; transform:scale(1) } }
@keyframes ngs-figure  { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(3px) rotate(-1deg) } 50% { transform:translateX(6px) rotate(1deg) } 75% { transform:translateX(9px) rotate(-1deg) } 100% { transform:translateX(12px) rotate(0deg) } }
@keyframes ngs-barrel  { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(0.98) } }
@keyframes ngs-pick    { 0%,100% { transform:rotate(30deg) } 50% { transform:rotate(35deg) } }

/* Scene 3: boitelle-negress-first (warm + sunlit) */
.scn-boitelle-negress-first {
  background: linear-gradient(180deg, #fddb9e 0%, #e8b86a 40%, #b88a4a 100%),
              radial-gradient(ellipse at 60% 30%, #fff4d0 0%, transparent 60%);
}
.scn-boitelle-negress-first .bg-harbor    { position:absolute; inset:0; background:linear-gradient(180deg, #aaccdd 0%, #88aabb 40%, #668899 100%); animation: btn-bg 15s ease-in-out infinite alternate; }
.scn-boitelle-negress-first .sun          { position:absolute; top:5%; left:15%; width:14%; height:14%; background:radial-gradient(circle, #ffe680 0%, #ffcc44 60%, transparent 100%); border-radius:50%; box-shadow:0 0 80px 30px #ffcc44; animation: btn-sun 12s ease-in-out infinite; }
.scn-boitelle-negress-first .water        { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%); border-radius:40% 60% 0 0 / 30% 40% 0 0; animation: btn-water 14s ease-in-out infinite alternate; }
.scn-boitelle-negress-first .quay         { position:absolute; bottom:30%; left:0; right:0; height:10%; background:linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:10px; box-shadow:0 -4px 8px rgba(0,0,0,0.3); }
.scn-boitelle-negress-first .birdcage     { position:absolute; bottom:32%; left:20%; width:12%; height:18%; background:linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:20% 20% 10% 10%; box-shadow:inset 0 0 0 4px #4a3a2a; animation: btn-cage 5s ease-in-out infinite alternate; }
.scn-boitelle-negress-first .macaw        { position:absolute; bottom:38%; left:22%; width:8%; height:10%; background:linear-gradient(180deg, #e03040 0%, #b02030 50%, #802028 100%); border-radius:50% 40% 30% 50% / 60% 50% 40% 50%; animation: btn-macaw 4s ease-in-out infinite; }
.scn-boitelle-negress-first .cafe-door    { position:absolute; bottom:30%; right:20%; width:10%; height:25%; background:linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%); border-radius:5px; box-shadow:0 0 10px 5px rgba(255,200,100,0.3); animation: btn-door 6s ease-in-out infinite alternate; }
.scn-boitelle-negress-first .negress-profile{ position:absolute; bottom:30%; right:15%; width:8%; height:22%; background:linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:50% 30% 30% 50% / 60% 40% 40% 50%; transform-origin:bottom; animation: btn-negress 6s ease-in-out infinite; }
@keyframes btn-bg     { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes btn-sun    { 0% { transform:scale(1) translate(0,0); opacity:.9 } 50% { transform:scale(1.05) translate(2px,-2px); opacity:1 } 100% { transform:scale(0.98) translate(-1px,0); opacity:.85 } }
@keyframes btn-water  { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes btn-cage   { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-1deg) } }
@keyframes btn-macaw  { 0%,100% { transform:rotate(0deg) translateY(0) } 50% { transform:rotate(5deg) translateY(-2px) } }
@keyframes btn-door   { 0% { transform:scaleX(1) } 50% { transform:scaleX(0.05) } 100% { transform:scaleX(1) } }
@keyframes btn-negress{ 0% { transform:translateX(0) rotate(0deg); opacity:.7 } 50% { transform:translateX(3px) rotate(-2deg); opacity:1 } 100% { transform:translateX(0) rotate(0deg); opacity:.8 } }

/* Scene 4: boitelle-and-negress-friends (warm + sunlit) */
.scn-boitelle-and-negress-friends {
  background: linear-gradient(180deg, #fde4b3 0%, #d4bc80 40%, #b8a06a 100%),
              radial-gradient(ellipse at 50% 20%, #fff7d6 0%, transparent 60%);
}
.scn-boitelle-and-negress-friends .bg-garden   { position:absolute; inset:0; background:linear-gradient(180deg, #b8d8b0 0%, #88a87a 40%, #6a8a5a 100%); animation: bnf-bg 18s ease-in-out infinite alternate; }
.scn-boitelle-and-negress-friends .bench       { position:absolute; bottom:20%; left:30%; width:40%; height:10%; background:linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:10px; box-shadow:0 6px 12px rgba(0,0,0,0.3); animation: bnf-bench 6s ease-in-out infinite; }
.scn-boitelle-and-negress-friends .figure-soldier{ position:absolute; bottom:20%; left:35%; width:12%; height:35%; background:linear-gradient(180deg, #3a4a6a 0%, #2a3a5a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: bnf-soldier 5s ease-in-out infinite; }
.scn-boitelle-and-negress-friends .figure-negress{ position:absolute; bottom:20%; left:50%; width:12%; height:34%; background:linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation: bnf-negress 5s ease-in-out infinite alternate; }
.scn-boitelle-and-negress-friends .flowers     { position:absolute; bottom:15%; left:40%; width:6%; height:10%; background:radial-gradient(circle, #ff8080 0%, #ff6040 50%, transparent 70%); border-radius:50%; filter:blur(3px); animation: bnf-flowers 4s ease-in-out infinite; }
.scn-boitelle-and-negress-friends .sun-rays    { position:absolute; top:10%; left:20%; width:60%; height:40%; background:linear-gradient(135deg, rgba(255,255,200,0.2) 0%, transparent 70%); filter:blur(10px); animation: bnf-rays 12s ease-in-out infinite alternate; }
.scn-boitelle-and-negress-friends .butterfly   { position:absolute; top:30%; left:60%; width:4%; height:3%; background:linear-gradient(180deg, #ff88aa 0%, #cc6688 100%); border-radius:50%; transform:rotate(20deg); animation: bnf-bfly 8s ease-in-out infinite; }
@keyframes bnf-bg      { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes bnf-bench   { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes bnf-soldier { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(1deg) translateY(-2px) } 100% { transform:rotate(-1deg) translateY(0) } }
@keyframes bnf-negress { 0% { transform:rotate(2deg) translateY(0) } 50% { transform:rotate(-1deg) translateY(-2px) } 100% { transform:rotate(1deg) translateY(0) } }
@keyframes bnf-flowers { 0% { opacity:.6; transform:scale(1) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:.7; transform:scale(0.9) } }
@keyframes bnf-rays    { 0% { opacity:.3; transform:translateX(-10px) } 50% { opacity:.5; transform:translateX(5px) } 100% { opacity:.35; transform:translateX(-5px) } }
@keyframes bnf-bfly    { 0% { transform:translate(0,0) rotate(20deg) } 25% { transform:translate(8px,-4px) rotate(30deg) } 50% { transform:translate(16px,0) rotate(25deg) } 75% { transform:translate(8px,3px) rotate(35deg) } 100% { transform:translate(0,0) rotate(20deg) } }

.scn-family-visit-preparations {
  background: linear-gradient(180deg, #ffe0a0 0%, #ffcc80 30%, #c89650 100%), radial-gradient(ellipse at 30% 40%, #ffd080 0%, transparent 60%);
}
.scn-family-visit-preparations .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #c8a070, #d4b088 50%, #be946c); box-shadow: inset 0 10px 20px rgba(0,0,0,0.1); }
.scn-family-visit-preparations .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #7b5a3a 0%, #a07a50 100%); }
.scn-family-visit-preparations .window { position:absolute; top:15%; left:15%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 30%, #fff8e0 0%, #ffe080 70%, transparent); border: 6px solid #5a3a2a; box-shadow: inset 0 0 40px #ffe080, 0 0 60px rgba(255,224,128,0.3); animation: fvp-window 6s ease-in-out infinite alternate; }
.scn-family-visit-preparations .figure-left { position:absolute; bottom:25%; left:30%; width:8%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fvp-figure-left 2s ease-in-out infinite; }
.scn-family-visit-preparations .figure-right { position:absolute; bottom:25%; left:55%; width:8%; height:35%; background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: fvp-figure-right 2.4s ease-in-out infinite; }
.scn-family-visit-preparations .table { position:absolute; bottom:18%; left:35%; width:30%; height:4%; background: #5a3a2a; border-radius: 2px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); }
.scn-family-visit-preparations .chair { position:absolute; bottom:18%; left:65%; width:8%; height:12%; background: linear-gradient(180deg, #4a2a1a, #2a1a0a); border-radius: 10% 10% 5% 5%; transform-origin: bottom; animation: fvp-chair 3s ease-in-out infinite; }
.scn-family-visit-preparations .shadow-cast { position:absolute; bottom:20%; left:10%; width:80%; height:30%; background: linear-gradient(90deg, rgba(0,0,0,0.3), transparent 40%, rgba(0,0,0,0.15)); animation: fvp-shadow 4s ease-in-out infinite alternate; }
@keyframes fvp-window { 0% { box-shadow: inset 0 0 30px #ffe080, 0 0 40px rgba(255,224,128,0.2); } 50% { box-shadow: inset 0 0 60px #fff0a0, 0 0 80px rgba(255,240,160,0.4); } 100% { box-shadow: inset 0 0 30px #ffe080, 0 0 40px rgba(255,224,128,0.2); } }
@keyframes fvp-figure-left { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes fvp-figure-right { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-2deg); } }
@keyframes fvp-chair { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes fvp-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-skin-color-questions {
  background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-skin-color-questions .bg-dim { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 50%, rgba(0,0,0,0.3) 100%); }
.scn-skin-color-questions .table { position:absolute; bottom:10%; left:20%; width:60%; height:5%; background: #4a3020; border-radius: 5px; box-shadow: 0 8px 16px rgba(0,0,0,0.5); }
.scn-skin-color-questions .pot { position:absolute; bottom:17%; left:40%; width:20%; height:25%; background: radial-gradient(ellipse at 50% 40%, #1a1a1a 0%, #050505 100%); border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%; box-shadow: 0 10px 20px rgba(0,0,0,0.6); animation: scq-pot 3s ease-in-out infinite; }
.scn-skin-color-questions .parent-left { position:absolute; bottom:15%; left:10%; width:15%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: scq-parent-left 2s ease-in-out infinite; }
.scn-skin-color-questions .parent-right { position:absolute; bottom:15%; left:70%; width:15%; height:45%; background: linear-gradient(180deg, #2a1a0e 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: scq-parent-right 2.5s ease-in-out infinite; }
.scn-skin-color-questions .gesture-left { position:absolute; bottom:35%; left:12%; width:12%; height:3%; background: #2a1a0e; border-radius: 50%; transform-origin: left; animation: scq-gesture-left 0.8s ease-in-out infinite; }
.scn-skin-color-questions .gesture-right { position:absolute; bottom:30%; left:72%; width:14%; height:3%; background: #1a0a05; border-radius: 50%; transform-origin: right; animation: scq-gesture-right 1.2s ease-in-out infinite; }
.scn-skin-color-questions .chair { position:absolute; bottom:10%; left:65%; width:10%; height:25%; background: linear-gradient(180deg, #4a3020, #2a1a10); border-radius: 10% 10% 5% 5%; transform-origin: bottom; animation: scq-chair 4s ease-in-out infinite; }
@keyframes scq-pot { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(5deg); } }
@keyframes scq-parent-left { 0%,100% { transform: translateY(0) rotate(3deg); } 50% { transform: translateY(-5px) rotate(-3deg); } }
@keyframes scq-parent-right { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(4deg); } }
@keyframes scq-gesture-left { 0% { transform: rotate(30deg); } 50% { transform: rotate(-30deg); } 100% { transform: rotate(30deg); } }
@keyframes scq-gesture-right { 0% { transform: rotate(-40deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-40deg); } }
@keyframes scq-chair { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } }

.scn-agreement-to-visit {
  background: linear-gradient(180deg, #b0b8c0 0%, #c8d0d8 40%, #a0aab0 100%), radial-gradient(ellipse at 50% 30%, #d0d8e0 0%, transparent 70%);
}
.scn-agreement-to-visit .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d8e0e8 0%, #b0b8c0 100%); animation: atv-sky 12s ease-in-out infinite alternate; }
.scn-agreement-to-visit .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #809070 0%, #90a080 100%); }
.scn-agreement-to-visit .figure { position:absolute; bottom:25%; left:45%; width:8%; height:40%; background: linear-gradient(180deg, #503020 0%, #2a1808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: atv-figure 6s ease-in-out infinite; }
.scn-agreement-to-visit .dress-yellow { position:absolute; bottom:25%; left:43%; width:12%; height:25%; background: radial-gradient(ellipse at 50% 40%, #e8c840 0%, #b89a20 100%); border-radius: 40% 40% 30% 30%; animation: atv-dress-yellow 4s ease-in-out infinite; }
.scn-agreement-to-visit .dress-red { position:absolute; bottom:25%; left:44%; width:10%; height:20%; background: radial-gradient(ellipse at 50% 40%, #c8553d 0%, #a0402a 100%); border-radius: 40% 40% 30% 30%; animation: atv-dress-red 4.5s ease-in-out infinite; }
.scn-agreement-to-visit .dress-blue { position:absolute; bottom:25%; left:45%; width:8%; height:15%; background: radial-gradient(ellipse at 50% 40%, #4a7aa8 0%, #2a5080 100%); border-radius: 40% 40% 30% 30%; animation: atv-dress-blue 5s ease-in-out infinite; }
.scn-agreement-to-visit .tree { position:absolute; bottom:30%; left:20%; width:15%; height:60%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; animation: atv-tree 8s ease-in-out infinite; }
.scn-agreement-to-visit .cloud { position:absolute; top:10%; left:60%; width:25%; height:6%; background: rgba(200,200,210,0.6); border-radius: 50%; filter: blur(8px); animation: atv-cloud 30s linear infinite; }
@keyframes atv-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes atv-figure { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes atv-dress-yellow { 0%,100% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } }
@keyframes atv-dress-red { 0%,100% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.03); } }
@keyframes atv-dress-blue { 0%,100% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } }
@keyframes atv-tree { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes atv-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120%); } }

.scn-arrival-at-farm {
  background: linear-gradient(180deg, #ffe8b0 0%, #ffd080 30%, #b08850 100%), radial-gradient(ellipse at 40% 20%, #ffe0a0 0%, transparent 60%);
}
.scn-arrival-at-farm .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c8d8e8 0%, #ffd080 100%); animation: aaf-sky 10s ease-in-out infinite alternate; }
.scn-arrival-at-farm .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #8a7a4a 0%, #b0a060 100%); }
.scn-arrival-at-farm .barn { position:absolute; bottom:30%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #a0461a 0%, #6a2a0a 100%); border-radius: 8% 8% 10% 10%; box-shadow: 6px 0 12px rgba(0,0,0,0.3), inset 0 8px 20px rgba(0,0,0,0.2); }
.scn-arrival-at-farm .fence { position:absolute; bottom:38%; left:0; width:100%; height:2%; background: #5a3a2a; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: aaf-fence 8s ease-in-out infinite; }
.scn-arrival-at-farm .path { position:absolute; bottom:10%; left:35%; width:30%; height:30%; background: linear-gradient(90deg, #c0a860, #d0b870 50%, #b8a050); border-radius: 50% / 30%; transform: rotate(-5deg); }
.scn-arrival-at-farm .man { position:absolute; bottom:22%; left:32%; width:7%; height:40%; background: linear-gradient(180deg, #2a1a0e 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: aaf-man 3s ease-in-out infinite; }
.scn-arrival-at-farm .woman { position:absolute; bottom:22%; left:38%; width:7%; height:38%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: aaf-woman 2.8s ease-in-out infinite; }
.scn-arrival-at-farm .family-group { position:absolute; bottom:20%; left:65%; width:15%; height:30%; background: linear-gradient(180deg, #4a3020 0%, #2a1808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: aaf-family 4s ease-in-out infinite; }
@keyframes aaf-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes aaf-fence { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes aaf-man { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes aaf-woman { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-4px) rotate(-1deg); } }
@keyframes aaf-family { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }

.scn-old-maid-gesture {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 70%),
    radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, transparent 80%);
}
.scn-old-maid-gesture .room {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%);
  animation: omg-room 20s ease-in-out infinite alternate;
}
.scn-old-maid-gesture .window {
  position: absolute;
  top: 8%;
  left: 15%;
  width: 30%;
  height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 4px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: omg-window 12s ease-in-out infinite alternate;
}
.scn-old-maid-gesture .figure {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 22%;
  height: 45%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: omg-figure 6s ease-in-out infinite;
}
.scn-old-maid-gesture .hand {
  position: absolute;
  bottom: 45%;
  left: 55%;
  width: 14%;
  height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-20deg);
  animation: omg-hand 2s ease-in-out infinite alternate;
}
.scn-old-maid-gesture .handkerchief {
  position: absolute;
  bottom: 47%;
  left: 58%;
  width: 10%;
  height: 6%;
  background: #4a3a2a;
  border-radius: 20%;
  filter: blur(1px);
  animation: omg-handkerchief 3s ease-in-out infinite;
}
.scn-old-maid-gesture .candle-glow {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 12%;
  height: 12%;
  background: radial-gradient(circle at 50% 50%, #c08040 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: omg-glow 4s ease-in-out infinite alternate;
}
@keyframes omg-room {
  0%,100% { opacity: .9; }
  50% { opacity: .7; }
}
@keyframes omg-window {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05) translateY(2px); }
  100% { transform: scaleX(1); }
}
@keyframes omg-figure {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(1deg) translateX(-2px); }
  50% { transform: rotate(0deg) translateX(0); }
  75% { transform: rotate(-1deg) translateX(2px); }
  100% { transform: rotate(0deg); }
}
@keyframes omg-hand {
  0% { transform: rotate(-25deg) translateY(0); }
  33% { transform: rotate(-15deg) translateY(-3px); }
  66% { transform: rotate(-20deg) translateY(1px); }
  100% { transform: rotate(-25deg); }
}
@keyframes omg-handkerchief {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(5deg); }
}
@keyframes omg-glow {
  0% { opacity: .5; }
  100% { opacity: 1; }
}

.scn-englishman-appearance {
  background:
    linear-gradient(180deg, #a0c4ff 0%, #d4e4ff 60%, #f0e6d0 100%),
    radial-gradient(ellipse at 50% 100%, #ffe066 0%, transparent 70%);
}
.scn-englishman-appearance .sky {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #a0c4ff 0%, #c8dcff 100%);
  animation: eng-app-sky 30s ease-in-out infinite alternate;
}
.scn-englishman-appearance .sun {
  position: absolute;
  top: 8%;
  left: 70%;
  width: 10%;
  height: 10%;
  background: radial-gradient(circle, #fff5cc 0%, #ffe066 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffe066;
  animation: eng-app-sun 40s linear infinite;
}
.scn-englishman-appearance .buildings {
  position: absolute;
  bottom: 35%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #e0c9a6 0%, #d4b896 100%);
  clip-path: polygon(0% 100%, 0% 20%, 8% 20%, 8% 10%, 14% 10%, 14% 40%, 20% 40%, 20% 15%, 28% 15%, 28% 0%, 35% 0%, 35% 25%, 42% 25%, 42% 30%, 50% 30%, 50% 10%, 58% 10%, 58% 20%, 65% 20%, 65% 35%, 72% 35%, 72% 15%, 80% 15%, 80% 25%, 88% 25%, 88% 5%, 100% 5%, 100% 100%);
  animation: eng-app-buildings 20s ease-in-out infinite alternate;
}
.scn-englishman-appearance .street {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
}
.scn-englishman-appearance .figure {
  position: absolute;
  bottom: 18%;
  left: 45%;
  width: 8%;
  height: 16%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eng-app-figure 12s ease-in-out infinite;
}
.scn-englishman-appearance .shadow {
  position: absolute;
  bottom: 18%;
  left: 43%;
  width: 12%;
  height: 4%;
  background: rgba(0,0,0,.2);
  border-radius: 50%;
  filter: blur(2px);
  animation: eng-app-shadow 12s ease-in-out infinite;
}
.scn-englishman-appearance .hat {
  position: absolute;
  bottom: 33%;
  left: 45%;
  width: 6%;
  height: 4%;
  background: #2a1a0a;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(5deg);
  animation: eng-app-hat 8s ease-in-out infinite;
}
@keyframes eng-app-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes eng-app-sun {
  0% { transform: translate(0,0) scale(1); }
  50% { transform: translate(8px,-4px) scale(1.03); }
  100% { transform: translate(0,0) scale(1); }
}
@keyframes eng-app-buildings {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes eng-app-figure {
  0% { transform: rotate(0deg) translateX(0); }
  33% { transform: rotate(1deg) translateX(4px); }
  66% { transform: rotate(-1deg) translateX(-3px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes eng-app-shadow {
  0%,100% { transform: scaleX(1); opacity: .3; }
  50% { transform: scaleX(1.1); opacity: .5; }
}
@keyframes eng-app-hat {
  0%,100% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
}

.scn-englishman-thanks {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e3d0b0 60%, #c8a87a 100%),
    radial-gradient(ellipse at 30% 40%, #ffd080 0%, transparent 70%);
}
.scn-englishman-thanks .room {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #f0dcc0 0%, #e0c8a0 50%, #d0b890 100%);
  animation: eng-thk-room 30s ease-in-out infinite alternate;
}
.scn-englishman-thanks .window-light {
  position: absolute;
  top: 10%;
  left: 60%;
  width: 25%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #fff0d0 0%, #ffd080 50%, transparent 70%);
  filter: blur(6px);
  animation: eng-thk-window 10s ease-in-out infinite alternate;
}
.scn-englishman-thanks .figure-still {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 14%;
  height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eng-thk-still 15s ease-in-out infinite;
}
.scn-englishman-thanks .figure-twitch {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 14%;
  height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eng-thk-twitch 3s ease-in-out infinite;
}
.scn-englishman-thanks .table {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 35%;
  height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
}
.scn-englishman-thanks .chair {
  position: absolute;
  bottom: 28%;
  left: 38%;
  width: 10%;
  height: 18%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 0 6px rgba(0,0,0,.2);
}
.scn-englishman-thanks .warm-glow {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 30%;
  height: 30%;
  background: radial-gradient(circle at 50% 50%, #ffd080 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(10px);
  animation: eng-thk-glow 8s ease-in-out infinite alternate;
}
@keyframes eng-thk-room {
  0%,100% { opacity: .95; }
  50% { opacity: .85; }
}
@keyframes eng-thk-window {
  0% { opacity: .6; }
  100% { opacity: 1; }
}
@keyframes eng-thk-still {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes eng-thk-twitch {
  0% { transform: rotate(0deg) translateX(0); }
  15% { transform: rotate(3deg) translateX(5px) translateY(-2px); }
  30% { transform: rotate(-2deg) translateX(-4px) translateY(1px); }
  45% { transform: rotate(1deg) translateX(3px) translateY(-1px); }
  60% { transform: rotate(-3deg) translateX(-5px) translateY(2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes eng-thk-glow {
  0% { opacity: .4; }
  100% { opacity: .8; }
}

.scn-flayed-hand-room {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #0a0000 70%),
    radial-gradient(ellipse at 50% 60%, #5e1a1d 0%, transparent 80%);
}
.scn-flayed-hand-room .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1a0a0a 0%, #2a0a0a 50%, #1a0a0a 100%);
  animation: fhr-wall 30s ease-in-out infinite alternate;
}
.scn-flayed-hand-room .table {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 50%;
  height: 10%;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
}
.scn-flayed-hand-room .hand-reliquary {
  position: absolute;
  bottom: 28%;
  left: 42%;
  width: 16%;
  height: 14%;
  background: radial-gradient(circle at 50% 30%, #d4c9b8 0%, #8a7a6a 40%, #5e1a1d 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  box-shadow: 0 0 20px 4px rgba(94,26,29,.5);
  animation: fhr-hand 6s ease-in-out infinite;
}
.scn-flayed-hand-room .candle {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 4%;
  height: 12%;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,.3);
}
.scn-flayed-hand-room .candle-glow {
  position: absolute;
  bottom: 38%;
  left: 29%;
  width: 10%;
  height: 10%;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fhr-candleglow 4s ease-in-out infinite alternate;
}
.scn-flayed-hand-room .shadow {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 20%;
  height: 20%;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: fhr-shadow 8s ease-in-out infinite;
}
.scn-flayed-hand-room .bone {
  position: absolute;
  bottom: 18%;
  left: 55%;
  width: 6%;
  height: 4%;
  background: #b0a090;
  border-radius: 20%;
  filter: blur(1px);
  animation: fhr-bone 12s linear infinite;
}
@keyframes fhr-wall {
  0%,100% { opacity: .9; }
  50% { opacity: .75; }
}
@keyframes fhr-hand {
  0% { transform: rotate(0deg) scale(1); }
  33% { transform: rotate(3deg) scale(1.03); }
  66% { transform: rotate(-2deg) scale(0.97); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes fhr-candleglow {
  0% { opacity: .5; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes fhr-shadow {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.2) translateX(5px); }
}
@keyframes fhr-bone {
  0% { transform: translateX(0); }
  100% { transform: translateX(-5px); }
}

/* market-day-visit */
.scn-market-day-visit {
  background: 
    linear-gradient(180deg, #f4c073 0%, #e8a74b 40%, #c8782e 70%, #a85a1a 100%),
    radial-gradient(ellipse at 30% 20%, #ffe080 0%, transparent 60%);
}
.scn-market-day-visit .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fce3b0 0%, #f4c073 100%); animation: md-sky 15s ease-in-out infinite alternate; }
.scn-market-day-visit .sun { position:absolute; top:10%; left:25%; width:60px; height:60px; background: radial-gradient(circle, #fff4d0 0%, #f4c073 50%, transparent 70%); border-radius:50%; animation: md-sun 8s ease-in-out infinite; }
.scn-market-day-visit .clouds { position:absolute; background: rgba(255,240,200,0.7); border-radius:50%; filter:blur(8px); height:30px; }
.scn-market-day-visit .cloud-a { top:20%; left:10%; width:120px; animation: md-driftA 45s linear infinite; }
.scn-market-day-visit .cloud-b { top:30%; right:5%; width:90px; height:20px; animation: md-driftB 35s linear infinite reverse; }
.scn-market-day-visit .market-stall { position:absolute; bottom:35%; width:70px; height:50px; background: linear-gradient(180deg, #b87a4a 0%, #8b5e3a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,0.3); animation: md-stall 6s ease-in-out infinite; }
.scn-market-day-visit .stall-1 { left:20%; }
.scn-market-day-visit .stall-2 { left:50%; width:90px; animation-delay: 1.5s; }
.scn-market-day-visit .figure { position:absolute; bottom:32%; left:8%; width:18px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: md-walk 12s ease-in-out infinite; }
.scn-market-day-visit .wagon { position:absolute; bottom:34%; left:70%; width:80px; height:30px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: md-wagon 20s linear infinite; }

@keyframes md-sky {
  0% { opacity:0.85; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes md-sun {
  0% { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 20px rgba(244,192,115,0.6); }
  50% { transform: scale(1.08) translate(2px,-2px); box-shadow: 0 0 60px 30px rgba(244,192,115,0.8); }
  100% { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 20px rgba(244,192,115,0.6); }
}
@keyframes md-driftA {
  0% { transform: translateX(-80px); }
  100% { transform: translateX(120vw); }
}
@keyframes md-driftB {
  0% { transform: translateX(60vw); }
  100% { transform: translateX(-100px); }
}
@keyframes md-stall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}
@keyframes md-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(15px) rotate(2deg); }
  50% { transform: translateX(30px) rotate(-2deg); }
  75% { transform: translateX(45px) rotate(2deg); }
  100% { transform: translateX(60px) rotate(0); }
}
@keyframes md-wagon {
  0% { transform: translateX(20vw); }
  100% { transform: translateX(-30vw); }
}

/* item-liqueur-bottle */
.scn-item-liqueur-bottle {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #4a2a1a 70%, #2a1a0a 100%),
    radial-gradient(ellipse at 60% 20%, #ffe080 0%, transparent 70%);
}
.scn-item-liqueur-bottle .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #5a4030 0%, #3a2818 100%); animation: lb-wall 20s ease-in-out infinite alternate; }
.scn-item-liqueur-bottle .tabletop { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a10 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-item-liqueur-bottle .bottle { position:absolute; bottom:30%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #b87a5a 0%, #8a5a3a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform-origin: bottom center; animation: lb-bottle 4s ease-in-out infinite; }
.scn-item-liqueur-bottle .bottle-label { position:absolute; bottom:38%; left:46%; width:20px; height:15px; background: #d4a060; border-radius: 20%; box-shadow: 0 0 4px rgba(0,0,0,0.3); }
.scn-item-liqueur-bottle .glass { position:absolute; bottom:28%; width:20px; height:30px; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0.1) 80%); border: 2px solid rgba(255,240,200,0.4); border-radius: 10% 10% 5% 5%; transform-origin: bottom center; }
.scn-item-liqueur-bottle .glass-left { left:30%; animation: lb-glass 6s ease-in-out infinite; }
.scn-item-liqueur-bottle .glass-right { left:60%; animation: lb-glass 6s ease-in-out infinite reverse; }
.scn-item-liqueur-bottle .liqueur-splash { position:absolute; bottom:30%; left:20%; width:60px; height:10px; background: radial-gradient(ellipse, #e8a060 0%, transparent 70%); filter: blur(3px); animation: lb-splash 3s ease-in-out infinite; }
.scn-item-liqueur-bottle .window-light { position:absolute; top:10%; left:20%; width:120px; height:80px; background: radial-gradient(ellipse, rgba(255,224,128,0.4) 0%, transparent 70%); animation: lb-window 8s ease-in-out infinite alternate; }

@keyframes lb-wall {
  0% { opacity:0.9; }
  100% { opacity:1; }
}
@keyframes lb-bottle {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) scaleY(1.01); }
  100% { transform: rotate(-2deg); }
}
@keyframes lb-glass {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes lb-splash {
  0% { opacity:0.3; transform: scaleX(1); }
  50% { opacity:0.7; transform: scaleX(1.2); }
  100% { opacity:0.3; transform: scaleX(1); }
}
@keyframes lb-window {
  0% { opacity:0.5; transform: scale(1); }
  100% { opacity:1; transform: scale(1.1); }
}

/* three-glass-drink */
.scn-three-glass-drink {
  background: 
    linear-gradient(180deg, #5a3a2a 0%, #7a5a3a 20%, #5a3a2a 60%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #ffe080 0%, transparent 60%);
}
.scn-three-glass-drink .bg-interior { position:absolute; inset:0; background: linear-gradient(135deg, #4a3018, #2a1808); animation: tg-bg 12s ease-in-out infinite alternate; }
.scn-three-glass-drink .table { position:absolute; bottom:0; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #8a603a 0%, #5a3a1a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); }
.scn-three-glass-drink .glass { position:absolute; bottom:35%; width:22px; height:35px; background: linear-gradient(180deg, rgba(255,240,200,0.2) 0%, rgba(255,200,150,0.1) 80%); border: 2px solid rgba(255,240,200,0.3); border-radius: 15% 15% 5% 5%; transform-origin: bottom center; }
.scn-three-glass-drink .glass-1 { left:20%; animation: tg-glass 5s ease-in-out infinite; }
.scn-three-glass-drink .glass-2 { left:40%; animation: tg-glass 5s ease-in-out infinite 0.5s; }
.scn-three-glass-drink .glass-3 { left:60%; animation: tg-glass 5s ease-in-out infinite 1s; }
.scn-three-glass-drink .hand { position:absolute; bottom:36%; left:50%; width:30px; height:20px; background: linear-gradient(180deg, #b88050 0%, #8a6030 100%); border-radius: 40% 40% 20% 20%; transform-origin: left center; animation: tg-hand 10s ease-in-out infinite; }
.scn-three-glass-drink .table-cloth { position:absolute; bottom:35%; left:5%; right:5%; height:10px; background: linear-gradient(90deg, #c8a860 0%, #e8c880 50%, #c8a860 100%); border-radius: 0 0 50% 50%; animation: tg-cloth 7s ease-in-out infinite; }

@keyframes tg-bg {
  0% { opacity:0.8; }
  100% { opacity:1; }
}
@keyframes tg-glass {
  0% { transform: scaleY(1) rotate(0); }
  50% { transform: scaleY(1.02) rotate(-2deg); }
  100% { transform: scaleY(1) rotate(0); }
}
@keyframes tg-hand {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(10px) rotate(10deg); }
  50% { transform: translateX(20px) rotate(20deg); }
  75% { transform: translateX(35px) rotate(25deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes tg-cloth {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
  100% { transform: scaleX(1); }
}

/* item-liqueur-keg */
.scn-item-liqueur-keg {
  background: 
    linear-gradient(180deg, #4a2a10 0%, #5a3a1a 30%, #3a1a08 70%, #1a0a00 100%),
    radial-gradient(ellipse at 40% 40%, #e8a060 0%, transparent 70%);
}
.scn-item-liqueur-keg .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a3a1a 0%, #2a1808 100%); border-radius: 40% 40% 0 0; animation: lk-floor 15s ease-in-out infinite alternate; }
.scn-item-liqueur-keg .keg-body { position:absolute; bottom:20%; left:40%; width:80px; height:60px; background: linear-gradient(180deg, #b87a4a 0%, #8a5a2a 100%); border-radius: 20% 20% 15% 15% / 40% 40% 30% 30%; box-shadow: 0 8px 20px rgba(0,0,0,0.6); transform-origin: center bottom; animation: lk-keg 4s ease-in-out infinite; }
.scn-item-liqueur-keg .keg-rim { position:absolute; bottom:38%; left:42%; width:56px; height:8px; background: #6a4020; border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
.scn-item-liqueur-keg .keg-hoop { position:absolute; left:42%; width:56px; height:4px; background: #806040; border-radius: 10%; }
.scn-item-liqueur-keg .top-hoop { bottom:30%; }
.scn-item-liqueur-keg .bottom-hoop { bottom:16%; }
.scn-item-liqueur-keg .shadow { position:absolute; bottom:18%; left:38%; width:100px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: lk-shadow 5s ease-in-out infinite; }
.scn-item-liqueur-keg .glass-half { position:absolute; bottom:20%; left:65%; width:18px; height:25px; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,200,150,0.2) 60%); border: 2px solid rgba(255,240,200,0.4); border-radius: 10% 10% 5% 5%; animation: lk-glass 6s ease-in-out infinite; }

@keyframes lk-floor {
  0% { opacity:0.9; }
  100% { opacity:1; }
}
@keyframes lk-keg {
  0% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(-3deg) scale(1); }
}
@keyframes lk-shadow {
  0% { transform: scaleX(1) scaleY(1); opacity:0.6; }
  50% { transform: scaleX(1.1) scaleY(1.2); opacity:0.8; }
  100% { transform: scaleX(1) scaleY(1); opacity:0.6; }
}
@keyframes lk-glass {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}

/* ---- boy-love-declaration ---- */
.scn-boy-love-declaration {
  background: linear-gradient(165deg, #c87a40 0%, #7a4a2a 40%, #3a2a2a 100%),
              radial-gradient(ellipse at 30% 60%, #e0a060 0%, transparent 60%);
}
.scn-boy-love-declaration .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  animation: bld-wall 20s ease-in-out infinite alternate;
}
.scn-boy-love-declaration .window {
  position: absolute; top: 15%; left: 25%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 80%, #f0c878 0%, #d09040 50%, #8a5a2a 100%);
  border-radius: 8% / 10%; box-shadow: inset 0 10px 30px rgba(255,200,100,0.3);
  animation: bld-dusk 12s ease-in-out infinite alternate;
}
.scn-boy-love-declaration .woman-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 24%; height: 50%;
  background: radial-gradient(ellipse 55% 60% at 50% 40%, #1a1212 0%, #0a0808 100%);
  border-radius: 40% 50% 30% 30% / 60% 55% 40% 40%;
  animation: bld-shift 8s ease-in-out infinite;
}
.scn-boy-love-declaration .child-at-feet {
  position: absolute; bottom: 10%; left: 48%; width: 12%; height: 24%;
  background: radial-gradient(ellipse 60% 70% at 50% 50%, #2a1a12 0%, #140e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bld-crouch 6s ease-in-out infinite;
}
.scn-boy-love-declaration .candle-glow {
  position: absolute; bottom: 38%; left: 30%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #e09040 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,200,100,0.5);
  animation: bld-flicker 2s ease-in-out infinite alternate;
}
.scn-boy-love-declaration .shadow-strip {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 2%;
  background: linear-gradient(90deg, transparent, #0a0a0a 40%, transparent);
  animation: bld-strip 10s linear infinite;
}
.scn-boy-love-declaration .dust-mote {
  position: absolute; width: 0.5%; height: 1.5%; border-radius: 50%;
  background: rgba(255,220,160,0.6); filter: blur(1px);
}
.scn-boy-love-declaration .dust-a { top: 40%; left: 20%; animation: bld-dust 30s linear infinite; }
.scn-boy-love-declaration .dust-b { top: 60%; left: 70%; animation: bld-dust 40s linear infinite; animation-delay: -15s; }
@keyframes bld-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes bld-dusk { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.8; transform: scaleY(0.98); } }
@keyframes bld-shift { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(2px) rotate(1deg); } 70% { transform: translateX(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bld-crouch { 0% { transform: scaleY(1) translateY(0); } 30% { transform: scaleY(0.95) translateY(-2px); } 70% { transform: scaleY(1.02) translateY(1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes bld-flicker { 0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(255,200,100,0.4); } 50% { opacity: 1; box-shadow: 0 0 60px 25px rgba(255,200,100,0.7); } 100% { opacity: 0.8; box-shadow: 0 0 40px 18px rgba(255,200,100,0.5); } }
@keyframes bld-strip { 0% { opacity: 0; } 20% { opacity: 0.3; } 80% { opacity: 0.3; } 100% { opacity: 0; } }
@keyframes bld-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: translate(40px, -80px) scale(0.2); opacity: 0; } }

/* ---- park-kiss-threat ---- */
.scn-park-kiss-threat {
  background: linear-gradient(180deg, #4a3a3a 0%, #6a4a3a 40%, #2a2a1a 100%),
              radial-gradient(ellipse at 50% 30%, #c07030 0%, transparent 70%);
}
.scn-park-kiss-threat .evening-sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%);
  animation: pkt-sky 15s ease-in-out infinite alternate;
}
.scn-park-kiss-threat .park-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 70% 30% 0 0 / 50% 40% 0 0;
  animation: pkt-ground 12s ease-in-out infinite alternate;
}
.scn-park-kiss-threat .tree.trunk {
  position: absolute; bottom: 38%; left: 20%; width: 4%; height: 50%;
  background: linear-gradient(90deg, #3a2a1a, #2a1a0a 60%);
  border-radius: 20% / 10%;
  animation: pkt-trunk 9s ease-in-out infinite;
}
.scn-park-kiss-threat .tree.canopy {
  position: absolute; bottom: 65%; left: 10%; width: 25%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #2a4a3a 0%, #1a2a1a 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pkt-canopy 20s ease-in-out infinite alternate;
}
.scn-park-kiss-threat .bench {
  position: absolute; bottom: 32%; left: 45%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 10% 10% 40% 40% / 30% 30% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: pkt-bench 8s ease-in-out infinite;
}
.scn-park-kiss-threat .figure-kneeling {
  position: absolute; bottom: 30%; left: 50%; width: 10%; height: 30%;
  background: radial-gradient(ellipse 50% 70% at 50% 50%, #1a1212 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pkt-kneel 4s ease-in-out infinite;
}
.scn-park-kiss-threat .figure-standing {
  position: absolute; bottom: 30%; left: 56%; width: 10%; height: 35%;
  background: radial-gradient(ellipse 50% 70% at 50% 50%, #1a1212 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: pkt-stand 4s ease-in-out infinite alternate;
}
.scn-park-kiss-threat .threat-shadow {
  position: absolute; bottom: 25%; left: 48%; width: 20%; height: 10%;
  background: linear-gradient(90deg, transparent, #0a0a0a 50%, transparent);
  filter: blur(10px);
  animation: pkt-shadow 6s ease-in-out infinite;
}
@keyframes pkt-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pkt-ground { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes pkt-trunk { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes pkt-canopy { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.05); } 100% { transform: translateX(-5px) scale(0.95); } }
@keyframes pkt-bench { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pkt-kneel { 0% { transform: rotate(0) translateY(0); } 30% { transform: rotate(3deg) translateY(-3px); } 70% { transform: rotate(-2deg) translateY(0); } 100% { transform: rotate(0) translateY(0); } }
@keyframes pkt-stand { 0% { transform: rotate(0); } 100% { transform: rotate(-2deg); } }
@keyframes pkt-shadow { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

/* ---- suicide-fear ---- */
.scn-suicide-fear {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a1a2a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a4a 0%, transparent 70%);
}
.scn-suicide-fear .night-sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  animation: sfn-sky 20s ease-in-out infinite alternate;
}
.scn-suicide-fear .porch-overhang {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #3a2a2a, #1a1212 80%);
  border-radius: 2% 2% 10% 10% / 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: sfn-overhang 10s ease-in-out infinite;
}
.scn-suicide-fear .door {
  position: absolute; bottom: 35%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #2a1a1a, #1a0a0a);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.8);
  animation: sfn-door 8s ease-in-out infinite alternate;
}
.scn-suicide-fear .porch-step {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 5%;
  background: linear-gradient(180deg, #4a3a3a, #2a1a1a);
  border-radius: 20% / 30%;
}
.scn-suicide-fear .step-top { height: 5%; bottom: 35%; }
.scn-suicide-fear .step-bot { height: 6%; bottom: 29%; }
.scn-suicide-fear .figure-frozen {
  position: absolute; bottom: 30%; left: 42%; width: 12%; height: 38%;
  background: radial-gradient(ellipse 50% 70% at 50% 50%, #1a1212 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: sfn-frozen 6s ease-in-out infinite;
}
.scn-suicide-fear .lamp-glow {
  position: absolute; bottom: 50%; left: 45%; width: 6%; height: 8%;
  background: radial-gradient(circle, #c08040 0%, #603010 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 50px 20px #402010;
  animation: sfn-lamp 3s ease-in-out infinite alternate;
}
.scn-suicide-fear .rain-drip {
  position: absolute; top: 5%; left: 50%; width: 0.5%; height: 2%;
  background: rgba(200,200,220,0.3);
  border-radius: 50%;
  animation: sfn-rain 1.5s linear infinite;
}
@keyframes sfn-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sfn-overhang { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes sfn-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes sfn-frozen { 0% { transform: rotate(0) translateY(0); } 30% { transform: rotate(2deg) translateY(-2px); } 70% { transform: rotate(-1deg) translateY(1px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes sfn-lamp { 0% { opacity: 0.6; box-shadow: 0 0 40px 15px #402010; } 50% { opacity: 1; box-shadow: 0 0 70px 30px #603020; } 100% { opacity: 0.7; box-shadow: 0 0 50px 20px #402010; } }
@keyframes sfn-rain { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(80px); opacity: 0; } }

/* ---- hanging-discovery ---- */
.scn-hanging-discovery {
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 30%, #4a4a4a 60%, #3a3a3a 100%),
              radial-gradient(ellipse at 50% 40%, #5a5a5a 0%, transparent 80%);
}
.scn-hanging-discovery .overcast-sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a4a4a, #2a2a2a 100%);
  animation: hds-sky 30s ease-in-out infinite alternate;
}
.scn-hanging-discovery .field-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: hds-ground 15s ease-in-out infinite alternate;
}
.scn-hanging-discovery .tree-mossy {
  position: absolute; bottom: 30%; left: 40%; width: 8%; height: 60%;
  background: linear-gradient(90deg, #3a3a2a, #2a2a1a 80%);
  border-radius: 30% / 10%;
  animation: hds-tree 12s ease-in-out infinite;
}
.scn-hanging-discovery .branch-arm {
  position: absolute; bottom: 75%; left: 38%; width: 20%; height: 4%;
  background: linear-gradient(180deg, #3a3a2a, #2a2a1a);
  border-radius: 50%;
  transform-origin: left center;
  animation: hds-branch 8s ease-in-out infinite;
}
.scn-hanging-discovery .silhouette-swing {
  position: absolute; bottom: 52%; left: 44%; width: 3%; height: 22%;
  background: radial-gradient(ellipse 50% 70% at 50% 50%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: hds-swing 6s ease-in-out infinite;
}
.scn-hanging-discovery .cap-in-mud {
  position: absolute; bottom: 28%; left: 35%; width: 6%; height: 4%;
  background: radial-gradient(ellipse, #3a3a3a, #1a1a1a);
  border-radius: 50%;
  box-shadow: 0 2px 5px rgba(0,0,0,0.5);
  animation: hds-cap 10s ease-in-out infinite;
}
.scn-hanging-discovery .woman-running {
  position: absolute; bottom: 28%; left: 10%; width: 10%; height: 35%;
  background: radial-gradient(ellipse 50% 70% at 50% 50%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: hds-run 1.5s ease-in-out infinite;
}
.scn-hanging-discovery .wind-sweep {
  position: absolute; top: 20%; left: 30%; right: 10%; height: 2%;
  background: linear-gradient(90deg, transparent, rgba(200,200,220,0.2), transparent);
  animation: hds-wind 10s linear infinite;
}
.scn-hanging-discovery .leaf-swirl {
  position: absolute; top: 30%; left: 60%; width: 2%; height: 2%;
  background: radial-gradient(circle, #5a4a3a, transparent);
  border-radius: 50%;
  animation: hds-leaf 7s linear infinite;
}
@keyframes hds-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes hds-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes hds-tree { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }
@keyframes hds-branch { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes hds-swing { 0% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-8deg); } }
@keyframes hds-cap { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(1px) rotate(5deg); } 70% { transform: translateY(-1px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hds-run { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-5px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hds-wind { 0% { transform: translateX(0); opacity: 0; } 20% { opacity: 0.3; } 80% { opacity: 0.3; } 100% { transform: translateX(60px); opacity: 0; } }
@keyframes hds-leaf { 0% { transform: translate(0,0) rotate(0); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translate(30px, 40px) rotate(720deg); opacity: 0; } }

/* one block per scene id. Append to style.css. */
.scn-dark-lake-grandeur {
  background: linear-gradient(180deg, #0f1420 0%, #1a1f30 30%, #2a2f50 60%, #3a3f5e 100%),
              radial-gradient(ellipse at 50% 100%, #2a3048 0%, transparent 70%);
}
.scn-dark-lake-grandeur .dlg-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #1a1f30 0%, #2a2f50 50%, transparent 100%);
  animation: dlg-sky 15s ease-in-out infinite alternate;
}
.scn-dark-lake-grandeur .dlg-hills {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: dlg-hills 20s ease-in-out infinite alternate;
}
.scn-dark-lake-grandeur .dlg-lake {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a3e 0%, #0f1a2e 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: dlg-lake 12s ease-in-out infinite alternate;
}
.scn-dark-lake-grandeur .dlg-house {
  position: absolute; bottom: 42%; left: 20%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 3% 3%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: dlg-house 8s ease-in-out infinite;
}
.scn-dark-lake-grandeur .dlg-boat {
  position: absolute; bottom: 50%; left: 55%; width: 40px; height: 12px;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: center bottom;
  animation: dlg-boat 6s ease-in-out infinite alternate;
}
.scn-dark-lake-grandeur .dlg-fig {
  position: absolute; bottom: 46%; left: 58%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dlg-fig 4s ease-in-out infinite;
}
.scn-dark-lake-grandeur .dlg-cloud-a {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 20px;
  background: radial-gradient(circle, rgba(200,200,220,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: dlg-cloud-a 40s linear infinite;
}
.scn-dark-lake-grandeur .dlg-cloud-b {
  position: absolute; top: 18%; right: 5%; width: 60px; height: 14px;
  background: radial-gradient(circle, rgba(200,200,220,0.2) 0%, transparent 100%);
  filter: blur(6px);
  animation: dlg-cloud-b 55s linear infinite reverse;
}
@keyframes dlg-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes dlg-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dlg-lake { 0% { background-position: 0 0 } 50% { background-position: 0 5% } 100% { background-position: 0 0 } }
@keyframes dlg-house { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes dlg-boat { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes dlg-fig { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-2deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes dlg-cloud-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(130vw) } }
@keyframes dlg-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-110vw) } }

.scn-item-red-cross {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 30%, #4a3a3a 60%, #6a4a3a 100%),
              radial-gradient(ellipse at 50% 0%, #d87a3a 0%, transparent 60%);
}
.scn-item-red-cross .irc-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d87a3a 0%, #b85a2a 50%, #4a2a1a 100%);
  animation: irc-sky 20s ease-in-out infinite alternate;
}
.scn-item-red-cross .irc-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: irc-ground 12s ease-in-out infinite alternate;
}
.scn-item-red-cross .irc-hut {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: irc-hut 6s ease-in-out infinite alternate;
}
.scn-item-red-cross .irc-cross {
  position: absolute; bottom: 45%; left: 38%; width: 20px; height: 50px;
  background: #a0461a;
  border-radius: 4px;
  box-shadow: 0 0 20px 8px rgba(160,70,26,0.6);
  animation: irc-cross 3s ease-in-out infinite alternate;
}
.scn-item-red-cross .irc-glow {
  position: absolute; bottom: 42%; left: 36%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,100,40,0.6) 0%, transparent 80%);
  filter: blur(8px);
  animation: irc-glow 3s ease-in-out infinite alternate;
}
.scn-item-red-cross .irc-boat {
  position: absolute; bottom: 25%; left: 55%; width: 50px; height: 15px;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-radius: 0 0 50% 50%;
  transform-origin: center bottom;
  animation: irc-boat 5s ease-in-out infinite alternate;
}
.scn-item-red-cross .irc-fig {
  position: absolute; bottom: 20%; left: 60%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: irc-fig 4s ease-in-out infinite;
}
.scn-item-red-cross .irc-rays {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(135deg, rgba(255,180,80,0.2) 0px, rgba(255,180,80,0.2) 20px, transparent 20px, transparent 40px);
  animation: irc-rays 8s linear infinite;
}
@keyframes irc-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes irc-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes irc-hut { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-0.5deg) } }
@keyframes irc-cross { 0% { opacity: 0.8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.9; transform: scale(0.95) } }
@keyframes irc-glow { 0% { opacity: 0.5; transform: scale(0.8) } 50% { opacity: 0.9; transform: scale(1.3) } 100% { opacity: 0.6; transform: scale(1) } }
@keyframes irc-boat { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes irc-fig { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(3px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes irc-rays { 0% { background-position: 0 0 } 100% { background-position: 50px 0 } }

.scn-beggar-woman-hut {
  background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 30%, #3a2a1a 70%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 80%);
}
.scn-beggar-woman-hut .bwh-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: bwh-wall 20s ease-in-out infinite alternate;
}
.scn-beggar-woman-hut .bwh-hearth {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #1a1a0a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 50% 50%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: bwh-hearth 15s ease-in-out infinite alternate;
}
.scn-beggar-woman-hut .bwh-fire {
  position: absolute; bottom: 22%; left: 33%; width: 20px; height: 40px;
  background: radial-gradient(circle at 50% 100%, #d87a3a 0%, #b85a2a 40%, #4a1a0a 80%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(2px);
  animation: bwh-fire 1.5s ease-in-out infinite alternate;
}
.scn-beggar-woman-hut .bwh-woman {
  position: absolute; bottom: 20%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bwh-woman 8s ease-in-out infinite;
}
.scn-beggar-woman-hut .bwh-priest {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bwh-priest 8s ease-in-out infinite 1s;
}
.scn-beggar-woman-hut .bwh-chair {
  position: absolute; bottom: 16%; left: 52%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: bwh-chair 12s ease-in-out infinite alternate;
}
.scn-beggar-woman-hut .bwh-window {
  position: absolute; top: 15%; right: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border: 3px solid #2a1a0a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.7);
  animation: bwh-window 25s ease-in-out infinite alternate;
}
@keyframes bwh-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes bwh-hearth { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes bwh-fire { 0% { transform: scaleY(1) translateY(0); opacity: 0.7 } 50% { transform: scaleY(1.3) translateY(-4px); opacity: 1 } 100% { transform: scaleY(0.8) translateY(2px); opacity: 0.8 } }
@keyframes bwh-woman { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bwh-priest { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bwh-chair { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes bwh-window { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }

.scn-jewess-accusation {
  background: linear-gradient(180deg, #4a4a5a 0%, #5a5a6e 20%, #6a6a7e 50%, #4a4a5a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-jewess-accusation .jwa-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #6a6a7e 0%, #4a4a5a 100%);
  animation: jwa-sky 18s ease-in-out infinite alternate;
}
.scn-jewess-accusation .jwa-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: jwa-ground 14s ease-in-out infinite alternate;
}
.scn-jewess-accusation .jwa-houses {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 50%;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 40px, #4a3a2a 40px, #4a3a2a 80px);
  clip-path: polygon(0% 100%, 10% 20%, 30% 20%, 30% 100%, 40% 100%, 40% 30%, 60% 30%, 60% 100%, 70% 100%, 70% 15%, 90% 15%, 90% 100%);
  opacity: 0.4;
  animation: jwa-houses 30s ease-in-out infinite alternate;
}
.scn-jewess-accusation .jwa-fig1 {
  position: absolute; bottom: 20%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jwa-fig1 3s ease-in-out infinite;
}
.scn-jewess-accusation .jwa-fig2 {
  position: absolute; bottom: 16%; left: 38%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jwa-fig2 3s ease-in-out infinite 0.5s;
}
.scn-jewess-accusation .jwa-path {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: jwa-path 20s ease-in-out infinite alternate;
}
.scn-jewess-accusation .jwa-door {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 35px;
  background: #2a1a0a;
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.8);
  animation: jwa-door 7s ease-in-out infinite alternate;
}
.scn-jewess-accusation .jwa-cloud {
  position: absolute; top: 10%; left: 5%; width: 120px; height: 30px;
  background: radial-gradient(circle, rgba(150,150,170,0.3) 0%, transparent 100%);
  filter: blur(12px);
  animation: jwa-cloud 50s linear infinite;
}
@keyframes jwa-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes jwa-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes jwa-houses { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.4 } }
@keyframes jwa-fig1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 20% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 40% { transform: translateX(8px) translateY(0) rotate(-2deg) } 60% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 80% { transform: translateX(16px) translateY(0) rotate(-1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes jwa-fig2 { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 20% { transform: translateX(3px) translateY(-1px) rotate(-2deg) } 40% { transform: translateX(6px) translateY(0) rotate(1deg) } 60% { transform: translateX(9px) translateY(-1px) rotate(-2deg) } 80% { transform: translateX(12px) translateY(0) rotate(0) } 100% { transform: translateX(15px) translateY(0) rotate(0) } }
@keyframes jwa-path { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes jwa-door { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes jwa-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(140vw) } }

.scn-child-illness { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 30%, #0a0a0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%); }
.scn-child-illness .bed-frame { position:absolute; bottom:15%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8px; box-shadow: inset 0 4px 10px rgba(0,0,0,.7); }
.scn-child-illness .child-figure { position:absolute; bottom:22%; left:35%; width:20%; height:20%; background: radial-gradient(ellipse at 40% 30%, #5a4a3a 0%, #2a1a1a 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ci-breath 4s ease-in-out infinite; }
.scn-child-illness .candle-glow { position:absolute; bottom:40%; left:45%; width:8px; height:14px; background: radial-gradient(ellipse at 50% 0%, #ffd080 0%, #c07030 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px #c07030, 0 0 40px 16px rgba(192,112,48,.5); animation: ci-candle 2.5s ease-in-out infinite alternate; }
.scn-child-illness .window-moon { position:absolute; top:10%; right:10%; width:30%; height:35%; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%); border: 4px solid #3a3a4e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-child-illness .window-moon::after { content:''; position:absolute; top:15%; left:20%; width:50%; height:60%; background: radial-gradient(circle, #e0e0c0 0%, #a0a080 60%, transparent 80%); border-radius: 50%; animation: ci-moon 12s linear infinite; }
.scn-child-illness .curtain { position:absolute; top:10%; right:8%; width:34%; height:40%; background: linear-gradient(180deg, rgba(60,40,30,.6) 0%, rgba(40,20,10,.4) 100%); filter: blur(8px); border-radius: 20% 0 0 20%; animation: ci-curtain 8s ease-in-out infinite alternate; }
.scn-child-illness .medicine-bottle { position:absolute; bottom:18%; left:30%; width:6%; height:10%; background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
@keyframes ci-breath { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } }
@keyframes ci-candle { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:.7; } }
@keyframes ci-moon { 0% { transform: translateX(0); } 50% { transform: translateX(10%); } 100% { transform: translateX(0); } }
@keyframes ci-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5%); } 100% { transform: translateX(0); } }

.scn-lawyer-destroy-will { background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 50%, #0a0500 100%), radial-gradient(ellipse at 50% 80%, #4a2a0a 0%, transparent 70%); }
.scn-lawyer-destroy-will .fireplace-arch { position:absolute; bottom:20%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, #0a0a0a 0%, #1a0a00 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.8); }
.scn-lawyer-destroy-will .flames { position:absolute; bottom:22%; left:38%; width:24%; height:30%; background: linear-gradient(180deg, #c05020 0%, #a03010 40%, #6a1a0a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: ldw-flame 1.2s ease-in-out infinite alternate; box-shadow: 0 0 30px 10px #c05020; }
.scn-lawyer-destroy-will .fig1 { position:absolute; bottom:20%; left:10%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ldw-sway 6s ease-in-out infinite; }
.scn-lawyer-destroy-will .fig2 { position:absolute; bottom:20%; right:10%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ldw-sway 7s ease-in-out infinite reverse; }
.scn-lawyer-destroy-will .fig3 { position:absolute; bottom:20%; left:25%; width:10%; height:32%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ldw-sway 5s ease-in-out infinite; }
.scn-lawyer-destroy-will .burning-paper { position:absolute; bottom:38%; left:42%; width:8%; height:8%; background: radial-gradient(ellipse at 50% 50%, #e0a060 0%, #a04010 70%); border-radius: 2px; animation: ldw-paper 3s ease-in-out infinite; }
.scn-lawyer-destroy-will .embers { position:absolute; bottom:25%; left:44%; width:4%; height:4%; background: radial-gradient(circle, #ff8040 0%, #c04020 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 10px 4px #c04020; animation: ldw-ember 1.8s ease-in-out infinite alternate; }
@keyframes ldw-flame { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.15) translateY(-5px); } 100% { transform: scaleY(0.95) translateY(2px); } }
@keyframes ldw-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ldw-paper { 0% { transform: rotate(0deg) scale(1); opacity:1; } 50% { transform: rotate(10deg) scale(0.8); opacity:0.6; } 100% { transform: rotate(20deg) scale(0.5); opacity:0; } }
@keyframes ldw-ember { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-10px) scale(1.5); } 100% { transform: translateY(0) scale(0.8); } }

.scn-mother-of-monsters-intro { background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 40%, #f0e68c 100%), radial-gradient(ellipse at 50% 0%, #f0e68c 0%, transparent 70%); }
.scn-mother-of-monsters-intro .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6ab3de 0%, #b0d4f0 100%); animation: mmi-cloud 30s linear infinite alternate; }
.scn-mother-of-monsters-intro .buildings-back { position:absolute; bottom:30%; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); }
.scn-mother-of-monsters-intro .buildings-back::before { content:''; position:absolute; bottom:0; left:20%; width:30%; height:60%; background: linear-gradient(180deg, #b0a080 0%, #908060 100%); border-radius: 5% 5% 0 0; }
.scn-mother-of-monsters-intro .street { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%); }
.scn-mother-of-monsters-intro .friend-figure { position:absolute; bottom:35%; left:30%; width:10%; height:25%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: mmi-point 4s ease-in-out infinite; }
.scn-mother-of-monsters-intro .friend-figure::before { content:''; position:absolute; top:-10%; left:50%; width:30%; height:20%; background: #2a2a1a; border-radius: 50%; transform: translateX(-50%); }
.scn-mother-of-monsters-intro .mother-silhouette { position:absolute; bottom:35%; right:20%; width:16%; height:40%; background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mmi-mother 8s ease-in-out infinite; }
.scn-mother-of-monsters-intro .shadow-line { position:absolute; bottom:30%; left:0; width:100%; height:5%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 50%, transparent 100%); animation: mmi-shadow 12s ease-in-out infinite alternate; }
@keyframes mmi-cloud { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: 0% 0%; } }
@keyframes mmi-point { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes mmi-mother { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); } }
@keyframes mmi-shadow { 0% { opacity:.3; transform: translateY(0); } 50% { opacity:.6; transform: translateY(2px); } 100% { opacity:.3; transform: translateY(0); } }

.scn-monster-mother-encounter { background: linear-gradient(180deg, #d4b878 0%, #c0a060 30%, #8a6a3a 100%), radial-gradient(ellipse at 50% 20%, #f0d890 0%, transparent 60%); }
.scn-monster-mother-encounter .bg-sun { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e0a0 0%, #d4b878 50%, transparent 100%); animation: mme-sun 15s ease-in-out infinite alternate; }
.scn-monster-mother-encounter .tree { position:absolute; top:0; left:5%; width:30%; height:100%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); clip-path: polygon(50% 0%, 60% 20%, 80% 15%, 70% 35%, 90% 40%, 75% 55%, 85% 70%, 60% 65%, 50% 100%, 40% 65%, 15% 70%, 25% 55%, 10% 40%, 30% 35%, 20% 15%, 40% 20%); animation: mme-leaf 20s ease-in-out infinite alternate; }
.scn-monster-mother-encounter .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a6a3a 0%, #5a4a2a 100%); }
.scn-monster-mother-encounter .mother-figure { position:absolute; bottom:30%; left:35%; width:20%; height:50%; background: linear-gradient(180deg, #4a3a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: mme-twitch 3s ease-in-out infinite; box-shadow: 0 10px 20px rgba(0,0,0,.5); }
.scn-monster-mother-encounter .mother-figure::after { content:''; position:absolute; top:-5%; left:10%; width:80%; height:20%; background: #2a2a1a; border-radius: 50%; }
.scn-monster-mother-encounter .friend-figure { position:absolute; bottom:32%; left:60%; width:10%; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: mme-step 5s ease-in-out infinite; }
.scn-monster-mother-encounter .shadow-patch { position:absolute; bottom:25%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 70%); animation: mme-dapple 10s ease-in-out infinite alternate; }
@keyframes mme-sun { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes mme-leaf { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.05); } 100% { transform: rotate(-1deg) scale(0.98); } }
@keyframes mme-twitch { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(-2deg) translateY(1px); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mme-step { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(-3deg); } 50% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mme-dapple { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.1); } 100% { opacity:.4; transform: scale(0.9); } }

/* chicot-embarrassed */
.scn-chicot-embarrassed {
  background: linear-gradient(180deg, #f5e6d0 0%, #c4a882 60%, #a0845c 100%), radial-gradient(ellipse at 40% 20%, #fff5e0 10%, transparent 60%);
}
.scn-chicot-embarrassed .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #fef7e0 0%, #f5d6a0 100%);
  animation: ch-sky 8s ease-in-out infinite alternate;
}
.scn-chicot-embarrassed .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #b8956a 0%, #8a6e4e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-chicot-embarrassed .window {
  position:absolute; top:20%; left:50%; width:70px; height:90px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #fffbe0 0%, #e0c488 70%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 0 40px 10px rgba(240,200,120,0.5), inset 0 0 20px rgba(255,255,200,0.6);
  animation: ch-window 5s ease-in-out infinite alternate;
}
.scn-chicot-embarrassed .figure {
  position:absolute; bottom:32%; left:50%; width:50px; height:100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ch-figure 4s ease-in-out infinite;
}
.scn-chicot-embarrassed .shadow {
  position:absolute; bottom:28%; left:45%; width:80px; height:12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: ch-shadow 4s ease-in-out infinite;
}
.scn-chicot-embarrassed .dust {
  position:absolute; top:30%; left:20%; width:4px; height:4px;
  background: rgba(255,255,200,0.8);
  border-radius: 50%;
  filter: blur(2px);
  animation: ch-dust 18s linear infinite;
}
@keyframes ch-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; background-position: 0% 0%; }
  100% { opacity: 0.85; }
}
@keyframes ch-window {
  0% { box-shadow: 0 0 30px 5px rgba(240,200,120,0.4); }
  50% { box-shadow: 0 0 60px 15px rgba(240,200,120,0.8); }
  100% { box-shadow: 0 0 35px 8px rgba(240,200,120,0.5); }
}
@keyframes ch-figure {
  0% { transform: translateX(-50%) rotate(-2deg); }
  25% { transform: translateX(-48%) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  75% { transform: translateX(-52%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes ch-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.15); opacity: 0.6; }
}
@keyframes ch-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.8; }
  50% { transform: translate(30px, -20px) scale(1.5); opacity: 0.2; }
  100% { transform: translate(60px, -40px) scale(0.5); opacity: 0.8; }
}

/* farm-deal-proposal */
.scn-farm-deal-proposal {
  background: linear-gradient(180deg, #f7e9d7 0%, #d4b896 50%, #a8855e 100%), radial-gradient(ellipse at 70% 30%, #fff8e7 20%, transparent 70%);
}
.scn-farm-deal-proposal .bg-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(90deg, #d9c4a8 0%, #c1a583 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.1);
  animation: fd-wall 12s ease-in-out infinite alternate;
}
.scn-farm-deal-proposal .table {
  position:absolute; bottom:20%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #6b4f32 0%, #4c3822 100%);
  border-radius: 12px 12px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
}
.scn-farm-deal-proposal .bowl {
  position:absolute; bottom:38%; left:25%; width:40px; height:30px;
  background: radial-gradient(circle at 50% 40%, #e8c888 0%, #b8964a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -6px 8px rgba(0,0,0,0.3);
  animation: fd-bowl 6s ease-in-out infinite;
}
.scn-farm-deal-proposal .figure-woman {
  position:absolute; bottom:30%; left:22%; width:45px; height:90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: fd-woman 5s ease-in-out infinite;
}
.scn-farm-deal-proposal .figure-innkeeper {
  position:absolute; bottom:30%; right:20%; width:50px; height:95px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: fd-innkeeper 7s ease-in-out infinite;
}
.scn-farm-deal-proposal .sunbeam {
  position:absolute; top:0; left:50%; width:20px; bottom:40%;
  background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: fd-sunbeam 10s ease-in-out infinite alternate;
}
.scn-farm-deal-proposal .mote {
  position:absolute; top:20%; left:40%; width:3px; height:3px;
  background: rgba(255,255,200,0.9);
  border-radius: 50%;
  animation: fd-mote 20s linear infinite;
}
@keyframes fd-wall {
  0% { background-position: 0% 0%; }
  50% { background-position: 5% 0%; }
  100% { background-position: -5% 0%; }
}
@keyframes fd-bowl {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes fd-woman {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-1px) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes fd-innkeeper {
  0% { transform: translateY(0) scale(1); }
  40% { transform: translateY(-2px) scale(1.02); }
  80% { transform: translateY(1px) scale(0.98); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes fd-sunbeam {
  0% { opacity: 0.3; transform: translateX(-10px); }
  50% { opacity: 0.7; transform: translateX(10px); }
  100% { opacity: 0.4; transform: translateX(-10px); }
}
@keyframes fd-mote {
  0% { transform: translate(0,0) scale(1); opacity: 0.8; }
  50% { transform: translate(40px, -30px) scale(1.5); opacity: 0.2; }
  100% { transform: translate(80px, -60px) scale(0.5); opacity: 0.8; }
}

/* magloire-hesitation */
.scn-magloire-hesitation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0d0d1a 100%), radial-gradient(ellipse at 50% 80%, #2c2c50 20%, transparent 80%);
}
.scn-magloire-hesitation .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
  animation: mh-bg 10s ease-in-out infinite alternate;
}
.scn-magloire-hesitation .bed {
  position:absolute; bottom:15%; left:15%; right:15%; height:35%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1c1c28 100%);
  border-radius: 20px 20px 8px 8px;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.6);
  animation: mh-bed 8s ease-in-out infinite;
}
.scn-magloire-hesitation .lamp {
  position:absolute; top:35%; right:20%; width:25px; height:30px;
  background: radial-gradient(circle at 50% 30%, #ffb870 0%, #d07030 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 50px 15px rgba(200,100,30,0.5), 0 0 100px 30px rgba(200,100,30,0.2);
  animation: mh-lamp 3s ease-in-out infinite alternate;
}
.scn-magloire-hesitation .figure-sitting {
  position:absolute; bottom:30%; left:25%; width:40px; height:80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d15 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: mh-figure 5s ease-in-out infinite;
}
.scn-magloire-hesitation .shadow-figure {
  position:absolute; bottom:22%; left:20%; width:60px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  animation: mh-shadow 5s ease-in-out infinite;
}
.scn-magloire-hesitation .curtain {
  position:absolute; top:10%; right:5%; width:30px; height:80%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 0 30% 0;
  filter: blur(1px);
  animation: mh-curtain 9s ease-in-out infinite alternate;
}
@keyframes mh-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes mh-bed {
  0% { transform: translateY(0); box-shadow: 0 -10px 30px rgba(0,0,0,0.6); }
  50% { transform: translateY(-2px); box-shadow: 0 -8px 25px rgba(0,0,0,0.7); }
  100% { transform: translateY(0); box-shadow: 0 -10px 30px rgba(0,0,0,0.6); }
}
@keyframes mh-lamp {
  0% { box-shadow: 0 0 40px 10px rgba(200,100,30,0.4); opacity: 0.8; }
  50% { box-shadow: 0 0 80px 20px rgba(200,100,30,0.7); opacity: 1; }
  100% { box-shadow: 0 0 45px 12px rgba(200,100,30,0.5); opacity: 0.9; }
}
@keyframes mh-figure {
  0% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes mh-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.7; }
}
@keyframes mh-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(3px); }
}

/* fifty-crowns-bargain */
.scn-fifty-crowns-bargain {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 50%, #b8906a 100%), radial-gradient(ellipse at 60% 20%, #fff5e0 15%, transparent 60%);
}
.scn-fifty-crowns-bargain .bg-scene {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #f0dcc0 0%, #d4b896 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.15);
  animation: fc-bg 10s ease-in-out infinite alternate;
}
.scn-fifty-crowns-bargain .table {
  position:absolute; bottom:20%; left:5%; right:5%; height:35%;
  background: linear-gradient(180deg, #6b4f32 0%, #3d2c1c 100%);
  border-radius: 16px 16px 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.3);
}
.scn-fifty-crowns-bargain .coins {
  position:absolute; bottom:40%; left:40%; width:60px; height:20px;
  background: radial-gradient(circle at 30% 50%, #f0d070 0%, #c89838 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 60% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: fc-coins 6s ease-in-out infinite;
}
.scn-fifty-crowns-bargain .figure-a {
  position:absolute; bottom:32%; left:15%; width:45px; height:90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: fc-figA 5s ease-in-out infinite;
}
.scn-fifty-crowns-bargain .figure-b {
  position:absolute; bottom:32%; right:15%; width:42px; height:85px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: fc-figB 7s ease-in-out infinite;
}
.scn-fifty-crowns-bargain .contract {
  position:absolute; bottom:38%; left:48%; width:40px; height:30px;
  background: linear-gradient(135deg, #f5f0e0 0%, #d4c8a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: fc-contract 8s ease-in-out infinite;
}
.scn-fifty-crowns-bargain .money-bag {
  position:absolute; bottom:30%; left:55%; width:30px; height:40px;
  background: radial-gradient(circle at 50% 30%, #7a5a3a 0%, #4c3222 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: fc-bag 9s ease-in-out infinite;
}
@keyframes fc-bg {
  0% { opacity: 0.9; background-position: 0% 0%; }
  50% { opacity: 1; background-position: 3% 0%; }
  100% { opacity: 0.85; background-position: -3% 0%; }
}
@keyframes fc-coins {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes fc-figA {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-1px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes fc-figB {
  0% { transform: translateY(0) scale(1); }
  40% { transform: translateY(-2px) scale(1.03); }
  80% { transform: translateY(1px) scale(0.97); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes fc-contract {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes fc-bag {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(4deg); }
  100% { transform: translateY(0) rotate(-4deg); }
}

/* practical-joke-fear */
.scn-practical-joke-fear { background: linear-gradient(180deg, #1a1a2e 0%, #2c1e24 50%, #120c10 100%), radial-gradient(ellipse at 70% 60%, #4a2a2a 0%, transparent 70%); }
.scn-practical-joke-fear .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 60%); }
.scn-practical-joke-fear .wall { position:absolute; inset:10% 10% 15% 10%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:4px; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-practical-joke-fear .door { position:absolute; bottom:15%; right:20%; width:22%; height:60%; background: linear-gradient(180deg, #2a1a1a 0%, #0e0a0a 100%); border-radius:4px 4px 0 0; box-shadow: -8px 0 12px rgba(0,0,0,.5); transform-origin: right center; animation: pjf-door 6s ease-in-out infinite; }
.scn-practical-joke-fear .servant { position:absolute; bottom:15%; left:30%; width:10%; height:50%; background: linear-gradient(180deg, #1a1212 0%, #0a0606 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pjf-servant 2s ease-in-out infinite; }
.scn-practical-joke-fear .chair { position:absolute; bottom:15%; left:55%; width:15%; height:20%; background: linear-gradient(180deg, #2a1a1a 0%, #100c0c 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 -6px 8px rgba(0,0,0,.6); }
.scn-practical-joke-fear .candle { position:absolute; bottom:45%; left:48%; width:2%; height:8%; background: linear-gradient(180deg, #f0c060 0%, #b08030 100%); border-radius:2px; animation: pjf-candle 0.8s ease-in-out infinite alternate; }
.scn-practical-joke-fear .glow { position:absolute; bottom:40%; left:45%; width:12%; height:12%; background: radial-gradient(circle, rgba(255,200,80,.8) 0%, transparent 70%); border-radius:50%; animation: pjf-glow 1.2s ease-in-out infinite alternate; }
@keyframes pjf-door { 0%,100% { transform: rotateY(0deg) scaleX(1); } 30% { transform: rotateY(-8deg) scaleX(1.02); } 70% { transform: rotateY(5deg) scaleX(0.98); } }
@keyframes pjf-servant { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pjf-candle { 0% { transform: scaleY(1) translateY(0); opacity:.8; } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.8) translateY(1px); opacity:.7; } }
@keyframes pjf-glow { 0% { transform: scale(0.8); opacity:0.4; } 50% { transform: scale(1.1); opacity:0.8; } 100% { transform: scale(0.9); opacity:0.5; } }

/* candle-darkness-fear */
.scn-candle-darkness-fear { background: linear-gradient(180deg, #0e0e1a 0%, #1a1420 50%, #0a0a0f 100%), radial-gradient(ellipse at 50% 60%, #2a1e30 0%, transparent 70%); }
.scn-candle-darkness-fear .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, transparent 40%); }
.scn-candle-darkness-fear .curtain { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(180deg, #1a1220 0%, #0a0610 100%); border-radius:0 20% 20% 0; box-shadow: inset -8px 0 12px rgba(0,0,0,.6); transform-origin: left center; animation: cdf-curtain 10s ease-in-out infinite alternate; }
.scn-candle-darkness-fear .armchair { position:absolute; bottom:18%; left:45%; width:30%; height:40%; background: linear-gradient(180deg, #2a1e30 0%, #120e18 100%); border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%; box-shadow: inset 0 -8px 16px rgba(0,0,0,.5); animation: cdf-chair 4s ease-in-out infinite; }
.scn-candle-darkness-fear .table { position:absolute; bottom:20%; left:35%; width:8%; height:2%; background: linear-gradient(90deg, #2a1e30 0%, #1a1020 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
.scn-candle-darkness-fear .candle { position:absolute; bottom:25%; left:38%; width:3%; height:12%; background: linear-gradient(180deg, #e8c060 0%, #a08030 100%); border-radius:2px; animation: cdf-candle 1.5s ease-in-out infinite; }
.scn-candle-darkness-fear .flame { position:absolute; bottom:36%; left:38.5%; width:1.5%; height:5%; background: radial-gradient(circle, #ffdd80 0%, transparent 80%); border-radius:50%; animation: cdf-flame 0.6s ease-in-out infinite alternate; }
.scn-candle-darkness-fear .glow { position:absolute; bottom:25%; left:30%; width:20%; height:20%; background: radial-gradient(circle, rgba(255,200,80,.2) 0%, transparent 70%); border-radius:50%; animation: cdf-glow 3s ease-in-out infinite alternate; }
@keyframes cdf-curtain { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cdf-chair { 0%,100% { transform: scale(1) translateY(0); } 30% { transform: scale(1.02) translateY(-2px); } 60% { transform: scale(0.98) translateY(1px); } }
@keyframes cdf-candle { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.15) translateY(-2px); } }
@keyframes cdf-flame { 0% { transform: scaleX(0.8) scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleX(1.2) scaleY(1.1) translateY(-1px); opacity:1; } 100% { transform: scaleX(0.9) scaleY(0.9) translateY(1px); opacity:0.7; } }
@keyframes cdf-glow { 0% { transform: scale(0.8); opacity:0.3; } 50% { transform: scale(1.1); opacity:0.6; } 100% { transform: scale(0.9); opacity:0.4; } }

/* practical-joke-failure */
.scn-practical-joke-failure { background: linear-gradient(180deg, #0a0a0a 0%, #1a1210 50%, #080808 100%), radial-gradient(ellipse at 50% 80%, #2a1a10 0%, transparent 70%); }
.scn-practical-joke-failure .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 50%); }
.scn-practical-joke-failure .door-open { position:absolute; bottom:20%; left:20%; width:30%; height:50%; background: linear-gradient(180deg, #e8d0a0 0%, #b09870 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 20% 20%, 80% 20%, 80% 80%, 20% 80%); /* rough open door shape */ border-radius:4px; box-shadow: 0 0 20px rgba(255,200,100,.6); animation: pjfl-door 2s ease-in-out infinite alternate; }
.scn-practical-joke-failure .floor { position:absolute; bottom:20%; left:0; right:0; height:5%; background: linear-gradient(90deg, #1a1010 0%, #2a1a10 50%, #1a1010 100%); }
.scn-practical-joke-failure .narrator { position:absolute; bottom:20%; left:35%; width:10%; height:45%; background: radial-gradient(ellipse at 50% 30%, #e0d8d0 0%, #a09890 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pjfl-narrator 0.4s ease-in-out infinite; }
.scn-practical-joke-failure .friend { position:absolute; bottom:20%; left:55%; width:12%; height:40%; background: linear-gradient(180deg, #1a1210 0%, #0a0606 100%); border-radius: 40% 60% 40% 40% / 50% 60% 40% 40%; clip-path: polygon(0 0, 100% 0, 90% 20%, 100% 30%, 70% 50%, 100% 70%, 80% 100%, 0 100%); /* jagged furry shape */ transform-origin: bottom center; animation: pjfl-friend 0.5s ease-in-out infinite; }
.scn-practical-joke-failure .punch { position:absolute; bottom:40%; left:45%; width:8%; height:8%; background: radial-gradient(circle, rgba(255,255,200,.8) 0%, transparent 70%); border-radius:50%; animation: pjfl-punch 0.3s ease-in-out infinite; }
@keyframes pjfl-door { 0% { transform: scaleX(1); opacity:1; } 50% { transform: scaleX(1.05); opacity:0.9; } 100% { transform: scaleX(0.95); opacity:1; } }
@keyframes pjfl-narrator { 0% { transform: translateX(0) rotate(0deg) scale(1); } 25% { transform: translateX(8px) rotate(5deg) scale(1.1); } 50% { transform: translateX(-5px) rotate(-3deg) scale(0.95); } 75% { transform: translateX(3px) rotate(4deg) scale(1.05); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes pjfl-friend { 0% { transform: translateX(0) rotate(0deg) scale(1); } 20% { transform: translateX(-10px) rotate(-6deg) scale(1.15); } 40% { transform: translateX(5px) rotate(4deg) scale(0.9); } 60% { transform: translateX(-3px) rotate(-2deg) scale(1.05); } 80% { transform: translateX(8px) rotate(3deg) scale(1.1); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }
@keyframes pjfl-punch { 0% { transform: scale(0.5); opacity:1; } 50% { transform: scale(1.5); opacity:0; } 100% { transform: scale(0.5); opacity:1; } }

/* meeting-milial */
.scn-meeting-milial { background: linear-gradient(180deg, #f8e0b0 0%, #e8c070 40%, #a0b8d0 70%, #607090 100%), radial-gradient(ellipse at 50% 0%, #f8e0b0 0%, transparent 60%); }
.scn-meeting-milial .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f8e0b0 0%, #e8c070 50%, transparent 100%); }
.scn-meeting-milial .sun { position:absolute; top:20%; left:40%; width:12%; height:12%; background: radial-gradient(circle, #fff0c0 0%, #ffd060 40%, transparent 70%); border-radius:50%; animation: mm-sun 30s ease-in-out infinite alternate; }
.scn-meeting-milial .hill { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8aa07a 0%, #607060 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-meeting-milial .tree-l { position:absolute; bottom:30%; left:10%; width:8%; height:60%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform-origin: bottom center; animation: mm-tree 20s ease-in-out infinite alternate; }
.scn-meeting-milial .tree-r { position:absolute; bottom:30%; right:10%; width:10%; height:70%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform-origin: bottom center; animation: mm-tree 25s ease-in-out infinite alternate-reverse; }
.scn-meeting-milial .path { position:absolute; bottom:25%; left:25%; right:25%; height:2%; background: linear-gradient(90deg, #d0b080 0%, #c0a070 50%, #d0b080 100%); border-radius:2px; filter: blur(1px); }
.scn-meeting-milial .figure { position:absolute; bottom:30%; left:48%; width:8%; height:45%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm-figure 8s ease-in-out infinite; box-shadow: 0 0 20px rgba(255,200,100,.3); }
@keyframes mm-sun { 0% { transform: scale(1) translateX(0); opacity:0.9; } 50% { transform: scale(1.1) translateX(10px); opacity:1; } 100% { transform: scale(0.95) translateX(-5px); opacity:0.85; } }
@keyframes mm-tree { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes mm-figure { 0% { transform: translateX(0) rotate(0deg) scale(1); } 30% { transform: translateX(2px) rotate(1deg) scale(1.01); } 60% { transform: translateX(-1px) rotate(-1deg) scale(0.99); } 100% { transform: translateX(0) rotate(0deg) scale(1); } }

.scn-item-flayed-hand { background: linear-gradient(180deg, #0d0a0a 0%, #1a1212 30%, #2c1c1c 70%, #0d0808 100%), radial-gradient(ellipse at 50% 60%, #2c1c1c 0%, #0d0a0a 70%); }
.scn-item-flayed-hand .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(10,5,5,0) 40%, rgba(0,0,0,.8) 100%); animation: fh-bg 8s ease-in-out infinite alternate; }
.scn-item-flayed-hand .altar { position:absolute; bottom:10%; left:15%; right:15%; height:20%; background: linear-gradient(160deg, #3a3a3a 0%, #1a1a1a 50%, #0a0a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.7); transform: perspective(400px) rotateX(5deg); }
.scn-item-flayed-hand .hand { position:absolute; bottom:22%; left:50%; width:140px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 40%, #1a1210 100%); border-radius: 60% 40% 40% 60% / 60% 40% 50% 50%; box-shadow: 0 15px 40px rgba(0,0,0,.8), inset 0 -10px 20px rgba(0,0,0,.6); animation: fh-hand 6s ease-in-out infinite; }
.scn-item-flayed-hand .candle { position:absolute; bottom:28%; left:55%; width:12px; height:60px; background: linear-gradient(180deg, #e0d8c8 0%, #b0a898 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow: inset -2px 0 6px rgba(0,0,0,.3); transform: rotate(-4deg); }
.scn-item-flayed-hand .candle-glow { position:absolute; bottom:52%; left:55.5%; width:30px; height:40px; background: radial-gradient(circle, #f0a050 0%, #d08030 40%, transparent 70%); border-radius: 50%; transform: translate(-50%, 50%); box-shadow: 0 0 60px 20px rgba(200,100,40,.4), 0 0 120px 40px rgba(200,100,40,.2); animation: fh-glow 2.5s ease-in-out infinite alternate; }
.scn-item-flayed-hand .shadow-1 { position:absolute; bottom:8%; left:20%; width:40%; height:8%; background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(6px); animation: fh-shadow 8s ease-in-out infinite alternate; }
.scn-item-flayed-hand .shadow-2 { position:absolute; bottom:6%; right:15%; width:30%; height:6%; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(8px); animation: fh-shadow 10s ease-in-out infinite alternate-reverse; }
@keyframes fh-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fh-hand { 0% { transform:translateX(-50%) rotate(-2deg) scale(1); } 50% { transform:translateX(-50%) rotate(2deg) scale(1.02); } 100% { transform:translateX(-50%) rotate(-1deg) scale(.98); } }
@keyframes fh-glow { 0% { opacity:.6; box-shadow: 0 0 40px 10px rgba(200,100,40,.3), 0 0 80px 20px rgba(200,100,40,.1); } 50% { opacity:1; box-shadow: 0 0 80px 30px rgba(240,160,80,.5), 0 0 160px 60px rgba(240,160,80,.2); } 100% { opacity:.7; box-shadow: 0 0 50px 15px rgba(200,100,40,.35), 0 0 100px 30px rgba(200,100,40,.15); } }
@keyframes fh-shadow { 0% { transform: scaleX(1) translateX(0); opacity:.4; } 50% { transform: scaleX(1.2) translateX(10px); opacity:.7; } 100% { transform: scaleX(.9) translateX(-5px); opacity:.5; } }

.scn-gaulois-publication { background: linear-gradient(180deg, #2a2824 0%, #3a3530 40%, #4a4540 70%, #2a2824 100%), radial-gradient(ellipse at 50% 100%, #4a4540 0%, transparent 70%); }
.scn-gaulois-publication .window-frame { position:absolute; inset:5% 10% 40% 10%; border: 20px solid #1a1814; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); background: transparent; }
.scn-gaulois-publication .sky-overcast { position:absolute; inset:5% 10% 40% 10%; background: linear-gradient(180deg, #8a8885 0%, #b0aeaa 30%, #9a9895 70%, #7a7875 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.2); animation: gp-sky 15s ease-in-out infinite alternate; }
.scn-gaulois-publication .desk { position:absolute; bottom:0; left:5%; right:5%; height:38%; background: linear-gradient(160deg, #4a3520 0%, #2a1a10 50%, #1a0d05 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -15px 30px rgba(0,0,0,.6); }
.scn-gaulois-publication .papers { position:absolute; bottom:25%; left:20%; width:25%; height:15%; background: linear-gradient(135deg, #e8e0d0 0%, #c8c0b0 100%); border-radius: 2%; box-shadow: 2px 4px 12px rgba(0,0,0,.4); transform: rotate(-3deg); animation: gp-papers 20s ease-in-out infinite alternate; }
.scn-gaulois-publication .quill { position:absolute; bottom:30%; left:45%; width:8px; height:70px; background: linear-gradient(180deg, #e0d0c0 0%, #c0a890 40%, #8a7050 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; transform: rotate(15deg); animation: gp-quill 4s ease-in-out infinite alternate; }
.scn-gaulois-publication .monk-silhouette { position:absolute; bottom:15%; right:18%; width:90px; height:110px; background: linear-gradient(180deg, #1a1814 0%, #0a0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 10px 20px rgba(0,0,0,.5); transform-origin: bottom center; animation: gp-monk 8s ease-in-out infinite; }
@keyframes gp-sky { 0% { opacity:.7; background-position: 0% 0%; } 50% { opacity:1; background-position: 10% 5%; } 100% { opacity:.8; background-position: -5% 2%; } }
@keyframes gp-papers { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(2deg) translateX(5px); } 100% { transform: rotate(-4deg) translateX(-2px); } }
@keyframes gp-quill { 0% { transform: rotate(12deg) scaleY(1); } 50% { transform: rotate(18deg) scaleY(1.02); } 100% { transform: rotate(14deg) scaleY(.98); } }
@keyframes gp-monk { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } 100% { transform: rotate(0deg) translateY(1px); } }

.scn-sceptic-humbug { background: linear-gradient(180deg, #0a0a0a 0%, #1a1515 40%, #2c1a1a 70%, #0f0a0a 100%), radial-gradient(ellipse at 50% 0%, #2c1a1a 0%, transparent 60%); }
.scn-sceptic-humbug .bg-walls { position:absolute; inset:0; background: linear-gradient(90deg, #0a0505 0%, #1a1010 30%, #2c1c1c 70%, #1a1010 100%); animation: sh-bg 10s ease-in-out infinite alternate; }
.scn-sceptic-humbug .chair { position:absolute; bottom:10%; left:25%; width:80px; height:90px; background: linear-gradient(180deg, #1a1005 0%, #0a0500 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 10px 30px rgba(0,0,0,.7); transform: rotate(-5deg); }
.scn-sceptic-humbug .figure-sceptic { position:absolute; bottom:20%; left:35%; width:70px; height:140px; background: linear-gradient(180deg, #1a1815 0%, #0a0805 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 15px 40px rgba(0,0,0,.6); animation: sh-figure 4s ease-in-out infinite; }
.scn-sceptic-humbug .cigar { position:absolute; bottom:55%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #ff8a4a 0%, #a0461a 70%, #4a1a00 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(160,70,26,.6); animation: sh-cigar 3s ease-in-out infinite; }
.scn-sceptic-humbug .cigar-trail { position:absolute; bottom:58%; left:55%; width:30px; height:8px; background: linear-gradient(90deg, rgba(200,180,160,.5) 0%, rgba(100,90,80,.2) 50%, transparent 100%); border-radius: 50%; filter: blur(4px); transform: rotate(-20deg); animation: sh-trail 3s ease-in-out infinite; }
.scn-sceptic-humbug .shadow-sharp { position:absolute; bottom:2%; left:20%; width:50%; height:8%; background: rgba(0,0,0,.8); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: sh-shadow 5s ease-in-out infinite alternate; }
@keyframes sh-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes sh-figure { 0% { transform: rotate(0deg) translateY(0) scaleY(1); } 30% { transform: rotate(4deg) translateY(-10px) scaleY(1.1); } 60% { transform: rotate(-3deg) translateY(-5px) scaleY(1.05); } 100% { transform: rotate(1deg) translateY(0) scaleY(1); } }
@keyframes sh-cigar { 0% { transform: translate(0, 0) rotate(0deg) scale(1); opacity:1; } 30% { transform: translate(40px, 30px) rotate(120deg) scale(.9); opacity:1; } 60% { transform: translate(80px, 60px) rotate(240deg) scale(.8); opacity:.6; } 100% { transform: translate(120px, 90px) rotate(360deg) scale(.5); opacity:0; } }
@keyframes sh-trail { 0% { width:20px; opacity:.6; } 30% { width:60px; opacity:1; } 60% { width:40px; opacity:.4; } 100% { width:0px; opacity:0; } }
@keyframes sh-shadow { 0% { transform: skewX(-10deg) translateX(0); opacity:.5; } 50% { transform: skewX(20deg) translateX(30px); opacity:.9; } 100% { transform: skewX(-5deg) translateX(10px); opacity:.6; } }

.scn-two-stories-promised { background: linear-gradient(180deg, #0d0a08 0%, #1a1410 35%, #2c2018 70%, #14100c 100%), radial-gradient(ellipse at 50% 100%, #2c2018 0%, transparent 70%); }
.scn-two-stories-promised .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #0a0805 0%, #1a1410 40%, #2a1e18 70%, #1a1410 100%); animation: tsp-bg 12s ease-in-out infinite alternate; }
.scn-two-stories-promised .table { position:absolute; bottom:8%; left:10%; right:10%; height:15%; background: linear-gradient(160deg, #3a2a1a 0%, #1a1008 50%, #0a0500 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.7); }
.scn-two-stories-promised .speaker { position:absolute; bottom:12%; left:15%; width:80px; height:140px; background: linear-gradient(180deg, #2a1e18 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 15px 40px rgba(0,0,0,.5); transform-origin: bottom center; animation: tsp-speaker 6s ease-in-out infinite; }
.scn-two-stories-promised .woman-plain { position:absolute; bottom:18%; right:15%; width:70px; height:120px; background: linear-gradient(180deg, #4a4540 0%, #2a2824 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; filter: saturate(.3) brightness(.9); box-shadow: 0 15px 30px rgba(0,0,0,.4); }
.scn-two-stories-promised .lamp { position:absolute; bottom:22%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #4a4030 0%, #2a2018 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 5px 10px rgba(0,0,0,.5); transform: rotate(5deg); }
.scn-two-stories-promised .lamp-glow { position:absolute; bottom:28%; left:56%; width:80px; height:100px; background: radial-gradient(ellipse, rgba(200,160,80,.4) 0%, rgba(200,160,80,.1) 40%, transparent 70%); border-radius: 50%; transform: translate(-50%, 50%); filter: blur(10px); animation: tsp-lamp 4s ease-in-out infinite alternate; }
.scn-two-stories-promised .shadow-tense { position:absolute; bottom:4%; left:0%; width:60%; height:10%; background: linear-gradient(90deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,.3) 100%); clip-path: polygon(10% 0%, 80% 0%, 100% 100%, 0% 100%); transform: skewX(-15deg); animation: tsp-shadow 8s ease-in-out infinite alternate; }
@keyframes tsp-bg { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes tsp-lamp { 0% { opacity:.6; transform: translate(-50%, 50%) scale(.95); } 50% { opacity:1; transform: translate(-50%, 50%) scale(1.1); } 100% { opacity:.7; transform: translate(-50%, 50%) scale(1); } }
@keyframes tsp-shadow { 0% { transform: skewX(-15deg) translateX(0); opacity:.5; } 50% { transform: skewX(-5deg) translateX(20px); opacity:.9; } 100% { transform: skewX(-20deg) translateX(-10px); opacity:.6; } }
@keyframes tsp-speaker { 0% { transform: rotate(0deg) translateY(0); } 40% { transform: rotate(6deg) translateY(-8px); } 70% { transform: rotate(-4deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }

.scn-child-refusal { background: linear-gradient(180deg, #f0d9b5 0%, #d9c5a6 100%), radial-gradient(ellipse at 50% 100%, #f0d9b5 0%, transparent 70%); }
.scn-child-refusal .cr-wall { position:absolute; inset:0; background: #d9c5a6; }
.scn-child-refusal .cr-opening { position:absolute; bottom:0; left:30%; width:40%; height:55%; background: linear-gradient(135deg, #fff8e7 0%, #f0d9b5 100%); border:4px solid #4a2e1a; box-sizing:border-box; z-index:2; }
.scn-child-refusal .cr-woman { position:absolute; bottom:10%; left:45%; width:15%; height:50%; background: #151515; border-radius: 30% 30% 10% 10%; z-index:3; animation: cr-tremble 4s ease-in-out infinite; }
.scn-child-refusal .cr-head { position:absolute; bottom:58%; left:48%; width:9%; height:12%; background: #151515; border-radius:50%; z-index:4; animation: cr-tremble 4s ease-in-out infinite; }
.scn-child-refusal .cr-fist { position:absolute; bottom:45%; left:60%; width:5%; height:5%; background: #151515; border-radius:50%; z-index:4; animation: cr-fist-shake 2s ease-in-out infinite; }
.scn-child-refusal .cr-light { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 70%); z-index:1; transform: skewX(-5deg); animation: cr-light-sweep 6s ease-in-out infinite alternate; }
.scn-child-refusal .cr-shadow { position:absolute; bottom:0; left:30%; width:40%; height:8%; background: rgba(0,0,0,0.25); border-radius: 0 0 50% 50%; z-index:1; animation: cr-shadow-pulse 4s ease-in-out infinite alternate; }
@keyframes cr-tremble { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cr-fist-shake { 0% { transform: translate(0,0) rotate(0); } 30% { transform: translate(2px,-2px) rotate(10deg); } 70% { transform: translate(-2px,-1px) rotate(-5deg); } 100% { transform: translate(0,0) rotate(0); } }
@keyframes cr-light-sweep { 0% { opacity:0.3; transform: skewX(-5deg) translateX(-10px); } 50% { opacity:0.7; transform: skewX(-8deg) translateX(5px); } 100% { opacity:0.4; transform: skewX(-5deg) translateX(-5px); } }
@keyframes cr-shadow-pulse { 0% { opacity:0.2; } 50% { opacity:0.35; } 100% { opacity:0.2; } }

.scn-devil-birth-story { background: linear-gradient(180deg, #7a7a7a 0%, #5c5c5c 100%), radial-gradient(ellipse at 50% 100%, #6b6b6b 0%, transparent 80%); }
.scn-devil-birth-story .dbs-sky { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #8a8a8a 0%, #6c6c6c 100%); animation: dbs-sky-move 15s ease-in-out infinite alternate; }
.scn-devil-birth-story .dbs-field { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3d4220 0%, #25280f 100%); }
.scn-devil-birth-story .dbs-woman { position:absolute; bottom:30%; left:35%; width:30%; height:15%; background: #1a1a0a; border-radius: 30% 30% 10% 10%; z-index:2; animation: dbs-breathe 5s ease-in-out infinite; }
.scn-devil-birth-story .dbs-baby { position:absolute; bottom:30%; left:48%; width:8%; height:6%; background: #2a2a1a; border-radius: 40% 40% 50% 50%; z-index:3; animation: dbs-baby-move 4s ease-in-out infinite; }
.scn-devil-birth-story .dbs-demon-aura { position:absolute; bottom:28%; left:43%; width:20%; height:20%; background: radial-gradient(circle, rgba(0,0,0,0.6) 0%, transparent 70%); border-radius:50%; z-index:1; animation: dbs-aura-pulse 6s ease-in-out infinite; }
.scn-devil-birth-story .dbs-fleeing-1 { position:absolute; bottom:52%; left:15%; width:5%; height:10%; background: #111; border-radius: 30% 30% 10% 10%; z-index:4; animation: dbs-run-away 8s ease-in-out infinite; }
.scn-devil-birth-story .dbs-fleeing-2 { position:absolute; bottom:52%; left:10%; width:4%; height:9%; background: #111; border-radius: 30% 30% 10% 10%; z-index:4; animation: dbs-run-away 8s ease-in-out infinite 2s; }
@keyframes dbs-sky-move { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes dbs-breathe { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-4deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes dbs-baby-move { 0% { transform: translate(0,0) scale(1); } 30% { transform: translate(-3px,2px) scale(1.05); } 70% { transform: translate(2px,-1px) scale(0.95); } 100% { transform: translate(0,0) scale(1); } }
@keyframes dbs-aura-pulse { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(1); } }
@keyframes dbs-run-away { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(-15px) rotate(-5deg); } 50% { transform: translateX(-40px) rotate(3deg); } 80% { transform: translateX(-70px) rotate(-2deg); } 100% { transform: translateX(-90px) rotate(0); } }

.scn-yearly-income-monsters { background: linear-gradient(180deg, #2b2b2b 0%, #1a1a1a 100%), radial-gradient(circle at 50% 80%, #333 0%, transparent 60%); }
.scn-yearly-income-monsters .yim-wall { position:absolute; inset:0; background: #1f1f1f; }
.scn-yearly-income-monsters .yim-table { position:absolute; bottom:10%; left:20%; width:60%; height:5%; background: #4a3726; border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,0.6); }
.scn-yearly-income-monsters .yim-woman { position:absolute; bottom:15%; left:40%; width:18%; height:40%; background: #111; border-radius: 40% 40% 10% 10%; z-index:2; animation: yim-count 4s ease-in-out infinite; }
.scn-yearly-income-monsters .yim-money { position:absolute; bottom:15%; left:28%; width:25%; height:8%; background: radial-gradient(circle at 30% 50%, #c89440 0%, #b07d30 100%); border-radius:10%; z-index:3; animation: yim-shimmer 3s ease-in-out infinite alternate; }
.scn-yearly-income-monsters .yim-curtain { position:absolute; bottom:0; right:10%; width:20%; height:100%; background: linear-gradient(180deg, #2a1a0a 0%, #0d0802 100%); border-left: 2px solid #3a2a1a; animation: yim-curtain-sway 8s ease-in-out infinite; }
.scn-yearly-income-monsters .yim-child-shadow { position:absolute; bottom:5%; right:14%; width:10%; height:20%; background: rgba(0,0,0,0.7); border-radius: 40% 40% 10% 10%; z-index:4; animation: yim-peek 5s ease-in-out infinite; }
.scn-yearly-income-monsters .yim-coin-glint { position:absolute; bottom:16%; left:30%; width:4%; height:4%; background: radial-gradient(circle, #ffe080 0%, transparent 70%); border-radius:50%; z-index:5; animation: yim-glint 2s ease-in-out infinite; }
@keyframes yim-count { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes yim-shimmer { 0% { opacity:0.9; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.9; transform: scale(1); } }
@keyframes yim-curtain-sway { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes yim-peek { 0% { opacity:0.3; transform: translateY(0); } 30% { opacity:0.8; transform: translateY(-5px); } 70% { opacity:0.6; transform: translateY(-2px); } 100% { opacity:0.3; transform: translateY(0); } }
@keyframes yim-glint { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0; transform: scale(0.5); } }

.scn-beach-crippled-children { background: linear-gradient(180deg, #c9e2f0 0%, #a4c8e0 50%, #f2d8b0 100%), radial-gradient(ellipse at 50% 100%, #f2d8b0 0%, transparent 70%); }
.scn-beach-crippled-children .bcc-sky { position:absolute; top:0; left:0; right:0; bottom:60%; background: linear-gradient(180deg, #b3d4f0 0%, #8ab8d8 100%); animation: bcc-sky-glide 12s ease-in-out infinite alternate; }
.scn-beach-crippled-children .bcc-sea { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5b9bb5 0%, #3a7a9a 100%); animation: bcc-wave 10s ease-in-out infinite; }
.scn-beach-crippled-children .bcc-sand { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #e3cba8 0%, #c8b086 100%); }
.scn-beach-crippled-children .bcc-nursemaid { position:absolute; bottom:50%; left:10%; width:12%; height:25%; background: #1a1a1a; border-radius: 30% 30% 10% 10%; z-index:2; animation: bcc-stand 6s ease-in-out infinite; }
.scn-beach-crippled-children .bcc-child1 { position:absolute; bottom:18%; left:30%; width:10%; height:6%; background: #2a2a1a; border-radius: 50% 50% 20% 20%; z-index:3; animation: bcc-roll1 4s ease-in-out infinite; }
.scn-beach-crippled-children .bcc-child2 { position:absolute; bottom:22%; left:45%; width:8%; height:7%; background: #2a2a1a; border-radius: 40% 60% 20% 30%; z-index:3; animation: bcc-roll2 5s ease-in-out infinite 1s; }
.scn-beach-crippled-children .bcc-child3 { position:absolute; bottom:20%; left:58%; width:9%; height:5%; background: #2a2a1a; border-radius: 60% 40% 30% 20%; z-index:3; animation: bcc-roll3 4.5s ease-in-out infinite 2s; }
.scn-beach-crippled-children .bcc-crutch-left { position:absolute; bottom:20%; left:25%; width:2%; height:20%; background: #3a2a1a; border-radius:2px; z-index:4; animation: bcc-crutch 8s ease-in-out infinite; }
.scn-beach-crippled-children .bcc-crutch-right { position:absolute; bottom:20%; left:65%; width:2%; height:20%; background: #3a2a1a; border-radius:2px; z-index:4; animation: bcc-crutch 8s ease-in-out infinite 3s; }
@keyframes bcc-sky-glide { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes bcc-wave { 0% { transform: translateY(0); } 50% { transform: translateY(5px); } 100% { transform: translateY(0); } }
@keyframes bcc-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes bcc-roll1 { 0% { transform: rotate(20deg) translateY(0); } 25% { transform: rotate(30deg) translateY(-5px); } 50% { transform: rotate(10deg) translateY(-2px); } 75% { transform: rotate(25deg) translateY(-4px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes bcc-roll2 { 0% { transform: rotate(-15deg) translateY(0); } 25% { transform: rotate(-5deg) translateY(-5px); } 50% { transform: rotate(-25deg) translateY(-2px); } 75% { transform: rotate(-10deg) translateY(-4px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes bcc-roll3 { 0% { transform: rotate(40deg) translateY(0); } 25% { transform: rotate(50deg) translateY(-5px); } 50% { transform: rotate(30deg) translateY(-2px); } 75% { transform: rotate(45deg) translateY(-4px); } 100% { transform: rotate(40deg) translateY(0); } }
@keyframes bcc-crutch { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(10deg) translateX(0); } }
/* end per-scene blocks */
